From a80d31b1bd84a56f969634c39d78dfa1c437aa9f Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Thu, 11 Jan 2024 08:15:17 -0800 Subject: [PATCH 01/45] Log command execution exceptions if debug=true (#10130) --- patches/server/0384-misc-debugging-dumps.patch | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/patches/server/0384-misc-debugging-dumps.patch b/patches/server/0384-misc-debugging-dumps.patch index 0ddfea4c6cdd..48d3e6a4fb71 100644 --- a/patches/server/0384-misc-debugging-dumps.patch +++ b/patches/server/0384-misc-debugging-dumps.patch @@ -28,6 +28,19 @@ index 0000000000000000000000000000000000000000..2d5494d2813b773e60ddba6790b750a9 + new Throwable(reason).printStackTrace(); + } +} +diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java +index b27256d251e5db5781197319f79f89cc7638c80b..337ff2b3e8ea6f106656cf4bef029d81998e0e58 100644 +--- a/src/main/java/net/minecraft/commands/Commands.java ++++ b/src/main/java/net/minecraft/commands/Commands.java +@@ -341,7 +341,7 @@ public class Commands { + } catch (Exception exception) { + MutableComponent ichatmutablecomponent = Component.literal(exception.getMessage() == null ? exception.getClass().getName() : exception.getMessage()); + +- if (Commands.LOGGER.isDebugEnabled()) { ++ if (commandlistenerwrapper.getServer().isDebugging() || Commands.LOGGER.isDebugEnabled()) { // Paper + Commands.LOGGER.error("Command exception: /{}", s, exception); + StackTraceElement[] astacktraceelement = exception.getStackTrace(); + diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 08f7f287af32597d8a39f429013adec9266020bf..e230a6e3810929c2f9ac70a98c9fc41734ec06c2 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java @@ -74,7 +87,7 @@ index 04a728a16bb629adbae1cd8586764a6dbc22b5dc..e48b287d6229f8043fba8a417f0b7558 this.connection.disconnect(ServerConfigurationPacketListenerImpl.DISCONNECT_REASON_INVALID_DATA); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b805012214f1ff9526110e56b5ad9dde96c0468e..41bf17ccb60c3f66505539085de83017e2125afe 100644 +index 34016fdfe0357d817092c5932497701153326884..5895544e1c4d1b4c0ae862969d09aa0ed5ce42b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1006,6 +1006,7 @@ public final class CraftServer implements Server { From ec196207c2f622616af0dff61bf39b767be5cff5 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Fri, 12 Jan 2024 08:25:12 -0800 Subject: [PATCH 02/45] Use a ConcurrentHashMap for enum mappings for BlockData (#10161) This API should be thread-safe as there is no world state --- patches/server/0454-Cache-block-data-strings.patch | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/patches/server/0454-Cache-block-data-strings.patch b/patches/server/0454-Cache-block-data-strings.patch index 7fdf40bd9da4..c52e380c44f2 100644 --- a/patches/server/0454-Cache-block-data-strings.patch +++ b/patches/server/0454-Cache-block-data-strings.patch @@ -17,9 +17,18 @@ index a82f7dd2cbc2f6311b810f117f0970a47db85818..2616d771a8a95dac4440b74933c8aa7b if (this.isSameThread()) { diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index cf379f7da8d8e6db0d74f1ca0e4b42e017a8191e..c1506afacb6a73ef4a4692c0ae0722b240f01606 100644 +index cf379f7da8d8e6db0d74f1ca0e4b42e017a8191e..cab13044a3c827256967632a1769f4aec3b11839 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +@@ -153,7 +153,7 @@ public class CraftBlockData implements BlockData { + return exactMatch; + } + +- private static final Map>, Enum[]> ENUM_VALUES = new HashMap<>(); ++ private static final Map>, Enum[]> ENUM_VALUES = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - make thread safe + + /** + * Convert an NMS Enum (usually a BlockStateEnum) to its appropriate Bukkit @@ -536,9 +536,39 @@ public class CraftBlockData implements BlockData { Preconditions.checkState(CraftBlockData.MAP.put(nms, bukkit) == null, "Duplicate mapping %s->%s", nms, bukkit); } From f28caff92752681593137edea91b8fa908995d8e Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Fri, 12 Jan 2024 19:33:17 +0100 Subject: [PATCH 03/45] Limit ResourceLocation length to nbt string tag length --- ...57-Validate-ResourceLocation-in-NBT-reading.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch index 645e44224640..ab785a22f37d 100644 --- a/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch @@ -21,6 +21,18 @@ index 18fad4f083862ace2bc56579883f548f6d697091..80083fed4b44b9d433925f09db83e559 if (optional.isEmpty()) { return Blocks.AIR.defaultBlockState(); } else { +diff --git a/src/main/java/net/minecraft/resources/ResourceLocation.java b/src/main/java/net/minecraft/resources/ResourceLocation.java +index 38e2a8cec48bc779b8154d6d719031f457a2403e..9024622a41fdc774713481973c1419a8d18cce93 100644 +--- a/src/main/java/net/minecraft/resources/ResourceLocation.java ++++ b/src/main/java/net/minecraft/resources/ResourceLocation.java +@@ -31,6 +31,7 @@ public class ResourceLocation implements Comparable { + private final String path; + + protected ResourceLocation(String namespace, String path, @Nullable ResourceLocation.Dummy extraData) { ++ if (io.netty.buffer.ByteBufUtil.utf8MaxBytes(namespace + ":" + path) > 2 * Short.MAX_VALUE + 1) throw new ResourceLocationException("Resource location too long: " + namespace + ":" + path); // Paper - Validate ResourceLocation + this.namespace = namespace; + this.path = path; + } diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java index 00389d7ec3e8b059d5591a2019ba240fda2901fe..6cfce9755dd464a7afb01f9032e567ce3bcd5bc5 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java From a0ffb577450102506101069bbcf51c2c44a711c3 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Fri, 12 Jan 2024 21:58:54 +0100 Subject: [PATCH 04/45] [ci skip] Small cleanup to mc utils patch --- patches/server/0009-MC-Utils.patch | 78 +++---------------- patches/server/0014-Timings-v2.patch | 24 +++--- patches/server/0016-Starlight.patch | 6 +- .../server/0018-Rewrite-chunk-system.patch | 60 +++++++------- patches/server/0033-Entity-Origin-API.patch | 4 +- ...event-tile-entity-and-entity-crashes.patch | 4 +- patches/server/0042-Disable-thunder.patch | 4 +- .../server/0043-Disable-ice-and-snow.patch | 4 +- .../0060-Add-exception-reporting-event.patch | 6 +- .../server/0070-Add-World-Util-Methods.patch | 6 +- ...le-spawn-chances-for-skeleton-horses.patch | 4 +- ...ckPhysicsEvent-if-a-plugin-has-a-lis.patch | 6 +- ...Entity-AddTo-RemoveFrom-World-Events.patch | 6 +- ...g-BlockPlaceEvent-triggering-physics.patch | 4 +- ...item-frames-performance-and-bug-fixe.patch | 4 +- .../0102-Fix-global-sound-handling.patch | 4 +- ...0190-Block-Enderpearl-Travel-Exploit.patch | 4 +- ...ld.spawnParticle-API-and-add-Builder.patch | 4 +- .../0213-InventoryCloseEvent-Reason-API.patch | 6 +- ...ies-option-to-debug-dupe-uuid-issues.patch | 8 +- ...242-Optimize-CraftBlockData-Creation.patch | 4 +- .../0295-Entity-getEntitySpawnReason.patch | 6 +- ...le-Keep-Spawn-Loaded-range-per-world.patch | 4 +- ...ptimise-EntityGetter-getPlayerByUUID.patch | 4 +- .../0331-Entity-Activation-Range-2.0.patch | 16 ++-- patches/server/0337-Anti-Xray.patch | 8 +- .../0341-Add-debug-for-sync-chunk-loads.patch | 4 +- ...-PlayerChunkMap-adds-crashing-server.patch | 6 +- .../0365-Improved-Watchdog-Support.patch | 6 +- ...ktraces-in-log-messages-crash-report.patch | 10 +-- ...-incremental-chunk-and-player-saving.patch | 4 +- ...geEvent-not-firing-for-all-use-cases.patch | 4 +- ...p-capture-to-capture-all-items-added.patch | 4 +- patches/server/0521-Remove-stale-POIs.patch | 4 +- patches/server/0538-EntityMoveEvent.patch | 6 +- ...disable-pathfinding-updates-on-block.patch | 6 +- ...cause-to-Weather-ThunderChangeEvents.patch | 8 +- ...etChunkIfLoadedImmediately-in-places.patch | 6 +- ...o-find-targets-for-lightning-strikes.patch | 6 +- ...-logic-for-inventories-on-chunk-unlo.patch | 4 +- ...ally-inline-methods-in-BlockPosition.patch | 8 +- .../0678-Execute-chunk-tasks-mid-tick.patch | 10 +-- .../0681-Optimise-random-block-ticking.patch | 16 ++-- ...l-more-information-in-watchdog-dumps.patch | 8 +- ...entory-not-closing-on-entity-removal.patch | 4 +- .../server/0716-Collision-optimisations.patch | 4 +- patches/server/0795-Don-t-tick-markers.patch | 4 +- ...nate-Current-redstone-implementation.patch | 6 +- ...mpty-items-from-being-added-to-world.patch | 4 +- .../0844-Fix-a-bunch-of-vanilla-bugs.patch | 4 +- ...ry-onTrackingStart-during-navigation.patch | 6 +- ...global-player-list-where-appropriate.patch | 4 +- ...nts-being-fired-from-unloaded-chunks.patch | 4 +- .../server/1010-Lag-compensation-ticks.patch | 4 +- ...014-Optimise-nearby-player-retrieval.patch | 4 +- ...ix-missing-map-initialize-event-call.patch | 4 +- ...n-t-fire-sync-events-during-worldgen.patch | 4 +- 57 files changed, 202 insertions(+), 262 deletions(-) diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index 912cf207d322..3701ba05fa2d 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -5926,26 +5926,6 @@ index d3afd54f546ae81f1c6d1a3ca9ee4e8e5c786ae4..114f4017c4133042178c57d424f10079 } public static long getEpochMillis() { -diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 2bb5e51f71cbf66819d198505aa4a5ecffd246c6..1834f3efb05fd70c8c1c67733bff514829ae1154 100644 ---- a/src/main/java/net/minecraft/core/BlockPos.java -+++ b/src/main/java/net/minecraft/core/BlockPos.java -@@ -562,6 +562,7 @@ public class BlockPos extends Vec3i { - } - } - -+ // Paper start - comment out useless overrides @Override - TODO figure out why this is suddenly important to keep - @Override - public BlockPos.MutableBlockPos setX(int i) { - super.setX(i); -@@ -579,6 +580,7 @@ public class BlockPos extends Vec3i { - super.setZ(i); - return this; - } -+ // Paper end - - @Override - public BlockPos immutable() { diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java index c77fc9b93f3213655b2cc89f4afdec893f1cd22d..c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b 100644 --- a/src/main/java/net/minecraft/nbt/CompoundTag.java @@ -6982,18 +6962,10 @@ index 1d12a7934308aa48d7ea7fa10c7b6b5ccb27e707..7cacfceed5ef9276a19123a8a9079579 ChunkHolder playerchunk = this.getVisibleChunkIfPresent(pos); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9cf839be15126444d4d2ffdb7faa637859941d6b..3bd2bddb782d29e647a1f1b362a39d224151f8b1 100644 +index 9cf839be15126444d4d2ffdb7faa637859941d6b..cb6fbb3a1512d69a3f1192c969c3d5c78c046cef 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -178,6 +178,7 @@ import org.bukkit.event.weather.LightningStrikeEvent; - import org.bukkit.event.world.GenericGameEvent; - import org.bukkit.event.world.TimeSkipEvent; - // CraftBukkit end -+import it.unimi.dsi.fastutil.ints.IntArrayList; // Paper - - public class ServerLevel extends Level implements WorldGenLevel { - -@@ -230,6 +231,98 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -230,6 +230,98 @@ public class ServerLevel extends Level implements WorldGenLevel { return this.convertable.dimensionType; } @@ -7319,7 +7291,7 @@ index 1c71d2c1b16bdba1e14a8230787e4cb4ad530163..d6d8bbc98fc71997cb52521d59ebb59d FluidState getFluidState(BlockPos pos); diff --git a/src/main/java/net/minecraft/world/level/ChunkPos.java b/src/main/java/net/minecraft/world/level/ChunkPos.java -index 43bb3f5a617f4a6d719b02023a71edcb12aa9d05..34457c8afb4575d2395148f0a2bde6a96ec5e797 100644 +index 43bb3f5a617f4a6d719b02023a71edcb12aa9d05..2f47004a34f28a58965b1c47e78fb07ae15770cb 100644 --- a/src/main/java/net/minecraft/world/level/ChunkPos.java +++ b/src/main/java/net/minecraft/world/level/ChunkPos.java @@ -20,6 +20,7 @@ public class ChunkPos { @@ -7350,7 +7322,7 @@ index 43bb3f5a617f4a6d719b02023a71edcb12aa9d05..34457c8afb4575d2395148f0a2bde6a9 } public static ChunkPos minFromRegion(int x, int z) { -@@ -48,10 +52,10 @@ public class ChunkPos { +@@ -48,7 +52,7 @@ public class ChunkPos { } public long toLong() { @@ -7358,11 +7330,7 @@ index 43bb3f5a617f4a6d719b02023a71edcb12aa9d05..34457c8afb4575d2395148f0a2bde6a9 + return longKey; // Paper } -- public static long asLong(int chunkX, int chunkZ) { -+ public static long asLong(int chunkX, int chunkZ) { - return (long)chunkX & 4294967295L | ((long)chunkZ & 4294967295L) << 32; - } - + public static long asLong(int chunkX, int chunkZ) { diff --git a/src/main/java/net/minecraft/world/level/EmptyBlockGetter.java b/src/main/java/net/minecraft/world/level/EmptyBlockGetter.java index 3c707d6674b2594b09503b959a31c1f4ad3981e6..db61b6b0158a9bcc0e1d735e34fe3671f8c89e21 100644 --- a/src/main/java/net/minecraft/world/level/EmptyBlockGetter.java @@ -7540,29 +7508,9 @@ index 249b3ed33672a9a9529bd14de978722b62019314..0f1025495237aebe30132ace0832aa57 public WorldBorder getWorldBorder() { return this.level.getWorldBorder(); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 171956fbe47032cfac8811ab7fbe94415560304b..07e41b936f5f229876cf9ff5cd8d6278088eee48 100644 +index 171956fbe47032cfac8811ab7fbe94415560304b..b6d3f9f9520e410526cfeabcdeb9720dbe30e4bf 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -821,8 +821,8 @@ public abstract class BlockBehaviour implements FeatureElement { - - public abstract static class BlockStateBase extends StateHolder { - -- private final int lightEmission; -- private final boolean useShapeForLightOcclusion; -+ private final int lightEmission; public final int getEmittedLight() { return this.lightEmission; } // Paper - OBFHELPER -+ private final boolean useShapeForLightOcclusion; public final boolean isTransparentOnSomeFaces() { return this.useShapeForLightOcclusion; } // Paper - OBFHELPER - private final boolean isAir; - private final boolean ignitedByLava; - /** @deprecated */ -@@ -835,7 +835,7 @@ public abstract class BlockBehaviour implements FeatureElement { - private final MapColor mapColor; - public final float destroySpeed; - private final boolean requiresCorrectToolForDrops; -- private final boolean canOcclude; -+ private final boolean canOcclude; public final boolean isOpaque() { return this.canOcclude; } // Paper - OBFHELPER - private final BlockBehaviour.StatePredicate isRedstoneConductor; - private final BlockBehaviour.StatePredicate isSuffocating; - private final BlockBehaviour.StatePredicate isViewBlocking; @@ -896,12 +896,20 @@ public abstract class BlockBehaviour implements FeatureElement { } } @@ -7619,7 +7567,7 @@ index 532a0cae6db0d830e720a72e9021aa7a8ed0f106..e5e562f75e7d4b6a750f192842940c5e this.levelHeightAccessor = heightLimitView; this.sections = new LevelChunkSection[heightLimitView.getSectionsCount()]; diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 57805b84054e44a3d7c95cf269316a42205bb99c..17d36b53ec8efbc60b0648764f7195003e40fdcc 100644 +index 57805b84054e44a3d7c95cf269316a42205bb99c..e9670e43a146288ad0e5a33dfc02b90fc1eee95b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -114,6 +114,109 @@ public class LevelChunk extends ChunkAccess { @@ -7751,15 +7699,7 @@ index 57805b84054e44a3d7c95cf269316a42205bb99c..17d36b53ec8efbc60b0648764f719500 @Override public FluidState getFluidState(BlockPos pos) { return this.getFluidState(pos.getX(), pos.getY(), pos.getZ()); -@@ -355,6 +470,7 @@ public class LevelChunk extends ChunkAccess { - return this.getBlockEntity(pos, LevelChunk.EntityCreationType.CHECK); - } - -+ @Deprecated @Nullable public final BlockEntity getTileEntityImmediately(BlockPos pos) { return this.getBlockEntity(pos, EntityCreationType.IMMEDIATE); } // Paper - OBFHELPER - @Nullable - public BlockEntity getBlockEntity(BlockPos pos, LevelChunk.EntityCreationType creationType) { - // CraftBukkit start -@@ -537,7 +653,25 @@ public class LevelChunk extends ChunkAccess { +@@ -537,7 +652,25 @@ public class LevelChunk extends ChunkAccess { // CraftBukkit start public void loadCallback() { @@ -7785,7 +7725,7 @@ index 57805b84054e44a3d7c95cf269316a42205bb99c..17d36b53ec8efbc60b0648764f719500 if (server != null) { /* * If it's a new world, the first few chunks are generated inside -@@ -578,6 +712,22 @@ public class LevelChunk extends ChunkAccess { +@@ -578,6 +711,22 @@ public class LevelChunk extends ChunkAccess { server.getPluginManager().callEvent(unloadEvent); // note: saving can be prevented, but not forced if no saving is actually required this.mustNotSave = !unloadEvent.isSaveChunk(); diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch index e70e0e49adf4..9f4a054eee0b 100644 --- a/patches/server/0014-Timings-v2.patch +++ b/patches/server/0014-Timings-v2.patch @@ -1123,7 +1123,7 @@ index 7cacfceed5ef9276a19123a8a9079579423d03ac..5cd680d2ed47aadb5e65a775d70bc662 gameprofilerfiller.pop(); gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3bd2bddb782d29e647a1f1b362a39d224151f8b1..3851c1026b91b77a02dbb5df1a1eedb212ac2a06 100644 +index cb6fbb3a1512d69a3f1192c969c3d5c78c046cef..96b1e1669b4a425bc18e5c00da18a79f20fc3e9b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1,6 +1,8 @@ @@ -1143,7 +1143,7 @@ index 3bd2bddb782d29e647a1f1b362a39d224151f8b1..3851c1026b91b77a02dbb5df1a1eedb2 import org.bukkit.craftbukkit.event.CraftEventFactory; import org.bukkit.craftbukkit.generator.CustomWorldChunkManager; import org.bukkit.craftbukkit.util.CraftNamespacedKey; -@@ -472,7 +473,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -471,7 +472,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.popPush("tickPending"); @@ -1152,7 +1152,7 @@ index 3bd2bddb782d29e647a1f1b362a39d224151f8b1..3851c1026b91b77a02dbb5df1a1eedb2 if (!this.isDebug() && flag) { j = this.getGameTime(); gameprofilerfiller.push("blockTicks"); -@@ -481,15 +482,19 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -480,15 +481,19 @@ public class ServerLevel extends Level implements WorldGenLevel { this.fluidTicks.tick(j, 65536, this::tickFluid); gameprofilerfiller.pop(); } @@ -1173,7 +1173,7 @@ index 3bd2bddb782d29e647a1f1b362a39d224151f8b1..3851c1026b91b77a02dbb5df1a1eedb2 gameprofilerfiller.popPush("blockEvents"); if (flag) { this.timings.doSounds.startTiming(); // Spigot -@@ -642,6 +647,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -641,6 +646,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.popPush("tickBlocks"); @@ -1181,7 +1181,7 @@ index 3bd2bddb782d29e647a1f1b362a39d224151f8b1..3851c1026b91b77a02dbb5df1a1eedb2 if (randomTickSpeed > 0) { LevelChunkSection[] achunksection = chunk.getSections(); -@@ -674,6 +680,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -673,6 +679,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } @@ -1189,7 +1189,7 @@ index 3bd2bddb782d29e647a1f1b362a39d224151f8b1..3851c1026b91b77a02dbb5df1a1eedb2 gameprofilerfiller.pop(); } -@@ -950,14 +957,22 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -949,14 +956,22 @@ public class ServerLevel extends Level implements WorldGenLevel { } public void tickNonPassenger(Entity entity) { @@ -1213,7 +1213,7 @@ index 3bd2bddb782d29e647a1f1b362a39d224151f8b1..3851c1026b91b77a02dbb5df1a1eedb2 entity.setOldPosAndRot(); ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -976,7 +991,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -975,7 +990,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(entity, entity1); } @@ -1222,7 +1222,7 @@ index 3bd2bddb782d29e647a1f1b362a39d224151f8b1..3851c1026b91b77a02dbb5df1a1eedb2 } -@@ -1018,6 +1033,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1017,6 +1032,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!savingDisabled) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit @@ -1230,7 +1230,7 @@ index 3bd2bddb782d29e647a1f1b362a39d224151f8b1..3851c1026b91b77a02dbb5df1a1eedb2 if (progressListener != null) { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } -@@ -1027,7 +1043,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1026,7 +1042,10 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStage(Component.translatable("menu.savingChunks")); } @@ -1557,10 +1557,10 @@ index c02fa35cefc9194d1838abbe4f2dc2b226a41e41..b300d12e9e00519028b53aca9c3fb01f private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); public CraftPersistentDataContainer persistentDataContainer; diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 17d36b53ec8efbc60b0648764f7195003e40fdcc..93348550f1632f7fc567eb5b42cd03d78532e383 100644 +index e9670e43a146288ad0e5a33dfc02b90fc1eee95b..93a73367e004979a015704d94a5669d154a2f71b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -682,6 +682,7 @@ public class LevelChunk extends ChunkAccess { +@@ -681,6 +681,7 @@ public class LevelChunk extends ChunkAccess { server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(bukkitChunk, this.needsDecoration)); if (this.needsDecoration) { @@ -1568,7 +1568,7 @@ index 17d36b53ec8efbc60b0648764f7195003e40fdcc..93348550f1632f7fc567eb5b42cd03d7 this.needsDecoration = false; java.util.Random random = new java.util.Random(); random.setSeed(this.level.getSeed()); -@@ -701,6 +702,7 @@ public class LevelChunk extends ChunkAccess { +@@ -700,6 +701,7 @@ public class LevelChunk extends ChunkAccess { } } server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk)); diff --git a/patches/server/0016-Starlight.patch b/patches/server/0016-Starlight.patch index bc4087d8e09e..e4923c64b3bb 100644 --- a/patches/server/0016-Starlight.patch +++ b/patches/server/0016-Starlight.patch @@ -4883,14 +4883,14 @@ index d11741d2618976bdb51f75d823f260f32d5bafc9..23dfc741b31cdc25265fb5daffcae634 return this.level.getChunkSource().chunkMap.isOldChunkAround(chunkPos, checkRadius); } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 07e41b936f5f229876cf9ff5cd8d6278088eee48..bf42cead5fa040d87da28d7be521b109724da19b 100644 +index b6d3f9f9520e410526cfeabcdeb9720dbe30e4bf..a009fca54665cbc3f11cad776256fbf1fbbb18c7 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -874,6 +874,7 @@ public abstract class BlockBehaviour implements FeatureElement { this.spawnTerrainParticles = blockbase_info.spawnTerrainParticles; this.instrument = blockbase_info.instrument; this.replaceable = blockbase_info.replaceable; -+ this.conditionallyFullOpaque = this.isOpaque() & this.isTransparentOnSomeFaces(); // Paper ++ this.conditionallyFullOpaque = this.canOcclude & this.useShapeForLightOcclusion; // Paper } private boolean calculateSolid() { @@ -5135,7 +5135,7 @@ index 6bb508105641b5729572736c5c3f9bd6711e309a..60e760b42dd6471a229dfd45490dcf8c @Override public BlockEntity getBlockEntity(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 93348550f1632f7fc567eb5b42cd03d78532e383..42f29413d18b0df039736a87e4e5c1d15700f916 100644 +index 93a73367e004979a015704d94a5669d154a2f71b..17725dba7cbcdce00cd23c3956eaf1642d9c424f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -219,6 +219,12 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0018-Rewrite-chunk-system.patch b/patches/server/0018-Rewrite-chunk-system.patch index b89800176082..77a109a4fbe8 100644 --- a/patches/server/0018-Rewrite-chunk-system.patch +++ b/patches/server/0018-Rewrite-chunk-system.patch @@ -19538,10 +19538,10 @@ index 5cd680d2ed47aadb5e65a775d70bc662a92e3d7a..1ad6b62ee53e2ee4a710211dfc750780 } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493f31fc964 100644 +index 96b1e1669b4a425bc18e5c00da18a79f20fc3e9b..c64448bec0dd18a49b2151c9e2ca528a65264031 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -196,7 +196,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -195,7 +195,7 @@ public class ServerLevel extends Level implements WorldGenLevel { private final MinecraftServer server; public final PrimaryLevelData serverLevelData; // CraftBukkit - type final EntityTickList entityTickList; @@ -19550,7 +19550,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 private final GameEventDispatcher gameEventDispatcher; public boolean noSave; private final SleepStatus sleepStatus; -@@ -262,50 +262,65 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -261,50 +261,65 @@ public class ServerLevel extends Level implements WorldGenLevel { return true; } @@ -19643,7 +19643,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 chunkProvider.addTicketAtLevel(TicketType.UNKNOWN, chunkPos, ticketLevel, chunkPos); chunkProvider.removeTicketAtLevel(TicketType.FUTURE_AWAIT, chunkPos, ticketLevel, holderIdentifier); -@@ -317,12 +332,228 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -316,12 +331,228 @@ public class ServerLevel extends Level implements WorldGenLevel { for (int cx = minChunkX; cx <= maxChunkX; ++cx) { for (int cz = minChunkZ; cz <= maxChunkZ; ++cz) { io.papermc.paper.chunk.system.ChunkSystem.scheduleChunkLoad( @@ -19874,7 +19874,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { -@@ -366,16 +597,16 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -365,16 +596,16 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit end boolean flag2 = minecraftserver.forceSynchronousWrites(); DataFixer datafixer = minecraftserver.getFixerUpper(); @@ -19896,7 +19896,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 return minecraftserver.overworld().getDataStorage(); }); this.chunkSource.getGeneratorState().ensureStructuresGenerated(); -@@ -404,6 +635,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -403,6 +634,9 @@ public class ServerLevel extends Level implements WorldGenLevel { return (RandomSequences) this.getDataStorage().computeIfAbsent(RandomSequences.factory(l), "random_sequences"); }); this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit @@ -19906,7 +19906,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 } /** @deprecated */ -@@ -529,7 +763,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -528,7 +762,7 @@ public class ServerLevel extends Level implements WorldGenLevel { gameprofilerfiller.push("checkDespawn"); entity.checkDespawn(); gameprofilerfiller.pop(); @@ -19915,7 +19915,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 Entity entity1 = entity.getVehicle(); if (entity1 != null) { -@@ -554,13 +788,16 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -553,13 +787,16 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.push("entityManagement"); @@ -19934,7 +19934,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 } protected void tickTime() { -@@ -1029,6 +1266,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1028,6 +1265,11 @@ public class ServerLevel extends Level implements WorldGenLevel { } public void save(@Nullable ProgressListener progressListener, boolean flush, boolean savingDisabled) { @@ -19946,7 +19946,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 ServerChunkCache chunkproviderserver = this.getChunkSource(); if (!savingDisabled) { -@@ -1044,16 +1286,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1043,16 +1285,13 @@ public class ServerLevel extends Level implements WorldGenLevel { } timings.worldSaveChunks.startTiming(); // Paper @@ -19967,7 +19967,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 // CraftBukkit start - moved from MinecraftServer.saveChunks ServerLevel worldserver1 = this; -@@ -1189,7 +1428,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1188,7 +1427,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.removePlayerImmediately((ServerPlayer) entity, Entity.RemovalReason.DISCARDED); } @@ -19976,7 +19976,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 } // CraftBukkit start -@@ -1205,7 +1444,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1204,7 +1443,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // CraftBukkit end @@ -19985,7 +19985,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 } } -@@ -1217,10 +1456,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1216,10 +1455,10 @@ public class ServerLevel extends Level implements WorldGenLevel { public boolean tryAddFreshEntityWithPassengers(Entity entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) { // CraftBukkit end Stream stream = entity.getSelfAndPassengers().map(Entity::getUUID); // CraftBukkit - decompile error @@ -19999,7 +19999,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 return false; } else { this.addFreshEntityWithPassengers(entity, reason); // CraftBukkit -@@ -1746,7 +1985,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1745,7 +1984,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } @@ -20008,7 +20008,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 bufferedwriter.write(String.format(Locale.ROOT, "block_entity_tickers: %d\n", this.blockEntityTickers.size())); bufferedwriter.write(String.format(Locale.ROOT, "block_ticks: %d\n", this.getBlockTicks().count())); bufferedwriter.write(String.format(Locale.ROOT, "fluid_ticks: %d\n", this.getFluidTicks().count())); -@@ -1795,7 +2034,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1794,7 +2033,7 @@ public class ServerLevel extends Level implements WorldGenLevel { BufferedWriter bufferedwriter2 = Files.newBufferedWriter(path1); try { @@ -20017,7 +20017,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 } catch (Throwable throwable4) { if (bufferedwriter2 != null) { try { -@@ -1816,7 +2055,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1815,7 +2054,7 @@ public class ServerLevel extends Level implements WorldGenLevel { BufferedWriter bufferedwriter3 = Files.newBufferedWriter(path2); try { @@ -20026,7 +20026,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 } catch (Throwable throwable6) { if (bufferedwriter3 != null) { try { -@@ -1958,7 +2197,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1957,7 +2196,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting public String getWatchdogStats() { @@ -20035,7 +20035,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 return BuiltInRegistries.ENTITY_TYPE.getKey(entity.getType()).toString(); }), this.blockEntityTickers.size(), ServerLevel.getTypeCount(this.blockEntityTickers, TickingBlockEntity::getType), this.getBlockTicks().count(), this.getFluidTicks().count(), this.gatherChunkSourceStats()); } -@@ -2018,15 +2257,15 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2017,15 +2256,15 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public LevelEntityGetter getEntities() { org.spigotmc.AsyncCatcher.catchOp("Chunk getEntities call"); // Spigot @@ -20056,7 +20056,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 } public void startTickingChunk(LevelChunk chunk) { -@@ -2042,34 +2281,49 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2041,34 +2280,49 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void close() throws IOException { super.close(); @@ -20113,7 +20113,7 @@ index 3851c1026b91b77a02dbb5df1a1eedb212ac2a06..0ff6e1f3f24b4086ce62faecf400c493 } @Override -@@ -2090,7 +2344,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2089,7 +2343,7 @@ public class ServerLevel extends Level implements WorldGenLevel { CrashReportCategory crashreportsystemdetails = super.fillReportDetails(report); crashreportsystemdetails.setDetail("Loaded entity count", () -> { @@ -21333,7 +21333,7 @@ index 846ae3fd184a1d63b743aa25e045604576697c96..a907b79fd8291a0e92db138f37239d17 public int getIndex() { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 42f29413d18b0df039736a87e4e5c1d15700f916..c2663fadd2c714b25fe411777ca9be957c3545df 100644 +index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403df20aae96 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -83,6 +83,7 @@ public class LevelChunk extends ChunkAccess { @@ -21344,7 +21344,7 @@ index 42f29413d18b0df039736a87e4e5c1d15700f916..c2663fadd2c714b25fe411777ca9be95 public LevelChunk(Level world, ChunkPos pos) { this(world, pos, UpgradeData.EMPTY, new LevelChunkTicks<>(), new LevelChunkTicks<>(), 0L, (LevelChunkSection[]) null, (LevelChunk.PostLoadProcessor) null, (BlendingData) null); -@@ -657,9 +658,26 @@ public class LevelChunk extends ChunkAccess { +@@ -656,9 +657,26 @@ public class LevelChunk extends ChunkAccess { } @@ -21374,7 +21374,7 @@ index 42f29413d18b0df039736a87e4e5c1d15700f916..c2663fadd2c714b25fe411777ca9be95 int chunkX = this.chunkPos.x; int chunkZ = this.chunkPos.z; net.minecraft.server.level.ServerChunkCache chunkProvider = this.level.getChunkSource(); -@@ -674,10 +692,55 @@ public class LevelChunk extends ChunkAccess { +@@ -673,10 +691,55 @@ public class LevelChunk extends ChunkAccess { } } this.setNeighbourLoaded(0, 0, this); @@ -21432,7 +21432,7 @@ index 42f29413d18b0df039736a87e4e5c1d15700f916..c2663fadd2c714b25fe411777ca9be95 if (server != null) { /* * If it's a new world, the first few chunks are generated inside -@@ -686,6 +749,7 @@ public class LevelChunk extends ChunkAccess { +@@ -685,6 +748,7 @@ public class LevelChunk extends ChunkAccess { */ org.bukkit.Chunk bukkitChunk = new org.bukkit.craftbukkit.CraftChunk(this); server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(bukkitChunk, this.needsDecoration)); @@ -21440,7 +21440,7 @@ index 42f29413d18b0df039736a87e4e5c1d15700f916..c2663fadd2c714b25fe411777ca9be95 if (this.needsDecoration) { try (co.aikar.timings.Timing ignored = this.level.timings.chunkLoadPopulate.startTiming()) { // Paper -@@ -714,9 +778,11 @@ public class LevelChunk extends ChunkAccess { +@@ -713,9 +777,11 @@ public class LevelChunk extends ChunkAccess { } public void unloadCallback() { @@ -21453,7 +21453,7 @@ index 42f29413d18b0df039736a87e4e5c1d15700f916..c2663fadd2c714b25fe411777ca9be95 server.getPluginManager().callEvent(unloadEvent); // note: saving can be prevented, but not forced if no saving is actually required this.mustNotSave = !unloadEvent.isSaveChunk(); -@@ -738,9 +804,26 @@ public class LevelChunk extends ChunkAccess { +@@ -737,9 +803,26 @@ public class LevelChunk extends ChunkAccess { // Paper end } @@ -21481,7 +21481,7 @@ index 42f29413d18b0df039736a87e4e5c1d15700f916..c2663fadd2c714b25fe411777ca9be95 } // CraftBukkit end -@@ -809,7 +892,9 @@ public class LevelChunk extends ChunkAccess { +@@ -808,7 +891,9 @@ public class LevelChunk extends ChunkAccess { return this.blockEntities; } @@ -21491,7 +21491,7 @@ index 42f29413d18b0df039736a87e4e5c1d15700f916..c2663fadd2c714b25fe411777ca9be95 ChunkPos chunkcoordintpair = this.getPos(); for (int i = 0; i < this.postProcessing.length; ++i) { -@@ -830,6 +915,7 @@ public class LevelChunk extends ChunkAccess { +@@ -829,6 +914,7 @@ public class LevelChunk extends ChunkAccess { BlockState iblockdata1 = Block.updateFromNeighbourShapes(iblockdata, this.level, blockposition); this.level.setBlock(blockposition, iblockdata1, 20); @@ -21499,7 +21499,7 @@ index 42f29413d18b0df039736a87e4e5c1d15700f916..c2663fadd2c714b25fe411777ca9be95 } } -@@ -847,6 +933,10 @@ public class LevelChunk extends ChunkAccess { +@@ -846,6 +932,10 @@ public class LevelChunk extends ChunkAccess { this.pendingBlockEntities.clear(); this.upgradeData.upgrade(this); @@ -21510,7 +21510,7 @@ index 42f29413d18b0df039736a87e4e5c1d15700f916..c2663fadd2c714b25fe411777ca9be95 } @Nullable -@@ -896,7 +986,7 @@ public class LevelChunk extends ChunkAccess { +@@ -895,7 +985,7 @@ public class LevelChunk extends ChunkAccess { } public FullChunkStatus getFullStatus() { diff --git a/patches/server/0033-Entity-Origin-API.patch b/patches/server/0033-Entity-Origin-API.patch index f8ea2c0a6775..018485972afd 100644 --- a/patches/server/0033-Entity-Origin-API.patch +++ b/patches/server/0033-Entity-Origin-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity Origin API diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0ff6e1f3f24b4086ce62faecf400c493f31fc964..7431b66079406a311a8e46ccabc8f3efa67f37e8 100644 +index c64448bec0dd18a49b2151c9e2ca528a65264031..88e9f55c50d2952df9c3b19cf95025c20ade9ffc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2404,6 +2404,15 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2403,6 +2403,15 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::add); entity.inWorld = true; // CraftBukkit - Mark entity as in world entity.valid = true; // CraftBukkit diff --git a/patches/server/0034-Prevent-tile-entity-and-entity-crashes.patch b/patches/server/0034-Prevent-tile-entity-and-entity-crashes.patch index db4ac8359d68..c059488d432f 100644 --- a/patches/server/0034-Prevent-tile-entity-and-entity-crashes.patch +++ b/patches/server/0034-Prevent-tile-entity-and-entity-crashes.patch @@ -44,10 +44,10 @@ index b300d12e9e00519028b53aca9c3fb01f589eaa91..63acd109a79ed752a05df3d4f1b99309 } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index c2663fadd2c714b25fe411777ca9be957c3545df..86bcebd778e5d51e1029b96048145622cd2811f3 100644 +index 6fb729809dffc1c0ab6957a127f8403df20aae96..db3ee1f1d8429d3d646623877adc9f6920b7764f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -1143,11 +1143,11 @@ public class LevelChunk extends ChunkAccess { +@@ -1142,11 +1142,11 @@ public class LevelChunk extends ChunkAccess { gameprofilerfiller.pop(); } catch (Throwable throwable) { diff --git a/patches/server/0042-Disable-thunder.patch b/patches/server/0042-Disable-thunder.patch index 3c1ca12b7dba..62d5ea3c8181 100644 --- a/patches/server/0042-Disable-thunder.patch +++ b/patches/server/0042-Disable-thunder.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable thunder diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 7431b66079406a311a8e46ccabc8f3efa67f37e8..93b67b8cf9f2e290ffedba0ae85a3949e483442e 100644 +index 88e9f55c50d2952df9c3b19cf95025c20ade9ffc..11a829cc28e01f083c4669a8a28e377b96c3db0a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -847,7 +847,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -846,7 +846,7 @@ public class ServerLevel extends Level implements WorldGenLevel { ProfilerFiller gameprofilerfiller = this.getProfiler(); gameprofilerfiller.push("thunder"); diff --git a/patches/server/0043-Disable-ice-and-snow.patch b/patches/server/0043-Disable-ice-and-snow.patch index 164770d59ce6..99dfc676d78a 100644 --- a/patches/server/0043-Disable-ice-and-snow.patch +++ b/patches/server/0043-Disable-ice-and-snow.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable ice and snow diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 93b67b8cf9f2e290ffedba0ae85a3949e483442e..287af97463b780649f91065959898d7ced86c150 100644 +index 11a829cc28e01f083c4669a8a28e377b96c3db0a..f1b34765b436461f09e8b9122cb981e319684838 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -877,11 +877,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -876,11 +876,13 @@ public class ServerLevel extends Level implements WorldGenLevel { gameprofilerfiller.popPush("iceandsnow"); diff --git a/patches/server/0060-Add-exception-reporting-event.patch b/patches/server/0060-Add-exception-reporting-event.patch index f70ac64ff5cb..961ac4d600a8 100644 --- a/patches/server/0060-Add-exception-reporting-event.patch +++ b/patches/server/0060-Add-exception-reporting-event.patch @@ -131,7 +131,7 @@ index 5d65baba605dd83e5f74d526aeda36d8ede8c014..92e76dd39dc3575e9466031dd799080a } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 86bcebd778e5d51e1029b96048145622cd2811f3..c050a5d39087722dad6bb31f95b7b04fe7e8b767 100644 +index db3ee1f1d8429d3d646623877adc9f6920b7764f..b589b67471367f37e6d1f4737122914a649c01b3 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -1,6 +1,7 @@ @@ -142,7 +142,7 @@ index 86bcebd778e5d51e1029b96048145622cd2811f3..c050a5d39087722dad6bb31f95b7b04f import com.google.common.collect.Maps; import com.google.common.collect.UnmodifiableIterator; import com.mojang.logging.LogUtils; -@@ -565,10 +566,16 @@ public class LevelChunk extends ChunkAccess { +@@ -564,10 +565,16 @@ public class LevelChunk extends ChunkAccess { // CraftBukkit start } else { @@ -163,7 +163,7 @@ index 86bcebd778e5d51e1029b96048145622cd2811f3..c050a5d39087722dad6bb31f95b7b04f // CraftBukkit end } } -@@ -1146,6 +1153,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1145,6 +1152,7 @@ public class LevelChunk extends ChunkAccess { // Paper start - Prevent tile entity and entity crashes final String msg = String.format("BlockEntity threw exception at %s:%s,%s,%s", LevelChunk.this.getLevel().getWorld().getName(), this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()); net.minecraft.server.MinecraftServer.LOGGER.error(msg, throwable); diff --git a/patches/server/0070-Add-World-Util-Methods.patch b/patches/server/0070-Add-World-Util-Methods.patch index ff4b919c769a..59a123af8b8f 100644 --- a/patches/server/0070-Add-World-Util-Methods.patch +++ b/patches/server/0070-Add-World-Util-Methods.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add World Util Methods Methods that can be used for other patches to help improve logic. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 91683741c38cb9b9224c40a7637580bb4d15b075..88249c9a31e6dc1bb0912daebed80ede4d791d9f 100644 +index f1b34765b436461f09e8b9122cb981e319684838..68035b041157ddbfcbefbcc3a2a3e2a18c558c2c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -223,7 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -222,7 +222,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final LevelStorageSource.LevelStorageAccess convertable; public final UUID uuid; @@ -19,7 +19,7 @@ index 91683741c38cb9b9224c40a7637580bb4d15b075..88249c9a31e6dc1bb0912daebed80ede } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 5c42b38ab337a3fd4e4b4ac8d0aa2db43540446c..ed38ad96b9344903097962a5bf94fb861651fcba 100644 +index 9a39bf50668340a77bbfd45218c03d9c00a6ce1e..076caf94ff0b91b1c3d2b8a335e3d67f006e0c73 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -345,6 +345,22 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0075-Configurable-spawn-chances-for-skeleton-horses.patch b/patches/server/0075-Configurable-spawn-chances-for-skeleton-horses.patch index fba0df6afa1a..18fdfc4694ce 100644 --- a/patches/server/0075-Configurable-spawn-chances-for-skeleton-horses.patch +++ b/patches/server/0075-Configurable-spawn-chances-for-skeleton-horses.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable spawn chances for skeleton horses diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 82e1ef7c041c620741e9b714d73ced1a9cc76a67..119b317c75c4a6c6c600f2402dc9b28f62deab03 100644 +index 68035b041157ddbfcbefbcc3a2a3e2a18c558c2c..148d1a15e861a26c8fd49204f9bd9821f3cde2fd 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -852,7 +852,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -851,7 +851,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (this.isRainingAt(blockposition)) { DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition); diff --git a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch index 75b77a04a0e0..db341b55c9ac 100644 --- a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch +++ b/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch @@ -18,10 +18,10 @@ index e0a2759169f41b68b8e1bc48f0b323c0a4bc1fed..180bcaa2b5a74c527d8556301fb4a816 this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 30ae12f1d6abdaeaac070c54a22f0c869143745f..f9e9348a897d8f8bd5eb5bd951c6e2416e73562d 100644 +index 148d1a15e861a26c8fd49204f9bd9821f3cde2fd..f95d4fc714b98a86d732d16f0b783cd943ce0c15 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -222,6 +222,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit start public final LevelStorageSource.LevelStorageAccess convertable; public final UUID uuid; @@ -30,7 +30,7 @@ index 30ae12f1d6abdaeaac070c54a22f0c869143745f..f9e9348a897d8f8bd5eb5bd951c6e241 @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a589b70303bf66c41e6ea1dbf493d14304df25ab..9bb380e7c8973b4728b5d4aad663af9e477dda0c 100644 +index dce30af3c82d6fe13fa7edec451aedc6d1db9a34..866fa3107c52a3a6c8163140b0f90fb1f6520083 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -583,7 +583,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0078-Entity-AddTo-RemoveFrom-World-Events.patch b/patches/server/0078-Entity-AddTo-RemoveFrom-World-Events.patch index c683bb8473c1..0a8704bc073e 100644 --- a/patches/server/0078-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/patches/server/0078-Entity-AddTo-RemoveFrom-World-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity AddTo/RemoveFrom World Events diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b854f430048f7e6531a9394fcb2e13ffc40f66bd..be98fe9934ec1b22c7b1c743bc137c805aea92e2 100644 +index f95d4fc714b98a86d732d16f0b783cd943ce0c15..ab55b028239f75b23a3e3fee10305a7896c2522b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2416,6 +2416,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2415,6 +2415,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.setOrigin(entity.getOriginVector().toLocation(getWorld())); } // Paper end @@ -16,7 +16,7 @@ index b854f430048f7e6531a9394fcb2e13ffc40f66bd..be98fe9934ec1b22c7b1c743bc137c80 } public void onTrackingEnd(Entity entity) { -@@ -2491,6 +2492,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2490,6 +2491,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // CraftBukkit end diff --git a/patches/server/0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch b/patches/server/0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch index b04392dd4b5f..5a4e12618eca 100644 --- a/patches/server/0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch +++ b/patches/server/0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix Cancelling BlockPlaceEvent triggering physics diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index be98fe9934ec1b22c7b1c743bc137c805aea92e2..de95a2e79894c1552b28c8c4f6aa36fc26929098 100644 +index ab55b028239f75b23a3e3fee10305a7896c2522b..3379c481659b28671779f5434b31523941cb620e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1624,6 +1624,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1623,6 +1623,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void updateNeighborsAt(BlockPos pos, Block sourceBlock) { diff --git a/patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch index a5661b0c246d..43b9ea01a1c9 100644 --- a/patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch +++ b/patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch @@ -13,10 +13,10 @@ custom renderers are in use, defaulting to the much simpler Vanilla system. Additionally, numerous issues to player position tracking on maps has been fixed. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index de95a2e79894c1552b28c8c4f6aa36fc26929098..173ee629f92905e3905b4786905d976ed9e22978 100644 +index 3379c481659b28671779f5434b31523941cb620e..eb7c37da48b4b06d24f4f02132a5d5ac89de658b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2437,6 +2437,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2436,6 +2436,7 @@ public class ServerLevel extends Level implements WorldGenLevel { { if ( iter.next().player == entity ) { diff --git a/patches/server/0102-Fix-global-sound-handling.patch b/patches/server/0102-Fix-global-sound-handling.patch index 860d760f9dab..0f804af1ee45 100644 --- a/patches/server/0102-Fix-global-sound-handling.patch +++ b/patches/server/0102-Fix-global-sound-handling.patch @@ -11,10 +11,10 @@ Co-authored-by: lexikiq Co-authored-by: Aikar diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 173ee629f92905e3905b4786905d976ed9e22978..5847f0ace5b7adb631f1f71f36b78807c8ab8509 100644 +index eb7c37da48b4b06d24f4f02132a5d5ac89de658b..c63df0042b23e3728d5283b563889225691f6d56 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1558,7 +1558,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1557,7 +1557,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void levelEvent(@Nullable Player player, int eventId, BlockPos pos, int data) { diff --git a/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch b/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch index 1b7d7ce46ac4..8ee73403ddfa 100644 --- a/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch +++ b/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch @@ -16,10 +16,10 @@ public net.minecraft.world.entity.projectile.Projectile cachedOwner public net.minecraft.world.entity.projectile.Projectile ownerUUID diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5847f0ace5b7adb631f1f71f36b78807c8ab8509..7c1e5806d7b5e7dbb53050de24f5f6e668fa90f4 100644 +index c63df0042b23e3728d5283b563889225691f6d56..8afcd4e3a3805c7bccffaf6ff751e23101db6ed8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2369,6 +2369,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2368,6 +2368,12 @@ public class ServerLevel extends Level implements WorldGenLevel { public void onTickingEnd(Entity entity) { ServerLevel.this.entityTickList.remove(entity); diff --git a/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch index 5cd6f9f89966..c2ea27c3e84b 100644 --- a/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -10,10 +10,10 @@ Adds an option to control the force mode of the particle. This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 7c1e5806d7b5e7dbb53050de24f5f6e668fa90f4..29044088ea933e2ba2c7f98d7a59c880a8d774fb 100644 +index 8afcd4e3a3805c7bccffaf6ff751e23101db6ed8..e96abf6afd434c104437e2461431f8b4c82c1d00 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1743,12 +1743,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1742,12 +1742,17 @@ public class ServerLevel extends Level implements WorldGenLevel { } public int sendParticles(ServerPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) { diff --git a/patches/server/0213-InventoryCloseEvent-Reason-API.patch b/patches/server/0213-InventoryCloseEvent-Reason-API.patch index 00ed17f9bec3..14c54c7388a1 100644 --- a/patches/server/0213-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0213-InventoryCloseEvent-Reason-API.patch @@ -7,10 +7,10 @@ Allows you to determine why an inventory was closed, enabling plugin developers to "confirm" things based on if it was player triggered close or not. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 29044088ea933e2ba2c7f98d7a59c880a8d774fb..c7de5cd2cca4580ef7ff59763eae3c8d6eef209c 100644 +index e96abf6afd434c104437e2461431f8b4c82c1d00..e91ce13c4dbea719e567018ace8908d2c7b51b30 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1475,7 +1475,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1474,7 +1474,7 @@ public class ServerLevel extends Level implements WorldGenLevel { for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) { if (tileentity instanceof net.minecraft.world.Container) { for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((net.minecraft.world.Container) tileentity).getViewers())) { @@ -19,7 +19,7 @@ index 29044088ea933e2ba2c7f98d7a59c880a8d774fb..c7de5cd2cca4580ef7ff59763eae3c8d } } } -@@ -2460,7 +2460,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2459,7 +2459,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) { diff --git a/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 626622cb6447..dea8d1cfca79 100644 --- a/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -29,10 +29,10 @@ index c9e3e104cd051a38e367653dc6c4f969665fc250..45ee0cd242271883412284625230822d protected void tick() { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c7de5cd2cca4580ef7ff59763eae3c8d6eef209c..98de2c14e146f862adc37fde428cf6c46d98d790 100644 +index e91ce13c4dbea719e567018ace8908d2c7b51b30..ea3b3652a560318a581f251732f47ec0fceed693 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -223,6 +223,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -222,6 +222,9 @@ public class ServerLevel extends Level implements WorldGenLevel { public final LevelStorageSource.LevelStorageAccess convertable; public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper @@ -42,7 +42,7 @@ index c7de5cd2cca4580ef7ff59763eae3c8d6eef209c..98de2c14e146f862adc37fde428cf6c4 @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkSource.getChunk(x, z, false); -@@ -1437,7 +1440,28 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1436,7 +1439,28 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit start private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot @@ -72,7 +72,7 @@ index c7de5cd2cca4580ef7ff59763eae3c8d6eef209c..98de2c14e146f862adc37fde428cf6c4 return false; } else { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 17cae197f76e02491791c55554bd57592a30aa1d..7be66f8649d6f6cb67e3b42e8f4fe739f0ff9f9f 100644 +index 112f1d81ae21a28befbd4e09a40127a193796013..58e16b14548d5a8a476d3d71229627a83c59420e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -239,6 +239,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0242-Optimize-CraftBlockData-Creation.patch b/patches/server/0242-Optimize-CraftBlockData-Creation.patch index 5884b542b514..a9c505dbc8b2 100644 --- a/patches/server/0242-Optimize-CraftBlockData-Creation.patch +++ b/patches/server/0242-Optimize-CraftBlockData-Creation.patch @@ -7,12 +7,12 @@ Avoids a hashmap lookup by cacheing a reference to the CraftBlockData and cloning it when one is needed. diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index bf42cead5fa040d87da28d7be521b109724da19b..b4241ccdf972feec3dc2802ceafeef4f004c62d5 100644 +index a009fca54665cbc3f11cad776256fbf1fbbb18c7..2c7d025b2af3a66772c3f394620483045fb80242 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -876,6 +876,14 @@ public abstract class BlockBehaviour implements FeatureElement { this.replaceable = blockbase_info.replaceable; - this.conditionallyFullOpaque = this.isOpaque() & this.isTransparentOnSomeFaces(); // Paper + this.conditionallyFullOpaque = this.canOcclude & this.useShapeForLightOcclusion; // Paper } + // 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; diff --git a/patches/server/0295-Entity-getEntitySpawnReason.patch b/patches/server/0295-Entity-getEntitySpawnReason.patch index 4c18450bb0a3..bbb7d00219cc 100644 --- a/patches/server/0295-Entity-getEntitySpawnReason.patch +++ b/patches/server/0295-Entity-getEntitySpawnReason.patch @@ -22,10 +22,10 @@ index 2eddeb8d5239bbfeefbf4d3bd363f1ad083299b6..a7c89cdf20cb63792c76de81c1ff9f2c }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 98de2c14e146f862adc37fde428cf6c46d98d790..9b687c6a134641dab0e60fe58372899a7f2945f5 100644 +index ea3b3652a560318a581f251732f47ec0fceed693..9634efd5e5ef45c905de4af05ee341b6c88a879b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1455,6 +1455,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1454,6 +1454,7 @@ public class ServerLevel extends Level implements WorldGenLevel { return true; } // Paper end @@ -59,7 +59,7 @@ index 18dc5ef7892c24f4071c8c0621ac412a5d8767bd..c98e4469fa8940762c26a8d787bfabe4 }); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fa24d236ed330b417306f137d441bb08dc79a3f5..5397d84d790c32d369b0726db16571348285d8fb 100644 +index f0179182df5a716860c9d9f211415dccd6313b92..bbc16fbf403f7722c3d15eb8d63f9abd5e973bfd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -235,6 +235,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0308-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/patches/server/0308-Configurable-Keep-Spawn-Loaded-range-per-world.patch index 240ce7f9ae0d..e4eb06fae7e4 100644 --- a/patches/server/0308-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/patches/server/0308-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -63,10 +63,10 @@ index af90bb579429336cc4e99386fd620c898c23d274..96fd66ed2742a79064852af6e936830d // this.updateMobSpawningFlags(); worldserver.setSpawnSettings(this.isSpawningMonsters(), this.isSpawningAnimals()); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9b687c6a134641dab0e60fe58372899a7f2945f5..1867dffd8bdfa1ffb070f90ca76b4c7c74de9352 100644 +index 9634efd5e5ef45c905de4af05ee341b6c88a879b..5faaa29ea1e594c9e42e2a0c396ca0a40137119e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1898,12 +1898,84 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1897,12 +1897,84 @@ public class ServerLevel extends Level implements WorldGenLevel { return ((MapIndex) this.getServer().overworld().getDataStorage().computeIfAbsent(MapIndex.factory(), "idcounts")).getFreeAuxValueForMap(); } diff --git a/patches/server/0327-Optimise-EntityGetter-getPlayerByUUID.patch b/patches/server/0327-Optimise-EntityGetter-getPlayerByUUID.patch index 0b0e0e77709e..5d8335858245 100644 --- a/patches/server/0327-Optimise-EntityGetter-getPlayerByUUID.patch +++ b/patches/server/0327-Optimise-EntityGetter-getPlayerByUUID.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimise EntityGetter#getPlayerByUUID Use the PlayerList map instead of iterating over all players diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1867dffd8bdfa1ffb070f90ca76b4c7c74de9352..86f2d1c6298a08968febf1bfd5073ac386c0a998 100644 +index 5faaa29ea1e594c9e42e2a0c396ca0a40137119e..29a6c17103b443af83cf1506a0d1cfc328028270 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -559,6 +559,15 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -558,6 +558,15 @@ public class ServerLevel extends Level implements WorldGenLevel { }); } diff --git a/patches/server/0331-Entity-Activation-Range-2.0.patch b/patches/server/0331-Entity-Activation-Range-2.0.patch index 30dd9f1b9af9..cb5724efde6e 100644 --- a/patches/server/0331-Entity-Activation-Range-2.0.patch +++ b/patches/server/0331-Entity-Activation-Range-2.0.patch @@ -18,7 +18,7 @@ public net.minecraft.world.entity.Entity isInsidePortal public net.minecraft.world.entity.LivingEntity jumping diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 86f2d1c6298a08968febf1bfd5073ac386c0a998..e147ec8eeb69668da8eb52550c39623f700c2052 100644 +index 29a6c17103b443af83cf1506a0d1cfc328028270..feff680a737640f33f6efd9f0e2705e4a01ea7bb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2,7 +2,6 @@ package net.minecraft.server.level; @@ -29,7 +29,7 @@ index 86f2d1c6298a08968febf1bfd5073ac386c0a998..e147ec8eeb69668da8eb52550c39623f import com.google.common.collect.Lists; import com.mojang.datafixers.DataFixer; import com.mojang.datafixers.util.Pair; -@@ -1212,17 +1211,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1211,17 +1210,17 @@ public class ServerLevel extends Level implements WorldGenLevel { ++TimingHistory.entityTicks; // Paper - timings // Spigot start co.aikar.timings.Timing timer; // Paper @@ -51,7 +51,7 @@ index 86f2d1c6298a08968febf1bfd5073ac386c0a998..e147ec8eeb69668da8eb52550c39623f try { // Paper end - timings entity.setOldPosAndRot(); -@@ -1233,9 +1232,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1232,9 +1231,13 @@ public class ServerLevel extends Level implements WorldGenLevel { return BuiltInRegistries.ENTITY_TYPE.getKey(entity.getType()).toString(); }); gameprofilerfiller.incrementCounter("tickNonPassenger"); @@ -65,7 +65,7 @@ index 86f2d1c6298a08968febf1bfd5073ac386c0a998..e147ec8eeb69668da8eb52550c39623f Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1243,13 +1246,18 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1242,13 +1245,18 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(entity, entity1); } @@ -85,7 +85,7 @@ index 86f2d1c6298a08968febf1bfd5073ac386c0a998..e147ec8eeb69668da8eb52550c39623f passenger.setOldPosAndRot(); ++passenger.tickCount; ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1258,8 +1266,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1257,8 +1265,17 @@ public class ServerLevel extends Level implements WorldGenLevel { return BuiltInRegistries.ENTITY_TYPE.getKey(passenger.getType()).toString(); }); gameprofilerfiller.incrementCounter("tickPassenger"); @@ -103,7 +103,7 @@ index 86f2d1c6298a08968febf1bfd5073ac386c0a998..e147ec8eeb69668da8eb52550c39623f gameprofilerfiller.pop(); Iterator iterator = passenger.getPassengers().iterator(); -@@ -1269,6 +1286,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1268,6 +1285,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(passenger, entity2); } @@ -112,7 +112,7 @@ index 86f2d1c6298a08968febf1bfd5073ac386c0a998..e147ec8eeb69668da8eb52550c39623f } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5397d84d790c32d369b0726db16571348285d8fb..b65c8b48c3a3dd71cb5945dca104cc67a1f2ce6d 100644 +index bbc16fbf403f7722c3d15eb8d63f9abd5e973bfd..dfaba87aa2cfb7687acaa0472c2370a2c4cefbc5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -395,6 +395,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -348,7 +348,7 @@ index b149e8bcac034bb3fc118a9adcb0de45e18ed5e9..fc35cfc9d045f3e5b6a50af1d0ba83b6 + } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index f131fdd758c42da3be15b6cd6334c50c01ab407c..e4c0e0eb3ee268c82019fbebe11008373e8148a0 100644 +index 7366bef851d283b30401c8be7057f01d703e486e..8c4fcb49c1cd90751bcc776a119f4d503b2bbf06 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -163,6 +163,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0337-Anti-Xray.patch b/patches/server/0337-Anti-Xray.patch index 109ef46716cd..950b1f24fa36 100644 --- a/patches/server/0337-Anti-Xray.patch +++ b/patches/server/0337-Anti-Xray.patch @@ -1104,10 +1104,10 @@ index be89e5b8c1ea7f85aef267a15986affa5fa1fd4b..43472855136f26b282d94fd241853d86 public ClientboundLevelChunkWithLightPacket(FriendlyByteBuf buf) { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e147ec8eeb69668da8eb52550c39623f700c2052..2a6ac42a2b7388dcbd405fb00b05067b8b5a78cb 100644 +index feff680a737640f33f6efd9f0e2705e4a01ea7bb..bfbac715787bc75f77cfd3047f67613e56d7e64b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -573,7 +573,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -572,7 +572,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Holder holder = worlddimension.type(); // CraftBukkit - decompile error // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error @@ -1155,7 +1155,7 @@ index 5de5209e04d631bd6a50e28e8d3abebf148252c1..19b3f4fa7678a038bf25efc2a8b46dda DebugPackets.sendPoiPacketsForChunk(world, chunkPos); } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e4c0e0eb3ee268c82019fbebe11008373e8148a0..5d344f88e5e5ff73ae29833952fc2df80473ced6 100644 +index 8c4fcb49c1cd90751bcc776a119f4d503b2bbf06..864b1985ba645b709e2cb5e7fd036e7664063ce5 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -178,6 +178,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1217,7 +1217,7 @@ index 5e8d2e4245757a0889645ea79ee68afb53f7dde4..f7e5e016a7028a9196e689e950805b0d } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index d9d2bf31a0e7ad374aa62197c71626a1abfbaf71..4a5491a79281b7cddf5ad5f060567f174b89d14b 100644 +index 86eff98a4f73fc1eb1f5f977204aa9307aa54013..e599bfb9a7b0b85bea2940f6bf55118305dd0ce8 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -91,7 +91,7 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0341-Add-debug-for-sync-chunk-loads.patch b/patches/server/0341-Add-debug-for-sync-chunk-loads.patch index a61d557719ee..008c6ebb0cd5 100644 --- a/patches/server/0341-Add-debug-for-sync-chunk-loads.patch +++ b/patches/server/0341-Add-debug-for-sync-chunk-loads.patch @@ -312,10 +312,10 @@ index 4039bd5a80bd2305082d21c0fe826f76d8beb4c4..974b4970be214ca36a801d39932abcc7 chunkproviderserver_b.managedBlock(completablefuture::isDone); io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - async chunk debug // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2a6ac42a2b7388dcbd405fb00b05067b8b5a78cb..6a2ced4ff900f07833400926333fee527fac1074 100644 +index bfbac715787bc75f77cfd3047f67613e56d7e64b..2480f05dd9ecb2d68ccf193354872ae8cb4009f3 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -652,6 +652,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -651,6 +651,13 @@ public class ServerLevel extends Level implements WorldGenLevel { this.entityLookup = new io.papermc.paper.chunk.system.entity.EntityLookup(this, new EntityCallbacks()); // Paper - rewrite chunk system } diff --git a/patches/server/0359-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/server/0359-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch index 14d1ad78e9f3..25f1551ea618 100644 --- a/patches/server/0359-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch +++ b/patches/server/0359-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch @@ -25,10 +25,10 @@ index 1f9efff4ddccf2569fdfe42e6cbc92792643d0ea..876200db872bce89976329c4d6c6fbe9 EntityType entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6a2ced4ff900f07833400926333fee527fac1074..1e54396f42737f18d6b3cef7d0c208ec03088b73 100644 +index 2480f05dd9ecb2d68ccf193354872ae8cb4009f3..bd40d4056fbf237f2a3f6c7178bed699f9bdf389 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2515,7 +2515,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2514,7 +2514,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public void onTrackingStart(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot @@ -37,7 +37,7 @@ index 6a2ced4ff900f07833400926333fee527fac1074..1e54396f42737f18d6b3cef7d0c208ec if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -2550,6 +2550,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2549,6 +2549,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::add); entity.inWorld = true; // CraftBukkit - Mark entity as in world entity.valid = true; // CraftBukkit diff --git a/patches/server/0365-Improved-Watchdog-Support.patch b/patches/server/0365-Improved-Watchdog-Support.patch index 7f3215ce56c0..4e6962d78d3d 100644 --- a/patches/server/0365-Improved-Watchdog-Support.patch +++ b/patches/server/0365-Improved-Watchdog-Support.patch @@ -296,7 +296,7 @@ index f5829ae484d93b547a5437b85a9621346384a11b..83701fbfaa56a232593ee8f11a3afb89 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 571019880cd9f22f347ac8fca663728b6706912d..7d213ebc6a3d9dc15468a6cfb472306121c3ca15 100644 +index 864b1985ba645b709e2cb5e7fd036e7664063ce5..9c798dc5fc321697cea669d4656460e4971a92b5 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -913,6 +913,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -308,10 +308,10 @@ index 571019880cd9f22f347ac8fca663728b6706912d..7d213ebc6a3d9dc15468a6cfb4723061 final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ()); MinecraftServer.LOGGER.error(msg, throwable); diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 12834995b2bab9e82a40feb01f038532961296cf..12af77215bfd6df3b6802a567ac3c013a4cdf06a 100644 +index 3acef646275aa05100e13e149bc5ff6d1ccbbea8..45ecda3b67025881a145d40a5291c34e5a1f9590 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -1177,6 +1177,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1176,6 +1176,7 @@ public class LevelChunk extends ChunkAccess { gameprofilerfiller.pop(); } catch (Throwable throwable) { diff --git a/patches/server/0386-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0386-Deobfuscate-stacktraces-in-log-messages-crash-report.patch index 023909195a3d..fee4fc6f2bf7 100644 --- a/patches/server/0386-Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/0386-Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -557,10 +557,10 @@ index fe47a38137f7b7fa94c507e790eec4fb7303595f..7f5ecea0ee78a534d7c56fa9e3ad2117 paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1e54396f42737f18d6b3cef7d0c208ec03088b73..f734f6476c89bbed511d0b8209bd1cbdbd791998 100644 +index bd40d4056fbf237f2a3f6c7178bed699f9bdf389..2e04cf910a520b92ac43a5ff2d06d9d61402c3cb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -223,7 +223,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -222,7 +222,9 @@ public class ServerLevel extends Level implements WorldGenLevel { public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper public static Throwable getAddToWorldStackTrace(Entity entity) { @@ -571,7 +571,7 @@ index 1e54396f42737f18d6b3cef7d0c208ec03088b73..f734f6476c89bbed511d0b8209bd1cbd } @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI -@@ -1493,7 +1495,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1492,7 +1494,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity.isRemoved()) { // Paper start if (DEBUG_ENTITIES) { @@ -633,10 +633,10 @@ index 6a64c58fff9bbed542bf29a029531996f2a50d00..c24898f8e81e8ab9a1f90bf4439ea6c6 } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 12af77215bfd6df3b6802a567ac3c013a4cdf06a..fa170cc1ce7011d201295b89718292d696c7fc24 100644 +index 45ecda3b67025881a145d40a5291c34e5a1f9590..27e8ee4507460b1cc72de692b41562b9f4f13929 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -600,7 +600,7 @@ public class LevelChunk extends ChunkAccess { +@@ -599,7 +599,7 @@ public class LevelChunk extends ChunkAccess { + " (" + getBlockState(blockposition) + ") where there was no entity tile!\n" + "Chunk coordinates: " + (this.chunkPos.x * 16) + "," + (this.chunkPos.z * 16) + "\nWorld: " + level.getLevel().dimension().location()); diff --git a/patches/server/0418-incremental-chunk-and-player-saving.patch b/patches/server/0418-incremental-chunk-and-player-saving.patch index 9ed020478a18..b80e5943e642 100644 --- a/patches/server/0418-incremental-chunk-and-player-saving.patch +++ b/patches/server/0418-incremental-chunk-and-player-saving.patch @@ -76,10 +76,10 @@ index 974b4970be214ca36a801d39932abcc751e540a5..63fad53a9184d7ab97f143b7d85ae9ef public void close() throws IOException { // CraftBukkit start diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f734f6476c89bbed511d0b8209bd1cbdbd791998..9924f0ba2ac867748e49d738ac5bcef292cfc649 100644 +index 2e04cf910a520b92ac43a5ff2d06d9d61402c3cb..206aa969d1ea8831f4c30be11ab26ecd31fd433e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1307,6 +1307,37 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1306,6 +1306,37 @@ public class ServerLevel extends Level implements WorldGenLevel { return !this.server.isUnderSpawnProtection(this, pos, player) && this.getWorldBorder().isWithinBounds(pos); } diff --git a/patches/server/0441-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0441-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 612ce91bb3fe..7b2f9eb26f90 100644 --- a/patches/server/0441-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0441-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9924f0ba2ac867748e49d738ac5bcef292cfc649..4e37b64f608b9a4c6d421fc685680f7bd2269bb1 100644 +index 206aa969d1ea8831f4c30be11ab26ecd31fd433e..08c4b6e02c257cfbdaa0da6d65e531d4ed7be122 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2035,9 +2035,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2034,9 +2034,11 @@ public class ServerLevel extends Level implements WorldGenLevel { public void setDefaultSpawnPos(BlockPos pos, float angle) { // Paper - configurable spawn radius BlockPos prevSpawn = this.getSharedSpawnPos(); diff --git a/patches/server/0458-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0458-Extend-block-drop-capture-to-capture-all-items-added.patch index c417d5112119..3e68ea2f2e41 100644 --- a/patches/server/0458-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/patches/server/0458-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Extend block drop capture to capture all items added to the diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4e37b64f608b9a4c6d421fc685680f7bd2269bb1..6a05779c83a77e16bf53b6e2378e3cb08851ed5d 100644 +index 08c4b6e02c257cfbdaa0da6d65e531d4ed7be122..5bd212dcf32fcf3ad5c3dafbd3d413755a8cd934 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1533,6 +1533,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1532,6 +1532,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; } else { diff --git a/patches/server/0521-Remove-stale-POIs.patch b/patches/server/0521-Remove-stale-POIs.patch index 772b6b12c0be..1215d86bfc27 100644 --- a/patches/server/0521-Remove-stale-POIs.patch +++ b/patches/server/0521-Remove-stale-POIs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove stale POIs diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6a05779c83a77e16bf53b6e2378e3cb08851ed5d..f1d441758874f76ecde4275bdc721cb927754542 100644 +index 5bd212dcf32fcf3ad5c3dafbd3d413755a8cd934..9ad59776ad035b8f6069f5df1fda174002ef58d1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2104,6 +2104,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2103,6 +2103,11 @@ public class ServerLevel extends Level implements WorldGenLevel { }); optional1.ifPresent((holder) -> { this.getServer().execute(() -> { diff --git a/patches/server/0538-EntityMoveEvent.patch b/patches/server/0538-EntityMoveEvent.patch index d21c548240a8..293bf8e5a072 100644 --- a/patches/server/0538-EntityMoveEvent.patch +++ b/patches/server/0538-EntityMoveEvent.patch @@ -17,10 +17,10 @@ index c063dece36e110691297b38635a9d14d70c4e391..5f440e3d3a750c65d0d13834eca553b8 this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 7b97230bfffd6cac128330cdfe451a62f0427a11..e411fe6e0e1495c417bb8938bf6bd42b7ac63f18 100644 +index 9ad59776ad035b8f6069f5df1fda174002ef58d1..c5fc4d510ebdc1308759be9f6ac79dfff9c69895 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -222,6 +222,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final LevelStorageSource.LevelStorageAccess convertable; public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper @@ -29,7 +29,7 @@ index 7b97230bfffd6cac128330cdfe451a62f0427a11..e411fe6e0e1495c417bb8938bf6bd42b final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bf617621c88c68198709d1ed238622c3fcec89bd..e112880d8389c059a5daa572cb7906d767279084 100644 +index 7d72477cdeaa8238da1291c0a902d090463b95c8..51916ff6f45090cf5e2da6b12640c130533fc4d9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3361,6 +3361,20 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0539-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0539-added-option-to-disable-pathfinding-updates-on-block.patch index 07cad2cd08e6..c702a59411d7 100644 --- a/patches/server/0539-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0539-added-option-to-disable-pathfinding-updates-on-block.patch @@ -5,10 +5,10 @@ Subject: [PATCH] added option to disable pathfinding updates on block changes diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 18aabf214ab5ffef94c71dfe1a7f1ee361a020ec..cea93f8edc6c7b03da421663fe3d9933040e3439 100644 +index c5fc4d510ebdc1308759be9f6ac79dfff9c69895..7b1374c8ee66c58fe6bd25173966d62e8971e3e4 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1678,6 +1678,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1677,6 +1677,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } this.getChunkSource().blockChanged(pos); @@ -16,7 +16,7 @@ index 18aabf214ab5ffef94c71dfe1a7f1ee361a020ec..cea93f8edc6c7b03da421663fe3d9933 VoxelShape voxelshape = oldState.getCollisionShape(this, pos); VoxelShape voxelshape1 = newState.getCollisionShape(this, pos); -@@ -1719,6 +1720,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1718,6 +1719,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } diff --git a/patches/server/0599-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0599-Add-cause-to-Weather-ThunderChangeEvents.patch index 6445926bdd50..7dd8dcb77af8 100644 --- a/patches/server/0599-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0599-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index cea93f8edc6c7b03da421663fe3d9933040e3439..a53edd823643d53e45e5376a6a5300804430e7c2 100644 +index 7b1374c8ee66c58fe6bd25173966d62e8971e3e4..e00fe39fbcd4aa54eb498b91783b7e4dd021acc0 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -673,8 +673,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -672,8 +672,8 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setClearWeatherTime(clearDuration); this.serverLevelData.setRainTime(rainDuration); this.serverLevelData.setThunderTime(rainDuration); @@ -19,7 +19,7 @@ index cea93f8edc6c7b03da421663fe3d9933040e3439..a53edd823643d53e45e5376a6a530080 } @Override -@@ -1110,8 +1110,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1109,8 +1109,8 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setThunderTime(j); this.serverLevelData.setRainTime(k); this.serverLevelData.setClearWeatherTime(i); @@ -30,7 +30,7 @@ index cea93f8edc6c7b03da421663fe3d9933040e3439..a53edd823643d53e45e5376a6a530080 } this.oThunderLevel = this.thunderLevel; -@@ -1178,14 +1178,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1177,14 +1177,14 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting public void resetWeatherCycle() { // CraftBukkit start diff --git a/patches/server/0621-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0621-Use-getChunkIfLoadedImmediately-in-places.patch index ac7985397907..0cf92aab065c 100644 --- a/patches/server/0621-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0621-Use-getChunkIfLoadedImmediately-in-places.patch @@ -8,10 +8,10 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk load in that case). diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 08fee3d75a9f7ae950698a6ca8f18917ab0e3b21..107e2b2a159838301e173323df1747954a52b104 100644 +index e00fe39fbcd4aa54eb498b91783b7e4dd021acc0..89396f956fc413f6ce53c2f66a85c395557aa883 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -230,7 +230,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -229,7 +229,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI @@ -21,7 +21,7 @@ index 08fee3d75a9f7ae950698a6ca8f18917ab0e3b21..107e2b2a159838301e173323df174795 @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index befd147f604bf9cf881893580436bbf8fbead86d..031fe212e5bc28ac675f835bec37c1bca3c5351f 100644 +index da6995bcecfb16567b8a7c13b19d08ef3e5dc5d2..06446b61b79c24bb1df194706a587597a31e5a49 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -204,6 +204,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0651-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0651-Add-methods-to-find-targets-for-lightning-strikes.patch index ce199539cde5..5ee092eda08f 100644 --- a/patches/server/0651-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0651-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Add methods to find targets for lightning strikes public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b87def2d484f014a4c20bdd75cd48611e08f0426..76c8e4083bc89c78725dde0984efdf959c4b5e92 100644 +index 89396f956fc413f6ce53c2f66a85c395557aa883..0830f7671ade925e0b89b2723cef9f43d4f20922 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -999,6 +999,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -998,6 +998,11 @@ public class ServerLevel extends Level implements WorldGenLevel { } protected BlockPos findLightningTargetAround(BlockPos pos) { @@ -22,7 +22,7 @@ index b87def2d484f014a4c20bdd75cd48611e08f0426..76c8e4083bc89c78725dde0984efdf95 BlockPos blockposition1 = this.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, pos); Optional optional = this.findLightningRod(blockposition1); -@@ -1013,6 +1018,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1012,6 +1017,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!list.isEmpty()) { return ((LivingEntity) list.get(this.random.nextInt(list.size()))).blockPosition(); } else { diff --git a/patches/server/0663-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0663-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index 3cd563ecba32..15f28499ca32 100644 --- a/patches/server/0663-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0663-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch @@ -9,10 +9,10 @@ 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/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 76c8e4083bc89c78725dde0984efdf959c4b5e92..a885b90a44066103133af953d56bb3dbb9b899be 100644 +index 0830f7671ade925e0b89b2723cef9f43d4f20922..5329fe64b64fab73d3bda02c700a6f01aa2d9637 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1579,9 +1579,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1578,9 +1578,13 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot Start for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) { if (tileentity instanceof net.minecraft.world.Container) { diff --git a/patches/server/0670-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0670-Manually-inline-methods-in-BlockPosition.patch index c8b8adfce96f..93554d0b99e8 100644 --- a/patches/server/0670-Manually-inline-methods-in-BlockPosition.patch +++ b/patches/server/0670-Manually-inline-methods-in-BlockPosition.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Manually inline methods in BlockPosition diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 441ea6b9fd55a5288f264472d7297728d0546d6b..83cab746d1d6fe25c043c8aee28c39412b90c127 100644 +index e5dfc4009cb06e500c6b54ee4228117061758b53..c47aa87db42dea74a2e07ffe6015257fa337da23 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -515,9 +515,9 @@ public class BlockPos extends Vec3i { @@ -21,8 +21,8 @@ index 441ea6b9fd55a5288f264472d7297728d0546d6b..83cab746d1d6fe25c043c8aee28c3941 return this; } -@@ -581,19 +581,19 @@ public class BlockPos extends Vec3i { - // Paper start - comment out useless overrides @Override - TODO figure out why this is suddenly important to keep +@@ -580,19 +580,19 @@ public class BlockPos extends Vec3i { + @Override public BlockPos.MutableBlockPos setX(int i) { - super.setX(i); @@ -43,7 +43,7 @@ index 441ea6b9fd55a5288f264472d7297728d0546d6b..83cab746d1d6fe25c043c8aee28c3941 + this.z = i; // Paper return this; } - // Paper end + diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java index e87ef99260bff134529e00b9a75381cecaec01a4..74a3f2ba6aaec39ba4721fb546bfccb325c86343 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java diff --git a/patches/server/0678-Execute-chunk-tasks-mid-tick.patch b/patches/server/0678-Execute-chunk-tasks-mid-tick.patch index d11ebf316a58..7fda5bbc5fce 100644 --- a/patches/server/0678-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/0678-Execute-chunk-tasks-mid-tick.patch @@ -123,10 +123,10 @@ index 63fad53a9184d7ab97f143b7d85ae9ef2ca9f8bc..1483007b79e18107e41037c279e048f0 } } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a885b90a44066103133af953d56bb3dbb9b899be..2c759854ed9f78c48c4e9ed2dc72e5a5693bd712 100644 +index 5329fe64b64fab73d3bda02c700a6f01aa2d9637..4df6c879aae57cb85c67a0c7342fc33db6f180dc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -217,6 +217,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -216,6 +216,7 @@ public class ServerLevel extends Level implements WorldGenLevel { private final StructureCheck structureCheck; private final boolean tickTime; private final RandomSequences randomSequences; @@ -134,7 +134,7 @@ index a885b90a44066103133af953d56bb3dbb9b899be..2c759854ed9f78c48c4e9ed2dc72e5a5 // CraftBukkit start public final LevelStorageSource.LevelStorageAccess convertable; -@@ -1211,6 +1212,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1210,6 +1211,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (fluid1.is(fluid)) { fluid1.tick(this, pos); } @@ -142,7 +142,7 @@ index a885b90a44066103133af953d56bb3dbb9b899be..2c759854ed9f78c48c4e9ed2dc72e5a5 } -@@ -1220,6 +1222,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1219,6 +1221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (iblockdata.is(block)) { iblockdata.tick(this, pos, this.random); } @@ -151,7 +151,7 @@ index a885b90a44066103133af953d56bb3dbb9b899be..2c759854ed9f78c48c4e9ed2dc72e5a5 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 73d3eff15c3faea7716beb5b53d66af434005d0f..cddac4571578ac8d647f3f4b20fb6f7b773aabe3 100644 +index b0a05a1a5129af0f5c11139a6fb7acd08ee3eb0e..43f43c59138b661299f20cba89d91aa5585cdf32 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -927,6 +927,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0681-Optimise-random-block-ticking.patch b/patches/server/0681-Optimise-random-block-ticking.patch index 112c88e4dc53..d875078af07d 100644 --- a/patches/server/0681-Optimise-random-block-ticking.patch +++ b/patches/server/0681-Optimise-random-block-ticking.patch @@ -90,10 +90,10 @@ index 0000000000000000000000000000000000000000..7d93652c1abbb6aee6eb7c26cf35d4d0 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2c759854ed9f78c48c4e9ed2dc72e5a5693bd712..5e5b840301bf7021ce2776f49732f608330894eb 100644 +index 4df6c879aae57cb85c67a0c7342fc33db6f180dc..bc826660514a76738f5256bf571eb2abf8bf85ef 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -861,6 +861,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -860,6 +860,10 @@ public class ServerLevel extends Level implements WorldGenLevel { entityplayer.stopSleepInBed(false, false); }); } @@ -104,7 +104,7 @@ index 2c759854ed9f78c48c4e9ed2dc72e5a5693bd712..5e5b840301bf7021ce2776f49732f608 public void tickChunk(LevelChunk chunk, int randomTickSpeed) { ChunkPos chunkcoordintpair = chunk.getPos(); -@@ -870,8 +874,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -869,8 +873,10 @@ public class ServerLevel extends Level implements WorldGenLevel { ProfilerFiller gameprofilerfiller = this.getProfiler(); gameprofilerfiller.push("thunder"); @@ -116,7 +116,7 @@ index 2c759854ed9f78c48c4e9ed2dc72e5a5693bd712..5e5b840301bf7021ce2776f49732f608 if (this.isRainingAt(blockposition)) { DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition); -@@ -903,7 +909,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -902,7 +908,10 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!this.paperConfig().environment.disableIceAndSnow) { // Paper for (int l = 0; l < randomTickSpeed; ++l) { if (this.random.nextInt(48) == 0) { @@ -128,7 +128,7 @@ index 2c759854ed9f78c48c4e9ed2dc72e5a5693bd712..5e5b840301bf7021ce2776f49732f608 } } } // Paper -@@ -911,36 +920,37 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -910,36 +919,37 @@ public class ServerLevel extends Level implements WorldGenLevel { gameprofilerfiller.popPush("tickBlocks"); timings.chunkTicksBlocks.startTiming(); // Paper if (randomTickSpeed > 0) { @@ -190,7 +190,7 @@ index 2c759854ed9f78c48c4e9ed2dc72e5a5693bd712..5e5b840301bf7021ce2776f49732f608 timings.chunkTicksBlocks.stopTiming(); // Paper gameprofilerfiller.pop(); -@@ -948,17 +958,25 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -947,17 +957,25 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting public void tickPrecipitation(BlockPos pos) { @@ -220,7 +220,7 @@ index 2c759854ed9f78c48c4e9ed2dc72e5a5693bd712..5e5b840301bf7021ce2776f49732f608 if (i > 0 && biomebase.shouldSnow(this, blockposition1)) { BlockState iblockdata = this.getBlockState(blockposition1); -@@ -976,12 +994,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -975,12 +993,13 @@ public class ServerLevel extends Level implements WorldGenLevel { } } @@ -324,7 +324,7 @@ index 722e323d2ae3f4ac8aa3197fed79f7d926d5ccfa..f8c1dfc8e121a406955348a1ec00c264 public BlockPos getHomePos() { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 17b7f100979042ef33e18ab930a0935e4cfaa674..c438c75b8edfbb8d728b01a96882e6cd802a3bea 100644 +index 43f43c59138b661299f20cba89d91aa5585cdf32..3b13a13c4e7de12ed0cac354701bf3502d788b59 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1398,10 +1398,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0684-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0684-Detail-more-information-in-watchdog-dumps.patch index 728dfc6dbbff..bb2af55f79b6 100644 --- a/patches/server/0684-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0684-Detail-more-information-in-watchdog-dumps.patch @@ -76,10 +76,10 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5e5b840301bf7021ce2776f49732f608330894eb..681faafdeb4b7d7d8b2078fbc0fc6067838ab1c9 100644 +index bc826660514a76738f5256bf571eb2abf8bf85ef..53ab0a55cef95bf7660ccf68558967ce9b63c741 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1245,7 +1245,26 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1244,7 +1244,26 @@ public class ServerLevel extends Level implements WorldGenLevel { } @@ -106,7 +106,7 @@ index 5e5b840301bf7021ce2776f49732f608330894eb..681faafdeb4b7d7d8b2078fbc0fc6067 ++TimingHistory.entityTicks; // Paper - timings // Spigot start co.aikar.timings.Timing timer; // Paper -@@ -1285,7 +1304,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1284,7 +1303,13 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(entity, entity1); } // } finally { timer.stopTiming(); } // Paper - timings - move up @@ -122,7 +122,7 @@ index 5e5b840301bf7021ce2776f49732f608330894eb..681faafdeb4b7d7d8b2078fbc0fc6067 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 65ab99c3f3f1478db6e14d713e82346d3ecc06a5..1aac748a6ac485ad66f4501ae22cd6a422a966b5 100644 +index 70f3def7c659ff2b44ddcbdccfba8bbdf835c160..bcc6d2cf3300d2e6eadadbcc03dc5aaaf2b5d7e3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1029,7 +1029,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0687-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0687-Fix-merchant-inventory-not-closing-on-entity-removal.patch index 87a5c3bc9683..f42b637caeef 100644 --- a/patches/server/0687-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0687-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 681faafdeb4b7d7d8b2078fbc0fc6067838ab1c9..0d18158174966245b679954f5a9268c6aac4be32 100644 +index 53ab0a55cef95bf7660ccf68558967ce9b63c741..15533cf984bc29edc8015f0cc6b1d510c672c896 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2697,6 +2697,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2696,6 +2696,11 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message diff --git a/patches/server/0716-Collision-optimisations.patch b/patches/server/0716-Collision-optimisations.patch index fff212837ec7..afae575832d6 100644 --- a/patches/server/0716-Collision-optimisations.patch +++ b/patches/server/0716-Collision-optimisations.patch @@ -3018,13 +3018,13 @@ index 142f9438f75cb7e2d97011fdeb3f9e367ff81599..38d587c93a9ae5706633608f681f1868 public boolean propagatesSkylightDown(BlockState state, BlockGetter world, BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 31dc96c371953eb7ca3d3b444b123ade1f24c909..84d7aeafafe1497d96dca2238b579007cbe27146 100644 +index fb46c66d916931fd80a99c59030ca05e12d29953..d91a82428a435a65bc55ad466ccebe91e0d905e0 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -882,6 +882,10 @@ public abstract class BlockBehaviour implements FeatureElement { this.instrument = blockbase_info.instrument; this.replaceable = blockbase_info.replaceable; - this.conditionallyFullOpaque = this.isOpaque() & this.isTransparentOnSomeFaces(); // Paper + this.conditionallyFullOpaque = this.canOcclude & this.useShapeForLightOcclusion; // Paper + // Paper start - optimise collisions + this.id1 = it.unimi.dsi.fastutil.HashCommon.murmurHash3(it.unimi.dsi.fastutil.HashCommon.murmurHash3(ID_GENERATOR.getAndIncrement() + RANDOM_OFFSET) + RANDOM_OFFSET); + this.id2 = it.unimi.dsi.fastutil.HashCommon.murmurHash3(it.unimi.dsi.fastutil.HashCommon.murmurHash3(ID_GENERATOR.getAndIncrement() + RANDOM_OFFSET) + RANDOM_OFFSET); diff --git a/patches/server/0795-Don-t-tick-markers.patch b/patches/server/0795-Don-t-tick-markers.patch index d5b29209c9ba..bfa8fe438cc0 100644 --- a/patches/server/0795-Don-t-tick-markers.patch +++ b/patches/server/0795-Don-t-tick-markers.patch @@ -23,10 +23,10 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5f43aedc6596e2b1ac7af97115157147 } }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0d18158174966245b679954f5a9268c6aac4be32..9e0fb3a13cd4ae0142e3e63995b7eac61e48eea6 100644 +index 15533cf984bc29edc8015f0cc6b1d510c672c896..f5a32aaae5b4eb6dda3da3d5d39f38e000e806c2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2606,6 +2606,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2605,6 +2605,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } public void onTickingStart(Entity entity) { diff --git a/patches/server/0805-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0805-Add-Alternate-Current-redstone-implementation.patch index ac60b7935dcd..531c39ae51c4 100644 --- a/patches/server/0805-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/0805-Add-Alternate-Current-redstone-implementation.patch @@ -2008,10 +2008,10 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9e0fb3a13cd4ae0142e3e63995b7eac61e48eea6..8587f35706daf5a317035d0f7acee0b350984aab 100644 +index f5a32aaae5b4eb6dda3da3d5d39f38e000e806c2..6015033919cab9127785b9e30c30b9e8d086c867 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -224,6 +224,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper public boolean hasEntityMoveEvent = false; // Paper @@ -2019,7 +2019,7 @@ index 9e0fb3a13cd4ae0142e3e63995b7eac61e48eea6..8587f35706daf5a317035d0f7acee0b3 public static Throwable getAddToWorldStackTrace(Entity entity) { final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); -@@ -2595,6 +2596,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2594,6 +2595,13 @@ public class ServerLevel extends Level implements WorldGenLevel { return crashreportsystemdetails; } diff --git a/patches/server/0812-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0812-Prevent-empty-items-from-being-added-to-world.patch index fba041d2f55f..09d25172d303 100644 --- a/patches/server/0812-Prevent-empty-items-from-being-added-to-world.patch +++ b/patches/server/0812-Prevent-empty-items-from-being-added-to-world.patch @@ -7,10 +7,10 @@ The previous solution caused a bunch of bandaid fixes inorder to resolve edge ca Just simply prevent them from being added to the world instead. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8587f35706daf5a317035d0f7acee0b350984aab..289b482e1e3e5824c4deadee89e39b2617f5068e 100644 +index 6015033919cab9127785b9e30c30b9e8d086c867..d23c376b2421c8f94e5729d62beff93ce9c3b53c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1588,6 +1588,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1587,6 +1587,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; } else { diff --git a/patches/server/0844-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0844-Fix-a-bunch-of-vanilla-bugs.patch index 92764e14ad21..7ce4f0126209 100644 --- a/patches/server/0844-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0844-Fix-a-bunch-of-vanilla-bugs.patch @@ -124,10 +124,10 @@ index a0603e567deeede8b4cd2ba57ded44f29239d78d..982750fd4f3f474514194df9b7638831 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 289b482e1e3e5824c4deadee89e39b2617f5068e..6e246868a395eb872d3e2680753c4584c98fdd15 100644 +index d23c376b2421c8f94e5729d62beff93ce9c3b53c..742d7146c2a6d364de15b18caacc2ca6a4355f9b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1033,7 +1033,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1032,7 +1032,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } else { AABB axisalignedbb = AABB.encapsulatingFullBlocks(blockposition1, new BlockPos(blockposition1.atY(this.getMaxBuildHeight()))).inflate(3.0D); List list = this.getEntitiesOfClass(LivingEntity.class, axisalignedbb, (entityliving) -> { diff --git a/patches/server/0845-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0845-Remove-unnecessary-onTrackingStart-during-navigation.patch index f75417df4e04..afe66f403eb8 100644 --- a/patches/server/0845-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0845-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6e246868a395eb872d3e2680753c4584c98fdd15..88deea3a8b90148b014730d9186526725b5991bb 100644 +index 742d7146c2a6d364de15b18caacc2ca6a4355f9b..269444c5a4c73ebd21982bbe8f6dd8390cd8c98b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2642,7 +2642,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2641,7 +2641,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; @@ -17,7 +17,7 @@ index 6e246868a395eb872d3e2680753c4584c98fdd15..88deea3a8b90148b014730d918652672 String s = "onTrackingStart called during navigation iteration"; Util.logAndPauseIfInIde("onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration")); -@@ -2728,7 +2728,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2727,7 +2727,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; diff --git a/patches/server/0870-check-global-player-list-where-appropriate.patch b/patches/server/0870-check-global-player-list-where-appropriate.patch index 1359c3bbb749..df08f0564c10 100644 --- a/patches/server/0870-check-global-player-list-where-appropriate.patch +++ b/patches/server/0870-check-global-player-list-where-appropriate.patch @@ -7,10 +7,10 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 88deea3a8b90148b014730d9186526725b5991bb..412ce6611f88c10fb374fdbae9748cceae689308 100644 +index 269444c5a4c73ebd21982bbe8f6dd8390cd8c98b..93bd05adb8dcc1dae81b820e262bc1fb43430981 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2765,4 +2765,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2764,4 +2764,12 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::move); } } diff --git a/patches/server/0918-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0918-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index a2ab5008f074..7907f1339e50 100644 --- a/patches/server/0918-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0918-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 412ce6611f88c10fb374fdbae9748cceae689308..c17d8e00cd43f2f969c81be2ee65fab2b8578eae 100644 +index 93bd05adb8dcc1dae81b820e262bc1fb43430981..abef96d4c0ee22d05fc8b462811189128900fb8d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1725,6 +1725,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1724,6 +1724,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void gameEvent(GameEvent event, Vec3 emitterPos, GameEvent.Context emitter) { diff --git a/patches/server/1010-Lag-compensation-ticks.patch b/patches/server/1010-Lag-compensation-ticks.patch index c406c13c081e..cf6f957da4a3 100644 --- a/patches/server/1010-Lag-compensation-ticks.patch +++ b/patches/server/1010-Lag-compensation-ticks.patch @@ -30,10 +30,10 @@ index a8f9f4e23575cb58045f9d8efe011a60a51dbd7a..34f19ac897a30c0c4e3ab406013fcca1 net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c17d8e00cd43f2f969c81be2ee65fab2b8578eae..15dc5af10041f71b5d377353302fb09a34bcda82 100644 +index abef96d4c0ee22d05fc8b462811189128900fb8d..b4a77d66e84e335cecf7e3290aa36d17ac600033 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -571,6 +571,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { return player != null && player.level() == this ? player : null; } // Paper end diff --git a/patches/server/1014-Optimise-nearby-player-retrieval.patch b/patches/server/1014-Optimise-nearby-player-retrieval.patch index 61b46e294465..822d652d9eb5 100644 --- a/patches/server/1014-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1014-Optimise-nearby-player-retrieval.patch @@ -8,10 +8,10 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 15dc5af10041f71b5d377353302fb09a34bcda82..1d44387ea8665f7bbf3da04a1dd882f586ff37ac 100644 +index b4a77d66e84e335cecf7e3290aa36d17ac600033..ba5b86211b02fc5a90d1e3443afbd1e41fc1dbf1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -582,6 +582,115 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -581,6 +581,115 @@ public class ServerLevel extends Level implements WorldGenLevel { this.lagCompensationTick = (System.nanoTime() - net.minecraft.server.MinecraftServer.SERVER_INIT) / (java.util.concurrent.TimeUnit.MILLISECONDS.toNanos(50L)); } // Paper end - lag compensation diff --git a/patches/server/1016-Fix-missing-map-initialize-event-call.patch b/patches/server/1016-Fix-missing-map-initialize-event-call.patch index e009d02fb172..880fdb143519 100644 --- a/patches/server/1016-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/1016-Fix-missing-map-initialize-event-call.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1d44387ea8665f7bbf3da04a1dd882f586ff37ac..676087c3addd712939c865b39ddb5d9f0bc7ce25 100644 +index ba5b86211b02fc5a90d1e3443afbd1e41fc1dbf1..af712365d676bc33314b5a3fc6ff8ae823dc3012 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2134,13 +2134,25 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2133,13 +2133,25 @@ public class ServerLevel extends Level implements WorldGenLevel { @Nullable @Override public MapItemSavedData getMapData(String id) { diff --git a/patches/server/1038-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1038-Don-t-fire-sync-events-during-worldgen.patch index 1f9dd7870029..5dca64e06856 100644 --- a/patches/server/1038-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/1038-Don-t-fire-sync-events-during-worldgen.patch @@ -19,10 +19,10 @@ where generation happened directly to a ServerLevel and the entity still has the flag set. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 676087c3addd712939c865b39ddb5d9f0bc7ce25..7c31f619a6e8e3539c547fc43d821d2cce7df7e7 100644 +index af712365d676bc33314b5a3fc6ff8ae823dc3012..891ebb5a03adaa5d184b7363bbfa94e8a17c2773 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1682,6 +1682,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1681,6 +1681,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit start private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot From 8c8862f3a85a9f02facae64872e4646f27d1a429 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Fri, 12 Jan 2024 23:08:19 +0100 Subject: [PATCH 05/45] Also check for the actual character length in ResourceLocation validation --- ...empty-String-in-NamespacedKey.fromSt.patch | 22 +++++++++---------- ...date-ResourceLocation-in-NBT-reading.patch | 12 +++++++--- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/patches/api/0457-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch b/patches/api/0457-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch index bb41c5952634..742314fff8c4 100644 --- a/patches/api/0457-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch +++ b/patches/api/0457-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch @@ -5,36 +5,36 @@ Subject: [PATCH] Return null for empty String in NamespacedKey.fromString diff --git a/src/main/java/org/bukkit/NamespacedKey.java b/src/main/java/org/bukkit/NamespacedKey.java -index 8ac72cb0b05e2c493d98310f2e87c3714d15c5e3..95bc1078e35a92624b6627e78ed80080832d1b57 100644 +index 8ac72cb0b05e2c493d98310f2e87c3714d15c5e3..97cf6b6acdd71740b75658f14ca5cabbacb108d4 100644 --- a/src/main/java/org/bukkit/NamespacedKey.java +++ b/src/main/java/org/bukkit/NamespacedKey.java -@@ -89,8 +89,6 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key, com.des - this.namespace = namespace; +@@ -90,7 +90,7 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key, com.des this.key = key; -- String string = toString(); + String string = toString(); - Preconditions.checkArgument(string.length() < 256, "NamespacedKey must be less than 256 characters", string); ++ Preconditions.checkArgument(string.length() <= Short.MAX_VALUE, "NamespacedKey must be less than 32768 characters", string); // Paper - Fix improper length validation } /** -@@ -116,8 +114,6 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key, com.des - Preconditions.checkArgument(isValidNamespace(this.namespace), "Invalid namespace. Must be [a-z0-9._-]: %s", this.namespace); +@@ -117,7 +117,7 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key, com.des Preconditions.checkArgument(isValidKey(this.key), "Invalid key. Must be [a-z0-9/._-]: %s", this.key); -- String string = toString(); + String string = toString(); - Preconditions.checkArgument(string.length() < 256, "NamespacedKey must be less than 256 characters (%s)", string); ++ Preconditions.checkArgument(string.length() <= Short.MAX_VALUE, "NamespacedKey must be less than 32768 characters", string); // Paper - Fix improper length validation } @NotNull -@@ -206,7 +202,10 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key, com.des +@@ -206,7 +206,10 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key, com.des */ @Nullable public static NamespacedKey fromString(@NotNull String string, @Nullable Plugin defaultNamespace) { - Preconditions.checkArgument(string != null && !string.isEmpty(), "Input string must not be empty or null"); -+ // Paper - Return null for empty string ++ // Paper - Return null for empty string, check length + Preconditions.checkArgument(string != null, "Input string must not be null"); -+ if (string.isEmpty()) return null; -+ // Paper end - Return null for empty string ++ if (string.isEmpty() || string.length() > Short.MAX_VALUE) return null; ++ // Paper end - Return null for empty string, check length String[] components = string.split(":", 3); if (components.length > 2) { diff --git a/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch index ab785a22f37d..e85cc43911e5 100644 --- a/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch @@ -22,14 +22,20 @@ index 18fad4f083862ace2bc56579883f548f6d697091..80083fed4b44b9d433925f09db83e559 return Blocks.AIR.defaultBlockState(); } else { diff --git a/src/main/java/net/minecraft/resources/ResourceLocation.java b/src/main/java/net/minecraft/resources/ResourceLocation.java -index 38e2a8cec48bc779b8154d6d719031f457a2403e..9024622a41fdc774713481973c1419a8d18cce93 100644 +index 38e2a8cec48bc779b8154d6d719031f457a2403e..4379090b74d156b62b88163a234c22e78454f5e4 100644 --- a/src/main/java/net/minecraft/resources/ResourceLocation.java +++ b/src/main/java/net/minecraft/resources/ResourceLocation.java -@@ -31,6 +31,7 @@ public class ResourceLocation implements Comparable { +@@ -31,6 +31,13 @@ public class ResourceLocation implements Comparable { private final String path; protected ResourceLocation(String namespace, String path, @Nullable ResourceLocation.Dummy extraData) { -+ if (io.netty.buffer.ByteBufUtil.utf8MaxBytes(namespace + ":" + path) > 2 * Short.MAX_VALUE + 1) throw new ResourceLocationException("Resource location too long: " + namespace + ":" + path); // Paper - Validate ResourceLocation ++ // Paper start - Validate ResourceLocation ++ // Check for the max network string length (capped at Short.MAX_VALUE) as well as the max bytes of a StringTag (length written as an unsigned short) ++ final String resourceLocation = namespace + ":" + path; ++ if (resourceLocation.length() > Short.MAX_VALUE || io.netty.buffer.ByteBufUtil.utf8MaxBytes(resourceLocation) > 2 * Short.MAX_VALUE + 1) { ++ throw new ResourceLocationException("Resource location too long: " + resourceLocation); ++ } ++ // Paper end - Validate ResourceLocation this.namespace = namespace; this.path = path; } From e84621a9d83609e48944f7a7a85f94ef7eb3a3f8 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 13 Jan 2024 16:35:59 +0100 Subject: [PATCH 06/45] [ci skip] Add more patch identifying comments --- ...estore-vanilla-entity-drops-behavior.patch | 60 +++++++++---------- ...2-Dont-resend-blocks-on-interactions.patch | 20 +++---- .../1050-Add-experience-points-API.patch | 4 +- .../1052-Add-drops-to-shear-events.patch | 24 ++++---- .../1053-Add-PlayerShieldDisableEvent.patch | 20 +++---- ...if-bucket-dispenses-will-succeed-for.patch | 4 +- ...date-ResourceLocation-in-NBT-reading.patch | 6 +- ...e-experience-dropping-on-block-break.patch | 32 +++++----- 8 files changed, 85 insertions(+), 85 deletions(-) diff --git a/patches/server/1040-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1040-Restore-vanilla-entity-drops-behavior.patch index 0ab1a149a47a..b716c1fd3dea 100644 --- a/patches/server/1040-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1040-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3ca06c5dfed3bc2006bf2f42444353bfab14096d..be05a52be037042c6158100e2ce880b8ed415d53 100644 +index 3ca06c5dfed3bc2006bf2f42444353bfab14096d..a3037dccab32597aa99e1590e1ea42fcec06bb0c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -944,22 +944,20 @@ public class ServerPlayer extends Player { @@ -17,14 +17,14 @@ index 3ca06c5dfed3bc2006bf2f42444353bfab14096d..be05a52be037042c6158100e2ce880b8 return; } - java.util.List loot = new java.util.ArrayList(this.getInventory().getContainerSize()); -+ List loot = new java.util.ArrayList<>(this.getInventory().getContainerSize()); // Paper ++ List loot = new java.util.ArrayList<>(this.getInventory().getContainerSize()); // Paper - Restore vanilla drops behavior boolean keepInventory = this.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) || this.isSpectator(); if (!keepInventory) { for (ItemStack item : this.getInventory().getContents()) { if (!item.isEmpty() && !EnchantmentHelper.hasVanishingCurse(item)) { - loot.add(CraftItemStack.asCraftMirror(item)); -+ loot.add(new DefaultDrop(item, stack -> this.drop(stack, true, false, false))); // Paper - drop function taken from Inventory#dropAll (don't fire drop event) ++ loot.add(new DefaultDrop(item, stack -> this.drop(stack, true, false, false))); // Paper - Restore vanilla drops behavior; drop function taken from Inventory#dropAll (don't fire drop event) } } } @@ -44,20 +44,20 @@ index 3ca06c5dfed3bc2006bf2f42444353bfab14096d..be05a52be037042c6158100e2ce880b8 @Override - public ItemEntity drop(ItemStack stack, boolean throwRandomly, boolean retainOwnership) { - ItemEntity entityitem = super.drop(stack, throwRandomly, retainOwnership); -+ public ItemEntity drop(ItemStack stack, boolean throwRandomly, boolean retainOwnership, boolean callDropEvent) { // Paper - override method with most params -+ ItemEntity entityitem = super.drop(stack, throwRandomly, retainOwnership, callDropEvent); // Paper - override method with most params ++ public ItemEntity drop(ItemStack stack, boolean throwRandomly, boolean retainOwnership, boolean callDropEvent) { // Paper - Restore vanilla drops behavior; override method with most params ++ ItemEntity entityitem = super.drop(stack, throwRandomly, retainOwnership, callDropEvent); // Paper - Restore vanilla drops behavior; override method with most params if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cc86993aa7bf95ed5ae861feedc7e1049f12e210..1be10c57e374ad4018c08d96cfb69397a2f541d3 100644 +index cc86993aa7bf95ed5ae861feedc7e1049f12e210..82c5868222d22a5c5dc508c516d67bdcfa56d84b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2701,6 +2701,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public ItemEntity spawnAtLocation(ItemStack stack, float yOffset) { -+ // Paper start ++ // Paper start - Restore vanilla drops behavior + return this.spawnAtLocation(stack, yOffset, null); + } + public record DefaultDrop(Item item, org.bukkit.inventory.ItemStack stack, @Nullable java.util.function.Consumer dropConsumer) { @@ -75,7 +75,7 @@ index cc86993aa7bf95ed5ae861feedc7e1049f12e210..1be10c57e374ad4018c08d96cfb69397 + } + @Nullable + public ItemEntity spawnAtLocation(ItemStack stack, float yOffset, @Nullable java.util.function.Consumer delayedAddConsumer) { -+ // Paper end ++ // Paper end - Restore vanilla drops behavior if (stack.isEmpty()) { return null; } else if (this.level().isClientSide) { @@ -84,14 +84,14 @@ index cc86993aa7bf95ed5ae861feedc7e1049f12e210..1be10c57e374ad4018c08d96cfb69397 // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { - ((net.minecraft.world.entity.LivingEntity) this).drops.add(org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack)); // Paper - mirror so we can destroy it later -+ // Paper start ++ // Paper start - Restore vanilla drops behavior + ((net.minecraft.world.entity.LivingEntity) this).drops.add(new net.minecraft.world.entity.Entity.DefaultDrop(stack, itemStack -> { + ItemEntity itemEntity = new ItemEntity(this.level, this.getX(), this.getY() + (double) yOffset, this.getZ(), itemStack); // stack is copied before consumer + itemEntity.setDefaultPickUpDelay(); + this.level.addFreshEntity(itemEntity); + if (delayedAddConsumer != null) delayedAddConsumer.accept(itemEntity); + })); -+ // Paper end ++ // Paper end - Restore vanilla drops behavior return null; } // CraftBukkit end @@ -104,7 +104,7 @@ index cc86993aa7bf95ed5ae861feedc7e1049f12e210..1be10c57e374ad4018c08d96cfb69397 return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bc45bd5816b1b62cdd6011f2372702451b83f22b..96885946be3b8e129984353f3dfe4330e73ad84a 100644 +index bc45bd5816b1b62cdd6011f2372702451b83f22b..42feb50674cba50fb7c5883f679e111c5412fb9b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -112,12 +112,12 @@ index bc45bd5816b1b62cdd6011f2372702451b83f22b..96885946be3b8e129984353f3dfe4330 public int expToDrop; public boolean forceDrops; - public ArrayList drops = new ArrayList(); -+ public ArrayList drops = new ArrayList<>(); // Paper ++ public ArrayList drops = new ArrayList<>(); // Paper - Restore vanilla drops behavior public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes; public boolean collides = true; public Set collidableExemptions = new HashSet<>(); diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 71bcd55d9d71fbd5bf3014c7e36d1456d8d5c3fd..c59e44c45d9c8c719b34e85fb3b753ac3788842d 100644 +index 71bcd55d9d71fbd5bf3014c7e36d1456d8d5c3fd..68ecf0203e23cb6360d05bec18d9c1c413d84650 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -534,10 +534,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -125,7 +125,7 @@ index 71bcd55d9d71fbd5bf3014c7e36d1456d8d5c3fd..c59e44c45d9c8c719b34e85fb3b753ac protected void dropCustomDeathLoot(DamageSource source, int lootingMultiplier, boolean allowDrops) { super.dropCustomDeathLoot(source, lootingMultiplier, allowDrops); - ItemEntity entityitem = this.spawnAtLocation((ItemLike) Items.NETHER_STAR); -+ ItemEntity entityitem = this.spawnAtLocation(new net.minecraft.world.item.ItemStack(Items.NETHER_STAR), 0, ItemEntity::setExtendedLifetime); // Paper - spawnAtLocation returns null so modify the item entity with a consumer ++ ItemEntity entityitem = this.spawnAtLocation(new net.minecraft.world.item.ItemStack(Items.NETHER_STAR), 0, ItemEntity::setExtendedLifetime); // Paper - Restore vanilla drops behavior; spawnAtLocation returns null so modify the item entity with a consumer if (entityitem != null) { - entityitem.setExtendedLifetime(); @@ -134,7 +134,7 @@ index 71bcd55d9d71fbd5bf3014c7e36d1456d8d5c3fd..c59e44c45d9c8c719b34e85fb3b753ac } diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index ab708b256183fc54fe8e13f341d8a38acf611739..1e86e86b0a100a5d14aee10b60e70c32d2733660 100644 +index ab708b256183fc54fe8e13f341d8a38acf611739..a9c1f99ba2461333bd154ac16e812031f234f7a6 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -610,7 +610,7 @@ public class ArmorStand extends LivingEntity { @@ -142,7 +142,7 @@ index ab708b256183fc54fe8e13f341d8a38acf611739..1e86e86b0a100a5d14aee10b60e70c32 } - this.drops.add(org.bukkit.craftbukkit.inventory.CraftItemStack.asBukkitCopy(itemstack)); // CraftBukkit - add to drops -+ this.drops.add(new DefaultDrop(itemstack, stack -> Block.popResource(this.level(), this.blockPosition(), stack))); // CraftBukkit - add to drops // Paper - spawn drops correctly ++ this.drops.add(new DefaultDrop(itemstack, stack -> Block.popResource(this.level(), this.blockPosition(), stack))); // CraftBukkit - add to drops // Paper - Restore vanilla drops behavior return this.brokenByAnything(damageSource); // Paper } @@ -151,7 +151,7 @@ index ab708b256183fc54fe8e13f341d8a38acf611739..1e86e86b0a100a5d14aee10b60e70c32 itemstack = (ItemStack) this.handItems.get(i); if (!itemstack.isEmpty()) { - this.drops.add(org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack)); // CraftBukkit - add to drops // Paper - mirror so we can destroy it later - though this call site was safe -+ this.drops.add(new DefaultDrop(itemstack, stack -> Block.popResource(this.level(), this.blockPosition().above(), stack))); // CraftBukkit - add to drops // Paper - mirror so we can destroy it later - though this call site was safe & spawn drops correctly ++ this.drops.add(new DefaultDrop(itemstack, stack -> Block.popResource(this.level(), this.blockPosition().above(), stack))); // CraftBukkit - add to drops // Paper - Restore vanilla drops behavior; mirror so we can destroy it later - though this call site was safe & spawn drops correctly this.handItems.set(i, ItemStack.EMPTY); } } @@ -160,12 +160,12 @@ index ab708b256183fc54fe8e13f341d8a38acf611739..1e86e86b0a100a5d14aee10b60e70c32 itemstack = (ItemStack) this.armorItems.get(i); if (!itemstack.isEmpty()) { - this.drops.add(org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack)); // CraftBukkit - add to drops // Paper - mirror so we can destroy it later - though this call site was safe -+ this.drops.add(new DefaultDrop(itemstack, stack -> Block.popResource(this.level(), this.blockPosition().above(), stack))); // CraftBukkit - add to drops // Paper - mirror so we can destroy it later - though this call site was safe & spawn drops correctly ++ this.drops.add(new DefaultDrop(itemstack, stack -> Block.popResource(this.level(), this.blockPosition().above(), stack))); // CraftBukkit - add to drops // Paper - Restore vanilla drops behavior; mirror so we can destroy it later - though this call site was safe & spawn drops correctly this.armorItems.set(i, ItemStack.EMPTY); } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e15e60b67c17a0ea4fedb4882ea839e1b9b1ae60..7d9fc84dd684093098fdefdcaf7c92a0fbc158de 100644 +index e15e60b67c17a0ea4fedb4882ea839e1b9b1ae60..66a05f9a5d114c7f39c3a88b7835e2a45f7db16f 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -939,17 +939,21 @@ public class CraftEventFactory { @@ -173,11 +173,11 @@ index e15e60b67c17a0ea4fedb4882ea839e1b9b1ae60..7d9fc84dd684093098fdefdcaf7c92a0 public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim) { - return CraftEventFactory.callEntityDeathEvent(victim, new ArrayList(0)); -+ return CraftEventFactory.callEntityDeathEvent(victim, new ArrayList<>(0)); // Paper ++ return CraftEventFactory.callEntityDeathEvent(victim, new ArrayList<>(0)); // Paper - Restore vanilla drops behavior } - public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, List drops) { -+ public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, List drops) { // Paper ++ public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, List drops) { // Paper - Restore vanilla drops behavior // Paper start return CraftEventFactory.callEntityDeathEvent(victim, drops, com.google.common.util.concurrent.Runnables.doNothing()); } @@ -190,7 +190,7 @@ index e15e60b67c17a0ea4fedb4882ea839e1b9b1ae60..7d9fc84dd684093098fdefdcaf7c92a0 // Paper end CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity(); - EntityDeathEvent event = new EntityDeathEvent(entity, drops, victim.getExpReward()); -+ EntityDeathEvent event = new EntityDeathEvent(entity, new io.papermc.paper.util.TransformingRandomAccessList<>(drops, Entity.DefaultDrop::stack, FROM_FUNCTION), victim.getExpReward()); // Paper ++ EntityDeathEvent event = new EntityDeathEvent(entity, new io.papermc.paper.util.TransformingRandomAccessList<>(drops, Entity.DefaultDrop::stack, FROM_FUNCTION), victim.getExpReward()); // Paper - Restore vanilla drops behavior populateFields(victim, event); // Paper - make cancellable CraftWorld world = (CraftWorld) entity.getWorld(); Bukkit.getServer().getPluginManager().callEvent(event); @@ -199,15 +199,15 @@ index e15e60b67c17a0ea4fedb4882ea839e1b9b1ae60..7d9fc84dd684093098fdefdcaf7c92a0 lootCheck.run(); // Paper - advancement triggers before destroying items - for (org.bukkit.inventory.ItemStack stack : event.getDrops()) { -+ // Paper start ++ // Paper start - Restore vanilla drops behavior + for (Entity.DefaultDrop drop : drops) { + if (drop == null) continue;; + final org.bukkit.inventory.ItemStack stack = drop.stack(); -+ // Paper end ++ // Paper end - Restore vanilla drops behavior if (stack == null || stack.getType() == Material.AIR || stack.getAmount() == 0) continue; - world.dropItem(entity.getLocation(), stack); // Paper - note: dropItem already clones due to this being bukkit -> NMS -+ drop.runConsumer(world, entity.getLocation()); // Paper ++ drop.runConsumer(world, entity.getLocation()); // Paper - Restore vanilla drops behavior if (stack instanceof CraftItemStack) stack.setAmount(0); // Paper - destroy this item - if this ever leaks due to game bugs, ensure it doesn't dupe, but don't nuke bukkit stacks of manually added items } @@ -215,10 +215,10 @@ index e15e60b67c17a0ea4fedb4882ea839e1b9b1ae60..7d9fc84dd684093098fdefdcaf7c92a0 } - public static PlayerDeathEvent callPlayerDeathEvent(ServerPlayer victim, List drops, net.kyori.adventure.text.Component deathMessage, boolean keepInventory) { // Paper - Adventure -+ public static PlayerDeathEvent callPlayerDeathEvent(ServerPlayer victim, List drops, net.kyori.adventure.text.Component deathMessage, boolean keepInventory) { // Paper - Adventure & improve drops ++ public static PlayerDeathEvent callPlayerDeathEvent(ServerPlayer victim, List drops, net.kyori.adventure.text.Component deathMessage, boolean keepInventory) { // Paper - Adventure & Restore vanilla drops behavior CraftPlayer entity = victim.getBukkitEntity(); - PlayerDeathEvent event = new PlayerDeathEvent(entity, drops, victim.getExpReward(), 0, deathMessage); -+ PlayerDeathEvent event = new PlayerDeathEvent(entity, new io.papermc.paper.util.TransformingRandomAccessList<>(drops, Entity.DefaultDrop::stack, FROM_FUNCTION), victim.getExpReward(), 0, deathMessage); // Paper - improve drops ++ PlayerDeathEvent event = new PlayerDeathEvent(entity, new io.papermc.paper.util.TransformingRandomAccessList<>(drops, Entity.DefaultDrop::stack, FROM_FUNCTION), victim.getExpReward(), 0, deathMessage); // Paper - Restore vanilla drops behavior event.setKeepInventory(keepInventory); event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel populateFields(victim, event); // Paper - make cancellable @@ -227,15 +227,15 @@ index e15e60b67c17a0ea4fedb4882ea839e1b9b1ae60..7d9fc84dd684093098fdefdcaf7c92a0 victim.newExp = event.getNewExp(); - for (org.bukkit.inventory.ItemStack stack : event.getDrops()) { -+ // Paper start ++ // Paper start - Restore vanilla drops behavior + for (Entity.DefaultDrop drop : drops) { + if (drop == null) continue; + final org.bukkit.inventory.ItemStack stack = drop.stack(); -+ // Paper end ++ // Paper end - Restore vanilla drops behavior if (stack == null || stack.getType() == Material.AIR) continue; - world.dropItem(entity.getLocation(), stack); -+ drop.runConsumer(world, entity.getLocation()); // Paper ++ drop.runConsumer(world, entity.getLocation()); // Paper - Restore vanilla drops behavior } return event; diff --git a/patches/server/1042-Dont-resend-blocks-on-interactions.patch b/patches/server/1042-Dont-resend-blocks-on-interactions.patch index 94ea359faf72..d518c2066756 100644 --- a/patches/server/1042-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1042-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 4634f4fbb0c06c68436c5e30069621c9fcd4ffb5..a0d69082f5fdeee15bba0d76b940aa48cff36fa9 100644 +index 4634f4fbb0c06c68436c5e30069621c9fcd4ffb5..51bf6c740ac08548eedf0c026c5a66d6a3c6d83e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { @@ -52,7 +52,7 @@ index 4634f4fbb0c06c68436c5e30069621c9fcd4ffb5..a0d69082f5fdeee15bba0d76b940aa48 + //} else if (data.getBlock() instanceof TrapDoorBlock) { + // this.player.connection.send(new ClientboundBlockUpdatePacket(this.level, pos)); + //} -+ // Paper end ++ // Paper end - Don't resync blocks } else if (!iblockdata.isAir()) { iblockdata.attack(this.level, pos, this.player); f = iblockdata.getDestroyProgress(this.player, this.player.level(), pos); @@ -87,7 +87,7 @@ index 4634f4fbb0c06c68436c5e30069621c9fcd4ffb5..a0d69082f5fdeee15bba0d76b940aa48 if (isSwordNoBreak) { return false; } -+ // Paper start - Dont resync blocks ++ // Paper start - Don't resync blocks // Let the client know the block still exists - this.player.connection.send(new ClientboundBlockUpdatePacket(this.level, pos)); + //this.player.connection.send(new ClientboundBlockUpdatePacket(this.level, pos)); @@ -99,7 +99,7 @@ index 4634f4fbb0c06c68436c5e30069621c9fcd4ffb5..a0d69082f5fdeee15bba0d76b940aa48 + //for (Direction dir : Direction.values()) { + // this.player.connection.send(new ClientboundBlockUpdatePacket(this.level, pos.relative(dir))); + //} -+ // Paper end ++ // Paper end - Don't resync blocks // Update any tile entity data for this block if (!captureSentBlockEntities) { // Paper - Toggle this location for capturing as this is used for api @@ -112,17 +112,17 @@ index 4634f4fbb0c06c68436c5e30069621c9fcd4ffb5..a0d69082f5fdeee15bba0d76b940aa48 + // Paper start - Don't resync blocks + // boolean bottom = iblockdata.getValue(DoorBlock.HALF) == DoubleBlockHalf.LOWER; + // player.connection.send(new ClientboundBlockUpdatePacket(world, bottom ? blockposition.above() : blockposition.below())); -+ // Paper end ++ // Paper end - Don't resync blocks } else if (iblockdata.getBlock() instanceof CakeBlock) { player.getBukkitEntity().sendHealthUpdate(); // SPIGOT-1341 - reset health for cake } else if (this.interactItemStack.getItem() instanceof DoubleHighBlockItem) { // send a correcting update to the client, as it already placed the upper half of the bisected item - player.connection.send(new ClientboundBlockUpdatePacket(world, blockposition.relative(hitResult.getDirection()).above())); -+ //player.connection.send(new ClientboundBlockUpdatePacket(world, blockposition.relative(hitResult.getDirection()).above())); // Paper - don't resync blocks ++ //player.connection.send(new ClientboundBlockUpdatePacket(world, blockposition.relative(hitResult.getDirection()).above())); // Paper - Don't resync blocks // send a correcting update to the client for the block above as well, this because of replaceable blocks (such as grass, sea grass etc) - player.connection.send(new ClientboundBlockUpdatePacket(world, blockposition.above())); -+ //player.connection.send(new ClientboundBlockUpdatePacket(world, blockposition.above())); // Paper - don't resync blocks ++ //player.connection.send(new ClientboundBlockUpdatePacket(world, blockposition.above())); // Paper - Don't resync blocks // Paper start - extend Player Interact cancellation // TODO: consider merging this into the extracted method } else if (iblockdata.getBlock() instanceof net.minecraft.world.level.block.StructureBlock) { player.connection.send(new net.minecraft.network.protocol.game.ClientboundContainerClosePacket(this.player.containerMenu.containerId)); @@ -149,7 +149,7 @@ index 277555a26e8281dd1a626e572794b08cf51d00c5..aa0f09a18ea781e027ea70928b30d3e9 return false; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 666533627e772e5e85ba04e65dd2b376efc0b139..5b8a1f31e0b55da15daa4ab271317e4393a87e96 100644 +index 666533627e772e5e85ba04e65dd2b376efc0b139..bab97eedd92f7131fd0cd478580ddd52d2173de9 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -457,10 +457,12 @@ public final class ItemStack { @@ -160,12 +160,12 @@ index 666533627e772e5e85ba04e65dd2b376efc0b139..5b8a1f31e0b55da15daa4ab271317e43 - for (Direction dir : Direction.values()) { - ((ServerPlayer) entityhuman).connection.send(new ClientboundBlockUpdatePacket(world, placedPos.relative(dir))); - } -+ // Paper start - don't resync blocks ++ // Paper start - Don't resync blocks + // BlockPos placedPos = ((CraftBlock) placeEvent.getBlock()).getPosition(); + // for (Direction dir : Direction.values()) { + // ((ServerPlayer) entityhuman).connection.send(new ClientboundBlockUpdatePacket(world, placedPos.relative(dir))); + // } -+ // Paper end ++ // Paper end - Don't resync blocks SignItem.openSign = null; // SPIGOT-6758 - Reset on early return } else { // Change the stack to its new contents if it hasn't been tampered with. diff --git a/patches/server/1050-Add-experience-points-API.patch b/patches/server/1050-Add-experience-points-API.patch index c62c80b549af..a14d0455bf89 100644 --- a/patches/server/1050-Add-experience-points-API.patch +++ b/patches/server/1050-Add-experience-points-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 7f3466340891b4409d1399ebeb2ca865d77841cd..3e597833b57377b855505b8a0f2744801c791f90 100644 +index 7f3466340891b4409d1399ebeb2ca865d77841cd..0a9ee8aee52b34566f1613229951e33e53394f29 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1833,7 +1833,7 @@ public abstract class Player extends LivingEntity { @@ -13,7 +13,7 @@ index 7f3466340891b4409d1399ebeb2ca865d77841cd..3e597833b57377b855505b8a0f274480 public int getXpNeededForNextLevel() { - return this.experienceLevel >= 30 ? 112 + (this.experienceLevel - 30) * 9 : (this.experienceLevel >= 15 ? 37 + (this.experienceLevel - 15) * 5 : 7 + this.experienceLevel * 2); -+ return this.experienceLevel >= 30 ? 112 + (this.experienceLevel - 30) * 9 : (this.experienceLevel >= 15 ? 37 + (this.experienceLevel - 15) * 5 : 7 + this.experienceLevel * 2); // Paper - diff on change ++ return this.experienceLevel >= 30 ? 112 + (this.experienceLevel - 30) * 9 : (this.experienceLevel >= 15 ? 37 + (this.experienceLevel - 15) * 5 : 7 + this.experienceLevel * 2); // Paper - diff on change; calculateTotalExperiencePoints } // Paper start - send SoundEffect to everyone who can see fromEntity private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/patches/server/1052-Add-drops-to-shear-events.patch b/patches/server/1052-Add-drops-to-shear-events.patch index 2c0b632e8d0f..27f673cd52ad 100644 --- a/patches/server/1052-Add-drops-to-shear-events.patch +++ b/patches/server/1052-Add-drops-to-shear-events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add drops to shear events diff --git a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java -index 45d356c1ed888b4d749379ceaa8a95d7d7c876d5..887e75c940ab5089f4e42e4553ab95adf172df46 100644 +index 45d356c1ed888b4d749379ceaa8a95d7d7c876d5..8d65cdb013706a932c2c73231108b2810b99e1c7 100644 --- a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java @@ -103,11 +103,14 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior { @@ -13,38 +13,38 @@ index 45d356c1ed888b4d749379ceaa8a95d7d7c876d5..887e75c940ab5089f4e42e4553ab95ad if (ishearable.readyForShearing()) { // CraftBukkit start - if (CraftEventFactory.callBlockShearEntityEvent(entityliving, bukkitBlock, craftItem).isCancelled()) { -+ // Paper start ++ // Paper start - Add drops to shear events + org.bukkit.event.block.BlockShearEntityEvent event = CraftEventFactory.callBlockShearEntityEvent(entityliving, bukkitBlock, craftItem, ishearable.generateDefaultDrops()); + if (event.isCancelled()) { -+ // Paper end ++ // Paper end - Add drops to shear events continue; } // CraftBukkit end - ishearable.shear(SoundSource.BLOCKS); -+ ishearable.shear(SoundSource.BLOCKS, CraftItemStack.asNMSCopy(event.getDrops())); // Paper ++ ishearable.shear(SoundSource.BLOCKS, CraftItemStack.asNMSCopy(event.getDrops())); // Paper - Add drops to shear events worldserver.gameEvent((Entity) null, GameEvent.SHEAR, blockposition); return true; } diff --git a/src/main/java/net/minecraft/world/entity/Shearable.java b/src/main/java/net/minecraft/world/entity/Shearable.java -index 5e8cc5cfac8888628c6d513148f41be09ca65a2c..4921d1b2ff9112374477c5c9b4a68cc75a51dbf8 100644 +index 5e8cc5cfac8888628c6d513148f41be09ca65a2c..2ee48ac3b665db2b02bcb1a30ec972d43a3725b0 100644 --- a/src/main/java/net/minecraft/world/entity/Shearable.java +++ b/src/main/java/net/minecraft/world/entity/Shearable.java @@ -3,7 +3,13 @@ package net.minecraft.world.entity; import net.minecraft.sounds.SoundSource; public interface Shearable { -+ default void shear(SoundSource soundCategory, java.util.List drops) { this.shear(soundCategory); } // Paper ++ default void shear(SoundSource soundCategory, java.util.List drops) { this.shear(soundCategory); } // Paper - Add drops to shear events void shear(SoundSource shearedSoundCategory); boolean readyForShearing(); -+ // Paper start - ensure all implementing entities override this ++ // Paper start - custom shear drops; ensure all implementing entities override this + default java.util.List generateDefaultDrops() { + return java.util.Collections.emptyList(); + } -+ // Paper end ++ // Paper end - custom shear drops } diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java -index e42b0b19019ef74733fd19b08f882cccff920142..a7e8b544d7b05efe95182a03cabaf1993da9d839 100644 +index e42b0b19019ef74733fd19b08f882cccff920142..7a82ba6e29fde33841c049e8520300aa66608f34 100644 --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java @@ -122,11 +122,18 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder { @@ -106,7 +106,7 @@ index e42b0b19019ef74733fd19b08f882cccff920142..a7e8b544d7b05efe95182a03cabaf199 - } - this.level().addFreshEntity(entityitem); - // CraftBukkit end -+ // Paper start - custom shear drops (moved drop generation to separate method) ++ // Paper start - custom shear drops; moved drop generation to separate method + for (final ItemStack drop : drops) { + ItemEntity entityitem = new ItemEntity(this.level(), this.getX(), this.getY(1.0D), this.getZ(), drop); + this.spawnAtLocation(entityitem); @@ -233,7 +233,7 @@ index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..b5d6857eaf2bed14adcb5f5e80d91b44 } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 7d9fc84dd684093098fdefdcaf7c92a0fbc158de..2aab68bac670dcd134d817940020214c7b0797f9 100644 +index 66a05f9a5d114c7f39c3a88b7835e2a45f7db16f..cbaaa7d54e70bf4e0604d1716d253453bab03744 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1718,20 +1718,20 @@ public class CraftEventFactory { diff --git a/patches/server/1053-Add-PlayerShieldDisableEvent.patch b/patches/server/1053-Add-PlayerShieldDisableEvent.patch index 9936079b07ff..dfb7f5fbe981 100644 --- a/patches/server/1053-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/1053-Add-PlayerShieldDisableEvent.patch @@ -16,7 +16,7 @@ sideeffects, meaning the disable event cannot share a handlerlist with the cooldown event diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 5af48151159135b869ec4753bbcf79dd257c1570..e0cf7771488ab0065708d68b4e8550b865af0ed4 100644 +index 5af48151159135b869ec4753bbcf79dd257c1570..538eaf327bdae975ce854871189990fbfe17b918 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1703,7 +1703,11 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -24,16 +24,16 @@ index 5af48151159135b869ec4753bbcf79dd257c1570..e0cf7771488ab0065708d68b4e8550b8 if (this.random.nextFloat() < f) { - player.getCooldowns().addCooldown(Items.SHIELD, 100); -+ // Paper start ++ // Paper start - Add PlayerShieldDisableEvent + final io.papermc.paper.event.player.PlayerShieldDisableEvent shieldDisableEvent = new io.papermc.paper.event.player.PlayerShieldDisableEvent((org.bukkit.entity.Player) player.getBukkitEntity(), getBukkitEntity(), 100); + if (!shieldDisableEvent.callEvent()) return; + player.getCooldowns().addCooldown(Items.SHIELD, shieldDisableEvent.getCooldown()); -+ // Paper end ++ // Paper end - Add PlayerShieldDisableEvent this.level().broadcastEntityEvent(player, (byte) 30); } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 3e597833b57377b855505b8a0f2744801c791f90..ccc1caafb0ada52c7b99b7358253826f5390843e 100644 +index 0a9ee8aee52b34566f1613229951e33e53394f29..5fffd5fde567affa51b3cf4bcc58249134a95e20 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -979,7 +979,7 @@ public abstract class Player extends LivingEntity { @@ -41,7 +41,7 @@ index 3e597833b57377b855505b8a0f2744801c791f90..ccc1caafb0ada52c7b99b7358253826f super.blockUsingShield(attacker); if (attacker.canDisableShield()) { - this.disableShield(true); -+ this.disableShield(true, attacker); // Paper ++ this.disableShield(true, attacker); // Paper - Add PlayerShieldDisableEvent } } @@ -49,14 +49,14 @@ index 3e597833b57377b855505b8a0f2744801c791f90..ccc1caafb0ada52c7b99b7358253826f this.attack(target); } -+ @io.papermc.paper.annotation.DoNotUse // Paper - add player shield disable event ++ @io.papermc.paper.annotation.DoNotUse // Paper - Add PlayerShieldDisableEvent public void disableShield(boolean sprinting) { -+ // Paper start - add player shield disable event ++ // Paper start - Add PlayerShieldDisableEvent + disableShield(sprinting, null); + } + + public void disableShield(boolean sprinting, @Nullable LivingEntity attacker) { -+ // Paper end - add player shield disable event ++ // Paper end - Add PlayerShieldDisableEvent float f = 0.25F + (float) EnchantmentHelper.getBlockEfficiency(this) * 0.05F; if (sprinting) { @@ -65,7 +65,7 @@ index 3e597833b57377b855505b8a0f2744801c791f90..ccc1caafb0ada52c7b99b7358253826f if (this.random.nextFloat() < f) { - this.getCooldowns().addCooldown(Items.SHIELD, 100); -+ // Paper start - add player shield disable event ++ // Paper start - Add PlayerShieldDisableEvent + final org.bukkit.entity.Entity finalAttacker = attacker != null ? attacker.getBukkitEntity() : null; + if (finalAttacker != null) { + final io.papermc.paper.event.player.PlayerShieldDisableEvent shieldDisableEvent = new io.papermc.paper.event.player.PlayerShieldDisableEvent((org.bukkit.entity.Player) getBukkitEntity(), finalAttacker, 100); @@ -74,7 +74,7 @@ index 3e597833b57377b855505b8a0f2744801c791f90..ccc1caafb0ada52c7b99b7358253826f + } else { + this.getCooldowns().addCooldown(Items.SHIELD, 100); + } -+ // Paper end - add player shield disable event ++ // Paper end - Add PlayerShieldDisableEvent this.stopUsingItem(); this.level().broadcastEntityEvent(this, (byte) 30); } diff --git a/patches/server/1055-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1055-Correctly-check-if-bucket-dispenses-will-succeed-for.patch index 1d5031730232..761c0530e930 100644 --- a/patches/server/1055-Correctly-check-if-bucket-dispenses-will-succeed-for.patch +++ b/patches/server/1055-Correctly-check-if-bucket-dispenses-will-succeed-for.patch @@ -8,7 +8,7 @@ in order to fire the BlockDispenseEvent. This patch corrects that. diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index f42a86549e389ec53962f7a5e7a625f351cd4724..bf1c5834717758991c1520afd4b2a5c3fa68a558 100644 +index f42a86549e389ec53962f7a5e7a625f351cd4724..a1739f6f091fe922ac0e97141fc9446664713fc3 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -628,7 +628,13 @@ public interface DispenseItemBehavior { @@ -19,7 +19,7 @@ index f42a86549e389ec53962f7a5e7a625f351cd4724..bf1c5834717758991c1520afd4b2a5c3 + // Paper start - correctly check if the bucket place will succeed + /* Taken from SolidBucketItem#emptyContents */ + boolean willEmptyContentsSolidBucketItem = dispensiblecontaineritem instanceof net.minecraft.world.item.SolidBucketItem && worldserver.isInWorldBounds(blockposition) && iblockdata.isAir(); -+ /* Take from BucketItem#emptyContents */ ++ /* Taken from BucketItem#emptyContents */ + boolean willEmptyBucketItem = dispensiblecontaineritem instanceof final BucketItem bucketItem && bucketItem.content instanceof net.minecraft.world.level.material.FlowingFluid && (iblockdata.isAir() || iblockdata.canBeReplaced(bucketItem.content) || (iblockdata.getBlock() instanceof LiquidBlockContainer liquidBlockContainer && liquidBlockContainer.canPlaceLiquid(null, worldserver, blockposition, iblockdata, bucketItem.content))); + if (willEmptyContentsSolidBucketItem || willEmptyBucketItem) { + // Paper end - correctly check if the bucket place will succeed diff --git a/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch index e85cc43911e5..7a3aab017997 100644 --- a/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Validate ResourceLocation in NBT reading diff --git a/src/main/java/net/minecraft/nbt/NbtUtils.java b/src/main/java/net/minecraft/nbt/NbtUtils.java -index 18fad4f083862ace2bc56579883f548f6d697091..80083fed4b44b9d433925f09db83e559582109a1 100644 +index 18fad4f083862ace2bc56579883f548f6d697091..8e68a094a22243f3e84110ddf81136219ac1de7c 100644 --- a/src/main/java/net/minecraft/nbt/NbtUtils.java +++ b/src/main/java/net/minecraft/nbt/NbtUtils.java @@ -230,8 +230,10 @@ public final class NbtUtils { @@ -17,7 +17,7 @@ index 18fad4f083862ace2bc56579883f548f6d697091..80083fed4b44b9d433925f09db83e559 + // Paper start - Validate resource location + ResourceLocation resourceLocation = ResourceLocation.tryParse(nbt.getString("Name")); + Optional> optional = resourceLocation != null ? blockLookup.get(ResourceKey.create(Registries.BLOCK, resourceLocation)) : Optional.empty(); -+ // Paper end ++ // Paper end - Validate resource location if (optional.isEmpty()) { return Blocks.AIR.defaultBlockState(); } else { @@ -53,7 +53,7 @@ index 00389d7ec3e8b059d5591a2019ba240fda2901fe..6cfce9755dd464a7afb01f9032e567ce @Nullable diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index e0cf7771488ab0065708d68b4e8550b865af0ed4..a7fbd329ea6d36a46c00b4476c74e426dbbfe238 100644 +index 538eaf327bdae975ce854871189990fbfe17b918..a31e8bb38b29a7c30cecb762d3ffec700e2186b8 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -620,7 +620,7 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/1058-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1058-Properly-handle-experience-dropping-on-block-break.patch index 18ebb9514735..0c486af78b06 100644 --- a/patches/server/1058-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1058-Properly-handle-experience-dropping-on-block-break.patch @@ -7,7 +7,7 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a7d40d41a332f0612a2f1ff60c7082e4a8825ba1..6403341f2e9d7ac4251336cb0bcc5d79dbb7bb0e 100644 +index a7d40d41a332f0612a2f1ff60c7082e4a8825ba1..e0b70ae59ed7ea0543c8cb87b0e7e5f0bc9385b1 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1103,7 +1103,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -15,46 +15,46 @@ index a7d40d41a332f0612a2f1ff60c7082e4a8825ba1..6403341f2e9d7ac4251336cb0bcc5d79 BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null; - Block.dropResources(iblockdata, this, pos, tileentity, breakingEntity, ItemStack.EMPTY); -+ Block.dropResources(iblockdata, this, pos, tileentity, breakingEntity, ItemStack.EMPTY, false); // Don't drop xp -+ iblockdata.getBlock().popExperience((ServerLevel) this, pos, xp, breakingEntity); // Paper - handle drop experience logic, custom amount ++ Block.dropResources(iblockdata, this, pos, tileentity, breakingEntity, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping ++ iblockdata.getBlock().popExperience((ServerLevel) this, pos, xp, breakingEntity); // Paper - Properly handle xp dropping; custom amount } boolean flag1 = this.setBlock(pos, fluid.createLegacyBlock(), 3, maxUpdateDepth); diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index c450caed1a8d14f3bd56d0336a9bf72a5adca14f..e21867d3956078bb0db4ceed45e5811e9acd7377 100644 +index c450caed1a8d14f3bd56d0336a9bf72a5adca14f..a4b51821d8bcf9fdb7ff5e200c33ac2c565eece1 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -333,23 +333,31 @@ public class Block extends BlockBehaviour implements ItemLike { for (net.minecraft.world.item.ItemStack drop : net.minecraft.world.level.block.Block.getDrops(state, world.getMinecraftWorld(), pos, blockEntity)) { items.add(org.bukkit.craftbukkit.inventory.CraftItemStack.asBukkitCopy(drop)); } -+ Block block = state.getBlock(); ++ Block block = state.getBlock(); // Paper - Properly handle xp dropping io.papermc.paper.event.block.BlockBreakBlockEvent event = new io.papermc.paper.event.block.BlockBreakBlockEvent(org.bukkit.craftbukkit.block.CraftBlock.at(world, pos), org.bukkit.craftbukkit.block.CraftBlock.at(world, source), items); -+ event.setExpToDrop(block.getExpDrop(state, (ServerLevel) world, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); ++ event.setExpToDrop(block.getExpDrop(state, (ServerLevel) world, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping event.callEvent(); for (var drop : event.getDrops()) { popResource(world.getMinecraftWorld(), pos, org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(drop)); } - state.spawnAfterBreak(world.getMinecraftWorld(), pos, ItemStack.EMPTY, true); -+ state.spawnAfterBreak(world.getMinecraftWorld(), pos, ItemStack.EMPTY, false); -+ block.popExperience((ServerLevel) world, pos, event.getExpToDrop()); ++ state.spawnAfterBreak(world.getMinecraftWorld(), pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping ++ block.popExperience((ServerLevel) world, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping } return true; } // Paper end public static void dropResources(BlockState state, Level world, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity entity, ItemStack tool) { -+ // Paper start ++ // Paper start - Properly handle xp dropping + dropResources(state, world, pos, blockEntity, entity, tool, true); + } + public static void dropResources(BlockState state, Level world, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity entity, ItemStack tool, boolean dropExperience) { -+ // Paper end ++ // Paper end - Properly handle xp dropping if (world instanceof ServerLevel) { Block.getDrops(state, (ServerLevel) world, pos, blockEntity, entity, tool).forEach((itemstack1) -> { Block.popResource(world, pos, itemstack1); }); - state.spawnAfterBreak((ServerLevel) world, pos, tool, true); -+ state.spawnAfterBreak((ServerLevel) world, pos, tool, dropExperience); // Paper ++ state.spawnAfterBreak((ServerLevel) world, pos, tool, dropExperience); // Paper - Properly handle xp dropping } } @@ -63,24 +63,24 @@ index c450caed1a8d14f3bd56d0336a9bf72a5adca14f..e21867d3956078bb0db4ceed45e5811e player.causeFoodExhaustion(0.005F, org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.BLOCK_MINED); // CraftBukkit - EntityExhaustionEvent if (includeDrops) { // Paper - Block.dropResources(state, world, pos, blockEntity, player, tool); -+ Block.dropResources(state, world, pos, blockEntity, player, tool, dropExp); // Paper ++ Block.dropResources(state, world, pos, blockEntity, player, tool, dropExp); // Paper - Properly handle xp dropping } // Paper } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 3ab8b99837b1d1faea722c598b0228b2780be8b1..401f1b418a4f57059e991cc958ebadb31239a581 100644 +index 17d2b90441d7513d7907b988610be8604ac05282..f03fd4bc44fb95cc17cae69dbe3fd684ed562d6f 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -1286,6 +1286,7 @@ public abstract class BlockBehaviour implements FeatureElement { public void spawnAfterBreak(ServerLevel world, BlockPos pos, ItemStack tool, boolean dropExperience) { this.getBlock().spawnAfterBreak(this.asState(), world, pos, tool, dropExperience); -+ if (dropExperience) {getBlock().popExperience(world, pos, this.getBlock().getExpDrop(asState(), world, pos, tool, true));} // Paper - spawn experience ++ if (dropExperience) {getBlock().popExperience(world, pos, this.getBlock().getExpDrop(asState(), world, pos, tool, true));} // Paper - Properly handle xp dropping } public List getDrops(LootParams.Builder builder) { diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index e5506a7d074a9f89d41f4d5d7549a458779bef20..520b53bc604e6755251f0b14e91dce56bc5501ce 100644 +index e5506a7d074a9f89d41f4d5d7549a458779bef20..4b42ef2a876ea210d948238e63fd7a2b7035bb5b 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -503,7 +503,7 @@ public class CraftBlock implements Block { @@ -88,7 +88,7 @@ index e5506a7d074a9f89d41f4d5d7549a458779bef20..520b53bc604e6755251f0b14e91dce56 // Modelled off EntityHuman#hasBlock if (block != Blocks.AIR && (item == null || !iblockdata.requiresCorrectToolForDrops() || nmsItem.isCorrectToolForDrops(iblockdata))) { - net.minecraft.world.level.block.Block.dropResources(iblockdata, this.world.getMinecraftWorld(), this.position, this.world.getBlockEntity(this.position), null, nmsItem); -+ net.minecraft.world.level.block.Block.dropResources(iblockdata, this.world.getMinecraftWorld(), this.position, this.world.getBlockEntity(this.position), null, nmsItem, false); // Paper ++ net.minecraft.world.level.block.Block.dropResources(iblockdata, this.world.getMinecraftWorld(), this.position, this.world.getBlockEntity(this.position), null, nmsItem, false); // Paper - Properly handle xp dropping // Paper start - improve Block#breanNaturally if (triggerEffect) { if (iblockdata.getBlock() instanceof net.minecraft.world.level.block.BaseFireBlock) { From c0e4697dbdbcf269b8c7140c11701aaa1ede042a Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 13 Jan 2024 18:34:33 +0100 Subject: [PATCH 07/45] [ci skip] Add more patch identifying comments --- ...proper-checking-of-empty-item-stacks.patch | 6 +- ...Fix-silent-equipment-change-for-mobs.patch | 20 ++--- .../1002-Fix-spigot-s-Forced-Stats.patch | 15 ++-- ...sing-InventoryHolders-to-inventories.patch | 82 +++++++++---------- ...ssing-logs-for-log-ips-config-option.patch | 8 +- .../1009-Optimise-chunk-tick-iteration.patch | 12 +-- .../server/1010-Lag-compensation-ticks.patch | 10 +-- ...014-Optimise-nearby-player-retrieval.patch | 6 +- .../1015-Remove-streams-for-villager-AI.patch | 28 +++---- ...ix-missing-map-initialize-event-call.patch | 6 +- ...ta-when-attaching-firework-to-entity.patch | 4 +- ...able-for-initializing-CraftLootTable.patch | 4 +- ...-method-of-Fireballs-change-the-trav.patch | 4 +- ...-NPE-in-SculkBloomEvent-world-access.patch | 8 +- ...predicate-for-blocks-when-raytracing.patch | 30 +++---- ...ecure-profile-with-proxy-online-mode.patch | 4 +- ...ingEffect-powers-lightning-rods-and-.patch | 22 ++--- ...sh-event-for-all-player-interactions.patch | 18 ++-- ...several-issues-with-EntityBreedEvent.patch | 36 ++++---- ...n-t-fire-sync-events-during-worldgen.patch | 52 ++++++------ 20 files changed, 190 insertions(+), 185 deletions(-) diff --git a/patches/server/1000-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/1000-Allow-proper-checking-of-empty-item-stacks.patch index be37c27f0111..69c0cf452f89 100644 --- a/patches/server/1000-Allow-proper-checking-of-empty-item-stacks.patch +++ b/patches/server/1000-Allow-proper-checking-of-empty-item-stacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow proper checking of empty item stacks diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 9ce03abd24ae8c2f156ade360094157e20f63666..32da455eb46d09a846bae5270b32a6d6d6b962fd 100644 +index 9ce03abd24ae8c2f156ade360094157e20f63666..bec8114b52d4d888a78c238f48902aa460e193f5 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -33,12 +33,19 @@ public final class CraftItemStack extends ItemStack { @@ -17,7 +17,7 @@ index 9ce03abd24ae8c2f156ade360094157e20f63666..32da455eb46d09a846bae5270b32a6d6 + public boolean isEmpty() { + return handle == null || handle.isEmpty(); + } -+ // Paper end ++ // Paper end - override isEmpty to use vanilla's impl + public static net.minecraft.world.item.ItemStack asNMSCopy(ItemStack original) { if (original instanceof CraftItemStack) { @@ -25,7 +25,7 @@ index 9ce03abd24ae8c2f156ade360094157e20f63666..32da455eb46d09a846bae5270b32a6d6 return stack.handle == null ? net.minecraft.world.item.ItemStack.EMPTY : stack.handle.copy(); } - if (original == null || original.getType() == Material.AIR) { -+ if (original == null || original.isEmpty()) { // Paper - use isEmpty ++ if (original == null || original.isEmpty()) { // Paper - override isEmpty to use vanilla's impl; use isEmpty return net.minecraft.world.item.ItemStack.EMPTY; } diff --git a/patches/server/1001-Fix-silent-equipment-change-for-mobs.patch b/patches/server/1001-Fix-silent-equipment-change-for-mobs.patch index d83168158620..9d7a049c8fdb 100644 --- a/patches/server/1001-Fix-silent-equipment-change-for-mobs.patch +++ b/patches/server/1001-Fix-silent-equipment-change-for-mobs.patch @@ -5,34 +5,34 @@ Subject: [PATCH] Fix silent equipment change for mobs diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 16d84042e2575418880897c728a99d1b8bbcdd15..5af48151159135b869ec4753bbcf79dd257c1570 100644 +index 16d84042e2575418880897c728a99d1b8bbcdd15..c81c72bf1027fcbaac67808fbcf6e0af112176bc 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1059,13 +1059,20 @@ public abstract class Mob extends LivingEntity implements Targeting { @Override public void setItemSlot(EquipmentSlot slot, ItemStack stack) { -+ // Paper start ++ // Paper start - Fix silent equipment change + setItemSlot(slot, stack, false); + } + + @Override + public void setItemSlot(EquipmentSlot slot, ItemStack stack, boolean silent) { -+ // Paper end ++ // Paper end - Fix silent equipment change this.verifyEquippedItem(stack); switch (slot.getType()) { case HAND: - this.onEquipItem(slot, (ItemStack) this.handItems.set(slot.getIndex(), stack), stack); -+ this.onEquipItem(slot, (ItemStack) this.handItems.set(slot.getIndex(), stack), stack, silent); // Paper ++ this.onEquipItem(slot, (ItemStack) this.handItems.set(slot.getIndex(), stack), stack, silent); // Paper - Fix silent equipment change break; case ARMOR: - this.onEquipItem(slot, (ItemStack) this.armorItems.set(slot.getIndex(), stack), stack); -+ this.onEquipItem(slot, (ItemStack) this.armorItems.set(slot.getIndex(), stack), stack, silent); // Paper ++ this.onEquipItem(slot, (ItemStack) this.armorItems.set(slot.getIndex(), stack), stack, silent); // Paper - Fix silent equipment change } } diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -index 8e9469fec42f7b6a132cf173f6f5a95777a29b3b..b319021b22c5dceba6199ed27814b2dcf47b8d50 100644 +index 8e9469fec42f7b6a132cf173f6f5a95777a29b3b..a383c0c8b5c89ef1eef7d18edc3a09f749fdd310 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java @@ -250,8 +250,8 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -41,13 +41,13 @@ index 8e9469fec42f7b6a132cf173f6f5a95777a29b3b..b319021b22c5dceba6199ed27814b2dc @Override - public void setItemSlot(EquipmentSlot slot, ItemStack stack) { - super.setItemSlot(slot, stack); -+ public void setItemSlot(EquipmentSlot slot, ItemStack stack, boolean silent) { // Paper -+ super.setItemSlot(slot, stack, silent); // Paper ++ public void setItemSlot(EquipmentSlot slot, ItemStack stack, boolean silent) { // Paper - Fix silent equipment change ++ super.setItemSlot(slot, stack, silent); // Paper - Fix silent equipment change if (!this.level().isClientSide) { this.reassessWeaponGoal(); } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index d5890f295350ae5fb6e4844c90f6ab8e3a5f5516..a7d40d41a332f0612a2f1ff60c7082e4a8825ba1 100644 +index d5890f295350ae5fb6e4844c90f6ab8e3a5f5516..990bb65f784a2ac52e131d1ed146c2cd6dc19dce 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1900,7 +1900,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -58,7 +58,7 @@ index d5890f295350ae5fb6e4844c90f6ab8e3a5f5516..a7d40d41a332f0612a2f1ff60c7082e4 + // notify observers if the block state is the same and the Y level equals the original y level (for mega trees) + // blocks at the same Y level with the same state can be assumed to be saplings which trigger observers regardless of if the + // tree grew or not -+ if (craftBlockState.getPosition().getY() == pos.getY() && this.getBlockState(craftBlockState.getPosition()) == craftBlockState.getHandle()) { ++ if (craftBlockState.getPosition().getY() == pos.getY() && this.getBlockState(craftBlockState.getPosition()) == craftBlockState.getHandle()) { // Paper - Fix silent equipment change this.notifyAndUpdatePhysics(craftBlockState.getPosition(), null, craftBlockState.getHandle(), craftBlockState.getHandle(), craftBlockState.getHandle(), craftBlockState.getFlag(), 512); } } diff --git a/patches/server/1002-Fix-spigot-s-Forced-Stats.patch b/patches/server/1002-Fix-spigot-s-Forced-Stats.patch index 8e012f221eb5..a138a58b798b 100644 --- a/patches/server/1002-Fix-spigot-s-Forced-Stats.patch +++ b/patches/server/1002-Fix-spigot-s-Forced-Stats.patch @@ -8,7 +8,7 @@ disables saving any forced stats, so it stays at the same value (without enablin fixes stat initialization to not cause a NullPointerException diff --git a/src/main/java/net/minecraft/stats/ServerStatsCounter.java b/src/main/java/net/minecraft/stats/ServerStatsCounter.java -index 9501e5f25f5c4d3069e554d4dc82b0e094156682..9bb8d4d7be6a937980aa653db82be084d066a563 100644 +index 9501e5f25f5c4d3069e554d4dc82b0e094156682..f890738d3bb9fb5e70a9d323c6cec97f9948f9cf 100644 --- a/src/main/java/net/minecraft/stats/ServerStatsCounter.java +++ b/src/main/java/net/minecraft/stats/ServerStatsCounter.java @@ -48,13 +48,6 @@ public class ServerStatsCounter extends StatsCounter { @@ -25,21 +25,26 @@ index 9501e5f25f5c4d3069e554d4dc82b0e094156682..9bb8d4d7be6a937980aa653db82be084 if (file.isFile()) { try { this.parseLocal(server.getFixerUpper(), FileUtils.readFileToString(file)); -@@ -65,6 +58,13 @@ public class ServerStatsCounter extends StatsCounter { +@@ -65,6 +58,18 @@ public class ServerStatsCounter extends StatsCounter { } } -+ // Spigot start // Paper start - moved after stat fetching for player state file. ++ // Paper start - Moved after stat fetching for player state file ++ // Moves the loading after vanilla loading, so it overrides the values. ++ // Disables saving any forced stats, so it stays at the same value (without enabling disableStatSaving) ++ // Fixes stat initialization to not cause a NullPointerException ++ // Spigot start + for ( Map.Entry entry : org.spigotmc.SpigotConfig.forcedStats.entrySet() ) + { + Stat wrapper = Stats.CUSTOM.get(java.util.Objects.requireNonNull(BuiltInRegistries.CUSTOM_STAT.get(entry.getKey()))); // Paper - ensured by SpigotConfig#stats + this.stats.put( wrapper, entry.getValue().intValue() ); + } -+ // Spigot end // Paper end - moved after stat fetching for player state file. ++ // Spigot end ++ // Paper end - Moved after stat fetching for player state file } public void save() { -@@ -80,6 +80,7 @@ public class ServerStatsCounter extends StatsCounter { +@@ -80,6 +85,7 @@ public class ServerStatsCounter extends StatsCounter { @Override public void setValue(Player player, Stat stat, int value) { if ( org.spigotmc.SpigotConfig.disableStatSaving ) return; // Spigot diff --git a/patches/server/1003-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/1003-Add-missing-InventoryHolders-to-inventories.patch index d633e8c51a57..2cac87c8e0f3 100644 --- a/patches/server/1003-Add-missing-InventoryHolders-to-inventories.patch +++ b/patches/server/1003-Add-missing-InventoryHolders-to-inventories.patch @@ -18,7 +18,7 @@ index da5ff65fade5cdf14fad3705c08b48896bc4c36d..d6cbe98e67fdbf8db46338a88ab1356d void setMaxStackSize(int size); diff --git a/src/main/java/net/minecraft/world/SimpleContainer.java b/src/main/java/net/minecraft/world/SimpleContainer.java -index 061e870e0cdd5bf00351b7e8104361bce86809f3..0259d188e6e16384069bf2a1c6e0197fe631ab6b 100644 +index 061e870e0cdd5bf00351b7e8104361bce86809f3..5cdb0face59ee3a12d8aba95ebe16658c80fb544 100644 --- a/src/main/java/net/minecraft/world/SimpleContainer.java +++ b/src/main/java/net/minecraft/world/SimpleContainer.java @@ -30,7 +30,7 @@ public class SimpleContainer implements Container, StackedContentsCompatible { @@ -34,11 +34,11 @@ index 061e870e0cdd5bf00351b7e8104361bce86809f3..0259d188e6e16384069bf2a1c6e0197f } public org.bukkit.inventory.InventoryHolder getOwner() { -+ // Paper start ++ // Paper start - Add missing InventoryHolders + if (this.bukkitOwner == null && this.bukkitOwnerCreator != null) { + this.bukkitOwner = this.bukkitOwnerCreator.get(); + } -+ // Paper end ++ // Paper end - Add missing InventoryHolders return this.bukkitOwner; } @@ -46,18 +46,18 @@ index 061e870e0cdd5bf00351b7e8104361bce86809f3..0259d188e6e16384069bf2a1c6e0197f public SimpleContainer(int size) { this(size, null); } -+ // Paper start ++ // Paper start - Add missing InventoryHolders + private @Nullable java.util.function.Supplier bukkitOwnerCreator; + public SimpleContainer(java.util.function.Supplier bukkitOwnerCreator, int size) { + this(size); + this.bukkitOwnerCreator = bukkitOwnerCreator; + } -+ // Paper end ++ // Paper end - Add missing InventoryHolders public SimpleContainer(int i, org.bukkit.inventory.InventoryHolder owner) { this.bukkitOwner = owner; diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index cdd230337584befb37f2e48b24dd504398b431a5..8fd82051bba33b4703e4d99fff886b63a319a5ba 100644 +index cdd230337584befb37f2e48b24dd504398b431a5..0727dcbd561c0b488733aa0ad0d3f256d0f76c66 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -1029,4 +1029,15 @@ public abstract class AbstractContainerMenu { @@ -65,7 +65,7 @@ index cdd230337584befb37f2e48b24dd504398b431a5..8fd82051bba33b4703e4d99fff886b63 return this.stateId; } + -+ // Paper start - add missing BlockInventoryHolder to inventories ++ // Paper start - Add missing InventoryHolders + // The reason this is a supplier, is that the createHolder method uses the bukkit InventoryView#getTopInventory to get the inventory in question + // and that can't be obtained safely until the AbstractContainerMenu has been fully constructed. Using a supplier lazily + // initializes the InventoryHolder safely. @@ -74,10 +74,10 @@ index cdd230337584befb37f2e48b24dd504398b431a5..8fd82051bba33b4703e4d99fff886b63 + Preconditions.checkArgument(context != null, "context was null"); + return () -> context.createBlockHolder(this); + } -+ // Paper end ++ // Paper end - Add missing InventoryHolders } diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index a6e712606ece631502ae4c7513403092df77524f..25af92ec0d086160020cade97b0ddf7f6546e159 100644 +index a6e712606ece631502ae4c7513403092df77524f..5942bac2f24dafad6a3d451fcc126a97e436cd4f 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java @@ -41,7 +41,7 @@ public class BeaconMenu extends AbstractContainerMenu { @@ -85,12 +85,12 @@ index a6e712606ece631502ae4c7513403092df77524f..25af92ec0d086160020cade97b0ddf7f super(MenuType.BEACON, syncId); this.player = (Inventory) inventory; // CraftBukkit - TODO: check this - this.beacon = new SimpleContainer(1) { -+ this.beacon = new SimpleContainer(this.createBlockHolder(context), 1) { // Paper ++ this.beacon = new SimpleContainer(this.createBlockHolder(context), 1) { // Paper - Add missing InventoryHolders @Override public boolean canPlaceItem(int slot, ItemStack stack) { return stack.is(ItemTags.BEACON_PAYMENT_ITEMS); diff --git a/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java b/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java -index 819187dbcf468d9278ce33bd97688476aab53f8e..09be5db3c09262e8bc56c4e20a48fe648f09237c 100644 +index 819187dbcf468d9278ce33bd97688476aab53f8e..32e7c7599bffb9ea5384615d31e0b63de08a8813 100644 --- a/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java +++ b/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java @@ -52,7 +52,7 @@ public class CartographyTableMenu extends AbstractContainerMenu { @@ -98,7 +98,7 @@ index 819187dbcf468d9278ce33bd97688476aab53f8e..09be5db3c09262e8bc56c4e20a48fe64 public CartographyTableMenu(int syncId, Inventory inventory, final ContainerLevelAccess context) { super(MenuType.CARTOGRAPHY_TABLE, syncId); - this.container = new SimpleContainer(2) { -+ this.container = new SimpleContainer(this.createBlockHolder(context), 2) { // Paper ++ this.container = new SimpleContainer(this.createBlockHolder(context), 2) { // Paper - Add missing InventoryHolders @Override public void setChanged() { CartographyTableMenu.this.slotsChanged(this); @@ -107,19 +107,19 @@ index 819187dbcf468d9278ce33bd97688476aab53f8e..09be5db3c09262e8bc56c4e20a48fe64 // CraftBukkit end }; - this.resultContainer = new ResultContainer() { -+ this.resultContainer = new ResultContainer(this.createBlockHolder(context)) { // Paper ++ this.resultContainer = new ResultContainer(this.createBlockHolder(context)) { // Paper - Add missing InventoryHolders @Override public void setChanged() { CartographyTableMenu.this.slotsChanged(this); diff --git a/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java b/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java -index f00a957a0f55e69f93e6d7dc80193304447c3dcb..d2f19b44ce4ab663a68ee330de4d4582ae9f3f00 100644 +index f00a957a0f55e69f93e6d7dc80193304447c3dcb..91699661c78089e07be06e4456413c5aa90562b1 100644 --- a/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java +++ b/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java @@ -21,6 +21,18 @@ public interface ContainerLevelAccess { return new org.bukkit.Location(this.getWorld().getWorld(), this.getPosition().getX(), this.getPosition().getY(), this.getPosition().getZ()); } // CraftBukkit end -+ // Paper start ++ // Paper start - Add missing InventoryHolders + default boolean isBlock() { + return false; + } @@ -130,7 +130,7 @@ index f00a957a0f55e69f93e6d7dc80193304447c3dcb..d2f19b44ce4ab663a68ee330de4d4582 + } + return new org.bukkit.craftbukkit.inventory.CraftBlockInventoryHolder(this, menu.getBukkitView().getTopInventory()); + } -+ // Paper end ++ // Paper end - Add missing InventoryHolders ContainerLevelAccess NULL = new ContainerLevelAccess() { @Override @@ -138,17 +138,17 @@ index f00a957a0f55e69f93e6d7dc80193304447c3dcb..d2f19b44ce4ab663a68ee330de4d4582 return pos; } // CraftBukkit end -+ // Paper start ++ // Paper start - Add missing InventoryHolders + @Override + public boolean isBlock() { + return true; + } -+ // Paper end ++ // Paper end - Add missing InventoryHolders @Override public Optional evaluate(BiFunction getter) { diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java -index c2d6265933dc4ceed80e2bd517970d02164a63df..c5c509fbb915c60dfa95aac8510684d0b9f8b0ff 100644 +index c2d6265933dc4ceed80e2bd517970d02164a63df..343f44db579839eb61376f876b5eff2e615dc2e5 100644 --- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java +++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java @@ -61,7 +61,7 @@ public class EnchantmentMenu extends AbstractContainerMenu { @@ -156,12 +156,12 @@ index c2d6265933dc4ceed80e2bd517970d02164a63df..c5c509fbb915c60dfa95aac8510684d0 public EnchantmentMenu(int syncId, Inventory playerInventory, ContainerLevelAccess context) { super(MenuType.ENCHANTMENT, syncId); - this.enchantSlots = new SimpleContainer(2) { -+ this.enchantSlots = new SimpleContainer(this.createBlockHolder(context), 2) { // Paper ++ this.enchantSlots = new SimpleContainer(this.createBlockHolder(context), 2) { // Paper - Add missing InventoryHolders @Override public void setChanged() { super.setChanged(); diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java -index 24187a7ce812cb83a9a736bec8dce9e68ccc0798..076c2b2938c9b88b7e71dbc2aa9d8c7e90d4fe75 100644 +index 24187a7ce812cb83a9a736bec8dce9e68ccc0798..4acad717bfec91e4abcdd59900e6872838d0712c 100644 --- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java +++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java @@ -59,8 +59,8 @@ public class GrindstoneMenu extends AbstractContainerMenu { @@ -170,13 +170,13 @@ index 24187a7ce812cb83a9a736bec8dce9e68ccc0798..076c2b2938c9b88b7e71dbc2aa9d8c7e super(MenuType.GRINDSTONE, syncId); - this.resultSlots = new ResultContainer(); - this.repairSlots = new SimpleContainer(2) { -+ this.resultSlots = new ResultContainer(this.createBlockHolder(context)); // Paper -+ this.repairSlots = new SimpleContainer(this.createBlockHolder(context), 2) { // Paper ++ this.resultSlots = new ResultContainer(this.createBlockHolder(context)); // Paper - Add missing InventoryHolders ++ this.repairSlots = new SimpleContainer(this.createBlockHolder(context), 2) { // Paper - Add missing InventoryHolders @Override public void setChanged() { super.setChanged(); diff --git a/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java b/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java -index ff770b9ce68a62418de0c7ed389650626fa1dcb2..c2cf5a8e788637c6264cf43d712a5be223ff1cc5 100644 +index ff770b9ce68a62418de0c7ed389650626fa1dcb2..e5a7f36843d621e6c714ef2e1cb8e2e3551924ef 100644 --- a/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java @@ -18,7 +18,7 @@ public abstract class ItemCombinerMenu extends AbstractContainerMenu { @@ -184,7 +184,7 @@ index ff770b9ce68a62418de0c7ed389650626fa1dcb2..c2cf5a8e788637c6264cf43d712a5be2 protected final Container inputSlots; private final List inputSlotIndexes; - protected final ResultContainer resultSlots = new ResultContainer(); -+ protected final ResultContainer resultSlots; // Paper - delay field init ++ protected final ResultContainer resultSlots; // Paper - Add missing InventoryHolders; delay field init private final int resultSlotIndex; protected abstract boolean mayPickup(Player player, boolean present); @@ -192,7 +192,7 @@ index ff770b9ce68a62418de0c7ed389650626fa1dcb2..c2cf5a8e788637c6264cf43d712a5be2 public ItemCombinerMenu(@Nullable MenuType type, int syncId, Inventory playerInventory, ContainerLevelAccess context) { super(type, syncId); this.access = context; -+ this.resultSlots = new ResultContainer(this.createBlockHolder(this.access)); // Paper - delay field init ++ this.resultSlots = new ResultContainer(this.createBlockHolder(this.access)); // Paper - Add missing InventoryHolders; delay field init this.player = playerInventory.player; ItemCombinerMenuSlotDefinition itemcombinermenuslotdefinition = this.createInputSlotDefinitions(); @@ -201,12 +201,12 @@ index ff770b9ce68a62418de0c7ed389650626fa1dcb2..c2cf5a8e788637c6264cf43d712a5be2 private SimpleContainer createContainer(int size) { - return new SimpleContainer(size) { -+ return new SimpleContainer(this.createBlockHolder(this.access), size) { // Paper ++ return new SimpleContainer(this.createBlockHolder(this.access), size) { // Paper - Add missing InventoryHolders @Override public void setChanged() { super.setChanged(); diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java -index e28c1cdf4763e9db3e29b3c0f08d65f978017931..146006af2af0881de199a0607a1b8f33de4c3f4f 100644 +index e28c1cdf4763e9db3e29b3c0f08d65f978017931..c70af9c36ab5806643b050554d7d27a1e2db2028 100644 --- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java +++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java @@ -73,7 +73,7 @@ public class LoomMenu extends AbstractContainerMenu { @@ -214,7 +214,7 @@ index e28c1cdf4763e9db3e29b3c0f08d65f978017931..146006af2af0881de199a0607a1b8f33 this.slotUpdateListener = () -> { }; - this.inputContainer = new SimpleContainer(3) { -+ this.inputContainer = new SimpleContainer(this.createBlockHolder(context), 3) { // Paper ++ this.inputContainer = new SimpleContainer(this.createBlockHolder(context), 3) { // Paper - Add missing InventoryHolders @Override public void setChanged() { super.setChanged(); @@ -223,12 +223,12 @@ index e28c1cdf4763e9db3e29b3c0f08d65f978017931..146006af2af0881de199a0607a1b8f33 // CraftBukkit end }; - this.outputContainer = new SimpleContainer(1) { -+ this.outputContainer = new SimpleContainer(this.createBlockHolder(context), 1) { // Paper ++ this.outputContainer = new SimpleContainer(this.createBlockHolder(context), 1) { // Paper - Add missing InventoryHolders @Override public void setChanged() { super.setChanged(); diff --git a/src/main/java/net/minecraft/world/inventory/ResultContainer.java b/src/main/java/net/minecraft/world/inventory/ResultContainer.java -index d4592218d761eb38402e3d95c642e80a708cb333..3e268c4d93241fad72a366c8c8f477e650d5a3db 100644 +index d4592218d761eb38402e3d95c642e80a708cb333..4c4266a85c38e41e6c7e6144a68624f4daa50c54 100644 --- a/src/main/java/net/minecraft/world/inventory/ResultContainer.java +++ b/src/main/java/net/minecraft/world/inventory/ResultContainer.java @@ -29,7 +29,12 @@ public class ResultContainer implements Container, RecipeCraftingHolder { @@ -236,12 +236,12 @@ index d4592218d761eb38402e3d95c642e80a708cb333..3e268c4d93241fad72a366c8c8f477e6 public org.bukkit.inventory.InventoryHolder getOwner() { - return null; // Result slots don't get an owner -+ // Paper start ++ // Paper start - Add missing InventoryHolders + if (this.holder == null && this.holderCreator != null) { + this.holder = this.holderCreator.get(); + } + return this.holder; // Result slots don't get an owner -+ // Paper end - yes they do ++ // Paper end - Add missing InventoryHolders } // Don't need a transaction; the InventoryCrafting keeps track of it for us @@ -249,19 +249,19 @@ index d4592218d761eb38402e3d95c642e80a708cb333..3e268c4d93241fad72a366c8c8f477e6 return null; } // CraftBukkit end -+ // Paper start ++ // Paper start - Add missing InventoryHolders + private @Nullable java.util.function.Supplier holderCreator; + private @Nullable org.bukkit.inventory.InventoryHolder holder; + public ResultContainer(java.util.function.Supplier holderCreator) { + this(); + this.holderCreator = holderCreator; + } -+ // Paper end ++ // Paper end - Add missing InventoryHolders public ResultContainer() { this.itemStacks = NonNullList.withSize(1, ItemStack.EMPTY); diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java -index aa1d1466d0a7b76967a41d948b7a4114fe06242f..f8129dcdcae12ed66ec58e8c749fa88ec3cd85d8 100644 +index aa1d1466d0a7b76967a41d948b7a4114fe06242f..d6b9de312f67269e1e4b7bb5200ce8a0be674602 100644 --- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java +++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java @@ -68,7 +68,7 @@ public class StonecutterMenu extends AbstractContainerMenu { @@ -269,7 +269,7 @@ index aa1d1466d0a7b76967a41d948b7a4114fe06242f..f8129dcdcae12ed66ec58e8c749fa88e this.slotUpdateListener = () -> { }; - this.container = new SimpleContainer(1) { -+ this.container = new SimpleContainer(this.createBlockHolder(context), 1) { // Paper ++ this.container = new SimpleContainer(this.createBlockHolder(context), 1) { // Paper - Add missing InventoryHolders @Override public void setChanged() { super.setChanged(); @@ -278,25 +278,25 @@ index aa1d1466d0a7b76967a41d948b7a4114fe06242f..f8129dcdcae12ed66ec58e8c749fa88e // CraftBukkit end }; - this.resultContainer = new ResultContainer(); -+ this.resultContainer = new ResultContainer(this.createBlockHolder(context)); // Paper ++ this.resultContainer = new ResultContainer(this.createBlockHolder(context)); // Paper - Add missing InventoryHolders this.access = context; this.level = playerInventory.player.level(); this.inputSlot = this.addSlot(new Slot(this.container, 0, 20, 33)); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftBlockInventoryHolder.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftBlockInventoryHolder.java -index 7ae484b0fa5bf5494c6ead15f7f1c0fa840ae270..04585d2bc27dc8a165238ee9d2612e179b66fb63 100644 +index 7ae484b0fa5bf5494c6ead15f7f1c0fa840ae270..7129eb5f5cea39992b4c690cb421004004a952ea 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftBlockInventoryHolder.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftBlockInventoryHolder.java @@ -17,6 +17,13 @@ public class CraftBlockInventoryHolder implements BlockInventoryHolder { this.block = CraftBlock.at(world, pos); this.inventory = new CraftInventory(inv); } -+ // Paper start ++ // Paper start - Add missing InventoryHolders + public CraftBlockInventoryHolder(net.minecraft.world.inventory.ContainerLevelAccess levelAccess, Inventory inventory) { + com.google.common.base.Preconditions.checkArgument(levelAccess.isBlock()); + this.block = CraftBlock.at(levelAccess.getWorld(), levelAccess.getPosition()); + this.inventory = inventory; + } -+ // Paper end ++ // Paper end - Add missing InventoryHolders @Override public Block getBlock() { diff --git a/patches/server/1006-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/1006-Add-missing-logs-for-log-ips-config-option.patch index 604b80916ed3..2898d66615c7 100644 --- a/patches/server/1006-Add-missing-logs-for-log-ips-config-option.patch +++ b/patches/server/1006-Add-missing-logs-for-log-ips-config-option.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add missing logs for log-ips config option diff --git a/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java b/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java -index d4f5a98a0b1ca9f2a8baa6e0b27353df94d1f333..8f4a964a0863b1be834c1ea1e3d49092516f9258 100644 +index d4f5a98a0b1ca9f2a8baa6e0b27353df94d1f333..569516822319c885e76be1aa92580bdf0bc932f5 100644 --- a/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java +++ b/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java @@ -50,7 +50,7 @@ public class LegacyQueryHandler extends ChannelInboundHandlerAdapter { @@ -13,7 +13,7 @@ index d4f5a98a0b1ca9f2a8baa6e0b27353df94d1f333..8f4a964a0863b1be834c1ea1e3d49092 if (i == 0) { - LegacyQueryHandler.LOGGER.debug("Ping: (<1.3.x) from {}", socketaddress); -+ LegacyQueryHandler.LOGGER.debug("Ping: (<1.3.x) from {}", net.minecraft.server.MinecraftServer.getServer().logIPs() ? socketaddress: ""); // Paper ++ LegacyQueryHandler.LOGGER.debug("Ping: (<1.3.x) from {}", net.minecraft.server.MinecraftServer.getServer().logIPs() ? socketaddress: ""); // Paper - Respect logIPs option // Paper start - Call PaperServerListPingEvent and use results event = com.destroystokyo.paper.network.PaperLegacyStatusClient.processRequest(net.minecraft.server.MinecraftServer.getServer(), (java.net.InetSocketAddress) socketaddress, 39, null); @@ -22,7 +22,7 @@ index d4f5a98a0b1ca9f2a8baa6e0b27353df94d1f333..8f4a964a0863b1be834c1ea1e3d49092 // Paper end } else { - LegacyQueryHandler.LOGGER.debug("Ping: (1.4-1.5.x) from {}", socketaddress); -+ LegacyQueryHandler.LOGGER.debug("Ping: (1.4-1.5.x) from {}", net.minecraft.server.MinecraftServer.getServer().logIPs() ? socketaddress: ""); // Paper ++ LegacyQueryHandler.LOGGER.debug("Ping: (1.4-1.5.x) from {}", net.minecraft.server.MinecraftServer.getServer().logIPs() ? socketaddress: ""); // Paper - Respect logIPs option } if (s == null) { @@ -31,7 +31,7 @@ index d4f5a98a0b1ca9f2a8baa6e0b27353df94d1f333..8f4a964a0863b1be834c1ea1e3d49092 this.buf = null; - LOGGER.debug("Ping: (1.6) from {}", ctx.channel().remoteAddress()); -+ LOGGER.debug("Ping: (1.6) from {}", net.minecraft.server.MinecraftServer.getServer().logIPs() ? ctx.channel().remoteAddress(): ""); // Paper ++ LOGGER.debug("Ping: (1.6) from {}", net.minecraft.server.MinecraftServer.getServer().logIPs() ? ctx.channel().remoteAddress(): ""); // Paper - Respect logIPs option java.net.InetSocketAddress virtualHost = com.destroystokyo.paper.network.PaperNetworkClient.prepareVirtualHost(host, port); com.destroystokyo.paper.event.server.PaperServerListPingEvent event = com.destroystokyo.paper.network.PaperLegacyStatusClient.processRequest( diff --git a/patches/server/1009-Optimise-chunk-tick-iteration.patch b/patches/server/1009-Optimise-chunk-tick-iteration.patch index c9fcf3724207..d194ec1e9785 100644 --- a/patches/server/1009-Optimise-chunk-tick-iteration.patch +++ b/patches/server/1009-Optimise-chunk-tick-iteration.patch @@ -9,7 +9,7 @@ class to quickly retrieve nearby players instead of possible searching all players on the server. diff --git a/src/main/java/io/papermc/paper/util/player/NearbyPlayers.java b/src/main/java/io/papermc/paper/util/player/NearbyPlayers.java -index c3ce8a42dddd76b7189ad5685b23f9d9f8ccadb3..17ba07cbd4792f63d88ce29d00da280f30c4abff 100644 +index c3ce8a42dddd76b7189ad5685b23f9d9f8ccadb3..f164256d59b761264876ca0c85f812d101bfd5de 100644 --- a/src/main/java/io/papermc/paper/util/player/NearbyPlayers.java +++ b/src/main/java/io/papermc/paper/util/player/NearbyPlayers.java @@ -17,7 +17,8 @@ public final class NearbyPlayers { @@ -39,12 +39,12 @@ index c3ce8a42dddd76b7189ad5685b23f9d9f8ccadb3..17ba07cbd4792f63d88ce29d00da280f players[NearbyMapType.GENERAL_REALLY_SMALL.ordinal()].update(chunk.x, chunk.z, GENERAL_REALLY_SMALL_VIEW_DISTANCE); players[NearbyMapType.TICK_VIEW_DISTANCE.ordinal()].update(chunk.x, chunk.z, ChunkSystem.getTickViewDistance(player)); players[NearbyMapType.VIEW_DISTANCE.ordinal()].update(chunk.x, chunk.z, ChunkSystem.getLoadViewDistance(player)); -+ players[NearbyMapType.SPAWN_RANGE.ordinal()].update(chunk.x, chunk.z, SPAWN_RANGE_VIEW_DISTANCE); ++ players[NearbyMapType.SPAWN_RANGE.ordinal()].update(chunk.x, chunk.z, SPAWN_RANGE_VIEW_DISTANCE); // Paper - optimise chunk iteration } public TrackedChunk getChunk(final ChunkPos pos) { diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java -index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..5afeb59ff25fed2d565407acacffec8383398006 100644 +index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754b4fcd1e8 100644 --- a/src/main/java/net/minecraft/server/level/ChunkHolder.java +++ b/src/main/java/net/minecraft/server/level/ChunkHolder.java @@ -79,11 +79,19 @@ public class ChunkHolder { @@ -103,12 +103,12 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..5afeb59ff25fed2d565407acacffec83 + public void broadcastChanges(LevelChunk chunk) { - if (this.hasChangedSections || !this.skyChangedLightSectionFilter.isEmpty() || !this.blockChangedLightSectionFilter.isEmpty()) { -+ if (this.needsBroadcastChanges()) { // Paper - moved into above, other logic needs to call ++ if (this.needsBroadcastChanges()) { // Paper - optimise chunk tick iteration; moved into above, other logic needs to call Level world = chunk.getLevel(); List list; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 0405bc1e17975a74af3d56edf34354f5cb553a1c..d08b4ff04362a5a9add88d060beb48e4119b594d 100644 +index 0405bc1e17975a74af3d56edf34354f5cb553a1c..71606bca60410c8ab6fd6427dc11e35614928702 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -135,7 +135,7 @@ index 0405bc1e17975a74af3d56edf34354f5cb553a1c..d08b4ff04362a5a9add88d060beb48e4 // Paper end - private static double euclideanDistanceSquared(ChunkPos pos, Entity entity) { -+ public static double euclideanDistanceSquared(ChunkPos pos, Entity entity) { // Paper - optimise chunk iteration - public ++ public static double euclideanDistanceSquared(ChunkPos pos, Entity entity) { // Paper - optimise chunk iteration; public double d0 = (double) SectionPos.sectionToBlockCoord(pos.x, 8); double d1 = (double) SectionPos.sectionToBlockCoord(pos.z, 8); double d2 = d0 - entity.getX(); diff --git a/patches/server/1010-Lag-compensation-ticks.patch b/patches/server/1010-Lag-compensation-ticks.patch index cf6f957da4a3..361e2385534c 100644 --- a/patches/server/1010-Lag-compensation-ticks.patch +++ b/patches/server/1010-Lag-compensation-ticks.patch @@ -65,7 +65,7 @@ index cc1c077c3e91d1f8852fcd6ea939864cfce398a8..4634f4fbb0c06c68436c5e30069621c9 if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3ce5c06a6c154c0b8c9f2aaaa0a2f9d092cc4551..12d4ab6aa349e3f465cc88a2717243ff5064df02 100644 +index 3ce5c06a6c154c0b8c9f2aaaa0a2f9d092cc4551..c5a07b414da0209035f3f186f72a8913243187be 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3818,6 +3818,10 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -89,7 +89,7 @@ index 3ce5c06a6c154c0b8c9f2aaaa0a2f9d092cc4551..12d4ab6aa349e3f465cc88a2717243ff + boolean shouldLagCompensate = this.useItem.getItem().isEdible() && this.eatStartTime != -1 && (System.nanoTime() - this.eatStartTime) > ((1 + this.totalEatTimeTicks) * 50 * (1000 * 1000)); + if ((--this.useItemRemaining == 0 || shouldLagCompensate) && !this.level().isClientSide && !stack.useOnRelease()) { + this.useItemRemaining = 0; -+ // Paper end ++ // Paper end - lag compensate eating this.completeUsingItem(); } @@ -101,7 +101,7 @@ index 3ce5c06a6c154c0b8c9f2aaaa0a2f9d092cc4551..12d4ab6aa349e3f465cc88a2717243ff + // Paper start - lag compensate eating + this.useItemRemaining = this.totalEatTimeTicks = itemstack.getUseDuration(); + this.eatStartTime = System.nanoTime(); -+ // Paper end ++ // Paper end - lag compensate eating if (!this.level().isClientSide) { this.setLivingEntityFlag(1, true); this.setLivingEntityFlag(2, hand == InteractionHand.OFF_HAND); @@ -113,7 +113,7 @@ index 3ce5c06a6c154c0b8c9f2aaaa0a2f9d092cc4551..12d4ab6aa349e3f465cc88a2717243ff + // Paper start - lag compensate eating + this.useItemRemaining = this.totalEatTimeTicks = 0; + this.eatStartTime = -1L; -+ // Paper end ++ // Paper end - lag compensate eating } } @@ -125,7 +125,7 @@ index 3ce5c06a6c154c0b8c9f2aaaa0a2f9d092cc4551..12d4ab6aa349e3f465cc88a2717243ff + // Paper start - lag compensate eating + this.useItemRemaining = this.totalEatTimeTicks = 0; + this.eatStartTime = -1L; -+ // Paper end ++ // Paper end - lag compensate eating } public boolean isBlocking() { diff --git a/patches/server/1014-Optimise-nearby-player-retrieval.patch b/patches/server/1014-Optimise-nearby-player-retrieval.patch index 822d652d9eb5..c96c493cdb21 100644 --- a/patches/server/1014-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1014-Optimise-nearby-player-retrieval.patch @@ -141,14 +141,14 @@ index 58422f00c7d64dbd1cf6d7211c9838875cbe7778..c157309ac78e7af084d3acb6e8b2bcd4 private boolean testInvisible = true; @Nullable diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index b3293a722fb5c5262a777402140c764c03367800..aaa07fcd4b32fe0de88142ab30378327a01f1729 100644 +index b3293a722fb5c5262a777402140c764c03367800..bb685325e6cb2ac5ddccfca8602013e38b4a4891 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java @@ -230,9 +230,13 @@ public interface EntityGetter { T livingEntity = null; for(T livingEntity2 : entityList) { -+ // Paper start - move up ++ // Paper start - optimise nearby player retrieval; move up + // don't check entities outside closest range + double e = livingEntity2.distanceToSqr(x, y, z); + if (d == -1.0D || e < d) { @@ -156,7 +156,7 @@ index b3293a722fb5c5262a777402140c764c03367800..aaa07fcd4b32fe0de88142ab30378327 if (targetPredicate.test(entity, livingEntity2)) { - double e = livingEntity2.distanceToSqr(x, y, z); - if (d == -1.0D || e < d) { -+ // Paper - move up ++ // Paper - optimise nearby player retrieval; move up d = e; livingEntity = livingEntity2; } diff --git a/patches/server/1015-Remove-streams-for-villager-AI.patch b/patches/server/1015-Remove-streams-for-villager-AI.patch index a2538da4d049..e5c6b2d9eddc 100644 --- a/patches/server/1015-Remove-streams-for-villager-AI.patch +++ b/patches/server/1015-Remove-streams-for-villager-AI.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove streams for villager AI diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java -index b45c4f50705f80163d44d9e588f86a5770f5be38..879e16d4c881a97f95eeff8016f9900d6cfe10c2 100644 +index b45c4f50705f80163d44d9e588f86a5770f5be38..64165fed12c6c76d4ceb36d69f47a1235c1e8e44 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java @@ -52,7 +52,7 @@ public class GateBehavior implements BehaviorControl @@ -13,7 +13,7 @@ index b45c4f50705f80163d44d9e588f86a5770f5be38..879e16d4c881a97f95eeff8016f9900d this.status = Behavior.Status.RUNNING; this.orderPolicy.apply(this.behaviors); - this.runningPolicy.apply(this.behaviors.stream(), world, entity, time); -+ this.runningPolicy.apply(this.behaviors.entries, world, entity, time); ++ this.runningPolicy.apply(this.behaviors.entries, world, entity, time); // Paper - Remove streams return true; } else { return false; @@ -26,13 +26,13 @@ index b45c4f50705f80163d44d9e588f86a5770f5be38..879e16d4c881a97f95eeff8016f9900d - }).forEach((task) -> { - task.tickOrStop(world, entity, time); - }); -+ // Paper start ++ // Paper start - Remove streams + for (BehaviorControl task : this.behaviors) { + if (task.getStatus() == Behavior.Status.RUNNING) { + task.tickOrStop(world, entity, time); + } + } -+ // Paper end ++ // Paper end - Remove streams if (this.behaviors.stream().noneMatch((task) -> { return task.getStatus() == Behavior.Status.RUNNING; })) { @@ -45,13 +45,13 @@ index b45c4f50705f80163d44d9e588f86a5770f5be38..879e16d4c881a97f95eeff8016f9900d - }).forEach((task) -> { - task.doStop(world, entity, time); - }); -+ // Paper start ++ // Paper start - Remove streams + for (BehaviorControl behavior : this.behaviors) { + if (behavior.getStatus() == Behavior.Status.RUNNING) { + behavior.doStop(world, entity, time); + } + } -+ // Paper end ++ // Paper end - Remove streams this.exitErasedMemories.forEach(entity.getBrain()::eraseMemory); } @@ -65,7 +65,7 @@ index b45c4f50705f80163d44d9e588f86a5770f5be38..879e16d4c881a97f95eeff8016f9900d - }).filter((task) -> { - return task.tryStart(world, entity, time); - }).findFirst(); -+ // Paper start - remove streams ++ // Paper start - Remove streams + public void apply(List>> tasks, ServerLevel world, E entity, long time) { + for (ShufflingList.WeightedEntry> task : tasks) { + final BehaviorControl behavior = task.getData(); @@ -73,7 +73,7 @@ index b45c4f50705f80163d44d9e588f86a5770f5be38..879e16d4c881a97f95eeff8016f9900d + break; + } + } -+ // Paper end - remove streams ++ // Paper end - Remove streams } }, TRY_ALL { @@ -84,7 +84,7 @@ index b45c4f50705f80163d44d9e588f86a5770f5be38..879e16d4c881a97f95eeff8016f9900d - }).forEach((task) -> { - task.tryStart(world, entity, time); - }); -+ // Paper start - remove streams ++ // Paper start - Remove streams + public void apply(List>> tasks, ServerLevel world, E entity, long time) { + for (ShufflingList.WeightedEntry> task : tasks) { + final BehaviorControl behavior = task.getData(); @@ -92,12 +92,12 @@ index b45c4f50705f80163d44d9e588f86a5770f5be38..879e16d4c881a97f95eeff8016f9900d + behavior.tryStart(world, entity, time); + } + } -+ // Paper end - remove streams ++ // Paper end - Remove streams } }; - public abstract void apply(Stream> tasks, ServerLevel world, E entity, long time); -+ public abstract void apply(List>> tasks, ServerLevel world, E entity, long time); // Paper - remove streams ++ public abstract void apply(List>> tasks, ServerLevel world, E entity, long time); // Paper - Remove streams } } diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java @@ -114,7 +114,7 @@ index 731ef21dbbd25d6924717de42f4569a9b5935643..fe3ab3d388f0481fb0db06b7f730f868 private final boolean isUnsafe; // Paper diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java -index 1dfcc5cba6ffb463acf161a23fff1ca452184290..61a164c5bfc86faa3f4d04a66e0257016cfd937d 100644 +index 1dfcc5cba6ffb463acf161a23fff1ca452184290..9958690971a2f14bfdb8841e466fa783452c5b0c 100644 --- a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java +++ b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java @@ -25,13 +25,16 @@ public class NearestItemSensor extends Sensor { @@ -126,7 +126,7 @@ index 1dfcc5cba6ffb463acf161a23fff1ca452184290..61a164c5bfc86faa3f4d04a66e025701 }); - list.sort(Comparator.comparingDouble(entity::distanceToSqr)); + list.sort((e1, e2) -> Double.compare(entity.distanceToSqr(e1), entity.distanceToSqr(e2))); // better to take the sort perf hit than using line of sight more than we need to. -+ // Paper start - remove streams ++ // Paper start - Remove streams // Paper start - remove streams in favour of lists ItemEntity nearest = null; - for (ItemEntity entityItem : list) { @@ -134,7 +134,7 @@ index 1dfcc5cba6ffb463acf161a23fff1ca452184290..61a164c5bfc86faa3f4d04a66e025701 + for (int i = 0; i < list.size(); i++) { + ItemEntity entityItem = list.get(i); + if (entity.hasLineOfSight(entityItem)) { -+ // Paper end - remove streams ++ // Paper end - Remove streams nearest = entityItem; break; } diff --git a/patches/server/1016-Fix-missing-map-initialize-event-call.patch b/patches/server/1016-Fix-missing-map-initialize-event-call.patch index 880fdb143519..d8cfbeba41c6 100644 --- a/patches/server/1016-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/1016-Fix-missing-map-initialize-event-call.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ba5b86211b02fc5a90d1e3443afbd1e41fc1dbf1..af712365d676bc33314b5a3fc6ff8ae823dc3012 100644 +index ba5b86211b02fc5a90d1e3443afbd1e41fc1dbf1..6ff5898846ef2d985f5ce630db9a31c4ad75ca66 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2133,13 +2133,25 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -18,7 +18,7 @@ index ba5b86211b02fc5a90d1e3443afbd1e41fc1dbf1..af712365d676bc33314b5a3fc6ff8ae8 - MapItemSavedData worldmap = (MapItemSavedData) this.getServer().overworld().getDataStorage().get(MapItemSavedData.factory(), id); - if (worldmap != null) { - worldmap.id = id; -+ // Paper start - Call missing map initialize event & set id ++ // Paper start - Call missing map initialize event and set id + final DimensionDataStorage storage = this.getServer().overworld().getDataStorage(); + + final net.minecraft.world.level.saveddata.SavedData existing = storage.cache.get(id); @@ -38,7 +38,7 @@ index ba5b86211b02fc5a90d1e3443afbd1e41fc1dbf1..af712365d676bc33314b5a3fc6ff8ae8 - // CraftBukkit end + + return existing instanceof MapItemSavedData data ? data : null; -+ // Paper end ++ // Paper end - Call missing map initialize event and set id } @Override diff --git a/patches/server/1017-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/1017-Update-entity-data-when-attaching-firework-to-entity.patch index 40c89bc2cc79..0a98851952d2 100644 --- a/patches/server/1017-Update-entity-data-when-attaching-firework-to-entity.patch +++ b/patches/server/1017-Update-entity-data-when-attaching-firework-to-entity.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Update entity data when attaching firework to entity public net.minecraft.world.entity.projectile.FireworkRocketEntity DATA_ATTACHED_TO_TARGET diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java -index 13b09465952dca2e95647ddb9753a7fe2db51720..c13cdbaf7abdf120a3969f8e887b4c3b78989c9c 100644 +index 13b09465952dca2e95647ddb9753a7fe2db51720..8694c0dd606ec4e0fd60be434f70860e7779a871 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java @@ -69,6 +69,10 @@ public class CraftFirework extends CraftProjectile implements Firework { @@ -17,7 +17,7 @@ index 13b09465952dca2e95647ddb9753a7fe2db51720..c13cdbaf7abdf120a3969f8e887b4c3b + // Paper start - update entity data + this.getHandle().getEntityData().set(FireworkRocketEntity.DATA_ATTACHED_TO_TARGET, + entity != null ? java.util.OptionalInt.of(entity.getEntityId()) : java.util.OptionalInt.empty()); -+ // Paper end ++ // Paper end - update entity data return true; } diff --git a/patches/server/1018-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/1018-Use-correct-variable-for-initializing-CraftLootTable.patch index fb5878659bcd..ab46cdf78ac2 100644 --- a/patches/server/1018-Use-correct-variable-for-initializing-CraftLootTable.patch +++ b/patches/server/1018-Use-correct-variable-for-initializing-CraftLootTable.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use correct variable for initializing CraftLootTable diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java b/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java -index 973b786368cf628815f099eefe968338c97c52ed..3b740b1fcada96a6fac18a22ea77d1d3ad2a9cce 100644 +index 973b786368cf628815f099eefe968338c97c52ed..3ddf6ab00de2456ebf504985b88994f970e3b5c4 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java @@ -103,7 +103,7 @@ public class LootDataManager implements PreparableReloadListener, LootDataResolv @@ -13,7 +13,7 @@ index 973b786368cf628815f099eefe968338c97c52ed..3b740b1fcada96a6fac18a22ea77d1d3 // CraftBukkit start map1.forEach((key, lootTable) -> { - if (object instanceof LootTable table) { -+ if (lootTable instanceof LootTable table) { // Paper - use correct variable ++ if (lootTable instanceof LootTable table) { // Paper - Use correct variable for initializing CraftLootTable table.craftLootTable = new CraftLootTable(CraftNamespacedKey.fromMinecraft(key.location()), table); } }); diff --git a/patches/server/1019-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/1019-Make-setVelocity-method-of-Fireballs-change-the-trav.patch index b36b8cf1f6a0..3af04ed113ac 100644 --- a/patches/server/1019-Make-setVelocity-method-of-Fireballs-change-the-trav.patch +++ b/patches/server/1019-Make-setVelocity-method-of-Fireballs-change-the-trav.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Make setVelocity method of Fireballs change the travel diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -index 2783e218d5e5c24787429237974e196761f4d02b..774ed1fdc909c911bf93a1b720285b43e9f728b8 100644 +index 2783e218d5e5c24787429237974e196761f4d02b..1d8aab2fda18c6e2bb30f6ba4a6325263267b628 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java @@ -46,6 +46,18 @@ public class CraftFireball extends AbstractProjectile implements Fireball { @@ -23,7 +23,7 @@ index 2783e218d5e5c24787429237974e196761f4d02b..774ed1fdc909c911bf93a1b720285b43 + this.getHandle().zPower = velocity.getZ(); + update(); + } -+ // Paper end ++ // Paper end - set direction without normalizing + @Override public AbstractHurtingProjectile getHandle() { diff --git a/patches/server/1023-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/1023-Fix-NPE-in-SculkBloomEvent-world-access.patch index f4db24ce29f3..b66e61a5225d 100644 --- a/patches/server/1023-Fix-NPE-in-SculkBloomEvent-world-access.patch +++ b/patches/server/1023-Fix-NPE-in-SculkBloomEvent-world-access.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix NPE in SculkBloomEvent world access diff --git a/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java -index ccb1db9649dfded891b308c346a6aeb870b61ce2..65112ec3a6ea1c27f032477720ae74395523012b 100644 +index ccb1db9649dfded891b308c346a6aeb870b61ce2..83481539e058e5f428d9951e409fed62ef159e5c 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java @@ -32,9 +32,16 @@ public class SculkCatalystBlockEntity extends BlockEntity implements GameEventLi @@ -15,13 +15,13 @@ index ccb1db9649dfded891b308c346a6aeb870b61ce2..65112ec3a6ea1c27f032477720ae7439 - this.catalystListener.level = this.level; // CraftBukkit } -+ // Paper start ++ // Paper start - Fix NPE in SculkBloomEvent world access + @Override + public void setLevel(Level level) { + super.setLevel(level); + this.catalystListener.sculkSpreader.level = level; + } -+ // Paper end ++ // Paper end - Fix NPE in SculkBloomEvent world access + public static void serverTick(Level world, BlockPos pos, BlockState state, SculkCatalystBlockEntity blockEntity) { org.bukkit.craftbukkit.event.CraftEventFactory.sourceBlockOverride = blockEntity.getBlockPos(); // CraftBukkit - SPIGOT-7068: Add source block override, not the most elegant way but better than passing down a BlockPosition up to five methods deep. @@ -37,7 +37,7 @@ index ccb1db9649dfded891b308c346a6aeb870b61ce2..65112ec3a6ea1c27f032477720ae7439 this.positionSource = positionSource; this.sculkSpreader = SculkSpreader.createLevelSpreader(); - this.sculkSpreader.level = this.level; // CraftBukkit -+ // this.sculkSpreader.level = this.level; // CraftBukkit // Paper - bad fix ++ // this.sculkSpreader.level = this.level; // CraftBukkit // Paper - Fix NPE in SculkBloomEvent world access } @Override diff --git a/patches/server/1027-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/1027-Add-predicate-for-blocks-when-raytracing.patch index 8b02c19873be..5f2f9da6bdfc 100644 --- a/patches/server/1027-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/server/1027-Add-predicate-for-blocks-when-raytracing.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Add predicate for blocks when raytracing diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index 799837c172a5f7856c78e6fe2595c575f3058a5e..7205865bbe0f83fb35678bddc0977f92980e77b5 100644 +index 799837c172a5f7856c78e6fe2595c575f3058a5e..0abbe9be08cf7450f5d2d17deed590053c77a528 100644 --- a/src/main/java/net/minecraft/world/level/BlockGetter.java +++ b/src/main/java/net/minecraft/world/level/BlockGetter.java @@ -83,6 +83,12 @@ public interface BlockGetter extends LevelHeightAccessor { // CraftBukkit start - moved block handling into separate method for use by Block#rayTrace default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) { -+ // Paper start ++ // Paper start - Add predicate for blocks when raytracing + return clip(raytrace1, blockposition, null); + } + + default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition, java.util.function.Predicate canCollide) { -+ // Paper end ++ // Paper end - Add predicate for blocks when raytracing // Paper start - Prevent raytrace from loading chunks BlockState iblockdata = this.getBlockStateIfLoaded(blockposition); if (iblockdata == null) { @@ -34,27 +34,27 @@ index 799837c172a5f7856c78e6fe2595c575f3058a5e..7205865bbe0f83fb35678bddc0977f92 // CraftBukkit end default BlockHitResult clip(ClipContext context) { -+ // Paper start ++ // Paper start - Add predicate for blocks when raytracing + return clip(context, (java.util.function.Predicate) null); + } + + default BlockHitResult clip(ClipContext context, java.util.function.Predicate canCollide) { -+ // Paper end ++ // Paper end - Add predicate for blocks when raytracing return (BlockHitResult) BlockGetter.traverseBlocks(context.getFrom(), context.getTo(), context, (raytrace1, blockposition) -> { - return this.clip(raytrace1, blockposition); // CraftBukkit - moved into separate method -+ return this.clip(raytrace1, blockposition, canCollide); // CraftBukkit - moved into separate method // Paper - use method with canCollide predicate ++ return this.clip(raytrace1, blockposition, canCollide); // CraftBukkit - moved into separate method // Paper - Add predicate for blocks when raytracing }, (raytrace1) -> { Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo()); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 4f89f38e1d2d9cdb34af8d1d217577e9a437eea5..5fc06ade042f96ae9f623b18faaa1069d769153f 100644 +index 4f89f38e1d2d9cdb34af8d1d217577e9a437eea5..56ff02ebe9da504f2aa955430ac13b3dba4211f7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1125,9 +1125,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public RayTraceResult rayTraceEntities(Location start, Vector direction, double maxDistance, double raySize, Predicate filter) { -+ // Paper start ++ // Paper start - Add predicate for blocks when raytracing + return rayTraceEntities((io.papermc.paper.math.Position) start, direction, maxDistance, raySize, filter); + } + @@ -64,7 +64,7 @@ index 4f89f38e1d2d9cdb34af8d1d217577e9a437eea5..5fc06ade042f96ae9f623b18faaa1069 - start.checkFinite(); + Preconditions.checkArgument(!(start instanceof Location location) || this.equals(location.getWorld()), "Location start cannot be in a different world"); + Preconditions.checkArgument(start.isFinite(), "Location start is not finite"); -+ // Paper end ++ // Paper end - Add predicate for blocks when raytracing Preconditions.checkArgument(direction != null, "Vector direction cannot be null"); direction.checkFinite(); @@ -72,7 +72,7 @@ index 4f89f38e1d2d9cdb34af8d1d217577e9a437eea5..5fc06ade042f96ae9f623b18faaa1069 @Override public RayTraceResult rayTraceBlocks(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks) { -+ // Paper start ++ // Paper start - Add predicate for blocks when raytracing + return this.rayTraceBlocks(start, direction, maxDistance, fluidCollisionMode, ignorePassableBlocks, null); + } + @@ -83,7 +83,7 @@ index 4f89f38e1d2d9cdb34af8d1d217577e9a437eea5..5fc06ade042f96ae9f623b18faaa1069 - start.checkFinite(); + Preconditions.checkArgument(!(start instanceof Location location) || this.equals(location.getWorld()), "Location start cannot be in a different world"); + Preconditions.checkArgument(start.isFinite(), "Location start is not finite"); -+ // Paper end ++ // Paper end - Add predicate for blocks when raytracing Preconditions.checkArgument(direction != null, "Vector direction cannot be null"); direction.checkFinite(); @@ -92,10 +92,10 @@ index 4f89f38e1d2d9cdb34af8d1d217577e9a437eea5..5fc06ade042f96ae9f623b18faaa1069 Vector dir = direction.clone().normalize().multiply(maxDistance); - Vec3 startPos = CraftLocation.toVec3D(start); -+ Vec3 startPos = io.papermc.paper.util.MCUtil.toVec3(start); // Paper ++ Vec3 startPos = io.papermc.paper.util.MCUtil.toVec3(start); // Paper - Add predicate for blocks when raytracing Vec3 endPos = startPos.add(dir.getX(), dir.getY(), dir.getZ()); - HitResult nmsHitResult = this.getHandle().clip(new ClipContext(startPos, endPos, ignorePassableBlocks ? ClipContext.Block.COLLIDER : ClipContext.Block.OUTLINE, CraftFluidCollisionMode.toNMS(fluidCollisionMode), CollisionContext.empty())); -+ HitResult nmsHitResult = this.getHandle().clip(new ClipContext(startPos, endPos, ignorePassableBlocks ? ClipContext.Block.COLLIDER : ClipContext.Block.OUTLINE, CraftFluidCollisionMode.toNMS(fluidCollisionMode), CollisionContext.empty()), canCollide); // Paper - use method with canCollide predicate ++ HitResult nmsHitResult = this.getHandle().clip(new ClipContext(startPos, endPos, ignorePassableBlocks ? ClipContext.Block.COLLIDER : ClipContext.Block.OUTLINE, CraftFluidCollisionMode.toNMS(fluidCollisionMode), CollisionContext.empty()), canCollide); // Paper - Add predicate for blocks when raytracing return CraftRayTraceResult.fromNMS(this, nmsHitResult); } @@ -103,14 +103,14 @@ index 4f89f38e1d2d9cdb34af8d1d217577e9a437eea5..5fc06ade042f96ae9f623b18faaa1069 @Override public RayTraceResult rayTrace(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks, double raySize, Predicate filter) { - RayTraceResult blockHit = this.rayTraceBlocks(start, direction, maxDistance, fluidCollisionMode, ignorePassableBlocks); -+ // Paper start ++ // Paper start - Add predicate for blocks when raytracing + return this.rayTrace(start, direction, maxDistance, fluidCollisionMode, ignorePassableBlocks, raySize, filter, null); + } + + @Override + public RayTraceResult rayTrace(io.papermc.paper.math.Position start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks, double raySize, Predicate filter, Predicate canCollide) { + RayTraceResult blockHit = this.rayTraceBlocks(start, direction, maxDistance, fluidCollisionMode, ignorePassableBlocks, canCollide); -+ // Paper end ++ // Paper end - Add predicate for blocks when raytracing Vector startVec = null; double blockHitDistance = maxDistance; diff --git a/patches/server/1029-fix-secure-profile-with-proxy-online-mode.patch b/patches/server/1029-fix-secure-profile-with-proxy-online-mode.patch index 36016755bff1..c4faa8a8ee67 100644 --- a/patches/server/1029-fix-secure-profile-with-proxy-online-mode.patch +++ b/patches/server/1029-fix-secure-profile-with-proxy-online-mode.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix secure profile with proxy online mode diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index db363bca264e37c29fda58291246aba0d3759de0..58536aabf607015939a1326f80207c0a06eed8ff 100644 +index db363bca264e37c29fda58291246aba0d3759de0..ae5686515707a510e4bae6e78b196adba2a182ef 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -638,7 +638,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -17,7 +17,7 @@ index db363bca264e37c29fda58291246aba0d3759de0..58536aabf607015939a1326f80207c0a + return dedicatedserverproperties.enforceSecureProfile + && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() + && this.services.canValidateProfileKeys(); -+ // Paper end ++ // Paper end - fix secure profile with proxy online mode } @Override diff --git a/patches/server/1032-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/1032-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch index 5f62f3b55a54..d9562499001c 100644 --- a/patches/server/1032-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch +++ b/patches/server/1032-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix strikeLightningEffect powers lightning rods and clears diff --git a/src/main/java/net/minecraft/world/entity/LightningBolt.java b/src/main/java/net/minecraft/world/entity/LightningBolt.java -index 255fb5e922c63130708e4bcab208b4db52a58387..1e76230c078ef07418345b0bc50c574cf63c9094 100644 +index 255fb5e922c63130708e4bcab208b4db52a58387..21f0c986ac3237a2ab560dc545392f04a8bb4ef3 100644 --- a/src/main/java/net/minecraft/world/entity/LightningBolt.java +++ b/src/main/java/net/minecraft/world/entity/LightningBolt.java @@ -45,7 +45,7 @@ public class LightningBolt extends Entity { @@ -14,7 +14,7 @@ index 255fb5e922c63130708e4bcab208b4db52a58387..1e76230c078ef07418345b0bc50c574c private final Set hitEntities = Sets.newHashSet(); private int blocksSetOnFire; - public boolean isSilent = false; // Spigot -+ public boolean isEffect; // Paper ++ public boolean isEffect; // Paper - Properly handle lightning effects api public LightningBolt(EntityType type, Level world) { super(type, world); @@ -23,7 +23,7 @@ index 255fb5e922c63130708e4bcab208b4db52a58387..1e76230c078ef07418345b0bc50c574c public void tick() { super.tick(); - if (!this.isSilent && this.life == 2) { // Spigot -+ if (!this.isEffect && this.life == 2) { // Spigot // Paper ++ if (!this.isEffect && this.life == 2) { // Spigot // Paper - Properly handle lightning effects api if (this.level().isClientSide()) { this.level().playLocalSound(this.getX(), this.getY(), this.getZ(), SoundEvents.LIGHTNING_BOLT_THUNDER, SoundSource.WEATHER, 10000.0F, 0.8F + this.random.nextFloat() * 0.2F, false); this.level().playLocalSound(this.getX(), this.getY(), this.getZ(), SoundEvents.LIGHTNING_BOLT_IMPACT, SoundSource.WEATHER, 2.0F, 0.5F + this.random.nextFloat() * 0.2F, false); @@ -32,7 +32,7 @@ index 255fb5e922c63130708e4bcab208b4db52a58387..1e76230c078ef07418345b0bc50c574c } - if (this.life >= 0 && !this.visualOnly) { // CraftBukkit - add !this.visualOnly -+ if (this.life >= 0 && !this.isEffect) { // CraftBukkit - add !this.visualOnly // Paper - undo ++ if (this.life >= 0 && !this.isEffect) { // CraftBukkit - add !this.visualOnly // Paper - Properly handle lightning effects api if (!(this.level() instanceof ServerLevel)) { this.level().setSkyFlashTime(2); } else if (!this.visualOnly) { @@ -41,12 +41,12 @@ index 255fb5e922c63130708e4bcab208b4db52a58387..1e76230c078ef07418345b0bc50c574c private void spawnFire(int spreadAttempts) { - if (!this.visualOnly && !this.level().isClientSide && this.level().getGameRules().getBoolean(GameRules.RULE_DOFIRETICK)) { -+ if (!this.visualOnly && !this.isEffect && !this.level().isClientSide && this.level().getGameRules().getBoolean(GameRules.RULE_DOFIRETICK)) { // Paper ++ if (!this.visualOnly && !this.isEffect && !this.level().isClientSide && this.level().getGameRules().getBoolean(GameRules.RULE_DOFIRETICK)) { // Paper - Properly handle lightning effects api BlockPos blockposition = this.blockPosition(); BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 5fc06ade042f96ae9f623b18faaa1069d769153f..fd37494da843e70cbb5e707714ff77724d7ff0bb 100644 +index 56ff02ebe9da504f2aa955430ac13b3dba4211f7..f9be183b5971801fbb55db17fcc2fa9d0701daf5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -773,7 +773,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -54,7 +54,7 @@ index 5fc06ade042f96ae9f623b18faaa1069d769153f..fd37494da843e70cbb5e707714ff7772 LightningBolt lightning = EntityType.LIGHTNING_BOLT.create(this.world); lightning.moveTo(loc.getX(), loc.getY(), loc.getZ()); - lightning.setVisualOnly(isVisual); -+ lightning.isEffect = isVisual; // Paper ++ lightning.isEffect = isVisual; // Paper - Properly handle lightning effects api this.world.strikeLightning(lightning, LightningStrikeEvent.Cause.CUSTOM); return (LightningStrike) lightning.getBukkitEntity(); } @@ -72,12 +72,12 @@ index 5fc06ade042f96ae9f623b18faaa1069d769153f..fd37494da843e70cbb5e707714ff7772 lightning.moveTo( loc.getX(), loc.getY(), loc.getZ() ); - lightning.visualOnly = true; - lightning.isSilent = isSilent; -+ lightning.isEffect = true; // Paper ++ lightning.isEffect = true; // Paper - Properly handle lightning effects api CraftWorld.this.world.strikeLightning( lightning, LightningStrikeEvent.Cause.CUSTOM ); return (LightningStrike) lightning.getBukkitEntity(); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java -index cd9bd7f06e55e970b7791e635610bb5e7491d102..70b377c03346cb8573827aeb493f3b6eb8efb1f8 100644 +index cd9bd7f06e55e970b7791e635610bb5e7491d102..4fd1a856cd2e8ebcce0a14e3244108e8344691cf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java @@ -13,7 +13,7 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike @@ -85,7 +85,7 @@ index cd9bd7f06e55e970b7791e635610bb5e7491d102..70b377c03346cb8573827aeb493f3b6e @Override public boolean isEffect() { - return this.getHandle().visualOnly; -+ return this.getHandle().isEffect; // Paper ++ return this.getHandle().isEffect; // Paper - Properly handle lightning effects api } public int getFlashes() { @@ -94,7 +94,7 @@ index cd9bd7f06e55e970b7791e635610bb5e7491d102..70b377c03346cb8573827aeb493f3b6e public boolean isSilent() { - return CraftLightningStrike.this.getHandle().isSilent; -+ return false; // Paper - the concept of isSilent doesn't exist as sound is controlled by the client ++ return false; // Paper - Properly handle lightning effects api; the concept of isSilent doesn't exist as sound is controlled by the client } }; diff --git a/patches/server/1033-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/1033-Add-hand-to-fish-event-for-all-player-interactions.patch index 6fef553fc517..0df08a85bc52 100644 --- a/patches/server/1033-Add-hand-to-fish-event-for-all-player-interactions.patch +++ b/patches/server/1033-Add-hand-to-fish-event-for-all-player-interactions.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add hand to fish event for all player interactions diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java -index a9eaa079a43bc8a5e81deaf6df5ce2f9c53cb319..a2093158e57d5f43c4afa66386481b82b3c4c3c4 100644 +index a9eaa079a43bc8a5e81deaf6df5ce2f9c53cb319..5706c9b744b660d6f7639b8152dce82799c4b466 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java @@ -474,7 +474,15 @@ public class FishingHook extends Projectile { @Override public void readAdditionalSaveData(CompoundTag nbt) {} -+ // Paper start - add hand parameter ++ // Paper start - Add hand parameter to PlayerFishEvent + @Deprecated + @io.papermc.paper.annotation.DoNotUse public int retrieve(ItemStack usedItem) { @@ -20,7 +20,7 @@ index a9eaa079a43bc8a5e81deaf6df5ce2f9c53cb319..a2093158e57d5f43c4afa66386481b82 + } + + public int retrieve(net.minecraft.world.InteractionHand hand, ItemStack usedItem) { -+ // Paper end ++ // Paper end - Add hand parameter to PlayerFishEvent net.minecraft.world.entity.player.Player entityhuman = this.getPlayerOwner(); if (!this.level().isClientSide && entityhuman != null && !this.shouldStopFishing(entityhuman)) { @@ -29,7 +29,7 @@ index a9eaa079a43bc8a5e81deaf6df5ce2f9c53cb319..a2093158e57d5f43c4afa66386481b82 if (this.hookedIn != null) { // CraftBukkit start - PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), this.hookedIn.getBukkitEntity(), (FishHook) this.getBukkitEntity(), PlayerFishEvent.State.CAUGHT_ENTITY); -+ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), this.hookedIn.getBukkitEntity(), (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.CAUGHT_ENTITY); // Paper - add hand ++ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), this.hookedIn.getBukkitEntity(), (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.CAUGHT_ENTITY); // Paper - Add hand parameter to PlayerFishEvent this.level().getCraftServer().getPluginManager().callEvent(playerFishEvent); if (playerFishEvent.isCancelled()) { @@ -38,7 +38,7 @@ index a9eaa079a43bc8a5e81deaf6df5ce2f9c53cb319..a2093158e57d5f43c4afa66386481b82 // Paper end // CraftBukkit start - PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), entityitem != null ? entityitem.getBukkitEntity() : null, (FishHook) this.getBukkitEntity(), PlayerFishEvent.State.CAUGHT_FISH); // Paper - entityitem may be null -+ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), entityitem != null ? entityitem.getBukkitEntity() : null, (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.CAUGHT_FISH); // Paper - entityitem may be null // Paper - add hand ++ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), entityitem != null ? entityitem.getBukkitEntity() : null, (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.CAUGHT_FISH); // Paper - entityitem may be null // Paper - Add hand parameter to PlayerFishEvent playerFishEvent.setExpToDrop(this.random.nextInt(6) + 1); this.level().getCraftServer().getPluginManager().callEvent(playerFishEvent); @@ -47,7 +47,7 @@ index a9eaa079a43bc8a5e81deaf6df5ce2f9c53cb319..a2093158e57d5f43c4afa66386481b82 if (this.onGround()) { // CraftBukkit start - PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), null, (FishHook) this.getBukkitEntity(), PlayerFishEvent.State.IN_GROUND); -+ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), null, (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.IN_GROUND); // Paper - add hand ++ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), null, (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.IN_GROUND); // Paper - Add hand parameter to PlayerFishEvent this.level().getCraftServer().getPluginManager().callEvent(playerFishEvent); if (playerFishEvent.isCancelled()) { @@ -56,12 +56,12 @@ index a9eaa079a43bc8a5e81deaf6df5ce2f9c53cb319..a2093158e57d5f43c4afa66386481b82 // CraftBukkit start if (i == 0) { - PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), null, (FishHook) this.getBukkitEntity(), PlayerFishEvent.State.REEL_IN); -+ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), null, (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.REEL_IN); // Paper - add hand ++ PlayerFishEvent playerFishEvent = new PlayerFishEvent((Player) entityhuman.getBukkitEntity(), null, (FishHook) this.getBukkitEntity(), org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand), PlayerFishEvent.State.REEL_IN); // Paper - Add hand parameter to PlayerFishEvent this.level().getCraftServer().getPluginManager().callEvent(playerFishEvent); if (playerFishEvent.isCancelled()) { return 0; diff --git a/src/main/java/net/minecraft/world/item/FishingRodItem.java b/src/main/java/net/minecraft/world/item/FishingRodItem.java -index b9aca584c9765e995d1f8b9b2e45e5257fb6ab9d..ad326a68e87ae571a7eb7b6804bf67ecec64211f 100644 +index b9aca584c9765e995d1f8b9b2e45e5257fb6ab9d..95144f0ea5e99285c0a82b9d2e60766b785a236d 100644 --- a/src/main/java/net/minecraft/world/item/FishingRodItem.java +++ b/src/main/java/net/minecraft/world/item/FishingRodItem.java @@ -29,7 +29,7 @@ public class FishingRodItem extends Item implements Vanishable { @@ -69,7 +69,7 @@ index b9aca584c9765e995d1f8b9b2e45e5257fb6ab9d..ad326a68e87ae571a7eb7b6804bf67ec if (user.fishing != null) { if (!world.isClientSide) { - i = user.fishing.retrieve(itemstack); -+ i = user.fishing.retrieve(hand, itemstack); // Paper - add hand parameter ++ i = user.fishing.retrieve(hand, itemstack); // Paper - Add hand parameter to PlayerFishEvent itemstack.hurtAndBreak(i, user, (entityhuman1) -> { entityhuman1.broadcastBreakEvent(hand); }); diff --git a/patches/server/1034-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/1034-Fix-several-issues-with-EntityBreedEvent.patch index b2d68ef6455b..22f13f1ab2be 100644 --- a/patches/server/1034-Fix-several-issues-with-EntityBreedEvent.patch +++ b/patches/server/1034-Fix-several-issues-with-EntityBreedEvent.patch @@ -11,17 +11,17 @@ also changed. Also in several places, the breed item was stored after it was decreased by one to consume the item. diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java -index 907ed82fea71254d6624eda878e2668cd26422a7..f6e0eefe068fe1a9fe159b382cf94de488521728 100644 +index 907ed82fea71254d6624eda878e2668cd26422a7..081d1e38b7b1f286e138b0981aaa760e58761215 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Animal.java +++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java @@ -152,8 +152,9 @@ public abstract class Animal extends AgeableMob { int i = this.getAge(); if (!this.level().isClientSide && i == 0 && this.canFallInLove()) { -+ final ItemStack breedCopy = itemstack.copy(); // Paper ++ final ItemStack breedCopy = itemstack.copy(); // Paper - Fix EntityBreedEvent copying this.usePlayerItem(player, hand, itemstack); - this.setInLove(player); -+ this.setInLove(player, breedCopy); // Paper ++ this.setInLove(player, breedCopy); // Paper - Fix EntityBreedEvent copying return InteractionResult.SUCCESS; } @@ -29,18 +29,18 @@ index 907ed82fea71254d6624eda878e2668cd26422a7..f6e0eefe068fe1a9fe159b382cf94de4 return this.inLove <= 0; } -+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper ++ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - Fix EntityBreedEvent copying public void setInLove(@Nullable Player player) { -+ // Paper start - pass breed stack ++ // Paper start - Fix EntityBreedEvent copying + this.setInLove(player, null); + } + public void setInLove(@Nullable Player player, @Nullable ItemStack breedItemCopy) { + if (breedItemCopy != null) this.breedItem = breedItemCopy; -+ // Paper end ++ // Paper end - Fix EntityBreedEvent copying // CraftBukkit start EntityEnterLoveModeEvent entityEnterLoveModeEvent = CraftEventFactory.callEntityEnterLoveModeEvent(player, this, 600); if (entityEnterLoveModeEvent.isCancelled()) { -+ this.breedItem = null; // Paper - clear if cancelled ++ this.breedItem = null; // Paper - Fix EntityBreedEvent copying; clear if cancelled return; } this.inLove = entityEnterLoveModeEvent.getTicksInLove(); @@ -49,27 +49,27 @@ index 907ed82fea71254d6624eda878e2668cd26422a7..f6e0eefe068fe1a9fe159b382cf94de4 this.loveCause = player.getUUID(); } - this.breedItem = player.getInventory().getSelected(); // CraftBukkit -+ // Paper - set breed item in better place ++ // Paper - Fix EntityBreedEvent copying; set breed item in better place this.level().broadcastEntityEvent(this, (byte) 18); } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 683cc5f9f066d554383fcd30e3654ac06ec76510..17e42c49fe6f1696a0b0b4b2537cabfe565692e5 100644 +index 683cc5f9f066d554383fcd30e3654ac06ec76510..089328028b9f82be3ddbfab42b6d0f015c4b71b5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -649,8 +649,9 @@ public class Panda extends Animal { this.usePlayerItem(player, hand, itemstack); this.ageUp((int) ((float) (-this.getAge() / 20) * 0.1F), true); } else if (!this.level().isClientSide && this.getAge() == 0 && this.canFallInLove()) { -+ final ItemStack breedCopy = itemstack.copy(); // Paper ++ final ItemStack breedCopy = itemstack.copy(); // Paper - Fix EntityBreedEvent copying this.usePlayerItem(player, hand, itemstack); - this.setInLove(player); -+ this.setInLove(player, breedCopy); // Paper ++ this.setInLove(player, breedCopy); // Paper - Fix EntityBreedEvent copying } else { if (this.level().isClientSide || this.isSitting() || this.isInWater()) { return InteractionResult.PASS; diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index 1d9427da270edb447a2c8e031c4f05fe5d39603b..7dee2d1c4ce038f42334120f5dedb836f4e21723 100644 +index 1d9427da270edb447a2c8e031c4f05fe5d39603b..01b07320d8c94907e41283d5bc8943da2bbc6c6e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -389,7 +389,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -77,12 +77,12 @@ index 1d9427da270edb447a2c8e031c4f05fe5d39603b..7dee2d1c4ce038f42334120f5dedb836 boolean bl2 = this.isTamed() && this.getAge() == 0 && this.canFallInLove(); if (bl2) { - this.setInLove(player); -+ this.setInLove(player, item.copy()); // Paper ++ this.setInLove(player, item.copy()); // Paper - Fix EntityBreedEvent copying } boolean bl3 = this.isBaby(); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -index 8fe5a4ccf474c094b8081828c93e8973cdabb6ed..63bbb5723f587788a65cc1cdac4cea94d96f254b 100644 +index 8fe5a4ccf474c094b8081828c93e8973cdabb6ed..d9539f5275c4cb63910ba79aa522d9569ad35a89 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java @@ -513,7 +513,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, @@ -90,7 +90,7 @@ index 8fe5a4ccf474c094b8081828c93e8973cdabb6ed..63bbb5723f587788a65cc1cdac4cea94 if (!this.level().isClientSide && this.isTamed() && this.getAge() == 0 && !this.isInLove()) { flag = true; - this.setInLove(player); -+ this.setInLove(player, item.copy()); // Paper ++ this.setInLove(player, item.copy()); // Paper - Fix EntityBreedEvent copying } } else if (item.is(Items.GOLDEN_APPLE) || item.is(Items.ENCHANTED_GOLDEN_APPLE)) { f = 10.0F; @@ -99,12 +99,12 @@ index 8fe5a4ccf474c094b8081828c93e8973cdabb6ed..63bbb5723f587788a65cc1cdac4cea94 if (!this.level().isClientSide && this.isTamed() && this.getAge() == 0 && !this.isInLove()) { flag = true; - this.setInLove(player); -+ this.setInLove(player, item.copy()); // Paper ++ this.setInLove(player, item.copy()); // Paper - Fix EntityBreedEvent copying } } diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 5f61c97478f005aaaaad1b027118079db7275cf7..9120663b63fc0e365e8edb359892b0db1ee97875 100644 +index 5f61c97478f005aaaaad1b027118079db7275cf7..4863586b1c54192e0228342a0c36561348ebb3fb 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java @@ -191,7 +191,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder implements FeatureElement, EntityTypeT } public static Optional create(CompoundTag nbt, Level world) { -+ // Paper start - add generation bool param ++ // Paper start - Don't fire sync event during generation + return create(nbt, world, false); + } + public static Optional create(CompoundTag nbt, Level world, boolean generation) { -+ // Paper end - add generation bool param ++ // Paper end - Don't fire sync event during generation return Util.ifElse(EntityType.by(nbt).map((entitytypes) -> { return entitytypes.create(world); }), (entity) -> { -+ if (generation) entity.generation = true; // Paper - add generation bool param ++ if (generation) entity.generation = true; // Paper - Don't fire sync event during generation entity.load(nbt); }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7471e5ba8fc0e2d17cdd3d8b580fe7375d58cc73..bc45bd5816b1b62cdd6011f2372702451b83f22b 100644 +index d90d86f6b6e656bc6680afa07c7a9e99e6325851..f242b2c56bfc2f17e87125e642538d58feb253e0 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1133,6 +1133,11 @@ public abstract class LivingEntity extends Entity implements Attackable { } public boolean addEffect(MobEffectInstance mobeffect, @Nullable Entity entity, EntityPotionEffectEvent.Cause cause) { -+ // Paper start - add boolean param to optionally fire the event ++ // Paper start - Don't fire sync event during generation + return this.addEffect(mobeffect, entity, cause, true); + } + public boolean addEffect(MobEffectInstance mobeffect, @Nullable Entity entity, EntityPotionEffectEvent.Cause cause, boolean fireEvent) { -+ // Paper end ++ // Paper end - Don't fire sync event during generation // org.spigotmc.AsyncCatcher.catchOp("effect add"); // Spigot // Paper - move to API if (this.isTickingEffects) { this.effectsToProcess.add(new ProcessableEffect(mobeffect, cause)); @@ -87,13 +87,13 @@ index 7471e5ba8fc0e2d17cdd3d8b580fe7375d58cc73..bc45bd5816b1b62cdd6011f237270245 override = new MobEffectInstance(mobeffect1).update(mobeffect); } -+ if (fireEvent) { // Paper ++ if (fireEvent) { // Paper - Don't fire sync event during generation EntityPotionEffectEvent event = CraftEventFactory.callEntityPotionEffectChangeEvent(this, mobeffect1, mobeffect, cause, override); -+ override = event.isOverride(); // Paper ++ override = event.isOverride(); // Paper - Don't fire sync event during generation if (event.isCancelled()) { return false; } -+ } // Paper ++ } // Paper - Don't fire sync event during generation // CraftBukkit end if (mobeffect1 == null) { @@ -102,12 +102,12 @@ index 7471e5ba8fc0e2d17cdd3d8b580fe7375d58cc73..bc45bd5816b1b62cdd6011f237270245 flag = true; // CraftBukkit start - } else if (event.isOverride()) { -+ } else if (override) { // Paper ++ } else if (override) { // Paper - Don't fire sync event during generation mobeffect1.update(mobeffect); this.onEffectUpdated(mobeffect1, true, entity); // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index 5a9f4a022c8e7a0804543335bfe91e1328d040e6..9063f66b0497a3eb3893e307e685be692cc5c128 100644 +index 5a9f4a022c8e7a0804543335bfe91e1328d040e6..8094c133f9e934c98eee09738220bacd87a0a364 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -182,7 +182,7 @@ public class Spider extends Monster { @@ -115,12 +115,12 @@ index 5a9f4a022c8e7a0804543335bfe91e1328d040e6..9063f66b0497a3eb3893e307e685be69 if (mobeffectlist != null) { - this.addEffect(new MobEffectInstance(mobeffectlist, -1), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.SPIDER_SPAWN); // CraftBukkit -+ this.addEffect(new MobEffectInstance(mobeffectlist, -1), null, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.SPIDER_SPAWN, world instanceof net.minecraft.server.level.ServerLevel); // CraftBukkit // Paper - only fire the effect event if this is happening in a ServerLevel ++ this.addEffect(new MobEffectInstance(mobeffectlist, -1), null, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.SPIDER_SPAWN, world instanceof net.minecraft.server.level.ServerLevel); // CraftBukkit // Paper - Don't fire sync event during generation; only if this is happening in a ServerLevel } } diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java -index 52c389472e013e658344496218689465350bf8a3..a341eff6a4ccc1eda38afd9d0017b08b68cb6413 100644 +index 52c389472e013e658344496218689465350bf8a3..8c4d434bffa640a17d6870080f79cd0e492c7537 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java @@ -518,7 +518,7 @@ public class StructureTemplate { @@ -128,12 +128,12 @@ index 52c389472e013e658344496218689465350bf8a3..a341eff6a4ccc1eda38afd9d0017b08b // CraftBukkit start // try { - return EntityType.create(nbt, world.getLevel()); -+ return EntityType.create(nbt, world.getLevel(), true); // Paper - set generation bool ++ return EntityType.create(nbt, world.getLevel(), true); // Paper - Don't fire sync event during generation // } catch (Exception exception) { // return Optional.empty(); // } diff --git a/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java b/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java -index a650411e3fa7e2a045ac55502c77028be348acf1..0f115d555cbc9fed224c9e8b0fab5fae6b0e7ff2 100644 +index a650411e3fa7e2a045ac55502c77028be348acf1..86a20c91beff6b27e6ec886e49ba902b216106f2 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java +++ b/src/main/java/org/bukkit/craftbukkit/util/DelegatedGeneratorAccess.java @@ -93,15 +93,17 @@ public abstract class DelegatedGeneratorAccess implements WorldGenLevel { @@ -149,7 +149,7 @@ index a650411e3fa7e2a045ac55502c77028be348acf1..0f115d555cbc9fed224c9e8b0fab5fae - public void addFreshEntityWithPassengers(Entity entity) { - this.handle.addFreshEntityWithPassengers(entity); - } -+ // Paper start - don't override these methods so all entities are run through addFreshEntity ++ // Paper start - Don't fire sync event during generation; don't override these methods so all entities are run through addFreshEntity + // @Override + // public void addFreshEntityWithPassengers(Entity arg0, CreatureSpawnEvent.SpawnReason arg1) { + // this.handle.addFreshEntityWithPassengers(arg0, arg1); @@ -159,12 +159,12 @@ index a650411e3fa7e2a045ac55502c77028be348acf1..0f115d555cbc9fed224c9e8b0fab5fae + // public void addFreshEntityWithPassengers(Entity entity) { + // this.handle.addFreshEntityWithPassengers(entity); + // } -+ // Paper end - don't override these methods ++ // Paper end - Don't fire sync event during generation; don't override these methods @Override public ServerLevel getMinecraftWorld() { diff --git a/src/main/java/org/bukkit/craftbukkit/util/TransformerGeneratorAccess.java b/src/main/java/org/bukkit/craftbukkit/util/TransformerGeneratorAccess.java -index b4b297945fb601701aac845d09e88fb74b09c3fa..0762140eb66e9d4dedeb6d12270bdca4c88558f5 100644 +index b4b297945fb601701aac845d09e88fb74b09c3fa..7482dfe64458320d44089c0778591694202e9f70 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/TransformerGeneratorAccess.java +++ b/src/main/java/org/bukkit/craftbukkit/util/TransformerGeneratorAccess.java @@ -39,21 +39,23 @@ public class TransformerGeneratorAccess extends DelegatedGeneratorAccess { @@ -186,7 +186,7 @@ index b4b297945fb601701aac845d09e88fb74b09c3fa..0762140eb66e9d4dedeb6d12270bdca4 - } - super.addFreshEntityWithPassengers(arg0, arg1); - } -+ // Paper start - don't override these methods so all entities are run through addFreshEntity ++ // Paper start - Don't fire sync event during generation; don't override these methods so all entities are run through addFreshEntity + // @Override + // public void addFreshEntityWithPassengers(Entity entity) { + // if (this.structureTransformer != null && !this.structureTransformer.transformEntity(entity)) { @@ -202,7 +202,7 @@ index b4b297945fb601701aac845d09e88fb74b09c3fa..0762140eb66e9d4dedeb6d12270bdca4 + // } + // super.addFreshEntityWithPassengers(arg0, arg1); + // } -+ // Paper end - don't override these methods ++ // Paper end - Don't fire sync event during generation; don't override these methods public boolean setCraftBlock(BlockPos position, CraftBlockState craftBlockState, int i, int j) { if (this.structureTransformer != null) { From 17275ffd686939eca76cf1d339460d2cf910ce29 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 13 Jan 2024 12:31:02 -0800 Subject: [PATCH 08/45] [ci skip] add more comments & move 1 hunk to correct patch --- patches/server/0005-Paper-config-files.patch | 56 ++++++------ patches/server/0009-MC-Utils.patch | 12 +-- patches/server/0010-Adventure.patch | 90 +++++++++---------- patches/server/0011-Paper-command.patch | 16 ++-- patches/server/0012-Paper-Metrics.patch | 14 +-- patches/server/0014-Timings-v2.patch | 10 +-- ...d-version-history-to-version-command.patch | 14 +-- ...031-Further-improve-server-tick-loop.patch | 8 +- .../0056-Player-Tab-List-and-Title-APIs.patch | 4 +- ...oleAppender-for-console-improvements.patch | 10 +-- .../server/0138-Basic-PlayerProfile-API.patch | 6 +- ...dd-Early-Warning-Feature-to-WatchDog.patch | 22 ++--- .../0331-Entity-Activation-Range-2.0.patch | 6 +- patches/server/0337-Anti-Xray.patch | 16 ++-- .../0365-Improved-Watchdog-Support.patch | 10 +-- ...ktraces-in-log-messages-crash-report.patch | 16 ++-- ...-Vanilla-Command-permission-checking.patch | 6 +- ...4-Bukkit-world-container-is-not-used.patch | 18 ++-- ...0549-fix-converting-txt-to-json-file.patch | 22 ++--- ...tab-completions-for-brigadier-comman.patch | 14 +-- ...s-to-convert-between-Component-and-B.patch | 14 +-- ...etChunkIfLoadedImmediately-in-places.patch | 6 +- ...0964-Only-capture-actual-tree-growth.patch | 9 +- ...Fix-silent-equipment-change-for-mobs.patch | 16 ---- 24 files changed, 201 insertions(+), 214 deletions(-) diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 750014e3603c..8106551cac04 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -1390,7 +1390,7 @@ index 0000000000000000000000000000000000000000..351fbbc577556ebbd62222615801a96b +} diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java new file mode 100644 -index 0000000000000000000000000000000000000000..071d3877e386a0c7c4d2f2e8ddd06e0765c49d0d +index 0000000000000000000000000000000000000000..385ca2c1022e0985550a5cc2bbff953f1aa33f5c --- /dev/null +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java @@ -0,0 +1,548 @@ @@ -4814,17 +4814,17 @@ index 0000000000000000000000000000000000000000..614aba60bb07946a144650fd3aedb316 + protected abstract boolean belowZero(O value); +} diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 6b0a1ff870e013a83f7922021ab296bb1c716079..f3130afbfd70e39a8000b0471854f8ef892bbbf5 100644 +index 6b0a1ff870e013a83f7922021ab296bb1c716079..403c57fc683bb0497602e1a9ec7b81b2722ecc01 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -137,6 +137,10 @@ public class Main { dedicatedserversettings.forceSave(); Path path2 = Paths.get("eula.txt"); Eula eula = new Eula(path2); -+ // Paper start - load config files for access below if needed ++ // Paper start - load config files early for access below if needed + org.bukkit.configuration.file.YamlConfiguration bukkitConfiguration = io.papermc.paper.configuration.PaperConfigurations.loadLegacyConfigFile((File) optionset.valueOf("bukkit-settings")); + org.bukkit.configuration.file.YamlConfiguration spigotConfiguration = io.papermc.paper.configuration.PaperConfigurations.loadLegacyConfigFile((File) optionset.valueOf("spigot-settings")); -+ // Paper end ++ // Paper end - load config files early for access below if needed if (optionset.has("initSettings")) { // CraftBukkit // CraftBukkit start - SPIGOT-5761: Create bukkit.yml and commands.yml if not present @@ -4833,19 +4833,19 @@ index 6b0a1ff870e013a83f7922021ab296bb1c716079..f3130afbfd70e39a8000b0471854f8ef File file = (File) optionset.valueOf("universe"); // CraftBukkit - Services services = Services.create(new YggdrasilAuthenticationService(Proxy.NO_PROXY), file); -+ Services services = Services.create(new YggdrasilAuthenticationService(Proxy.NO_PROXY), file, optionset); // Paper ++ Services services = Services.create(new YggdrasilAuthenticationService(Proxy.NO_PROXY), file, optionset); // Paper - pass OptionSet to load paper config files // CraftBukkit start String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName); LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath()); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8cc3fd73eaa41b87c63cf26e299affca16f20d87..afd39623d2c2e9270510a6a83b5918392442744d 100644 +index 8cc3fd73eaa41b87c63cf26e299affca16f20d87..7193029f1f8b5db7d94306e7dd07c5053795533c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -295,6 +295,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); @@ -4853,12 +4853,12 @@ index 8cc3fd73eaa41b87c63cf26e299affca16f20d87..afd39623d2c2e9270510a6a83b591839 } Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this)); // CraftBukkit end -+ this.paperConfigurations = services.paperConfigurations(); // Paper ++ this.paperConfigurations = services.paperConfigurations(); // Paper - add paper configuration files } private void readScoreboard(DimensionDataStorage persistentStateManager) { diff --git a/src/main/java/net/minecraft/server/Services.java b/src/main/java/net/minecraft/server/Services.java -index 1d611538d339345df065cd9c0c582d02e1fb0cc7..92d1ad919c1b3e27af9cc74ada19f1e9c4f3471f 100644 +index 1d611538d339345df065cd9c0c582d02e1fb0cc7..d200619b4aa820e273c26f2f6133589c727f8a0e 100644 --- a/src/main/java/net/minecraft/server/Services.java +++ b/src/main/java/net/minecraft/server/Services.java @@ -10,14 +10,30 @@ import javax.annotation.Nullable; @@ -4866,7 +4866,7 @@ index 1d611538d339345df065cd9c0c582d02e1fb0cc7..92d1ad919c1b3e27af9cc74ada19f1e9 import net.minecraft.util.SignatureValidator; -public record Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache) { -+// Paper start ++// Paper start - add paper configuration files +public record Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations) { + + public Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache) { @@ -4877,53 +4877,53 @@ index 1d611538d339345df065cd9c0c582d02e1fb0cc7..92d1ad919c1b3e27af9cc74ada19f1e9 + public io.papermc.paper.configuration.PaperConfigurations paperConfigurations() { + return java.util.Objects.requireNonNull(this.paperConfigurations); + } -+ // Paper end ++ // Paper end - add paper configuration files private static final String USERID_CACHE_FILE = "usercache.json"; - public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory) { -+ public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory, joptsimple.OptionSet optionSet) throws Exception { // Paper ++ public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory, joptsimple.OptionSet optionSet) throws Exception { // Paper - add optionset to load paper config files MinecraftSessionService minecraftSessionService = authenticationService.createMinecraftSessionService(); GameProfileRepository gameProfileRepository = authenticationService.createProfileRepository(); GameProfileCache gameProfileCache = new GameProfileCache(gameProfileRepository, new File(rootDirectory, "usercache.json")); - return new Services(minecraftSessionService, authenticationService.getServicesKeySet(), gameProfileRepository, gameProfileCache); -+ // Paper start ++ // Paper start - load paper config files from cli options + final java.nio.file.Path legacyConfigPath = ((File) optionSet.valueOf("paper-settings")).toPath(); + final java.nio.file.Path configDirPath = ((File) optionSet.valueOf("paper-settings-directory")).toPath(); + io.papermc.paper.configuration.PaperConfigurations paperConfigurations = io.papermc.paper.configuration.PaperConfigurations.setup(legacyConfigPath, configDirPath, rootDirectory.toPath(), (File) optionSet.valueOf("spigot-settings")); + return new Services(minecraftSessionService, authenticationService.getServicesKeySet(), gameProfileRepository, gameProfileCache, paperConfigurations); -+ // Paper end ++ // Paper end - load paper config files from cli options } @Nullable diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index dd16b56a478e1cd6f1b3c5563c9c02025d894802..458c04786f7b56f3c006e1e717c0ac709fddb1a0 100644 +index dd16b56a478e1cd6f1b3c5563c9c02025d894802..c56c7293261ec2601ab02d051b37e820f023f0ff 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -183,6 +183,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface org.spigotmc.SpigotConfig.init((java.io.File) this.options.valueOf("spigot-settings")); org.spigotmc.SpigotConfig.registerCommands(); // Spigot end -+ // Paper start -+ paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); -+ paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); -+ // Paper end ++ // Paper start - initialize global and world-defaults configuration ++ this.paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); ++ this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); ++ // Paper end - initialize global and world-defaults configuration this.setPvpAllowed(dedicatedserverproperties.pvp); this.setFlightAllowed(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/net/minecraft/server/dedicated/Settings.java b/src/main/java/net/minecraft/server/dedicated/Settings.java -index 37ab411817008d4e6194e177d88d50931e53b42e..ca23639f15107ccd43b874ae38fa37279b827a8f 100644 +index 397c978c71f36c8abe1c52e545699fc7928a6917..fc45c2c4ecdf3906df6bceaf3e019c462fe62186 100644 --- a/src/main/java/net/minecraft/server/dedicated/Settings.java +++ b/src/main/java/net/minecraft/server/dedicated/Settings.java @@ -119,6 +119,7 @@ public abstract class Settings> { try { // CraftBukkit start - Don't attempt writing to file if it's read only if (path.toFile().exists() && !path.toFile().canWrite()) { -+ Settings.LOGGER.warn("Can not write to file {}, skipping.", path); // Paper ++ Settings.LOGGER.warn("Can not write to file {}, skipping.", path); // Paper - log message file is read-only return; } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ecc61c7b1b4eb887795ffd39578b70b4e77f5213..92cb1c23f2ef95f9be6c688146ee81aae5ac101c 100644 +index ecc61c7b1b4eb887795ffd39578b70b4e77f5213..674c996af91de91ee6302cc67334b836ea4fa4de 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -236,7 +236,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -4931,24 +4931,24 @@ index ecc61c7b1b4eb887795ffd39578b70b4e77f5213..92cb1c23f2ef95f9be6c688146ee81aa // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error - super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env); -+ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess()))); // Paper ++ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess()))); // Paper - create paper world configs this.pvpMode = minecraftserver.isPvpAllowed(); this.convertable = convertable_conversionsession; this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile()); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index cff78fc8d073be7541628bb40670f82d1e9917cd..50ea733f42d0f06a62b55e61b0c73995896b0d6a 100644 +index 8487fa452e4009c0f2a23a0d4eac4bf56f91447b..00ddf94c5bade8c0c486337ce920f59d63cb64e2 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -158,6 +158,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); public boolean populating; public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot -+ // Paper start ++ // Paper start - add paper world config + private final io.papermc.paper.configuration.WorldConfiguration paperConfig; + public io.papermc.paper.configuration.WorldConfiguration paperConfig() { + return this.paperConfig; + } -+ // Paper end ++ // Paper end - add paper world config public final SpigotTimings.WorldTimingsHandler timings; // Spigot public static BlockPos lastPhysicsProblem; // Spigot @@ -4957,9 +4957,9 @@ index cff78fc8d073be7541628bb40670f82d1e9917cd..50ea733f42d0f06a62b55e61b0c73995 public abstract ResourceKey getTypeKey(); - protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env) { -+ protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator) { // Paper ++ protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator) { // Paper - create paper world config this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot -+ this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper ++ this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config this.generator = gen; this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index 3701ba05fa2d..555936c837f9 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -6051,14 +6051,14 @@ index 44cac39893eb968aa8ea21ee571c0dcb866ce06c..5151d68ba6ec72a7124f298253c5f0af + } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 21e84dfd9ee3f8ce6234581ec31c64c35021d3c8..729849caf3e3cb542d5c4097a568c5fadeff0f6d 100644 +index fb9f70b08e96ba4de52dca717ee245c405bf06e5..d4fb6d031acbb009fcb600718a16ac0b5437d88e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -296,6 +296,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); @@ -6076,7 +6076,7 @@ index 21e84dfd9ee3f8ce6234581ec31c64c35021d3c8..729849caf3e3cb542d5c4097a568c5fa } } // Spigot start -+ ++MinecraftServer.currentTickLong; // Paper ++ ++MinecraftServer.currentTickLong; // Paper - track current tick as a long if ( tickCount++ % MinecraftServer.SAMPLE_INTERVAL == 0 ) { long curTime = Util.getMillis(); @@ -6962,7 +6962,7 @@ index 1d12a7934308aa48d7ea7fa10c7b6b5ccb27e707..7cacfceed5ef9276a19123a8a9079579 ChunkHolder playerchunk = this.getVisibleChunkIfPresent(pos); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9cf839be15126444d4d2ffdb7faa637859941d6b..cb6fbb3a1512d69a3f1192c969c3d5c78c046cef 100644 +index 93867b8883c6f5d5086e8fdc153e6d7c1e5d9fec..aa2c9b13b86130a613ed171a3c16f3639e7c82c6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -230,6 +230,98 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -7355,7 +7355,7 @@ index 3c707d6674b2594b09503b959a31c1f4ad3981e6..db61b6b0158a9bcc0e1d735e34fe3671 public BlockState getBlockState(BlockPos pos) { return Blocks.AIR.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 81fbc18b0cd9bc443555001947796342be4123b8..9f8f9dea26e55f8785d3702c1e3d83f6f87358bb 100644 +index 00ddf94c5bade8c0c486337ce920f59d63cb64e2..32afa096f148ebb546963bae7c9c9b194cb1a99c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -93,6 +93,7 @@ import org.bukkit.craftbukkit.CraftServer; diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index 5bdea1503253..59f67557274f 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -2077,14 +2077,14 @@ index 0000000000000000000000000000000000000000..c0701d4f93a4d77a8177d2dd8d5076f9 + } +} diff --git a/src/main/java/net/minecraft/ChatFormatting.java b/src/main/java/net/minecraft/ChatFormatting.java -index e7980c88d036c617420e80bda8e1972723f97b52..44a1c467c429feee2f6292b6fcb1dbfa0354d46b 100644 +index e7980c88d036c617420e80bda8e1972723f97b52..efbc104acc62c5af8acf35b15f1be0d9f11113c9 100644 --- a/src/main/java/net/minecraft/ChatFormatting.java +++ b/src/main/java/net/minecraft/ChatFormatting.java @@ -113,6 +113,18 @@ public enum ChatFormatting implements StringRepresentable { return name == null ? null : FORMATTING_BY_NAME.get(cleanName(name)); } -+ // Paper start ++ // Paper start - add method to get by hex value + @Nullable public static ChatFormatting getByHexValue(int i) { + for (ChatFormatting value : values()) { + if (value.getColor() != null && value.getColor() == i) { @@ -2094,25 +2094,25 @@ index e7980c88d036c617420e80bda8e1972723f97b52..44a1c467c429feee2f6292b6fcb1dbfa + + return null; + } -+ // Paper end ++ // Paper end - add method to get by hex value + @Nullable public static ChatFormatting getById(int colorIndex) { if (colorIndex < 0) { diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index db93483cfee13ca4303d7452ecbb47507dc5f89e..b836a85ce3a4374e94061fe9368e86a61522615d 100644 +index db93483cfee13ca4303d7452ecbb47507dc5f89e..f6938c35ac6f6116084d3e7ec9cdc918f20b6f61 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -65,6 +65,7 @@ public class CommandSourceStack implements ExecutionCommandSource @@ -2122,11 +2122,11 @@ index 979ea69678319338c543185ba026ad0699a388d6..34ed1f92328ee8826b58dfaf239a96b6 - Component component = minecraftServer.getChatDecorator().decorate(source.getPlayer(), message.decoratedContent()); - source.getChatMessageChainer().append(completableFuture, (filtered) -> { - PlayerChatMessage playerChatMessage2 = message.withUnsignedContent(component).filter(filtered.mask()); -+ // Paper start ++ // Paper start - support asynchronous chat decoration + CompletableFuture componentFuture = minecraftServer.getChatDecorator().decorate(source.getPlayer(), source, message.decoratedContent()); + source.getChatMessageChainer().append(CompletableFuture.allOf(completableFuture, componentFuture), (filtered) -> { -+ PlayerChatMessage playerChatMessage2 = message.withUnsignedContent(componentFuture.join().component()).filter(completableFuture.join().mask()); // Paper -+ // Paper end ++ PlayerChatMessage playerChatMessage2 = message.withUnsignedContent(componentFuture.join().component()).filter(completableFuture.join().mask()); ++ // Paper end - support asynchronous chat decoration callback.accept(playerChatMessage2); }); } @@ -2135,15 +2135,15 @@ index 979ea69678319338c543185ba026ad0699a388d6..34ed1f92328ee8826b58dfaf239a96b6 ChatDecorator chatDecorator = source.getServer().getChatDecorator(); - Component component = chatDecorator.decorate(source.getPlayer(), message.decoratedContent()); - callback.accept(message.withUnsignedContent(component)); -+ // Paper start ++ // Paper start - support asynchronous chat decoration + CompletableFuture componentFuture = chatDecorator.decorate(source.getPlayer(), source, message.decoratedContent()); + source.getChatMessageChainer().append(componentFuture, (result) -> callback.accept(message.withUnsignedContent(result.component()))); -+ // Paper end ++ // Paper end - support asynchronous chat decoration } private static CompletableFuture filterPlainText(CommandSourceStack source, PlayerChatMessage message) { diff --git a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java -index d120fff432d9c4fc7a35ddffdc4186459e45e950..73c15a0c56a103ba4e62f0a51af8d42566b07245 100644 +index d120fff432d9c4fc7a35ddffdc4186459e45e950..676a1499747b071515479130875157263d3a8352 100644 --- a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java +++ b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java @@ -92,7 +92,7 @@ public class EntitySelector { @@ -2151,19 +2151,19 @@ index d120fff432d9c4fc7a35ddffdc4186459e45e950..73c15a0c56a103ba4e62f0a51af8d425 private void checkPermissions(CommandSourceStack source) throws CommandSyntaxException { - if (this.usesSelector && !source.hasPermission(2, "minecraft.command.selector")) { // CraftBukkit -+ if (source.bypassSelectorPermissions || (this.usesSelector && !source.hasPermission(2, "minecraft.command.selector"))) { // CraftBukkit // Paper ++ if (source.bypassSelectorPermissions || (this.usesSelector && !source.hasPermission(2, "minecraft.command.selector"))) { // CraftBukkit // Paper - add bypass for selector perms throw EntityArgument.ERROR_SELECTORS_NOT_ALLOWED.create(); } } diff --git a/src/main/java/net/minecraft/network/FriendlyByteBuf.java b/src/main/java/net/minecraft/network/FriendlyByteBuf.java -index 9373502ede6c8a881af67db005cf12fd9313f37f..39940edf4aef21842c8abd77bec0d0f1e7e9c762 100644 +index 9373502ede6c8a881af67db005cf12fd9313f37f..53f033d2d887909f5f905c00122d1b09809e5e3c 100644 --- a/src/main/java/net/minecraft/network/FriendlyByteBuf.java +++ b/src/main/java/net/minecraft/network/FriendlyByteBuf.java @@ -87,6 +87,7 @@ public class FriendlyByteBuf extends ByteBuf { public static final int DEFAULT_NBT_QUOTA = 2097152; private final ByteBuf source; -+ public java.util.Locale adventure$locale; // Paper ++ public java.util.Locale adventure$locale; // Paper - track player's locale for server-side translations public static final short MAX_STRING_LENGTH = 32767; public static final int MAX_COMPONENT_STRING_LENGTH = 262144; private static final int PUBLIC_KEY_SIZE = 256; @@ -2171,17 +2171,17 @@ index 9373502ede6c8a881af67db005cf12fd9313f37f..39940edf4aef21842c8abd77bec0d0f1 } public void writeJsonWithCodec(Codec codec, T value) { -+ // Paper start - Adventure ++ // Paper start - Adventure; add max length parameter + this.writeJsonWithCodec(codec, value, MAX_STRING_LENGTH); + } + public void writeJsonWithCodec(Codec codec, T value, int maxLength) { -+ // Paper end - Adventure ++ // Paper end - Adventure; add max length parameter DataResult dataresult = codec.encodeStart(JsonOps.INSTANCE, value); this.writeUtf(FriendlyByteBuf.GSON.toJson((JsonElement) Util.getOrThrow(dataresult, (s) -> { return new EncoderException("Failed to encode: " + s + " " + value); - }))); -+ })), maxLength); // Paper - Adventure ++ })), maxLength); // Paper - Adventure; add max length parameter } public void writeId(IdMap registry, T value) { @@ -2189,7 +2189,7 @@ index 9373502ede6c8a881af67db005cf12fd9313f37f..39940edf4aef21842c8abd77bec0d0f1 return (Component) this.readWithCodecTrusted(NbtOps.INSTANCE, ComponentSerialization.CODEC); } -+ // Paper start - adventure ++ // Paper start - adventure; support writing adventure components directly and server-side translations + public FriendlyByteBuf writeComponent(final net.kyori.adventure.text.Component component) { + return this.writeWithCodec(NbtOps.INSTANCE, io.papermc.paper.adventure.PaperAdventure.localizedCodec(this.adventure$locale), component); + } @@ -2201,24 +2201,24 @@ index 9373502ede6c8a881af67db005cf12fd9313f37f..39940edf4aef21842c8abd77bec0d0f1 + } + + return this.writeWithCodec(NbtOps.INSTANCE, ComponentSerialization.localizedCodec(this.adventure$locale), text); -+ // Paper end - adventure ++ // Paper end - adventure; support writing adventure components directly and server-side translations } public > T readEnum(Class enumClass) { diff --git a/src/main/java/net/minecraft/network/PacketEncoder.java b/src/main/java/net/minecraft/network/PacketEncoder.java -index 344c5af75c4a66bb27f3f422937c6c427c15ed25..3d359f80f52bff6f19fcb484f491a874f9dcff27 100644 +index 344c5af75c4a66bb27f3f422937c6c427c15ed25..7070d093c80033b61a9c8495bc56153d986b6b03 100644 --- a/src/main/java/net/minecraft/network/PacketEncoder.java +++ b/src/main/java/net/minecraft/network/PacketEncoder.java @@ -35,6 +35,7 @@ public class PacketEncoder extends MessageToByteEncoder> { } else { FriendlyByteBuf friendlyByteBuf = new FriendlyByteBuf(byteBuf); friendlyByteBuf.writeVarInt(i); -+ friendlyByteBuf.adventure$locale = channelHandlerContext.channel().attr(io.papermc.paper.adventure.PaperAdventure.LOCALE_ATTRIBUTE).get(); // Paper ++ friendlyByteBuf.adventure$locale = channelHandlerContext.channel().attr(io.papermc.paper.adventure.PaperAdventure.LOCALE_ATTRIBUTE).get(); // Paper - adventure; set player's locale try { int j = friendlyByteBuf.writerIndex(); diff --git a/src/main/java/net/minecraft/network/chat/ChatDecorator.java b/src/main/java/net/minecraft/network/chat/ChatDecorator.java -index 887b9fd625aa23c4ec828a175d63695f915232d3..8152420b9c3eb1bf13c012dd43505d9913fb9c4d 100644 +index 887b9fd625aa23c4ec828a175d63695f915232d3..8e4a4b15152c2f83444fa8017bec06bbd1389e2c 100644 --- a/src/main/java/net/minecraft/network/chat/ChatDecorator.java +++ b/src/main/java/net/minecraft/network/chat/ChatDecorator.java @@ -2,12 +2,72 @@ package net.minecraft.network.chat; @@ -2231,14 +2231,14 @@ index 887b9fd625aa23c4ec828a175d63695f915232d3..8152420b9c3eb1bf13c012dd43505d99 public interface ChatDecorator { ChatDecorator PLAIN = (sender, message) -> { - return message; -+ return CompletableFuture.completedFuture(message); // Paper ++ return CompletableFuture.completedFuture(message); // Paper - adventure; support async chat decoration events }; - Component decorate(@Nullable ServerPlayer sender, Component message); -+ @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper -+ CompletableFuture decorate(@Nullable ServerPlayer sender, Component message); // Paper - make a completable future again ++ @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper - adventure; support chat decoration events ++ CompletableFuture decorate(@Nullable ServerPlayer sender, Component message); // Paper - adventure; support async chat decoration events + -+ // Paper start ++ // Paper start - adventure; support async chat decoration events + default CompletableFuture decorate(@Nullable ServerPlayer sender, @Nullable net.minecraft.commands.CommandSourceStack commandSourceStack, Component message) { + throw new UnsupportedOperationException("Must override this implementation"); + } @@ -2294,17 +2294,17 @@ index 887b9fd625aa23c4ec828a175d63695f915232d3..8152420b9c3eb1bf13c012dd43505d99 + return new MessagePair(adventureComponent, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().serialize(adventureComponent)); + } + } -+ // Paper end ++ // Paper end - adventure; support async chat decoration events } diff --git a/src/main/java/net/minecraft/network/chat/ComponentSerialization.java b/src/main/java/net/minecraft/network/chat/ComponentSerialization.java -index 49138ccda0f378b13c7f425be765876eb4026b06..dc572d5be6ee3af74be2ffb4c02351c8be235159 100644 +index 49138ccda0f378b13c7f425be765876eb4026b06..30568c1be4d412bfae5bd07d45b823861ec39ab3 100644 --- a/src/main/java/net/minecraft/network/chat/ComponentSerialization.java +++ b/src/main/java/net/minecraft/network/chat/ComponentSerialization.java @@ -55,12 +55,58 @@ public class ComponentSerialization { return ExtraCodecs.orCompressed(mapCodec3, mapCodec2); } -+ // Paper start - adventure ++ // Paper start - adventure; create separate codec for each locale + private static final java.util.Map> LOCALIZED_CODECS = new java.util.concurrent.ConcurrentHashMap<>(); + + public static Codec localizedCodec(final java.util.@org.checkerframework.checker.nullness.qual.Nullable Locale locale) { @@ -2314,21 +2314,21 @@ index 49138ccda0f378b13c7f425be765876eb4026b06..dc572d5be6ee3af74be2ffb4c02351c8 + return LOCALIZED_CODECS.computeIfAbsent(locale, + loc -> ExtraCodecs.recursive("Component", selfCodec -> createCodec(selfCodec, loc))); + } -+ // Paper end ++ // Paper end - adventure; create separate codec for each locale + private static Codec createCodec(Codec selfCodec) { -+ // Paper start - adventure ++ // Paper start - adventure; create separate codec for each locale + return createCodec(selfCodec, null); + } + + private static Codec createCodec(Codec selfCodec, @javax.annotation.Nullable java.util.Locale locale) { -+ // Paper end ++ // Paper end - adventure; create separate codec for each locale ComponentContents.Type[] types = new ComponentContents.Type[]{PlainTextContents.TYPE, TranslatableContents.TYPE, KeybindContents.TYPE, ScoreContents.TYPE, SelectorContents.TYPE, NbtContents.TYPE}; MapCodec mapCodec = createLegacyComponentMatcher(types, ComponentContents.Type::codec, ComponentContents::type, "type"); Codec codec = RecordCodecBuilder.create((instance) -> { return instance.group(mapCodec.forGetter(Component::getContents), ExtraCodecs.strictOptionalField(ExtraCodecs.nonEmptyList(selfCodec.listOf()), "extra", List.of()).forGetter(Component::getSiblings), Style.Serializer.MAP_CODEC.forGetter(Component::getStyle)).apply(instance, MutableComponent::new); }); -+ // Paper start - adventure ++ // Paper start - adventure; create separate codec for each locale + final Codec origCodec = codec; + codec = new Codec<>() { + @Override @@ -2355,35 +2355,35 @@ index 49138ccda0f378b13c7f425be765876eb4026b06..dc572d5be6ee3af74be2ffb4c02351c8 + return origCodec.toString() + "[AdventureComponentAware]"; + } + }; -+ // Paper end ++ // Paper end - adventure; create separate codec for each locale return Codec.either(Codec.either(Codec.STRING, ExtraCodecs.nonEmptyList(selfCodec.listOf())), codec).xmap((either) -> { return either.map((either2) -> { return either2.map(Component::literal, ComponentSerialization::createFromList); diff --git a/src/main/java/net/minecraft/network/chat/ComponentUtils.java b/src/main/java/net/minecraft/network/chat/ComponentUtils.java -index b6506e881ef337bfd2a7a0644296b48b7300a0f6..7daca712816a79cc4a30b084afbd3d07b5d3755f 100644 +index b6506e881ef337bfd2a7a0644296b48b7300a0f6..57206594f305961a33542e1f8079c75bfa7c535f 100644 --- a/src/main/java/net/minecraft/network/chat/ComponentUtils.java +++ b/src/main/java/net/minecraft/network/chat/ComponentUtils.java @@ -41,6 +41,11 @@ public class ComponentUtils { if (depth > 100) { return text.copy(); } else { -+ // Paper start ++ // Paper start - adventure; pass actual vanilla component + if (text instanceof io.papermc.paper.adventure.AdventureComponent adventureComponent) { + text = adventureComponent.deepConverted(); + } -+ // Paper end ++ // Paper end - adventure; pass actual vanilla component MutableComponent mutableComponent = text.getContents().resolve(source, sender, depth + 1); for(Component component : text.getSiblings()) { diff --git a/src/main/java/net/minecraft/network/chat/MessageSignature.java b/src/main/java/net/minecraft/network/chat/MessageSignature.java -index df9997873c4bbec184379ec14dca1bf4566eb89d..e2812cdce3b1170b7b7d0f52209e8b4fd2b64c61 100644 +index df9997873c4bbec184379ec14dca1bf4566eb89d..a3e2d03ffe9392cc69e850c5db7d71889a0a27ea 100644 --- a/src/main/java/net/minecraft/network/chat/MessageSignature.java +++ b/src/main/java/net/minecraft/network/chat/MessageSignature.java @@ -13,11 +13,12 @@ import net.minecraft.util.SignatureUpdater; import net.minecraft.util.SignatureValidator; public record MessageSignature(byte[] bytes) { -+ public net.kyori.adventure.chat.SignedMessage.Signature adventure() { return () -> this.bytes; } // Paper ++ public net.kyori.adventure.chat.SignedMessage.Signature adventure() { return () -> this.bytes; } // Paper - adventure; support signed messages public static final Codec CODEC = ExtraCodecs.BASE64_STRING.xmap(MessageSignature::new, MessageSignature::bytes); public static final int BYTES = 256; @@ -2439,7 +2439,7 @@ index f8773f2982e6cd40661d138a7c32f219cda9225c..74cf1c043beef03cfd5adf481414a5ee sender.connection.sendPlayerChatMessage(playerChatMessage, params); } diff --git a/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java b/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java -index 901c1aba1653ed70f4af931835ceb12a357aff55..4ac5276dae775210d73ae943d183e5aa8c10bf57 100644 +index 901c1aba1653ed70f4af931835ceb12a357aff55..00560ea19c29fd0e16cbe11ab0b07f12a2ff0cb6 100644 --- a/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java +++ b/src/main/java/net/minecraft/network/chat/PlayerChatMessage.java @@ -14,7 +14,53 @@ import net.minecraft.Util; @@ -2447,7 +2447,7 @@ index 901c1aba1653ed70f4af931835ceb12a357aff55..4ac5276dae775210d73ae943d183e5aa import net.minecraft.util.SignatureValidator; -public record PlayerChatMessage(SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask) { -+// Paper start ++// Paper start - adventure; support signed messages +public record PlayerChatMessage(SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask, @Nullable net.minecraft.network.chat.ChatDecorator.Result result) { + public PlayerChatMessage(SignedMessageLink link, @Nullable MessageSignature signature, SignedMessageBody signedBody, @Nullable Component unsignedContent, FilterMask filterMask) { + this(link, signature, signedBody, unsignedContent, filterMask, null); @@ -2493,7 +2493,7 @@ index 901c1aba1653ed70f4af931835ceb12a357aff55..4ac5276dae775210d73ae943d183e5aa + public AdventureView adventureView() { + return new AdventureView(); + } -+ // Paper end ++ // Paper end - adventure; support signed messages public static final MapCodec MAP_CODEC = RecordCodecBuilder.mapCodec((instance) -> { return instance.group(SignedMessageLink.CODEC.fieldOf("link").forGetter(PlayerChatMessage::link), MessageSignature.CODEC.optionalFieldOf("signature").forGetter((message) -> { return Optional.ofNullable(message.signature); @@ -2502,7 +2502,7 @@ index 901c1aba1653ed70f4af931835ceb12a357aff55..4ac5276dae775210d73ae943d183e5aa public PlayerChatMessage withUnsignedContent(Component unsignedContent) { - Component component = !unsignedContent.equals(Component.literal(this.signedContent())) ? unsignedContent : null; -+ Component component = !(unsignedContent instanceof io.papermc.paper.adventure.AdventureComponent advComponent ? advComponent.deepConverted() : unsignedContent).equals(Component.literal(this.signedContent())) ? unsignedContent : null; // Paper ++ Component component = !(unsignedContent instanceof io.papermc.paper.adventure.AdventureComponent advComponent ? advComponent.deepConverted() : unsignedContent).equals(Component.literal(this.signedContent())) ? unsignedContent : null; // Paper - adventure; convert adventure component wraps return new PlayerChatMessage(this.link, this.signature, this.signedBody, component, this.filterMask); } @@ -2648,7 +2648,7 @@ index a5578cbce2d1d39ba3315e53425d5323e6823a65..7a036c08fa67504d06c8f72a32c22814 @Override diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 729849caf3e3cb542d5c4097a568c5fadeff0f6d..1eb0809addfd77303b94bb594701ee7f38483909 100644 +index d4fb6d031acbb009fcb600718a16ac0b5437d88e..47f01de166a4048824f3075deb596084b7d42978 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -191,6 +191,7 @@ import org.bukkit.craftbukkit.SpigotTimings; // Spigot diff --git a/patches/server/0011-Paper-command.patch b/patches/server/0011-Paper-command.patch index 32ca916d956f..85195efecb4d 100644 --- a/patches/server/0011-Paper-command.patch +++ b/patches/server/0011-Paper-command.patch @@ -605,19 +605,19 @@ index 0000000000000000000000000000000000000000..ae60bd96b5284d54676d8e7e4dd5d170 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 458c04786f7b56f3c006e1e717c0ac709fddb1a0..6c83df6290e4ec59c596f1b9e2f10f0a80004acd 100644 +index c56c7293261ec2601ab02d051b37e820f023f0ff..faab5e8c952a2af6a286043617cded4e6ca5c3c6 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -186,6 +186,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - // Paper start - paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); - paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); -+ io.papermc.paper.command.PaperCommands.registerCommands(this); - // Paper end +@@ -187,6 +187,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + this.paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); + this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); + // Paper end - initialize global and world-defaults configuration ++ io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command this.setPvpAllowed(dedicatedserverproperties.pvp); + this.setFlightAllowed(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 085844c5257c667838f637e98f32688b5e2ceaca..b7a7258321b5c312b9697ce40c1ea7bee469b3fc 100644 +index 4e155510337d73cd65f722c1360d87d14312b874..cded844ac9fb2167fd0c751d47439d6597e34d05 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -939,6 +939,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0012-Paper-Metrics.patch b/patches/server/0012-Paper-Metrics.patch index 49ea4af62651..56286148ba2a 100644 --- a/patches/server/0012-Paper-Metrics.patch +++ b/patches/server/0012-Paper-Metrics.patch @@ -698,17 +698,17 @@ index 0000000000000000000000000000000000000000..6aaed8e8bf8c721fc834da5c76ac72a4 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 6c83df6290e4ec59c596f1b9e2f10f0a80004acd..4b303d8acc663cfd3b86e37f4a3110d5335d07ad 100644 +index faab5e8c952a2af6a286043617cded4e6ca5c3c6..813fd87df0dfed8fe46389db8333d1d9f409fbe4 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -187,6 +187,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); - paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); - io.papermc.paper.command.PaperCommands.registerCommands(this); -+ com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); - // Paper end +@@ -188,6 +188,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); + // Paper end - initialize global and world-defaults configuration + io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command ++ com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics this.setPvpAllowed(dedicatedserverproperties.pvp); + this.setFlightAllowed(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java index 1d066ce7dcf5f548c2a34d308d4422ab4fd02e5a..0fca20580d81c461e903c8cbd1cf090f5d5083c6 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch index 9f4a054eee0b..839ff003213b 100644 --- a/patches/server/0014-Timings-v2.patch +++ b/patches/server/0014-Timings-v2.patch @@ -712,7 +712,7 @@ index daedf825e68655492f5ab776bc206a5eb87c0170..7de24c39b460e43d27839b3821e67213 } catch (Exception exception) { label25: diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1eb0809addfd77303b94bb594701ee7f38483909..206751253a02a5f144bbf7bfc5401577767e9030 100644 +index 47f01de166a4048824f3075deb596084b7d42978..57e15d66bf59c23d9dc87aa811ff6c3c2084a4c4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -186,7 +186,7 @@ import org.bukkit.craftbukkit.Main; @@ -891,7 +891,7 @@ index 1eb0809addfd77303b94bb594701ee7f38483909..206751253a02a5f144bbf7bfc5401577 this.profiler.popPush("send chunks"); iterator = this.playerList.getPlayers().iterator(); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 4b303d8acc663cfd3b86e37f4a3110d5335d07ad..cb95818bfb5f0a9274b4e0f2530000bfca7ffc87 100644 +index 813fd87df0dfed8fe46389db8333d1d9f409fbe4..dfb37ddb89c2f43d9f9a34a6b2d38616575eb39b 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -58,8 +58,9 @@ import org.apache.logging.log4j.Level; @@ -1123,7 +1123,7 @@ index 7cacfceed5ef9276a19123a8a9079579423d03ac..5cd680d2ed47aadb5e65a775d70bc662 gameprofilerfiller.pop(); gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index cb6fbb3a1512d69a3f1192c969c3d5c78c046cef..96b1e1669b4a425bc18e5c00da18a79f20fc3e9b 100644 +index aa2c9b13b86130a613ed171a3c16f3639e7c82c6..d00b789d8deb0163726acbcb10edb0965ac9f326 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1,6 +1,8 @@ @@ -1472,7 +1472,7 @@ index b71b702471599fc8f1de42919ade8ee6a4e6247c..2e47008a8ff1bb56b752d4eb880173b9 if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { this.hurt(this.damageSources().drown(), 1.0F); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9f8f9dea26e55f8785d3702c1e3d83f6f87358bb..6e3bdcea55490b23066ab90966698e59847cdffa 100644 +index 32afa096f148ebb546963bae7c9c9b194cb1a99c..6dbc4c74b4d6b8e6c4763366e70ca9292b4a25d5 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -91,7 +91,6 @@ import org.bukkit.Bukkit; @@ -1485,7 +1485,7 @@ index 9f8f9dea26e55f8785d3702c1e3d83f6f87358bb..6e3bdcea55490b23066ab90966698e59 import org.bukkit.craftbukkit.block.data.CraftBlockData; @@ -166,7 +165,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } - // Paper end + // Paper end - add paper world config - public final SpigotTimings.WorldTimingsHandler timings; // Spigot + public final co.aikar.timings.WorldTimingsHandler timings; // Paper diff --git a/patches/server/0029-Add-version-history-to-version-command.patch b/patches/server/0029-Add-version-history-to-version-command.patch index d84d36ed1714..b6afc3dbac0b 100644 --- a/patches/server/0029-Add-version-history-to-version-command.patch +++ b/patches/server/0029-Add-version-history-to-version-command.patch @@ -209,14 +209,14 @@ index 0000000000000000000000000000000000000000..660b2ec6b63a4ceffee44ab11f54dfa7 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index b6d5e0962abb62a30c1561d3b1e970884b5b13dc..a267ab0b217573373d7b6a1f48cadab0f431da40 100644 +index 0f516d126ce834adadd6a57a762e34c996403ab2..69e8a7551762ab6de03f43d823e2149f5f9eca70 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -189,6 +189,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); - io.papermc.paper.command.PaperCommands.registerCommands(this); - com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); -+ com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now - // Paper end +@@ -190,6 +190,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + // Paper end - initialize global and world-defaults configuration + io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command + com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics ++ com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now this.setPvpAllowed(dedicatedserverproperties.pvp); + this.setFlightAllowed(dedicatedserverproperties.allowFlight); diff --git a/patches/server/0031-Further-improve-server-tick-loop.patch b/patches/server/0031-Further-improve-server-tick-loop.patch index c63df8e085bc..467d67138ac6 100644 --- a/patches/server/0031-Further-improve-server-tick-loop.patch +++ b/patches/server/0031-Further-improve-server-tick-loop.patch @@ -12,7 +12,7 @@ Previous implementation did not calculate TPS correctly. Switch to a realistic rolling average and factor in std deviation as an extra reporting variable diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 457b0f1f469436f6caa7473d91f906f1a61d6c74..2f04f10f5819be04b98ac0b52a2d7f4dfa525cea 100644 +index 9d2ec082302a422e3135dc0ff6fedf86456b74b5..2defe6f950b8a5e1f039f61fa30343ccc7d4617a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -283,7 +283,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess()))); // Paper -+ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - Async-Anti-Xray - Pass executor +- super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess()))); // Paper - create paper world configs ++ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - create paper world configs; Async-Anti-Xray: Pass executor this.pvpMode = minecraftserver.isPvpAllowed(); this.convertable = convertable_conversionsession; this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile()); @@ -1155,12 +1155,12 @@ index 5de5209e04d631bd6a50e28e8d3abebf148252c1..19b3f4fa7678a038bf25efc2a8b46dda DebugPackets.sendPoiPacketsForChunk(world, chunkPos); } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8c4fcb49c1cd90751bcc776a119f4d503b2bbf06..864b1985ba645b709e2cb5e7fd036e7664063ce5 100644 +index 9e4ab11521b853d0db55b382413c1f49cbff9e9e..8782c443d6288cb1cadc181e7f2923cbcd3061d2 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -178,6 +178,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } - // Paper end + // Paper end - add paper world config + public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray public final co.aikar.timings.WorldTimingsHandler timings; // Paper @@ -1170,10 +1170,10 @@ index 8c4fcb49c1cd90751bcc776a119f4d503b2bbf06..864b1985ba645b709e2cb5e7fd036e76 public abstract ResourceKey getTypeKey(); -- protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator) { // Paper -+ protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor +- protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator) { // Paper - create paper world config ++ protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot - this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper + this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config this.generator = gen; @@ -282,6 +283,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.keepSpawnInMemory = this.paperConfig().spawn.keepSpawnLoaded; // Paper diff --git a/patches/server/0365-Improved-Watchdog-Support.patch b/patches/server/0365-Improved-Watchdog-Support.patch index 4e6962d78d3d..89c7318629e5 100644 --- a/patches/server/0365-Improved-Watchdog-Support.patch +++ b/patches/server/0365-Improved-Watchdog-Support.patch @@ -71,7 +71,7 @@ index a9a0248b1bd1ac454064e977b61f9b7d80962ff8..059b1a0bf048af6a28c322f35da3d3cb cause = cause.getCause(); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2deb639d404943ef5b028c4ede59cab99b31a40f..08f7f287af32597d8a39f429013adec9266020bf 100644 +index 961a4953be8561e31d8df3ce812d9ab6e3a573a5..011d9854731425cb5116db8cd726326c4a38fc06 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -297,7 +297,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop packet) { diff --git a/src/main/java/net/minecraft/network/PacketEncoder.java b/src/main/java/net/minecraft/network/PacketEncoder.java -index 45b4f1c295eda2fcc5067a4b21de247218ef117f..d364bd57b1675c8b21d781c2bc16c3e65800455c 100644 +index 2907536f8f9b4b9dccb96f8b4f19d75fa3c5b864..b5b228e67284baad3639b283595427a819bb1a44 100644 --- a/src/main/java/net/minecraft/network/PacketEncoder.java +++ b/src/main/java/net/minecraft/network/PacketEncoder.java @@ -47,7 +47,14 @@ public class PacketEncoder extends MessageToByteEncoder> { @@ -545,19 +545,19 @@ index 45b4f1c295eda2fcc5067a4b21de247218ef117f..d364bd57b1675c8b21d781c2bc16c3e6 throw new SkipPacketException(var13); } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index fe47a38137f7b7fa94c507e790eec4fb7303595f..7f5ecea0ee78a534d7c56fa9e3ad2117b5192c0a 100644 +index 9ddcca2c17c15c5c7d88046aeae8b5588ad4612d..c7696765ff6b1e27c108d2668c32abbbab35896c 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -195,6 +195,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -194,6 +194,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + org.spigotmc.SpigotConfig.init((java.io.File) this.options.valueOf("spigot-settings")); org.spigotmc.SpigotConfig.registerCommands(); // Spigot end - // Paper start + io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // Paper - load mappings for stacktrace deobf and etc. - paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); - paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); - org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); + // Paper start - initialize global and world-defaults configuration + this.paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); + this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index bd40d4056fbf237f2a3f6c7178bed699f9bdf389..2e04cf910a520b92ac43a5ff2d06d9d61402c3cb 100644 +index 1c0d2aad70b3817913e93354ccc055b82ae321bc..51379dc93af2eaa3294179debe067d62627b60e1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -222,7 +222,9 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0430-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0430-Thread-Safe-Vanilla-Command-permission-checking.patch index 048e161f33b7..a6303d1a68e1 100644 --- a/patches/server/0430-Thread-Safe-Vanilla-Command-permission-checking.patch +++ b/patches/server/0430-Thread-Safe-Vanilla-Command-permission-checking.patch @@ -26,7 +26,7 @@ index 3384501f83d445f45aa8233e98c7597daa67b8ef..6875e15aac37d3566bf04f1a6ee79a21 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 75b7b3cf90d1d67203ae19dc3302f06a57470f92..e58c2844356c71973d81b460a21aab795b506d77 100644 +index c772fa3b7a1276b0b41c45c6e0f5584b9c3a90cd..79732086bc4cdbca8364d78eb60d68c758055966 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -64,7 +64,7 @@ public class CommandSourceStack implements ExecutionCommandSource currentCommand = new java.util.concurrent.ConcurrentHashMap<>(); // CraftBukkit // Paper - public boolean bypassSelectorPermissions = false; // Paper ++ public java.util.Map currentCommand = new java.util.concurrent.ConcurrentHashMap<>(); // CraftBukkit // Paper - make thread-safe + public boolean bypassSelectorPermissions = false; // Paper - add bypass for selector permissions public CommandSourceStack(CommandSource output, Vec3 pos, Vec2 rot, ServerLevel world, int level, String name, Component displayName, MinecraftServer server, @Nullable Entity entity) { @@ -193,9 +193,11 @@ public class CommandSourceStack implements ExecutionCommandSource public -- public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory, joptsimple.OptionSet optionSet) throws Exception { // Paper -+ public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory, File userCacheFile, joptsimple.OptionSet optionSet) throws Exception { // Paper +- public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory, joptsimple.OptionSet optionSet) throws Exception { // Paper - add optionset to load paper config files ++ public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory, File userCacheFile, joptsimple.OptionSet optionSet) throws Exception { // Paper - add optionset to load paper config files; add userCacheFile parameter MinecraftSessionService minecraftSessionService = authenticationService.createMinecraftSessionService(); GameProfileRepository gameProfileRepository = authenticationService.createProfileRepository(); - GameProfileCache gameProfileCache = new GameProfileCache(gameProfileRepository, new File(rootDirectory, "usercache.json")); -+ GameProfileCache gameProfileCache = new GameProfileCache(gameProfileRepository, userCacheFile); // Paper - // Paper start ++ GameProfileCache gameProfileCache = new GameProfileCache(gameProfileRepository, userCacheFile); // Paper - use specified user cache file + // Paper start - load paper config files from cli options final java.nio.file.Path legacyConfigPath = ((File) optionSet.valueOf("paper-settings")).toPath(); final java.nio.file.Path configDirPath = ((File) optionSet.valueOf("paper-settings-directory")).toPath(); diff --git a/patches/server/0549-fix-converting-txt-to-json-file.patch b/patches/server/0549-fix-converting-txt-to-json-file.patch index 5ba9235c6a7c..4761cc2aebe6 100644 --- a/patches/server/0549-fix-converting-txt-to-json-file.patch +++ b/patches/server/0549-fix-converting-txt-to-json-file.patch @@ -21,22 +21,22 @@ index a20d47f54f12dfc0a5f76dd969238e34c958b618..935dac757280731bfeb0a8f033cbe315 this.saveUserBanList(); this.loadIpBanList(); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index ac918da8234553e4d88664b240feddc1fea8bd6b..e92708f60fec876c62e720420f133a9b28c6f66f 100644 +index 4d76d64fad92510de5098613aa0a04e1bbf7bca5..d7a147cc29f9d6882326ddac29449e1b14ae9c96 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -198,6 +198,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // Paper - load mappings for stacktrace deobf and etc. - paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); - paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); -+ // Paper start - moved up to right after PlayerList creation but before file load/save +@@ -199,6 +199,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + this.paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); + this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); + // Paper end - initialize global and world-defaults configuration ++ // Paper start - convert old users earlier after PlayerList creation but before file load/save + if (this.convertOldUsers()) { + this.getProfileCache().save(false); // Paper + } + this.getPlayerList().loadAndSaveFiles(); // Must be after convertNames -+ // Paper end - moved up - org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); - io.papermc.paper.command.PaperCommands.registerCommands(this); - com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); ++ // Paper end - convert old users earlier after PlayerList creation but before file load/save + org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); // Paper - start watchdog thread + io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command + com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics @@ -253,9 +259,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file."); } @@ -48,7 +48,7 @@ index ac918da8234553e4d88664b240feddc1fea8bd6b..e92708f60fec876c62e720420f133a9b if (!OldUsersConverter.serverReadyAfterUserconversion(this)) { return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index bf361396bc2ec5d5c7b45d425af990c037ba0694..c8f40d71619a53f85b71ef5af397bbfa65fd797f 100644 +index 32f93ed20f5f2cec71850d7e0ce8a633fd5efc82..8a13160ff62a671a11740c456a2cbc3ccbac708f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -176,6 +176,7 @@ public abstract class PlayerList { diff --git a/patches/server/0563-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0563-Enhance-console-tab-completions-for-brigadier-comman.patch index 5513bfc5df97..12c556faf5f0 100644 --- a/patches/server/0563-Enhance-console-tab-completions-for-brigadier-comman.patch +++ b/patches/server/0563-Enhance-console-tab-completions-for-brigadier-comman.patch @@ -208,7 +208,7 @@ index 0000000000000000000000000000000000000000..dd9d77d7c7f1a5a130a1f4c15e5b1e68 + public void setErrorIndex(final int errorIndex) {} +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index e92708f60fec876c62e720420f133a9b28c6f66f..3cacbbc03a3207656b71a1a05d95dbb750815bab 100644 +index d7a147cc29f9d6882326ddac29449e1b14ae9c96..5c455e4fba3e7b6064d869340667f48ed9cb3e9e 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -173,7 +173,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -220,14 +220,14 @@ index e92708f60fec876c62e720420f133a9b28c6f66f..3cacbbc03a3207656b71a1a05d95dbb7 DedicatedServer.LOGGER.info("Starting minecraft server version {}", SharedConstants.getCurrentVersion().getName()); if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L) { DedicatedServer.LOGGER.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); -@@ -205,6 +205,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -206,6 +206,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface this.getPlayerList().loadAndSaveFiles(); // Must be after convertNames - // Paper end - moved up - org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); + // Paper end - convert old users earlier after PlayerList creation but before file load/save + org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); // Paper - start watchdog thread + thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized - io.papermc.paper.command.PaperCommands.registerCommands(this); - com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); - com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now + io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command + com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics + com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now diff --git a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java index 8f82041f0482df22a6a9ea38d50d56228131775d..12eeabafbad9da8796dc6fc383b732cf75bb7ddb 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java diff --git a/patches/server/0575-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0575-Implement-methods-to-convert-between-Component-and-B.patch index dd25fe454b9e..573adc195020 100644 --- a/patches/server/0575-Implement-methods-to-convert-between-Component-and-B.patch +++ b/patches/server/0575-Implement-methods-to-convert-between-Component-and-B.patch @@ -42,14 +42,14 @@ index 0000000000000000000000000000000000000000..dd6012b6a097575b2d1471be5069ecce + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 3cacbbc03a3207656b71a1a05d95dbb750815bab..8f9ea1907ed4574cca8d362a0f207fb546cb6484 100644 +index 5c455e4fba3e7b6064d869340667f48ed9cb3e9e..f9e39f557f04269769b869ff24127a6f312ddec3 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -209,6 +209,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - io.papermc.paper.command.PaperCommands.registerCommands(this); - com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); - com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now -+ io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider - // Paper end +@@ -210,6 +210,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command + com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics + com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now ++ io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // Paper - init PaperBrigadierProvider this.setPvpAllowed(dedicatedserverproperties.pvp); + this.setFlightAllowed(dedicatedserverproperties.allowFlight); diff --git a/patches/server/0621-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0621-Use-getChunkIfLoadedImmediately-in-places.patch index 0cf92aab065c..b4bfba528c56 100644 --- a/patches/server/0621-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0621-Use-getChunkIfLoadedImmediately-in-places.patch @@ -8,7 +8,7 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk load in that case). diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e00fe39fbcd4aa54eb498b91783b7e4dd021acc0..89396f956fc413f6ce53c2f66a85c395557aa883 100644 +index 8b2f72be4304ebab84fc46e6c4c0984abd8e8905..dbfd4a642e862f46a8b4fd1f3fc52c13ecf74284 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -229,7 +229,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -21,7 +21,7 @@ index e00fe39fbcd4aa54eb498b91783b7e4dd021acc0..89396f956fc413f6ce53c2f66a85c395 @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index da6995bcecfb16567b8a7c13b19d08ef3e5dc5d2..06446b61b79c24bb1df194706a587597a31e5a49 100644 +index 761d01c993b60a11c749e172c3ee3067c055b582..35ca44c88497e0b07f43ba7bf092360365b1c53a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -204,6 +204,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -37,7 +37,7 @@ index da6995bcecfb16567b8a7c13b19d08ef3e5dc5d2..06446b61b79c24bb1df194706a587597 + public abstract ResourceKey getTypeKey(); - protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor + protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor diff --git a/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java b/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java index 0d5ae91a9b43df7b412968ab5faf5498c09169f9..744160405680babbb83c99abcbe2dc89bf312398 100644 --- a/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java diff --git a/patches/server/0964-Only-capture-actual-tree-growth.patch b/patches/server/0964-Only-capture-actual-tree-growth.patch index e938f15f1eda..5a3038df4be8 100644 --- a/patches/server/0964-Only-capture-actual-tree-growth.patch +++ b/patches/server/0964-Only-capture-actual-tree-growth.patch @@ -29,16 +29,19 @@ index b44c596194f3e9fdd29f3eef1065612f46e7cd66..666533627e772e5e85ba04e65dd2b376 } entityhuman.awardStat(Stats.ITEM_USED.get(item)); // SPIGOT-7236 - award stat diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 3a6615df0e9e0043cebe35268509b882893725fb..d5890f295350ae5fb6e4844c90f6ab8e3a5f5516 100644 +index 7a4c21beaa4004f72cbfe75e567cafb3279a1c94..b8bf9eaae60040a3ba3d395712aa91940a71bea2 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1898,4 +1898,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1898,4 +1898,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } // Paper end - optimize redstone (Alternate Current) + // Paper start - notify observers even if grow failed + public void checkCapturedTreeStateForObserverNotify(final BlockPos pos, final CraftBlockState craftBlockState) { -+ if (craftBlockState.getPosition().getY() == pos.getY() && this.getBlockState(craftBlockState.getPosition()) == craftBlockState.getHandle()) { // notify observers if the block state is the same and the Y level equals the original y level (for mega trees) ++ // notify observers if the block state is the same and the Y level equals the original y level (for mega trees) ++ // blocks at the same Y level with the same state can be assumed to be saplings which trigger observers regardless of if the ++ // tree grew or not ++ if (craftBlockState.getPosition().getY() == pos.getY() && this.getBlockState(craftBlockState.getPosition()) == craftBlockState.getHandle()) { // Paper - Fix silent equipment change + this.notifyAndUpdatePhysics(craftBlockState.getPosition(), null, craftBlockState.getHandle(), craftBlockState.getHandle(), craftBlockState.getHandle(), craftBlockState.getFlag(), 512); + } + } diff --git a/patches/server/1001-Fix-silent-equipment-change-for-mobs.patch b/patches/server/1001-Fix-silent-equipment-change-for-mobs.patch index 9d7a049c8fdb..07f0f4cc4993 100644 --- a/patches/server/1001-Fix-silent-equipment-change-for-mobs.patch +++ b/patches/server/1001-Fix-silent-equipment-change-for-mobs.patch @@ -46,22 +46,6 @@ index 8e9469fec42f7b6a132cf173f6f5a95777a29b3b..a383c0c8b5c89ef1eef7d18edc3a09f7 if (!this.level().isClientSide) { this.reassessWeaponGoal(); } -diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index d5890f295350ae5fb6e4844c90f6ab8e3a5f5516..990bb65f784a2ac52e131d1ed146c2cd6dc19dce 100644 ---- a/src/main/java/net/minecraft/world/level/Level.java -+++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1900,7 +1900,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - // Paper end - optimize redstone (Alternate Current) - // Paper start - notify observers even if grow failed - public void checkCapturedTreeStateForObserverNotify(final BlockPos pos, final CraftBlockState craftBlockState) { -- if (craftBlockState.getPosition().getY() == pos.getY() && this.getBlockState(craftBlockState.getPosition()) == craftBlockState.getHandle()) { // notify observers if the block state is the same and the Y level equals the original y level (for mega trees) -+ // notify observers if the block state is the same and the Y level equals the original y level (for mega trees) -+ // blocks at the same Y level with the same state can be assumed to be saplings which trigger observers regardless of if the -+ // tree grew or not -+ if (craftBlockState.getPosition().getY() == pos.getY() && this.getBlockState(craftBlockState.getPosition()) == craftBlockState.getHandle()) { // Paper - Fix silent equipment change - this.notifyAndUpdatePhysics(craftBlockState.getPosition(), null, craftBlockState.getHandle(), craftBlockState.getHandle(), craftBlockState.getHandle(), craftBlockState.getFlag(), 512); - } - } diff --git a/src/test/java/io/papermc/paper/entity/EntitySetItemSlotSilentOverrideTest.java b/src/test/java/io/papermc/paper/entity/EntitySetItemSlotSilentOverrideTest.java new file mode 100644 index 0000000000000000000000000000000000000000..81947843d1f2f7dc6f59d7b52f327d60b17d0dcc From 78fcb8e7663307931f932ad0087ee42d65a203de Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 14 Jan 2024 00:42:59 +0100 Subject: [PATCH 09/45] [ci skip] Update contributing guidelines to include identifying commit titles in comments (#10162) --- CONTRIBUTING.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2ee1459ced57..b845f7dd0d0c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -206,27 +206,28 @@ when making and submitting changes. All modifications to non-Paper files should be marked. -- Multi-line changes start with `// Paper start` and end with `// Paper end`; -- You can put a comment with an explanation if it isn't obvious, like this: -`// Paper start - reason`. - - The comments should generally be about the reason the change was made, what - it was before, or what the change is. - - Multi-line messages should start with `// Paper start` and use `/* Multi - line message here */` for the message itself. -- One-line changes should have `// Paper` or `// Paper - reason`. +- You need to add a comment with a short and identifiable description of the patch: + `// Paper start - ` + - The comments should generally be about the reason the change was made, what + it was before, or what the change is. + - After the general commit description, you can add additional information either + after a `;` or in the next line. +- Multi-line changes start with `// Paper start - ` and end + with `// Paper end - `. +- One-line changes should have `// Paper - ` at the end of the line. Here's an example of how to mark changes by Paper: ```java -entity.getWorld().dontbeStupid(); // Paper - was beStupid() which is bad +entity.getWorld().dontBeStupid(); // Paper - Was beStupid(), which is bad entity.getFriends().forEach(Entity::explode); -entity.a(); -entity.b(); -// Paper start - use plugin-set spawn +entity.updateFriends(); + +// Paper start - Use plugin-set spawn // entity.getWorld().explode(entity.getWorld().getSpawn()); Location spawnLocation = ((CraftWorld)entity.getWorld()).getSpawnLocation(); entity.getWorld().explode(new BlockPosition(spawnLocation.getX(), spawnLocation.getY(), spawnLocation.getZ())); -// Paper end +// Paper end - Use plugin-set spawn ``` We generally follow the usual Java style (aka. Oracle style), or what is programmed From 8657cd91d7f4741959e2f35b155cde76f08b51d5 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 14 Jan 2024 01:46:04 -0800 Subject: [PATCH 10/45] Updated Upstream (Bukkit/CraftBukkit/Spigot) (#10164) Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 63c208dd Remove no longer used import 70be76c7 PR-958: Further clarify deprecation of TAG_CONTAINER_ARRAY ae21f4ac PR-955: Add methods to place structures with block/entity transformers e3d960f2 SPIGOT-7547: Remark that Damageable#setAbsorptionAmount() is capped to a specific value b125516c Fix typo in RecipeChoice.ExactChoice docs 309497c1 Add EntityMountEvent and EntityDismount Event 2fd45ae3 Improve ItemFactory#enchantItem consistency 2b198268 PR-933: Define native persistent data types for lists CraftBukkit Changes: 771182f70 PR-1327: Add methods to place structures with block/entity transformers e41ad4c82 SPIGOT-7567: SpawnReason for SNOWMAN is reported as BUILD_IRONGOLEM 76931e8bd Add EntityMountEvent and EntityDismount Event 9b29b21c7 PR-1183: Better handle lambda expression and renaming of classes in Commodore 1462ebe85 Reformat Commodore.java 9fde4c037 PR-1324: Improve ItemFactory#enchantItem consistency 4e419c774 PR-1295: Define native persistent data types for lists dd8cca388 SPIGOT-7562: Fix Score#getScore and Score#isScoreSet 690278200 Only fetch an online UUID in online mode 1da8d9a53 Fire PreLogin events even in offline mode 2e88514ad PR-1325: Use CraftBlockType and CraftItemType instead of CraftMagicNumbers to convert between minecraft and bukkit block / item representation Spigot Changes: 864e4acc Restore accidentally removed package-info.java f91a10d5 Remove obsolete EntityMountEvent and EntityDismountEvent 828f0593 SPIGOT-7558: Deprecate silenceable lightning API as sound is now client-side and cannot be removed cdc4e035 Remove obsolete patch fetching correct mode UUIDs 49e36b8e Merge related BungeeCord patches 6e87b9ab Remove obsolete firing of PreLogin events in offline mode 5c76b183 Remove redundant patch dealing with exceptions in the crash reporter 3a2219d1 Remove redundant patch logging cause of unexpected exception --- .../re-add-asm-dependency.patch | 29 ++++ build.gradle.kts | 2 + patches/api/0006-Adventure.patch | 6 +- patches/api/0018-Add-view-distance-API.patch | 4 +- .../api/0066-Add-getI18NDisplayName-API.patch | 4 +- .../0067-ensureServerConversions-API.patch | 4 +- ...tion-supression-of-EntityDismount-Ve.patch | 48 +++++- ...-ItemStack-Recipe-API-helper-methods.patch | 6 +- .../0173-Fix-Spigot-annotation-mistakes.patch | 51 +----- ...ate-HoverEvent-from-ItemStack-Entity.patch | 4 +- patches/api/0227-More-lightning-API.patch | 4 +- .../api/0355-Add-enchantWithLevels-API.patch | 18 +- .../server/0001-Setup-Gradle-project.patch | 14 +- .../server/0003-Build-system-changes.patch | 18 +- patches/server/0004-Test-changes.patch | 4 +- patches/server/0005-Paper-config-files.patch | 14 +- patches/server/0006-MC-Dev-fixes.patch | 4 +- patches/server/0008-CB-fixes.patch | 6 +- patches/server/0009-MC-Utils.patch | 20 +-- patches/server/0010-Adventure.patch | 94 +++++------ patches/server/0011-Paper-command.patch | 4 +- patches/server/0014-Timings-v2.patch | 32 ++-- .../server/0018-Rewrite-chunk-system.patch | 28 ++-- ...ient-crashes-server-lists-and-Mojang.patch | 6 +- ...031-Further-improve-server-tick-loop.patch | 6 +- patches/server/0033-Entity-Origin-API.patch | 10 +- ...nfigurable-top-of-nether-void-damage.patch | 4 +- patches/server/0040-Optimize-explosions.patch | 6 +- .../0054-Expose-server-CommandMap.patch | 4 +- ...llow-Reloading-of-Custom-Permissions.patch | 4 +- ...068-Handle-Item-Meta-Inconsistencies.patch | 20 +-- ...074-Use-a-Shared-Random-for-Entities.patch | 6 +- ...ckPhysicsEvent-if-a-plugin-has-a-lis.patch | 8 +- ...-possibility-for-getServer-singleton.patch | 4 +- ...-API-Replenishable-Lootables-Feature.patch | 4 +- ...setting-for-proxy-online-mode-status.patch | 12 +- ...111-Cache-user-authenticator-threads.patch | 34 ++-- ...2-Allow-Reloading-of-Command-Aliases.patch | 4 +- ...PI-for-Reason-Source-Triggering-play.patch | 4 +- .../server/0127-Cap-Entity-Collisions.patch | 6 +- ...n-option-to-prevent-player-names-fro.patch | 4 +- ...oleAppender-for-console-improvements.patch | 16 +- .../server/0138-Basic-PlayerProfile-API.patch | 4 +- .../0140-Shoulder-Entities-Release-API.patch | 4 +- .../server/0143-Entity-fromMobSpawner.patch | 10 +- ...mplement-ensureServerConversions-API.patch | 6 +- .../0146-Implement-getI18NDisplayName.patch | 4 +- ...-a-custom-authentication-servers-dow.patch | 4 +- ...-get-a-BlockState-without-a-snapshot.patch | 10 +- .../server/0165-AsyncTabCompleteEvent.patch | 6 +- .../0173-Add-ArmorStand-Item-Meta.patch | 8 +- ...nt-extended-PaperServerListPingEvent.patch | 6 +- ...e-PlayerProfile-in-AsyncPreLoginEven.patch | 34 ++-- .../0180-Player.setPlayerProfile-API.patch | 43 ++--- ...KnockbackByEntityEvent-and-EntityPus.patch | 8 +- patches/server/0210-RangedEntity-API.patch | 4 +- ...r-to-keep-logging-IO-off-main-thread.patch | 4 +- ...on-t-call-getItemMeta-on-hasItemMeta.patch | 6 +- ...ies-option-to-debug-dupe-uuid-issues.patch | 8 +- ...242-Optimize-CraftBlockData-Creation.patch | 4 +- ...-for-CanPlaceOn-and-CanDestroy-NBT-v.patch | 32 ++-- ...nt-furnace-cook-speed-multiplier-API.patch | 18 +- .../0260-Hook-into-CB-plugin-rewrites.patch | 156 +++++++++--------- .../0273-Optimize-World-Time-Updates.patch | 4 +- ...ault-permission-message-configurable.patch | 4 +- ...entity-dismount-during-teleportation.patch | 18 +- .../0295-Entity-getEntitySpawnReason.patch | 10 +- patches/server/0300-Server-Tick-Events.patch | 6 +- ...310-Expose-the-internal-current-tick.patch | 4 +- .../0331-Entity-Activation-Range-2.0.patch | 8 +- patches/server/0337-Anti-Xray.patch | 12 +- ...n-to-nerf-pigmen-from-nether-portals.patch | 8 +- ...-Add-tick-times-API-and-mspt-command.patch | 10 +- ...354-Expose-MinecraftServer-isRunning.patch | 4 +- ...ptimize-Collision-to-not-load-chunks.patch | 6 +- .../0365-Improved-Watchdog-Support.patch | 20 +-- ...pawn-point-if-spawn-in-unloaded-worl.patch | 6 +- ...m-duplication-issues-and-teleport-is.patch | 8 +- ...ktraces-in-log-messages-crash-report.patch | 8 +- .../server/0387-Implement-Mob-Goal-API.patch | 8 +- ...tance-map-to-optimise-entity-tracker.patch | 4 +- ...sure-Entity-AABB-s-are-never-invalid.patch | 4 +- ...ld-Difficulty-Remembering-Difficulty.patch | 16 +- ...-Plugin-Tickets-to-API-Chunk-Methods.patch | 6 +- ...-incremental-chunk-and-player-saving.patch | 6 +- ...nvert-legacy-attributes-in-Item-Meta.patch | 4 +- .../0423-Support-components-in-ItemMeta.patch | 10 +- ...ate-HoverEvent-from-ItemStack-Entity.patch | 4 +- .../0454-Cache-block-data-strings.patch | 14 +- ...ortation-and-cancel-velocity-if-tele.patch | 10 +- ...-non-whitelisted-player-when-white-l.patch | 4 +- .../server/0466-Optimise-getType-calls.patch | 33 ++-- ...-Add-getOfflinePlayerIfCached-String.patch | 4 +- .../server/0483-Add-Destroy-Speed-API.patch | 4 +- ...-should-not-bypass-cramming-gamerule.patch | 6 +- .../server/0505-Cache-burn-durations.patch | 6 +- ...4-Added-ServerResourcesReloadedEvent.patch | 6 +- ...n-for-requiring-a-player-participant.patch | 4 +- patches/server/0538-EntityMoveEvent.patch | 6 +- .../0553-Add-recipe-to-cook-events.patch | 6 +- ...telist-use-configurable-kick-message.patch | 4 +- ...-add-consumeFuel-to-FurnaceBurnEvent.patch | 4 +- patches/server/0573-More-World-API.patch | 4 +- ...-address-to-AsyncPlayerPreLoginEvent.patch | 30 ++-- .../server/0588-Add-basic-Datapack-API.patch | 4 +- .../server/0600-More-Lidded-Block-API.patch | 6 +- .../0602-Add-PlayerKickEvent-causes.patch | 6 +- .../0610-Fix-dangerous-end-portal-logic.patch | 4 +- ...2-Make-item-validations-configurable.patch | 6 +- ...d-missing-team-sidebar-display-slots.patch | 13 +- .../0654-Add-more-advancement-API.patch | 16 +- ...0655-Add-ItemFactory-getSpawnEgg-API.patch | 17 +- ...Add-API-for-resetting-a-single-score.patch | 4 +- ...61-Add-Raw-Byte-Entity-Serialization.patch | 4 +- ...aper-mobcaps-and-paper-playermobcaps.patch | 6 +- .../0678-Execute-chunk-tasks-mid-tick.patch | 8 +- ...ocity-compression-and-cipher-natives.patch | 8 +- ...l-more-information-in-watchdog-dumps.patch | 8 +- ...date-head-rotation-in-missing-places.patch | 6 +- ...-Fix-upstreams-block-state-factories.patch | 20 +-- ...-t-attempt-to-teleport-dead-entities.patch | 4 +- ...llow-delegation-to-vanilla-chunk-gen.patch | 10 +- .../server/0716-Collision-optimisations.patch | 10 +- ...check-for-PersistentDataContainer-ha.patch | 4 +- ...Hostname-to-AsyncPlayerPreLoginEvent.patch | 18 +- .../server/0745-Freeze-Tick-Lock-API.patch | 10 +- ...-command-sender-which-forwards-feedb.patch | 4 +- ...date-calls-to-CraftServer-getSpawnLi.patch | 4 +- patches/server/0754-Add-GameEvent-tags.patch | 6 +- ...sks-fairly-for-worlds-while-waiting-.patch | 6 +- patches/server/0762-Custom-Potion-Mixes.patch | 12 +- ...0764-Fix-falling-block-spawn-methods.patch | 6 +- ...0772-Implement-enchantWithLevels-API.patch | 14 +- ...assenger-world-matches-ridden-entity.patch | 4 +- ...E-in-CraftPersistentDataTypeRegistry.patch | 6 +- .../0798-Add-support-for-Proxy-Protocol.patch | 4 +- ...entity-loading-causing-async-lookups.patch | 4 +- ...n-on-world-create-while-being-ticked.patch | 10 +- ...us-missing-EntityDropItemEvent-calls.patch | 4 +- ...-on-plugins-accessing-faraway-chunks.patch | 6 +- patches/server/0828-Block-Ticking-API.patch | 4 +- ...9-Add-Velocity-IP-Forwarding-Support.patch | 40 ++--- ...ntityChangeBlockEvent-in-more-places.patch | 12 +- ...-serialization-deserialization-for-P.patch | 4 +- ...-of-WorldCreator-keepSpawnLoaded-ret.patch | 4 +- .../0844-Fix-a-bunch-of-vanilla-bugs.patch | 6 +- ...and-additions-to-the-SpawnReason-API.patch | 23 --- ...ck-state-to-BlockExplodeEvent-and-En.patch | 6 +- ...sion-moving-velocity-to-VehicleBlock.patch | 4 +- patches/server/0912-Optimize-Hoppers.patch | 4 +- ...ng-to-bad-recipes-in-furnace-like-ti.patch | 4 +- ...esh-ProjectileSource-for-projectiles.patch | 4 +- ...d-chunks-for-supporting-block-checks.patch | 4 +- ...51-fix-item-meta-for-tadpole-buckets.patch | 14 +- ...Folia-scheduler-and-owned-region-API.patch | 10 +- .../server/0971-Bandaid-fix-for-Effect.patch | 14 +- patches/server/0984-Expand-Pose-API.patch | 6 +- .../0986-Deep-clone-unhandled-nbt-tags.patch | 12 +- .../server/1010-Lag-compensation-ticks.patch | 6 +- ...he-collision-shape-of-a-block-before.patch | 4 +- ...ingEffect-powers-lightning-rods-and-.patch | 46 +----- ...n-t-fire-sync-events-during-worldgen.patch | 6 +- ...m-getAttributeModifier-duplication-c.patch | 4 +- ...estore-vanilla-entity-drops-behavior.patch | 12 +- .../server/1046-Fix-scoreboard-entries.patch | 36 ---- ...tch => 1046-add-more-scoreboard-API.patch} | 4 +- ...stry.patch => 1047-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 2 +- ...h => 1049-Add-experience-points-API.patch} | 0 ...h => 1050-Add-missing-InventoryType.patch} | 0 ...h => 1051-Add-drops-to-shear-events.patch} | 4 +- ...> 1052-Add-PlayerShieldDisableEvent.patch} | 2 +- ... => 1053-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 4 +- ...ate-ResourceLocation-in-NBT-reading.patch} | 4 +- ...-experience-dropping-on-block-break.patch} | 2 +- ...> 1058-Fixup-NamespacedKey-handling.patch} | 0 work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 181 files changed, 922 insertions(+), 979 deletions(-) create mode 100644 build-data/spigot-server-patches/re-add-asm-dependency.patch delete mode 100644 patches/server/1046-Fix-scoreboard-entries.patch rename patches/server/{1047-add-more-scoreboard-API.patch => 1046-add-more-scoreboard-API.patch} (95%) rename patches/server/{1048-Improve-Registry.patch => 1047-Improve-Registry.patch} (100%) rename patches/server/{1049-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 1048-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (97%) rename patches/server/{1050-Add-experience-points-API.patch => 1049-Add-experience-points-API.patch} (100%) rename patches/server/{1051-Add-missing-InventoryType.patch => 1050-Add-missing-InventoryType.patch} (100%) rename patches/server/{1052-Add-drops-to-shear-events.patch => 1051-Add-drops-to-shear-events.patch} (98%) rename patches/server/{1053-Add-PlayerShieldDisableEvent.patch => 1052-Add-PlayerShieldDisableEvent.patch} (97%) rename patches/server/{1054-Add-HiddenPotionEffect-API.patch => 1053-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1055-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1054-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{1056-fix-ItemMeta-removing-CustomModelData.patch => 1055-fix-ItemMeta-removing-CustomModelData.patch} (86%) rename patches/server/{1057-Validate-ResourceLocation-in-NBT-reading.patch => 1056-Validate-ResourceLocation-in-NBT-reading.patch} (96%) rename patches/server/{1058-Properly-handle-experience-dropping-on-block-break.patch => 1057-Properly-handle-experience-dropping-on-block-break.patch} (98%) rename patches/server/{1059-Fixup-NamespacedKey-handling.patch => 1058-Fixup-NamespacedKey-handling.patch} (100%) diff --git a/build-data/spigot-server-patches/re-add-asm-dependency.patch b/build-data/spigot-server-patches/re-add-asm-dependency.patch new file mode 100644 index 000000000000..fcf343fa1d77 --- /dev/null +++ b/build-data/spigot-server-patches/re-add-asm-dependency.patch @@ -0,0 +1,29 @@ +--- /dev/null 2024-01-13 10:03:30.400485704 -0800 ++++ CraftBukkit-Patches/9999-re-add-asm-dependency.patch 2024-01-13 21:41:27.650692678 -0800 +@@ -0,0 +1,26 @@ ++From e5eb4fb3bfb61dfd2dc97411cfab5fa94033b90c Mon Sep 17 00:00:00 2001 ++From: Jake Potrebic ++Date: Sat, 13 Jan 2024 21:41:02 -0800 ++Subject: [PATCH] re add asm dependency ++ ++ ++diff --git a/pom.xml b/pom.xml ++index 266853a682..d18fdadf92 100644 ++--- a/pom.xml +++++ b/pom.xml ++@@ -58,6 +58,12 @@ ++ 2.19.0 ++ compile ++ +++ +++ org.ow2.asm +++ asm +++ 9.5 +++ compile +++ ++ ++ org.ow2.asm ++ asm-commons ++-- ++2.43.0 ++ diff --git a/build.gradle.kts b/build.gradle.kts index f3b72af68321..ed586bbaf954 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -93,6 +93,8 @@ paperweight { mappingsPatch = layout.projectDirectory.file("build-data/mappings-patch.tiny") reobfMappingsPatch = layout.projectDirectory.file("build-data/reobf-mappings-patch.tiny") + spigotServerPatchPatchesDir = layout.projectDirectory.dir("build-data/spigot-server-patches") + reobfPackagesToFix.addAll( "co.aikar.timings", "com.destroystokyo.paper", diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch index 64917282ada2..7b97eacfe5a9 100644 --- a/patches/api/0006-Adventure.patch +++ b/patches/api/0006-Adventure.patch @@ -1522,7 +1522,7 @@ index efb97712cc9dc7c1e12a59f5b94e4f2ad7c6b7d8..3024468af4c073324e536c1cb26beffb return warning == null || warning.value(); } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 6e7d5545e0f79d81832ccd5c8405a70d8daa256f..d59acc729ad5af515b8ef4c98a3edeb440854820 100644 +index d453a9753620e23e93e24b0c62bec5515d11dbcc..4c878531d9d8d0aee6832fd10b339a32f219fa9a 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -45,7 +45,7 @@ import org.jetbrains.annotations.Nullable; @@ -4185,10 +4185,10 @@ index e12996492c1558fed9fab30de9f8018e0ed7fac3..002acfbdce1db10f7ba1b6a013e678f5 /** diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index e606f63a284db71663aee667597447b875e20627..6b1c55249b39a45c33ac49bacef4e9d80ba8cc3a 100644 +index 096e0d60c4542fec66898b6aa8ea9820a1ef483b..3e7f92dc0aea0ea555dd02c50a1102da46fe74c4 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -217,4 +217,24 @@ public interface ItemFactory { +@@ -215,4 +215,24 @@ public interface ItemFactory { */ @NotNull ItemStack enchantItem(@NotNull final ItemStack item, final int level, final boolean allowTreasures); diff --git a/patches/api/0018-Add-view-distance-API.patch b/patches/api/0018-Add-view-distance-API.patch index 823558c2f741..692c0e571616 100644 --- a/patches/api/0018-Add-view-distance-API.patch +++ b/patches/api/0018-Add-view-distance-API.patch @@ -8,10 +8,10 @@ Add per player no-tick, tick, and send view distances. Also add send/no-tick view distance to World. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index d59acc729ad5af515b8ef4c98a3edeb440854820..33f0cecdcd28efd721c58ebf1eb664bb5dba3803 100644 +index 4c878531d9d8d0aee6832fd10b339a32f219fa9a..52977ba7aba446f74bf6befe065f722eaafee0c2 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2869,6 +2869,62 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2875,6 +2875,62 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @NotNull public Set getFeatureFlags(); diff --git a/patches/api/0066-Add-getI18NDisplayName-API.patch b/patches/api/0066-Add-getI18NDisplayName-API.patch index ca75771d1453..ad040bab77bc 100644 --- a/patches/api/0066-Add-getI18NDisplayName-API.patch +++ b/patches/api/0066-Add-getI18NDisplayName-API.patch @@ -8,10 +8,10 @@ Currently the server only supports the English language. To override this, You must replace the language file embedded in the server jar. diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index 6b1c55249b39a45c33ac49bacef4e9d80ba8cc3a..cccf5d3dfd368c434dcafb0e9319f09a668c7ec2 100644 +index 3e7f92dc0aea0ea555dd02c50a1102da46fe74c4..16131648915ad4065b82905ab7c799e7554cca2d 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -237,4 +237,20 @@ public interface ItemFactory { +@@ -235,4 +235,20 @@ public interface ItemFactory { @NotNull net.kyori.adventure.text.Component displayName(@NotNull ItemStack itemStack); // Paper end - Adventure diff --git a/patches/api/0067-ensureServerConversions-API.patch b/patches/api/0067-ensureServerConversions-API.patch index 75f8c9aded55..79317188106a 100644 --- a/patches/api/0067-ensureServerConversions-API.patch +++ b/patches/api/0067-ensureServerConversions-API.patch @@ -7,10 +7,10 @@ This will take a Bukkit ItemStack and run it through any conversions a server pr to ensure it meets latest minecraft expectations. diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index cccf5d3dfd368c434dcafb0e9319f09a668c7ec2..246b58f52e914c45f357240b155c826b1d40b202 100644 +index 16131648915ad4065b82905ab7c799e7554cca2d..a3d40ca984202a5fec0cfcc97266f32408c37638 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -253,4 +253,18 @@ public interface ItemFactory { +@@ -251,4 +251,18 @@ public interface ItemFactory { @Deprecated String getI18NDisplayName(@Nullable ItemStack item); // Paper end - add getI18NDisplayName diff --git a/patches/api/0162-Support-cancellation-supression-of-EntityDismount-Ve.patch b/patches/api/0162-Support-cancellation-supression-of-EntityDismount-Ve.patch index 6eec41967270..b600b869ba18 100644 --- a/patches/api/0162-Support-cancellation-supression-of-EntityDismount-Ve.patch +++ b/patches/api/0162-Support-cancellation-supression-of-EntityDismount-Ve.patch @@ -20,6 +20,48 @@ this is going to be the best soultion all around. Improvements/suggestions welcome! +diff --git a/src/main/java/org/bukkit/event/entity/EntityDismountEvent.java b/src/main/java/org/bukkit/event/entity/EntityDismountEvent.java +index 00c3f50532392455070ae77ee4ad77cbf8d8827c..91188d77ff350aef20c3bde2bd27a8096825f337 100644 +--- a/src/main/java/org/bukkit/event/entity/EntityDismountEvent.java ++++ b/src/main/java/org/bukkit/event/entity/EntityDismountEvent.java +@@ -13,10 +13,18 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private boolean cancelled; + private final Entity dismounted; ++ private final boolean isCancellable; // Paper + + public EntityDismountEvent(@NotNull Entity what, @NotNull Entity dismounted) { ++ // Paper start ++ this(what, dismounted, true); ++ } ++ ++ public EntityDismountEvent(@NotNull Entity what, @NotNull Entity dismounted, boolean isCancellable) { ++ // Paper end + super(what); + this.dismounted = dismounted; ++ this.isCancellable = isCancellable; // Paper + } + + /** +@@ -36,9 +44,18 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable { + + @Override + public void setCancelled(boolean cancel) { ++ // Paper start ++ if (cancel && !this.isCancellable) { ++ return; ++ } + this.cancelled = cancel; + } + ++ public boolean isCancellable() { ++ return this.isCancellable; ++ // Paper end ++ } ++ + @NotNull + @Override + public HandlerList getHandlers() { diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleExitEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleExitEvent.java index 963b9ead4ca0426b2e95c5641b0e89317c48853d..39f6afd2f9cbcff6a74a91a21dcc3e29d2497dd8 100644 --- a/src/main/java/org/bukkit/event/vehicle/VehicleExitEvent.java @@ -64,10 +106,10 @@ index 963b9ead4ca0426b2e95c5641b0e89317c48853d..39f6afd2f9cbcff6a74a91a21dcc3e29 @Override public HandlerList getHandlers() { diff --git a/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java b/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java -index 00d8ec81b4ae6ca5e438161ec9135e3c1edea6f4..a7632c8f5cb1bce4be0e456ec34f4a69c5ce80f3 100644 +index be9560ffaa2d136ff1b5cd944baa678c1a938533..6533d1e0c5cb23e4a5e2831a56c5dbebe2d20f76 100644 --- a/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java +++ b/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java -@@ -14,10 +14,19 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable { +@@ -21,10 +21,19 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private boolean cancelled; private final Entity dismounted; @@ -88,7 +130,7 @@ index 00d8ec81b4ae6ca5e438161ec9135e3c1edea6f4..a7632c8f5cb1bce4be0e456ec34f4a69 } @NotNull -@@ -32,9 +41,18 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable { +@@ -39,9 +48,18 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable { @Override public void setCancelled(boolean cancel) { diff --git a/patches/api/0167-Add-ItemStack-Recipe-API-helper-methods.patch b/patches/api/0167-Add-ItemStack-Recipe-API-helper-methods.patch index d01ff8e6d988..61a45e967f38 100644 --- a/patches/api/0167-Add-ItemStack-Recipe-API-helper-methods.patch +++ b/patches/api/0167-Add-ItemStack-Recipe-API-helper-methods.patch @@ -9,13 +9,13 @@ Redirects some of upstream's APIs to these new methods to avoid usage of magic values and the deprecated RecipeChoice#getItemStack diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java -index 90208bc96085f05a3b657b9467b1670d00b03104..523818cbb0d6c90481ec97123e7fe0e2ff4eea14 100644 +index 6734bc9d7a6eee8ee40419ae3fe245b67eabaca6..db8bcc66bdc4bedfffb4705db6338eda4c0ad29a 100644 --- a/src/main/java/org/bukkit/inventory/RecipeChoice.java +++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java @@ -146,8 +146,6 @@ public interface RecipeChoice extends Predicate, Cloneable { /** - * Represents a choice that will be valid only one of the stacks is exactly - * matched (aside from stack size). + * Represents a choice that will be valid only if one of the stacks is + * exactly matched (aside from stack size). - *
- * Only valid for shaped recipes */ diff --git a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch index b85950c0d4f3..1ca860f01ac9 100644 --- a/patches/api/0173-Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch @@ -600,7 +600,7 @@ index e455eb21abf121dc6ff10ff8a13dd06f67096a8f..bbc01e7c192ae6689c301670047ff114 return origin; } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 313602704694c85bbac96b68deab67cd25f9913c..44ed5e72f17f156c9cf270fee31a9b80cf047a75 100644 +index b13f6d4ae42c981b051c6ef81b0f572039faded4..59a52583f433859b0a12a44c53970db87cde08aa 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -416,9 +416,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @@ -622,31 +622,7 @@ index 313602704694c85bbac96b68deab67cd25f9913c..44ed5e72f17f156c9cf270fee31a9b80 public class Spigot { /** -@@ -3712,8 +3712,12 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient - * @param loc The location to strike lightning - * @param isSilent Whether this strike makes no sound - * @return The lightning entity. -+ * @deprecated The lightning strike sound has been moved into the client and -+ * this doesn't prevent the sound being played. Use the regular (non spigot) methods instead -+ * for a consistent behavior. - */ - @NotNull -+ @Deprecated // Paper - public LightningStrike strikeLightning(@NotNull Location loc, boolean isSilent) { - throw new UnsupportedOperationException("Not supported yet."); - } -@@ -3724,14 +3728,22 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient - * @param loc The location to strike lightning - * @param isSilent Whether this strike makes no sound - * @return The lightning entity. -+ * @deprecated The lightning strike sound has been moved into the client and -+ * this doesn't prevent the sound being played. Use the regular (non spigot) methods instead -+ * for a consistent behavior. - */ - @NotNull -+ @Deprecated // Paper - public LightningStrike strikeLightningEffect(@NotNull Location loc, boolean isSilent) { - throw new UnsupportedOperationException("Not supported yet."); +@@ -3737,7 +3737,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient } } @@ -658,7 +634,7 @@ index 313602704694c85bbac96b68deab67cd25f9913c..44ed5e72f17f156c9cf270fee31a9b80 Spigot spigot(); // Spigot end -@@ -3918,9 +3930,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -3924,9 +3928,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * Gets the dimension ID of this environment * * @return dimension ID @@ -670,7 +646,7 @@ index 313602704694c85bbac96b68deab67cd25f9913c..44ed5e72f17f156c9cf270fee31a9b80 public int getId() { return id; } -@@ -3930,9 +3942,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -3936,9 +3940,9 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * * @param id The ID of the environment * @return The environment @@ -802,10 +778,10 @@ index e3f440c9d9ce3b5710ed1b7f71522899fb98459f..a4578c520aa1078a741aac4b12fe89bf @Nullable public static EntityType fromName(@Nullable String name) { diff --git a/src/main/java/org/bukkit/entity/LightningStrike.java b/src/main/java/org/bukkit/entity/LightningStrike.java -index c49628f2638da68e1ec126e53c8b7c74b0d81b22..8dc433baba7060df5cfe6fc10210a5a27287987d 100644 +index b27447d7a2833f84cf05946c851f5b6740a578e3..5afeb2f6c82e8f752229462c2d7846f6ae7a4b44 100644 --- a/src/main/java/org/bukkit/entity/LightningStrike.java +++ b/src/main/java/org/bukkit/entity/LightningStrike.java -@@ -84,20 +84,31 @@ public interface LightningStrike extends Entity { +@@ -84,6 +84,10 @@ public interface LightningStrike extends Entity { public void setCausingPlayer(@Nullable Player player); // Spigot start @@ -815,17 +791,8 @@ index c49628f2638da68e1ec126e53c8b7c74b0d81b22..8dc433baba7060df5cfe6fc10210a5a2 + @Deprecated // Paper public class Spigot extends Entity.Spigot { -- /* -+ /** - * Returns whether the strike is silent. - * - * @return whether the strike is silent. -+ * @deprecated The lightning strike sound has been moved into the client and -+ * this can't predict if the sound will be played or not accurately. - */ -+ @Deprecated // Paper - public boolean isSilent() { - throw new UnsupportedOperationException("Not supported yet."); + /** +@@ -98,8 +102,12 @@ public interface LightningStrike extends Entity { } } @@ -1410,7 +1377,7 @@ index 002acfbdce1db10f7ba1b6a013e678f504ac6e69..8d14426eb1ebea27058d5f22ea652f22 return getPlayer().getItemOnCursor(); } diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index 246b58f52e914c45f357240b155c826b1d40b202..53457348eaf2e1ef2e844eae87ac94f701525c92 100644 +index a3d40ca984202a5fec0cfcc97266f32408c37638..6aeae6b78106b8fd434614591adb5ead41dec8e1 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java @@ -30,7 +30,7 @@ public interface ItemFactory { diff --git a/patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch index 6c5c79f03915..2ed2600f9a42 100644 --- a/patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch +++ b/patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index 53457348eaf2e1ef2e844eae87ac94f701525c92..8c248dac47464757e013c25393fe9bf604ded7c2 100644 +index 6aeae6b78106b8fd434614591adb5ead41dec8e1..198eebd45a2efa6986a8f4b613424eb8b6d3a039 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java -@@ -267,4 +267,65 @@ public interface ItemFactory { +@@ -265,4 +265,65 @@ public interface ItemFactory { @NotNull ItemStack ensureServerConversions(@NotNull ItemStack item); // Paper end - ensure server conversions API diff --git a/patches/api/0227-More-lightning-API.patch b/patches/api/0227-More-lightning-API.patch index 4197f480bf90..c4924dcdf224 100644 --- a/patches/api/0227-More-lightning-API.patch +++ b/patches/api/0227-More-lightning-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] More lightning API diff --git a/src/main/java/org/bukkit/entity/LightningStrike.java b/src/main/java/org/bukkit/entity/LightningStrike.java -index 8dc433baba7060df5cfe6fc10210a5a27287987d..0b9e02bb88a1b1fe7378c11f1cca9c93b183f814 100644 +index 5afeb2f6c82e8f752229462c2d7846f6ae7a4b44..924ee7fcc3f87eb8553ef473a7d9671f0f469dd1 100644 --- a/src/main/java/org/bukkit/entity/LightningStrike.java +++ b/src/main/java/org/bukkit/entity/LightningStrike.java @@ -22,7 +22,9 @@ public interface LightningStrike extends Entity { @@ -28,7 +28,7 @@ index 8dc433baba7060df5cfe6fc10210a5a27287987d..0b9e02bb88a1b1fe7378c11f1cca9c93 public void setFlashes(int flashes); /** -@@ -111,4 +115,42 @@ public interface LightningStrike extends Entity { +@@ -110,4 +114,42 @@ public interface LightningStrike extends Entity { @Deprecated // Paper Spigot spigot(); // Spigot end diff --git a/patches/api/0355-Add-enchantWithLevels-API.patch b/patches/api/0355-Add-enchantWithLevels-API.patch index af548612d56a..8f20c5121ed1 100644 --- a/patches/api/0355-Add-enchantWithLevels-API.patch +++ b/patches/api/0355-Add-enchantWithLevels-API.patch @@ -7,13 +7,13 @@ Deprecate upstream's newer and poorly implemented similar API. diff --git a/src/main/java/org/bukkit/inventory/ItemFactory.java b/src/main/java/org/bukkit/inventory/ItemFactory.java -index 8c248dac47464757e013c25393fe9bf604ded7c2..0217f98a74140bbae454d467de27c12b6060ca75 100644 +index 198eebd45a2efa6986a8f4b613424eb8b6d3a039..f680545b6b59bf8d2ad154b0472dda4cba42a162 100644 --- a/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/src/main/java/org/bukkit/inventory/ItemFactory.java @@ -185,8 +185,11 @@ public interface ItemFactory { * @param level the level to use, which is the level in the enchantment table * @param allowTreasures allows treasure enchants, e.g. mending, if true. - * @return the modified ItemStack, or a copy if the ItemStack cannot be enchanted directly + * @return a new ItemStack containing the result of the Enchantment + * @deprecated use {@link #enchantWithLevels(ItemStack, int, boolean, java.util.Random)}. This method's implementation is poorly + * designed and was originally broken. */ @@ -22,10 +22,10 @@ index 8c248dac47464757e013c25393fe9bf604ded7c2..0217f98a74140bbae454d467de27c12b ItemStack enchantItem(@NotNull final Entity entity, @NotNull final ItemStack item, final int level, final boolean allowTreasures); /** -@@ -200,8 +203,11 @@ public interface ItemFactory { +@@ -199,8 +202,11 @@ public interface ItemFactory { + * @param level the level to use, which is the level in the enchantment table * @param allowTreasures allow the treasure enchants, e.g. mending, if true. - * @return the modified ItemStack, or a copy if the ItemStack cannot be - * enchanted directly + * @return a new ItemStack containing the result of the Enchantment + * @deprecated use {@link #enchantWithLevels(ItemStack, int, boolean, java.util.Random)}. This method's implementation is poorly + * designed and was originally broken. */ @@ -34,10 +34,10 @@ index 8c248dac47464757e013c25393fe9bf604ded7c2..0217f98a74140bbae454d467de27c12b ItemStack enchantItem(@NotNull final World world, @NotNull final ItemStack item, final int level, final boolean allowTreasures); /** -@@ -214,8 +220,11 @@ public interface ItemFactory { +@@ -212,8 +218,11 @@ public interface ItemFactory { + * @param level the level to use, which is the level in the enchantment table * @param allowTreasures allow treasure enchantments, e.g. mending, if true. - * @return the modified ItemStack, or a copy if the ItemStack cannot be - * enchanted directly + * @return a new ItemStack containing the result of the Enchantment + * @deprecated use {@link #enchantWithLevels(ItemStack, int, boolean, java.util.Random)}. This method's implementation is poorly + * designed and was originally broken. */ @@ -46,7 +46,7 @@ index 8c248dac47464757e013c25393fe9bf604ded7c2..0217f98a74140bbae454d467de27c12b ItemStack enchantItem(@NotNull final ItemStack item, final int level, final boolean allowTreasures); // Paper start - Adventure -@@ -328,4 +337,22 @@ public interface ItemFactory { +@@ -326,4 +335,22 @@ public interface ItemFactory { @Deprecated net.md_5.bungee.api.chat.hover.content.Content hoverContentOf(@NotNull org.bukkit.entity.Entity entity, @NotNull net.md_5.bungee.api.chat.BaseComponent[] customName); // Paper end - bungee hover events diff --git a/patches/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch index a7d8619191b1..1b657abc0b16 100644 --- a/patches/server/0001-Setup-Gradle-project.patch +++ b/patches/server/0001-Setup-Gradle-project.patch @@ -28,7 +28,7 @@ index 37dab9e868dbfb019c271a547d975a48ad1cb571..3811c0d849a3eb028ed1a6b7a2d4747f +/.factorypath diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 -index 0000000000000000000000000000000000000000..700ec4dda905cee41ae3fe2a420d8c6db64a13e8 +index 0000000000000000000000000000000000000000..09bffd973b184c40cce29d81430700ee4065555f --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,140 @@ @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..700ec4dda905cee41ae3fe2a420d8c6d + implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") { + exclude(group = "org.apache.logging.log4j", module = "log4j-api") + } -+ implementation("org.ow2.asm:asm:9.5") ++ implementation("org.ow2.asm:asm-commons:9.5") + implementation("commons-lang:commons-lang:2.6") + runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") + runtimeOnly("com.mysql:mysql-connector-j:8.2.0") @@ -174,10 +174,10 @@ index 0000000000000000000000000000000000000000..700ec4dda905cee41ae3fe2a420d8c6d +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 -index 123a4526359c53823898b743d9233c22ce6a8989..0000000000000000000000000000000000000000 +index d18fdadf925df41f04941dcc7eecdd3cadf5364a..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null -@@ -1,602 +0,0 @@ +@@ -1,608 +0,0 @@ - - 4.0.0 @@ -244,6 +244,12 @@ index 123a4526359c53823898b743d9233c22ce6a8989..00000000000000000000000000000000 - 9.5 - compile -
+- +- org.ow2.asm +- asm-commons +- 9.5 +- compile +- - - - com.github.oshi diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch index 87bae9ad993b..facc352dca56 100644 --- a/patches/server/0003-Build-system-changes.patch +++ b/patches/server/0003-Build-system-changes.patch @@ -9,10 +9,10 @@ public net.minecraft.server.packs.VanillaPackResourcesBuilder safeGetPath(Ljava/ Co-authored-by: Jake Potrebic diff --git a/build.gradle.kts b/build.gradle.kts -index 700ec4dda905cee41ae3fe2a420d8c6db64a13e8..14eae4cf079a384691c72c2f70ba627bddb0b2b1 100644 +index 09bffd973b184c40cce29d81430700ee4065555f..e7fa464573909d4c3d649ebb5f40ef54055e09a8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -9,10 +9,9 @@ plugins { +@@ -9,9 +9,7 @@ plugins { dependencies { implementation(project(":paper-api")) implementation("jline:jline:2.12.1") @@ -20,12 +20,10 @@ index 700ec4dda905cee41ae3fe2a420d8c6db64a13e8..14eae4cf079a384691c72c2f70ba627b - exclude(group = "org.apache.logging.log4j", module = "log4j-api") - } + implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion - implementation("org.ow2.asm:asm:9.5") -+ implementation("org.ow2.asm:asm-commons:9.5") // Paper - ASM event executor generation + implementation("org.ow2.asm:asm-commons:9.5") implementation("commons-lang:commons-lang:2.6") runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") - runtimeOnly("com.mysql:mysql-connector-j:8.2.0") -@@ -35,6 +34,7 @@ tasks.jar { +@@ -35,6 +33,7 @@ tasks.jar { val gitHash = git("rev-parse", "--short=7", "HEAD").getText().trim() val implementationVersion = System.getenv("BUILD_NUMBER") ?: "\"$gitHash\"" val date = git("show", "-s", "--format=%ci", gitHash).getText().trim() // Paper @@ -33,7 +31,7 @@ index 700ec4dda905cee41ae3fe2a420d8c6db64a13e8..14eae4cf079a384691c72c2f70ba627b attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", -@@ -43,6 +43,9 @@ tasks.jar { +@@ -43,6 +42,9 @@ tasks.jar { "Specification-Title" to "Bukkit", "Specification-Version" to project.version, "Specification-Vendor" to "Bukkit Team", @@ -43,7 +41,7 @@ index 700ec4dda905cee41ae3fe2a420d8c6db64a13e8..14eae4cf079a384691c72c2f70ba627b ) for (tld in setOf("net", "com", "org")) { attributes("$tld/bukkit", "Sealed" to true) -@@ -50,6 +53,11 @@ tasks.jar { +@@ -50,6 +52,11 @@ tasks.jar { } } @@ -55,7 +53,7 @@ index 700ec4dda905cee41ae3fe2a420d8c6db64a13e8..14eae4cf079a384691c72c2f70ba627b publishing { publications.create("maven") { artifact(tasks.shadowJar) -@@ -76,6 +84,17 @@ tasks.shadowJar { +@@ -76,6 +83,17 @@ tasks.shadowJar { } } @@ -73,7 +71,7 @@ index 700ec4dda905cee41ae3fe2a420d8c6db64a13e8..14eae4cf079a384691c72c2f70ba627b tasks.test { exclude("org/bukkit/craftbukkit/inventory/ItemStack*Test.class") useJUnitPlatform() -@@ -134,7 +153,14 @@ tasks.registerRunTask("runReobf") { +@@ -134,7 +152,14 @@ tasks.registerRunTask("runReobf") { classpath(runtimeClasspathWithoutVanillaServer) } diff --git a/patches/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch index 53e097733fb9..f236e6220f50 100644 --- a/patches/server/0004-Test-changes.patch +++ b/patches/server/0004-Test-changes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Test changes diff --git a/build.gradle.kts b/build.gradle.kts -index f83cda5b820ebb3dcbc3a39059579ba9487586e8..ef91080dc7123677190839b057c3458c4d5b9f32 100644 +index e7fa464573909d4c3d649ebb5f40ef54055e09a8..2df1cae62cff433a7f3f55f561f70719bb6a745b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -58,6 +58,12 @@ tasks.compileJava { +@@ -57,6 +57,12 @@ tasks.compileJava { options.setIncremental(false) } diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index 8106551cac04..d94619106bd2 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -15,13 +15,13 @@ public net.minecraft.server.dedicated.DedicatedServerProperties reload(Lnet/mine public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES diff --git a/build.gradle.kts b/build.gradle.kts -index 6049006d0676838a3330903e587c35643caa7caf..89064b339ce27a09ad546c62a36459534d138c29 100644 +index 2df1cae62cff433a7f3f55f561f70719bb6a745b..65e9d5918d46b123fb4f8122344a7d3863aec758 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -12,6 +12,7 @@ dependencies { +@@ -11,6 +11,7 @@ dependencies { + implementation("jline:jline:2.12.1") implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion - implementation("org.ow2.asm:asm:9.5") - implementation("org.ow2.asm:asm-commons:9.5") // Paper - ASM event executor generation + implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files implementation("commons-lang:commons-lang:2.6") runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") @@ -4838,7 +4838,7 @@ index 6b0a1ff870e013a83f7922021ab296bb1c716079..403c57fc683bb0497602e1a9ec7b81b2 String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName); LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath()); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8cc3fd73eaa41b87c63cf26e299affca16f20d87..7193029f1f8b5db7d94306e7dd07c5053795533c 100644 +index dafeae664880f6da2f1aa0d9b4fbd743ed9b5572..15bdddae68db770690ddfcb19c7ecdbedbfa8cb7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -295,6 +295,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 92cb1c23f2ef95f9be6c688146ee81aae5ac101c..9cf839be15126444d4d2ffdb7faa637859941d6b 100644 +index 674c996af91de91ee6302cc67334b836ea4fa4de..93867b8883c6f5d5086e8fdc153e6d7c1e5d9fec 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -296,7 +296,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -84,10 +84,10 @@ index 809fdf2da78293391aa5c60c04f4ad652b152eec..955b0abd4019fc45df84719eee6bf413 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 468f4bb6d65a1608782e11fd91462ac50778ae3f..0a39f95c77f0a2015200bb95b17eee9cbe95c416 100644 +index b5256eefb64808ae15bd622a8eccbe13454b4564..82d5c749a70f7a808c073263e861e09913c529d4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2455,7 +2455,13 @@ public final class CraftServer implements Server { +@@ -2454,7 +2454,13 @@ public final class CraftServer implements Server { Preconditions.checkArgument(key != null, "NamespacedKey key cannot be null"); LootDataManager registry = this.getServer().getLootData(); diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index 555936c837f9..e7930bb85b87 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -6051,7 +6051,7 @@ index 44cac39893eb968aa8ea21ee571c0dcb866ce06c..5151d68ba6ec72a7124f298253c5f0af + } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fb9f70b08e96ba4de52dca717ee245c405bf06e5..d4fb6d031acbb009fcb600718a16ac0b5437d88e 100644 +index 650bf3483414751fbda7bff584af55df49cef22d..0c77b4b201f6586b4d143ce2c3e710bf9d276a20 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -296,6 +296,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> 4, (int) Math.floor(this.getZ()) >> 4); } // CraftBukkit end @@ -7795,7 +7795,7 @@ index 98836000cbca2a21649cb8f2a466986373405ea1..bbbf6dd8e566ecdca8794e3b03765fe7 return false; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e124f481304bf65eb5b110db41005fa0cb69d835..8bc43dde03f461d9f7470c521f47e959d07cde67 100644 +index 16785a8dab5a2e786e17db049c027ed1c13f5ef6..9bd43d8859874c4d499f9b8d5ae6e08a23e0d4f2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -245,8 +245,8 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -7818,7 +7818,7 @@ index e124f481304bf65eb5b110db41005fa0cb69d835..8bc43dde03f461d9f7470c521f47e959 if (playerChunk == null) return false; playerChunk.getTickingChunkFuture().thenAccept(either -> { -@@ -2027,4 +2027,32 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2018,4 +2018,32 @@ public class CraftWorld extends CraftRegionAccessor implements World { return this.spigot; } // Spigot end @@ -7894,7 +7894,7 @@ index 70165d287156f46b793eb23dd30b601289c0ffb1..758bf988432bb34aad9386e3f4e8bba6 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 1938288a019cd0815bf944868ee4b9a345703b4e..7278ac809eff364e8b838d63a2ec1291493869f8 100644 +index 97c8723d19233fb0a12e446594b18c50f34f11f1..cba729914a3adaee2507e2916a4cfb585869746d 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -23,6 +23,16 @@ import org.bukkit.material.MaterialData; @@ -8276,7 +8276,7 @@ index 96c4f7aed548a181f6b1487e58dcf157bae52daa..837e3d6ee71566b5a6f37a4943829133 public void clear() { // Create new array to reset memory usage to initial capacity diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java -index d10b1d3a134e11fa8417fa3c845f088d8fc1f71c..1d066ce7dcf5f548c2a34d308d4422ab4fd02e5a 100644 +index df29015e3d5ca49297fe87090fd6446962e59adb..e6e070db9a6ee78e65dbff6f18cb5c8784202b9f 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java @@ -118,7 +118,11 @@ public class SpigotConfig diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index 59f67557274f..93b956b36b45 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -2648,7 +2648,7 @@ index a5578cbce2d1d39ba3315e53425d5323e6823a65..7a036c08fa67504d06c8f72a32c22814 @Override diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d4fb6d031acbb009fcb600718a16ac0b5437d88e..47f01de166a4048824f3075deb596084b7d42978 100644 +index 0c77b4b201f6586b4d143ce2c3e710bf9d276a20..3691fd58c7baf98b15c50fa4dacf3a35f4f9b4b8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -191,6 +191,7 @@ import org.bukkit.craftbukkit.SpigotTimings; // Spigot @@ -2669,7 +2669,7 @@ index d4fb6d031acbb009fcb600718a16ac0b5437d88e..47f01de166a4048824f3075deb596084 private int playerIdleTimeout; private final long[] tickTimesNanos; private long aggregatedTickTimesNanos; -@@ -1317,7 +1317,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop waitable = new Waitable() { - @Override -@@ -296,12 +296,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, - - ServerLoginPacketListenerImpl.this.server.processQueue.add(waitable); - if (waitable.get() != PlayerPreLoginEvent.Result.ALLOWED) { -- ServerLoginPacketListenerImpl.this.disconnect(event.getKickMessage()); -+ ServerLoginPacketListenerImpl.this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.kickMessage())); // Paper - Adventure - return; - } - } else { - if (asyncEvent.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) { -- ServerLoginPacketListenerImpl.this.disconnect(asyncEvent.getKickMessage()); -+ ServerLoginPacketListenerImpl.this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(asyncEvent.kickMessage())); // Paper - Adventure - return; - } - } +@@ -292,7 +292,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + if (PlayerPreLoginEvent.getHandlerList().getRegisteredListeners().length != 0) { + final PlayerPreLoginEvent event = new PlayerPreLoginEvent(playerName, address, uniqueId); + if (asyncEvent.getResult() != PlayerPreLoginEvent.Result.ALLOWED) { +- event.disallow(asyncEvent.getResult(), asyncEvent.getKickMessage()); ++ event.disallow(asyncEvent.getResult(), asyncEvent.kickMessage()); // Paper - Adventure + } + Waitable waitable = new Waitable() { + @Override +@@ -304,12 +304,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + + ServerLoginPacketListenerImpl.this.server.processQueue.add(waitable); + if (waitable.get() != PlayerPreLoginEvent.Result.ALLOWED) { +- this.disconnect(event.getKickMessage()); ++ this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.kickMessage())); // Paper - Adventure + return; + } + } else { + if (asyncEvent.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) { +- this.disconnect(asyncEvent.getKickMessage()); ++ this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(asyncEvent.kickMessage())); // Paper - Adventure + return; + } + } diff --git a/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java index b23480fab4a7cba922b36cb31d4f77f720bf3aac..7dd3dfd2ccc820d45849a89707239b7dbcaf44c3 100644 --- a/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java @@ -3354,7 +3354,7 @@ index 23bdb77690ba15bcbbfb0c70af23336d08ac7752..8f144a357174bbe096ac9b38a5e67a61 } collection = icons; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0a39f95c77f0a2015200bb95b17eee9cbe95c416..4e155510337d73cd65f722c1360d87d14312b874 100644 +index 82d5c749a70f7a808c073263e861e09913c529d4..a3ef246b6765f93605bb3af6525adff01e71dd46 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -608,8 +608,10 @@ public final class CraftServer implements Server { @@ -3422,7 +3422,7 @@ index 0a39f95c77f0a2015200bb95b17eee9cbe95c416..4e155510337d73cd65f722c1360d87d1 for (CommandSender recipient : recipients) { recipient.sendMessage(message); -@@ -2015,6 +2038,14 @@ public final class CraftServer implements Server { +@@ -2014,6 +2037,14 @@ public final class CraftServer implements Server { return CraftInventoryCreator.INSTANCE.createInventory(owner, type); } @@ -3437,7 +3437,7 @@ index 0a39f95c77f0a2015200bb95b17eee9cbe95c416..4e155510337d73cd65f722c1360d87d1 @Override public Inventory createInventory(InventoryHolder owner, InventoryType type, String title) { Preconditions.checkArgument(type != null, "InventoryType cannot be null"); -@@ -2029,13 +2060,28 @@ public final class CraftServer implements Server { +@@ -2028,13 +2059,28 @@ public final class CraftServer implements Server { return CraftInventoryCreator.INSTANCE.createInventory(owner, size); } @@ -3466,7 +3466,7 @@ index 0a39f95c77f0a2015200bb95b17eee9cbe95c416..4e155510337d73cd65f722c1360d87d1 public Merchant createMerchant(String title) { return new CraftMerchantCustom(title == null ? InventoryType.MERCHANT.getDefaultTitle() : title); } -@@ -2100,6 +2146,17 @@ public final class CraftServer implements Server { +@@ -2099,6 +2145,17 @@ public final class CraftServer implements Server { return Thread.currentThread().equals(this.console.serverThread) || this.console.hasStopped() || !org.spigotmc.AsyncCatcher.enabled; // All bets are off if we have shut down (e.g. due to watchdog) } @@ -3484,7 +3484,7 @@ index 0a39f95c77f0a2015200bb95b17eee9cbe95c416..4e155510337d73cd65f722c1360d87d1 @Override public String getMotd() { return this.console.getMotd(); -@@ -2534,4 +2591,57 @@ public final class CraftServer implements Server { +@@ -2533,4 +2590,57 @@ public final class CraftServer implements Server { return this.spigot; } // Spigot end @@ -3543,7 +3543,7 @@ index 0a39f95c77f0a2015200bb95b17eee9cbe95c416..4e155510337d73cd65f722c1360d87d1 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 8bc43dde03f461d9f7470c521f47e959d07cde67..d98020ea7f56418fdab03c7e7772ce062672b728 100644 +index 9bd43d8859874c4d499f9b8d5ae6e08a23e0d4f2..68a7db9c840f101950435b386058f4cf409bfc05 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -155,6 +155,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -3597,7 +3597,7 @@ index 8bc43dde03f461d9f7470c521f47e959d07cde67..d98020ea7f56418fdab03c7e7772ce06 private static Map> gamerules; public static synchronized Map> getGameRulesNMS() { -@@ -2054,5 +2091,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2045,5 +2082,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { return ret; } @@ -4085,7 +4085,7 @@ index 758bf988432bb34aad9386e3f4e8bba68891660b..e269812e6193492afc3f25612edafa1a @Override public boolean isPermissionSet(String name) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index a93534f9e855df5ee10b90fb2126870a30f23421..233dd760713a48770178c5fb532f86aee52ad0aa 100644 +index 4a70c2dfb3606bb67b80e99cae316906385f7ff3..52222f15399f2e1828f93b0f69e34157e3abff23 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -320,9 +320,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -4670,7 +4670,7 @@ index 5725b0281ac53a2354b233223259d6784353bc6e..9ef939b76d06874b856e0c850addb364 @Override public int getLineWidth() { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 97cb754bcac8b1c511c59f9cd1c007749d8b7965..756fc13c34cceeab054ee8e9678a16a56cc3f8ea 100644 +index ec1c0080642914ceeb931ee6ebdab31c2c6f1f59..a0dc52c805a82e267b66502a480cf76bc82a20d4 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -904,7 +904,7 @@ public class CraftEventFactory { @@ -4814,12 +4814,12 @@ index 4dd9a80af9901287ab6740b072f2b89678c3d0cb..b2586684295b295a3196a2a9cf724cec public String getTitle() { return this.title; diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 293c1b23ea78891a08830887ba18b2f597d65c01..4c5ef6472947baf2ca3cc294eed77ceebd6cd5af 100644 +index d2c54674711f5d4b0273de628cc6d244969de057..0875dfe89644f5f54d004488ed980092b31c6416 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -498,4 +498,17 @@ public final class CraftItemFactory implements ItemFactory { - EnchantmentHelper.enchantItem(source, craft.handle, level, allowTreasures); - return craft; +@@ -492,4 +492,17 @@ public final class CraftItemFactory implements ItemFactory { + CraftItemStack craft = (CraftItemStack) itemStack; + return CraftItemStack.asCraftMirror(EnchantmentHelper.enchantItem(source, craft.handle, level, allowTreasures)); } + + // Paper start - Adventure @@ -5092,10 +5092,10 @@ index cc588fb207062829637adad79129ca91950496cb..8b27ca7606869798486c3afd03e86205 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index adc67d73681ad5486c266e2a464ae2a1385ba7f4..fbde42a814f846ce8c9df6ea621f10610d9322b3 100644 +index 92e73e0a41a7f63c51e426534ecb2604d9fca958..fcef34d7c88f7f8e21f9789ce3d0962e64d2f092 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -750,6 +750,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -751,6 +751,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return !(this.hasDisplayName() || this.hasLocalizedName() || this.hasEnchants() || (this.lore != null) || this.hasCustomModelData() || this.hasBlockData() || this.hasRepairCost() || !this.unhandledTags.isEmpty() || !this.persistentDataContainer.isEmpty() || this.hideFlag != 0 || this.isUnbreakable() || this.hasDamage() || this.hasAttributeModifiers()); } @@ -5114,7 +5114,7 @@ index adc67d73681ad5486c266e2a464ae2a1385ba7f4..fbde42a814f846ce8c9df6ea621f1061 @Override public String getDisplayName() { return CraftChatMessage.fromJSONComponent(this.displayName); -@@ -785,6 +797,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -786,6 +798,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return this.lore != null && !this.lore.isEmpty(); } diff --git a/patches/server/0011-Paper-command.patch b/patches/server/0011-Paper-command.patch index 85195efecb4d..e9db4d01db42 100644 --- a/patches/server/0011-Paper-command.patch +++ b/patches/server/0011-Paper-command.patch @@ -617,7 +617,7 @@ index c56c7293261ec2601ab02d051b37e820f023f0ff..faab5e8c952a2af6a286043617cded4e this.setPvpAllowed(dedicatedserverproperties.pvp); this.setFlightAllowed(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4e155510337d73cd65f722c1360d87d14312b874..cded844ac9fb2167fd0c751d47439d6597e34d05 100644 +index a3ef246b6765f93605bb3af6525adff01e71dd46..606aa8bc3c1dbbe7c20e702042e7ff2335544398 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -939,6 +939,7 @@ public final class CraftServer implements Server { @@ -628,7 +628,7 @@ index 4e155510337d73cd65f722c1360d87d14312b874..cded844ac9fb2167fd0c751d47439d65 this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -2635,6 +2636,34 @@ public final class CraftServer implements Server { +@@ -2634,6 +2635,34 @@ public final class CraftServer implements Server { // Paper end // Paper start diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch index 839ff003213b..cdefaab7314a 100644 --- a/patches/server/0014-Timings-v2.patch +++ b/patches/server/0014-Timings-v2.patch @@ -712,7 +712,7 @@ index daedf825e68655492f5ab776bc206a5eb87c0170..7de24c39b460e43d27839b3821e67213 } catch (Exception exception) { label25: diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 47f01de166a4048824f3075deb596084b7d42978..57e15d66bf59c23d9dc87aa811ff6c3c2084a4c4 100644 +index 3691fd58c7baf98b15c50fa4dacf3a35f4f9b4b8..069af49a03e0d313499f8d1815c8299ec034de61 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -186,7 +186,7 @@ import org.bukkit.craftbukkit.Main; @@ -732,7 +732,7 @@ index 47f01de166a4048824f3075deb596084b7d42978..57e15d66bf59c23d9dc87aa811ff6c3c // CraftBukkit start if (this.server != null) { this.server.disablePlugins(); -@@ -1144,9 +1145,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && this.ticksUntilAutosave <= 0) { this.ticksUntilAutosave = this.autosavePeriod; // CraftBukkit end @@ -806,7 +806,7 @@ index 47f01de166a4048824f3075deb596084b7d42978..57e15d66bf59c23d9dc87aa811ff6c3c this.profiler.push("tallying"); long j = Util.getNanos() - i; int k = this.tickCount % 100; -@@ -1283,8 +1307,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { entityplayer.connection.suspendFlushing(); }); @@ -850,7 +850,7 @@ index 47f01de166a4048824f3075deb596084b7d42978..57e15d66bf59c23d9dc87aa811ff6c3c // Send time updates to everyone, it will get the right time from the world the player is in. if (this.tickCount % 20 == 0) { for (int i = 0; i < this.getPlayerList().players.size(); ++i) { -@@ -1373,7 +1396,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); this.passengers = ImmutableList.of(); -@@ -2293,11 +2345,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2295,11 +2347,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return InteractionResult.PASS; } @@ -21076,7 +21076,7 @@ index b6a3c75b84d9f768afee33aa0f226207b307c1c0..2ec2b1d9d987c7f31c685aec3d3c87f4 List getEntities(EntityTypeTest filter, AABB box, Predicate predicate); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 6e3bdcea55490b23066ab90966698e59847cdffa..edf40e3fea58d0978311dd9e2d14e99bc7036593 100644 +index 6dbc4c74b4d6b8e6c4763366e70ca9292b4a25d5..796c7ecedbf7a82697598918d484d80635fb16a8 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -456,6 +456,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -22672,7 +22672,7 @@ index b1aeb021e53a233bfb0439d38f1a889ed6fc301d..7687a81bfa420e8377308fea3d673814 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 491f59cdf41b686b7d03533c8d34cf367d6c658e..611f3cb97e801e8ffff7a41cafc1d63d71ff841c 100644 +index f7ff043c99268d5d8d139e2a4d8cd0817b7bb96b..b41a5263cef159f90a60c62561753482c3f5eeb7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1195,7 +1195,7 @@ public final class CraftServer implements Server { @@ -22693,7 +22693,7 @@ index 491f59cdf41b686b7d03533c8d34cf367d6c658e..611f3cb97e801e8ffff7a41cafc1d63d handle.convertable.close(); } catch (Exception ex) { this.getLogger().log(Level.SEVERE, null, ex); -@@ -2131,7 +2131,7 @@ public final class CraftServer implements Server { +@@ -2130,7 +2130,7 @@ public final class CraftServer implements Server { @Override public boolean isPrimaryThread() { @@ -22703,7 +22703,7 @@ index 491f59cdf41b686b7d03533c8d34cf367d6c658e..611f3cb97e801e8ffff7a41cafc1d63d // Paper start - Adventure diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d98020ea7f56418fdab03c7e7772ce062672b728..814842871ea8e2104a0842919757cfbccabadc30 100644 +index 68a7db9c840f101950435b386058f4cf409bfc05..3c7fdf150f39a75794a6927bd545c3eb9c480d6f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -325,10 +325,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch index 797efac18405..4b0e79f2b2ae 100644 --- a/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch +++ b/patches/server/0027-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b608788552d380328b729ce6164e0fc60cf3fefd..457b0f1f469436f6caa7473d91f906f1a61d6c74 100644 +index cfab6bdf3c3eaf456b60653377df05fcf74c53e3..0c3a23502ab6cb9e1f027b1050dd6849ceb181d9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1559,7 +1559,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9f3598371c854ec74f3b5752c9779d6c0d99ec39..450a55fd1b01ac67d911d152a04a3dee3aa0a2e9 100644 +index 37eab94ce7e4ba01c2c8a5fb15ef1f6ef314ccc9..16fa26878fc7bcf5d22d779ce7b37a59582ba033 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -720,7 +720,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -722,7 +722,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void checkBelowWorld() { diff --git a/patches/server/0040-Optimize-explosions.patch b/patches/server/0040-Optimize-explosions.patch index 3dcb4f4ca319..bfe5d9064995 100644 --- a/patches/server/0040-Optimize-explosions.patch +++ b/patches/server/0040-Optimize-explosions.patch @@ -10,10 +10,10 @@ This patch adds a per-tick cache that is used for storing and retrieving an entity's exposure during an explosion. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2f04f10f5819be04b98ac0b52a2d7f4dfa525cea..e0a2759169f41b68b8e1bc48f0b323c0a4bc1fed 100644 +index 21fc0ce46567d7bd7f24759779f8586efe72fc9f..8072eedb5bc699aa5b04fbca39f4db30534cde4b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1492,6 +1492,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getEnchantments(net.minecraft.world.item.ItemStack item) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index fbde42a814f846ce8c9df6ea621f10610d9322b3..2a63d2af178f8e8f12d6a57226257da41c3dac7c 100644 +index fcef34d7c88f7f8e21f9789ce3d0962e64d2f092..9dbadab7134c7bb56572cf8c89148b6c743e9bcd 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList; @@ -195,7 +195,7 @@ index fbde42a814f846ce8c9df6ea621f10610d9322b3..2a63d2af178f8e8f12d6a57226257da4 import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nonnull; -@@ -276,7 +279,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -277,7 +280,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { private List lore; // null and empty are two different states internally private Integer customModelData; private CompoundTag blockData; @@ -204,7 +204,7 @@ index fbde42a814f846ce8c9df6ea621f10610d9322b3..2a63d2af178f8e8f12d6a57226257da4 private Multimap attributeModifiers; private int repairCost; private int hideFlag; -@@ -287,7 +290,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -288,7 +291,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); private CompoundTag internalTag; @@ -213,7 +213,7 @@ index fbde42a814f846ce8c9df6ea621f10610d9322b3..2a63d2af178f8e8f12d6a57226257da4 private CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftMetaItem.DATA_TYPE_REGISTRY); private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only -@@ -308,7 +311,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -309,7 +312,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { this.blockData = meta.blockData; if (meta.enchantments != null) { @@ -222,7 +222,7 @@ index fbde42a814f846ce8c9df6ea621f10610d9322b3..2a63d2af178f8e8f12d6a57226257da4 } if (meta.hasAttributeModifiers()) { -@@ -391,13 +394,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -392,13 +395,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } @@ -238,7 +238,7 @@ index fbde42a814f846ce8c9df6ea621f10610d9322b3..2a63d2af178f8e8f12d6a57226257da4 for (int i = 0; i < ench.size(); i++) { String id = ((CompoundTag) ench.get(i)).getString(CraftMetaItem.ENCHANTMENTS_ID.NBT); -@@ -550,13 +553,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -551,13 +554,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } @@ -254,7 +254,7 @@ index fbde42a814f846ce8c9df6ea621f10610d9322b3..2a63d2af178f8e8f12d6a57226257da4 for (Map.Entry entry : ench.entrySet()) { // Doctor older enchants String enchantKey = entry.getKey().toString(); -@@ -832,14 +835,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -833,14 +836,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Override public Map getEnchants() { @@ -271,7 +271,7 @@ index fbde42a814f846ce8c9df6ea621f10610d9322b3..2a63d2af178f8e8f12d6a57226257da4 } if (ignoreRestrictions || level >= ench.getStartLevel() && level <= ench.getMaxLevel()) { -@@ -1226,7 +1229,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1227,7 +1230,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { clone.customModelData = this.customModelData; clone.blockData = this.blockData; if (this.enchantments != null) { @@ -280,7 +280,7 @@ index fbde42a814f846ce8c9df6ea621f10610d9322b3..2a63d2af178f8e8f12d6a57226257da4 } if (this.hasAttributeModifiers()) { clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers); -@@ -1468,4 +1471,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1469,4 +1472,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { return CraftMetaItem.HANDLED_TAGS; } } diff --git a/patches/server/0074-Use-a-Shared-Random-for-Entities.patch b/patches/server/0074-Use-a-Shared-Random-for-Entities.patch index ff81d34d340e..0c3d54988f32 100644 --- a/patches/server/0074-Use-a-Shared-Random-for-Entities.patch +++ b/patches/server/0074-Use-a-Shared-Random-for-Entities.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Use a Shared Random for Entities Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 08e3e87b2aa9d586cd1b441e7314d0775f7537c8..cc762d3eb68d2f8bf9529ecf07adfc343953c7a2 100644 +index 76dddcd1a339842e6214bb1e4b813a858dbee63b..39ef390739c4bde28c87c1b83610602a86afd6ad 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -163,6 +163,79 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -165,6 +165,79 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return tag.contains("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level; } @@ -89,7 +89,7 @@ index 08e3e87b2aa9d586cd1b441e7314d0775f7537c8..cc762d3eb68d2f8bf9529ecf07adfc34 private CraftEntity bukkitEntity; public CraftEntity getBukkitEntity() { -@@ -411,7 +484,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -413,7 +486,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.bb = Entity.INITIAL_AABB; this.stuckSpeedMultiplier = Vec3.ZERO; this.nextStep = 1.0F; diff --git a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch index db341b55c9ac..ff6fee931863 100644 --- a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch +++ b/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener Saves on some object allocation and processing when no plugin listens to this diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e0a2759169f41b68b8e1bc48f0b323c0a4bc1fed..180bcaa2b5a74c527d8556301fb4a8161c76a64c 100644 +index 8072eedb5bc699aa5b04fbca39f4db30534cde4b..62a40958f3cd1fa42073071e23e4307beccad722 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1453,6 +1453,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 148d1a15e861a26c8fd49204f9bd9821f3cde2fd..f95d4fc714b98a86d732d16f0b783cd943ce0c15 100644 +index 2fe69d7f530adaba026d3903f109987ac8d7da8d..404193d1a674ae8e92b4fcf5efdec6052fff21b4 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -30,7 +30,7 @@ index 148d1a15e861a26c8fd49204f9bd9821f3cde2fd..f95d4fc714b98a86d732d16f0b783cd9 @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index dce30af3c82d6fe13fa7edec451aedc6d1db9a34..866fa3107c52a3a6c8163140b0f90fb1f6520083 100644 +index 0af602c33d9940a0db68b2245e8caed2d78518fe..cd3a99585a471981b9fa1f614ddddfce570ee0e7 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -583,7 +583,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0093-remove-null-possibility-for-getServer-singleton.patch b/patches/server/0093-remove-null-possibility-for-getServer-singleton.patch index 72c4c385e4ce..b97780e69d33 100644 --- a/patches/server/0093-remove-null-possibility-for-getServer-singleton.patch +++ b/patches/server/0093-remove-null-possibility-for-getServer-singleton.patch @@ -6,7 +6,7 @@ Subject: [PATCH] remove null possibility for getServer singleton to stop IDE complaining about potential NPE diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 24f7ecc68c206346e4e2957bc27bf5579ba1b663..3ecb45c98bfbc189e8235e980b14ee6b11536cc5 100644 +index a5b20c68eef32aa2bafe23d7975c7d6e8a928319..bb964c3ca029a777d86c15251510d7cb13d2f82c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -190,6 +190,7 @@ import co.aikar.timings.MinecraftTimings; // Paper @@ -25,7 +25,7 @@ index 24f7ecc68c206346e4e2957bc27bf5579ba1b663..3ecb45c98bfbc189e8235e980b14ee6b this.metricsRecorder = InactiveMetricsRecorder.INSTANCE; this.profiler = this.metricsRecorder.getProfiler(); this.onMetricsRecordingStopped = (methodprofilerresults) -> { -@@ -2433,9 +2435,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/build.gradle.kts b/build.gradle.kts -index 89064b339ce27a09ad546c62a36459534d138c29..63ed761efdb11533905a8a44a7564d86c7e0bc90 100644 +index 65e9d5918d46b123fb4f8122344a7d3863aec758..7a3c96318f95fcd6cf6fd94415958382d1193ec6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,9 +6,30 @@ plugins { @@ -58,9 +58,9 @@ index 89064b339ce27a09ad546c62a36459534d138c29..63ed761efdb11533905a8a44a7564d86 + alsoShade(log4jPlugins.output) + // Paper end implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion - implementation("org.ow2.asm:asm:9.5") - implementation("org.ow2.asm:asm-commons:9.5") // Paper - ASM event executor generation -@@ -79,7 +100,7 @@ relocation { + implementation("org.ow2.asm:asm-commons:9.5") + implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files +@@ -78,7 +99,7 @@ relocation { } tasks.shadowJar { @@ -250,7 +250,7 @@ index 8323f135d6bf2e1f12525e05094ffa3f2420e7e1..a143ea1e58464a3122fbd8ccafe417bd } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 16979931782eb60c0bdd419e0b8ec061c0d826fb..efb45a794f6f99fafc63202fe88ade8a722ba14b 100644 +index 981a2927f0baa5146da732ffa8469d7a210e4170..eb443925f77aff634d4630089d7c2d096dfe8005 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -155,7 +155,7 @@ import org.slf4j.Logger; @@ -290,7 +290,7 @@ index 16979931782eb60c0bdd419e0b8ec061c0d826fb..efb45a794f6f99fafc63202fe88ade8a Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this)); // CraftBukkit end this.paperConfigurations = services.paperConfigurations(); // Paper - add paper configuration files -@@ -1178,7 +1182,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 61671ef718bd921ad0051f717a871d3db2ac5eab..a128040002fd9f297b9ea501af357c598cbe7af2 100644 +index 95df25f6c3ce3e945bca95bc5b5ab0c0863d94c1..9c0440a6e3768ca6300e128da7f1b11a96f10f91 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -688,12 +688,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -91,10 +91,10 @@ index 61671ef718bd921ad0051f717a871d3db2ac5eab..a128040002fd9f297b9ea501af357c59 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 078e9bd8d93e6f6d6b68841566a6ee5f27deb402..93f6b1e469d5fe240ebdba98f969cf9b3b987da9 100644 +index 11080e6dd4ae30e20a724cb62750f1bbd63323e8..d921903070fd03abf1db15d805caf5d6bda971a0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2228,7 +2228,7 @@ public final class CraftServer implements Server { +@@ -2227,7 +2227,7 @@ public final class CraftServer implements Server { offers = this.tabCompleteChat(player, message); } diff --git a/patches/server/0173-Add-ArmorStand-Item-Meta.patch b/patches/server/0173-Add-ArmorStand-Item-Meta.patch index d935a8709cf6..c71825588909 100644 --- a/patches/server/0173-Add-ArmorStand-Item-Meta.patch +++ b/patches/server/0173-Add-ArmorStand-Item-Meta.patch @@ -255,10 +255,10 @@ index b77f5832265be5aaf96d95fcac4737919720fa6e..e15723080445b09852512132039ca2cd + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 89dac1d16a90717e6a99d41e8ea04810f78fdee4..27b87d5bdbbbbcc24d4af52df664f51bd5c861ca 100644 +index 9dbadab7134c7bb56572cf8c89148b6c743e9bcd..ff199678850d848c5d2ce76270d674738eec58f7 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -1461,6 +1461,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1462,6 +1462,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { CraftMetaCrossbow.CHARGED.NBT, CraftMetaCrossbow.CHARGED_PROJECTILES.NBT, CraftMetaSuspiciousStew.EFFECTS.NBT, @@ -274,10 +274,10 @@ index 89dac1d16a90717e6a99d41e8ea04810f78fdee4..27b87d5bdbbbbcc24d4af52df664f51b CraftMetaCompass.LODESTONE_POS.NBT, CraftMetaCompass.LODESTONE_TRACKED.NBT, diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java -index ac3b9ab1f81ddb796bdffb26c00afe75ef1a606c..3effe3c3b7ad949bc786e1b6e560553f2ca3f233 100644 +index 78a2422d648fbcf0d456420d2124e03de6cfb8e0..652207b92ac20c1ba3d20939dc2bbee3c494bf5f 100644 --- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java +++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java -@@ -365,6 +365,7 @@ public class ItemMetaTest extends AbstractTestingBase { +@@ -364,6 +364,7 @@ public class ItemMetaTest extends AbstractTestingBase { final CraftMetaArmorStand meta = (CraftMetaArmorStand) cleanStack.getItemMeta(); meta.entityTag = new CompoundTag(); meta.entityTag.putBoolean("Small", true); diff --git a/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch b/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch index bbd18e10ce50..c3a21b7e2399 100644 --- a/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch +++ b/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch @@ -181,7 +181,7 @@ index 0000000000000000000000000000000000000000..6b0bdc266109cdfb874f08bf74323603 + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 721219807fd9abd12123cf0f3a0e3afd5839bf30..584dca7c8aa5fc3bc73101482acd6ad892019a3d 100644 +index eb443925f77aff634d4630089d7c2d096dfe8005..fa8905c2053d66cebfc8e8a4fad9d833b2ad05a3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,6 +3,9 @@ package net.minecraft.server; @@ -194,7 +194,7 @@ index 721219807fd9abd12123cf0f3a0e3afd5839bf30..584dca7c8aa5fc3bc73101482acd6ad8 import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -@@ -1430,7 +1433,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop This event is called when an entity receives knockback by another entity. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 451ba2db54dc1682924fa65283bc88687157322e..d47ada5544478dcfcb49f6b437e634105397fdfe 100644 +index d66d30a016ac04d5f051e59ca168a6c2bb8794ab..dd4afab77500277b7697ca988e34b526d28d97c0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1907,8 +1907,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1909,8 +1909,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void push(double deltaX, double deltaY, double deltaZ) { @@ -33,7 +33,7 @@ index 451ba2db54dc1682924fa65283bc88687157322e..d47ada5544478dcfcb49f6b437e63410 protected void markHurt() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2786b4322d32950153c489941e1aed7c4862e822..55a939c74dad301e866e0711d6ff8e0379bf73c6 100644 +index dff2427e32b92a6deca0df81d0820353c5fc242a..f17d6a208477daeb01b66b2894e871f4071cf3e8 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1513,7 +1513,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -122,7 +122,7 @@ index 29cfd065f246bbd3d3c2a5bbd32c3f4813a02951..03ec02f9a2fb5abb5387cd0d83c9481d } } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 2d8a8a9c8acfcac13e5a82cda9d7be59138b6407..d4832067f87491b8273b7957ce3eec1ad3ba9830 100644 +index f5ce6423b8146cc741023e15004fe9814a035da8..de27517e13ecb15865aaa83257eaffb41c3eecfc 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -458,7 +458,7 @@ public class EnderDragon extends Mob implements Enemy { diff --git a/patches/server/0210-RangedEntity-API.patch b/patches/server/0210-RangedEntity-API.patch index f20290a95018..5383dfd935cc 100644 --- a/patches/server/0210-RangedEntity-API.patch +++ b/patches/server/0210-RangedEntity-API.patch @@ -96,10 +96,10 @@ index dfd4cf1e613b7ccf3ad986f8e0d783593a411194..9986ac517e11b076a29a8c8e3f480ec2 public CraftLlama(CraftServer server, net.minecraft.world.entity.animal.horse.Llama entity) { super(server, entity); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java -index 83ab9f7c2bcd3e1bac0324030f182bc303e22cad..8b9695de6e3411cbcc2f97e4a4e243ec1d1dd076 100644 +index 9426395c17b6d2270f2227a8eaaee93d8f07cb2d..f5ecb8c1dc92e5a4b123effd2859123b17a586d3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java -@@ -12,7 +12,7 @@ import org.bukkit.craftbukkit.util.CraftMagicNumbers; +@@ -12,7 +12,7 @@ import org.bukkit.craftbukkit.inventory.CraftItemType; import org.bukkit.entity.Piglin; import org.bukkit.inventory.Inventory; diff --git a/patches/server/0216-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch b/patches/server/0216-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch index 9d489a6dd02e..50b3a6608f4c 100644 --- a/patches/server/0216-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch +++ b/patches/server/0216-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Use AsyncAppender to keep logging IO off main thread diff --git a/build.gradle.kts b/build.gradle.kts -index e2fec62f0da22fcae7533ede3a34f05807ded430..b2db0b51895200fc870e536ea97886db3d7a763c 100644 +index 38ded67b38bb5dc7c59eb610b81ac33d88d25dac..30edfbf16e7bed29b3261b51d9e4f3124beef026 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -37,6 +37,7 @@ dependencies { +@@ -36,6 +36,7 @@ dependencies { implementation("commons-lang:commons-lang:2.6") runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") runtimeOnly("com.mysql:mysql-connector-j:8.2.0") diff --git a/patches/server/0226-Don-t-call-getItemMeta-on-hasItemMeta.patch b/patches/server/0226-Don-t-call-getItemMeta-on-hasItemMeta.patch index 0bf50e2c9c46..1c42edda64ca 100644 --- a/patches/server/0226-Don-t-call-getItemMeta-on-hasItemMeta.patch +++ b/patches/server/0226-Don-t-call-getItemMeta-on-hasItemMeta.patch @@ -11,7 +11,7 @@ Returns true if getDamage() == 0 or has damage tag or other tag is set. Check the `ItemMetaTest#testTaggedButNotMeta` method to see how this method behaves. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index ae7c3ad0597e5115b43458a91765a176f2d80227..aab8eb7c96be6a2f157e971d9d494d2e01d3218c 100644 +index 07f011a968592ba5b38a0a2723189824ba5d0938..1478fb3e1f0f97423855db7e5c4618cc066efb6b 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -670,7 +670,7 @@ public final class CraftItemStack extends ItemStack { @@ -24,10 +24,10 @@ index ae7c3ad0597e5115b43458a91765a176f2d80227..aab8eb7c96be6a2f157e971d9d494d2e static boolean hasItemMeta(net.minecraft.world.item.ItemStack item) { diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java -index 3effe3c3b7ad949bc786e1b6e560553f2ca3f233..937ddd3a2b9e1df2c8835079923c339178f08459 100644 +index 652207b92ac20c1ba3d20939dc2bbee3c494bf5f..adb7c742e8fe3b8e0c2ecf63c627e7566285fd55 100644 --- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java +++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java -@@ -108,6 +108,34 @@ public class ItemMetaTest extends AbstractTestingBase { +@@ -107,6 +107,34 @@ public class ItemMetaTest extends AbstractTestingBase { assertThat(itemMeta.hasConflictingEnchant(null), is(false)); } diff --git a/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index dea8d1cfca79..67d062801883 100644 --- a/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -29,7 +29,7 @@ index c9e3e104cd051a38e367653dc6c4f969665fc250..45ee0cd242271883412284625230822d protected void tick() { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e91ce13c4dbea719e567018ace8908d2c7b51b30..ea3b3652a560318a581f251732f47ec0fceed693 100644 +index 536f1380ae3387ac4d062fe2f8b934a8d49905fb..1e10d55962a7221e197723eb42434be052a7661a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -222,6 +222,9 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -72,10 +72,10 @@ index e91ce13c4dbea719e567018ace8908d2c7b51b30..ea3b3652a560318a581f251732f47ec0 return false; } else { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 112f1d81ae21a28befbd4e09a40127a193796013..58e16b14548d5a8a476d3d71229627a83c59420e 100644 +index bebbbf9a0bca8ab94dd269d19ebf55622a3c2ef8..6d04954493680bc4fbad67ff2e43411f970f78f5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -239,6 +239,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -241,6 +241,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper private CraftEntity bukkitEntity; @@ -85,7 +85,7 @@ index 112f1d81ae21a28befbd4e09a40127a193796013..58e16b14548d5a8a476d3d71229627a8 if (this.bukkitEntity == null) { this.bukkitEntity = CraftEntity.getEntity(this.level.getCraftServer(), this); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 7f7e28808aaf5b858415532d85c246999bc71ed0..b4f7e73fa673006ad0f8ea5a8de5a825aa75e41c 100644 +index 71c2f082091f452cfc74557cd599cf7f080b889b..14c963d507173dae6015a0c81e3a690768012bed 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -153,6 +153,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0242-Optimize-CraftBlockData-Creation.patch b/patches/server/0242-Optimize-CraftBlockData-Creation.patch index a9c505dbc8b2..d8b3ca0f4c8b 100644 --- a/patches/server/0242-Optimize-CraftBlockData-Creation.patch +++ b/patches/server/0242-Optimize-CraftBlockData-Creation.patch @@ -26,10 +26,10 @@ index a009fca54665cbc3f11cad776256fbf1fbbb18c7..2c7d025b2af3a66772c3f39462048304 private boolean calculateSolid() { if (((Block) this.owner).properties.forceSolidOn) { diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index 02b10005e7c6ac735de932fd12cff5579939c4d7..cf379f7da8d8e6db0d74f1ca0e4b42e017a8191e 100644 +index 09b95423e66da487f48ee594ba682a4c92e347b5..85ee8a3d6db6610104f8a10d77d7cad5dc9b667e 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -@@ -569,7 +569,17 @@ public class CraftBlockData implements BlockData { +@@ -570,7 +570,17 @@ public class CraftBlockData implements BlockData { return craft; } diff --git a/patches/server/0253-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch b/patches/server/0253-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch index 9db5e18488d1..d92ecbd08c3a 100644 --- a/patches/server/0253-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch +++ b/patches/server/0253-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement an API for CanPlaceOn and CanDestroy NBT values diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516fc370b97 100644 +index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38814c18e1 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -84,6 +84,12 @@ import org.bukkit.persistence.PersistentDataContainer; +@@ -85,6 +85,12 @@ import org.bukkit.persistence.PersistentDataContainer; import static org.spigotmc.ValidateUtils.*; // Spigot end @@ -21,7 +21,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 /** * Children must include the following: * -@@ -272,6 +278,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -273,6 +279,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Specific(Specific.To.NBT) static final ItemMetaKey BLOCK_DATA = new ItemMetaKey("BlockStateTag"); static final ItemMetaKey BUKKIT_CUSTOM_TAG = new ItemMetaKey("PublicBukkitValues"); @@ -32,7 +32,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 // We store the raw original JSON representation of all text data. See SPIGOT-5063, SPIGOT-5656, SPIGOT-5304 private String displayName; -@@ -285,6 +295,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -286,6 +296,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { private int hideFlag; private boolean unbreakable; private int damage; @@ -43,7 +43,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 private static final Set HANDLED_TAGS = Sets.newHashSet(); private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); -@@ -322,6 +336,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -323,6 +337,15 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { this.hideFlag = meta.hideFlag; this.unbreakable = meta.unbreakable; this.damage = meta.damage; @@ -59,7 +59,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 this.unhandledTags.putAll(meta.unhandledTags); this.persistentDataContainer.putAll(meta.persistentDataContainer.getRaw()); -@@ -385,6 +408,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -386,6 +409,31 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { this.persistentDataContainer.put(key, compound.get(key).copy()); } } @@ -91,7 +91,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 Set keys = tag.getAllKeys(); for (String key : keys) { -@@ -523,6 +571,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -524,6 +572,34 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { this.setDamage(damage); } @@ -126,7 +126,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 String internal = SerializableMeta.getString(map, "internal", true); if (internal != null) { ByteArrayInputStream buf = new ByteArrayInputStream(Base64.getDecoder().decode(internal)); -@@ -651,6 +727,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -652,6 +728,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { if (this.hasDamage()) { itemTag.putInt(CraftMetaItem.DAMAGE.NBT, this.damage); } @@ -150,7 +150,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 for (Map.Entry e : this.unhandledTags.entrySet()) { itemTag.put(e.getKey(), e.getValue()); -@@ -667,6 +760,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -668,6 +761,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } @@ -172,7 +172,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 ListTag createStringList(List list) { if (list == null) { return null; -@@ -750,7 +858,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -751,7 +859,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @Overridden boolean isEmpty() { @@ -181,7 +181,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 } // Paper start -@@ -1180,7 +1288,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1181,7 +1289,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { && (this.hideFlag == that.hideFlag) && (this.isUnbreakable() == that.isUnbreakable()) && (this.hasDamage() ? that.hasDamage() && this.damage == that.damage : !that.hasDamage()) @@ -194,7 +194,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 } /** -@@ -1215,6 +1327,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1216,6 +1328,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { hash = 61 * hash + (this.hasDamage() ? this.damage : 0); hash = 61 * hash + (this.hasAttributeModifiers() ? this.attributeModifiers.hashCode() : 0); hash = 61 * hash + this.version; @@ -205,7 +205,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 return hash; } -@@ -1239,6 +1355,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1240,6 +1356,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { clone.unbreakable = this.unbreakable; clone.damage = this.damage; clone.version = this.version; @@ -220,7 +220,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 return clone; } catch (CloneNotSupportedException e) { throw new Error(e); -@@ -1296,6 +1420,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1297,6 +1421,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { builder.put(CraftMetaItem.DAMAGE.BUKKIT, this.damage); } @@ -244,7 +244,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 final Map internalTags = new HashMap(this.unhandledTags); this.serializeInternal(internalTags); if (!internalTags.isEmpty()) { -@@ -1468,6 +1609,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1469,6 +1610,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { CraftMetaArmorStand.SHOW_ARMS.NBT, CraftMetaArmorStand.SMALL.NBT, CraftMetaArmorStand.MARKER.NBT, @@ -253,7 +253,7 @@ index 27b87d5bdbbbbcc24d4af52df664f51bd5c861ca..e333e2b5f098fb1f6b05c3ae132f6516 // Paper end CraftMetaCompass.LODESTONE_DIMENSION.NBT, CraftMetaCompass.LODESTONE_POS.NBT, -@@ -1497,4 +1640,146 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1498,4 +1641,146 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } // Paper end diff --git a/patches/server/0256-Implement-furnace-cook-speed-multiplier-API.patch b/patches/server/0256-Implement-furnace-cook-speed-multiplier-API.patch index 696f2a665f3a..4fa6f319b301 100644 --- a/patches/server/0256-Implement-furnace-cook-speed-multiplier-API.patch +++ b/patches/server/0256-Implement-furnace-cook-speed-multiplier-API.patch @@ -11,10 +11,10 @@ to the nearest Integer when updating its current cook time. Modified by: Eric Su diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 2f628f36c32752d1bac910e180b90639c1ae2c9d..d7a89c2b70de20f632ee210780ede0bc36369710 100644 +index 7a13042631bea761952490cfd14dc20147405161..939a192dd66d5fb8da5beada7c22eeca5a7589cd 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -@@ -77,11 +77,13 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -78,11 +78,13 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit protected NonNullList items; public int litTime; int litDuration; @@ -28,7 +28,7 @@ index 2f628f36c32752d1bac910e180b90639c1ae2c9d..d7a89c2b70de20f632ee210780ede0bc protected AbstractFurnaceBlockEntity(BlockEntityType blockEntityType, BlockPos pos, BlockState state, RecipeType recipeType) { super(blockEntityType, pos, state); -@@ -128,6 +130,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -129,6 +131,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit }; this.recipesUsed = new Object2IntOpenHashMap(); this.quickCheck = RecipeManager.createCheck((RecipeType) recipeType); // CraftBukkit - decompile error // Eclipse fail @@ -36,7 +36,7 @@ index 2f628f36c32752d1bac910e180b90639c1ae2c9d..d7a89c2b70de20f632ee210780ede0bc } public static Map getFuel() { -@@ -280,6 +283,11 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -281,6 +284,11 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit this.recipesUsed.put(new ResourceLocation(s), nbttagcompound1.getInt(s)); } @@ -48,7 +48,7 @@ index 2f628f36c32752d1bac910e180b90639c1ae2c9d..d7a89c2b70de20f632ee210780ede0bc } @Override -@@ -288,6 +296,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -289,6 +297,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit nbt.putShort("BurnTime", (short) this.litTime); nbt.putShort("CookTime", (short) this.cookingProgress); nbt.putShort("CookTimeTotal", (short) this.cookingTotalTime); @@ -56,7 +56,7 @@ index 2f628f36c32752d1bac910e180b90639c1ae2c9d..d7a89c2b70de20f632ee210780ede0bc ContainerHelper.saveAllItems(nbt, this.items); CompoundTag nbttagcompound1 = new CompoundTag(); -@@ -359,7 +368,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -360,7 +369,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit CraftItemStack source = CraftItemStack.asCraftMirror(blockEntity.items.get(0)); CookingRecipe recipe = (CookingRecipe) recipeholder.toBukkitRecipe(); @@ -65,7 +65,7 @@ index 2f628f36c32752d1bac910e180b90639c1ae2c9d..d7a89c2b70de20f632ee210780ede0bc world.getCraftServer().getPluginManager().callEvent(event); blockEntity.cookingTotalTime = event.getTotalCookTime(); -@@ -367,9 +376,9 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -368,9 +377,9 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit // CraftBukkit end ++blockEntity.cookingProgress; @@ -77,7 +77,7 @@ index 2f628f36c32752d1bac910e180b90639c1ae2c9d..d7a89c2b70de20f632ee210780ede0bc if (AbstractFurnaceBlockEntity.burn(blockEntity.level, blockEntity.worldPosition, world.registryAccess(), recipeholder, blockEntity.items, i)) { // CraftBukkit blockEntity.setRecipeUsed(recipeholder); } -@@ -469,11 +478,12 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -470,11 +479,12 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit } } @@ -95,7 +95,7 @@ index 2f628f36c32752d1bac910e180b90639c1ae2c9d..d7a89c2b70de20f632ee210780ede0bc } public static boolean isFuel(ItemStack stack) { -@@ -543,7 +553,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -544,7 +554,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit } if (slot == 0 && !flag) { diff --git a/patches/server/0260-Hook-into-CB-plugin-rewrites.patch b/patches/server/0260-Hook-into-CB-plugin-rewrites.patch index 4dec2033b4b1..b10040abad6f 100644 --- a/patches/server/0260-Hook-into-CB-plugin-rewrites.patch +++ b/patches/server/0260-Hook-into-CB-plugin-rewrites.patch @@ -8,21 +8,26 @@ our own relocation. Also lets us rewrite NMS calls for when we're debugging in an IDE pre-relocate. diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index afa93af41bf9b45dd7e49378b7fea088087993d5..128c9d81814ba1fb24895962e5f08495dbedb176 100644 +index 6a661bbae8bc35a4c3b4bb7e86dd77a7575fdd97..31714ce05b1023b82e96b36ba52254b4e3e948f2 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -7,8 +7,10 @@ import java.io.InputStream; +@@ -7,6 +7,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Enumeration; +import java.util.HashMap; import java.util.HashSet; import java.util.List; -+import java.util.Map; - import java.util.Set; - import java.util.jar.JarEntry; + import java.util.Map; +@@ -15,6 +16,7 @@ import java.util.jar.JarEntry; import java.util.jar.JarFile; -@@ -22,11 +24,15 @@ import org.bukkit.plugin.AuthorNagException; + import java.util.jar.JarOutputStream; + import java.util.zip.ZipEntry; ++import javax.annotation.Nonnull; + import joptsimple.OptionParser; + import joptsimple.OptionSet; + import joptsimple.OptionSpec; +@@ -23,7 +25,9 @@ import org.bukkit.plugin.AuthorNagException; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; @@ -32,30 +37,23 @@ index afa93af41bf9b45dd7e49378b7fea088087993d5..128c9d81814ba1fb24895962e5f08495 import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; - -+import javax.annotation.Nonnull; -+ - /** - * This file is imported from Commodore. - * -@@ -49,6 +55,41 @@ public class Commodore - "org/bukkit/inventory/ItemStack (I)V setTypeId" - ) ); +@@ -51,6 +55,40 @@ public class Commodore { + "org/spigotmc/event/entity/EntityDismountEvent", "org/bukkit/event/entity/EntityDismountEvent" + ); + // Paper start - Plugin rewrites + private static final Map SEARCH_AND_REMOVE = initReplacementsMap(); -+ private static Map initReplacementsMap() -+ { ++ private static Map initReplacementsMap() { + Map getAndRemove = new HashMap<>(); + // Be wary of maven shade's relocations + + final java.util.jar.Manifest manifest = io.papermc.paper.util.JarManifests.manifest(Commodore.class); -+ if ( Boolean.getBoolean( "debug.rewriteForIde" ) && manifest != null) ++ if (Boolean.getBoolean( "debug.rewriteForIde") && manifest != null) + { + // unversion incoming calls for pre-relocate debug work + final String NMS_REVISION_PACKAGE = "v" + manifest.getMainAttributes().getValue("CraftBukkit-Package-Version") + "/"; + -+ getAndRemove.put( "org/bukkit/".concat( "craftbukkit/" + NMS_REVISION_PACKAGE ), NMS_REVISION_PACKAGE ); ++ getAndRemove.put("org/bukkit/".concat("craftbukkit/" + NMS_REVISION_PACKAGE), NMS_REVISION_PACKAGE); + } + + return getAndRemove; @@ -75,22 +73,23 @@ index afa93af41bf9b45dd7e49378b7fea088087993d5..128c9d81814ba1fb24895962e5f08495 + + return rewrite != null ? rewrite : original; + } -+ // Paper end ++ // Paper end - Plugin rewrites + - public static void main(String[] args) - { + public static void main(String[] args) { OptionParser parser = new OptionParser(); -@@ -133,15 +174,72 @@ public class Commodore + OptionSpec inputFlag = parser.acceptsAll(Arrays.asList("i", "input")).withRequiredArg().ofType(File.class).required(); +@@ -118,12 +156,67 @@ public class Commodore { + ClassWriter cw = new ClassWriter(cr, 0); - cr.accept( new ClassVisitor( Opcodes.ASM9, cw ) - { + cr.accept(new ClassRemapper(new ClassVisitor(Opcodes.ASM9, cw) { ++ + // Paper start - Rewrite plugins + @Override + public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) + { -+ desc = getOriginalOrRewrite( desc ); ++ desc = getOriginalOrRewrite(desc); + if ( signature != null ) { -+ signature = getOriginalOrRewrite( signature ); ++ signature = getOriginalOrRewrite(signature); + } + + return super.visitField( access, name, desc, signature, value) ; @@ -98,77 +97,70 @@ index afa93af41bf9b45dd7e49378b7fea088087993d5..128c9d81814ba1fb24895962e5f08495 + // Paper end + @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) - { - return new MethodVisitor( this.api, super.visitMethod( access, name, desc, signature, exceptions ) ) - { + public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { + return new MethodVisitor(this.api, super.visitMethod(access, name, desc, signature, exceptions)) { + + // Paper start - Plugin rewrites + @Override -+ public void visitTypeInsn(int opcode, String type) -+ { -+ type = getOriginalOrRewrite( type ); ++ public void visitTypeInsn(int opcode, String type) { ++ type = getOriginalOrRewrite(type); + -+ super.visitTypeInsn( opcode, type ); ++ super.visitTypeInsn(opcode, type); + } + + @Override + public void visitFrame(int type, int nLocal, Object[] local, int nStack, Object[] stack) { -+ for ( int i = 0; i < local.length; i++ ) ++ for (int i = 0; i < local.length; i++) + { -+ if ( !( local[i] instanceof String ) ) { continue; } ++ if (!(local[i] instanceof String)) { continue; } + -+ local[i] = getOriginalOrRewrite( (String) local[i] ); ++ local[i] = getOriginalOrRewrite((String) local[i]); + } + -+ for ( int i = 0; i < stack.length; i++ ) ++ for (int i = 0; i < stack.length; i++) + { -+ if ( !( stack[i] instanceof String ) ) { continue; } ++ if (!(stack[i] instanceof String)) { continue; } + -+ stack[i] = getOriginalOrRewrite( (String) stack[i] ); ++ stack[i] = getOriginalOrRewrite((String) stack[i]); + } + -+ super.visitFrame( type, nLocal, local, nStack, stack ); ++ super.visitFrame(type, nLocal, local, nStack, stack); + } + + @Override -+ public void visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) -+ { -+ descriptor = getOriginalOrRewrite( descriptor ); ++ public void visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) { ++ descriptor = getOriginalOrRewrite(descriptor); + -+ super.visitLocalVariable( name, descriptor, signature, start, end, index ); ++ super.visitLocalVariable(name, descriptor, signature, start, end, index); + } + // Paper end - ++ @Override - public void visitFieldInsn(int opcode, String owner, String name, String desc) - { + public void visitFieldInsn(int opcode, String owner, String name, String desc) { + // Paper start - Rewrite plugins -+ owner = getOriginalOrRewrite( owner ); -+ if ( desc != null ) -+ { -+ desc = getOriginalOrRewrite( desc ); ++ owner = getOriginalOrRewrite(owner); ++ if (desc != null) { ++ desc = getOriginalOrRewrite(desc); + } + // Paper end -+ - if ( owner.equals( "org/bukkit/block/Biome" ) ) - { - switch ( name ) -@@ -342,6 +440,11 @@ public class Commodore + if (owner.equals("org/bukkit/block/Biome")) { + switch (name) { + case "NETHER": +@@ -278,6 +371,10 @@ public class Commodore { } // Paper start - Rewrite plugins -+ owner = getOriginalOrRewrite( owner) ; -+ if (desc != null) -+ { ++ owner = getOriginalOrRewrite(owner) ; ++ if (desc != null) { + desc = getOriginalOrRewrite(desc); + } if ((owner.equals("org/bukkit/OfflinePlayer") || owner.equals("org/bukkit/entity/Player")) && name.equals("getPlayerProfile") && desc.equals("()Lorg/bukkit/profile/PlayerProfile;")) { super.visitMethodInsn(opcode, owner, name, "()Lcom/destroystokyo/paper/profile/PlayerProfile;", itf); return; -@@ -436,6 +539,13 @@ public class Commodore +@@ -374,6 +471,13 @@ public class Commodore { + @Override - public void visitLdcInsn(Object value) - { + public void visitLdcInsn(Object value) { + // Paper start + if (value instanceof Type type) { + if (type.getSort() == Type.OBJECT || type.getSort() == Type.ARRAY) { @@ -176,20 +168,30 @@ index afa93af41bf9b45dd7e49378b7fea088087993d5..128c9d81814ba1fb24895962e5f08495 + } + } + // Paper end - if ( value instanceof String && ( (String) value ).equals( "com.mysql.jdbc.Driver" ) ) - { - super.visitLdcInsn( "com.mysql.cj.jdbc.Driver" ); -@@ -448,6 +558,13 @@ public class Commodore + if (value instanceof String && ((String) value).equals("com.mysql.jdbc.Driver")) { + super.visitLdcInsn("com.mysql.cj.jdbc.Driver"); + return; +@@ -384,6 +488,14 @@ public class Commodore { + @Override - public void visitInvokeDynamicInsn( String name, String descriptor, Handle bootstrapMethodHandle, Object... bootstrapMethodArguments ) - { + public void visitInvokeDynamicInsn(String name, String descriptor, Handle bootstrapMethodHandle, Object... bootstrapMethodArguments) { + // Paper start - Rewrite plugins -+ name = getOriginalOrRewrite( name ); -+ if ( descriptor != null ) -+ { -+ descriptor = getOriginalOrRewrite( descriptor ); ++ name = getOriginalOrRewrite(name); ++ if (descriptor != null) { ++ descriptor = getOriginalOrRewrite(descriptor); + } ++ final String fName = name; ++ final String fDescriptor = descriptor; + // Paper end - Rewrite plugins - if ( bootstrapMethodHandle.getOwner().equals( "java/lang/invoke/LambdaMetafactory" ) - && bootstrapMethodHandle.getName().equals( "metafactory" ) && bootstrapMethodArguments.length == 3 ) - { + if (bootstrapMethodHandle.getOwner().equals("java/lang/invoke/LambdaMetafactory") + && bootstrapMethodHandle.getName().equals("metafactory") && bootstrapMethodArguments.length == 3) { + Type samMethodType = (Type) bootstrapMethodArguments[0]; +@@ -400,7 +512,7 @@ public class Commodore { + methodArgs.add(new Handle(newOpcode, newOwner, newName, newDescription, newItf)); + methodArgs.add(newInstantiated); + +- super.visitInvokeDynamicInsn(name, descriptor, bootstrapMethodHandle, methodArgs.toArray(Object[]::new)); ++ super.visitInvokeDynamicInsn(fName, fDescriptor, bootstrapMethodHandle, methodArgs.toArray(Object[]::new)); // Paper - use final local vars + }, implMethod.getTag(), implMethod.getOwner(), implMethod.getName(), implMethod.getDesc(), implMethod.isInterface(), samMethodType, instantiatedMethodType); + return; + } diff --git a/patches/server/0273-Optimize-World-Time-Updates.patch b/patches/server/0273-Optimize-World-Time-Updates.patch index 26dc80001f22..f555aa8216fb 100644 --- a/patches/server/0273-Optimize-World-Time-Updates.patch +++ b/patches/server/0273-Optimize-World-Time-Updates.patch @@ -8,10 +8,10 @@ the updates per world, so that we can re-use the same packet object for every player unless they have per-player time enabled. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index eac560bf8af3c7c28ed5eed61ef352f52d823cef..ab6402fbe9da82c13d3eb56d22d82d10825105e6 100644 +index 7a12c0f5a6cb205e8ae7667b9334efe1999e2a6a..420201b60be7d07fbbb75192f14e4222f4b386aa 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1475,12 +1475,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop biomes; private Set tiles; private final Set lights = new HashSet<>(); @@ -1612,7 +1612,7 @@ index a8b23d7eae867be95835bb76f9739a3d1d729973..5fbb9d2c4e419a3f31a8420437978606 this.minHeight = minHeight; this.maxHeight = maxHeight; this.biomes = biomes; -@@ -175,7 +180,7 @@ public final class OldCraftChunkData implements ChunkGenerator.ChunkData { +@@ -176,7 +181,7 @@ public final class OldCraftChunkData implements ChunkGenerator.ChunkData { int offset = (y - this.minHeight) >> 4; LevelChunkSection section = this.sections[offset]; if (create && section == null) { diff --git a/patches/server/0345-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/server/0345-Add-option-to-nerf-pigmen-from-nether-portals.patch index 35816f016768..dd18442fb99d 100644 --- a/patches/server/0345-Add-option-to-nerf-pigmen-from-nether-portals.patch +++ b/patches/server/0345-Add-option-to-nerf-pigmen-from-nether-portals.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to nerf pigmen from nether portals diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cf3742d3d771f6e0c71917bafda7027bd69b1aff..32558b5acfbc13f969d6d5c4e9a61d0beca6c41b 100644 +index 21eac12dcc3571e647b07b313015d809cb0fbcea..7f08a5a9c853c1f54e1d3b142c52cfa5dfb8c091 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -397,6 +397,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -399,6 +399,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper start public long activatedImmunityTick = Integer.MIN_VALUE; // Paper public boolean isTemporarilyActive = false; // Paper @@ -16,7 +16,7 @@ index cf3742d3d771f6e0c71917bafda7027bd69b1aff..32558b5acfbc13f969d6d5c4e9a61d0b protected int numCollisions = 0; // Paper public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable -@@ -2231,6 +2232,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2233,6 +2234,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (spawnedViaMobSpawner) { nbttagcompound.putBoolean("Paper.FromMobSpawner", true); } @@ -26,7 +26,7 @@ index cf3742d3d771f6e0c71917bafda7027bd69b1aff..32558b5acfbc13f969d6d5c4e9a61d0b // Paper end return nbttagcompound; } catch (Throwable throwable) { -@@ -2373,6 +2377,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2375,6 +2379,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } spawnedViaMobSpawner = nbt.getBoolean("Paper.FromMobSpawner"); // Restore entity's from mob spawner status diff --git a/patches/server/0353-Add-tick-times-API-and-mspt-command.patch b/patches/server/0353-Add-tick-times-API-and-mspt-command.patch index b9e2f078c093..1e81ff988aaf 100644 --- a/patches/server/0353-Add-tick-times-API-and-mspt-command.patch +++ b/patches/server/0353-Add-tick-times-API-and-mspt-command.patch @@ -125,7 +125,7 @@ index 72f2e81b9905a0d57ed8e2a88578f62d5235c456..7b58b2d6297800c2dcdbf7539e5ab8e7 public static void registerCommands(final MinecraftServer server) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 96fd66ed2742a79064852af6e936830ddaf14f4c..2deb639d404943ef5b028c4ede59cab99b31a40f 100644 +index 6024a9e0dca38b1c21332f5c131d824190a2be90..ce113cc2bc52c1135799190a22e0be21744b58cc 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -252,6 +252,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 3986d49b0e3405248913a685c44b27d091c4152e..6d61e70d1d5ad5bce6432f91d3b23c1734ad629c 100644 +index 569fa7caeffcda00ae6bf824af8b44b1d6862835..cb173f30bf5abd7c709d2186dd489e50c178b3cc 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -194,7 +194,7 @@ public abstract class PlayerList { @@ -87,10 +87,10 @@ index 3986d49b0e3405248913a685c44b27d091c4152e..6d61e70d1d5ad5bce6432f91d3b23c17 } // Paper end diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2e45aef27d9a9f224779357c649df796ddc16b8e..88aa0ef38590c291d02b930e86d7e9f8e8958422 100644 +index 04635faeb265852df7ec3ea9b04c8ae24c2fcd58..b2dc3729a8312179d219bd93a755729c86f4dece 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2335,27 +2335,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2337,27 +2337,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // CraftBukkit end diff --git a/patches/server/0378-Fix-numerous-item-duplication-issues-and-teleport-is.patch b/patches/server/0378-Fix-numerous-item-duplication-issues-and-teleport-is.patch index 83d62298fd21..e18ab6411f08 100644 --- a/patches/server/0378-Fix-numerous-item-duplication-issues-and-teleport-is.patch +++ b/patches/server/0378-Fix-numerous-item-duplication-issues-and-teleport-is.patch @@ -16,10 +16,10 @@ So even if something NEW comes up, it would be impossible to drop the same item twice because the source was destroyed. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 88aa0ef38590c291d02b930e86d7e9f8e8958422..5d56c6650ecac018e7404395fa75e80e19f070fb 100644 +index b2dc3729a8312179d219bd93a755729c86f4dece..88632cf1baea828f6442ac37b8c13a3356445fe3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2465,11 +2465,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2467,11 +2467,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -80,7 +80,7 @@ index 88aa0ef38590c291d02b930e86d7e9f8e8958422..5d56c6650ecac018e7404395fa75e80e public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9eea89e4c3ec5f999ec7f5773f4c37209211c173..4b1366a456e7132d438fc99bd62e1dd77e35b35f 100644 +index a4b1066bbb36cce7505e5e6dc033b0266ce85974..2fa60d96da53ca954dc1421745fafaeb2e806ed0 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1705,9 +1705,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -135,7 +135,7 @@ index 810bead2f19de70786027b190137f743a0c40ee7..4f9afae94a4cbf28a532e889d441c63d } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6e1cff5713e8e0ed8dc481f9c91071eb4b722a49..73f11d9d8b23568478e9fca603cbde1a42f3963f 100644 +index 502196b8e97f3de3399f5542e76e6dbbd044d3fd..5d28312a03f1571bb44c31f82e27288d02776a5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -893,6 +893,11 @@ public class CraftEventFactory { diff --git a/patches/server/0386-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0386-Deobfuscate-stacktraces-in-log-messages-crash-report.patch index 83fe8ede3389..bb83e073cd4a 100644 --- a/patches/server/0386-Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/0386-Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -6,18 +6,18 @@ Subject: [PATCH] Deobfuscate stacktraces in log messages, crash reports, and diff --git a/build.gradle.kts b/build.gradle.kts -index 6acb1f37f4c5cb1addd835626041cd3c28eb842f..7398b673f416fa2c05231f90a59600517a21c908 100644 +index eaaf9a9779f57ee048245899750bf7a1599b716f..450f7c03bdcc109938ba9b66328bdbb2c96c03c9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -36,6 +36,7 @@ dependencies { - implementation("org.ow2.asm:asm-commons:9.5") // Paper - ASM event executor generation +@@ -35,6 +35,7 @@ dependencies { + implementation("org.ow2.asm:asm-commons:9.5") implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files implementation("commons-lang:commons-lang:2.6") + implementation("net.fabricmc:mapping-io:0.5.0") // Paper - needed to read mappings for stacktrace deobfuscation runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") runtimeOnly("com.mysql:mysql-connector-j:8.2.0") runtimeOnly("com.lmax:disruptor:3.4.4") // Paper -@@ -125,6 +126,18 @@ tasks.check { +@@ -124,6 +125,18 @@ tasks.check { } // Paper end diff --git a/patches/server/0387-Implement-Mob-Goal-API.patch b/patches/server/0387-Implement-Mob-Goal-API.patch index 7e0cedac720a..11aff4ed7ad5 100644 --- a/patches/server/0387-Implement-Mob-Goal-API.patch +++ b/patches/server/0387-Implement-Mob-Goal-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement Mob Goal API diff --git a/build.gradle.kts b/build.gradle.kts -index 7398b673f416fa2c05231f90a59600517a21c908..3a3a6ce8833afca0caff2a3b92ad593bf75e951a 100644 +index 450f7c03bdcc109938ba9b66328bdbb2c96c03c9..c6241f858209ed662d8720217d143340916024e9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -45,6 +45,7 @@ dependencies { +@@ -44,6 +44,7 @@ dependencies { runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") @@ -794,10 +794,10 @@ index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..3f081183521603824430709886a9cc31 LOOK, JUMP, diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b6fb3f6c56d890f4a0b8bfdf691ace17e2e9fc67..b63cf735388872879e3e0641a13ebf8254490a8b 100644 +index 22886ae00f92824fc08018b9415537f1126920ee..1197e6f355f9b5a684024de31cddef11f945bcb1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2882,5 +2882,11 @@ public final class CraftServer implements Server { +@@ -2881,5 +2881,11 @@ public final class CraftServer implements Server { public boolean isStopping() { return net.minecraft.server.MinecraftServer.getServer().hasStopped(); } diff --git a/patches/server/0409-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/0409-Use-distance-map-to-optimise-entity-tracker.patch index 8eefd5aa6ae5..18b0c6bf7d50 100644 --- a/patches/server/0409-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/0409-Use-distance-map-to-optimise-entity-tracker.patch @@ -236,7 +236,7 @@ index 2db3236bc9d676c86b0af38bd4bfaf9d3332c250..07abd089e5091d292d4542bbe0fbb416 return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5d56c6650ecac018e7404395fa75e80e19f070fb..5ffcb63bafc11cca5e04c85605cc71cf6c29e812 100644 +index 88632cf1baea828f6442ac37b8c13a3356445fe3..a1d990aa2e79af9e1ff078892cdb38a382f21da7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -56,6 +56,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; @@ -247,7 +247,7 @@ index 5d56c6650ecac018e7404395fa75e80e19f070fb..5ffcb63bafc11cca5e04c85605cc71cf import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -@@ -486,6 +487,38 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -488,6 +489,38 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public boolean updatingSectionStatus = false; // Paper end diff --git a/patches/server/0412-Ensure-Entity-AABB-s-are-never-invalid.patch b/patches/server/0412-Ensure-Entity-AABB-s-are-never-invalid.patch index f436d1a9abdc..416650b14efb 100644 --- a/patches/server/0412-Ensure-Entity-AABB-s-are-never-invalid.patch +++ b/patches/server/0412-Ensure-Entity-AABB-s-are-never-invalid.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Ensure Entity AABB's are never invalid diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5ffcb63bafc11cca5e04c85605cc71cf6c29e812..0924677535ba455a2118f7022bdd361c609022d4 100644 +index a1d990aa2e79af9e1ff078892cdb38a382f21da7..a1172531baf637915a65fbdee8ca08f08034811d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -726,8 +726,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -728,8 +728,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void setPos(double x, double y, double z) { diff --git a/patches/server/0413-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0413-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index 6f47eef96012..f36083c5693b 100644 --- a/patches/server/0413-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0413-Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -8,7 +8,7 @@ makes it so that the server keeps the last difficulty used instead of restoring the server.properties every single load. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 81d4870060ea418fecfdd01f1357899038c95fe9..87e0cc467a2139e763130a375387b6df46336992 100644 +index 728858a2a52bd23c7b42d0e7340abf5f09d24fc5..8a037e12ba9419ec29c62799e30312c50b7ee4ad 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -828,7 +828,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> { net.minecraft.world.level.chunk.LevelChunk chunk = (net.minecraft.world.level.chunk.LevelChunk)c; diff --git a/patches/server/0418-incremental-chunk-and-player-saving.patch b/patches/server/0418-incremental-chunk-and-player-saving.patch index b80e5943e642..23a967402166 100644 --- a/patches/server/0418-incremental-chunk-and-player-saving.patch +++ b/patches/server/0418-incremental-chunk-and-player-saving.patch @@ -5,7 +5,7 @@ Subject: [PATCH] incremental chunk and player saving diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 87e0cc467a2139e763130a375387b6df46336992..a82f7dd2cbc2f6311b810f117f0970a47db85818 100644 +index 8a037e12ba9419ec29c62799e30312c50b7ee4ad..706e8a5e17ccd87266a5c154cd938974d380cb21 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -901,7 +901,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(Lists.transform(this.lore, CraftChatMessage::fromJSONComponent)); } @@ -47,7 +47,7 @@ index 7cd7e275c997bbf0ad7aab87aabc27aa722b915c..b9eca4b39cc265cb2d9b9f20ee6f803b @Override public void setLore(List lore) { if (lore == null || lore.isEmpty()) { -@@ -1037,6 +1057,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1038,6 +1058,21 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } @@ -69,7 +69,7 @@ index 7cd7e275c997bbf0ad7aab87aabc27aa722b915c..b9eca4b39cc265cb2d9b9f20ee6f803b @Override public boolean hasCustomModelData() { return this.customModelData != null; -@@ -1505,6 +1540,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1506,6 +1541,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } for (Object object : addFrom) { diff --git a/patches/server/0453-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0453-Create-HoverEvent-from-ItemStack-Entity.patch index b2004f6a12ed..9e6e476351df 100644 --- a/patches/server/0453-Create-HoverEvent-from-ItemStack-Entity.patch +++ b/patches/server/0453-Create-HoverEvent-from-ItemStack-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index b6f5e63c7e7e45dd3eb15bad5c6bee9d5417311e..866106d0d773e407a0cdd8614818cba4ab910040 100644 +index 71db89105c70cb70726fb6a732b899297aeee82a..12f90520e4d6d5fcea0c2f8e19dad9102970cd99 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -533,4 +533,41 @@ public final class CraftItemFactory implements ItemFactory { +@@ -527,4 +527,41 @@ public final class CraftItemFactory implements ItemFactory { return nms != null ? net.minecraft.locale.Language.getInstance().getOrDefault(nms.getItem().getDescriptionId(nms)) : null; } // Paper end - add getI18NDisplayName diff --git a/patches/server/0454-Cache-block-data-strings.patch b/patches/server/0454-Cache-block-data-strings.patch index c52e380c44f2..776d479b98c6 100644 --- a/patches/server/0454-Cache-block-data-strings.patch +++ b/patches/server/0454-Cache-block-data-strings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Cache block data strings diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a82f7dd2cbc2f6311b810f117f0970a47db85818..2616d771a8a95dac4440b74933c8aa7b83a9bbd1 100644 +index 706e8a5e17ccd87266a5c154cd938974d380cb21..1eaf509c37c176ad94035d0612f69d6ef53b3626 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2148,6 +2148,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop%s", nms, bukkit); } @@ -53,7 +53,7 @@ index cf379f7da8d8e6db0d74f1ca0e4b42e017a8191e..cab13044a3c827256967632a1769f4ae + // Paper start - cache block data strings + if (material != null) { -+ Block block = CraftMagicNumbers.getBlock(material); ++ Block block = CraftBlockType.bukkitToMinecraft(material); + if (block != null) { + net.minecraft.resources.ResourceLocation key = BuiltInRegistries.BLOCK.getKey(block); + data = data == null ? key.toString() : key + data; @@ -67,5 +67,5 @@ index cf379f7da8d8e6db0d74f1ca0e4b42e017a8191e..cab13044a3c827256967632a1769f4ae + private static CraftBlockData createNewData(Material material, String data) { + // Paper end - cache block data strings net.minecraft.world.level.block.state.BlockState blockData; - Block block = CraftMagicNumbers.getBlock(material); + Block block = CraftBlockType.bukkitToMinecraft(material); Map, Comparable> parsed = null; diff --git a/patches/server/0455-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0455-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch index 1eda2d7a83ff..efbf40f12d0e 100644 --- a/patches/server/0455-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch +++ b/patches/server/0455-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch @@ -9,7 +9,7 @@ as this is how Vanilla teleports entities. Cancel any pending motion when teleported. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9c0cc06f4ebbfbd7959f05cae12a9f9e7e622c04..0d4e641187b305c4b56782b4c70bca39efcaa69c 100644 +index 101871664077577c5cbe159d5d1a31b0e30ec68d..5550f60424d827616c935e3b0036f1b4f6144e5c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -657,7 +657,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -31,10 +31,10 @@ index 9c0cc06f4ebbfbd7959f05cae12a9f9e7e622c04..0d4e641187b305c4b56782b4c70bca39 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0924677535ba455a2118f7022bdd361c609022d4..452789dc47393580374bf438e6229b1e6cd3832b 100644 +index a1172531baf637915a65fbdee8ca08f08034811d..ec224193e9ca7734fe533d5cfc0e316d5eed2adb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -160,6 +160,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -162,6 +162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit start private static final int CURRENT_LEVEL = 2; @@ -42,7 +42,7 @@ index 0924677535ba455a2118f7022bdd361c609022d4..452789dc47393580374bf438e6229b1e static boolean isLevelAtLeast(CompoundTag tag, int level) { return tag.contains("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level; } -@@ -1869,6 +1870,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1871,6 +1872,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void moveTo(double x, double y, double z, float yaw, float pitch) { @@ -57,7 +57,7 @@ index 0924677535ba455a2118f7022bdd361c609022d4..452789dc47393580374bf438e6229b1e this.setYRot(yaw); this.setXRot(pitch); diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 41f549f16f69f9bc50a004096e6c3c0f6e4d4eaf..9ec83d6eeff22c2ce25374a83f581a675d4fd067 100644 +index 0578ac12d92f9af0b0113587db9351b4a41bedd5..9f677a695bdb8ebde457452e4b70c674e2016830 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java @@ -169,6 +169,7 @@ public abstract class BaseSpawner { diff --git a/patches/server/0462-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0462-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch index 1749b211f089..1e991a4ab796 100644 --- a/patches/server/0462-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch +++ b/patches/server/0462-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix deop kicking non-whitelisted player when white list is diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2616d771a8a95dac4440b74933c8aa7b83a9bbd1..f73ad3b85ed46913c10891edd3a52b9ad694e5e2 100644 +index 1eaf509c37c176ad94035d0612f69d6ef53b3626..6a23b1ad4c7fd9deaff05e8d00ad6a77a6ed0cec 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2231,13 +2231,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoopBukkit Material diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockState.java b/src/main/java/net/minecraft/world/level/block/state/BlockState.java -index da878e180c6b94f98dc82c6e8395f63ecc9b2c1e..a9b0f5950b6f97ea4c2a1075946b92008b62c9d9 100644 +index da878e180c6b94f98dc82c6e8395f63ecc9b2c1e..e33a4ade1dd40ba482e2ca51c3b3ddad284106c3 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockState.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockState.java -@@ -10,6 +10,17 @@ import net.minecraft.world.level.block.state.properties.Property; +@@ -10,6 +10,16 @@ import net.minecraft.world.level.block.state.properties.Property; public class BlockState extends BlockBehaviour.BlockStateBase { public static final Codec CODEC = codec(BuiltInRegistries.BLOCK.byNameCodec(), Block::defaultBlockState).stable(); @@ -18,9 +18,8 @@ index da878e180c6b94f98dc82c6e8395f63ecc9b2c1e..a9b0f5950b6f97ea4c2a1075946b9200 + + public final org.bukkit.Material getBukkitMaterial() { + if (this.cachedMaterial == null) { -+ this.cachedMaterial = org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(this.getBlock()); ++ this.cachedMaterial = org.bukkit.craftbukkit.block.CraftBlockType.minecraftToBukkit(this.getBlock()); + } -+ + return this.cachedMaterial; + } + // Paper end - optimise getType calls @@ -28,66 +27,66 @@ index da878e180c6b94f98dc82c6e8395f63ecc9b2c1e..a9b0f5950b6f97ea4c2a1075946b9200 super(block, propertyMap, codec); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunkSnapshot.java b/src/main/java/org/bukkit/craftbukkit/CraftChunkSnapshot.java -index 089f2a4780a0e3515c032d08a1bb2ea375ebdce1..30f6d74e867869b0070de83fe988672a74580043 100644 +index f2ce97e46cdbda0f8960eed9b601c797d8eaef48..85029f1acfdbb411d9ebdf95838d6db3898f4e58 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunkSnapshot.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunkSnapshot.java -@@ -98,7 +98,7 @@ public class CraftChunkSnapshot implements ChunkSnapshot { +@@ -99,7 +99,7 @@ public class CraftChunkSnapshot implements ChunkSnapshot { public Material getBlockType(int x, int y, int z) { this.validateChunkCoordinates(x, y, z); -- return CraftMagicNumbers.getMaterial(this.blockids[this.getSectionIndex(y)].get(x, y & 0xF, z).getBlock()); +- return CraftBlockType.minecraftToBukkit(this.blockids[this.getSectionIndex(y)].get(x, y & 0xF, z).getBlock()); + return this.blockids[this.getSectionIndex(y)].get(x, y & 0xF, z).getBukkitMaterial(); // Paper - optimise getType calls } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index a7783474afef0a2bab7e99e475c6d130bb88b01c..aa644231425b9622437538b5c092d4064a40cced 100644 +index a586442422a2b2c06b785af0d261d3e19eb1d59b..aa644231425b9622437538b5c092d4064a40cced 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -220,7 +220,7 @@ public class CraftBlock implements Block { @Override public Material getType() { -- return CraftMagicNumbers.getMaterial(this.world.getBlockState(this.position).getBlock()); +- return CraftBlockType.minecraftToBukkit(this.world.getBlockState(this.position).getBlock()); + return this.world.getBlockState(this.position).getBukkitMaterial(); // Paper - optimise getType calls } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java -index a193583f596c0a587cd0c2d6eac994226ee4fde0..aca63719790429d3d7c7c59a1931a98221c70fc0 100644 +index 8e5279abccdd074d565f246420b2b12b81189b67..928a301627134b49915b0ceaeabb7dc350605dc2 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java @@ -170,7 +170,7 @@ public class CraftBlockState implements BlockState { @Override public Material getType() { -- return CraftMagicNumbers.getMaterial(this.data.getBlock()); +- return CraftBlockType.minecraftToBukkit(this.data.getBlock()); + return this.data.getBukkitMaterial(); // Paper - optimise getType calls } public void setFlag(int flag) { diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index c1506afacb6a73ef4a4692c0ae0722b240f01606..89997c2a11b247d2a23dc7c176bce3231639e777 100644 +index bbf58089dd5de3e38a236bb662ea3e139d159161..5a18ca08fe9e2b26bc9e5a01c7afed365e02a1b7 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -@@ -60,7 +60,7 @@ public class CraftBlockData implements BlockData { +@@ -61,7 +61,7 @@ public class CraftBlockData implements BlockData { @Override public Material getMaterial() { -- return CraftMagicNumbers.getMaterial(this.state.getBlock()); +- return CraftBlockType.minecraftToBukkit(this.state.getBlock()); + return this.state.getBukkitMaterial(); // Paper - optimise getType calls } public net.minecraft.world.level.block.state.BlockState getState() { diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java -index 35cf747196b43a0f1d9237fdc12424288962f8bd..54c7877f1da51ff8be467fac5e0a37b1fd573d37 100644 +index c96aaa185d9d929cb19f427be82053f0cfa13bad..0fb580530d0b6d4d63ea4b85fec9240eb5c74df4 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftChunkData.java -@@ -95,7 +95,7 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { +@@ -96,7 +96,7 @@ public final class CraftChunkData implements ChunkGenerator.ChunkData { @Override public Material getType(int x, int y, int z) { -- return CraftMagicNumbers.getMaterial(this.getTypeId(x, y, z).getBlock()); +- return CraftBlockType.minecraftToBukkit(this.getTypeId(x, y, z).getBlock()); + return this.getTypeId(x, y, z).getBukkitMaterial(); // Paper - optimise getType calls } diff --git a/patches/server/0473-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0473-Add-getOfflinePlayerIfCached-String.patch index d91285ae46e4..d0ca1491c1b4 100644 --- a/patches/server/0473-Add-getOfflinePlayerIfCached-String.patch +++ b/patches/server/0473-Add-getOfflinePlayerIfCached-String.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 84ff901c4805516bbe438b4ad808e75cd2e15a9d..508ccf9685058674020c04914d8107e7fb1912ce 100644 +index ea2ca7a37d0bdcc1ccc1627e4246a8290e32d16f..95edbf365a916687d9a6a2e7598435fa1a32baf4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1910,6 +1910,28 @@ public final class CraftServer implements Server { +@@ -1909,6 +1909,28 @@ public final class CraftServer implements Server { return result; } diff --git a/patches/server/0483-Add-Destroy-Speed-API.patch b/patches/server/0483-Add-Destroy-Speed-API.patch index 56532eca85a5..21dcb0d34af1 100644 --- a/patches/server/0483-Add-Destroy-Speed-API.patch +++ b/patches/server/0483-Add-Destroy-Speed-API.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add Destroy Speed API Co-authored-by: Jake Potrebic diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index 89997c2a11b247d2a23dc7c176bce3231639e777..f116f6997562a3ccb1a4830515ea6ee25ce29d77 100644 +index 5a18ca08fe9e2b26bc9e5a01c7afed365e02a1b7..f75455bf199258fa7097daf777d28ff672039fa2 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -@@ -702,4 +702,19 @@ public class CraftBlockData implements BlockData { +@@ -703,4 +703,19 @@ public class CraftBlockData implements BlockData { public BlockState createBlockState() { return CraftBlockStates.getBlockState(this.state, null); } diff --git a/patches/server/0489-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0489-Climbing-should-not-bypass-cramming-gamerule.patch index 18b9b50fa79a..e3bd0d60408e 100644 --- a/patches/server/0489-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0489-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 46637e6913e5f2aae0be6aa67b95f1fe604b021e..28d12ffb79a29be67b6476ae7fa87b557f55839f 100644 +index 4a1245fb3ad821ee997b35f180390a07bc871982..82eb980dd463c423b2b30a3149166a227608bb96 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2062,6 +2062,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2064,6 +2064,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean isPushable() { @@ -44,7 +44,7 @@ index 68e4440765636295a74ea942862d772d47282ad6..93a41156a01a1638f3ef469b1518a07e } else if (entity.level().isClientSide && (!(entity1 instanceof Player) || !((Player) entity1).isLocalPlayer())) { return false; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 90c66f87e721ef34bf3f47b601456fece3064225..bf617621c88c68198709d1ed238622c3fcec89bd 100644 +index 05fe4828af59e3cd894c9979ecb08ad0e1c6b2d3..7d72477cdeaa8238da1291c0a902d090463b95c8 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3426,7 +3426,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0505-Cache-burn-durations.patch b/patches/server/0505-Cache-burn-durations.patch index c4372f6401ac..153295f240c3 100644 --- a/patches/server/0505-Cache-burn-durations.patch +++ b/patches/server/0505-Cache-burn-durations.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Cache burn durations diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index d7a89c2b70de20f632ee210780ede0bc36369710..b6e31bede16f7dbc9abb6609f1c39b82883512b2 100644 +index 939a192dd66d5fb8da5beada7c22eeca5a7589cd..7bcc4ede30f9cd1af2b0560bd3eca18e11a5524c 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -@@ -133,7 +133,13 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -134,7 +134,13 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit this.recipeType = recipeType; // Paper } @@ -22,7 +22,7 @@ index d7a89c2b70de20f632ee210780ede0bc36369710..b6e31bede16f7dbc9abb6609f1c39b82 Map map = Maps.newLinkedHashMap(); AbstractFurnaceBlockEntity.add(map, (ItemLike) Items.LAVA_BUCKET, 20000); -@@ -195,7 +201,10 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -196,7 +202,10 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit AbstractFurnaceBlockEntity.add(map, (ItemLike) Blocks.AZALEA, 100); AbstractFurnaceBlockEntity.add(map, (ItemLike) Blocks.FLOWERING_AZALEA, 100); AbstractFurnaceBlockEntity.add(map, (ItemLike) Blocks.MANGROVE_ROOTS, 300); diff --git a/patches/server/0514-Added-ServerResourcesReloadedEvent.patch b/patches/server/0514-Added-ServerResourcesReloadedEvent.patch index cb19b400e423..1bfd02f43ffc 100644 --- a/patches/server/0514-Added-ServerResourcesReloadedEvent.patch +++ b/patches/server/0514-Added-ServerResourcesReloadedEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Added ServerResourcesReloadedEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f73ad3b85ed46913c10891edd3a52b9ad694e5e2..c063dece36e110691297b38635a9d14d70c4e391 100644 +index 6a23b1ad4c7fd9deaff05e8d00ad6a77a6ed0cec..a75c6825eaee07bbde9b7c81c4232bc982a98326 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2108,7 +2108,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop completablefuture = CompletableFuture.supplyAsync(() -> { Stream stream = dataPacks.stream(); // CraftBukkit - decompile error -@@ -2149,6 +2155,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper @@ -17,7 +17,7 @@ index c063dece36e110691297b38635a9d14d70c4e391..5f440e3d3a750c65d0d13834eca553b8 this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9ad59776ad035b8f6069f5df1fda174002ef58d1..c5fc4d510ebdc1308759be9f6ac79dfff9c69895 100644 +index efbdcaff160e1c8e666d54a9babe35ac325ec8a5..3396f940f5c7c4e7b77a4570c34fbe5ad2c7da01 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0553-Add-recipe-to-cook-events.patch b/patches/server/0553-Add-recipe-to-cook-events.patch index e7fabd3ae9a6..a2cd4180a6a1 100644 --- a/patches/server/0553-Add-recipe-to-cook-events.patch +++ b/patches/server/0553-Add-recipe-to-cook-events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add recipe to cook events diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index b6e31bede16f7dbc9abb6609f1c39b82883512b2..37cdb835bdc665dc5858eb570cfd08e2cdd98eab 100644 +index 7bcc4ede30f9cd1af2b0560bd3eca18e11a5524c..97b8dc205fb22e17ab457e8d1f4d73a7b2f8cc47 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -@@ -437,7 +437,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -438,7 +438,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit CraftItemStack source = CraftItemStack.asCraftMirror(itemstack); org.bukkit.inventory.ItemStack result = CraftItemStack.asBukkitCopy(itemstack1); @@ -18,7 +18,7 @@ index b6e31bede16f7dbc9abb6609f1c39b82883512b2..37cdb835bdc665dc5858eb570cfd08e2 if (furnaceSmeltEvent.isCancelled()) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java -index 24e2063db933bfbc8fc1f34edb8106ae4d7c633c..04b2697ee857e714b1202d02d093b0c60f079a6f 100644 +index f706c787f7608f7440a5f5e05e7e9c4cb582368c..f776289eea00bd741ad55bb9bc338dd2c05c8b39 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java @@ -63,8 +63,10 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { diff --git a/patches/server/0560-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0560-forced-whitelist-use-configurable-kick-message.patch index dfe9eda9fc14..b9622a232c8c 100644 --- a/patches/server/0560-forced-whitelist-use-configurable-kick-message.patch +++ b/patches/server/0560-forced-whitelist-use-configurable-kick-message.patch @@ -5,10 +5,10 @@ Subject: [PATCH] forced whitelist: use configurable kick message diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5f440e3d3a750c65d0d13834eca553b8f5a521a6..36ca381445102fee1960410aa56e8b2a28dca615 100644 +index f89d2dc9ec8bfe0b401b96bffd59502bf903a24d..fbfe5d18a004225396f2d33084fb5073af2d9731 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2247,7 +2247,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getInfiniburn() { -+ return com.google.common.collect.Sets.newHashSet(com.google.common.collect.Iterators.transform(net.minecraft.core.registries.BuiltInRegistries.BLOCK.getTagOrEmpty(this.getHandle().dimensionType().infiniburn()).iterator(), blockHolder -> CraftMagicNumbers.getMaterial(blockHolder.value()))); ++ return com.google.common.collect.Sets.newHashSet(com.google.common.collect.Iterators.transform(net.minecraft.core.registries.BuiltInRegistries.BLOCK.getTagOrEmpty(this.getHandle().dimensionType().infiniburn()).iterator(), blockHolder -> CraftBlockType.minecraftToBukkit(blockHolder.value()))); + } + + @Override diff --git a/patches/server/0585-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0585-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch index 0846ef70e1d5..2a75ad420498 100644 --- a/patches/server/0585-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch +++ b/patches/server/0585-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch @@ -5,21 +5,21 @@ Subject: [PATCH] Add raw address to AsyncPlayerPreLoginEvent diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index c58fc7d950ea2aa136c3922fb14e4f183f45f2d3..833e17796a75c24eb4f2eb76ed00160229458e39 100644 +index 70e89b77e99846258aae59de6246f82cff312452..b1b778c534fae23294b95b084fac0f52f94c37c2 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -285,12 +285,13 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, - public void fireEvents(GameProfile gameprofile) throws Exception { - String playerName = gameprofile.getName(); - java.net.InetAddress address = ((java.net.InetSocketAddress) ServerLoginPacketListenerImpl.this.connection.getRemoteAddress()).getAddress(); -+ java.net.InetAddress rawAddress = ((java.net.InetSocketAddress) ServerLoginPacketListenerImpl.this.connection.channel.remoteAddress()).getAddress(); // Paper - java.util.UUID uniqueId = gameprofile.getId(); - final org.bukkit.craftbukkit.CraftServer server = ServerLoginPacketListenerImpl.this.server.server; +@@ -290,12 +290,13 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + private void callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception { + String playerName = gameprofile.getName(); + java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress(); ++ java.net.InetAddress rawAddress = ((java.net.InetSocketAddress) this.connection.channel.remoteAddress()).getAddress(); // Paper + java.util.UUID uniqueId = gameprofile.getId(); + final org.bukkit.craftbukkit.CraftServer server = ServerLoginPacketListenerImpl.this.server.server; - // Paper start - com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(gameprofile); -- AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, uniqueId, profile); -+ AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile); // Paper - add rawAddress - server.getPluginManager().callEvent(asyncEvent); - profile = asyncEvent.getPlayerProfile(); - profile.complete(true); // Paper - setPlayerProfileAPI + // Paper start + com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(gameprofile); +- AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, uniqueId, profile); ++ AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile); // Paper - add rawAddress + server.getPluginManager().callEvent(asyncEvent); + profile = asyncEvent.getPlayerProfile(); + profile.complete(true); // Paper - setPlayerProfileAPI diff --git a/patches/server/0588-Add-basic-Datapack-API.patch b/patches/server/0588-Add-basic-Datapack-API.patch index f0490f3fbd0f..6b29653667e2 100644 --- a/patches/server/0588-Add-basic-Datapack-API.patch +++ b/patches/server/0588-Add-basic-Datapack-API.patch @@ -92,7 +92,7 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 354a8bfb7afc233b2bac6a4904ef6427ae0f7c41..d7fe701f3eb474895c8175c0539afd4875bd0092 100644 +index 346a4d7204e872f9a0e081b2afd4276b33d2cf20..1a4168073251e105c53dae2da040367294eb3787 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -301,6 +301,7 @@ public final class CraftServer implements Server { @@ -111,7 +111,7 @@ index 354a8bfb7afc233b2bac6a4904ef6427ae0f7c41..d7fe701f3eb474895c8175c0539afd48 } public boolean getCommandBlockOverride(String command) { -@@ -2950,5 +2952,11 @@ public final class CraftServer implements Server { +@@ -2949,5 +2951,11 @@ public final class CraftServer implements Server { public com.destroystokyo.paper.entity.ai.MobGoals getMobGoals() { return mobGoals; } diff --git a/patches/server/0600-More-Lidded-Block-API.patch b/patches/server/0600-More-Lidded-Block-API.patch index e65c6a26cb41..d36768f000c2 100644 --- a/patches/server/0600-More-Lidded-Block-API.patch +++ b/patches/server/0600-More-Lidded-Block-API.patch @@ -53,10 +53,10 @@ index 79fafa30e4f09dc375cc3fcb1d95a9ab6c8fb9f4..872a579460ebe8d6085188a6be9c9eb9 + // Paper end - More Lidded Block API } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java b/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java -index e9c72d58596c528909bbfbccb97b85d36aca7703..3ccab14646c385b10dd310e2f7640fd2249f5371 100644 +index a8120eb14e111b134a1496b91f8341f8e14a2a9b..07c428e5b3673e4028fe303dde5f30040b5ec3d7 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java -@@ -59,7 +59,7 @@ public class CraftShulkerBox extends CraftLootable implem +@@ -58,7 +58,7 @@ public class CraftShulkerBox extends CraftLootable implem if (this.getTileEntity().opened && this.getWorldHandle() instanceof net.minecraft.world.level.Level) { net.minecraft.world.level.Level world = this.getTileEntity().getLevel(); world.blockEvent(this.getPosition(), this.getTileEntity().getBlockState().getBlock(), 1, 0); @@ -65,7 +65,7 @@ index e9c72d58596c528909bbfbccb97b85d36aca7703..3ccab14646c385b10dd310e2f7640fd2 } this.getTileEntity().opened = false; } -@@ -68,4 +68,11 @@ public class CraftShulkerBox extends CraftLootable implem +@@ -67,4 +67,11 @@ public class CraftShulkerBox extends CraftLootable implem public CraftShulkerBox copy() { return new CraftShulkerBox(this); } diff --git a/patches/server/0602-Add-PlayerKickEvent-causes.patch b/patches/server/0602-Add-PlayerKickEvent-causes.patch index 01c6b098f82e..d5911f643584 100644 --- a/patches/server/0602-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0602-Add-PlayerKickEvent-causes.patch @@ -48,10 +48,10 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..85a8a687b1568a56e3e646b37ef78b56 public boolean shouldDisconnect() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8937b71511bc1dce082683b4107d52e0e632e7a2..6f17e5631aace53f75e6badf514dbb77c50065b9 100644 +index 2acd875f34c367f9b9db85dee5052140c05d0add..26f4516f20336ddfaf868337cab3a05166f01b8d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2250,7 +2250,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(list.size()); for (int index = 0; index < list.size(); index++) { diff --git a/patches/server/0649-Add-missing-team-sidebar-display-slots.patch b/patches/server/0649-Add-missing-team-sidebar-display-slots.patch index 0d7e79e26d9c..2a080ce7254c 100644 --- a/patches/server/0649-Add-missing-team-sidebar-display-slots.patch +++ b/patches/server/0649-Add-missing-team-sidebar-display-slots.patch @@ -52,13 +52,14 @@ index 73c5ffff70605b32188a9bb5fb6c0ee04cb66efe..711d227f5ee6d63356a94a0567968da4 } diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 128c9d81814ba1fb24895962e5f08495dbedb176..812819e814cfbdb542051a7dbfe123d3c59e66bd 100644 +index 31714ce05b1023b82e96b36ba52254b4e3e948f2..a06352499b9f2c6fb84e585459077b4aa1886d6f 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -239,6 +239,14 @@ public class Commodore - desc = getOriginalOrRewrite( desc ); +@@ -217,6 +217,15 @@ public class Commodore { + desc = getOriginalOrRewrite(desc); } // Paper end ++ + // Paper start - DisplaySlot + if (owner.equals("org/bukkit/scoreboard/DisplaySlot")) { + if (name.startsWith("SIDEBAR_") && !name.startsWith("SIDEBAR_TEAM_")) { @@ -67,9 +68,9 @@ index 128c9d81814ba1fb24895962e5f08495dbedb176..812819e814cfbdb542051a7dbfe123d3 + } + } + // Paper end - DisplaySlot - - if ( owner.equals( "org/bukkit/block/Biome" ) ) - { + if (owner.equals("org/bukkit/block/Biome")) { + switch (name) { + case "NETHER": diff --git a/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java b/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java new file mode 100644 index 0000000000000000000000000000000000000000..69c9678f8218c240be1044eeabe1c6bef7747b1e diff --git a/patches/server/0654-Add-more-advancement-API.patch b/patches/server/0654-Add-more-advancement-API.patch index 898749f4afde..9504a69ec5b6 100644 --- a/patches/server/0654-Add-more-advancement-API.patch +++ b/patches/server/0654-Add-more-advancement-API.patch @@ -164,18 +164,18 @@ index 8ca86852319d7463f60832bc98b825b0b4325995..62ada73302c6b3ce3fb2dcc8c31a1d9c private final DisplayInfo handle; diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 812819e814cfbdb542051a7dbfe123d3c59e66bd..61d00421b295103a6964b22fe0dfaf097bd7a671 100644 +index a06352499b9f2c6fb84e585459077b4aa1886d6f..6d6a7abe1aa39a2e4ecf3ac5f55b1f227e1a9db9 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -56,6 +56,7 @@ public class Commodore - ) ); +@@ -56,6 +56,7 @@ public class Commodore { + ); // Paper start - Plugin rewrites + private static final String CB_PACKAGE = org.bukkit.Bukkit.getServer().getClass().getPackageName().replace('.', '/'); private static final Map SEARCH_AND_REMOVE = initReplacementsMap(); - private static Map initReplacementsMap() - { -@@ -457,6 +458,11 @@ public class Commodore + private static Map initReplacementsMap() { + Map getAndRemove = new HashMap<>(); +@@ -388,6 +389,11 @@ public class Commodore { super.visitMethodInsn(opcode, owner, name, "()Lcom/destroystokyo/paper/profile/PlayerProfile;", itf); return; } @@ -185,8 +185,8 @@ index 812819e814cfbdb542051a7dbfe123d3c59e66bd..61d00421b295103a6964b22fe0dfaf09 + return; + } // Paper end - if ( modern ) - { + + if (modern) { diff --git a/src/test/java/io/papermc/paper/advancement/AdvancementFrameTest.java b/src/test/java/io/papermc/paper/advancement/AdvancementFrameTest.java new file mode 100644 index 0000000000000000000000000000000000000000..47535c27d7cffc4b5ee6cc9e145b1087477eef79 diff --git a/patches/server/0655-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0655-Add-ItemFactory-getSpawnEgg-API.patch index 0c570a095129..1876c86ea17e 100644 --- a/patches/server/0655-Add-ItemFactory-getSpawnEgg-API.patch +++ b/patches/server/0655-Add-ItemFactory-getSpawnEgg-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add ItemFactory#getSpawnEgg API diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 866106d0d773e407a0cdd8614818cba4ab910040..259489c7d0f4b5ce3e8f4294f4f853e9b51ded0b 100644 +index 12f90520e4d6d5fcea0c2f8e19dad9102970cd99..2dc5cdf72034f27cf9c61ce979a7018f169bb786 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -570,4 +570,19 @@ public final class CraftItemFactory implements ItemFactory { +@@ -564,4 +564,19 @@ public final class CraftItemFactory implements ItemFactory { new net.md_5.bungee.api.chat.TextComponent(customName)); } // Paper end - bungee hover events @@ -29,14 +29,13 @@ index 866106d0d773e407a0cdd8614818cba4ab910040..259489c7d0f4b5ce3e8f4294f4f853e9 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 61d00421b295103a6964b22fe0dfaf097bd7a671..2a75bd263dce91bc64601f96b622ed6d4fb18fe6 100644 +index 6d6a7abe1aa39a2e4ecf3ac5f55b1f227e1a9db9..010014c06fcea7d603160928f124f54d6e5e63d8 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -464,6 +464,16 @@ public class Commodore - return; +@@ -396,6 +396,15 @@ public class Commodore { } // Paper end -+ + + // Paper start - ItemFactory#getSpawnEgg (paper had original method that returned ItemStack, upstream added identical but returned Material) + if (owner.equals("org/bukkit/inventory/ItemFactory") && name.equals("getSpawnEgg") && desc.equals("(Lorg/bukkit/entity/EntityType;)Lorg/bukkit/inventory/ItemStack;")) { + super.visitInsn(Opcodes.SWAP); // has 1 param, this moves the owner instance to the top for the checkcast @@ -46,6 +45,6 @@ index 61d00421b295103a6964b22fe0dfaf097bd7a671..2a75bd263dce91bc64601f96b622ed6d + return; + } + // Paper end - ItemFactory#getSpawnEgg - if ( modern ) - { - if ( owner.equals( "org/bukkit/Material" ) ) + if (modern) { + if (owner.equals("org/bukkit/Material") || (instantiatedMethodType != null && instantiatedMethodType.getDescriptor().startsWith("(Lorg/bukkit/Material;)"))) { + switch (name) { diff --git a/patches/server/0660-Add-API-for-resetting-a-single-score.patch b/patches/server/0660-Add-API-for-resetting-a-single-score.patch index 0fc3bdf5fee1..b9dd1c2be366 100644 --- a/patches/server/0660-Add-API-for-resetting-a-single-score.patch +++ b/patches/server/0660-Add-API-for-resetting-a-single-score.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add API for resetting a single score It was only possible to reset all scores for a specific entry, instead of resetting only specific scores. diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java -index a7f53c135bae2a464e7cd28bf8e990d692c63d63..be020d6b686c1ad5bd8b7cee0b6050304d434022 100644 +index 29e24461e29e4cf3d31497198debcde18761ad73..ceb1a39c02c3cfa7632a0fdca414c7046888fcb1 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java -@@ -68,4 +68,12 @@ final class CraftScore implements Score { +@@ -66,4 +66,12 @@ final class CraftScore implements Score { public CraftScoreboard getScoreboard() { return this.objective.getScoreboard(); } diff --git a/patches/server/0661-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0661-Add-Raw-Byte-Entity-Serialization.patch index 157a4fccf802..4479e72d2188 100644 --- a/patches/server/0661-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0661-Add-Raw-Byte-Entity-Serialization.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Add Raw Byte Entity Serialization public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6f023b22a1051baaa5310d8c5a1aa6d8b76d8992..65ab99c3f3f1478db6e14d713e82346d3ecc06a5 100644 +index 8db434d01f2771a94cd4c4a662ea0482b2a02307..58aa16888666f81ba688037bff61d149a03767af 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2157,6 +2157,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2159,6 +2159,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } diff --git a/patches/server/0666-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0666-Add-paper-mobcaps-and-paper-playermobcaps.patch index b0aa5c906058..9fcd87b7725d 100644 --- a/patches/server/0666-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0666-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -278,10 +278,10 @@ index 9df761f5cf043e8d2dffa711c20ab32fe2992331..d08c7b0b52065980f1f13c5533ff6355 // Paper start - add parameters and int ret type spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 21dfa2d10e1c67c968b59eb11132ab1ff46ba2d7..ca605b33c57159add46f6b84c975c25c678fdf17 100644 +index 7621b77d49330e462c4857f2033d74723eee4281..e7e29ee51247fd7d5749d72d34a39d210e0c83ff 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2280,6 +2280,11 @@ public final class CraftServer implements Server { +@@ -2279,6 +2279,11 @@ public final class CraftServer implements Server { @Override public int getSpawnLimit(SpawnCategory spawnCategory) { @@ -294,7 +294,7 @@ index 21dfa2d10e1c67c968b59eb11132ab1ff46ba2d7..ca605b33c57159add46f6b84c975c25c } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 04c6d7c60123e6020c78eeb9a4712ead71e64871..ed0f6e460254a439edf15cca5458101b7146d391 100644 +index b52d3413cfe725ff5778c897a0ba06ca834e533f..24156bd9d964e2c32bc758dd9e099744cf8ac647 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1761,9 +1761,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0678-Execute-chunk-tasks-mid-tick.patch b/patches/server/0678-Execute-chunk-tasks-mid-tick.patch index 7fda5bbc5fce..44b55eed83d3 100644 --- a/patches/server/0678-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/0678-Execute-chunk-tasks-mid-tick.patch @@ -19,10 +19,10 @@ index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..46449728f69ee7d4f78470f8da23c055 private MinecraftTimings() {} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6f17e5631aace53f75e6badf514dbb77c50065b9..0a23cfeaba071c2179de1931caa86bc46462c338 100644 +index 26f4516f20336ddfaf868337cab3a05166f01b8d..6873036e7d24a2b8e85ab7ae270eec63bd7e7b5b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1347,8 +1347,79 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop DEFAULT_FACTORY = new BlockStateFactory(CraftBlockState.class) { @Override public CraftBlockState createBlockState(World world, BlockPos blockPosition, net.minecraft.world.level.block.state.BlockState blockData, BlockEntity tileEntity) { @@ -71,7 +71,7 @@ index 2fe8f7dfefd6e1f9b06f1d4821894091a8e6400e..000724a070f7f053c14cb53ecc45f0ee - return new CraftBlockEntityState<>(world, tileEntity); - } + // Paper - revert upstream's revert of the block state changes. Block entities that have already had the block type set to AIR are still valid, upstream decided to ignore them - Preconditions.checkState(tileEntity == null, "Unexpected BlockState for %s", CraftMagicNumbers.getMaterial(blockData.getBlock())); + Preconditions.checkState(tileEntity == null, "Unexpected BlockState for %s", CraftBlockType.minecraftToBukkit(blockData.getBlock())); return new CraftBlockState(world, blockPosition, blockData); } }; @@ -341,7 +341,7 @@ index 2fe8f7dfefd6e1f9b06f1d4821894091a8e6400e..000724a070f7f053c14cb53ecc45f0ee } private static void register(Material blockType, BlockStateFactory factory) { -@@ -343,30 +181,33 @@ public final class CraftBlockStates { +@@ -342,30 +180,33 @@ public final class CraftBlockStates { } private static > void register( @@ -367,7 +367,7 @@ index 2fe8f7dfefd6e1f9b06f1d4821894091a8e6400e..000724a070f7f053c14cb53ecc45f0ee + // Paper start + BlockStateFactory factory = new BlockEntityStateFactory<>(blockStateType, blockStateConstructor, blockEntityType::create); + for (net.minecraft.world.level.block.Block block : blockEntityType.validBlocks) { -+ CraftBlockStates.register(CraftMagicNumbers.getMaterial(block), factory); ++ CraftBlockStates.register(CraftBlockType.minecraftToBukkit(block), factory); } + CraftBlockStates.register(blockEntityType, factory); + // Paper end @@ -390,7 +390,7 @@ index 2fe8f7dfefd6e1f9b06f1d4821894091a8e6400e..000724a070f7f053c14cb53ecc45f0ee public static Class getBlockStateType(Material material) { Preconditions.checkNotNull(material, "material is null"); return CraftBlockStates.getFactory(material).blockStateType; -@@ -382,6 +223,13 @@ public final class CraftBlockStates { +@@ -381,6 +222,13 @@ public final class CraftBlockStates { return null; } @@ -404,7 +404,7 @@ index 2fe8f7dfefd6e1f9b06f1d4821894091a8e6400e..000724a070f7f053c14cb53ecc45f0ee public static BlockState getBlockState(Block block) { // Paper start return CraftBlockStates.getBlockState(block, true); -@@ -439,7 +287,7 @@ public final class CraftBlockStates { +@@ -438,7 +286,7 @@ public final class CraftBlockStates { if (world != null && tileEntity == null && CraftBlockStates.isTileEntityOptional(material)) { factory = CraftBlockStates.DEFAULT_FACTORY; } else { @@ -414,7 +414,7 @@ index 2fe8f7dfefd6e1f9b06f1d4821894091a8e6400e..000724a070f7f053c14cb53ecc45f0ee return factory.createBlockState(world, blockPosition, blockData, tileEntity); } diff --git a/src/test/java/org/bukkit/craftbukkit/block/BlockStateTest.java b/src/test/java/org/bukkit/craftbukkit/block/BlockStateTest.java -index e31689815b562c8b0644294b00502f7a1dc9911c..cdb05c98836e07548c993b9b8a588e8000190d21 100644 +index 81d4c8867ebcba1b805be1828e0a6a476963a855..9ff1a8068533ba5fc2fb43188d9a5c544a907618 100644 --- a/src/test/java/org/bukkit/craftbukkit/block/BlockStateTest.java +++ b/src/test/java/org/bukkit/craftbukkit/block/BlockStateTest.java @@ -7,6 +7,7 @@ import net.minecraft.core.registries.BuiltInRegistries; @@ -423,9 +423,9 @@ index e31689815b562c8b0644294b00502f7a1dc9911c..cdb05c98836e07548c993b9b8a588e80 import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; import org.bukkit.Material; - import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.support.AbstractTestingBase; -@@ -42,4 +43,13 @@ public class BlockStateTest extends AbstractTestingBase { + import org.junit.jupiter.api.Test; +@@ -41,4 +42,13 @@ public class BlockStateTest extends AbstractTestingBase { } } } diff --git a/patches/server/0705-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0705-don-t-attempt-to-teleport-dead-entities.patch index d31fabaa971a..88f7c42f4dc8 100644 --- a/patches/server/0705-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0705-don-t-attempt-to-teleport-dead-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 61a25a5557309d8640795322d77bc61ca5a91f10..d419ccff995a7d7bd83f31fd961e06899881b254 100644 +index b01f722e9d52254e68634dbdf0749fa0fcc81da8..9e617eb10380525f1aa7aa9cd7096aa133fe5920 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -792,7 +792,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -794,7 +794,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit start public void postTick() { // No clean way to break out of ticking once the entity has been copied to a new world, so instead we move the portalling later in the tick cycle diff --git a/patches/server/0715-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0715-Allow-delegation-to-vanilla-chunk-gen.patch index 5439e3d13fb1..001dcd4eed5e 100644 --- a/patches/server/0715-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0715-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d20ff695dd77e3d8f775db917f0a6056a266d670..23124f8b302e3ac5751c03e3839d2c35e24e5b30 100644 +index e7e29ee51247fd7d5749d72d34a39d210e0c83ff..ea5147262daade44265af7aa029d02f8314673ee 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2460,6 +2460,88 @@ public final class CraftServer implements Server { +@@ -2459,6 +2459,88 @@ public final class CraftServer implements Server { return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters } @@ -98,10 +98,10 @@ index d20ff695dd77e3d8f775db917f0a6056a266d670..23124f8b302e3ac5751c03e3839d2c35 public BossBar createBossBar(String title, BarColor color, BarStyle style, BarFlag... flags) { return new CraftBossBar(title, color, style, flags); diff --git a/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java -index 5fbb9d2c4e419a3f31a8420437978606d75e5b62..5e73bd943231fd7f9ab1c850706cfde8cddc92c5 100644 +index 03eb35d5c67f125c44cf46595c93d124ac7892b8..f9f5fd5087a2e335384aa18b226b1f8d8a6748ee 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java -@@ -22,7 +22,7 @@ import org.bukkit.material.MaterialData; +@@ -23,7 +23,7 @@ import org.bukkit.material.MaterialData; public final class OldCraftChunkData implements ChunkGenerator.ChunkData { private final int minHeight; private final int maxHeight; @@ -110,7 +110,7 @@ index 5fbb9d2c4e419a3f31a8420437978606d75e5b62..5e73bd943231fd7f9ab1c850706cfde8 private final Registry biomes; private Set tiles; private final Set lights = new HashSet<>(); -@@ -193,7 +193,13 @@ public final class OldCraftChunkData implements ChunkGenerator.ChunkData { +@@ -194,7 +194,13 @@ public final class OldCraftChunkData implements ChunkGenerator.ChunkData { return this.tiles; } diff --git a/patches/server/0716-Collision-optimisations.patch b/patches/server/0716-Collision-optimisations.patch index afae575832d6..5a9ed29a4d6b 100644 --- a/patches/server/0716-Collision-optimisations.patch +++ b/patches/server/0716-Collision-optimisations.patch @@ -2214,10 +2214,10 @@ index 159932e2807c8d51fbf141c2145a138a39ea8abe..41a5d509a398972db910d32babb70e9b entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d419ccff995a7d7bd83f31fd961e06899881b254..4903c0ddff7a7fcfdadb62e92ff285b77bd8eacf 100644 +index 9e617eb10380525f1aa7aa9cd7096aa133fe5920..519e3f0e376198fb399819f4587ccf935b93ea1a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1215,9 +1215,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1217,9 +1217,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S float f = this.getBlockSpeedFactor(); this.setDeltaMovement(this.getDeltaMovement().multiply((double) f, 1.0D, (double) f)); @@ -2265,7 +2265,7 @@ index d419ccff995a7d7bd83f31fd961e06899881b254..4903c0ddff7a7fcfdadb62e92ff285b7 if (this.remainingFireTicks <= 0) { this.setRemainingFireTicks(-this.getFireImmuneTicks()); } -@@ -1397,32 +1432,82 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1399,32 +1434,82 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } private Vec3 collide(Vec3 movement) { @@ -2364,7 +2364,7 @@ index d419ccff995a7d7bd83f31fd961e06899881b254..4903c0ddff7a7fcfdadb62e92ff285b7 } public static Vec3 collideBoundingBox(@Nullable Entity entity, Vec3 movement, AABB entityBoundingBox, Level world, List collisions) { -@@ -2627,11 +2712,70 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2629,11 +2714,70 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S float f = this.dimensions.width * 0.8F; AABB axisalignedbb = AABB.ofSize(this.getEyePosition(), (double) f, 1.0E-6D, (double) f); @@ -2600,7 +2600,7 @@ index a25497eec004add7408a63b1a0f09e3fa443b324..9f892de55ab03367daed4c30cc44c9dd // Paper start diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 3b13a13c4e7de12ed0cac354701bf3502d788b59..3f196645f2259ed468e0dc3a05ecbd84d3792af0 100644 +index 94a4ceeea167164fb589518881952dd5e082f8c2..2287987d5bb0e6c4cb6153f04c420fe5ec7c8089 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -300,6 +300,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0737-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0737-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch index 08a8876b57fd..be0eedab9306 100644 --- a/patches/server/0737-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch +++ b/patches/server/0737-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add missing IAE check for PersistentDataContainer#has diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java -index 268563389077f92921411e866ec26e312e33ee23..43545bac94fbf118a982b654fbe0d6afc6e25897 100644 +index 3001bb0e3d4af9b16645a0136093db594b89ab01..984e988a47aa55a3fd92198e379d0f92f511daef 100644 --- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java -@@ -56,6 +56,7 @@ public class CraftPersistentDataContainer implements PersistentDataContainer { +@@ -57,6 +57,7 @@ public class CraftPersistentDataContainer implements PersistentDataContainer { @Override public boolean has(NamespacedKey key) { diff --git a/patches/server/0741-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0741-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch index acc689b55b2d..ad459f55557e 100644 --- a/patches/server/0741-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch +++ b/patches/server/0741-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch @@ -5,15 +5,15 @@ Subject: [PATCH] Added getHostname to AsyncPlayerPreLoginEvent diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index a7a6d3d243bb11101cfe6fce97dad74242597121..ec6a56e298872a403e0451944f7139256eab31d6 100644 +index 856699cd8976bca49bb4f7cae424bad606166b9d..12dc053af430218fae9ec30d3e793e0323ca1137 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -294,7 +294,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -299,7 +299,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, - // Paper start - com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(gameprofile); -- AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile); // Paper - add rawAddress -+ AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile, ServerLoginPacketListenerImpl.this.connection.hostname); // Paper - add rawAddress & hostname - server.getPluginManager().callEvent(asyncEvent); - profile = asyncEvent.getPlayerProfile(); - profile.complete(true); // Paper - setPlayerProfileAPI + // Paper start + com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(gameprofile); +- AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile); // Paper - add rawAddress ++ AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile, ServerLoginPacketListenerImpl.this.connection.hostname); // Paper - add rawAddress & hostname + server.getPluginManager().callEvent(asyncEvent); + profile = asyncEvent.getPlayerProfile(); + profile.complete(true); // Paper - setPlayerProfileAPI diff --git a/patches/server/0745-Freeze-Tick-Lock-API.patch b/patches/server/0745-Freeze-Tick-Lock-API.patch index 989b718a9ba0..b8278a2f4bd1 100644 --- a/patches/server/0745-Freeze-Tick-Lock-API.patch +++ b/patches/server/0745-Freeze-Tick-Lock-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0d561537ab767e357c2e4385d0d87f8e3db022d8..1fd71bd27f601312f6ff00fbcb9b6687af284001 100644 +index 4ffd551e6ea540cff14eaba0e95ed2c7c0bca513..2f0c5e1b4b2dfb8006447c296170e80a97b36562 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -407,6 +407,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -409,6 +409,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S private org.bukkit.util.Vector origin; @javax.annotation.Nullable private UUID originWorld; @@ -16,7 +16,7 @@ index 0d561537ab767e357c2e4385d0d87f8e3db022d8..1fd71bd27f601312f6ff00fbcb9b6687 public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -838,7 +839,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -840,7 +841,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setRemainingFireTicks(this.remainingFireTicks - 1); } @@ -25,7 +25,7 @@ index 0d561537ab767e357c2e4385d0d87f8e3db022d8..1fd71bd27f601312f6ff00fbcb9b6687 this.setTicksFrozen(0); this.level().levelEvent((Player) null, 1009, this.blockPosition, 1); } -@@ -2452,6 +2453,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2454,6 +2455,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (fromNetherPortal) { nbttagcompound.putBoolean("Paper.FromNetherPortal", true); } @@ -35,7 +35,7 @@ index 0d561537ab767e357c2e4385d0d87f8e3db022d8..1fd71bd27f601312f6ff00fbcb9b6687 // Paper end return nbttagcompound; } catch (Throwable throwable) { -@@ -2596,6 +2600,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2598,6 +2602,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (spawnReason == null) { spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; } diff --git a/patches/server/0749-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0749-API-for-creating-command-sender-which-forwards-feedb.patch index 63a71e24bacf..fcd9ab105acd 100644 --- a/patches/server/0749-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/server/0749-API-for-creating-command-sender-which-forwards-feedb.patch @@ -122,10 +122,10 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index be83340a6b2e64883c04a3593199179b856c5722..7aed22672cc9799fd577f225c350f6a6649b7f48 100644 +index c5aa5bd2a9372d9d21ac600fdf4041d78186c002..44faa651250397ab5ceef0cd905bd4984b246a33 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2111,6 +2111,13 @@ public final class CraftServer implements Server { +@@ -2110,6 +2110,13 @@ public final class CraftServer implements Server { return this.console.console; } diff --git a/patches/server/0753-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0753-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index dc352a98f21e..56a4a21224d6 100644 --- a/patches/server/0753-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0753-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7aed22672cc9799fd577f225c350f6a6649b7f48..d1570b795894cda203154b9efc6f1f23759eab74 100644 +index 44faa651250397ab5ceef0cd905bd4984b246a33..bd452d9200179d9e385ff415822d8e810a8da30c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2288,6 +2288,8 @@ public final class CraftServer implements Server { +@@ -2287,6 +2287,8 @@ public final class CraftServer implements Server { @Override public int getSpawnLimit(SpawnCategory spawnCategory) { // Paper start diff --git a/patches/server/0754-Add-GameEvent-tags.patch b/patches/server/0754-Add-GameEvent-tags.patch index f201a89aba51..2ad5887d87ee 100644 --- a/patches/server/0754-Add-GameEvent-tags.patch +++ b/patches/server/0754-Add-GameEvent-tags.patch @@ -46,10 +46,10 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d1570b795894cda203154b9efc6f1f23759eab74..e28cb2db9b93bf3c045563a8df9d1c819f054851 100644 +index bd452d9200179d9e385ff415822d8e810a8da30c..48961913ed0a437129432cfa5fa707904d5bcdb2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2709,6 +2709,15 @@ public final class CraftServer implements Server { +@@ -2708,6 +2708,15 @@ public final class CraftServer implements Server { return (org.bukkit.Tag) new CraftEntityTag(BuiltInRegistries.ENTITY_TYPE, entityTagKey); } } @@ -65,7 +65,7 @@ index d1570b795894cda203154b9efc6f1f23759eab74..e28cb2db9b93bf3c045563a8df9d1c81 default -> throw new IllegalArgumentException(); } -@@ -2741,6 +2750,13 @@ public final class CraftServer implements Server { +@@ -2740,6 +2749,13 @@ public final class CraftServer implements Server { net.minecraft.core.Registry> entityTags = BuiltInRegistries.ENTITY_TYPE; return entityTags.getTags().map(pair -> (org.bukkit.Tag) new CraftEntityTag(entityTags, pair.getFirst())).collect(ImmutableList.toImmutableList()); } diff --git a/patches/server/0755-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0755-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index d4ee6e925eb3..17138e0a469d 100644 --- a/patches/server/0755-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0755-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,10 +9,10 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index bc181f3f59eef3f2f3645e3facb37d5e4a605d34..8f375cc054f6c15537eca4927ea5cb0eb6a93b67 100644 +index ac4d96345c985284a1306055b164a74a483cb444..396cbd1a0a94e913475bad65faf8e871b7105895 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1422,6 +1422,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e709b6fda1703c0787ddeedec9b7cc09f440d652..6dbd45103571f033daafe085c5ccb962e5d9a17a 100644 +index d41cd3075a5f59f271ddee7009a3ed26a34d3041..719d2ac5907b4c96828460daae9f254c2cd3e840 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1453,7 +1453,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { Preconditions.checkArgument(material != null, "Material cannot be null"); Preconditions.checkArgument(material.isBlock(), "Material.%s must be a block", material); -- FallingBlockEntity entity = FallingBlockEntity.fall(this.world, BlockPos.containing(location.getX(), location.getY(), location.getZ()), CraftMagicNumbers.getBlock(material).defaultBlockState(), SpawnReason.CUSTOM); +- FallingBlockEntity entity = FallingBlockEntity.fall(this.world, BlockPos.containing(location.getX(), location.getY(), location.getZ()), CraftBlockType.bukkitToMinecraft(material).defaultBlockState(), SpawnReason.CUSTOM); + // Paper start - restore API behavior for spawning falling blocks -+ FallingBlockEntity entity = new FallingBlockEntity(this.world, location.getX(), location.getY(), location.getZ(), CraftMagicNumbers.getBlock(material).defaultBlockState()); // Paper ++ FallingBlockEntity entity = new FallingBlockEntity(this.world, location.getX(), location.getY(), location.getZ(), CraftBlockType.bukkitToMinecraft(material).defaultBlockState()); // Paper + entity.time = 1; + + this.world.addFreshEntity(entity, SpawnReason.CUSTOM); diff --git a/patches/server/0772-Implement-enchantWithLevels-API.patch b/patches/server/0772-Implement-enchantWithLevels-API.patch index b5459454d4e9..7267b726773b 100644 --- a/patches/server/0772-Implement-enchantWithLevels-API.patch +++ b/patches/server/0772-Implement-enchantWithLevels-API.patch @@ -5,20 +5,10 @@ Subject: [PATCH] Implement enchantWithLevels API diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 259489c7d0f4b5ce3e8f4294f4f853e9b51ded0b..5f6b93be9e81df8fae9a5ab160a232b65ce7b8bc 100644 +index 2dc5cdf72034f27cf9c61ce979a7018f169bb786..5df92d21e1e1827c59352d9f89dbfb23af7c0d7b 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -495,8 +495,7 @@ public final class CraftItemFactory implements ItemFactory { - } - - CraftItemStack craft = (CraftItemStack) itemStack; -- EnchantmentHelper.enchantItem(source, craft.handle, level, allowTreasures); -- return craft; -+ return EnchantmentHelper.enchantItem(source, craft.handle, level, allowTreasures).asBukkitCopy(); // Paper - fix broken implementation - } - - // Paper start - Adventure -@@ -585,4 +584,21 @@ public final class CraftItemFactory implements ItemFactory { +@@ -579,4 +579,21 @@ public final class CraftItemFactory implements ItemFactory { return eggItem == null ? null : new net.minecraft.world.item.ItemStack(eggItem).asBukkitMirror(); } // Paper end diff --git a/patches/server/0778-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0778-Ensure-entity-passenger-world-matches-ridden-entity.patch index aaf637389975..8bc434041efa 100644 --- a/patches/server/0778-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0778-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1fd71bd27f601312f6ff00fbcb9b6687af284001..624e0b1af20a3595734bc3d59a674e902698b6d6 100644 +index 2f0c5e1b4b2dfb8006447c296170e80a97b36562..8284b150bbca66fc536418ec66bf93fb205cdcc5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2845,7 +2845,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2847,7 +2847,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean startRiding(Entity entity, boolean force) { diff --git a/patches/server/0789-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0789-Fix-CME-in-CraftPersistentDataTypeRegistry.patch index 0510692ca979..feadff040ab5 100644 --- a/patches/server/0789-Fix-CME-in-CraftPersistentDataTypeRegistry.patch +++ b/patches/server/0789-Fix-CME-in-CraftPersistentDataTypeRegistry.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix CME in CraftPersistentDataTypeRegistry diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataTypeRegistry.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataTypeRegistry.java -index 36b69553eaf94df9230b8d57e014be0dcc56cdba..b074d9692a3194a0703a4aceb6800dd5624d1fbc 100644 +index f83fbad4b579726ba5f759de3aa752caaf0aa79c..e0ef6964934ca0b280eded00b38220e3c3a0f035 100644 --- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataTypeRegistry.java +++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataTypeRegistry.java -@@ -89,7 +89,7 @@ public final class CraftPersistentDataTypeRegistry { +@@ -121,7 +121,7 @@ public final class CraftPersistentDataTypeRegistry { } } @@ -16,4 +16,4 @@ index 36b69553eaf94df9230b8d57e014be0dcc56cdba..b074d9692a3194a0703a4aceb6800dd5 + private final Map adapters = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - Replace HashMap with ConcurrentHashMap to avoid CME /** - * Creates a suitable adapter instance for the primitive class type + * Creates a suitable adapter instance for the primitive class type. diff --git a/patches/server/0798-Add-support-for-Proxy-Protocol.patch b/patches/server/0798-Add-support-for-Proxy-Protocol.patch index 11d3dea224d2..6fd4cd5598c8 100644 --- a/patches/server/0798-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0798-Add-support-for-Proxy-Protocol.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add support for Proxy Protocol diff --git a/build.gradle.kts b/build.gradle.kts -index ed352bcf238199534720b17ab94401153eeeed1b..58da26ad2f128ba0b66f86820f60853f4be352f0 100644 +index 517920023bc28fea04eeb709364d5a7292adcc5e..444ff797c70b0e285d4272ea2ce3d72453c9bda5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,7 @@ dependencies { @@ -15,7 +15,7 @@ index ed352bcf238199534720b17ab94401153eeeed1b..58da26ad2f128ba0b66f86820f60853f + implementation("io.netty:netty-codec-haproxy:4.1.97.Final") // Paper - Add support for proxy protocol // Paper end implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion - implementation("org.ow2.asm:asm:9.5") + implementation("org.ow2.asm:asm-commons:9.5") diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java index 54c7f34ba3dc8466223e589702d0c93af8cf52a0..79326308f6126f84a3cbb3d5a33302de048d8a50 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java diff --git a/patches/server/0803-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0803-Prevent-entity-loading-causing-async-lookups.patch index 25f15dd7a4f5..2db3ffafcf66 100644 --- a/patches/server/0803-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0803-Prevent-entity-loading-causing-async-lookups.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bc1b08f778537f7973ed1249dee63d9d12735dd1..607bcd2ef45f6d77b43e38211e3fe0b3070504a6 100644 +index 2c3193fdfb0e4b4a47cceb2da8b3fe85bd1e6848..edea89eebb9a99e41dc2bcbabc94b6775f5470df 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -801,6 +801,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -803,6 +803,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void baseTick() { this.level().getProfiler().push("entityBaseTick"); diff --git a/patches/server/0804-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0804-Throw-exception-on-world-create-while-being-ticked.patch index 744561858b26..7c6b011e7322 100644 --- a/patches/server/0804-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0804-Throw-exception-on-world-create-while-being-ticked.patch @@ -7,7 +7,7 @@ There are no plans to support creating worlds while worlds are being ticked themselvess. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3da647154516ded20fd18ee4baa7242e73ab91e8..5b39e4a6b39e73cfe5645d80cd823e582ade6bc2 100644 +index d8eb1dbc1601c1f76183ddd78b88d0ee6df68bed..002511a54565aab9eb4552fecdf974fe0eab9122 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -310,6 +310,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -1639,7 +1640,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper -@@ -1717,6 +1720,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> 4, z >> 4).getHeight(CraftHeightMap.toNMS(heightMap), x, z); } -@@ -2424,6 +2444,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2415,6 +2435,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { // Spigot end // Paper start public java.util.concurrent.CompletableFuture getChunkAtAsync(int x, int z, boolean gen, boolean urgent) { diff --git a/patches/server/0828-Block-Ticking-API.patch b/patches/server/0828-Block-Ticking-API.patch index 45523d4df565..1e3e4cefc212 100644 --- a/patches/server/0828-Block-Ticking-API.patch +++ b/patches/server/0828-Block-Ticking-API.patch @@ -31,10 +31,10 @@ index 6d10396347b69d9243ab902ecc68ede93fa17b7d..0a96b00a98227714ef99005e0a223765 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index f116f6997562a3ccb1a4830515ea6ee25ce29d77..c6a0fac2ee35056f31b60eebc364c7bda8252d74 100644 +index f75455bf199258fa7097daf777d28ff672039fa2..ef4d45ebfe84467454a209501dad7db7fb316416 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -@@ -717,4 +717,11 @@ public class CraftBlockData implements BlockData { +@@ -718,4 +718,11 @@ public class CraftBlockData implements BlockData { return speed; } // Paper end - destroy speed API diff --git a/patches/server/0829-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0829-Add-Velocity-IP-Forwarding-Support.patch index f10187625663..3b7f3b1ad8cd 100644 --- a/patches/server/0829-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0829-Add-Velocity-IP-Forwarding-Support.patch @@ -95,7 +95,7 @@ index 0000000000000000000000000000000000000000..a34381122de53123169927e181df6628 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 5264235c1547c78b8123e2efb07dcb77486cc5bf..db363bca264e37c29fda58291246aba0d3759de0 100644 +index 62c66bb3bcb1cb0a09011aa81bbb39f23623506f..5969f45d479188aceedfbe7931c69c36de78a705 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -274,13 +274,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -123,7 +123,7 @@ index 5264235c1547c78b8123e2efb07dcb77486cc5bf..db363bca264e37c29fda58291246aba0 DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index ec6a56e298872a403e0451944f7139256eab31d6..8ce2fd887d9c2cf86fa4ec0332b70681f1572911 100644 +index 82554ec47cd10f4bd27149acb9916249ff55ed3a..b8d9ee1920ce1aa2f881c12e5c8c669287ad677f 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -64,6 +64,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -148,23 +148,23 @@ index ec6a56e298872a403e0451944f7139256eab31d6..8ce2fd887d9c2cf86fa4ec0332b70681 + return; + } + // Paper end - // Spigot start - // Paper start - Cache authenticator threads - authenticatorPool.execute(new Runnable() { -@@ -286,6 +297,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, - public class LoginHandler { + // CraftBukkit start + // Paper start - Cache authenticator threads + authenticatorPool.execute(new Runnable() { +@@ -291,6 +302,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, - public void fireEvents(GameProfile gameprofile) throws Exception { -+ // Paper start - Velocity support -+ if (ServerLoginPacketListenerImpl.this.velocityLoginMessageId == -1 && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) { -+ disconnect("This server requires you to connect with Velocity."); -+ return; -+ } -+ // Paper end - String playerName = gameprofile.getName(); - java.net.InetAddress address = ((java.net.InetSocketAddress) ServerLoginPacketListenerImpl.this.connection.getRemoteAddress()).getAddress(); - java.net.InetAddress rawAddress = ((java.net.InetSocketAddress) ServerLoginPacketListenerImpl.this.connection.channel.remoteAddress()).getAddress(); // Paper -@@ -335,6 +352,49 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + // CraftBukkit start + private void callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception { ++ // Paper start - Velocity support ++ if (ServerLoginPacketListenerImpl.this.velocityLoginMessageId == -1 && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) { ++ disconnect("This server requires you to connect with Velocity."); ++ return; ++ } ++ // Paper end + String playerName = gameprofile.getName(); + java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress(); + java.net.InetAddress rawAddress = ((java.net.InetSocketAddress) this.connection.channel.remoteAddress()).getAddress(); // Paper +@@ -337,6 +354,49 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @Override public void handleCustomQueryPacket(ServerboundCustomQueryAnswerPacket packet) { @@ -202,7 +202,7 @@ index ec6a56e298872a403e0451944f7139256eab31d6..8ce2fd887d9c2cf86fa4ec0332b70681 + // Proceed with login + authenticatorPool.execute(() -> { + try { -+ new LoginHandler().fireEvents(this.authenticatedProfile); ++ this.callPlayerPreLoginEvents(this.authenticatedProfile); + } catch (Exception ex) { + disconnect("Failed to verify username!"); + server.server.getLogger().log(java.util.logging.Level.WARNING, "Exception verifying " + this.authenticatedProfile.getName(), ex); @@ -215,7 +215,7 @@ index ec6a56e298872a403e0451944f7139256eab31d6..8ce2fd887d9c2cf86fa4ec0332b70681 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 90eca456db0545de8a8247f7638d2e990fdfd246..2836eb1edefc46556d71a23ddbb50cb495b44021 100644 +index 2d12d59974224d1adaf862e5a9bbffe804bd07ce..0b4639e56b87319e78c1b46fb581d8bb74ead2e4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -803,7 +803,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0833-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0833-Fire-EntityChangeBlockEvent-in-more-places.patch index e56134f6674b..dacb1abbfc32 100644 --- a/patches/server/0833-Fire-EntityChangeBlockEvent-in-more-places.patch +++ b/patches/server/0833-Fire-EntityChangeBlockEvent-in-more-places.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fire EntityChangeBlockEvent in more places Co-authored-by: ChristopheG <61288881+chrisgdt@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/LightningBolt.java b/src/main/java/net/minecraft/world/entity/LightningBolt.java -index 80740ca823915fb2c854f13445d81964e0e971e5..255fb5e922c63130708e4bcab208b4db52a58387 100644 +index 09c981e2573305bd7f5c3cbcc8f240fa8705a9f2..17f664f75aaaea042477e4b467c17c17d1024e3d 100644 --- a/src/main/java/net/minecraft/world/entity/LightningBolt.java +++ b/src/main/java/net/minecraft/world/entity/LightningBolt.java -@@ -98,7 +98,7 @@ public class LightningBolt extends Entity { +@@ -97,7 +97,7 @@ public class LightningBolt extends Entity { } this.powerLightningRod(); @@ -18,7 +18,7 @@ index 80740ca823915fb2c854f13445d81964e0e971e5..255fb5e922c63130708e4bcab208b4db this.gameEvent(GameEvent.LIGHTNING_STRIKE); } } -@@ -192,7 +192,7 @@ public class LightningBolt extends Entity { +@@ -191,7 +191,7 @@ public class LightningBolt extends Entity { } } @@ -27,7 +27,7 @@ index 80740ca823915fb2c854f13445d81964e0e971e5..255fb5e922c63130708e4bcab208b4db BlockState iblockdata = world.getBlockState(pos); BlockPos blockposition1; BlockState iblockdata1; -@@ -206,24 +206,29 @@ public class LightningBolt extends Entity { +@@ -205,24 +205,29 @@ public class LightningBolt extends Entity { } if (iblockdata1.getBlock() instanceof WeatheringCopper) { @@ -61,7 +61,7 @@ index 80740ca823915fb2c854f13445d81964e0e971e5..255fb5e922c63130708e4bcab208b4db if (optional.isEmpty()) { break; -@@ -234,7 +239,7 @@ public class LightningBolt extends Entity { +@@ -233,7 +238,7 @@ public class LightningBolt extends Entity { } @@ -70,7 +70,7 @@ index 80740ca823915fb2c854f13445d81964e0e971e5..255fb5e922c63130708e4bcab208b4db Iterator iterator = BlockPos.randomInCube(world.random, 10, pos, 1).iterator(); BlockPos blockposition1; -@@ -251,6 +256,7 @@ public class LightningBolt extends Entity { +@@ -250,6 +255,7 @@ public class LightningBolt extends Entity { BlockPos blockposition1Final = blockposition1; // CraftBukkit - decompile error WeatheringCopper.getPrevious(iblockdata).ifPresent((iblockdata1) -> { diff --git a/patches/server/0836-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0836-Added-byte-array-serialization-deserialization-for-P.patch index 03ee24974461..f2a4d437f02f 100644 --- a/patches/server/0836-Added-byte-array-serialization-deserialization-for-P.patch +++ b/patches/server/0836-Added-byte-array-serialization-deserialization-for-P.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Added byte array serialization/deserialization for diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java -index 43545bac94fbf118a982b654fbe0d6afc6e25897..416d2ca909d30e267fb97082a0aaac90444510de 100644 +index 984e988a47aa55a3fd92198e379d0f92f511daef..5a4e7e7150b7c137b077e0b393f17ed35b5aec34 100644 --- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java -@@ -180,4 +180,27 @@ public class CraftPersistentDataContainer implements PersistentDataContainer { +@@ -184,4 +184,27 @@ public class CraftPersistentDataContainer implements PersistentDataContainer { this.customDataTags.clear(); } // Paper end diff --git a/patches/server/0840-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0840-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch index 5601e80875bb..ffb644e841ac 100644 --- a/patches/server/0840-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch +++ b/patches/server/0840-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Mitigate effects of WorldCreator#keepSpawnLoaded ret type TODO: Remove in 1.21? diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -index 2a75bd263dce91bc64601f96b622ed6d4fb18fe6..15c5d1c048bf2780e963a1055f0a6dd77b31ff45 100644 +index 010014c06fcea7d603160928f124f54d6e5e63d8..bc008773f8cf0d416182152ecfc5a64b70744009 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java -@@ -463,6 +463,12 @@ public class Commodore +@@ -394,6 +394,12 @@ public class Commodore { super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, CB_PACKAGE + "/advancement/CraftAdvancement", "getDisplay0", desc, false); return; } diff --git a/patches/server/0844-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0844-Fix-a-bunch-of-vanilla-bugs.patch index 7ce4f0126209..fd7ad3339c9c 100644 --- a/patches/server/0844-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0844-Fix-a-bunch-of-vanilla-bugs.patch @@ -124,7 +124,7 @@ index a0603e567deeede8b4cd2ba57ded44f29239d78d..982750fd4f3f474514194df9b7638831 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d23c376b2421c8f94e5729d62beff93ce9c3b53c..742d7146c2a6d364de15b18caacc2ca6a4355f9b 100644 +index 2bfa9d1abf7a777b588314d314d06be3b4d2c6a5..0a4586d1b847de49d9e6faa16dba6de4a6a7cca6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1032,7 +1032,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -433,10 +433,10 @@ index 93f5e583635a2addeabf2adff9374dcec0b66ee4..843926beb1edd897724b512ad915894f return; } diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 3530040df9e4999ea4ccc96b5df5767fdb330fe5..1a949a682a8f18ec0e5e5a60e83315441b935416 100644 +index 11ee20c6dc87baa063e8293ebdd9d5247a3e932e..712382f800fbafa5386205e97cb76dfceaba15a3 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -@@ -674,13 +674,10 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -675,13 +675,10 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @Override public void fillStackedContents(StackedContents finder) { diff --git a/patches/server/0880-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0880-Fixes-and-additions-to-the-SpawnReason-API.patch index 4bdb479cd70f..6b49deaebe76 100644 --- a/patches/server/0880-Fixes-and-additions-to-the-SpawnReason-API.patch +++ b/patches/server/0880-Fixes-and-additions-to-the-SpawnReason-API.patch @@ -33,29 +33,6 @@ index 9652e3385ad10e5d825dd141f6be3522c596916d..6256ce68d6ecada66745fb09360cba2b } else areaEffectCloud.discard(); // Paper this.discard(); } -diff --git a/src/main/java/net/minecraft/world/level/block/CarvedPumpkinBlock.java b/src/main/java/net/minecraft/world/level/block/CarvedPumpkinBlock.java -index 8f38965b42a20ac39cb1170278562070ebf2f958..a63733fa01dc58b3c0abb28c1cd88c8b0a456083 100644 ---- a/src/main/java/net/minecraft/world/level/block/CarvedPumpkinBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/CarvedPumpkinBlock.java -@@ -92,7 +92,17 @@ public class CarvedPumpkinBlock extends HorizontalDirectionalBlock { - // clearPatternBlocks(world, shapedetector_shapedetectorcollection); // CraftBukkit - moved down - entity.moveTo((double) pos.getX() + 0.5D, (double) pos.getY() + 0.05D, (double) pos.getZ() + 0.5D, 0.0F, 0.0F); - // CraftBukkit start -- if (!world.addFreshEntity(entity, SpawnReason.BUILD_IRONGOLEM)) { -+ // Paper start - correct spawn reason -+ final SpawnReason spawnReason; -+ if (entity.getType() == EntityType.SNOW_GOLEM) { -+ spawnReason = SpawnReason.BUILD_SNOWMAN; -+ } else if (entity.getType() == EntityType.IRON_GOLEM) { -+ spawnReason = SpawnReason.BUILD_IRONGOLEM; -+ } else { -+ spawnReason = SpawnReason.DEFAULT; -+ } -+ if (!world.addFreshEntity(entity, spawnReason)) { -+ // Paper end - return; - } - CarvedPumpkinBlock.clearPatternBlocks(world, patternResult); // CraftBukkit - from above diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java index 0a2de99c22cfcc96a664dc2afe7379987ea815db..6fc8d7f93141d85d8aecc97314e747624beb5e6c 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java diff --git a/patches/server/0892-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0892-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch index e9c31357c46f..814dcb6bbe11 100644 --- a/patches/server/0892-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch +++ b/patches/server/0892-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch @@ -113,10 +113,10 @@ index c83ffba568f33323b0f8b9a03fa0b7bbbfed4355..797ece59c10bdb60a86f71ca3b7bb95d public static boolean canSetSpawn(Level world) { diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java -index 000724a070f7f053c14cb53ecc45f0ee14454c53..9271ff2a9ea05569e3c81886399aa7ab47efb05d 100644 +index f81c0d07a5efc92942d8ab5c50a8260db033307d..d3dd58ccb350d849f1d169e015369c183625c0b6 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java -@@ -277,6 +277,12 @@ public final class CraftBlockStates { +@@ -276,6 +276,12 @@ public final class CraftBlockStates { BlockEntity tileEntity = (blockEntityTag == null) ? null : BlockEntity.loadStatic(blockPosition, blockData, blockEntityTag); return CraftBlockStates.getBlockState(null, blockPosition, blockData, tileEntity); } @@ -130,7 +130,7 @@ index 000724a070f7f053c14cb53ecc45f0ee14454c53..9271ff2a9ea05569e3c81886399aa7ab // See BlockStateFactory#createBlockState(World, BlockPosition, IBlockData, TileEntity) private static CraftBlockState getBlockState(World world, BlockPos blockPosition, net.minecraft.world.level.block.state.BlockState blockData, BlockEntity tileEntity) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index d51bcd5ccda9e923f0e259c187b9f349df974dfb..a6ccc177a3435d807dd6be3bdfca7f016c094158 100644 +index 38fc706dabbeb93959638deb22311e226a48a6ee..ef7d6f898c2c94d0697e38230564e110948b0460 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1045,7 +1045,7 @@ public class CraftEventFactory { diff --git a/patches/server/0893-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0893-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index 35454f2b1b96..a0328af938d6 100644 --- a/patches/server/0893-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0893-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 250a0ade29d4cf619d99a1c052e521e94482a213..93f0ecc2eb57d4c999babb838fa2d7575f1326cf 100644 +index 04ca1f84c68a73addd2177256268bb9b444f72da..2d8223ff9e3f51e43946cfcc1bd638235c48ec11 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1160,7 +1160,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1162,7 +1162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } if (!bl.getType().isAir()) { diff --git a/patches/server/0912-Optimize-Hoppers.patch b/patches/server/0912-Optimize-Hoppers.patch index de61e1b173ba..33fd16b6e3a4 100644 --- a/patches/server/0912-Optimize-Hoppers.patch +++ b/patches/server/0912-Optimize-Hoppers.patch @@ -50,10 +50,10 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a2961f1453e3805879941c709ab74a608285db42..50316da08ae259dcc0d02c28081a352f09d1a19a 100644 +index 7c9f7aefc59ae1a785b261f80f25d3304f3bdd22..c9e1ded332fc320e87e0b4b95b97905ea0c91803 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1678,6 +1678,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper diff --git a/patches/server/0914-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0914-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch index 6bd28ec0d84a..e5cc265ab44b 100644 --- a/patches/server/0914-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch +++ b/patches/server/0914-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix crash relating to bad recipes in furnace-like tile diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 1a949a682a8f18ec0e5e5a60e83315441b935416..a18aadbf7ae83713e1f2b21553185d8000bc7699 100644 +index 712382f800fbafa5386205e97cb76dfceaba15a3..5eaab97a0c3b93a44a45e2ed11033fe01c0c95c2 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -@@ -642,6 +642,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -643,6 +643,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit Entry entry = (Entry) objectiterator.next(); worldserver.getRecipeManager().byKey((ResourceLocation) entry.getKey()).ifPresent((recipeholder) -> { diff --git a/patches/server/0930-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0930-Refresh-ProjectileSource-for-projectiles.patch index 03a90a486eaa..a29b7a8db9ef 100644 --- a/patches/server/0930-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0930-Refresh-ProjectileSource-for-projectiles.patch @@ -14,10 +14,10 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 93f0ecc2eb57d4c999babb838fa2d7575f1326cf..9357bedf69bc9709b74e05ca7514c6802757059d 100644 +index 2d8223ff9e3f51e43946cfcc1bd638235c48ec11..f5df304943abd40d2c9fee2f4d84fa1374eba387 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -384,6 +384,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -386,6 +386,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public boolean inWorld = false; public boolean generation; public int maxAirTicks = this.getDefaultMaxAirSupply(); // CraftBukkit - SPIGOT-6907: re-implement LivingEntity#setMaximumAir() diff --git a/patches/server/0947-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0947-Don-t-load-chunks-for-supporting-block-checks.patch index 70fca1ce109c..e4c46db9bdb6 100644 --- a/patches/server/0947-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0947-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9357bedf69bc9709b74e05ca7514c6802757059d..184267a5a64423e73682bdda22690eaa12c4ae79 100644 +index f5df304943abd40d2c9fee2f4d84fa1374eba387..a2607d0782e8d72d7e531a2b078674bc78daa5e3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1360,7 +1360,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1362,7 +1362,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } protected BlockPos getOnPos(float offset) { diff --git a/patches/server/0951-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0951-fix-item-meta-for-tadpole-buckets.patch index 4d1c0122861b..472ece5bf8d5 100644 --- a/patches/server/0951-fix-item-meta-for-tadpole-buckets.patch +++ b/patches/server/0951-fix-item-meta-for-tadpole-buckets.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix item meta for tadpole buckets diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 5f6b93be9e81df8fae9a5ab160a232b65ce7b8bc..c77634ec9c4e7a9eaacc81de7f95e9452b393a52 100644 +index 5df92d21e1e1827c59352d9f89dbfb23af7c0d7b..090ba0b85fe72419c419cc72b5584ec391c0cfa1 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -358,6 +358,7 @@ public final class CraftItemFactory implements ItemFactory { +@@ -357,6 +357,7 @@ public final class CraftItemFactory implements ItemFactory { case COD_BUCKET: case PUFFERFISH_BUCKET: case SALMON_BUCKET: @@ -17,7 +17,7 @@ index 5f6b93be9e81df8fae9a5ab160a232b65ce7b8bc..c77634ec9c4e7a9eaacc81de7f95e945 case GLOW_ITEM_FRAME: case PAINTING: diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 7081aebf67cc3d8deb27dfc508970f0fa5e9d1b6..9ce03abd24ae8c2f156ade360094157e20f63666 100644 +index 749bf6a897b053197988112551192abe6af2f186..d1604c52784c1bf94e797ca1f5d8146c19314c11 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -592,6 +592,7 @@ public final class CraftItemStack extends ItemStack { @@ -41,10 +41,10 @@ index 6aa64334943a22da8cfcac88d48ae8156ad7a9b4..630e16403cb1fc0f4ba798993bb0c313 Material.GLOW_ITEM_FRAME, Material.PAINTING diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java -index 937ddd3a2b9e1df2c8835079923c339178f08459..ceca8b6a4a11753bef7ad341c34ccda60114c6b5 100644 +index adb7c742e8fe3b8e0c2ecf63c627e7566285fd55..9f96ee1ac21f44ca7a41122353f72339b148f036 100644 --- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java +++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java -@@ -236,6 +236,27 @@ public class ItemMetaTest extends AbstractTestingBase { +@@ -235,6 +235,27 @@ public class ItemMetaTest extends AbstractTestingBase { } } @@ -58,11 +58,11 @@ index 937ddd3a2b9e1df2c8835079923c339178f08459..ceca8b6a4a11753bef7ad341c34ccda6 + public void testEntityTagMeta() { + for (final Item item : BuiltInRegistries.ITEM) { + if (item instanceof net.minecraft.world.item.HangingEntityItem || item instanceof net.minecraft.world.item.MobBucketItem) { -+ ItemStack stack = new ItemStack(CraftMagicNumbers.getMaterial(item)); ++ ItemStack stack = new ItemStack(CraftItemType.minecraftToBukkit(item)); + assertTrue(ENTITY_TAG_METAS.contains(stack.getItemMeta().getClass()), "missing entity tag meta handling for " + item); + stack = CraftItemStack.asNewCraftStack(net.minecraft.world.item.Items.STONE); + stack.editMeta(meta -> meta.displayName(net.kyori.adventure.text.Component.text("hello"))); -+ stack.setType(CraftMagicNumbers.getMaterial(item)); ++ stack.setType(CraftItemType.minecraftToBukkit(item)); + assertTrue(ENTITY_TAG_METAS.contains(stack.getItemMeta().getClass()), "missing entity tag meta handling for " + item); + } + } diff --git a/patches/server/0960-Folia-scheduler-and-owned-region-API.patch b/patches/server/0960-Folia-scheduler-and-owned-region-API.patch index ed5d2fc16523..ca3ecfa30b7f 100644 --- a/patches/server/0960-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0960-Folia-scheduler-and-owned-region-API.patch @@ -1148,10 +1148,10 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 50316da08ae259dcc0d02c28081a352f09d1a19a..a8f9f4e23575cb58045f9d8efe011a60a51dbd7a 100644 +index c9e1ded332fc320e87e0b4b95b97905ea0c91803..9a3ee0a2b2b41baea6988ee0ad64ff5cf61dde9f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1635,6 +1635,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop int getDataValue(Effect effect, T data) { int datavalue; switch (effect) { @@ -29,9 +29,9 @@ index 5a5a8945c786e16ff0df62494ddd1ac85c42b53f..4ce0e1e557a844fb3add866a257a8424 case INSTANT_POTION_BREAK: datavalue = ((Color) data).asRGB(); break; -@@ -28,6 +32,13 @@ public class CraftEffect { +@@ -29,6 +33,13 @@ public class CraftEffect { Preconditions.checkArgument(data == Material.AIR || ((Material) data).isRecord(), "Invalid record type for Material %s!", data); - datavalue = Item.getId(CraftMagicNumbers.getItem((Material) data)); + datavalue = Item.getId(CraftItemType.bukkitToMinecraft((Material) data)); break; + // Paper start - handle shoot white smoke event + case SHOOT_WHITE_SMOKE: @@ -43,13 +43,13 @@ index 5a5a8945c786e16ff0df62494ddd1ac85c42b53f..4ce0e1e557a844fb3add866a257a8424 case SMOKE: switch ((BlockFace) data) { case DOWN: -@@ -59,8 +70,15 @@ public class CraftEffect { +@@ -60,8 +71,15 @@ public class CraftEffect { } break; case STEP_SOUND: + if (data instanceof Material) { // Paper - support BlockData Preconditions.checkArgument(((Material) data).isBlock(), "Material %s is not a block!", data); - datavalue = Block.getId(CraftMagicNumbers.getBlock((Material) data).defaultBlockState()); + datavalue = Block.getId(CraftBlockType.bukkitToMinecraft((Material) data).defaultBlockState()); + // Paper start - support BlockData + break; + } @@ -60,7 +60,7 @@ index 5a5a8945c786e16ff0df62494ddd1ac85c42b53f..4ce0e1e557a844fb3add866a257a8424 case COMPOSTER_FILL_ATTEMPT: datavalue = ((Boolean) data) ? 1 : 0; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 4c5d7988e3feea1b8f50d8c1795a4c4301fe2ecb..4f89f38e1d2d9cdb34af8d1d217577e9a437eea5 100644 +index e3a1a1ed5f165d7d37a4f760e5ab7ecbea993a0e..6bd86a7183042f9023b9e8cf6423e0a1cbfde97a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1430,7 +1430,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0984-Expand-Pose-API.patch b/patches/server/0984-Expand-Pose-API.patch index 94ef30e156f1..1acea775aacd 100644 --- a/patches/server/0984-Expand-Pose-API.patch +++ b/patches/server/0984-Expand-Pose-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d10c3c7e50a8972126e72a482c56394e11ed7d9f..c4d7d668bab1546c8196b2c570298038d767220a 100644 +index 687f7358466302195ec564ca5c817b13d2ce3f16..a152716a0dedc39d6d606476d8e3ba542f773d56 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -421,6 +421,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @javax.annotation.Nullable private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API @@ -16,7 +16,7 @@ index d10c3c7e50a8972126e72a482c56394e11ed7d9f..c4d7d668bab1546c8196b2c570298038 public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -705,6 +706,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -707,6 +708,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void onClientRemoval() {} public void setPose(net.minecraft.world.entity.Pose pose) { diff --git a/patches/server/0986-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0986-Deep-clone-unhandled-nbt-tags.patch index 5dcf7cc634a9..d08974665d32 100644 --- a/patches/server/0986-Deep-clone-unhandled-nbt-tags.patch +++ b/patches/server/0986-Deep-clone-unhandled-nbt-tags.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Deep clone unhandled nbt tags diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 31880b9e82824a184a52b7fac93197f442ff5d34..49da00feb8dfab26483b36c830b880b38ca57eb9 100644 +index b7c0c9a40dac3e828f880ef928ca34206a898cb9..ba2da16e1e17d9544535511939302da633e8ebcc 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -304,7 +304,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -305,7 +305,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); private CompoundTag internalTag; @@ -17,7 +17,7 @@ index 31880b9e82824a184a52b7fac93197f442ff5d34..49da00feb8dfab26483b36c830b880b3 private CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftMetaItem.DATA_TYPE_REGISTRY); private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only -@@ -345,8 +345,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -346,8 +346,10 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { this.destroyableKeys = new java.util.HashSet<>(meta.destroyableKeys); } // Paper end @@ -30,7 +30,7 @@ index 31880b9e82824a184a52b7fac93197f442ff5d34..49da00feb8dfab26483b36c830b880b3 this.internalTag = meta.internalTag; if (this.internalTag != null) { -@@ -1385,7 +1387,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1386,7 +1388,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { if (this.hasAttributeModifiers()) { clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers); } @@ -44,10 +44,10 @@ index 31880b9e82824a184a52b7fac93197f442ff5d34..49da00feb8dfab26483b36c830b880b3 clone.unbreakable = this.unbreakable; clone.damage = this.damage; diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java -index 416d2ca909d30e267fb97082a0aaac90444510de..9d61756689d1f5a71bcdb3ae4859cb0a60e7d850 100644 +index 5a4e7e7150b7c137b077e0b393f17ed35b5aec34..f55fdd57ced259ad5a95878840e98ffaa3db2e05 100644 --- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java -@@ -203,4 +203,12 @@ public class CraftPersistentDataContainer implements PersistentDataContainer { +@@ -207,4 +207,12 @@ public class CraftPersistentDataContainer implements PersistentDataContainer { } } // Paper end - byte array serialization diff --git a/patches/server/1010-Lag-compensation-ticks.patch b/patches/server/1010-Lag-compensation-ticks.patch index 361e2385534c..826376376bfa 100644 --- a/patches/server/1010-Lag-compensation-ticks.patch +++ b/patches/server/1010-Lag-compensation-ticks.patch @@ -8,7 +8,7 @@ Areas affected by lag comepnsation: - Eating food items diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a8f9f4e23575cb58045f9d8efe011a60a51dbd7a..34f19ac897a30c0c4e3ab406013fcca1c8b7db93 100644 +index 9a3ee0a2b2b41baea6988ee0ad64ff5cf61dde9f..2ea52c9aad51967bfefc3fe08073a004f65a9451 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -311,6 +311,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -1691,6 +1694,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index abef96d4c0ee22d05fc8b462811189128900fb8d..b4a77d66e84e335cecf7e3290aa36d17ac600033 100644 +index a7f2e8755af41abc66070f1971e526b4f05bc710..9a7d5aa722eb1e56da8e9e11b46179c9f9ab716f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1026-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/1026-Add-API-to-get-the-collision-shape-of-a-block-before.patch index bed6750ecfe6..b12610027d2e 100644 --- a/patches/server/1026-Add-API-to-get-the-collision-shape-of-a-block-before.patch +++ b/patches/server/1026-Add-API-to-get-the-collision-shape-of-a-block-before.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add API to get the collision shape of a block before it's diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index c6a0fac2ee35056f31b60eebc364c7bda8252d74..c7b93b8d4ed15db0803e2304e2da70ed3624f13f 100644 +index ef4d45ebfe84467454a209501dad7db7fb316416..9cf4ec4e1610d5f7cafbb90ef0310034cc818549 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -@@ -677,6 +677,20 @@ public class CraftBlockData implements BlockData { +@@ -678,6 +678,20 @@ public class CraftBlockData implements BlockData { return this.state.isFaceSturdy(EmptyBlockGetter.INSTANCE, BlockPos.ZERO, CraftBlock.blockFaceToNotch(face), CraftBlockSupport.toNMS(support)); } diff --git a/patches/server/1032-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/1032-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch index d9562499001c..7fb5a2b316ce 100644 --- a/patches/server/1032-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch +++ b/patches/server/1032-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch @@ -6,28 +6,27 @@ Subject: [PATCH] Fix strikeLightningEffect powers lightning rods and clears diff --git a/src/main/java/net/minecraft/world/entity/LightningBolt.java b/src/main/java/net/minecraft/world/entity/LightningBolt.java -index 255fb5e922c63130708e4bcab208b4db52a58387..21f0c986ac3237a2ab560dc545392f04a8bb4ef3 100644 +index 17f664f75aaaea042477e4b467c17c17d1024e3d..da4297f756e389deacda6c06afeb39f1ee204aab 100644 --- a/src/main/java/net/minecraft/world/entity/LightningBolt.java +++ b/src/main/java/net/minecraft/world/entity/LightningBolt.java -@@ -45,7 +45,7 @@ public class LightningBolt extends Entity { +@@ -45,6 +45,7 @@ public class LightningBolt extends Entity { private ServerPlayer cause; private final Set hitEntities = Sets.newHashSet(); private int blocksSetOnFire; -- public boolean isSilent = false; // Spigot + public boolean isEffect; // Paper - Properly handle lightning effects api public LightningBolt(EntityType type, Level world) { super(type, world); -@@ -86,7 +86,7 @@ public class LightningBolt extends Entity { +@@ -85,7 +86,7 @@ public class LightningBolt extends Entity { @Override public void tick() { super.tick(); -- if (!this.isSilent && this.life == 2) { // Spigot -+ if (!this.isEffect && this.life == 2) { // Spigot // Paper - Properly handle lightning effects api +- if (this.life == 2) { ++ if (!this.isEffect && this.life == 2) { // Paper - Properly handle lightning effects api if (this.level().isClientSide()) { this.level().playLocalSound(this.getX(), this.getY(), this.getZ(), SoundEvents.LIGHTNING_BOLT_THUNDER, SoundSource.WEATHER, 10000.0F, 0.8F + this.random.nextFloat() * 0.2F, false); this.level().playLocalSound(this.getX(), this.getY(), this.getZ(), SoundEvents.LIGHTNING_BOLT_IMPACT, SoundSource.WEATHER, 2.0F, 0.5F + this.random.nextFloat() * 0.2F, false); -@@ -133,7 +133,7 @@ public class LightningBolt extends Entity { +@@ -132,7 +133,7 @@ public class LightningBolt extends Entity { } } @@ -36,7 +35,7 @@ index 255fb5e922c63130708e4bcab208b4db52a58387..21f0c986ac3237a2ab560dc545392f04 if (!(this.level() instanceof ServerLevel)) { this.level().setSkyFlashTime(2); } else if (!this.visualOnly) { -@@ -162,7 +162,7 @@ public class LightningBolt extends Entity { +@@ -161,7 +162,7 @@ public class LightningBolt extends Entity { } private void spawnFire(int spreadAttempts) { @@ -46,7 +45,7 @@ index 255fb5e922c63130708e4bcab208b4db52a58387..21f0c986ac3237a2ab560dc545392f04 BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 56ff02ebe9da504f2aa955430ac13b3dba4211f7..f9be183b5971801fbb55db17fcc2fa9d0701daf5 100644 +index ed2a02514b7a6b67d45890fedb9bb9f4b10846d3..e7d503366c58e567c392b040e46a14457d86ad8d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -773,7 +773,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -58,26 +57,8 @@ index 56ff02ebe9da504f2aa955430ac13b3dba4211f7..f9be183b5971801fbb55db17fcc2fa9d this.world.strikeLightning(lightning, LightningStrikeEvent.Cause.CUSTOM); return (LightningStrike) lightning.getBukkitEntity(); } -@@ -2440,7 +2440,6 @@ public class CraftWorld extends CraftRegionAccessor implements World { - { - LightningBolt lightning = EntityType.LIGHTNING_BOLT.create( CraftWorld.this.world ); - lightning.moveTo( loc.getX(), loc.getY(), loc.getZ() ); -- lightning.isSilent = isSilent; - CraftWorld.this.world.strikeLightning( lightning, LightningStrikeEvent.Cause.CUSTOM ); - return (LightningStrike) lightning.getBukkitEntity(); - } -@@ -2450,8 +2449,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { - { - LightningBolt lightning = EntityType.LIGHTNING_BOLT.create( CraftWorld.this.world ); - lightning.moveTo( loc.getX(), loc.getY(), loc.getZ() ); -- lightning.visualOnly = true; -- lightning.isSilent = isSilent; -+ lightning.isEffect = true; // Paper - Properly handle lightning effects api - CraftWorld.this.world.strikeLightning( lightning, LightningStrikeEvent.Cause.CUSTOM ); - return (LightningStrike) lightning.getBukkitEntity(); - } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java -index cd9bd7f06e55e970b7791e635610bb5e7491d102..4fd1a856cd2e8ebcce0a14e3244108e8344691cf 100644 +index 6fed8075aa75e3852dc826a45ca44603c0446a56..e9f471e60af0725ec34e2985d63ae9ea9f88590a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java @@ -13,7 +13,7 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike @@ -89,12 +70,3 @@ index cd9bd7f06e55e970b7791e635610bb5e7491d102..4fd1a856cd2e8ebcce0a14e3244108e8 } public int getFlashes() { -@@ -57,7 +57,7 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike - @Override - public boolean isSilent() - { -- return CraftLightningStrike.this.getHandle().isSilent; -+ return false; // Paper - Properly handle lightning effects api; the concept of isSilent doesn't exist as sound is controlled by the client - } - }; - diff --git a/patches/server/1038-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1038-Don-t-fire-sync-events-during-worldgen.patch index 2baaa6e133f5..22efdd720385 100644 --- a/patches/server/1038-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/1038-Don-t-fire-sync-events-during-worldgen.patch @@ -19,7 +19,7 @@ where generation happened directly to a ServerLevel and the entity still has the flag set. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6ff5898846ef2d985f5ce630db9a31c4ad75ca66..2afc66b83d21a16be3fbe78476e532fc95582db9 100644 +index 79b6602570de0e213faef04f9605f206aa5b7840..0567fbf194d3dfef3f2348c4b1f69ac857dc5648 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1681,6 +1681,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -31,10 +31,10 @@ index 6ff5898846ef2d985f5ce630db9a31c4ad75ca66..2afc66b83d21a16be3fbe78476e532fc if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c4d7d668bab1546c8196b2c570298038d767220a..64ee22fe8ec64e9e942471d2c114554e241f5708 100644 +index a152716a0dedc39d6d606476d8e3ba542f773d56..c80a7a476c6363e526f26a3c7a5ed0a277ca0394 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -711,7 +711,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -713,7 +713,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (pose == this.getPose()) { return; } diff --git a/patches/server/1039-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/1039-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch index ed7402be0713..2a28b856f5df 100644 --- a/patches/server/1039-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch +++ b/patches/server/1039-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix CraftMetaItem#getAttributeModifier duplication check diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 49da00feb8dfab26483b36c830b880b38ca57eb9..d4eb344c3609f3902531c15e9c7444c0930a908e 100644 +index ba2da16e1e17d9544535511939302da633e8ebcc..d8ac86c3a89e29696e23b8ee6fddb84eb0313ea6 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -1166,7 +1166,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -1167,7 +1167,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { Preconditions.checkNotNull(modifier, "AttributeModifier cannot be null"); this.checkAttributeList(); for (Map.Entry entry : this.attributeModifiers.entries()) { diff --git a/patches/server/1040-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1040-Restore-vanilla-entity-drops-behavior.patch index b716c1fd3dea..c24ef852cb89 100644 --- a/patches/server/1040-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1040-Restore-vanilla-entity-drops-behavior.patch @@ -50,10 +50,10 @@ index 3ca06c5dfed3bc2006bf2f42444353bfab14096d..a3037dccab32597aa99e1590e1ea42fc if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cc86993aa7bf95ed5ae861feedc7e1049f12e210..82c5868222d22a5c5dc508c516d67bdcfa56d84b 100644 +index c80a7a476c6363e526f26a3c7a5ed0a277ca0394..26ee8f19a3f7d722060170c4e2c5c1aa8c03d28d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2701,6 +2701,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public ItemEntity spawnAtLocation(ItemStack stack, float yOffset) { @@ -79,7 +79,7 @@ index cc86993aa7bf95ed5ae861feedc7e1049f12e210..82c5868222d22a5c5dc508c516d67bdc if (stack.isEmpty()) { return null; } else if (this.level().isClientSide) { -@@ -2708,14 +2727,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2710,14 +2729,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -104,7 +104,7 @@ index cc86993aa7bf95ed5ae861feedc7e1049f12e210..82c5868222d22a5c5dc508c516d67bdc return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bc45bd5816b1b62cdd6011f2372702451b83f22b..42feb50674cba50fb7c5883f679e111c5412fb9b 100644 +index f242b2c56bfc2f17e87125e642538d58feb253e0..4cbdc1c36b1afb93f7c261b4ecbc5a766a00a288 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -165,7 +165,7 @@ index ab708b256183fc54fe8e13f341d8a38acf611739..a9c1f99ba2461333bd154ac16e812031 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e15e60b67c17a0ea4fedb4882ea839e1b9b1ae60..66a05f9a5d114c7f39c3a88b7835e2a45f7db16f 100644 +index 93bf055d1b050c58677e8cec39e95b53b879ec1d..2fba13f4355fc7c32fa80935416014b292a6beeb 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -939,17 +939,21 @@ public class CraftEventFactory { @@ -184,7 +184,7 @@ index e15e60b67c17a0ea4fedb4882ea839e1b9b1ae60..66a05f9a5d114c7f39c3a88b7835e2a4 - public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, List drops, Runnable lootCheck) { + private static java.util.function.Function FROM_FUNCTION = stack -> { + if (stack == null) return null; -+ return new Entity.DefaultDrop(CraftMagicNumbers.getItem(stack.getType()), stack, null); ++ return new Entity.DefaultDrop(CraftItemType.bukkitToMinecraft(stack.getType()), stack, null); + }; + public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim, List drops, Runnable lootCheck) { // Paper // Paper end diff --git a/patches/server/1046-Fix-scoreboard-entries.patch b/patches/server/1046-Fix-scoreboard-entries.patch deleted file mode 100644 index 9af3a73f3658..000000000000 --- a/patches/server/1046-Fix-scoreboard-entries.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic -Date: Sat, 16 Dec 2023 13:06:20 -0800 -Subject: [PATCH] Fix scoreboard entries - -1.20.3/4 introduced ScoreHolder which broke a lot of existing -logic that just assumed score entries were strings. - -diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java -index be020d6b686c1ad5bd8b7cee0b6050304d434022..d3d0d71b6fbacc30917682fcc1aace1902a64248 100644 ---- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java -+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java -@@ -42,12 +42,12 @@ final class CraftScore implements Score { - public int getScore() { - Scoreboard board = this.objective.checkState().board; - -- if (board.getTrackedPlayers().contains(this.entry)) { // Lazy -+ // if (board.getTrackedPlayers().contains(this.entry)) { // Lazy // Paper - just use the null check - ReadOnlyScoreInfo score = board.getPlayerScoreInfo(this.entry, this.objective.getHandle()); - if (score != null) { // Lazy - return score.value(); - } -- } -+ // } // Paper - just use the null check above - - return 0; // Lazy - } -@@ -61,7 +61,7 @@ final class CraftScore implements Score { - public boolean isScoreSet() { - Scoreboard board = this.objective.checkState().board; - -- return board.getTrackedPlayers().contains(this.entry) && board.getPlayerScoreInfo(this.entry, this.objective.getHandle()) != null; -+ return /*board.getTrackedPlayers().contains(this.entry) && */board.getPlayerScoreInfo(this.entry, this.objective.getHandle()) != null; // Paper - just check if the player score info exists - } - - @Override diff --git a/patches/server/1047-add-more-scoreboard-API.patch b/patches/server/1046-add-more-scoreboard-API.patch similarity index 95% rename from patches/server/1047-add-more-scoreboard-API.patch rename to patches/server/1046-add-more-scoreboard-API.patch index bb2c0c4a4040..3365b53a3606 100644 --- a/patches/server/1047-add-more-scoreboard-API.patch +++ b/patches/server/1046-add-more-scoreboard-API.patch @@ -29,10 +29,10 @@ index b36e5574c10e6d70a399e2ac0704fd4f43dbb444..2d3abf2a1da487ead74d698cc5ea4eb7 } diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java -index d3d0d71b6fbacc30917682fcc1aace1902a64248..ae57f91a4f604fdc6946c9a032e59a3ea3254fe7 100644 +index ceb1a39c02c3cfa7632a0fdca414c7046888fcb1..74d9c407e971804bed420370f7b684d8658eb5aa 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java -@@ -76,4 +76,44 @@ final class CraftScore implements Score { +@@ -74,4 +74,44 @@ final class CraftScore implements Score { board.resetSinglePlayerScore(entry, this.objective.getHandle()); } // Paper end diff --git a/patches/server/1048-Improve-Registry.patch b/patches/server/1047-Improve-Registry.patch similarity index 100% rename from patches/server/1048-Improve-Registry.patch rename to patches/server/1047-Improve-Registry.patch diff --git a/patches/server/1049-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1048-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 97% rename from patches/server/1049-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/1048-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index dbb3cd64d0ff..f0ca125467f0 100644 --- a/patches/server/1049-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/1048-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,7 +26,7 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 96885946be3b8e129984353f3dfe4330e73ad84a..bc908b75cb99536df658281ae7f8b4eeedbbedc9 100644 +index 4cbdc1c36b1afb93f7c261b4ecbc5a766a00a288..8ac9c65caab86d30c31be0b713a7896a24637457 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4204,7 +4204,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1050-Add-experience-points-API.patch b/patches/server/1049-Add-experience-points-API.patch similarity index 100% rename from patches/server/1050-Add-experience-points-API.patch rename to patches/server/1049-Add-experience-points-API.patch diff --git a/patches/server/1051-Add-missing-InventoryType.patch b/patches/server/1050-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/1051-Add-missing-InventoryType.patch rename to patches/server/1050-Add-missing-InventoryType.patch diff --git a/patches/server/1052-Add-drops-to-shear-events.patch b/patches/server/1051-Add-drops-to-shear-events.patch similarity index 98% rename from patches/server/1052-Add-drops-to-shear-events.patch rename to patches/server/1051-Add-drops-to-shear-events.patch index 27f673cd52ad..74fd1a217b5d 100644 --- a/patches/server/1052-Add-drops-to-shear-events.patch +++ b/patches/server/1051-Add-drops-to-shear-events.patch @@ -233,7 +233,7 @@ index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..b5d6857eaf2bed14adcb5f5e80d91b44 } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 66a05f9a5d114c7f39c3a88b7835e2a45f7db16f..cbaaa7d54e70bf4e0604d1716d253453bab03744 100644 +index 2fba13f4355fc7c32fa80935416014b292a6beeb..92aff5734425f7b5765687d892d4db4af806a1ba 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1718,20 +1718,20 @@ public class CraftEventFactory { @@ -264,7 +264,7 @@ index 66a05f9a5d114c7f39c3a88b7835e2a45f7db16f..cbaaa7d54e70bf4e0604d1716d253453 public static Cancellable handleStatisticsIncrease(net.minecraft.world.entity.player.Player entityHuman, net.minecraft.stats.Stat statistic, int current, int newValue) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 32da455eb46d09a846bae5270b32a6d6d6b962fd..c1d902c8dd2ec23240ee60ca9e9eaf7c839baed5 100644 +index 414a67096478ca57be54bd2ce565e7d50c8dd100..9dac41e4a93911f920204ed72ce9fe419b5bf696 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -61,6 +61,15 @@ public final class CraftItemStack extends ItemStack { diff --git a/patches/server/1053-Add-PlayerShieldDisableEvent.patch b/patches/server/1052-Add-PlayerShieldDisableEvent.patch similarity index 97% rename from patches/server/1053-Add-PlayerShieldDisableEvent.patch rename to patches/server/1052-Add-PlayerShieldDisableEvent.patch index dfb7f5fbe981..c8ae6cd6622e 100644 --- a/patches/server/1053-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/1052-Add-PlayerShieldDisableEvent.patch @@ -16,7 +16,7 @@ sideeffects, meaning the disable event cannot share a handlerlist with the cooldown event diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 5af48151159135b869ec4753bbcf79dd257c1570..538eaf327bdae975ce854871189990fbfe17b918 100644 +index c81c72bf1027fcbaac67808fbcf6e0af112176bc..42e2be9286b75a1d34845f303ffc65e96fdd5416 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1703,7 +1703,11 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/1054-Add-HiddenPotionEffect-API.patch b/patches/server/1053-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1054-Add-HiddenPotionEffect-API.patch rename to patches/server/1053-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1055-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1054-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/1055-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/1054-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/1056-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1055-fix-ItemMeta-removing-CustomModelData.patch similarity index 86% rename from patches/server/1056-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/1055-fix-ItemMeta-removing-CustomModelData.patch index 66b19df19bf9..4beeab274c1f 100644 --- a/patches/server/1056-fix-ItemMeta-removing-CustomModelData.patch +++ b/patches/server/1055-fix-ItemMeta-removing-CustomModelData.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix ItemMeta removing CustomModelData diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index d4eb344c3609f3902531c15e9c7444c0930a908e..91bbea5cb169f96910cc8661151c04dbff057091 100644 +index d8ac86c3a89e29696e23b8ee6fddb84eb0313ea6..8eae41077dc370e2286efaad4b9878c8ec04460e 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -@@ -380,7 +380,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { +@@ -381,7 +381,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { } } diff --git a/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1056-Validate-ResourceLocation-in-NBT-reading.patch similarity index 96% rename from patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/1056-Validate-ResourceLocation-in-NBT-reading.patch index 7a3aab017997..9151c477c86f 100644 --- a/patches/server/1057-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1056-Validate-ResourceLocation-in-NBT-reading.patch @@ -40,7 +40,7 @@ index 38e2a8cec48bc779b8154d6d719031f457a2403e..4379090b74d156b62b88163a234c22e7 this.path = path; } diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 00389d7ec3e8b059d5591a2019ba240fda2901fe..6cfce9755dd464a7afb01f9032e567ce3bcd5bc5 100644 +index abb2a02e0fc1deedb0ad76aec64f74ce355129cc..4bede2ca556a3bbcfbde9709c8415c9ea94383de 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -618,7 +618,7 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -53,7 +53,7 @@ index 00389d7ec3e8b059d5591a2019ba240fda2901fe..6cfce9755dd464a7afb01f9032e567ce @Nullable diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 538eaf327bdae975ce854871189990fbfe17b918..a31e8bb38b29a7c30cecb762d3ffec700e2186b8 100644 +index 42e2be9286b75a1d34845f303ffc65e96fdd5416..0b5334004b9d0489e8465824870662b467ce321b 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -620,7 +620,7 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/1058-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1057-Properly-handle-experience-dropping-on-block-break.patch similarity index 98% rename from patches/server/1058-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/1057-Properly-handle-experience-dropping-on-block-break.patch index 0c486af78b06..275d1e2c27ea 100644 --- a/patches/server/1058-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1057-Properly-handle-experience-dropping-on-block-break.patch @@ -7,7 +7,7 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a7d40d41a332f0612a2f1ff60c7082e4a8825ba1..e0b70ae59ed7ea0543c8cb87b0e7e5f0bc9385b1 100644 +index b8bf9eaae60040a3ba3d395712aa91940a71bea2..afd2e9bcdf94f3511bcd68cab5e72284f07fd016 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1103,7 +1103,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1059-Fixup-NamespacedKey-handling.patch b/patches/server/1058-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1059-Fixup-NamespacedKey-handling.patch rename to patches/server/1058-Fixup-NamespacedKey-handling.patch diff --git a/work/Bukkit b/work/Bukkit index 0c7aedbceabc..63c208dd3f16 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 0c7aedbceabcf05dde0a483001acd3d957e06c03 +Subproject commit 63c208dd3f16a0874b5e21348c35ce9e5c829d03 diff --git a/work/CraftBukkit b/work/CraftBukkit index 53ebb05e3951..771182f70cd7 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 53ebb05e3951a1a05e4efb8a739d9bf31d21385e +Subproject commit 771182f70cd789f3d220cfef80876845a48ebec5 diff --git a/work/Spigot b/work/Spigot index e7ce55a3b934..864e4acc0db6 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit e7ce55a3b93404a86c248a3d749e5219adda4ca0 +Subproject commit 864e4acc0db6ad9899f269740823a23d082d18d0 From c151c956e0a7fdd91e20e12cd678978cd2fd389f Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 14 Jan 2024 13:33:47 +0100 Subject: [PATCH 11/45] Fixup AsyncPreLoginEvent patches Fixes #10165 --- .../re-add-asm-dependency.patch | 2 +- ...d-more-fields-to-AsyncPreLoginEvent.patch} | 89 +++++++++++++------ ...-address-to-AsyncPlayerPreLoginEvent.patch | 50 ----------- ...close.patch => 0280-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0282-Add-basic-Datapack-API.patch} | 0 ...itions-to-PlayerGameModeChangeEvent.patch} | 0 ... => 0284-ItemStack-repair-check-API.patch} | 0 ....patch => 0285-More-Enchantment-API.patch} | 0 ...PI.patch => 0286-Add-Mob-lookAt-API.patch} | 0 ...ta.patch => 0287-ItemStack-editMeta.patch} | 0 ... => 0288-Add-EntityInsideBlockEvent.patch} | 0 ...89-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0291-More-Lidded-Block-API.patch} | 0 ... => 0292-Add-PlayerKickEvent-causes.patch} | 2 +- ...0293-Add-PufferFishStateChangeEvent.patch} | 0 ...h => 0294-Add-BellRevealRaiderEvent.patch} | 0 ...95-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0296-Add-more-line-of-sight-methods.patch} | 0 ... => 0297-Add-WaterBottleSplashEvent.patch} | 0 ... => 0298-Add-more-LimitedRegion-API.patch} | 0 ...PI.patch => 0299-Missing-Entity-API.patch} | 0 ...ch => 0300-Adds-PlayerArmSwingEvent.patch} | 0 ...dd-PlayerSignCommandPreprocessEvent.patch} | 0 ...array-elements-in-command-arguments.patch} | 0 ...inger-API.patch => 0303-Stinger-API.patch} | 0 ...-to-contain-the-source-jars-in-stac.patch} | 0 ...tch => 0305-Add-PlayerSetSpawnEvent.patch} | 0 ...=> 0306-Added-EntityDamageItemEvent.patch} | 0 ...Make-EntityUnleashEvent-cancellable.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0309-Add-BlockBreakBlockEvent.patch} | 0 ...pers-for-left-right-click-to-Action.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0312-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0314-add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 2 +- ... 0316-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0317-Left-handed-API.patch} | 0 ...tch => 0318-Add-critical-damage-API.patch} | 0 ...ch => 0319-Add-more-advancement-API.patch} | 0 ...0320-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0322-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...4-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...0325-Add-PlayerItemFrameChangeEvent.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...patch => 0327-Add-more-Campfire-API.patch} | 0 ...ehicleCollisionEvent-HandlerList-up.patch} | 0 ... => 0329-Improve-scoreboard-entries.patch} | 0 ...ch => 0330-Entity-powdered-snow-API.patch} | 0 ...0331-Add-API-for-item-entity-health.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...le-API.patch => 0333-Bucketable-API.patch} | 0 ...-for-default-config-comment-parsing.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ...6-Multiple-Entries-with-Scoreboards.patch} | 0 ...n-strange-EventHandler-return-types.patch} | 0 ...Hostname-to-AsyncPlayerPreLoginEvent.patch | 61 ------------- ...atch => 0338-Multi-Block-Change-API.patch} | 2 +- ...ent.patch => 0339-Fix-NotePlayEvent.patch} | 0 ....patch => 0340-Freeze-Tick-Lock-API.patch} | 0 ...lphin-API.patch => 0341-Dolphin-API.patch} | 0 ...h => 0342-More-PotionEffectType-API.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...h => 0344-Implement-regenerateChunk.patch} | 2 +- ...gs.patch => 0345-Add-GameEvent-tags.patch} | 0 ...tch => 0346-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...s.patch => 0349-Custom-Potion-Mixes.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...I.patch => 0351-More-Projectile-API.patch} | 0 ...ch => 0352-Add-getComputedBiome-API.patch} | 0 ...h => 0353-Add-enchantWithLevels-API.patch} | 0 ... 0354-Add-TameableDeathMessageEvent.patch} | 0 ...hange-the-podium-of-the-EnderDragon.patch} | 0 ...-blockstate-in-EntityBreakDoorEvent.patch} | 0 ...ing-amount-to-PlayerItemDamageEvent.patch} | 0 ...> 0358-WorldCreator-keepSpawnLoaded.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...> 0360-Add-PlayerStopUsingItemEvent.patch} | 0 ...tch => 0361-Expand-FallingBlock-API.patch} | 2 +- ...dd-method-isTickingWorlds-to-Bukkit.patch} | 0 ... => 0363-Add-WardenAngerChangeEvent.patch} | 0 ...I.patch => 0364-Nameable-Banner-API.patch} | 0 ...atch => 0365-Add-Player-getFishHook.patch} | 0 ...API.patch => 0366-More-Teleport-API.patch} | 2 +- ... => 0367-Add-EntityPortalReadyEvent.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 2 +- ...ion-API.patch => 0369-Collision-API.patch} | 0 ...API.patch => 0370-Block-Ticking-API.patch} | 0 ...371-Add-NamespacedKey-biome-methods.patch} | 0 ...o-load-resources-from-LibraryLoader.patch} | 0 ...serialization-deserialization-for-P.patch} | 2 +- ...rameter-to-ProjectileSource-launchP.patch} | 0 ...limit-in-YamlConfigOptions-and-incr.patch} | 0 ... => 0376-Add-getDrops-to-BlockState.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0378-Elder-Guardian-appearance-API.patch} | 2 +- ...ow-changing-bed-s-occupied-property.patch} | 0 ...d-EquipmentSlot-convenience-methods.patch} | 0 ...swingHand-EquipmentSlot-convenience.patch} | 0 ...ch => 0382-Add-entity-knockback-API.patch} | 0 ... => 0383-Added-EntityToggleSitEvent.patch} | 0 ...patch => 0384-Add-Moving-Piston-API.patch} | 0 ...0385-Add-PrePlayerAttackEntityEvent.patch} | 0 ... 0386-Add-Player-Warden-Warning-API.patch} | 2 +- ...a-friendly-methods-to-update-trades.patch} | 0 ...388-Add-paper-dumplisteners-command.patch} | 0 ....patch => 0389-ItemStack-damage-API.patch} | 0 ...patch => 0390-Add-Tick-TemporalUnit.patch} | 0 ...tion-API.patch => 0391-Friction-API.patch} | 0 ... 0392-Player-Entity-Tracking-Events.patch} | 0 ...atch => 0393-Add-missing-Fluid-type.patch} | 0 ...ments.patch => 0394-fix-Instruments.patch} | 0 ...tch => 0395-Add-BlockLockCheckEvent.patch} | 0 ... 0396-Add-Sneaking-API-for-Entities.patch} | 2 +- ....patch => 0397-Improve-PortalEvents.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...atch => 0399-Flying-Fall-Damage-API.patch} | 2 +- ...ion-moving-velocity-to-VehicleBlock.patch} | 0 ...eplace-ItemFlag.HIDE_POTION_EFFECTS.patch} | 0 ...en-API.patch => 0402-Win-Screen-API.patch} | 2 +- ...tch => 0403-Add-Entity-Body-Yaw-API.patch} | 0 ...or-InventoryBlockStartEvent-subclas.patch} | 0 ...=> 0405-Add-EntityFertilizeEggEvent.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...API.patch => 0407-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ... 0409-Add-Mob-Experience-reward-API.patch} | 0 ... => 0410-Expand-PlayerItemMendEvent.patch} | 0 ... => 0411-Add-transient-modifier-API.patch} | 0 ...he-experimental-smithing-inventory-.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 0 ...5-Add-event-for-player-editing-sign.patch} | 0 ...416-Add-Sign-getInteractableSideFor.patch} | 0 ...t-API.patch => 0417-Fix-BanList-API.patch} | 2 +- ....patch => 0418-Add-whitelist-events.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 0 ...tch => 0420-Add-PlayerFailMoveEvent.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...tch => 0422-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...lace-methods-with-old-StructureType.patch} | 0 ... => 0425-Add-Listing-API-for-Player.patch} | 2 +- ...d-BlockFace-during-BlockDamageEvent.patch} | 0 ...h => 0427-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0428-Expand-Pose-API.patch} | 0 ...MerchantRecipe-add-copy-constructor.patch} | 0 ...patch => 0430-More-DragonBattle-API.patch} | 0 ...tch => 0431-Add-PlayerPickItemEvent.patch} | 0 ...=> 0432-Allow-trident-custom-damage.patch} | 0 ...pose-hand-during-BlockCanBuildEvent.patch} | 0 ...t-setBurnTime-to-valid-short-values.patch} | 0 ... 0435-Add-OfflinePlayer-isConnected.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...dItemsEvent-throwing-exception-when.patch} | 0 ...> 0439-Add-player-idle-duration-API.patch} | 2 +- ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 2 +- ...h-event-for-all-player-interactions.patch} | 0 ...443-Add-UUID-attribute-modifier-API.patch} | 0 ... => 0444-Expand-LingeringPotion-API.patch} | 0 ...y-durability-check-in-ItemStack-isS.patch} | 0 ...tch => 0446-Add-Structure-check-API.patch} | 2 +- ...dd-missing-Experimental-annotations.patch} | 0 ...tch => 0448-Add-more-scoreboard-API.patch} | 0 ...stry.patch => 0449-Improve-Registry.patch} | 0 ...h => 0450-Add-experience-points-API.patch} | 0 ...h => 0451-Add-missing-InventoryType.patch} | 0 ...h => 0452-Add-drops-to-shear-events.patch} | 0 ... => 0453-Add-HiddenPotionEffect-API.patch} | 0 ...> 0454-Add-PlayerShieldDisableEvent.patch} | 0 ...mpty-String-in-NamespacedKey.fromSt.patch} | 0 ...e-PlayerProfile-in-AsyncPreLoginEven.patch | 29 ------ ...dd-more-fields-to-AsyncPreLoginEvent.patch | 72 +++++++++++++++ .../0180-Player.setPlayerProfile-API.patch | 11 +-- ...-address-to-AsyncPlayerPreLoginEvent.patch | 25 ------ ...close.patch => 0585-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0587-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 2 +- ...itions-to-PlayerGameModeChangeEvent.patch} | 4 +- ... => 0590-ItemStack-repair-check-API.patch} | 0 ....patch => 0591-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 2 +- ...-and-optimise-world-force-upgrading.patch} | 10 +-- ...PI.patch => 0594-Add-Mob-lookAt-API.patch} | 0 ...0595-Add-Unix-domain-socket-support.patch} | 4 +- ... => 0596-Add-EntityInsideBlockEvent.patch} | 0 ...97-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 4 +- ...patch => 0599-More-Lidded-Block-API.patch} | 0 ...00-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0601-Add-PlayerKickEvent-causes.patch} | 0 ...0602-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0606-Add-BellRevealRaiderEvent.patch} | 0 ... 0607-Fix-invulnerable-end-crystals.patch} | 0 ...08-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0609-Fix-dangerous-end-portal-logic.patch} | 0 ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...patch => 0612-Line-Of-Sight-Changes.patch} | 2 +- ... => 0613-add-per-world-spawn-limits.patch} | 2 +- ...h => 0614-Fix-potions-splash-events.patch} | 0 ... => 0615-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 2 +- ...PI.patch => 0617-Missing-Entity-API.patch} | 4 +- ...ect-for-book-edit-is-called-on-main.patch} | 2 +- ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 0 ...rom-signs-not-firing-command-events.patch} | 0 ...ch => 0622-Adds-PlayerArmSwingEvent.patch} | 2 +- ...-event-leave-message-not-being-sent.patch} | 4 +- ...-for-mobs-immune-to-default-effects.patch} | 4 +- ...-t-apply-cramming-damage-to-players.patch} | 2 +- ...d-timings-for-sensors-and-behaviors.patch} | 0 ...-bunch-of-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0628-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0630-Add-System.out-err-catcher.patch} | 2 +- ...-to-contain-the-source-jars-in-stac.patch} | 0 ...-Improve-boat-collision-performance.patch} | 0 ...AFK-kick-while-watching-end-credits.patch} | 2 +- ...iting-of-comments-to-server.propert.patch} | 2 +- ...tch => 0635-Add-PlayerSetSpawnEvent.patch} | 2 +- ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...=> 0639-Added-EntityDamageItemEvent.patch} | 2 +- ...timize-indirect-passenger-iteration.patch} | 2 +- ...em-frame-map-cursor-update-interval.patch} | 0 ...Make-EntityUnleashEvent-cancellable.patch} | 0 ...643-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0645-Add-BlockBreakBlockEvent.patch} | 2 +- ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0647-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0649-Add-back-EntityPortalExitEvent.patch} | 2 +- ...-find-targets-for-lightning-strikes.patch} | 4 +- ... 0651-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0652-Left-handed-API.patch} | 0 ...ch => 0653-Add-more-advancement-API.patch} | 0 ...654-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0655-Add-critical-damage-API.patch} | 2 +- ...0656-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 2 +- ...-ram-API.patch => 0658-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...0-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...61-Vanilla-command-permission-fixes.patch} | 2 +- ...logic-for-inventories-on-chunk-unlo.patch} | 2 +- ...63-Fix-GameProfileCache-concurrency.patch} | 0 ...664-Improve-and-expand-AsyncCatcher.patch} | 4 +- ...per-mobcaps-and-paper-playermobcaps.patch} | 0 ...tize-ResourceLocation-error-logging.patch} | 0 ...=> 0667-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 2 +- ...our-chunk-data-off-disk-when-conver.patch} | 0 ...-lookup-fluid-state-when-raytracing.patch} | 0 ...atch => 0674-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...6-Do-not-run-raytrace-logic-for-AIR.patch} | 0 ...> 0677-Execute-chunk-tasks-mid-tick.patch} | 0 ...rimise-map-impl-for-tracked-players.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ... 0680-Optimise-random-block-ticking.patch} | 4 +- ...ulate-regionfile-header-if-it-is-co.patch} | 4 +- ...city-compression-and-cipher-natives.patch} | 2 +- ...-more-information-in-watchdog-dumps.patch} | 0 ...hread-worker-count-for-low-core-cou.patch} | 0 ... 0685-Distance-manager-tick-timings.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 2 +- ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 2 +- ...h => 0689-Add-packet-limiter-config.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0691-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 2 +- ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0696-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 0 ...unintended-light-block-manipulation.patch} | 0 ...0699-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0701-Configurable-feature-seeds.patch} | 0 ... 0702-Add-root-admin-user-detection.patch} | 2 +- ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 0 ...ive-velocity-through-repeated-crits.patch} | 0 ...e-code-using-deprecated-for-removal.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 0 ...e-unnecessary-itemmeta-from-clients.patch} | 2 +- ...=> 0710-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0712-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0713-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...tch => 0715-Collision-optimisations.patch} | 0 ...n-checking-in-player-move-packet-ha.patch} | 2 +- ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0718-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...20-Fix-tripwire-state-inconsistency.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 2 +- ... => 0722-Improve-scoreboard-entries.patch} | 0 ...ch => 0723-Entity-powdered-snow-API.patch} | 0 ...0724-Add-API-for-item-entity-health.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 4 +- ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0730-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0731-Bucketable-API.patch} | 0 ...es.patch => 0732-Validate-usernames.patch} | 2 +- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 6 +- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...7-Multiple-Entries-with-Scoreboards.patch} | 0 ...738-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0740-Fix-xp-reward-for-baby-zombies.patch} | 0 ...Hostname-to-AsyncPlayerPreLoginEvent.patch | 19 ---- ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0742-Fix-NotePlayEvent.patch} | 0 ....patch => 0743-Freeze-Tick-Lock-API.patch} | 0 ...lphin-API.patch => 0744-Dolphin-API.patch} | 0 ...h => 0745-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0749-Implement-regenerateChunk.patch} | 2 +- ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 0 ...gs.patch => 0752-Add-GameEvent-tags.patch} | 0 ...ks-fairly-for-worlds-while-waiting-.patch} | 0 ...tch => 0754-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 2 +- ...-worldlist-before-initing-the-world.patch} | 4 +- ... => 0759-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0760-Custom-Potion-Mixes.patch} | 0 ...61-Force-close-world-loading-screen.patch} | 0 ...762-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0765-More-Projectile-API.patch} | 4 +- ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 2 +- ...0768-Implement-getComputedBiome-API.patch} | 2 +- ...> 0769-Make-some-itemstacks-nonnull.patch} | 0 ...770-Implement-enchantWithLevels-API.patch} | 0 ...h => 0771-Fix-saving-in-unloadWorld.patch} | 2 +- ...h => 0772-Buffer-OOB-setBlock-calls.patch} | 0 ... 0773-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 2 +- ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 0 ...rd-against-invalid-entity-positions.patch} | 2 +- ...s.patch => 0778-cache-resource-keys.patch} | 0 ...ange-the-podium-for-the-EnderDragon.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 2 +- ...ead-of-display-name-in-PlayerList-g.patch} | 0 ...-ServerLevel-for-gamerule-callbacks.patch} | 6 +- ...ing-amount-to-PlayerItemDamageEvent.patch} | 0 ...> 0786-WorldCreator-keepSpawnLoaded.patch} | 2 +- ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0792-Add-PlayerStopUsingItemEvent.patch} | 0 ...rs.patch => 0793-Don-t-tick-markers.patch} | 2 +- ...tch => 0794-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 2 +- ...0796-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0799-Sanitize-Sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 0 ...-on-world-create-while-being-ticked.patch} | 0 ...ate-Current-redstone-implementation.patch} | 4 +- ...04-Dont-resent-entity-on-art-update.patch} | 0 ... => 0805-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0808-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 2 +- ...pty-items-from-being-added-to-world.patch} | 2 +- ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0812-Add-Player-getFishHook.patch} | 2 +- ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 0 ...PE.patch => 0815-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 2 +- ...API.patch => 0817-More-Teleport-API.patch} | 2 +- ... => 0818-Add-EntityPortalReadyEvent.patch} | 2 +- ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 2 +- ...on-plugins-accessing-faraway-chunks.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0824-Collision-API.patch} | 2 +- ...nd-message-for-brigadier-syntax-exc.patch} | 2 +- ...API.patch => 0826-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 16 ++-- ...828-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 2 +- ...ok-changes-from-crashing-the-server.patch} | 0 ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0832-Missing-eating-regain-reason.patch} | 0 ....patch => 0833-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...6-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0837-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0839-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0841-Add-getDrops-to-BlockState.patch} | 2 +- ...=> 0842-Fix-a-bunch-of-vanilla-bugs.patch} | 0 ...y-onTrackingStart-during-navigation.patch} | 2 +- ... 0844-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0845-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 2 +- ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0848-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0850-Add-entity-knockback-API.patch} | 0 ....patch => 0851-Detect-headless-JREs.patch} | 2 +- ...-vehicle-collision-event-not-called.patch} | 0 ...3-optimized-dirt-and-snow-spreading.patch} | 0 ... => 0854-Added-EntityToggleSitEvent.patch} | 0 ... => 0855-Add-fire-tick-delay-option.patch} | 0 ...patch => 0856-Add-Moving-Piston-API.patch} | 0 ...> 0857-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 2 +- ...Prevent-compass-from-loading-chunks.patch} | 0 ...0862-Add-PrePlayerAttackEntityEvent.patch} | 0 ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 0 ... 0865-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...867-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 2 +- ...sync-entity-add-due-to-fungus-trees.patch} | 2 +- ....patch => 0870-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0871-Friction-API.patch} | 0 ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0873-Fix-player-kick-on-shutdown.patch} | 0 ... => 0874-Sync-offhand-slot-in-menus.patch} | 0 ... 0875-Player-Entity-Tracking-Events.patch} | 2 +- ...tch => 0876-Limit-pet-look-distance.patch} | 0 ...ch => 0877-Properly-resend-entities.patch} | 2 +- ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0879-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 2 +- ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0882-Add-BlockLockCheckEvent.patch} | 0 ... 0883-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0884-Improve-logging-and-errors.patch} | 2 +- ....patch => 0885-Improve-PortalEvents.patch} | 2 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 2 +- ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0889-Flying-Fall-Damage.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...ion-moving-velocity-to-VehicleBlock.patch} | 0 ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 2 +- ...k-items-during-EntityResurrectEvent.patch} | 0 ...en-API.patch => 0895-Win-Screen-API.patch} | 0 ...ItemStack-setAmount-null-assignment.patch} | 2 +- ...ix-force-opening-enchantment-tables.patch} | 2 +- ...tch => 0898-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 2 +- ...=> 0901-Add-EntityFertilizeEggEvent.patch} | 2 +- ...ty-drop-not-updating-the-client-inv.patch} | 2 +- ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 0 ...906-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0908-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...pers.patch => 0910-Optimize-Hoppers.patch} | 0 ...ives-generating-from-using-bonemeal.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 2 +- ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 2 +- ...ts-being-fired-from-unloaded-chunks.patch} | 2 +- ...0917-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 2 +- ... 0920-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 2 +- ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...24-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ...ecalcBlockCounts-for-empty-sections.patch} | 0 ... => 0927-Expand-PlayerItemMendEvent.patch} | 2 +- ...sh-ProjectileSource-for-projectiles.patch} | 0 ... => 0929-Add-transient-modifier-API.patch} | 0 ...patch => 0930-Fix-block-place-logic.patch} | 2 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 2 +- ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...yerChunkLoaderData-in-order-to-prep.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0939-Properly-Cancel-Usable-Items.patch} | 2 +- ...0-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 4 +- ...Add-option-to-disable-block-updates.patch} | 0 ...944-Call-missing-BlockDispenseEvent.patch} | 2 +- ...-chunks-for-supporting-block-checks.patch} | 0 ...Optimize-player-lookups-for-beacons.patch} | 0 ...947-Add-Sign-getInteractableSideFor.patch} | 0 ...48-Array-backed-synched-entity-data.patch} | 0 ...9-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0950-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 2 +- ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0956-Add-whitelist-events.patch} | 0 ... 0957-Implement-PlayerFailMoveEvent.patch} | 2 +- ...olia-scheduler-and-owned-region-API.patch} | 0 ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 2 +- ...tion-when-spawning-display-entities.patch} | 0 ...962-Only-capture-actual-tree-growth.patch} | 0 ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 2 +- ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0967-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0969-Bandaid-fix-for-Effect.patch} | 0 ...tch => 0970-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 0 ...lace-methods-with-old-StructureType.patch} | 2 +- ...e-namespaced-commands-if-send-names.patch} | 2 +- ...-handle-BlockBreakEvent-isDropItems.patch} | 0 ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 0 ... => 0978-Add-Listing-API-for-Player.patch} | 0 ...figurable-Region-Compression-Format.patch} | 0 ...d-BlockFace-during-BlockDamageEvent.patch} | 2 +- ...h => 0981-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0982-Expand-Pose-API.patch} | 0 ...patch => 0983-More-DragonBattle-API.patch} | 0 ... 0984-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0985-Add-PlayerPickItemEvent.patch} | 2 +- ...-Improve-performance-of-mass-crafts.patch} | 0 ...=> 0987-Allow-trident-custom-damage.patch} | 0 ...pose-hand-during-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 0 ....patch => 0991-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 4 +- ...93-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 2 +- ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 2 +- ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 1000-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 0 ...> 1003-Actually-optimise-explosions.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...atch => 1006-Fix-SuspiciousStewMeta.patch} | 0 ... 1007-Optimise-chunk-tick-iteration.patch} | 0 ...atch => 1008-Lag-compensation-ticks.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...12-Optimise-nearby-player-retrieval.patch} | 2 +- ...1013-Remove-streams-for-villager-AI.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 2 +- ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...18-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 1019-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 2 +- ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 1023-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 2 +- ...em-packets-with-collector-as-source.patch} | 2 +- ...cure-profile-with-proxy-online-mode.patch} | 2 +- ... => 1028-Expand-LingeringPotion-API.patch} | 0 ....patch => 1029-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...033-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 0 ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 0 ...tch => 1039-Add-Structure-check-API.patch} | 2 +- ...-Dont-resend-blocks-on-interactions.patch} | 0 ...evious-behavior-for-setResourcePack.patch} | 0 ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 1044-add-more-scoreboard-API.patch} | 0 ...stry.patch => 1045-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 0 ...h => 1047-Add-experience-points-API.patch} | 0 ...h => 1048-Add-missing-InventoryType.patch} | 0 ...h => 1049-Add-drops-to-shear-events.patch} | 0 ...> 1050-Add-PlayerShieldDisableEvent.patch} | 0 ... => 1051-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 0 ...-experience-dropping-on-block-break.patch} | 0 ...> 1056-Fixup-NamespacedKey-handling.patch} | 0 657 files changed, 304 insertions(+), 386 deletions(-) rename patches/api/{0090-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch => 0090-Add-more-fields-to-AsyncPreLoginEvent.patch} (58%) delete mode 100644 patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch rename patches/api/{0281-Inventory-close.patch => 0280-Inventory-close.patch} (100%) rename patches/api/{0282-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0281-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/api/{0283-Add-basic-Datapack-API.patch => 0282-Add-basic-Datapack-API.patch} (100%) rename patches/api/{0284-additions-to-PlayerGameModeChangeEvent.patch => 0283-additions-to-PlayerGameModeChangeEvent.patch} (100%) rename patches/api/{0285-ItemStack-repair-check-API.patch => 0284-ItemStack-repair-check-API.patch} (100%) rename patches/api/{0286-More-Enchantment-API.patch => 0285-More-Enchantment-API.patch} (100%) rename patches/api/{0287-Add-Mob-lookAt-API.patch => 0286-Add-Mob-lookAt-API.patch} (100%) rename patches/api/{0288-ItemStack-editMeta.patch => 0287-ItemStack-editMeta.patch} (100%) rename patches/api/{0289-Add-EntityInsideBlockEvent.patch => 0288-Add-EntityInsideBlockEvent.patch} (100%) rename patches/api/{0290-Attributes-API-for-item-defaults.patch => 0289-Attributes-API-for-item-defaults.patch} (100%) rename patches/api/{0291-Add-cause-to-Weather-ThunderChangeEvents.patch => 0290-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/api/{0292-More-Lidded-Block-API.patch => 0291-More-Lidded-Block-API.patch} (100%) rename patches/api/{0293-Add-PlayerKickEvent-causes.patch => 0292-Add-PlayerKickEvent-causes.patch} (97%) rename patches/api/{0294-Add-PufferFishStateChangeEvent.patch => 0293-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/api/{0295-Add-BellRevealRaiderEvent.patch => 0294-Add-BellRevealRaiderEvent.patch} (100%) rename patches/api/{0296-Add-ElderGuardianAppearanceEvent.patch => 0295-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/api/{0297-Add-more-line-of-sight-methods.patch => 0296-Add-more-line-of-sight-methods.patch} (100%) rename patches/api/{0298-Add-WaterBottleSplashEvent.patch => 0297-Add-WaterBottleSplashEvent.patch} (100%) rename patches/api/{0299-Add-more-LimitedRegion-API.patch => 0298-Add-more-LimitedRegion-API.patch} (100%) rename patches/api/{0300-Missing-Entity-API.patch => 0299-Missing-Entity-API.patch} (100%) rename patches/api/{0301-Adds-PlayerArmSwingEvent.patch => 0300-Adds-PlayerArmSwingEvent.patch} (100%) rename patches/api/{0302-Add-PlayerSignCommandPreprocessEvent.patch => 0301-Add-PlayerSignCommandPreprocessEvent.patch} (100%) rename patches/api/{0303-fix-empty-array-elements-in-command-arguments.patch => 0302-fix-empty-array-elements-in-command-arguments.patch} (100%) rename patches/api/{0304-Stinger-API.patch => 0303-Stinger-API.patch} (100%) rename patches/api/{0305-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/api/{0306-Add-PlayerSetSpawnEvent.patch => 0305-Add-PlayerSetSpawnEvent.patch} (100%) rename patches/api/{0307-Added-EntityDamageItemEvent.patch => 0306-Added-EntityDamageItemEvent.patch} (100%) rename patches/api/{0308-Make-EntityUnleashEvent-cancellable.patch => 0307-Make-EntityUnleashEvent-cancellable.patch} (100%) rename patches/api/{0309-Change-EnderEye-target-without-changing-other-things.patch => 0308-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/api/{0310-Add-BlockBreakBlockEvent.patch => 0309-Add-BlockBreakBlockEvent.patch} (100%) rename patches/api/{0311-Add-helpers-for-left-right-click-to-Action.patch => 0310-Add-helpers-for-left-right-click-to-Action.patch} (100%) rename patches/api/{0312-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/api/{0313-More-CommandBlock-API.patch => 0312-More-CommandBlock-API.patch} (100%) rename patches/api/{0314-Add-missing-team-sidebar-display-slots.patch => 0313-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/api/{0315-add-back-EntityPortalExitEvent.patch => 0314-add-back-EntityPortalExitEvent.patch} (100%) rename patches/api/{0316-Add-methods-to-find-targets-for-lightning-strikes.patch => 0315-Add-methods-to-find-targets-for-lightning-strikes.patch} (95%) rename patches/api/{0317-Get-entity-default-attributes.patch => 0316-Get-entity-default-attributes.patch} (100%) rename patches/api/{0318-Left-handed-API.patch => 0317-Left-handed-API.patch} (100%) rename patches/api/{0319-Add-critical-damage-API.patch => 0318-Add-critical-damage-API.patch} (100%) rename patches/api/{0320-Add-more-advancement-API.patch => 0319-Add-more-advancement-API.patch} (100%) rename patches/api/{0321-Fix-issues-with-mob-conversion.patch => 0320-Fix-issues-with-mob-conversion.patch} (100%) rename patches/api/{0322-Add-isCollidable-methods-to-various-places.patch => 0321-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/api/{0323-Goat-ram-API.patch => 0322-Goat-ram-API.patch} (100%) rename patches/api/{0324-Add-API-for-resetting-a-single-score.patch => 0323-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/api/{0325-Add-Raw-Byte-Entity-Serialization.patch => 0324-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/api/{0326-Add-PlayerItemFrameChangeEvent.patch => 0325-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/api/{0327-Allow-delegation-to-vanilla-chunk-gen.patch => 0326-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/api/{0328-Add-more-Campfire-API.patch => 0327-Add-more-Campfire-API.patch} (100%) rename patches/api/{0329-Move-VehicleCollisionEvent-HandlerList-up.patch => 0328-Move-VehicleCollisionEvent-HandlerList-up.patch} (100%) rename patches/api/{0330-Improve-scoreboard-entries.patch => 0329-Improve-scoreboard-entries.patch} (100%) rename patches/api/{0331-Entity-powdered-snow-API.patch => 0330-Entity-powdered-snow-API.patch} (100%) rename patches/api/{0332-Add-API-for-item-entity-health.patch => 0331-Add-API-for-item-entity-health.patch} (100%) rename patches/api/{0333-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0332-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/api/{0334-Bucketable-API.patch => 0333-Bucketable-API.patch} (100%) rename patches/api/{0335-System-prop-for-default-config-comment-parsing.patch => 0334-System-prop-for-default-config-comment-parsing.patch} (100%) rename patches/api/{0336-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0335-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/api/{0337-Multiple-Entries-with-Scoreboards.patch => 0336-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/api/{0339-Warn-on-strange-EventHandler-return-types.patch => 0337-Warn-on-strange-EventHandler-return-types.patch} (100%) delete mode 100644 patches/api/0338-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch rename patches/api/{0340-Multi-Block-Change-API.patch => 0338-Multi-Block-Change-API.patch} (95%) rename patches/api/{0341-Fix-NotePlayEvent.patch => 0339-Fix-NotePlayEvent.patch} (100%) rename patches/api/{0342-Freeze-Tick-Lock-API.patch => 0340-Freeze-Tick-Lock-API.patch} (100%) rename patches/api/{0343-Dolphin-API.patch => 0341-Dolphin-API.patch} (100%) rename patches/api/{0344-More-PotionEffectType-API.patch => 0342-More-PotionEffectType-API.patch} (100%) rename patches/api/{0345-API-for-creating-command-sender-which-forwards-feedb.patch => 0343-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/api/{0346-Implement-regenerateChunk.patch => 0344-Implement-regenerateChunk.patch} (91%) rename patches/api/{0347-Add-GameEvent-tags.patch => 0345-Add-GameEvent-tags.patch} (100%) rename patches/api/{0348-Furnace-RecipesUsed-API.patch => 0346-Furnace-RecipesUsed-API.patch} (100%) rename patches/api/{0349-Configurable-sculk-sensor-listener-range.patch => 0347-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/api/{0350-Add-missing-block-data-mins-and-maxes.patch => 0348-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/api/{0351-Custom-Potion-Mixes.patch => 0349-Custom-Potion-Mixes.patch} (100%) rename patches/api/{0352-Expose-furnace-minecart-push-values.patch => 0350-Expose-furnace-minecart-push-values.patch} (100%) rename patches/api/{0353-More-Projectile-API.patch => 0351-More-Projectile-API.patch} (100%) rename patches/api/{0354-Add-getComputedBiome-API.patch => 0352-Add-getComputedBiome-API.patch} (100%) rename patches/api/{0355-Add-enchantWithLevels-API.patch => 0353-Add-enchantWithLevels-API.patch} (100%) rename patches/api/{0356-Add-TameableDeathMessageEvent.patch => 0354-Add-TameableDeathMessageEvent.patch} (100%) rename patches/api/{0357-Allow-to-change-the-podium-of-the-EnderDragon.patch => 0355-Allow-to-change-the-podium-of-the-EnderDragon.patch} (100%) rename patches/api/{0358-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch => 0356-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch} (100%) rename patches/api/{0359-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch => 0357-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch} (100%) rename patches/api/{0360-WorldCreator-keepSpawnLoaded.patch => 0358-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/api/{0361-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0359-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/api/{0362-Add-PlayerStopUsingItemEvent.patch => 0360-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/api/{0363-Expand-FallingBlock-API.patch => 0361-Expand-FallingBlock-API.patch} (97%) rename patches/api/{0364-Add-method-isTickingWorlds-to-Bukkit.patch => 0362-Add-method-isTickingWorlds-to-Bukkit.patch} (100%) rename patches/api/{0365-Add-WardenAngerChangeEvent.patch => 0363-Add-WardenAngerChangeEvent.patch} (100%) rename patches/api/{0366-Nameable-Banner-API.patch => 0364-Nameable-Banner-API.patch} (100%) rename patches/api/{0367-Add-Player-getFishHook.patch => 0365-Add-Player-getFishHook.patch} (100%) rename patches/api/{0368-More-Teleport-API.patch => 0366-More-Teleport-API.patch} (99%) rename patches/api/{0369-Add-EntityPortalReadyEvent.patch => 0367-Add-EntityPortalReadyEvent.patch} (100%) rename patches/api/{0370-Custom-Chat-Completion-Suggestions-API.patch => 0368-Custom-Chat-Completion-Suggestions-API.patch} (94%) rename patches/api/{0371-Collision-API.patch => 0369-Collision-API.patch} (100%) rename patches/api/{0372-Block-Ticking-API.patch => 0370-Block-Ticking-API.patch} (100%) rename patches/api/{0373-Add-NamespacedKey-biome-methods.patch => 0371-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/api/{0374-Also-load-resources-from-LibraryLoader.patch => 0372-Also-load-resources-from-LibraryLoader.patch} (100%) rename patches/api/{0375-Added-byte-array-serialization-deserialization-for-P.patch => 0373-Added-byte-array-serialization-deserialization-for-P.patch} (95%) rename patches/api/{0376-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0374-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/api/{0377-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch => 0375-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch} (100%) rename patches/api/{0378-Add-getDrops-to-BlockState.patch => 0376-Add-getDrops-to-BlockState.patch} (100%) rename patches/api/{0379-Add-PlayerInventorySlotChangeEvent.patch => 0377-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/api/{0380-Elder-Guardian-appearance-API.patch => 0378-Elder-Guardian-appearance-API.patch} (92%) rename patches/api/{0381-Allow-changing-bed-s-occupied-property.patch => 0379-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/api/{0382-Add-EquipmentSlot-convenience-methods.patch => 0380-Add-EquipmentSlot-convenience-methods.patch} (100%) rename patches/api/{0383-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch => 0381-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch} (100%) rename patches/api/{0384-Add-entity-knockback-API.patch => 0382-Add-entity-knockback-API.patch} (100%) rename patches/api/{0385-Added-EntityToggleSitEvent.patch => 0383-Added-EntityToggleSitEvent.patch} (100%) rename patches/api/{0386-Add-Moving-Piston-API.patch => 0384-Add-Moving-Piston-API.patch} (100%) rename patches/api/{0387-Add-PrePlayerAttackEntityEvent.patch => 0385-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/api/{0388-Add-Player-Warden-Warning-API.patch => 0386-Add-Player-Warden-Warning-API.patch} (96%) rename patches/api/{0389-More-vanilla-friendly-methods-to-update-trades.patch => 0387-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/api/{0390-Add-paper-dumplisteners-command.patch => 0388-Add-paper-dumplisteners-command.patch} (100%) rename patches/api/{0391-ItemStack-damage-API.patch => 0389-ItemStack-damage-API.patch} (100%) rename patches/api/{0392-Add-Tick-TemporalUnit.patch => 0390-Add-Tick-TemporalUnit.patch} (100%) rename patches/api/{0393-Friction-API.patch => 0391-Friction-API.patch} (100%) rename patches/api/{0394-Player-Entity-Tracking-Events.patch => 0392-Player-Entity-Tracking-Events.patch} (100%) rename patches/api/{0395-Add-missing-Fluid-type.patch => 0393-Add-missing-Fluid-type.patch} (100%) rename patches/api/{0396-fix-Instruments.patch => 0394-fix-Instruments.patch} (100%) rename patches/api/{0397-Add-BlockLockCheckEvent.patch => 0395-Add-BlockLockCheckEvent.patch} (100%) rename patches/api/{0398-Add-Sneaking-API-for-Entities.patch => 0396-Add-Sneaking-API-for-Entities.patch} (95%) rename patches/api/{0399-Improve-PortalEvents.patch => 0397-Improve-PortalEvents.patch} (100%) rename patches/api/{0400-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0398-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/api/{0401-Flying-Fall-Damage-API.patch => 0399-Flying-Fall-Damage-API.patch} (93%) rename patches/api/{0402-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0400-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (100%) rename patches/api/{0403-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch => 0401-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch} (100%) rename patches/api/{0404-Win-Screen-API.patch => 0402-Win-Screen-API.patch} (96%) rename patches/api/{0405-Add-Entity-Body-Yaw-API.patch => 0403-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/api/{0406-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch => 0404-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch} (100%) rename patches/api/{0407-Add-EntityFertilizeEggEvent.patch => 0405-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/api/{0408-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0406-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/api/{0409-Add-Shearable-API.patch => 0407-Add-Shearable-API.patch} (100%) rename patches/api/{0410-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0408-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/api/{0411-Add-Mob-Experience-reward-API.patch => 0409-Add-Mob-Experience-reward-API.patch} (100%) rename patches/api/{0412-Expand-PlayerItemMendEvent.patch => 0410-Expand-PlayerItemMendEvent.patch} (100%) rename patches/api/{0413-Add-transient-modifier-API.patch => 0411-Add-transient-modifier-API.patch} (100%) rename patches/api/{0414-Properly-remove-the-experimental-smithing-inventory-.patch => 0412-Properly-remove-the-experimental-smithing-inventory-.patch} (100%) rename patches/api/{0415-Add-method-to-remove-all-active-potion-effects.patch => 0413-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/api/{0416-Folia-scheduler-and-owned-region-API.patch => 0414-Folia-scheduler-and-owned-region-API.patch} (100%) rename patches/api/{0417-Add-event-for-player-editing-sign.patch => 0415-Add-event-for-player-editing-sign.patch} (100%) rename patches/api/{0418-Add-Sign-getInteractableSideFor.patch => 0416-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/api/{0419-Fix-BanList-API.patch => 0417-Fix-BanList-API.patch} (98%) rename patches/api/{0420-Add-whitelist-events.patch => 0418-Add-whitelist-events.patch} (100%) rename patches/api/{0421-API-for-updating-recipes-on-clients.patch => 0419-API-for-updating-recipes-on-clients.patch} (100%) rename patches/api/{0422-Add-PlayerFailMoveEvent.patch => 0420-Add-PlayerFailMoveEvent.patch} (100%) rename patches/api/{0423-Fix-custom-statistic-criteria-creation.patch => 0421-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/api/{0424-SculkCatalyst-bloom-API.patch => 0422-SculkCatalyst-bloom-API.patch} (100%) rename patches/api/{0425-API-for-an-entity-s-scoreboard-name.patch => 0423-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/api/{0426-Deprecate-and-replace-methods-with-old-StructureType.patch => 0424-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/api/{0427-Add-Listing-API-for-Player.patch => 0425-Add-Listing-API-for-Player.patch} (93%) rename patches/api/{0428-Expose-clicked-BlockFace-during-BlockDamageEvent.patch => 0426-Expose-clicked-BlockFace-during-BlockDamageEvent.patch} (100%) rename patches/api/{0429-Fix-NPE-on-Boat-getStatus.patch => 0427-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/api/{0430-Expand-Pose-API.patch => 0428-Expand-Pose-API.patch} (100%) rename patches/api/{0431-MerchantRecipe-add-copy-constructor.patch => 0429-MerchantRecipe-add-copy-constructor.patch} (100%) rename patches/api/{0432-More-DragonBattle-API.patch => 0430-More-DragonBattle-API.patch} (100%) rename patches/api/{0433-Add-PlayerPickItemEvent.patch => 0431-Add-PlayerPickItemEvent.patch} (100%) rename patches/api/{0434-Allow-trident-custom-damage.patch => 0432-Allow-trident-custom-damage.patch} (100%) rename patches/api/{0435-Expose-hand-during-BlockCanBuildEvent.patch => 0433-Expose-hand-during-BlockCanBuildEvent.patch} (100%) rename patches/api/{0436-Limit-setBurnTime-to-valid-short-values.patch => 0434-Limit-setBurnTime-to-valid-short-values.patch} (100%) rename patches/api/{0437-Add-OfflinePlayer-isConnected.patch => 0435-Add-OfflinePlayer-isConnected.patch} (100%) rename patches/api/{0438-Add-titleOverride-to-InventoryOpenEvent.patch => 0436-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/api/{0439-Allow-proper-checking-of-empty-item-stacks.patch => 0437-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/api/{0440-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch => 0438-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch} (100%) rename patches/api/{0441-Add-player-idle-duration-API.patch => 0439-Add-player-idle-duration-API.patch} (93%) rename patches/api/{0442-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0440-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/api/{0443-Add-predicate-for-blocks-when-raytracing.patch => 0441-Add-predicate-for-blocks-when-raytracing.patch} (98%) rename patches/api/{0444-Add-hand-to-fish-event-for-all-player-interactions.patch => 0442-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/api/{0445-Add-UUID-attribute-modifier-API.patch => 0443-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/api/{0446-Expand-LingeringPotion-API.patch => 0444-Expand-LingeringPotion-API.patch} (100%) rename patches/api/{0447-Remove-unnecessary-durability-check-in-ItemStack-isS.patch => 0445-Remove-unnecessary-durability-check-in-ItemStack-isS.patch} (100%) rename patches/api/{0448-Add-Structure-check-API.patch => 0446-Add-Structure-check-API.patch} (94%) rename patches/api/{0449-add-missing-Experimental-annotations.patch => 0447-add-missing-Experimental-annotations.patch} (100%) rename patches/api/{0450-Add-more-scoreboard-API.patch => 0448-Add-more-scoreboard-API.patch} (100%) rename patches/api/{0451-Improve-Registry.patch => 0449-Improve-Registry.patch} (100%) rename patches/api/{0452-Add-experience-points-API.patch => 0450-Add-experience-points-API.patch} (100%) rename patches/api/{0453-Add-missing-InventoryType.patch => 0451-Add-missing-InventoryType.patch} (100%) rename patches/api/{0454-Add-drops-to-shear-events.patch => 0452-Add-drops-to-shear-events.patch} (100%) rename patches/api/{0455-Add-HiddenPotionEffect-API.patch => 0453-Add-HiddenPotionEffect-API.patch} (100%) rename patches/api/{0456-Add-PlayerShieldDisableEvent.patch => 0454-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/api/{0457-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch => 0455-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch} (100%) delete mode 100644 patches/server/0179-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch create mode 100644 patches/server/0179-Add-more-fields-to-AsyncPreLoginEvent.patch delete mode 100644 patches/server/0585-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch rename patches/server/{0586-Inventory-close.patch => 0585-Inventory-close.patch} (100%) rename patches/server/{0587-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0586-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0588-Add-basic-Datapack-API.patch => 0587-Add-basic-Datapack-API.patch} (100%) rename patches/server/{0589-Add-environment-variable-to-disable-server-gui.patch => 0588-Add-environment-variable-to-disable-server-gui.patch} (90%) rename patches/server/{0590-additions-to-PlayerGameModeChangeEvent.patch => 0589-additions-to-PlayerGameModeChangeEvent.patch} (98%) rename patches/server/{0591-ItemStack-repair-check-API.patch => 0590-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0592-More-Enchantment-API.patch => 0591-More-Enchantment-API.patch} (100%) rename patches/server/{0593-Move-range-check-for-block-placing-up.patch => 0592-Move-range-check-for-block-placing-up.patch} (92%) rename patches/server/{0594-Fix-and-optimise-world-force-upgrading.patch => 0593-Fix-and-optimise-world-force-upgrading.patch} (97%) rename patches/server/{0595-Add-Mob-lookAt-API.patch => 0594-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0596-Add-Unix-domain-socket-support.patch => 0595-Add-Unix-domain-socket-support.patch} (97%) rename patches/server/{0597-Add-EntityInsideBlockEvent.patch => 0596-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0598-Attributes-API-for-item-defaults.patch => 0597-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0599-Add-cause-to-Weather-ThunderChangeEvents.patch => 0598-Add-cause-to-Weather-ThunderChangeEvents.patch} (97%) rename patches/server/{0600-More-Lidded-Block-API.patch => 0599-More-Lidded-Block-API.patch} (100%) rename patches/server/{0601-Limit-item-frame-cursors-on-maps.patch => 0600-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0602-Add-PlayerKickEvent-causes.patch => 0601-Add-PlayerKickEvent-causes.patch} (100%) rename patches/server/{0603-Add-PufferFishStateChangeEvent.patch => 0602-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0604-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0603-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0605-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0604-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/server/{0606-Add-option-to-fix-items-merging-through-walls.patch => 0605-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0607-Add-BellRevealRaiderEvent.patch => 0606-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0608-Fix-invulnerable-end-crystals.patch => 0607-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0609-Add-ElderGuardianAppearanceEvent.patch => 0608-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0610-Fix-dangerous-end-portal-logic.patch => 0609-Fix-dangerous-end-portal-logic.patch} (100%) rename patches/server/{0611-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0610-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0612-Make-item-validations-configurable.patch => 0611-Make-item-validations-configurable.patch} (100%) rename patches/server/{0613-Line-Of-Sight-Changes.patch => 0612-Line-Of-Sight-Changes.patch} (97%) rename patches/server/{0614-add-per-world-spawn-limits.patch => 0613-add-per-world-spawn-limits.patch} (91%) rename patches/server/{0615-Fix-potions-splash-events.patch => 0614-Fix-potions-splash-events.patch} (100%) rename patches/server/{0616-Add-more-LimitedRegion-API.patch => 0615-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0617-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0616-Fix-PlayerDropItemEvent-using-wrong-item.patch} (94%) rename patches/server/{0618-Missing-Entity-API.patch => 0617-Missing-Entity-API.patch} (99%) rename patches/server/{0619-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0618-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (92%) rename patches/server/{0620-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0619-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0621-Use-getChunkIfLoadedImmediately-in-places.patch => 0620-Use-getChunkIfLoadedImmediately-in-places.patch} (100%) rename patches/server/{0622-Fix-commands-from-signs-not-firing-command-events.patch => 0621-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0623-Adds-PlayerArmSwingEvent.patch => 0622-Adds-PlayerArmSwingEvent.patch} (93%) rename patches/server/{0624-Fixes-kick-event-leave-message-not-being-sent.patch => 0623-Fixes-kick-event-leave-message-not-being-sent.patch} (97%) rename patches/server/{0625-Add-config-for-mobs-immune-to-default-effects.patch => 0624-Add-config-for-mobs-immune-to-default-effects.patch} (94%) rename patches/server/{0626-Don-t-apply-cramming-damage-to-players.patch => 0625-Don-t-apply-cramming-damage-to-players.patch} (94%) rename patches/server/{0627-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0626-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0628-Add-a-bunch-of-missing-forceDrop-toggles.patch => 0627-Add-a-bunch-of-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0629-Stinger-API.patch => 0628-Stinger-API.patch} (100%) rename patches/server/{0630-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0629-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0631-Add-System.out-err-catcher.patch => 0630-Add-System.out-err-catcher.patch} (98%) rename patches/server/{0632-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0631-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0633-Improve-boat-collision-performance.patch => 0632-Improve-boat-collision-performance.patch} (100%) rename patches/server/{0634-Prevent-AFK-kick-while-watching-end-credits.patch => 0633-Prevent-AFK-kick-while-watching-end-credits.patch} (93%) rename patches/server/{0635-Allow-skipping-writing-of-comments-to-server.propert.patch => 0634-Allow-skipping-writing-of-comments-to-server.propert.patch} (97%) rename patches/server/{0636-Add-PlayerSetSpawnEvent.patch => 0635-Add-PlayerSetSpawnEvent.patch} (99%) rename patches/server/{0637-Make-hoppers-respect-inventory-max-stack-size.patch => 0636-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0638-Optimize-entity-tracker-passenger-checks.patch => 0637-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0639-Config-option-for-Piglins-guarding-chests.patch => 0638-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0640-Added-EntityDamageItemEvent.patch => 0639-Added-EntityDamageItemEvent.patch} (97%) rename patches/server/{0641-Optimize-indirect-passenger-iteration.patch => 0640-Optimize-indirect-passenger-iteration.patch} (95%) rename patches/server/{0642-Configurable-item-frame-map-cursor-update-interval.patch => 0641-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0643-Make-EntityUnleashEvent-cancellable.patch => 0642-Make-EntityUnleashEvent-cancellable.patch} (100%) rename patches/server/{0644-Clear-bucket-NBT-after-dispense.patch => 0643-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0645-Change-EnderEye-target-without-changing-other-things.patch => 0644-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0646-Add-BlockBreakBlockEvent.patch => 0645-Add-BlockBreakBlockEvent.patch} (98%) rename patches/server/{0647-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0646-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0648-More-CommandBlock-API.patch => 0647-More-CommandBlock-API.patch} (100%) rename patches/server/{0649-Add-missing-team-sidebar-display-slots.patch => 0648-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0650-Add-back-EntityPortalExitEvent.patch => 0649-Add-back-EntityPortalExitEvent.patch} (97%) rename patches/server/{0651-Add-methods-to-find-targets-for-lightning-strikes.patch => 0650-Add-methods-to-find-targets-for-lightning-strikes.patch} (93%) rename patches/server/{0652-Get-entity-default-attributes.patch => 0651-Get-entity-default-attributes.patch} (100%) rename patches/server/{0653-Left-handed-API.patch => 0652-Left-handed-API.patch} (100%) rename patches/server/{0654-Add-more-advancement-API.patch => 0653-Add-more-advancement-API.patch} (100%) rename patches/server/{0655-Add-ItemFactory-getSpawnEgg-API.patch => 0654-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0656-Add-critical-damage-API.patch => 0655-Add-critical-damage-API.patch} (98%) rename patches/server/{0657-Fix-issues-with-mob-conversion.patch => 0656-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0658-Add-isCollidable-methods-to-various-places.patch => 0657-Add-isCollidable-methods-to-various-places.patch} (96%) rename patches/server/{0659-Goat-ram-API.patch => 0658-Goat-ram-API.patch} (100%) rename patches/server/{0660-Add-API-for-resetting-a-single-score.patch => 0659-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0661-Add-Raw-Byte-Entity-Serialization.patch => 0660-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/server/{0662-Vanilla-command-permission-fixes.patch => 0661-Vanilla-command-permission-fixes.patch} (97%) rename patches/server/{0663-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0662-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (97%) rename patches/server/{0664-Fix-GameProfileCache-concurrency.patch => 0663-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0665-Improve-and-expand-AsyncCatcher.patch => 0664-Improve-and-expand-AsyncCatcher.patch} (98%) rename patches/server/{0666-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0665-Add-paper-mobcaps-and-paper-playermobcaps.patch} (100%) rename patches/server/{0667-Sanitize-ResourceLocation-error-logging.patch => 0666-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0668-Optimise-general-POI-access.patch => 0667-Optimise-general-POI-access.patch} (100%) rename patches/server/{0669-Custom-table-implementation-for-blockstate-state-loo.patch => 0668-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{0670-Manually-inline-methods-in-BlockPosition.patch => 0669-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0671-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0670-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0672-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0671-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (94%) rename patches/server/{0673-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0672-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0674-Don-t-lookup-fluid-state-when-raytracing.patch => 0673-Don-t-lookup-fluid-state-when-raytracing.patch} (100%) rename patches/server/{0675-Time-scoreboard-search.patch => 0674-Time-scoreboard-search.patch} (100%) rename patches/server/{0676-Send-full-pos-packets-for-hard-colliding-entities.patch => 0675-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{0677-Do-not-run-raytrace-logic-for-AIR.patch => 0676-Do-not-run-raytrace-logic-for-AIR.patch} (100%) rename patches/server/{0678-Execute-chunk-tasks-mid-tick.patch => 0677-Execute-chunk-tasks-mid-tick.patch} (100%) rename patches/server/{0679-Oprimise-map-impl-for-tracked-players.patch => 0678-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/server/{0680-Optimise-BlockSoil-nearby-water-lookup.patch => 0679-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0681-Optimise-random-block-ticking.patch => 0680-Optimise-random-block-ticking.patch} (99%) rename patches/server/{0682-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 0681-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (99%) rename patches/server/{0683-Use-Velocity-compression-and-cipher-natives.patch => 0682-Use-Velocity-compression-and-cipher-natives.patch} (99%) rename patches/server/{0684-Detail-more-information-in-watchdog-dumps.patch => 0683-Detail-more-information-in-watchdog-dumps.patch} (100%) rename patches/server/{0685-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch => 0684-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch} (100%) rename patches/server/{0686-Distance-manager-tick-timings.patch => 0685-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0687-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0686-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (94%) rename patches/server/{0688-Check-requirement-before-suggesting-root-nodes.patch => 0687-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0689-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0688-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (92%) rename patches/server/{0690-Add-packet-limiter-config.patch => 0689-Add-packet-limiter-config.patch} (100%) rename patches/server/{0691-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0690-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0692-Ensure-valid-vehicle-status.patch => 0691-Ensure-valid-vehicle-status.patch} (100%) rename patches/server/{0693-Prevent-softlocked-end-exit-portal-generation.patch => 0692-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0694-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0693-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0695-Don-t-log-debug-logging-being-disabled.patch => 0694-Don-t-log-debug-logging-being-disabled.patch} (88%) rename patches/server/{0696-fix-various-menus-with-empty-level-accesses.patch => 0695-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0697-Preserve-overstacked-loot.patch => 0696-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0698-Update-head-rotation-in-missing-places.patch => 0697-Update-head-rotation-in-missing-places.patch} (100%) rename patches/server/{0699-prevent-unintended-light-block-manipulation.patch => 0698-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0700-Fix-CraftCriteria-defaults-map.patch => 0699-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0701-Fix-upstreams-block-state-factories.patch => 0700-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0702-Configurable-feature-seeds.patch => 0701-Configurable-feature-seeds.patch} (100%) rename patches/server/{0703-Add-root-admin-user-detection.patch => 0702-Add-root-admin-user-detection.patch} (97%) rename patches/server/{0704-Always-allow-item-changing-in-Fireball.patch => 0703-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0705-don-t-attempt-to-teleport-dead-entities.patch => 0704-don-t-attempt-to-teleport-dead-entities.patch} (100%) rename patches/server/{0706-Prevent-excessive-velocity-through-repeated-crits.patch => 0705-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/server/{0707-Remove-client-side-code-using-deprecated-for-removal.patch => 0706-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0708-Fix-removing-recipes-from-RecipeIterator.patch => 0707-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0709-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0708-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/server/{0710-Hide-unnecessary-itemmeta-from-clients.patch => 0709-Hide-unnecessary-itemmeta-from-clients.patch} (98%) rename patches/server/{0711-Fix-Spigot-growth-modifiers.patch => 0710-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0712-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0711-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0713-Add-PlayerItemFrameChangeEvent.patch => 0712-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0714-Optimize-HashMapPalette.patch => 0713-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0715-Allow-delegation-to-vanilla-chunk-gen.patch => 0714-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/server/{0716-Collision-optimisations.patch => 0715-Collision-optimisations.patch} (100%) rename patches/server/{0717-Optimise-collision-checking-in-player-move-packet-ha.patch => 0716-Optimise-collision-checking-in-player-move-packet-ha.patch} (99%) rename patches/server/{0718-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0717-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0719-Add-more-Campfire-API.patch => 0718-Add-more-Campfire-API.patch} (100%) rename patches/server/{0720-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0719-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0721-Fix-tripwire-state-inconsistency.patch => 0720-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{0722-Forward-CraftEntity-in-teleport-command.patch => 0721-Forward-CraftEntity-in-teleport-command.patch} (94%) rename patches/server/{0723-Improve-scoreboard-entries.patch => 0722-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0724-Entity-powdered-snow-API.patch => 0723-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0725-Add-API-for-item-entity-health.patch => 0724-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0726-Fix-entity-type-tags-suggestions-in-selectors.patch => 0725-Fix-entity-type-tags-suggestions-in-selectors.patch} (98%) rename patches/server/{0727-Configurable-max-block-light-for-monster-spawning.patch => 0726-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0728-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0727-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0729-Load-effect-amplifiers-greater-than-127-correctly.patch => 0728-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0730-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0729-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0731-Fix-bees-aging-inside-hives.patch => 0730-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0732-Bucketable-API.patch => 0731-Bucketable-API.patch} (100%) rename patches/server/{0733-Validate-usernames.patch => 0732-Validate-usernames.patch} (97%) rename patches/server/{0734-Make-water-animal-spawn-height-configurable.patch => 0733-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0735-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0734-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (96%) rename patches/server/{0736-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0735-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0737-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0736-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0738-Multiple-Entries-with-Scoreboards.patch => 0737-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0739-Reset-placed-block-on-exception.patch => 0738-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0740-Add-configurable-height-for-slime-spawn.patch => 0739-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0742-Fix-xp-reward-for-baby-zombies.patch => 0740-Fix-xp-reward-for-baby-zombies.patch} (100%) delete mode 100644 patches/server/0741-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch rename patches/server/{0743-Multi-Block-Change-API-Implementation.patch => 0741-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0744-Fix-NotePlayEvent.patch => 0742-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0745-Freeze-Tick-Lock-API.patch => 0743-Freeze-Tick-Lock-API.patch} (100%) rename patches/server/{0746-Dolphin-API.patch => 0744-Dolphin-API.patch} (100%) rename patches/server/{0747-More-PotionEffectType-API.patch => 0745-More-PotionEffectType-API.patch} (100%) rename patches/server/{0748-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0746-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0749-API-for-creating-command-sender-which-forwards-feedb.patch => 0747-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/server/{0750-Add-missing-structure-set-seed-configs.patch => 0748-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0751-Implement-regenerateChunk.patch => 0749-Implement-regenerateChunk.patch} (98%) rename patches/server/{0752-Fix-cancelled-powdered-snow-bucket-placement.patch => 0750-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0753-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0751-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (100%) rename patches/server/{0754-Add-GameEvent-tags.patch => 0752-Add-GameEvent-tags.patch} (100%) rename patches/server/{0755-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0753-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (100%) rename patches/server/{0756-Furnace-RecipesUsed-API.patch => 0754-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0757-Configurable-sculk-sensor-listener-range.patch => 0755-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0758-Add-missing-block-data-mins-and-maxes.patch => 0756-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0759-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0757-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (96%) rename patches/server/{0760-Put-world-into-worldlist-before-initing-the-world.patch => 0758-Put-world-into-worldlist-before-initing-the-world.patch} (91%) rename patches/server/{0761-Fix-Entity-Position-Desync.patch => 0759-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0762-Custom-Potion-Mixes.patch => 0760-Custom-Potion-Mixes.patch} (100%) rename patches/server/{0763-Force-close-world-loading-screen.patch => 0761-Force-close-world-loading-screen.patch} (100%) rename patches/server/{0764-Fix-falling-block-spawn-methods.patch => 0762-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0765-Expose-furnace-minecart-push-values.patch => 0763-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0766-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0764-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0767-More-Projectile-API.patch => 0765-More-Projectile-API.patch} (99%) rename patches/server/{0768-Fix-swamp-hut-cat-generation-deadlock.patch => 0766-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0769-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0767-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (93%) rename patches/server/{0770-Implement-getComputedBiome-API.patch => 0768-Implement-getComputedBiome-API.patch} (96%) rename patches/server/{0771-Make-some-itemstacks-nonnull.patch => 0769-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0772-Implement-enchantWithLevels-API.patch => 0770-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0773-Fix-saving-in-unloadWorld.patch => 0771-Fix-saving-in-unloadWorld.patch} (90%) rename patches/server/{0774-Buffer-OOB-setBlock-calls.patch => 0772-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0775-Add-TameableDeathMessageEvent.patch => 0773-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0776-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0774-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (99%) rename patches/server/{0777-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0775-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/server/{0778-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0776-Ensure-entity-passenger-world-matches-ridden-entity.patch} (100%) rename patches/server/{0779-Guard-against-invalid-entity-positions.patch => 0777-Guard-against-invalid-entity-positions.patch} (95%) rename patches/server/{0780-cache-resource-keys.patch => 0778-cache-resource-keys.patch} (100%) rename patches/server/{0781-Allow-to-change-the-podium-for-the-EnderDragon.patch => 0779-Allow-to-change-the-podium-for-the-EnderDragon.patch} (100%) rename patches/server/{0782-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0780-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0783-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0781-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0784-Prevent-tile-entity-copies-loading-chunks.patch => 0782-Prevent-tile-entity-copies-loading-chunks.patch} (93%) rename patches/server/{0785-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0783-Use-username-instead-of-display-name-in-PlayerList-g.patch} (100%) rename patches/server/{0786-Pass-ServerLevel-for-gamerule-callbacks.patch => 0784-Pass-ServerLevel-for-gamerule-callbacks.patch} (97%) rename patches/server/{0787-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch => 0785-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0788-WorldCreator-keepSpawnLoaded.patch => 0786-WorldCreator-keepSpawnLoaded.patch} (94%) rename patches/server/{0789-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0787-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0790-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0788-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0791-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0789-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0792-Fire-CauldronLevelChange-on-initial-fill.patch => 0790-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0793-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0791-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0794-Add-PlayerStopUsingItemEvent.patch => 0792-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/server/{0795-Don-t-tick-markers.patch => 0793-Don-t-tick-markers.patch} (97%) rename patches/server/{0796-Expand-FallingBlock-API.patch => 0794-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0797-Do-not-accept-invalid-client-settings.patch => 0795-Do-not-accept-invalid-client-settings.patch} (94%) rename patches/server/{0798-Add-support-for-Proxy-Protocol.patch => 0796-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0799-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0797-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0800-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0798-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0801-Sanitize-Sent-BlockEntity-NBT.patch => 0799-Sanitize-Sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0802-Disable-component-selector-resolving-in-books-by-def.patch => 0800-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0803-Prevent-entity-loading-causing-async-lookups.patch => 0801-Prevent-entity-loading-causing-async-lookups.patch} (100%) rename patches/server/{0804-Throw-exception-on-world-create-while-being-ticked.patch => 0802-Throw-exception-on-world-create-while-being-ticked.patch} (100%) rename patches/server/{0805-Add-Alternate-Current-redstone-implementation.patch => 0803-Add-Alternate-Current-redstone-implementation.patch} (99%) rename patches/server/{0806-Dont-resent-entity-on-art-update.patch => 0804-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0807-Add-WardenAngerChangeEvent.patch => 0805-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0808-Add-option-for-strict-advancement-dimension-checks.patch => 0806-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/server/{0809-Add-missing-important-BlockStateListPopulator-method.patch => 0807-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0810-Nameable-Banner-API.patch => 0808-Nameable-Banner-API.patch} (100%) rename patches/server/{0811-Don-t-broadcast-messages-to-command-blocks.patch => 0809-Don-t-broadcast-messages-to-command-blocks.patch} (95%) rename patches/server/{0812-Prevent-empty-items-from-being-added-to-world.patch => 0810-Prevent-empty-items-from-being-added-to-world.patch} (93%) rename patches/server/{0813-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0811-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0814-Add-Player-getFishHook.patch => 0812-Add-Player-getFishHook.patch} (92%) rename patches/server/{0815-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0813-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0816-Add-various-missing-EntityDropItemEvent-calls.patch => 0814-Add-various-missing-EntityDropItemEvent-calls.patch} (100%) rename patches/server/{0817-Fix-Bee-flower-NPE.patch => 0815-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0818-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0816-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (92%) rename patches/server/{0819-More-Teleport-API.patch => 0817-More-Teleport-API.patch} (99%) rename patches/server/{0820-Add-EntityPortalReadyEvent.patch => 0818-Add-EntityPortalReadyEvent.patch} (95%) rename patches/server/{0821-Don-t-use-level-random-in-entity-constructors.patch => 0819-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0822-Send-block-entities-after-destroy-prediction.patch => 0820-Send-block-entities-after-destroy-prediction.patch} (98%) rename patches/server/{0823-Warn-on-plugins-accessing-faraway-chunks.patch => 0821-Warn-on-plugins-accessing-faraway-chunks.patch} (100%) rename patches/server/{0824-Custom-Chat-Completion-Suggestions-API.patch => 0822-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0825-Add-and-fix-missing-BlockFadeEvents.patch => 0823-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0826-Collision-API.patch => 0824-Collision-API.patch} (96%) rename patches/server/{0827-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0825-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (92%) rename patches/server/{0828-Block-Ticking-API.patch => 0826-Block-Ticking-API.patch} (100%) rename patches/server/{0829-Add-Velocity-IP-Forwarding-Support.patch => 0827-Add-Velocity-IP-Forwarding-Support.patch} (94%) rename patches/server/{0830-Add-NamespacedKey-biome-methods.patch => 0828-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0831-Fix-plugin-loggers-on-server-shutdown.patch => 0829-Fix-plugin-loggers-on-server-shutdown.patch} (96%) rename patches/server/{0832-Stop-large-look-changes-from-crashing-the-server.patch => 0830-Stop-large-look-changes-from-crashing-the-server.patch} (100%) rename patches/server/{0833-Fire-EntityChangeBlockEvent-in-more-places.patch => 0831-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0834-Missing-eating-regain-reason.patch => 0832-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0835-Missing-effect-cause.patch => 0833-Missing-effect-cause.patch} (100%) rename patches/server/{0836-Added-byte-array-serialization-deserialization-for-P.patch => 0834-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0837-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0835-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0838-Call-BlockPhysicsEvent-more-often.patch => 0836-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0839-Configurable-chat-thread-limit.patch => 0837-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0840-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0838-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0841-fix-Jigsaw-block-kicking-user.patch => 0839-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0842-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0840-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0843-Add-getDrops-to-BlockState.patch => 0841-Add-getDrops-to-BlockState.patch} (95%) rename patches/server/{0844-Fix-a-bunch-of-vanilla-bugs.patch => 0842-Fix-a-bunch-of-vanilla-bugs.patch} (100%) rename patches/server/{0845-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0843-Remove-unnecessary-onTrackingStart-during-navigation.patch} (94%) rename patches/server/{0846-Fix-custom-piglin-loved-items.patch => 0844-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0847-EntityPickupItemEvent-fixes.patch => 0845-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0848-Correctly-handle-interactions-with-items-on-cooldown.patch => 0846-Correctly-handle-interactions-with-items-on-cooldown.patch} (97%) rename patches/server/{0849-Add-PlayerInventorySlotChangeEvent.patch => 0847-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/server/{0850-Elder-Guardian-appearance-API.patch => 0848-Elder-Guardian-appearance-API.patch} (100%) rename patches/server/{0851-Allow-changing-bed-s-occupied-property.patch => 0849-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0852-Add-entity-knockback-API.patch => 0850-Add-entity-knockback-API.patch} (100%) rename patches/server/{0853-Detect-headless-JREs.patch => 0851-Detect-headless-JREs.patch} (96%) rename patches/server/{0854-fixed-entity-vehicle-collision-event-not-called.patch => 0852-fixed-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0855-optimized-dirt-and-snow-spreading.patch => 0853-optimized-dirt-and-snow-spreading.patch} (100%) rename patches/server/{0856-Added-EntityToggleSitEvent.patch => 0854-Added-EntityToggleSitEvent.patch} (100%) rename patches/server/{0857-Add-fire-tick-delay-option.patch => 0855-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0858-Add-Moving-Piston-API.patch => 0856-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0859-Ignore-impossible-spawn-tick.patch => 0857-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0860-Track-projectile-source-for-fireworks-from-dispenser.patch => 0858-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0861-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0859-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0862-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0860-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (95%) rename patches/server/{0863-Prevent-compass-from-loading-chunks.patch => 0861-Prevent-compass-from-loading-chunks.patch} (100%) rename patches/server/{0864-Add-PrePlayerAttackEntityEvent.patch => 0862-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/server/{0865-ensure-reset-EnderDragon-boss-event-name.patch => 0863-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0866-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0864-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0867-Add-Player-Warden-Warning-API.patch => 0865-Add-Player-Warden-Warning-API.patch} (100%) rename patches/server/{0868-More-vanilla-friendly-methods-to-update-trades.patch => 0866-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0869-Add-paper-dumplisteners-command.patch => 0867-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0870-check-global-player-list-where-appropriate.patch => 0868-check-global-player-list-where-appropriate.patch} (97%) rename patches/server/{0871-Fix-async-entity-add-due-to-fungus-trees.patch => 0869-Fix-async-entity-add-due-to-fungus-trees.patch} (95%) rename patches/server/{0872-ItemStack-damage-API.patch => 0870-ItemStack-damage-API.patch} (100%) rename patches/server/{0873-Friction-API.patch => 0871-Friction-API.patch} (100%) rename patches/server/{0874-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0872-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0875-Fix-player-kick-on-shutdown.patch => 0873-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0876-Sync-offhand-slot-in-menus.patch => 0874-Sync-offhand-slot-in-menus.patch} (100%) rename patches/server/{0877-Player-Entity-Tracking-Events.patch => 0875-Player-Entity-Tracking-Events.patch} (96%) rename patches/server/{0878-Limit-pet-look-distance.patch => 0876-Limit-pet-look-distance.patch} (100%) rename patches/server/{0879-Properly-resend-entities.patch => 0877-Properly-resend-entities.patch} (99%) rename patches/server/{0880-Fixes-and-additions-to-the-SpawnReason-API.patch => 0878-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0881-fix-Instruments.patch => 0879-fix-Instruments.patch} (100%) rename patches/server/{0882-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0880-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (97%) rename patches/server/{0883-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0881-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0884-Add-BlockLockCheckEvent.patch => 0882-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0885-Add-Sneaking-API-for-Entities.patch => 0883-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/server/{0886-Improve-logging-and-errors.patch => 0884-Improve-logging-and-errors.patch} (98%) rename patches/server/{0887-Improve-PortalEvents.patch => 0885-Improve-PortalEvents.patch} (93%) rename patches/server/{0888-Add-config-option-for-spider-worldborder-climbing.patch => 0886-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0889-Add-missing-SpigotConfig-logCommands-check.patch => 0887-Add-missing-SpigotConfig-logCommands-check.patch} (92%) rename patches/server/{0890-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0888-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0891-Flying-Fall-Damage.patch => 0889-Flying-Fall-Damage.patch} (100%) rename patches/server/{0892-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0890-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/server/{0893-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0891-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (100%) rename patches/server/{0894-config-for-disabling-entity-tag-tags.patch => 0892-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0895-Use-single-player-info-update-packet-on-join.patch => 0893-Use-single-player-info-update-packet-on-join.patch} (97%) rename patches/server/{0896-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0894-Correctly-shrink-items-during-EntityResurrectEvent.patch} (100%) rename patches/server/{0897-Win-Screen-API.patch => 0895-Win-Screen-API.patch} (100%) rename patches/server/{0898-Remove-CraftItemStack-setAmount-null-assignment.patch => 0896-Remove-CraftItemStack-setAmount-null-assignment.patch} (93%) rename patches/server/{0899-Fix-force-opening-enchantment-tables.patch => 0897-Fix-force-opening-enchantment-tables.patch} (94%) rename patches/server/{0900-Add-Entity-Body-Yaw-API.patch => 0898-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0901-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0899-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0902-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0900-Update-the-flag-when-a-captured-block-state-is-outda.patch} (90%) rename patches/server/{0903-Add-EntityFertilizeEggEvent.patch => 0901-Add-EntityFertilizeEggEvent.patch} (98%) rename patches/server/{0904-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0902-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (94%) rename patches/server/{0905-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0903-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0906-Correctly-handle-ArmorStand-invisibility.patch => 0904-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0907-Fix-advancement-triggers-for-entity-damage.patch => 0905-Fix-advancement-triggers-for-entity-damage.patch} (100%) rename patches/server/{0908-Fix-text-display-error-on-spawn.patch => 0906-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0909-Fix-certain-inventories-returning-null-Locations.patch => 0907-Fix-certain-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0910-Add-Shearable-API.patch => 0908-Add-Shearable-API.patch} (100%) rename patches/server/{0911-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0909-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0912-Optimize-Hoppers.patch => 0910-Optimize-Hoppers.patch} (100%) rename patches/server/{0913-Fix-beehives-generating-from-using-bonemeal.patch => 0911-Fix-beehives-generating-from-using-bonemeal.patch} (100%) rename patches/server/{0914-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0912-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0915-Treat-sequence-violations-like-they-should-be.patch => 0913-Treat-sequence-violations-like-they-should-be.patch} (91%) rename patches/server/{0916-remove-duplicate-animate-packet-for-records.patch => 0914-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0917-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0915-Prevent-causing-expired-keys-from-impacting-new-join.patch} (97%) rename patches/server/{0918-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0916-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (90%) rename patches/server/{0919-Use-array-for-gamerule-storage.patch => 0917-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0920-Fix-a-couple-of-upstream-bed-issues.patch => 0918-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0921-Fix-demo-flag-not-enabling-demo-mode.patch => 0919-Fix-demo-flag-not-enabling-demo-mode.patch} (91%) rename patches/server/{0922-Add-Mob-Experience-reward-API.patch => 0920-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0923-Break-redstone-on-top-of-trap-doors-early.patch => 0921-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0924-Fix-DamageCause-for-Falling-Blocks.patch => 0922-Fix-DamageCause-for-Falling-Blocks.patch} (92%) rename patches/server/{0925-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0923-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0926-More-accurate-isInOpenWater-impl.patch => 0924-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0927-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0925-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0928-Optimise-recalcBlockCounts-for-empty-sections.patch => 0926-Optimise-recalcBlockCounts-for-empty-sections.patch} (100%) rename patches/server/{0929-Expand-PlayerItemMendEvent.patch => 0927-Expand-PlayerItemMendEvent.patch} (98%) rename patches/server/{0930-Refresh-ProjectileSource-for-projectiles.patch => 0928-Refresh-ProjectileSource-for-projectiles.patch} (100%) rename patches/server/{0931-Add-transient-modifier-API.patch => 0929-Add-transient-modifier-API.patch} (100%) rename patches/server/{0932-Fix-block-place-logic.patch => 0930-Fix-block-place-logic.patch} (97%) rename patches/server/{0933-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0931-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0934-Call-BlockGrowEvent-for-missing-blocks.patch => 0932-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0935-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0933-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (94%) rename patches/server/{0936-fix-MapLike-spam-for-missing-key-selector.patch => 0934-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0937-Fix-sniffer-removeExploredLocation.patch => 0935-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0938-Add-method-to-remove-all-active-potion-effects.patch => 0936-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0939-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch => 0937-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch} (100%) rename patches/server/{0940-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0938-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0941-Properly-Cancel-Usable-Items.patch => 0939-Properly-Cancel-Usable-Items.patch} (97%) rename patches/server/{0942-Add-event-for-player-editing-sign.patch => 0940-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0943-Only-tick-item-frames-if-players-can-see-it.patch => 0941-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0944-Fix-cmd-permission-levels-for-command-blocks.patch => 0942-Fix-cmd-permission-levels-for-command-blocks.patch} (97%) rename patches/server/{0945-Add-option-to-disable-block-updates.patch => 0943-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0946-Call-missing-BlockDispenseEvent.patch => 0944-Call-missing-BlockDispenseEvent.patch} (98%) rename patches/server/{0947-Don-t-load-chunks-for-supporting-block-checks.patch => 0945-Don-t-load-chunks-for-supporting-block-checks.patch} (100%) rename patches/server/{0948-Optimize-player-lookups-for-beacons.patch => 0946-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0949-Add-Sign-getInteractableSideFor.patch => 0947-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0950-Array-backed-synched-entity-data.patch => 0948-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0951-fix-item-meta-for-tadpole-buckets.patch => 0949-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0952-Fix-BanList-API.patch => 0950-Fix-BanList-API.patch} (100%) rename patches/server/{0953-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0951-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0954-Fix-possible-NPE-on-painting-creation.patch => 0952-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0955-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0953-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0956-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0954-ExperienceOrb-should-call-EntitySpawnEvent.patch} (93%) rename patches/server/{0957-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0955-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0958-Add-whitelist-events.patch => 0956-Add-whitelist-events.patch} (100%) rename patches/server/{0959-Implement-PlayerFailMoveEvent.patch => 0957-Implement-PlayerFailMoveEvent.patch} (98%) rename patches/server/{0960-Folia-scheduler-and-owned-region-API.patch => 0958-Folia-scheduler-and-owned-region-API.patch} (100%) rename patches/server/{0961-Only-erase-allay-memory-on-non-item-targets.patch => 0959-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0962-API-for-updating-recipes-on-clients.patch => 0960-API-for-updating-recipes-on-clients.patch} (97%) rename patches/server/{0963-Fix-rotation-when-spawning-display-entities.patch => 0961-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0964-Only-capture-actual-tree-growth.patch => 0962-Only-capture-actual-tree-growth.patch} (100%) rename patches/server/{0965-Use-correct-source-for-mushroom-block-spread-event.patch => 0963-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0966-Respect-randomizeData-on-more-entities-when-spawning.patch => 0964-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0967-Use-correct-seed-on-api-world-load.patch => 0965-Use-correct-seed-on-api-world-load.patch} (90%) rename patches/server/{0968-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0966-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0969-Cache-map-ids-on-item-frames.patch => 0967-Cache-map-ids-on-item-frames.patch} (100%) rename patches/server/{0970-Fix-custom-statistic-criteria-creation.patch => 0968-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0971-Bandaid-fix-for-Effect.patch => 0969-Bandaid-fix-for-Effect.patch} (100%) rename patches/server/{0972-SculkCatalyst-bloom-API.patch => 0970-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0973-API-for-an-entity-s-scoreboard-name.patch => 0971-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0974-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0972-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (100%) rename patches/server/{0975-Deprecate-and-replace-methods-with-old-StructureType.patch => 0973-Deprecate-and-replace-methods-with-old-StructureType.patch} (96%) rename patches/server/{0976-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0974-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (95%) rename patches/server/{0977-Properly-handle-BlockBreakEvent-isDropItems.patch => 0975-Properly-handle-BlockBreakEvent-isDropItems.patch} (100%) rename patches/server/{0978-Fire-entity-death-event-for-ender-dragon.patch => 0976-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0979-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0977-Configurable-entity-tracking-range-by-Y-coordinate.patch} (100%) rename patches/server/{0980-Add-Listing-API-for-Player.patch => 0978-Add-Listing-API-for-Player.patch} (100%) rename patches/server/{0981-Configurable-Region-Compression-Format.patch => 0979-Configurable-Region-Compression-Format.patch} (100%) rename patches/server/{0982-Expose-clicked-BlockFace-during-BlockDamageEvent.patch => 0980-Expose-clicked-BlockFace-during-BlockDamageEvent.patch} (96%) rename patches/server/{0983-Fix-NPE-on-Boat-getStatus.patch => 0981-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0984-Expand-Pose-API.patch => 0982-Expand-Pose-API.patch} (100%) rename patches/server/{0985-More-DragonBattle-API.patch => 0983-More-DragonBattle-API.patch} (100%) rename patches/server/{0986-Deep-clone-unhandled-nbt-tags.patch => 0984-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0987-Add-PlayerPickItemEvent.patch => 0985-Add-PlayerPickItemEvent.patch} (96%) rename patches/server/{0988-Improve-performance-of-mass-crafts.patch => 0986-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{0989-Allow-trident-custom-damage.patch => 0987-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0990-Expose-hand-during-BlockCanBuildEvent.patch => 0988-Expose-hand-during-BlockCanBuildEvent.patch} (100%) rename patches/server/{0991-Optimize-nearest-structure-border-iteration.patch => 0989-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0992-Implement-OfflinePlayer-isConnected.patch => 0990-Implement-OfflinePlayer-isConnected.patch} (100%) rename patches/server/{0993-Fix-inventory-desync.patch => 0991-Fix-inventory-desync.patch} (100%) rename patches/server/{0994-Add-titleOverride-to-InventoryOpenEvent.patch => 0992-Add-titleOverride-to-InventoryOpenEvent.patch} (97%) rename patches/server/{0995-Configure-sniffer-egg-hatch-time.patch => 0993-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0996-Do-crystal-portal-proximity-check-before-entity-look.patch => 0994-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0997-Skip-POI-finding-if-stuck-in-vehicle.patch => 0995-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0998-Add-slot-sanity-checks-in-container-clicks.patch => 0996-Add-slot-sanity-checks-in-container-clicks.patch} (96%) rename patches/server/{0999-Call-BlockRedstoneEvents-for-lecterns.patch => 0997-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{1000-Allow-proper-checking-of-empty-item-stacks.patch => 0998-Allow-proper-checking-of-empty-item-stacks.patch} (93%) rename patches/server/{1001-Fix-silent-equipment-change-for-mobs.patch => 0999-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{1002-Fix-spigot-s-Forced-Stats.patch => 1000-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{1003-Add-missing-InventoryHolders-to-inventories.patch => 1001-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/server/{1004-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 1002-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{1005-Actually-optimise-explosions.patch => 1003-Actually-optimise-explosions.patch} (100%) rename patches/server/{1006-Add-missing-logs-for-log-ips-config-option.patch => 1004-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{1007-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 1005-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{1008-Fix-SuspiciousStewMeta.patch => 1006-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{1009-Optimise-chunk-tick-iteration.patch => 1007-Optimise-chunk-tick-iteration.patch} (100%) rename patches/server/{1010-Lag-compensation-ticks.patch => 1008-Lag-compensation-ticks.patch} (100%) rename patches/server/{1011-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 1009-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{1012-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 1010-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{1013-Fix-team-sidebar-objectives-not-being-cleared.patch => 1011-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{1014-Optimise-nearby-player-retrieval.patch => 1012-Optimise-nearby-player-retrieval.patch} (98%) rename patches/server/{1015-Remove-streams-for-villager-AI.patch => 1013-Remove-streams-for-villager-AI.patch} (100%) rename patches/server/{1016-Fix-missing-map-initialize-event-call.patch => 1014-Fix-missing-map-initialize-event-call.patch} (95%) rename patches/server/{1017-Update-entity-data-when-attaching-firework-to-entity.patch => 1015-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{1018-Use-correct-variable-for-initializing-CraftLootTable.patch => 1016-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{1019-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 1017-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{1020-Fix-UnsafeValues-loadAdvancement.patch => 1018-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{1021-Add-player-idle-duration-API.patch => 1019-Add-player-idle-duration-API.patch} (100%) rename patches/server/{1022-Don-t-check-if-we-can-see-non-visible-entities.patch => 1020-Don-t-check-if-we-can-see-non-visible-entities.patch} (90%) rename patches/server/{1023-Fix-NPE-in-SculkBloomEvent-world-access.patch => 1021-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{1024-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 1022-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/server/{1025-Optimize-VarInts.patch => 1023-Optimize-VarInts.patch} (100%) rename patches/server/{1026-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 1024-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{1027-Add-predicate-for-blocks-when-raytracing.patch => 1025-Add-predicate-for-blocks-when-raytracing.patch} (98%) rename patches/server/{1028-Broadcast-take-item-packets-with-collector-as-source.patch => 1026-Broadcast-take-item-packets-with-collector-as-source.patch} (92%) rename patches/server/{1029-fix-secure-profile-with-proxy-online-mode.patch => 1027-fix-secure-profile-with-proxy-online-mode.patch} (92%) rename patches/server/{1030-Expand-LingeringPotion-API.patch => 1028-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{1031-Add-MaterialTagsTest.patch => 1029-Add-MaterialTagsTest.patch} (100%) rename patches/server/{1032-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 1030-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/server/{1033-Add-hand-to-fish-event-for-all-player-interactions.patch => 1031-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{1034-Fix-several-issues-with-EntityBreedEvent.patch => 1032-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{1035-Add-UUID-attribute-modifier-API.patch => 1033-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{1036-Fix-missing-event-call-for-entity-teleport-API.patch => 1034-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{1037-Lazily-create-LootContext-for-criterions.patch => 1035-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{1038-Don-t-fire-sync-events-during-worldgen.patch => 1036-Don-t-fire-sync-events-during-worldgen.patch} (100%) rename patches/server/{1039-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 1037-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{1040-Restore-vanilla-entity-drops-behavior.patch => 1038-Restore-vanilla-entity-drops-behavior.patch} (100%) rename patches/server/{1041-Add-Structure-check-API.patch => 1039-Add-Structure-check-API.patch} (91%) rename patches/server/{1042-Dont-resend-blocks-on-interactions.patch => 1040-Dont-resend-blocks-on-interactions.patch} (100%) rename patches/server/{1043-Keep-previous-behavior-for-setResourcePack.patch => 1041-Keep-previous-behavior-for-setResourcePack.patch} (100%) rename patches/server/{1044-properly-read-and-store-sus-effect-duration.patch => 1042-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{1045-Use-correct-max-stack-size-in-crafter.patch => 1043-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{1046-add-more-scoreboard-API.patch => 1044-add-more-scoreboard-API.patch} (100%) rename patches/server/{1047-Improve-Registry.patch => 1045-Improve-Registry.patch} (100%) rename patches/server/{1048-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 1046-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (100%) rename patches/server/{1049-Add-experience-points-API.patch => 1047-Add-experience-points-API.patch} (100%) rename patches/server/{1050-Add-missing-InventoryType.patch => 1048-Add-missing-InventoryType.patch} (100%) rename patches/server/{1051-Add-drops-to-shear-events.patch => 1049-Add-drops-to-shear-events.patch} (100%) rename patches/server/{1052-Add-PlayerShieldDisableEvent.patch => 1050-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/server/{1053-Add-HiddenPotionEffect-API.patch => 1051-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1054-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1052-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{1055-fix-ItemMeta-removing-CustomModelData.patch => 1053-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/server/{1056-Validate-ResourceLocation-in-NBT-reading.patch => 1054-Validate-ResourceLocation-in-NBT-reading.patch} (100%) rename patches/server/{1057-Properly-handle-experience-dropping-on-block-break.patch => 1055-Properly-handle-experience-dropping-on-block-break.patch} (100%) rename patches/server/{1058-Fixup-NamespacedKey-handling.patch => 1056-Fixup-NamespacedKey-handling.patch} (100%) diff --git a/build-data/spigot-server-patches/re-add-asm-dependency.patch b/build-data/spigot-server-patches/re-add-asm-dependency.patch index fcf343fa1d77..6e33148caaa2 100644 --- a/build-data/spigot-server-patches/re-add-asm-dependency.patch +++ b/build-data/spigot-server-patches/re-add-asm-dependency.patch @@ -24,6 +24,6 @@ + + org.ow2.asm + asm-commons -+-- ++-- +2.43.0 + diff --git a/patches/api/0090-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch b/patches/api/0090-Add-more-fields-to-AsyncPreLoginEvent.patch similarity index 58% rename from patches/api/0090-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch rename to patches/api/0090-Add-more-fields-to-AsyncPreLoginEvent.patch index 93f6f96fdfdb..b73f9ab1ffc1 100644 --- a/patches/api/0090-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch +++ b/patches/api/0090-Add-more-fields-to-AsyncPreLoginEvent.patch @@ -1,12 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 18 Mar 2018 11:43:30 -0400 -Subject: [PATCH] Ability to change PlayerProfile in AsyncPreLoginEvent +Subject: [PATCH] Add more fields to AsyncPreLoginEvent -This will allow you to change the players name or skin on login. diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -index 6aaeba3feb66462ce352dacabd845f8d8283f54b..e4afc428e9a8625bf6f5967cb659987c14f65ba6 100644 +index 3432872303aa0df97b5d9090fe98b269ef3cb9f4..f8b69b52ec8efa103e4e78e1b5c6a015e73d2a75 100644 --- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java +++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java @@ -2,6 +2,9 @@ package org.bukkit.event.player; @@ -19,59 +18,52 @@ index 6aaeba3feb66462ce352dacabd845f8d8283f54b..e4afc428e9a8625bf6f5967cb659987c import org.bukkit.event.Event; import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; -@@ -22,9 +25,9 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -22,9 +25,10 @@ public class AsyncPlayerPreLoginEvent extends Event { private static final HandlerList handlers = new HandlerList(); private Result result; private net.kyori.adventure.text.Component message; // Paper - private final String name; -+ //private String name; // Paper - Not used anymore private final InetAddress ipAddress; - private final UUID uniqueId; -+ //private UUID uniqueId; // Paper - Not used anymore ++ private PlayerProfile profile; // Paper ++ private final InetAddress rawAddress; // Paper ++ private final String hostname; // Paper @Deprecated public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress) { -@@ -32,12 +35,37 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -32,12 +36,29 @@ public class AsyncPlayerPreLoginEvent extends Event { } public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId) { + // Paper start + this(name, ipAddress, uniqueId, Bukkit.createProfile(uniqueId, name)); + } -+ private PlayerProfile profile; + -+ /** -+ * Gets the PlayerProfile of the player logging in -+ * @return The Profile -+ */ -+ @NotNull -+ public PlayerProfile getPlayerProfile() { -+ return profile; ++ @Deprecated(forRemoval = true) ++ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile) { ++ this(name, ipAddress, ipAddress, uniqueId, profile); + } + -+ /** -+ * Changes the PlayerProfile the player will login as -+ * @param profile The profile to use -+ */ -+ public void setPlayerProfile(@NotNull PlayerProfile profile) { -+ this.profile = profile; ++ @Deprecated(forRemoval = true) ++ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final InetAddress rawAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile) { ++ this(name, ipAddress, rawAddress, uniqueId, profile, ""); + } + -+ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile) { ++ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final InetAddress rawAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile, @NotNull String hostname) { super(true); -+ this.profile = profile; -+ // Paper end this.result = Result.ALLOWED; this.message = net.kyori.adventure.text.Component.empty(); // Paper - this.name = name; -+ //this.name = name; // Paper - Not used anymore ++ this.profile = profile; this.ipAddress = ipAddress; - this.uniqueId = uniqueId; -+ //this.uniqueId = uniqueId; // Paper - Not used anymore ++ this.rawAddress = rawAddress; ++ this.hostname = hostname; ++ // Paper end } /** -@@ -200,7 +228,7 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -200,7 +221,7 @@ public class AsyncPlayerPreLoginEvent extends Event { */ @NotNull public String getName() { @@ -80,7 +72,7 @@ index 6aaeba3feb66462ce352dacabd845f8d8283f54b..e4afc428e9a8625bf6f5967cb659987c } /** -@@ -220,7 +248,7 @@ public class AsyncPlayerPreLoginEvent extends Event { +@@ -220,9 +241,48 @@ public class AsyncPlayerPreLoginEvent extends Event { */ @NotNull public UUID getUniqueId() { @@ -88,4 +80,45 @@ index 6aaeba3feb66462ce352dacabd845f8d8283f54b..e4afc428e9a8625bf6f5967cb659987c + return profile.getId(); // Paper } ++ // Paper start ++ /** ++ * Gets the PlayerProfile of the player logging in ++ * @return The Profile ++ */ ++ @NotNull ++ public PlayerProfile getPlayerProfile() { ++ return profile; ++ } ++ ++ /** ++ * Changes the PlayerProfile the player will login as ++ * @param profile The profile to use ++ */ ++ public void setPlayerProfile(@NotNull PlayerProfile profile) { ++ this.profile = profile; ++ } ++ ++ /** ++ * Gets the raw address of the player logging in ++ * @return The address ++ */ ++ @NotNull ++ public InetAddress getRawAddress() { ++ return rawAddress; ++ } ++ ++ /** ++ * Gets the hostname that the player used to connect to the server, or ++ * blank if unknown ++ * ++ * @return The hostname ++ */ ++ @NotNull ++ public String getHostname() { ++ return hostname; ++ } ++ // Paper end ++ @NotNull + @Override + public HandlerList getHandlers() { diff --git a/patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch deleted file mode 100644 index e2cdbb7e10d3..000000000000 --- a/patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Connor Linfoot -Date: Wed, 12 May 2021 08:09:19 +0100 -Subject: [PATCH] Add raw address to AsyncPlayerPreLoginEvent - - -diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -index e4afc428e9a8625bf6f5967cb659987c14f65ba6..35176b16d208c9756bd00ac74b2a1dcc3fc9febb 100644 ---- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -+++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -@@ -27,6 +27,7 @@ public class AsyncPlayerPreLoginEvent extends Event { - private net.kyori.adventure.text.Component message; // Paper - //private String name; // Paper - Not used anymore - private final InetAddress ipAddress; -+ private final InetAddress rawAddress; // Paper - //private UUID uniqueId; // Paper - Not used anymore - - @Deprecated -@@ -57,7 +58,23 @@ public class AsyncPlayerPreLoginEvent extends Event { - this.profile = profile; - } - -+ // Paper Start -+ /** -+ * Gets the raw address of the player logging in -+ * @return The address -+ */ -+ @NotNull -+ public InetAddress getRawAddress() { -+ return rawAddress; -+ } -+ // Paper end -+ -+ @Deprecated - public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile) { -+ this(name, ipAddress, ipAddress, uniqueId, profile); -+ } -+ -+ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final InetAddress rawAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile) { - super(true); - this.profile = profile; - // Paper end -@@ -65,6 +82,7 @@ public class AsyncPlayerPreLoginEvent extends Event { - this.message = net.kyori.adventure.text.Component.empty(); // Paper - //this.name = name; // Paper - Not used anymore - this.ipAddress = ipAddress; -+ this.rawAddress = rawAddress; // Paper - //this.uniqueId = uniqueId; // Paper - Not used anymore - } - diff --git a/patches/api/0281-Inventory-close.patch b/patches/api/0280-Inventory-close.patch similarity index 100% rename from patches/api/0281-Inventory-close.patch rename to patches/api/0280-Inventory-close.patch diff --git a/patches/api/0282-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/api/0281-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/api/0282-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/api/0281-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/api/0283-Add-basic-Datapack-API.patch b/patches/api/0282-Add-basic-Datapack-API.patch similarity index 100% rename from patches/api/0283-Add-basic-Datapack-API.patch rename to patches/api/0282-Add-basic-Datapack-API.patch diff --git a/patches/api/0284-additions-to-PlayerGameModeChangeEvent.patch b/patches/api/0283-additions-to-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/api/0284-additions-to-PlayerGameModeChangeEvent.patch rename to patches/api/0283-additions-to-PlayerGameModeChangeEvent.patch diff --git a/patches/api/0285-ItemStack-repair-check-API.patch b/patches/api/0284-ItemStack-repair-check-API.patch similarity index 100% rename from patches/api/0285-ItemStack-repair-check-API.patch rename to patches/api/0284-ItemStack-repair-check-API.patch diff --git a/patches/api/0286-More-Enchantment-API.patch b/patches/api/0285-More-Enchantment-API.patch similarity index 100% rename from patches/api/0286-More-Enchantment-API.patch rename to patches/api/0285-More-Enchantment-API.patch diff --git a/patches/api/0287-Add-Mob-lookAt-API.patch b/patches/api/0286-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/api/0287-Add-Mob-lookAt-API.patch rename to patches/api/0286-Add-Mob-lookAt-API.patch diff --git a/patches/api/0288-ItemStack-editMeta.patch b/patches/api/0287-ItemStack-editMeta.patch similarity index 100% rename from patches/api/0288-ItemStack-editMeta.patch rename to patches/api/0287-ItemStack-editMeta.patch diff --git a/patches/api/0289-Add-EntityInsideBlockEvent.patch b/patches/api/0288-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/api/0289-Add-EntityInsideBlockEvent.patch rename to patches/api/0288-Add-EntityInsideBlockEvent.patch diff --git a/patches/api/0290-Attributes-API-for-item-defaults.patch b/patches/api/0289-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/api/0290-Attributes-API-for-item-defaults.patch rename to patches/api/0289-Attributes-API-for-item-defaults.patch diff --git a/patches/api/0291-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/api/0290-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/api/0291-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/api/0290-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/api/0292-More-Lidded-Block-API.patch b/patches/api/0291-More-Lidded-Block-API.patch similarity index 100% rename from patches/api/0292-More-Lidded-Block-API.patch rename to patches/api/0291-More-Lidded-Block-API.patch diff --git a/patches/api/0293-Add-PlayerKickEvent-causes.patch b/patches/api/0292-Add-PlayerKickEvent-causes.patch similarity index 97% rename from patches/api/0293-Add-PlayerKickEvent-causes.patch rename to patches/api/0292-Add-PlayerKickEvent-causes.patch index 5b213c435092..d03d83031ad9 100644 --- a/patches/api/0293-Add-PlayerKickEvent-causes.patch +++ b/patches/api/0292-Add-PlayerKickEvent-causes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerKickEvent causes diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index b848ef1c207797b352c2ca97c574c4cd3fe6e43a..2a6879aa1b0497c485d127542ca4e526a23ecf85 100644 +index 6e44845340f23a5b6ad8be46a1fa3dbb9dec5d67..a5e4b4447b5c68339d6b09749520048642a4eb83 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -275,6 +275,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0294-Add-PufferFishStateChangeEvent.patch b/patches/api/0293-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/api/0294-Add-PufferFishStateChangeEvent.patch rename to patches/api/0293-Add-PufferFishStateChangeEvent.patch diff --git a/patches/api/0295-Add-BellRevealRaiderEvent.patch b/patches/api/0294-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/api/0295-Add-BellRevealRaiderEvent.patch rename to patches/api/0294-Add-BellRevealRaiderEvent.patch diff --git a/patches/api/0296-Add-ElderGuardianAppearanceEvent.patch b/patches/api/0295-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/api/0296-Add-ElderGuardianAppearanceEvent.patch rename to patches/api/0295-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/api/0297-Add-more-line-of-sight-methods.patch b/patches/api/0296-Add-more-line-of-sight-methods.patch similarity index 100% rename from patches/api/0297-Add-more-line-of-sight-methods.patch rename to patches/api/0296-Add-more-line-of-sight-methods.patch diff --git a/patches/api/0298-Add-WaterBottleSplashEvent.patch b/patches/api/0297-Add-WaterBottleSplashEvent.patch similarity index 100% rename from patches/api/0298-Add-WaterBottleSplashEvent.patch rename to patches/api/0297-Add-WaterBottleSplashEvent.patch diff --git a/patches/api/0299-Add-more-LimitedRegion-API.patch b/patches/api/0298-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/api/0299-Add-more-LimitedRegion-API.patch rename to patches/api/0298-Add-more-LimitedRegion-API.patch diff --git a/patches/api/0300-Missing-Entity-API.patch b/patches/api/0299-Missing-Entity-API.patch similarity index 100% rename from patches/api/0300-Missing-Entity-API.patch rename to patches/api/0299-Missing-Entity-API.patch diff --git a/patches/api/0301-Adds-PlayerArmSwingEvent.patch b/patches/api/0300-Adds-PlayerArmSwingEvent.patch similarity index 100% rename from patches/api/0301-Adds-PlayerArmSwingEvent.patch rename to patches/api/0300-Adds-PlayerArmSwingEvent.patch diff --git a/patches/api/0302-Add-PlayerSignCommandPreprocessEvent.patch b/patches/api/0301-Add-PlayerSignCommandPreprocessEvent.patch similarity index 100% rename from patches/api/0302-Add-PlayerSignCommandPreprocessEvent.patch rename to patches/api/0301-Add-PlayerSignCommandPreprocessEvent.patch diff --git a/patches/api/0303-fix-empty-array-elements-in-command-arguments.patch b/patches/api/0302-fix-empty-array-elements-in-command-arguments.patch similarity index 100% rename from patches/api/0303-fix-empty-array-elements-in-command-arguments.patch rename to patches/api/0302-fix-empty-array-elements-in-command-arguments.patch diff --git a/patches/api/0304-Stinger-API.patch b/patches/api/0303-Stinger-API.patch similarity index 100% rename from patches/api/0304-Stinger-API.patch rename to patches/api/0303-Stinger-API.patch diff --git a/patches/api/0305-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/api/0305-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/api/0306-Add-PlayerSetSpawnEvent.patch b/patches/api/0305-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/api/0306-Add-PlayerSetSpawnEvent.patch rename to patches/api/0305-Add-PlayerSetSpawnEvent.patch diff --git a/patches/api/0307-Added-EntityDamageItemEvent.patch b/patches/api/0306-Added-EntityDamageItemEvent.patch similarity index 100% rename from patches/api/0307-Added-EntityDamageItemEvent.patch rename to patches/api/0306-Added-EntityDamageItemEvent.patch diff --git a/patches/api/0308-Make-EntityUnleashEvent-cancellable.patch b/patches/api/0307-Make-EntityUnleashEvent-cancellable.patch similarity index 100% rename from patches/api/0308-Make-EntityUnleashEvent-cancellable.patch rename to patches/api/0307-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/api/0309-Change-EnderEye-target-without-changing-other-things.patch b/patches/api/0308-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/api/0309-Change-EnderEye-target-without-changing-other-things.patch rename to patches/api/0308-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/api/0310-Add-BlockBreakBlockEvent.patch b/patches/api/0309-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/api/0310-Add-BlockBreakBlockEvent.patch rename to patches/api/0309-Add-BlockBreakBlockEvent.patch diff --git a/patches/api/0311-Add-helpers-for-left-right-click-to-Action.patch b/patches/api/0310-Add-helpers-for-left-right-click-to-Action.patch similarity index 100% rename from patches/api/0311-Add-helpers-for-left-right-click-to-Action.patch rename to patches/api/0310-Add-helpers-for-left-right-click-to-Action.patch diff --git a/patches/api/0312-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/api/0312-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/api/0313-More-CommandBlock-API.patch b/patches/api/0312-More-CommandBlock-API.patch similarity index 100% rename from patches/api/0313-More-CommandBlock-API.patch rename to patches/api/0312-More-CommandBlock-API.patch diff --git a/patches/api/0314-Add-missing-team-sidebar-display-slots.patch b/patches/api/0313-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/api/0314-Add-missing-team-sidebar-display-slots.patch rename to patches/api/0313-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/api/0315-add-back-EntityPortalExitEvent.patch b/patches/api/0314-add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/api/0315-add-back-EntityPortalExitEvent.patch rename to patches/api/0314-add-back-EntityPortalExitEvent.patch diff --git a/patches/api/0316-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 95% rename from patches/api/0316-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch index 1f32990f0df1..209cde5c4233 100644 --- a/patches/api/0316-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 8735a0a359450a6cbea44c1b01c85a4135ba1f86..48b3df2c12b3f6640e6c54c89763929487f0506d 100644 +index 39fd31cb24d16b8279f54e666bb5e7bccf32468c..21835fcc70c4dcffb2474caa7be3cd07bb54e2cd 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -735,6 +735,37 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0317-Get-entity-default-attributes.patch b/patches/api/0316-Get-entity-default-attributes.patch similarity index 100% rename from patches/api/0317-Get-entity-default-attributes.patch rename to patches/api/0316-Get-entity-default-attributes.patch diff --git a/patches/api/0318-Left-handed-API.patch b/patches/api/0317-Left-handed-API.patch similarity index 100% rename from patches/api/0318-Left-handed-API.patch rename to patches/api/0317-Left-handed-API.patch diff --git a/patches/api/0319-Add-critical-damage-API.patch b/patches/api/0318-Add-critical-damage-API.patch similarity index 100% rename from patches/api/0319-Add-critical-damage-API.patch rename to patches/api/0318-Add-critical-damage-API.patch diff --git a/patches/api/0320-Add-more-advancement-API.patch b/patches/api/0319-Add-more-advancement-API.patch similarity index 100% rename from patches/api/0320-Add-more-advancement-API.patch rename to patches/api/0319-Add-more-advancement-API.patch diff --git a/patches/api/0321-Fix-issues-with-mob-conversion.patch b/patches/api/0320-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/api/0321-Fix-issues-with-mob-conversion.patch rename to patches/api/0320-Fix-issues-with-mob-conversion.patch diff --git a/patches/api/0322-Add-isCollidable-methods-to-various-places.patch b/patches/api/0321-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/api/0322-Add-isCollidable-methods-to-various-places.patch rename to patches/api/0321-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/api/0323-Goat-ram-API.patch b/patches/api/0322-Goat-ram-API.patch similarity index 100% rename from patches/api/0323-Goat-ram-API.patch rename to patches/api/0322-Goat-ram-API.patch diff --git a/patches/api/0324-Add-API-for-resetting-a-single-score.patch b/patches/api/0323-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/api/0324-Add-API-for-resetting-a-single-score.patch rename to patches/api/0323-Add-API-for-resetting-a-single-score.patch diff --git a/patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0324-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch rename to patches/api/0324-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/api/0326-Add-PlayerItemFrameChangeEvent.patch b/patches/api/0325-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/api/0326-Add-PlayerItemFrameChangeEvent.patch rename to patches/api/0325-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/api/0327-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/api/0327-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/api/0328-Add-more-Campfire-API.patch b/patches/api/0327-Add-more-Campfire-API.patch similarity index 100% rename from patches/api/0328-Add-more-Campfire-API.patch rename to patches/api/0327-Add-more-Campfire-API.patch diff --git a/patches/api/0329-Move-VehicleCollisionEvent-HandlerList-up.patch b/patches/api/0328-Move-VehicleCollisionEvent-HandlerList-up.patch similarity index 100% rename from patches/api/0329-Move-VehicleCollisionEvent-HandlerList-up.patch rename to patches/api/0328-Move-VehicleCollisionEvent-HandlerList-up.patch diff --git a/patches/api/0330-Improve-scoreboard-entries.patch b/patches/api/0329-Improve-scoreboard-entries.patch similarity index 100% rename from patches/api/0330-Improve-scoreboard-entries.patch rename to patches/api/0329-Improve-scoreboard-entries.patch diff --git a/patches/api/0331-Entity-powdered-snow-API.patch b/patches/api/0330-Entity-powdered-snow-API.patch similarity index 100% rename from patches/api/0331-Entity-powdered-snow-API.patch rename to patches/api/0330-Entity-powdered-snow-API.patch diff --git a/patches/api/0332-Add-API-for-item-entity-health.patch b/patches/api/0331-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/api/0332-Add-API-for-item-entity-health.patch rename to patches/api/0331-Add-API-for-item-entity-health.patch diff --git a/patches/api/0333-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/api/0332-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/api/0333-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/api/0332-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/api/0334-Bucketable-API.patch b/patches/api/0333-Bucketable-API.patch similarity index 100% rename from patches/api/0334-Bucketable-API.patch rename to patches/api/0333-Bucketable-API.patch diff --git a/patches/api/0335-System-prop-for-default-config-comment-parsing.patch b/patches/api/0334-System-prop-for-default-config-comment-parsing.patch similarity index 100% rename from patches/api/0335-System-prop-for-default-config-comment-parsing.patch rename to patches/api/0334-System-prop-for-default-config-comment-parsing.patch diff --git a/patches/api/0336-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/api/0335-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/api/0336-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/api/0335-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/api/0337-Multiple-Entries-with-Scoreboards.patch b/patches/api/0336-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/api/0337-Multiple-Entries-with-Scoreboards.patch rename to patches/api/0336-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/api/0339-Warn-on-strange-EventHandler-return-types.patch b/patches/api/0337-Warn-on-strange-EventHandler-return-types.patch similarity index 100% rename from patches/api/0339-Warn-on-strange-EventHandler-return-types.patch rename to patches/api/0337-Warn-on-strange-EventHandler-return-types.patch diff --git a/patches/api/0338-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0338-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch deleted file mode 100644 index 44b186434d57..000000000000 --- a/patches/api/0338-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: MCMDEV -Date: Fri, 24 Sep 2021 17:59:23 +0200 -Subject: [PATCH] Added getHostname to AsyncPlayerPreLoginEvent - - -diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -index 35176b16d208c9756bd00ac74b2a1dcc3fc9febb..da07fc4ab0c299c1bb06ede36e7230626bbc28c9 100644 ---- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -+++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -@@ -29,6 +29,7 @@ public class AsyncPlayerPreLoginEvent extends Event { - private final InetAddress ipAddress; - private final InetAddress rawAddress; // Paper - //private UUID uniqueId; // Paper - Not used anymore -+ private final String hostname; // Paper - - @Deprecated - public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress) { -@@ -74,7 +75,14 @@ public class AsyncPlayerPreLoginEvent extends Event { - this(name, ipAddress, ipAddress, uniqueId, profile); - } - -+ @Deprecated // Paper - Add hostname - public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final InetAddress rawAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile) { -+ // Paper start - Add hostname -+ this(name, ipAddress, rawAddress, uniqueId, profile, ""); -+ } -+ -+ public AsyncPlayerPreLoginEvent(@NotNull final String name, @NotNull final InetAddress ipAddress, @NotNull final InetAddress rawAddress, @NotNull final UUID uniqueId, @NotNull PlayerProfile profile, @NotNull String hostname) { -+ // Paper end - Add hostname - super(true); - this.profile = profile; - // Paper end -@@ -84,6 +92,7 @@ public class AsyncPlayerPreLoginEvent extends Event { - this.ipAddress = ipAddress; - this.rawAddress = rawAddress; // Paper - //this.uniqueId = uniqueId; // Paper - Not used anymore -+ this.hostname = hostname; // Paper - Add hostname - } - - /** -@@ -269,6 +278,19 @@ public class AsyncPlayerPreLoginEvent extends Event { - return profile.getId(); // Paper - } - -+ // Paper start -+ /** -+ * Gets the hostname that the player used to connect to the server, or -+ * blank if unknown -+ * -+ * @return The hostname -+ */ -+ @NotNull -+ public String getHostname() { -+ return hostname; -+ } -+ // Paper end -+ - @NotNull - @Override - public HandlerList getHandlers() { diff --git a/patches/api/0340-Multi-Block-Change-API.patch b/patches/api/0338-Multi-Block-Change-API.patch similarity index 95% rename from patches/api/0340-Multi-Block-Change-API.patch rename to patches/api/0338-Multi-Block-Change-API.patch index 6f93a168a604..cdd9b018b00c 100644 --- a/patches/api/0340-Multi-Block-Change-API.patch +++ b/patches/api/0338-Multi-Block-Change-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Multi Block Change API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 7ce512072f242632f17db55224488f18c1cddcc4..a6053648464d903d1f9501bbeae688240fbfd754 100644 +index a5e4b4447b5c68339d6b09749520048642a4eb83..e2333a5f8e357ada69ff8857d3b1c666f51ac909 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -852,6 +852,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0341-Fix-NotePlayEvent.patch b/patches/api/0339-Fix-NotePlayEvent.patch similarity index 100% rename from patches/api/0341-Fix-NotePlayEvent.patch rename to patches/api/0339-Fix-NotePlayEvent.patch diff --git a/patches/api/0342-Freeze-Tick-Lock-API.patch b/patches/api/0340-Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/api/0342-Freeze-Tick-Lock-API.patch rename to patches/api/0340-Freeze-Tick-Lock-API.patch diff --git a/patches/api/0343-Dolphin-API.patch b/patches/api/0341-Dolphin-API.patch similarity index 100% rename from patches/api/0343-Dolphin-API.patch rename to patches/api/0341-Dolphin-API.patch diff --git a/patches/api/0344-More-PotionEffectType-API.patch b/patches/api/0342-More-PotionEffectType-API.patch similarity index 100% rename from patches/api/0344-More-PotionEffectType-API.patch rename to patches/api/0342-More-PotionEffectType-API.patch diff --git a/patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/api/0343-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/api/0343-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/api/0346-Implement-regenerateChunk.patch b/patches/api/0344-Implement-regenerateChunk.patch similarity index 91% rename from patches/api/0346-Implement-regenerateChunk.patch rename to patches/api/0344-Implement-regenerateChunk.patch index f431abe466ce..4625c51a5ac4 100644 --- a/patches/api/0346-Implement-regenerateChunk.patch +++ b/patches/api/0344-Implement-regenerateChunk.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement regenerateChunk diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 48b3df2c12b3f6640e6c54c89763929487f0506d..b191d304832fe3475b76fdce131db51e5042ac01 100644 +index 21835fcc70c4dcffb2474caa7be3cd07bb54e2cd..86c7b4ba676f826344056b24b204b748cfce1580 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -484,8 +484,8 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0347-Add-GameEvent-tags.patch b/patches/api/0345-Add-GameEvent-tags.patch similarity index 100% rename from patches/api/0347-Add-GameEvent-tags.patch rename to patches/api/0345-Add-GameEvent-tags.patch diff --git a/patches/api/0348-Furnace-RecipesUsed-API.patch b/patches/api/0346-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/api/0348-Furnace-RecipesUsed-API.patch rename to patches/api/0346-Furnace-RecipesUsed-API.patch diff --git a/patches/api/0349-Configurable-sculk-sensor-listener-range.patch b/patches/api/0347-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/api/0349-Configurable-sculk-sensor-listener-range.patch rename to patches/api/0347-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/api/0350-Add-missing-block-data-mins-and-maxes.patch b/patches/api/0348-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/api/0350-Add-missing-block-data-mins-and-maxes.patch rename to patches/api/0348-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/api/0351-Custom-Potion-Mixes.patch b/patches/api/0349-Custom-Potion-Mixes.patch similarity index 100% rename from patches/api/0351-Custom-Potion-Mixes.patch rename to patches/api/0349-Custom-Potion-Mixes.patch diff --git a/patches/api/0352-Expose-furnace-minecart-push-values.patch b/patches/api/0350-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/api/0352-Expose-furnace-minecart-push-values.patch rename to patches/api/0350-Expose-furnace-minecart-push-values.patch diff --git a/patches/api/0353-More-Projectile-API.patch b/patches/api/0351-More-Projectile-API.patch similarity index 100% rename from patches/api/0353-More-Projectile-API.patch rename to patches/api/0351-More-Projectile-API.patch diff --git a/patches/api/0354-Add-getComputedBiome-API.patch b/patches/api/0352-Add-getComputedBiome-API.patch similarity index 100% rename from patches/api/0354-Add-getComputedBiome-API.patch rename to patches/api/0352-Add-getComputedBiome-API.patch diff --git a/patches/api/0355-Add-enchantWithLevels-API.patch b/patches/api/0353-Add-enchantWithLevels-API.patch similarity index 100% rename from patches/api/0355-Add-enchantWithLevels-API.patch rename to patches/api/0353-Add-enchantWithLevels-API.patch diff --git a/patches/api/0356-Add-TameableDeathMessageEvent.patch b/patches/api/0354-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/api/0356-Add-TameableDeathMessageEvent.patch rename to patches/api/0354-Add-TameableDeathMessageEvent.patch diff --git a/patches/api/0357-Allow-to-change-the-podium-of-the-EnderDragon.patch b/patches/api/0355-Allow-to-change-the-podium-of-the-EnderDragon.patch similarity index 100% rename from patches/api/0357-Allow-to-change-the-podium-of-the-EnderDragon.patch rename to patches/api/0355-Allow-to-change-the-podium-of-the-EnderDragon.patch diff --git a/patches/api/0358-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch b/patches/api/0356-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch similarity index 100% rename from patches/api/0358-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch rename to patches/api/0356-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch diff --git a/patches/api/0359-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/api/0357-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch similarity index 100% rename from patches/api/0359-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch rename to patches/api/0357-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch diff --git a/patches/api/0360-WorldCreator-keepSpawnLoaded.patch b/patches/api/0358-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/api/0360-WorldCreator-keepSpawnLoaded.patch rename to patches/api/0358-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/api/0361-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/0359-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/api/0361-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/api/0359-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/api/0362-Add-PlayerStopUsingItemEvent.patch b/patches/api/0360-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/api/0362-Add-PlayerStopUsingItemEvent.patch rename to patches/api/0360-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/api/0363-Expand-FallingBlock-API.patch b/patches/api/0361-Expand-FallingBlock-API.patch similarity index 97% rename from patches/api/0363-Expand-FallingBlock-API.patch rename to patches/api/0361-Expand-FallingBlock-API.patch index d1138539dfc3..b0a7ccd2c77c 100644 --- a/patches/api/0363-Expand-FallingBlock-API.patch +++ b/patches/api/0361-Expand-FallingBlock-API.patch @@ -10,7 +10,7 @@ Subject: [PATCH] Expand FallingBlock API Co-authored-by: Lukas Planz diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index b191d304832fe3475b76fdce131db51e5042ac01..298e63e0ca9d4cbac3172fd93a217af79fad91df 100644 +index 86c7b4ba676f826344056b24b204b748cfce1580..0f60823426898974b7d61123fb848006fdc7bfcf 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -2220,8 +2220,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0364-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0362-Add-method-isTickingWorlds-to-Bukkit.patch similarity index 100% rename from patches/api/0364-Add-method-isTickingWorlds-to-Bukkit.patch rename to patches/api/0362-Add-method-isTickingWorlds-to-Bukkit.patch diff --git a/patches/api/0365-Add-WardenAngerChangeEvent.patch b/patches/api/0363-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/api/0365-Add-WardenAngerChangeEvent.patch rename to patches/api/0363-Add-WardenAngerChangeEvent.patch diff --git a/patches/api/0366-Nameable-Banner-API.patch b/patches/api/0364-Nameable-Banner-API.patch similarity index 100% rename from patches/api/0366-Nameable-Banner-API.patch rename to patches/api/0364-Nameable-Banner-API.patch diff --git a/patches/api/0367-Add-Player-getFishHook.patch b/patches/api/0365-Add-Player-getFishHook.patch similarity index 100% rename from patches/api/0367-Add-Player-getFishHook.patch rename to patches/api/0365-Add-Player-getFishHook.patch diff --git a/patches/api/0368-More-Teleport-API.patch b/patches/api/0366-More-Teleport-API.patch similarity index 99% rename from patches/api/0368-More-Teleport-API.patch rename to patches/api/0366-More-Teleport-API.patch index c73ad9b9503a..13d70bb0fd48 100644 --- a/patches/api/0368-More-Teleport-API.patch +++ b/patches/api/0366-More-Teleport-API.patch @@ -158,7 +158,7 @@ index 953bb49b7079647450d3453356d1c8a91be94c01..2ea66188468cf32bcaedc5167d4b9b0c * Teleports this entity to the given location. If this entity is riding a * vehicle, it will be dismounted prior to teleportation. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index d0eeb2c6b0f3f56d8c3c9608991091750a3bd607..aeaed639ba3a0b91501d1da837adfc6bf5517ffa 100644 +index e2333a5f8e357ada69ff8857d3b1c666f51ac909..da4d8d36fdf8006e308220cb7665c9e0302e5879 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -3287,6 +3287,45 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0369-Add-EntityPortalReadyEvent.patch b/patches/api/0367-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/api/0369-Add-EntityPortalReadyEvent.patch rename to patches/api/0367-Add-EntityPortalReadyEvent.patch diff --git a/patches/api/0370-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0368-Custom-Chat-Completion-Suggestions-API.patch similarity index 94% rename from patches/api/0370-Custom-Chat-Completion-Suggestions-API.patch rename to patches/api/0368-Custom-Chat-Completion-Suggestions-API.patch index 94a7f8f85176..2ee1dccaba80 100644 --- a/patches/api/0370-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/api/0368-Custom-Chat-Completion-Suggestions-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index aeaed639ba3a0b91501d1da837adfc6bf5517ffa..450ec166b8faf08de52b30844315a5ed29006784 100644 +index da4d8d36fdf8006e308220cb7665c9e0302e5879..541ac9cf8f4af2386a5c2930cbd8fa81a48d8445 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -3171,6 +3171,31 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0371-Collision-API.patch b/patches/api/0369-Collision-API.patch similarity index 100% rename from patches/api/0371-Collision-API.patch rename to patches/api/0369-Collision-API.patch diff --git a/patches/api/0372-Block-Ticking-API.patch b/patches/api/0370-Block-Ticking-API.patch similarity index 100% rename from patches/api/0372-Block-Ticking-API.patch rename to patches/api/0370-Block-Ticking-API.patch diff --git a/patches/api/0373-Add-NamespacedKey-biome-methods.patch b/patches/api/0371-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/api/0373-Add-NamespacedKey-biome-methods.patch rename to patches/api/0371-Add-NamespacedKey-biome-methods.patch diff --git a/patches/api/0374-Also-load-resources-from-LibraryLoader.patch b/patches/api/0372-Also-load-resources-from-LibraryLoader.patch similarity index 100% rename from patches/api/0374-Also-load-resources-from-LibraryLoader.patch rename to patches/api/0372-Also-load-resources-from-LibraryLoader.patch diff --git a/patches/api/0375-Added-byte-array-serialization-deserialization-for-P.patch b/patches/api/0373-Added-byte-array-serialization-deserialization-for-P.patch similarity index 95% rename from patches/api/0375-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/api/0373-Added-byte-array-serialization-deserialization-for-P.patch index 24c9f5c0f758..9b71f12681f6 100644 --- a/patches/api/0375-Added-byte-array-serialization-deserialization-for-P.patch +++ b/patches/api/0373-Added-byte-array-serialization-deserialization-for-P.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Added byte array serialization/deserialization for diff --git a/src/main/java/org/bukkit/persistence/PersistentDataContainer.java b/src/main/java/org/bukkit/persistence/PersistentDataContainer.java -index 6c156faf0148da13a44dabba7a807f68b3d50a36..da59e75267f43581bec6df73dda9f889347617d4 100644 +index 18fc4f1c7151bfdeed32a52cf5050a76ebc391d6..decf3b1949d4653a9fb01684b93ff91048137076 100644 --- a/src/main/java/org/bukkit/persistence/PersistentDataContainer.java +++ b/src/main/java/org/bukkit/persistence/PersistentDataContainer.java @@ -184,4 +184,39 @@ public interface PersistentDataContainer { diff --git a/patches/api/0376-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/api/0374-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/api/0376-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/api/0374-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/api/0377-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch b/patches/api/0375-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch similarity index 100% rename from patches/api/0377-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch rename to patches/api/0375-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch diff --git a/patches/api/0378-Add-getDrops-to-BlockState.patch b/patches/api/0376-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/api/0378-Add-getDrops-to-BlockState.patch rename to patches/api/0376-Add-getDrops-to-BlockState.patch diff --git a/patches/api/0379-Add-PlayerInventorySlotChangeEvent.patch b/patches/api/0377-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/api/0379-Add-PlayerInventorySlotChangeEvent.patch rename to patches/api/0377-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/api/0380-Elder-Guardian-appearance-API.patch b/patches/api/0378-Elder-Guardian-appearance-API.patch similarity index 92% rename from patches/api/0380-Elder-Guardian-appearance-API.patch rename to patches/api/0378-Elder-Guardian-appearance-API.patch index afa279fc4a6b..ca7525237837 100644 --- a/patches/api/0380-Elder-Guardian-appearance-API.patch +++ b/patches/api/0378-Elder-Guardian-appearance-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 450ec166b8faf08de52b30844315a5ed29006784..e00dabaf992580230e89292a2c2fea88c4de87fd 100644 +index 541ac9cf8f4af2386a5c2930cbd8fa81a48d8445..c79a3583ccbd808df6ca0ef2912bfed4f417c387 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -3351,6 +3351,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0381-Allow-changing-bed-s-occupied-property.patch b/patches/api/0379-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/api/0381-Allow-changing-bed-s-occupied-property.patch rename to patches/api/0379-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/api/0382-Add-EquipmentSlot-convenience-methods.patch b/patches/api/0380-Add-EquipmentSlot-convenience-methods.patch similarity index 100% rename from patches/api/0382-Add-EquipmentSlot-convenience-methods.patch rename to patches/api/0380-Add-EquipmentSlot-convenience-methods.patch diff --git a/patches/api/0383-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0381-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch similarity index 100% rename from patches/api/0383-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch rename to patches/api/0381-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch diff --git a/patches/api/0384-Add-entity-knockback-API.patch b/patches/api/0382-Add-entity-knockback-API.patch similarity index 100% rename from patches/api/0384-Add-entity-knockback-API.patch rename to patches/api/0382-Add-entity-knockback-API.patch diff --git a/patches/api/0385-Added-EntityToggleSitEvent.patch b/patches/api/0383-Added-EntityToggleSitEvent.patch similarity index 100% rename from patches/api/0385-Added-EntityToggleSitEvent.patch rename to patches/api/0383-Added-EntityToggleSitEvent.patch diff --git a/patches/api/0386-Add-Moving-Piston-API.patch b/patches/api/0384-Add-Moving-Piston-API.patch similarity index 100% rename from patches/api/0386-Add-Moving-Piston-API.patch rename to patches/api/0384-Add-Moving-Piston-API.patch diff --git a/patches/api/0387-Add-PrePlayerAttackEntityEvent.patch b/patches/api/0385-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/api/0387-Add-PrePlayerAttackEntityEvent.patch rename to patches/api/0385-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/api/0388-Add-Player-Warden-Warning-API.patch b/patches/api/0386-Add-Player-Warden-Warning-API.patch similarity index 96% rename from patches/api/0388-Add-Player-Warden-Warning-API.patch rename to patches/api/0386-Add-Player-Warden-Warning-API.patch index 73ebc3306f75..77e3620a9886 100644 --- a/patches/api/0388-Add-Player-Warden-Warning-API.patch +++ b/patches/api/0386-Add-Player-Warden-Warning-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Player Warden Warning API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index e00dabaf992580230e89292a2c2fea88c4de87fd..0a3a29b5489684a4062663362694025cc3224adf 100644 +index c79a3583ccbd808df6ca0ef2912bfed4f417c387..5b1233ff2a5cdda75263eae86f96052bc28e9f5c 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -3367,6 +3367,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0389-More-vanilla-friendly-methods-to-update-trades.patch b/patches/api/0387-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/api/0389-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/api/0387-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/api/0390-Add-paper-dumplisteners-command.patch b/patches/api/0388-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/api/0390-Add-paper-dumplisteners-command.patch rename to patches/api/0388-Add-paper-dumplisteners-command.patch diff --git a/patches/api/0391-ItemStack-damage-API.patch b/patches/api/0389-ItemStack-damage-API.patch similarity index 100% rename from patches/api/0391-ItemStack-damage-API.patch rename to patches/api/0389-ItemStack-damage-API.patch diff --git a/patches/api/0392-Add-Tick-TemporalUnit.patch b/patches/api/0390-Add-Tick-TemporalUnit.patch similarity index 100% rename from patches/api/0392-Add-Tick-TemporalUnit.patch rename to patches/api/0390-Add-Tick-TemporalUnit.patch diff --git a/patches/api/0393-Friction-API.patch b/patches/api/0391-Friction-API.patch similarity index 100% rename from patches/api/0393-Friction-API.patch rename to patches/api/0391-Friction-API.patch diff --git a/patches/api/0394-Player-Entity-Tracking-Events.patch b/patches/api/0392-Player-Entity-Tracking-Events.patch similarity index 100% rename from patches/api/0394-Player-Entity-Tracking-Events.patch rename to patches/api/0392-Player-Entity-Tracking-Events.patch diff --git a/patches/api/0395-Add-missing-Fluid-type.patch b/patches/api/0393-Add-missing-Fluid-type.patch similarity index 100% rename from patches/api/0395-Add-missing-Fluid-type.patch rename to patches/api/0393-Add-missing-Fluid-type.patch diff --git a/patches/api/0396-fix-Instruments.patch b/patches/api/0394-fix-Instruments.patch similarity index 100% rename from patches/api/0396-fix-Instruments.patch rename to patches/api/0394-fix-Instruments.patch diff --git a/patches/api/0397-Add-BlockLockCheckEvent.patch b/patches/api/0395-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/api/0397-Add-BlockLockCheckEvent.patch rename to patches/api/0395-Add-BlockLockCheckEvent.patch diff --git a/patches/api/0398-Add-Sneaking-API-for-Entities.patch b/patches/api/0396-Add-Sneaking-API-for-Entities.patch similarity index 95% rename from patches/api/0398-Add-Sneaking-API-for-Entities.patch rename to patches/api/0396-Add-Sneaking-API-for-Entities.patch index 0aab3c95d4c0..274d5fb7d6b1 100644 --- a/patches/api/0398-Add-Sneaking-API-for-Entities.patch +++ b/patches/api/0396-Add-Sneaking-API-for-Entities.patch @@ -35,7 +35,7 @@ index 351a7d0aeab5d83564dd543935ba503ea0b68d60..c9139bb7abc881fddd2d5610d9506cd4 * Get the category of spawn to which this entity belongs. * diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 53026b36fce2a201e81a844b115a274e9495928d..673036dbc9f4bd7b81747d6094bbfcab666cad09 100644 +index 5b1233ff2a5cdda75263eae86f96052bc28e9f5c..e6191168df1032f5904ce5c580c7e41fb1249b22 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -415,6 +415,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0399-Improve-PortalEvents.patch b/patches/api/0397-Improve-PortalEvents.patch similarity index 100% rename from patches/api/0399-Improve-PortalEvents.patch rename to patches/api/0397-Improve-PortalEvents.patch diff --git a/patches/api/0400-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/api/0398-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/api/0400-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/api/0398-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/api/0401-Flying-Fall-Damage-API.patch b/patches/api/0399-Flying-Fall-Damage-API.patch similarity index 93% rename from patches/api/0401-Flying-Fall-Damage-API.patch rename to patches/api/0399-Flying-Fall-Damage-API.patch index ea7650e65570..8dd82b774990 100644 --- a/patches/api/0401-Flying-Fall-Damage-API.patch +++ b/patches/api/0399-Flying-Fall-Damage-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 673036dbc9f4bd7b81747d6094bbfcab666cad09..fae33e170dd8155df94b9e7c3f277389ac366a5e 100644 +index e6191168df1032f5904ce5c580c7e41fb1249b22..a5ab59f2defa45af761a14fc955241af07b84a34 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1766,6 +1766,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0402-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/api/0400-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 100% rename from patches/api/0402-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/api/0400-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch diff --git a/patches/api/0403-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/0401-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch similarity index 100% rename from patches/api/0403-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch rename to patches/api/0401-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch diff --git a/patches/api/0404-Win-Screen-API.patch b/patches/api/0402-Win-Screen-API.patch similarity index 96% rename from patches/api/0404-Win-Screen-API.patch rename to patches/api/0402-Win-Screen-API.patch index 059965c6883c..0d24c598b0a2 100644 --- a/patches/api/0404-Win-Screen-API.patch +++ b/patches/api/0402-Win-Screen-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Win Screen API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index fae33e170dd8155df94b9e7c3f277389ac366a5e..12ac53a8ca8d91b8189dbb8775121b89f402de43 100644 +index a5ab59f2defa45af761a14fc955241af07b84a34..41e7e24c65c3ae8cb451608db7598297fd9ffff2 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1136,6 +1136,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0405-Add-Entity-Body-Yaw-API.patch b/patches/api/0403-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/api/0405-Add-Entity-Body-Yaw-API.patch rename to patches/api/0403-Add-Entity-Body-Yaw-API.patch diff --git a/patches/api/0406-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0404-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch similarity index 100% rename from patches/api/0406-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch rename to patches/api/0404-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch diff --git a/patches/api/0407-Add-EntityFertilizeEggEvent.patch b/patches/api/0405-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/api/0407-Add-EntityFertilizeEggEvent.patch rename to patches/api/0405-Add-EntityFertilizeEggEvent.patch diff --git a/patches/api/0408-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/api/0406-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/api/0408-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/api/0406-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/api/0409-Add-Shearable-API.patch b/patches/api/0407-Add-Shearable-API.patch similarity index 100% rename from patches/api/0409-Add-Shearable-API.patch rename to patches/api/0407-Add-Shearable-API.patch diff --git a/patches/api/0410-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/api/0408-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/api/0410-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/api/0408-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/api/0411-Add-Mob-Experience-reward-API.patch b/patches/api/0409-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/api/0411-Add-Mob-Experience-reward-API.patch rename to patches/api/0409-Add-Mob-Experience-reward-API.patch diff --git a/patches/api/0412-Expand-PlayerItemMendEvent.patch b/patches/api/0410-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/api/0412-Expand-PlayerItemMendEvent.patch rename to patches/api/0410-Expand-PlayerItemMendEvent.patch diff --git a/patches/api/0413-Add-transient-modifier-API.patch b/patches/api/0411-Add-transient-modifier-API.patch similarity index 100% rename from patches/api/0413-Add-transient-modifier-API.patch rename to patches/api/0411-Add-transient-modifier-API.patch diff --git a/patches/api/0414-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/api/0412-Properly-remove-the-experimental-smithing-inventory-.patch similarity index 100% rename from patches/api/0414-Properly-remove-the-experimental-smithing-inventory-.patch rename to patches/api/0412-Properly-remove-the-experimental-smithing-inventory-.patch diff --git a/patches/api/0415-Add-method-to-remove-all-active-potion-effects.patch b/patches/api/0413-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/api/0415-Add-method-to-remove-all-active-potion-effects.patch rename to patches/api/0413-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/api/0416-Folia-scheduler-and-owned-region-API.patch b/patches/api/0414-Folia-scheduler-and-owned-region-API.patch similarity index 100% rename from patches/api/0416-Folia-scheduler-and-owned-region-API.patch rename to patches/api/0414-Folia-scheduler-and-owned-region-API.patch diff --git a/patches/api/0417-Add-event-for-player-editing-sign.patch b/patches/api/0415-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/api/0417-Add-event-for-player-editing-sign.patch rename to patches/api/0415-Add-event-for-player-editing-sign.patch diff --git a/patches/api/0418-Add-Sign-getInteractableSideFor.patch b/patches/api/0416-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/api/0418-Add-Sign-getInteractableSideFor.patch rename to patches/api/0416-Add-Sign-getInteractableSideFor.patch diff --git a/patches/api/0419-Fix-BanList-API.patch b/patches/api/0417-Fix-BanList-API.patch similarity index 98% rename from patches/api/0419-Fix-BanList-API.patch rename to patches/api/0417-Fix-BanList-API.patch index 190177a82247..e6e242f0d1e7 100644 --- a/patches/api/0419-Fix-BanList-API.patch +++ b/patches/api/0417-Fix-BanList-API.patch @@ -130,7 +130,7 @@ index e805e629cede1c4c0674282c930cb67852718c3e..5248cf08ef83c7304dd76c42a2f646bb + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 12ac53a8ca8d91b8189dbb8775121b89f402de43..a948445b96a7c8c7803103171df644fc9a6f77f3 100644 +index 41e7e24c65c3ae8cb451608db7598297fd9ffff2..5b00c51157a724e1d3f89198e97ba7e33b3a163d 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -299,7 +299,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0420-Add-whitelist-events.patch b/patches/api/0418-Add-whitelist-events.patch similarity index 100% rename from patches/api/0420-Add-whitelist-events.patch rename to patches/api/0418-Add-whitelist-events.patch diff --git a/patches/api/0421-API-for-updating-recipes-on-clients.patch b/patches/api/0419-API-for-updating-recipes-on-clients.patch similarity index 100% rename from patches/api/0421-API-for-updating-recipes-on-clients.patch rename to patches/api/0419-API-for-updating-recipes-on-clients.patch diff --git a/patches/api/0422-Add-PlayerFailMoveEvent.patch b/patches/api/0420-Add-PlayerFailMoveEvent.patch similarity index 100% rename from patches/api/0422-Add-PlayerFailMoveEvent.patch rename to patches/api/0420-Add-PlayerFailMoveEvent.patch diff --git a/patches/api/0423-Fix-custom-statistic-criteria-creation.patch b/patches/api/0421-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/api/0423-Fix-custom-statistic-criteria-creation.patch rename to patches/api/0421-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/api/0424-SculkCatalyst-bloom-API.patch b/patches/api/0422-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/api/0424-SculkCatalyst-bloom-API.patch rename to patches/api/0422-SculkCatalyst-bloom-API.patch diff --git a/patches/api/0425-API-for-an-entity-s-scoreboard-name.patch b/patches/api/0423-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/api/0425-API-for-an-entity-s-scoreboard-name.patch rename to patches/api/0423-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/api/0426-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/api/0424-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/api/0426-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/api/0424-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/api/0427-Add-Listing-API-for-Player.patch b/patches/api/0425-Add-Listing-API-for-Player.patch similarity index 93% rename from patches/api/0427-Add-Listing-API-for-Player.patch rename to patches/api/0425-Add-Listing-API-for-Player.patch index 1273b6fb85f6..6029b9a632c0 100644 --- a/patches/api/0427-Add-Listing-API-for-Player.patch +++ b/patches/api/0425-Add-Listing-API-for-Player.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Listing API for Player diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index a948445b96a7c8c7803103171df644fc9a6f77f3..0909c7d1dae6192e3103f4eaeb08bf3efbbd4153 100644 +index 5b00c51157a724e1d3f89198e97ba7e33b3a163d..8ca61bca18c5520d20b0405d5add37759349560b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1902,6 +1902,32 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0428-Expose-clicked-BlockFace-during-BlockDamageEvent.patch b/patches/api/0426-Expose-clicked-BlockFace-during-BlockDamageEvent.patch similarity index 100% rename from patches/api/0428-Expose-clicked-BlockFace-during-BlockDamageEvent.patch rename to patches/api/0426-Expose-clicked-BlockFace-during-BlockDamageEvent.patch diff --git a/patches/api/0429-Fix-NPE-on-Boat-getStatus.patch b/patches/api/0427-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/api/0429-Fix-NPE-on-Boat-getStatus.patch rename to patches/api/0427-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/api/0430-Expand-Pose-API.patch b/patches/api/0428-Expand-Pose-API.patch similarity index 100% rename from patches/api/0430-Expand-Pose-API.patch rename to patches/api/0428-Expand-Pose-API.patch diff --git a/patches/api/0431-MerchantRecipe-add-copy-constructor.patch b/patches/api/0429-MerchantRecipe-add-copy-constructor.patch similarity index 100% rename from patches/api/0431-MerchantRecipe-add-copy-constructor.patch rename to patches/api/0429-MerchantRecipe-add-copy-constructor.patch diff --git a/patches/api/0432-More-DragonBattle-API.patch b/patches/api/0430-More-DragonBattle-API.patch similarity index 100% rename from patches/api/0432-More-DragonBattle-API.patch rename to patches/api/0430-More-DragonBattle-API.patch diff --git a/patches/api/0433-Add-PlayerPickItemEvent.patch b/patches/api/0431-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/api/0433-Add-PlayerPickItemEvent.patch rename to patches/api/0431-Add-PlayerPickItemEvent.patch diff --git a/patches/api/0434-Allow-trident-custom-damage.patch b/patches/api/0432-Allow-trident-custom-damage.patch similarity index 100% rename from patches/api/0434-Allow-trident-custom-damage.patch rename to patches/api/0432-Allow-trident-custom-damage.patch diff --git a/patches/api/0435-Expose-hand-during-BlockCanBuildEvent.patch b/patches/api/0433-Expose-hand-during-BlockCanBuildEvent.patch similarity index 100% rename from patches/api/0435-Expose-hand-during-BlockCanBuildEvent.patch rename to patches/api/0433-Expose-hand-during-BlockCanBuildEvent.patch diff --git a/patches/api/0436-Limit-setBurnTime-to-valid-short-values.patch b/patches/api/0434-Limit-setBurnTime-to-valid-short-values.patch similarity index 100% rename from patches/api/0436-Limit-setBurnTime-to-valid-short-values.patch rename to patches/api/0434-Limit-setBurnTime-to-valid-short-values.patch diff --git a/patches/api/0437-Add-OfflinePlayer-isConnected.patch b/patches/api/0435-Add-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/api/0437-Add-OfflinePlayer-isConnected.patch rename to patches/api/0435-Add-OfflinePlayer-isConnected.patch diff --git a/patches/api/0438-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/api/0436-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 100% rename from patches/api/0438-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/api/0436-Add-titleOverride-to-InventoryOpenEvent.patch diff --git a/patches/api/0439-Allow-proper-checking-of-empty-item-stacks.patch b/patches/api/0437-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/api/0439-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/api/0437-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/api/0440-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch b/patches/api/0438-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch similarity index 100% rename from patches/api/0440-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch rename to patches/api/0438-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch diff --git a/patches/api/0441-Add-player-idle-duration-API.patch b/patches/api/0439-Add-player-idle-duration-API.patch similarity index 93% rename from patches/api/0441-Add-player-idle-duration-API.patch rename to patches/api/0439-Add-player-idle-duration-API.patch index 8ebed078d4de..dbe78e032c7f 100644 --- a/patches/api/0441-Add-player-idle-duration-API.patch +++ b/patches/api/0439-Add-player-idle-duration-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 118ecb48f014539f18105a20bdebe2e03ee8e6f8..9f8d0242c00008432012319a95453a25c5ef761e 100644 +index 8ca61bca18c5520d20b0405d5add37759349560b..c09f423fe2a029c933bd2697c8ff104fc4230cf0 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -3508,6 +3508,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0442-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/api/0440-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/api/0442-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/api/0440-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/api/0443-Add-predicate-for-blocks-when-raytracing.patch b/patches/api/0441-Add-predicate-for-blocks-when-raytracing.patch similarity index 98% rename from patches/api/0443-Add-predicate-for-blocks-when-raytracing.patch rename to patches/api/0441-Add-predicate-for-blocks-when-raytracing.patch index 04fc2e3ab9d4..2d0f899ec00d 100644 --- a/patches/api/0443-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/api/0441-Add-predicate-for-blocks-when-raytracing.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add predicate for blocks when raytracing diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 298e63e0ca9d4cbac3172fd93a217af79fad91df..f72f0f0f8eee95f95adc969d55ba7de82ee30e2a 100644 +index 0f60823426898974b7d61123fb848006fdc7bfcf..e014a71f2fd20e41f985ce68301006c4a4e0c5e3 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1692,6 +1692,27 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0444-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/api/0442-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/api/0444-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/api/0442-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/api/0445-Add-UUID-attribute-modifier-API.patch b/patches/api/0443-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/api/0445-Add-UUID-attribute-modifier-API.patch rename to patches/api/0443-Add-UUID-attribute-modifier-API.patch diff --git a/patches/api/0446-Expand-LingeringPotion-API.patch b/patches/api/0444-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/api/0446-Expand-LingeringPotion-API.patch rename to patches/api/0444-Expand-LingeringPotion-API.patch diff --git a/patches/api/0447-Remove-unnecessary-durability-check-in-ItemStack-isS.patch b/patches/api/0445-Remove-unnecessary-durability-check-in-ItemStack-isS.patch similarity index 100% rename from patches/api/0447-Remove-unnecessary-durability-check-in-ItemStack-isS.patch rename to patches/api/0445-Remove-unnecessary-durability-check-in-ItemStack-isS.patch diff --git a/patches/api/0448-Add-Structure-check-API.patch b/patches/api/0446-Add-Structure-check-API.patch similarity index 94% rename from patches/api/0448-Add-Structure-check-API.patch rename to patches/api/0446-Add-Structure-check-API.patch index d6d4ff697085..d993eeba7f35 100644 --- a/patches/api/0448-Add-Structure-check-API.patch +++ b/patches/api/0446-Add-Structure-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index f72f0f0f8eee95f95adc969d55ba7de82ee30e2a..567a36a4887da8994c9170e2885aa8cc357efa0c 100644 +index e014a71f2fd20e41f985ce68301006c4a4e0c5e3..bf4b94ea2577e9d7e344385209fc0644a4e6bfbb 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -76,6 +76,30 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0449-add-missing-Experimental-annotations.patch b/patches/api/0447-add-missing-Experimental-annotations.patch similarity index 100% rename from patches/api/0449-add-missing-Experimental-annotations.patch rename to patches/api/0447-add-missing-Experimental-annotations.patch diff --git a/patches/api/0450-Add-more-scoreboard-API.patch b/patches/api/0448-Add-more-scoreboard-API.patch similarity index 100% rename from patches/api/0450-Add-more-scoreboard-API.patch rename to patches/api/0448-Add-more-scoreboard-API.patch diff --git a/patches/api/0451-Improve-Registry.patch b/patches/api/0449-Improve-Registry.patch similarity index 100% rename from patches/api/0451-Improve-Registry.patch rename to patches/api/0449-Improve-Registry.patch diff --git a/patches/api/0452-Add-experience-points-API.patch b/patches/api/0450-Add-experience-points-API.patch similarity index 100% rename from patches/api/0452-Add-experience-points-API.patch rename to patches/api/0450-Add-experience-points-API.patch diff --git a/patches/api/0453-Add-missing-InventoryType.patch b/patches/api/0451-Add-missing-InventoryType.patch similarity index 100% rename from patches/api/0453-Add-missing-InventoryType.patch rename to patches/api/0451-Add-missing-InventoryType.patch diff --git a/patches/api/0454-Add-drops-to-shear-events.patch b/patches/api/0452-Add-drops-to-shear-events.patch similarity index 100% rename from patches/api/0454-Add-drops-to-shear-events.patch rename to patches/api/0452-Add-drops-to-shear-events.patch diff --git a/patches/api/0455-Add-HiddenPotionEffect-API.patch b/patches/api/0453-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/api/0455-Add-HiddenPotionEffect-API.patch rename to patches/api/0453-Add-HiddenPotionEffect-API.patch diff --git a/patches/api/0456-Add-PlayerShieldDisableEvent.patch b/patches/api/0454-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/api/0456-Add-PlayerShieldDisableEvent.patch rename to patches/api/0454-Add-PlayerShieldDisableEvent.patch diff --git a/patches/api/0457-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch b/patches/api/0455-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch similarity index 100% rename from patches/api/0457-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch rename to patches/api/0455-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch diff --git a/patches/server/0179-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch b/patches/server/0179-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch deleted file mode 100644 index d77acd59c5b8..000000000000 --- a/patches/server/0179-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Sun, 18 Mar 2018 11:45:57 -0400 -Subject: [PATCH] Ability to change PlayerProfile in AsyncPreLoginEvent - -This will allow you to change the players name or skin on login. - -diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 000e5e6085b95e4fc4995e53dc83d9075e27aa05..08a40d2418dc7e3f481a0a45e0c1845d68a74f07 100644 ---- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -293,8 +293,16 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, - java.util.UUID uniqueId = gameprofile.getId(); - final org.bukkit.craftbukkit.CraftServer server = ServerLoginPacketListenerImpl.this.server.server; - -- AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, uniqueId); -+ // Paper start -+ com.destroystokyo.paper.profile.PlayerProfile profile = org.bukkit.Bukkit.createProfile(uniqueId, playerName); -+ AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, uniqueId, profile); - server.getPluginManager().callEvent(asyncEvent); -+ profile = asyncEvent.getPlayerProfile(); -+ profile.complete(); -+ gameprofile = com.destroystokyo.paper.profile.CraftPlayerProfile.asAuthlibCopy(profile); -+ playerName = gameprofile.getName(); -+ uniqueId = gameprofile.getId(); -+ // Paper end - - if (PlayerPreLoginEvent.getHandlerList().getRegisteredListeners().length != 0) { - final PlayerPreLoginEvent event = new PlayerPreLoginEvent(playerName, address, uniqueId); diff --git a/patches/server/0179-Add-more-fields-to-AsyncPreLoginEvent.patch b/patches/server/0179-Add-more-fields-to-AsyncPreLoginEvent.patch new file mode 100644 index 000000000000..d56e4c78c9bd --- /dev/null +++ b/patches/server/0179-Add-more-fields-to-AsyncPreLoginEvent.patch @@ -0,0 +1,72 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Sun, 18 Mar 2018 11:45:57 -0400 +Subject: [PATCH] Add more fields to AsyncPreLoginEvent + +Co-authored-by: Connor Linfoot +Co-authored-by: MCMDEV + +diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +index 000e5e6085b95e4fc4995e53dc83d9075e27aa05..58d97fce07ad8f786940c3f5e74e9aaeabe8d261 100644 +--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java ++++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +@@ -157,7 +157,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + try { + GameProfile gameprofile = ServerLoginPacketListenerImpl.this.createOfflineProfile(ServerLoginPacketListenerImpl.this.requestedUsername); // Spigot + +- ServerLoginPacketListenerImpl.this.callPlayerPreLoginEvents(gameprofile); ++ gameprofile = ServerLoginPacketListenerImpl.this.callPlayerPreLoginEvents(gameprofile); // Paper - Add more fields to AsyncPlayerPreLoginEvent + ServerLoginPacketListenerImpl.LOGGER.info("UUID of player {} is {}", gameprofile.getName(), gameprofile.getId()); + ServerLoginPacketListenerImpl.this.startClientVerification(gameprofile); + } catch (Exception ex) { +@@ -248,7 +248,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + if (!ServerLoginPacketListenerImpl.this.connection.isConnected()) { + return; + } +- ServerLoginPacketListenerImpl.this.callPlayerPreLoginEvents(gameprofile); ++ gameprofile = ServerLoginPacketListenerImpl.this.callPlayerPreLoginEvents(gameprofile); // Paper - Add more fields to AsyncPlayerPreLoginEvent + // CraftBukkit end + ServerLoginPacketListenerImpl.LOGGER.info("UUID of player {} is {}", gameprofile.getName(), gameprofile.getId()); + ServerLoginPacketListenerImpl.this.startClientVerification(gameprofile); +@@ -287,14 +287,23 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + } + + // CraftBukkit start +- private void callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception { ++ private GameProfile callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception { // Paper - Add more fields to AsyncPlayerPreLoginEvent + String playerName = gameprofile.getName(); + java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress(); + java.util.UUID uniqueId = gameprofile.getId(); + final org.bukkit.craftbukkit.CraftServer server = ServerLoginPacketListenerImpl.this.server.server; + +- AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, uniqueId); ++ // Paper start - Add more fields to AsyncPlayerPreLoginEvent ++ final java.net.InetAddress rawAddress = ((java.net.InetSocketAddress) this.connection.channel.remoteAddress()).getAddress(); ++ com.destroystokyo.paper.profile.PlayerProfile profile = org.bukkit.Bukkit.createProfile(uniqueId, playerName); ++ AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile, this.connection.hostname); + server.getPluginManager().callEvent(asyncEvent); ++ profile = asyncEvent.getPlayerProfile(); ++ profile.complete(); ++ gameprofile = com.destroystokyo.paper.profile.CraftPlayerProfile.asAuthlibCopy(profile); ++ playerName = gameprofile.getName(); ++ uniqueId = gameprofile.getId(); ++ // Paper end - Add more fields to AsyncPlayerPreLoginEvent + + if (PlayerPreLoginEvent.getHandlerList().getRegisteredListeners().length != 0) { + final PlayerPreLoginEvent event = new PlayerPreLoginEvent(playerName, address, uniqueId); +@@ -312,14 +321,13 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + ServerLoginPacketListenerImpl.this.server.processQueue.add(waitable); + if (waitable.get() != PlayerPreLoginEvent.Result.ALLOWED) { + this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.kickMessage())); // Paper - Adventure +- return; + } + } else { + if (asyncEvent.getLoginResult() != AsyncPlayerPreLoginEvent.Result.ALLOWED) { + this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(asyncEvent.kickMessage())); // Paper - Adventure +- return; + } + } ++ return gameprofile; // Paper - Add more fields to AsyncPlayerPreLoginEvent + } + // CraftBukkit end + diff --git a/patches/server/0180-Player.setPlayerProfile-API.patch b/patches/server/0180-Player.setPlayerProfile-API.patch index 76085584830b..cce5e09728ea 100644 --- a/patches/server/0180-Player.setPlayerProfile-API.patch +++ b/patches/server/0180-Player.setPlayerProfile-API.patch @@ -22,16 +22,11 @@ index 9c0440a6e3768ca6300e128da7f1b11a96f10f91..c1c9076be05cd4b0b19d16aabbf0320c if (Float.isNaN(f)) { f = 0; diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 08a40d2418dc7e3f481a0a45e0c1845d68a74f07..3a250865ed364cdcd6f75e874c218b259b1aaad5 100644 +index 58d97fce07ad8f786940c3f5e74e9aaeabe8d261..fd2a8959e9a929ae7ea17dcb554591a6e2b1ac92 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -294,11 +294,11 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, - final org.bukkit.craftbukkit.CraftServer server = ServerLoginPacketListenerImpl.this.server.server; - - // Paper start -- com.destroystokyo.paper.profile.PlayerProfile profile = org.bukkit.Bukkit.createProfile(uniqueId, playerName); -+ com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(gameprofile); - AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, uniqueId, profile); +@@ -299,7 +299,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile, this.connection.hostname); server.getPluginManager().callEvent(asyncEvent); profile = asyncEvent.getPlayerProfile(); - profile.complete(); diff --git a/patches/server/0585-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0585-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch deleted file mode 100644 index 2a75ad420498..000000000000 --- a/patches/server/0585-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Connor Linfoot -Date: Wed, 12 May 2021 08:09:19 +0100 -Subject: [PATCH] Add raw address to AsyncPlayerPreLoginEvent - - -diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 70e89b77e99846258aae59de6246f82cff312452..b1b778c534fae23294b95b084fac0f52f94c37c2 100644 ---- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -290,12 +290,13 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, - private void callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception { - String playerName = gameprofile.getName(); - java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress(); -+ java.net.InetAddress rawAddress = ((java.net.InetSocketAddress) this.connection.channel.remoteAddress()).getAddress(); // Paper - java.util.UUID uniqueId = gameprofile.getId(); - final org.bukkit.craftbukkit.CraftServer server = ServerLoginPacketListenerImpl.this.server.server; - - // Paper start - com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(gameprofile); -- AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, uniqueId, profile); -+ AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile); // Paper - add rawAddress - server.getPluginManager().callEvent(asyncEvent); - profile = asyncEvent.getPlayerProfile(); - profile.complete(true); // Paper - setPlayerProfileAPI diff --git a/patches/server/0586-Inventory-close.patch b/patches/server/0585-Inventory-close.patch similarity index 100% rename from patches/server/0586-Inventory-close.patch rename to patches/server/0585-Inventory-close.patch diff --git a/patches/server/0587-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0586-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0587-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0586-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0588-Add-basic-Datapack-API.patch b/patches/server/0587-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0588-Add-basic-Datapack-API.patch rename to patches/server/0587-Add-basic-Datapack-API.patch diff --git a/patches/server/0589-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0588-Add-environment-variable-to-disable-server-gui.patch similarity index 90% rename from patches/server/0589-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0588-Add-environment-variable-to-disable-server-gui.patch index 0e06008d890d..f143fe17876c 100644 --- a/patches/server/0589-Add-environment-variable-to-disable-server-gui.patch +++ b/patches/server/0588-Add-environment-variable-to-disable-server-gui.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add environment variable to disable server gui diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 0cb453b03977e90addc26f71d0518f134af3c36a..444b21bbc596ce79007560bfb0a4008ccab1dab8 100644 +index 1c64c81980739bbf09b71e1d1dd6d86dbf924e0d..415d55285bb02442d8d1ec907d37b07fad4f3fcc 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -326,6 +326,7 @@ public class Main { diff --git a/patches/server/0590-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0589-additions-to-PlayerGameModeChangeEvent.patch similarity index 98% rename from patches/server/0590-additions-to-PlayerGameModeChangeEvent.patch rename to patches/server/0589-additions-to-PlayerGameModeChangeEvent.patch index 29e14396aaef..1323b067ea00 100644 --- a/patches/server/0590-additions-to-PlayerGameModeChangeEvent.patch +++ b/patches/server/0589-additions-to-PlayerGameModeChangeEvent.patch @@ -45,7 +45,7 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..5cb15e2209d7b315904a1fc6d650ce1e } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9db7bfe3782e96921e3a65ed60f4494770210d5a..48a5fda8d59e8a13bcca61e21c7cb1358c2d17a2 100644 +index 33477a639304c1491b5eea8585051e266ec93bc7..8766c1a6485b371c1d95804d7ad364fd5ba826de 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1989,8 +1989,16 @@ public class ServerPlayer extends Player { @@ -131,7 +131,7 @@ index c61754976fab6654f55b1403d769eb1721871dca..236dabc1d4ae9dc9a2a2c07a4a27fc0b } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 60945de12bf3b7068da9897d3af778f4f8577134..7223e30011defb34db176408e528025eef96be07 100644 +index 206c0a1e783699ed272e3640a29fe349eb0b465e..4ea889c12a6750914b82d796ed641cdd810ea957 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2653,7 +2653,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0591-ItemStack-repair-check-API.patch b/patches/server/0590-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0591-ItemStack-repair-check-API.patch rename to patches/server/0590-ItemStack-repair-check-API.patch diff --git a/patches/server/0592-More-Enchantment-API.patch b/patches/server/0591-More-Enchantment-API.patch similarity index 100% rename from patches/server/0592-More-Enchantment-API.patch rename to patches/server/0591-More-Enchantment-API.patch diff --git a/patches/server/0593-Move-range-check-for-block-placing-up.patch b/patches/server/0592-Move-range-check-for-block-placing-up.patch similarity index 92% rename from patches/server/0593-Move-range-check-for-block-placing-up.patch rename to patches/server/0592-Move-range-check-for-block-placing-up.patch index 397ec7b4ec4f..e2caddd0a763 100644 --- a/patches/server/0593-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0592-Move-range-check-for-block-placing-up.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Move range check for block placing up diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3a7592f022a5fdd90a525d84502b450c08409cf1..808b000b43c6099bb4d1a0ea3041ec221ce3e6bb 100644 +index 4ea889c12a6750914b82d796ed641cdd810ea957..4d3452fb5cf9330e87d914f775c1a8e0c955a571 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1743,6 +1743,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0594-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0593-Fix-and-optimise-world-force-upgrading.patch similarity index 97% rename from patches/server/0594-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0593-Fix-and-optimise-world-force-upgrading.patch index e7c3e4464c06..948e8209910a 100644 --- a/patches/server/0594-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0593-Fix-and-optimise-world-force-upgrading.patch @@ -247,7 +247,7 @@ index 0000000000000000000000000000000000000000..513833c2ea23df5b079d157bc5cb89d5 + } +} diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 444b21bbc596ce79007560bfb0a4008ccab1dab8..62f4c2c9485f7700a46f33cf9d158ce3d0552185 100644 +index 415d55285bb02442d8d1ec907d37b07fad4f3fcc..9b0bbaf23b90a04b6e6f6c97d9174fe31af557ce 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -385,6 +385,15 @@ public class Main { @@ -267,7 +267,7 @@ index 444b21bbc596ce79007560bfb0a4008ccab1dab8..62f4c2c9485f7700a46f33cf9d158ce3 Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, dimensionOptionsRegistry, eraseCache); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 36ca381445102fee1960410aa56e8b2a28dca615..8937b71511bc1dce082683b4107d52e0e632e7a2 100644 +index fbfe5d18a004225396f2d33084fb5073af2d9731..2acd875f34c367f9b9db85dee5052140c05d0add 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -586,11 +586,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Reviewed-by: Mariell Hoversholm diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 8f9ea1907ed4574cca8d362a0f207fb546cb6484..0008e63e96841c48fa039001f282ffa70c88494f 100644 +index f9e39f557f04269769b869ff24127a6f312ddec3..a8621519c2fec415c8d56c3510b0780b6ccd9eeb 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -219,6 +219,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -93,7 +93,7 @@ index 6641fd04821240b1bbeff1bd8d996a8f2fff8385..5f625acf04ddb56e3596d086252f9bfc } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 089f4670aec8612b1e0e9cc69d785dcd135dc44a..294074cb4cac5089b57f3629f46d71175911a906 100644 +index 4d3452fb5cf9330e87d914f775c1a8e0c955a571..4d23d019173d0921145338544e190bc34f9f45c2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2476,6 +2476,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0597-Add-EntityInsideBlockEvent.patch b/patches/server/0596-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0597-Add-EntityInsideBlockEvent.patch rename to patches/server/0596-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0598-Attributes-API-for-item-defaults.patch b/patches/server/0597-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0598-Attributes-API-for-item-defaults.patch rename to patches/server/0597-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0599-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0598-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 97% rename from patches/server/0599-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0598-Add-cause-to-Weather-ThunderChangeEvents.patch index 7dd8dcb77af8..3c2e6af4c61d 100644 --- a/patches/server/0599-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0598-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 7b1374c8ee66c58fe6bd25173966d62e8971e3e4..e00fe39fbcd4aa54eb498b91783b7e4dd021acc0 100644 +index a3288d3cd160978e8bab4ca34d1fe6dbee042e28..8b2f72be4304ebab84fc46e6c4c0984abd8e8905 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -672,8 +672,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -95,7 +95,7 @@ index f5ac36fa54f3d3b39de103c95abb9ca3adfe8dda..47266d2b86e7f2022de7ea0c9347b4f5 if (weather.isCancelled()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 6ab03cc55658789baedf5374ebb9c0a6c0187826..7612ceb9ac9dedeaaade51ba4cac3f35c010da4b 100644 +index 43d3c45cd7a178a4ca30e4c0c7fb1e7e21cd89f1..e88b42727ba0b87ba01933116b6ef456203d9dbb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1243,7 +1243,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0600-More-Lidded-Block-API.patch b/patches/server/0599-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0600-More-Lidded-Block-API.patch rename to patches/server/0599-More-Lidded-Block-API.patch diff --git a/patches/server/0601-Limit-item-frame-cursors-on-maps.patch b/patches/server/0600-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0601-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0600-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0602-Add-PlayerKickEvent-causes.patch b/patches/server/0601-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/server/0602-Add-PlayerKickEvent-causes.patch rename to patches/server/0601-Add-PlayerKickEvent-causes.patch diff --git a/patches/server/0603-Add-PufferFishStateChangeEvent.patch b/patches/server/0602-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0603-Add-PufferFishStateChangeEvent.patch rename to patches/server/0602-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0604-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0603-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0604-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0603-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0605-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0604-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/server/0605-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0604-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/server/0606-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0605-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0606-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0605-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0607-Add-BellRevealRaiderEvent.patch b/patches/server/0606-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0607-Add-BellRevealRaiderEvent.patch rename to patches/server/0606-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0608-Fix-invulnerable-end-crystals.patch b/patches/server/0607-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0608-Fix-invulnerable-end-crystals.patch rename to patches/server/0607-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0609-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0608-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0609-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0608-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0610-Fix-dangerous-end-portal-logic.patch b/patches/server/0609-Fix-dangerous-end-portal-logic.patch similarity index 100% rename from patches/server/0610-Fix-dangerous-end-portal-logic.patch rename to patches/server/0609-Fix-dangerous-end-portal-logic.patch diff --git a/patches/server/0611-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0610-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0611-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0610-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0612-Make-item-validations-configurable.patch b/patches/server/0611-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0612-Make-item-validations-configurable.patch rename to patches/server/0611-Make-item-validations-configurable.patch diff --git a/patches/server/0613-Line-Of-Sight-Changes.patch b/patches/server/0612-Line-Of-Sight-Changes.patch similarity index 97% rename from patches/server/0613-Line-Of-Sight-Changes.patch rename to patches/server/0612-Line-Of-Sight-Changes.patch index 810215b75de7..7dc4e57a023d 100644 --- a/patches/server/0613-Line-Of-Sight-Changes.patch +++ b/patches/server/0612-Line-Of-Sight-Changes.patch @@ -19,7 +19,7 @@ index 383c39ac381f9a86693abb7935b5b142b889d7be..ca6e0f27b9d0c5d867909abd89262132 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 2667822413c329fc004aad826e5890ab4dc5bfeb..eeb1bd05d4407224aefa26b5ae2f2a8da1101b31 100644 +index 9cd267f53505658d1c75187b662c4d9f68cd6bae..5f4958d28b6d79fe9e589e4794d9a7e8ab67c8b3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -510,5 +510,21 @@ public abstract class CraftRegionAccessor implements RegionAccessor { diff --git a/patches/server/0614-add-per-world-spawn-limits.patch b/patches/server/0613-add-per-world-spawn-limits.patch similarity index 91% rename from patches/server/0614-add-per-world-spawn-limits.patch rename to patches/server/0613-add-per-world-spawn-limits.patch index b03a6ab08ea4..c70252598b33 100644 --- a/patches/server/0614-add-per-world-spawn-limits.patch +++ b/patches/server/0613-add-per-world-spawn-limits.patch @@ -6,7 +6,7 @@ Subject: [PATCH] add per world spawn limits Taken from #2982. Credit to Chasewhip8 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index bc2c56b0a3ea8e9107c3ef798bb058ae1ff41652..6c91471b5459ca45b532934d25c682ddc5b00042 100644 +index e88b42727ba0b87ba01933116b6ef456203d9dbb..a920936018a2e05ea72d68a83e6debb3807df353 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -215,6 +215,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0615-Fix-potions-splash-events.patch b/patches/server/0614-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0615-Fix-potions-splash-events.patch rename to patches/server/0614-Fix-potions-splash-events.patch diff --git a/patches/server/0616-Add-more-LimitedRegion-API.patch b/patches/server/0615-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0616-Add-more-LimitedRegion-API.patch rename to patches/server/0615-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0617-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0616-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 94% rename from patches/server/0617-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0616-Fix-PlayerDropItemEvent-using-wrong-item.patch index 8cf564db7f84..b41a629e5401 100644 --- a/patches/server/0617-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0616-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix PlayerDropItemEvent using wrong item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 48a5fda8d59e8a13bcca61e21c7cb1358c2d17a2..bb44d07bdffcf077dae3c5c2aef2aa87a77bb264 100644 +index 8766c1a6485b371c1d95804d7ad364fd5ba826de..76eb668311d2aa2659adf4f7857a670d81387830 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2391,7 +2391,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0618-Missing-Entity-API.patch b/patches/server/0617-Missing-Entity-API.patch similarity index 99% rename from patches/server/0618-Missing-Entity-API.patch rename to patches/server/0617-Missing-Entity-API.patch index b014179c9075..4cbbbf5a031e 100644 --- a/patches/server/0618-Missing-Entity-API.patch +++ b/patches/server/0617-Missing-Entity-API.patch @@ -257,7 +257,7 @@ index edbb933d1f6f7fc6432f7a8b074c5dc20f47adfb..91fb62807b3c5600c83d4dc8d3fadf36 public Llama(EntityType type, Level world) { super(type, world); diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 29b603f5d361fdfb4dd0d20b7e77a29a920f6961..32b69b09ba2ee63e393aa6b4b6a142aaca6819a1 100644 +index 14b09adeb9222600c24f3fb846ea8aee467952e6..8241dbf7591b2f56b25cdc3ce9009c7133d2e4ef 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -84,6 +84,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -942,7 +942,7 @@ index 9304e201db1ec96d0916aa8ea781f3e4bc7991e6..8338effd39b1709dbe578e247710a8e5 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java -index 8b9695de6e3411cbcc2f97e4a4e243ec1d1dd076..03e74b29ebf0f9b9a0dbc6ffc872e22a22be20f0 100644 +index f5ecb8c1dc92e5a4b123effd2859123b17a586d3..5124a383b60b2c8de89fa992547d0c61db760c21 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java @@ -84,4 +84,37 @@ public class CraftPiglin extends CraftPiglinAbstract implements Piglin, com.dest diff --git a/patches/server/0619-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0618-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 92% rename from patches/server/0619-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0618-Ensure-disconnect-for-book-edit-is-called-on-main.patch index efc0788640b8..0e9946cfe0d0 100644 --- a/patches/server/0619-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0618-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5382fc27e4f0147cae32c2ee2959428d28ab9265..4440c872aaf0a708de5c561f46ababadef95d900 100644 +index 1a85755ad62498c263783d1d54130d023105ec8d..fe969ecdca0e93319449f2fe3c3f41b4e17b385e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1099,7 +1099,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0620-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0619-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0620-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0619-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0621-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0620-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 100% rename from patches/server/0621-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0620-Use-getChunkIfLoadedImmediately-in-places.patch diff --git a/patches/server/0622-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0621-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0622-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0621-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0623-Adds-PlayerArmSwingEvent.patch b/patches/server/0622-Adds-PlayerArmSwingEvent.patch similarity index 93% rename from patches/server/0623-Adds-PlayerArmSwingEvent.patch rename to patches/server/0622-Adds-PlayerArmSwingEvent.patch index 1f1f4f77f018..f2f4cf9cd18e 100644 --- a/patches/server/0623-Adds-PlayerArmSwingEvent.patch +++ b/patches/server/0622-Adds-PlayerArmSwingEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Adds PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3ed491afc47273cb8d648ff527c81d968a1a3833..8e229a43a5b6042597532419cf6e63439a94d4f9 100644 +index fe969ecdca0e93319449f2fe3c3f41b4e17b385e..da21fdec10a10e4dcec3b0cadb72fa82ef56e4b4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2333,7 +2333,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0624-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0623-Fixes-kick-event-leave-message-not-being-sent.patch similarity index 97% rename from patches/server/0624-Fixes-kick-event-leave-message-not-being-sent.patch rename to patches/server/0623-Fixes-kick-event-leave-message-not-being-sent.patch index 4cb254bdb9a1..fdd06094ab49 100644 --- a/patches/server/0624-Fixes-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0623-Fixes-kick-event-leave-message-not-being-sent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fixes kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 19ce7611ea1ebef24f246118839b57d9b6949c34..83ba8472a5f3dc2c5d804e49310d8d0a2332a709 100644 +index 76eb668311d2aa2659adf4f7857a670d81387830..ae9acf496b866309d336ebd480a0b99aa03694df 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -273,7 +273,6 @@ public class ServerPlayer extends Player { @@ -50,7 +50,7 @@ index 70458ff8c9bf6f3263868b0f5570840fe3d89ed2..d28d0ef6105ddeb562ddf31ae9088739 MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2d7b88d0ea0acdd6e40d7c3e622af26de26bc0b7..685f4bb5c0c6c7e546e44bf6d2e4bf1f4c6dce68 100644 +index da21fdec10a10e4dcec3b0cadb72fa82ef56e4b4..8ed347ad9e758a3d5df7110ea0b098a207f61094 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1887,6 +1887,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0625-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0624-Add-config-for-mobs-immune-to-default-effects.patch similarity index 94% rename from patches/server/0625-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0624-Add-config-for-mobs-immune-to-default-effects.patch index 0693018bf105..cf7f8ac4c4be 100644 --- a/patches/server/0625-Add-config-for-mobs-immune-to-default-effects.patch +++ b/patches/server/0624-Add-config-for-mobs-immune-to-default-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config for mobs immune to default effects diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4a11bf06a725a5c1927e24ac4ad066f7631a430a..ddfac0ec3baeff8596bea7e742707aa1fddfc1c2 100644 +index ca6e0f27b9d0c5d867909abd89262132bf1aa6bd..0e004d32250fea991c66caead50f2f64dbe0bbf7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1164,7 +1164,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -18,7 +18,7 @@ index 4a11bf06a725a5c1927e24ac4ad066f7631a430a..ddfac0ec3baeff8596bea7e742707aa1 } } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 32b69b09ba2ee63e393aa6b4b6a142aaca6819a1..0d1afaecc35b4c7f7656a2d903f08f92a706cb3f 100644 +index 8241dbf7591b2f56b25cdc3ce9009c7133d2e4ef..2beece01e1b2acc69eeb92810ce14db01a311f23 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -606,7 +606,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob diff --git a/patches/server/0626-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0625-Don-t-apply-cramming-damage-to-players.patch similarity index 94% rename from patches/server/0626-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0625-Don-t-apply-cramming-damage-to-players.patch index 065aae286b50..c14d98b487f7 100644 --- a/patches/server/0626-Don-t-apply-cramming-damage-to-players.patch +++ b/patches/server/0625-Don-t-apply-cramming-damage-to-players.patch @@ -11,7 +11,7 @@ It does not make a lot of sense to damage players if they get crammed, For those who really want it a config option is provided. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6a21b06d07fd3ee8ea0fa567240ad6aec9e57096..064b7ccea1342a871caad96fc42db38720043c3b 100644 +index ae9acf496b866309d336ebd480a0b99aa03694df..b49b56848bdbbd07c49e44d85997fa36192332c5 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -95,6 +95,7 @@ import net.minecraft.util.Mth; diff --git a/patches/server/0627-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0626-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0627-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0626-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0628-Add-a-bunch-of-missing-forceDrop-toggles.patch b/patches/server/0627-Add-a-bunch-of-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0628-Add-a-bunch-of-missing-forceDrop-toggles.patch rename to patches/server/0627-Add-a-bunch-of-missing-forceDrop-toggles.patch diff --git a/patches/server/0629-Stinger-API.patch b/patches/server/0628-Stinger-API.patch similarity index 100% rename from patches/server/0629-Stinger-API.patch rename to patches/server/0628-Stinger-API.patch diff --git a/patches/server/0630-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0629-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0630-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0629-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0631-Add-System.out-err-catcher.patch b/patches/server/0630-Add-System.out-err-catcher.patch similarity index 98% rename from patches/server/0631-Add-System.out-err-catcher.patch rename to patches/server/0630-Add-System.out-err-catcher.patch index 0b6cdc01dce5..13982718676f 100644 --- a/patches/server/0631-Add-System.out-err-catcher.patch +++ b/patches/server/0630-Add-System.out-err-catcher.patch @@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0ed5db37759e66647bc54cdaa0e612cf2e851771..21dfa2d10e1c67c968b59eb11132ab1ff46ba2d7 100644 +index b3225546c6c65dc18aa71930a38a72c7b6997ad5..7621b77d49330e462c4857f2033d74723eee4281 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -303,6 +303,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0632-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0631-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0632-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0631-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0633-Improve-boat-collision-performance.patch b/patches/server/0632-Improve-boat-collision-performance.patch similarity index 100% rename from patches/server/0633-Improve-boat-collision-performance.patch rename to patches/server/0632-Improve-boat-collision-performance.patch diff --git a/patches/server/0634-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0633-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 93% rename from patches/server/0634-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0633-Prevent-AFK-kick-while-watching-end-credits.patch index c0d096df583f..08e7d79e1e9d 100644 --- a/patches/server/0634-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0633-Prevent-AFK-kick-while-watching-end-credits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent AFK kick while watching end credits. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 685f4bb5c0c6c7e546e44bf6d2e4bf1f4c6dce68..80a31b422ecae9eb30a418034b6eb357076eded1 100644 +index 8ed347ad9e758a3d5df7110ea0b098a207f61094..28fdf5f4df4b61383e6d132f603c50ec35f62024 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -390,7 +390,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0635-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0634-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 97% rename from patches/server/0635-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0634-Allow-skipping-writing-of-comments-to-server.propert.patch index 591481a8b526..5f22e4194ada 100644 --- a/patches/server/0635-Allow-skipping-writing-of-comments-to-server.propert.patch +++ b/patches/server/0634-Allow-skipping-writing-of-comments-to-server.propert.patch @@ -8,7 +8,7 @@ Makes less git noise, as it won't update the date every single time Use -DPaper.skipServerPropertiesComments=true flag to disable writing it diff --git a/src/main/java/net/minecraft/server/dedicated/Settings.java b/src/main/java/net/minecraft/server/dedicated/Settings.java -index d9ad5087d152a2233d16743768d9ce885f32071d..15bd96f42fa6add2455e6e6a29deb8e6ff643ca0 100644 +index fc45c2c4ecdf3906df6bceaf3e019c462fe62186..f04bfbef6876ceb1fc7d28d9f964b730d1e5c238 100644 --- a/src/main/java/net/minecraft/server/dedicated/Settings.java +++ b/src/main/java/net/minecraft/server/dedicated/Settings.java @@ -29,6 +29,7 @@ public abstract class Settings> { diff --git a/patches/server/0636-Add-PlayerSetSpawnEvent.patch b/patches/server/0635-Add-PlayerSetSpawnEvent.patch similarity index 99% rename from patches/server/0636-Add-PlayerSetSpawnEvent.patch rename to patches/server/0635-Add-PlayerSetSpawnEvent.patch index e2e6dcdd1269..4233f9c921a1 100644 --- a/patches/server/0636-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0635-Add-PlayerSetSpawnEvent.patch @@ -49,7 +49,7 @@ index a2d0699e8427b2262a2396495111125eccafbb66..d797637f61bdf8a424f56fbb48e28b7c } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 064b7ccea1342a871caad96fc42db38720043c3b..b7cdc097e77cb133442191af6e46324a4d0310da 100644 +index b49b56848bdbbd07c49e44d85997fa36192332c5..9f7c149d3ad1175d55ec02e295ee43bc571c3280 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1356,7 +1356,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0637-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0636-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0637-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0636-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0638-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0637-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0638-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0637-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0639-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0638-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0639-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0638-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0640-Added-EntityDamageItemEvent.patch b/patches/server/0639-Added-EntityDamageItemEvent.patch similarity index 97% rename from patches/server/0640-Added-EntityDamageItemEvent.patch rename to patches/server/0639-Added-EntityDamageItemEvent.patch index ef1aeee736b9..c4a326836712 100644 --- a/patches/server/0640-Added-EntityDamageItemEvent.patch +++ b/patches/server/0639-Added-EntityDamageItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Added EntityDamageItemEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 0dfa1ca78f747b2ea7e6b9f59d4561daad8bfcc8..368837172f87ac45e1d58e9905b4693cc0804328 100644 +index 761a46c21aaddcd43b4c33f477658605648127e9..fdcec8496abda362e611b42ef054ea730f47f408 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -622,7 +622,7 @@ public final class ItemStack { diff --git a/patches/server/0641-Optimize-indirect-passenger-iteration.patch b/patches/server/0640-Optimize-indirect-passenger-iteration.patch similarity index 95% rename from patches/server/0641-Optimize-indirect-passenger-iteration.patch rename to patches/server/0640-Optimize-indirect-passenger-iteration.patch index 04f5ad2db917..302d90eab066 100644 --- a/patches/server/0641-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0640-Optimize-indirect-passenger-iteration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize indirect passenger iteration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 229ed03a59c77d37242b44edabc2ddb843037fa6..6889b02637178db2caad58e5513847fb96e04ecb 100644 +index 486a4d9e5cd421e2444327e2c28e4f674c98894a..c598247bd8cf65f33845502107277518f7260d4d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3926,20 +3926,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0642-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0641-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0642-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0641-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0643-Make-EntityUnleashEvent-cancellable.patch b/patches/server/0642-Make-EntityUnleashEvent-cancellable.patch similarity index 100% rename from patches/server/0643-Make-EntityUnleashEvent-cancellable.patch rename to patches/server/0642-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/server/0644-Clear-bucket-NBT-after-dispense.patch b/patches/server/0643-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0644-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0643-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0645-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0644-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0645-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0644-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0646-Add-BlockBreakBlockEvent.patch b/patches/server/0645-Add-BlockBreakBlockEvent.patch similarity index 98% rename from patches/server/0646-Add-BlockBreakBlockEvent.patch rename to patches/server/0645-Add-BlockBreakBlockEvent.patch index bd3d51aa8177..79b68d678415 100644 --- a/patches/server/0646-Add-BlockBreakBlockEvent.patch +++ b/patches/server/0645-Add-BlockBreakBlockEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add BlockBreakBlockEvent diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 2c190473b98899e86d8bcd5a81c72bbc0a85b2a9..f0a85f1b48a911ffd8740df5ebe869e8f0371a58 100644 +index 5e5199b50847958f7abc6d8e42cfb6806df8421f..142f9438f75cb7e2d97011fdeb3f9e367ff81599 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -326,6 +326,23 @@ public class Block extends BlockBehaviour implements ItemLike { diff --git a/patches/server/0647-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0646-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0647-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0646-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0648-More-CommandBlock-API.patch b/patches/server/0647-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0648-More-CommandBlock-API.patch rename to patches/server/0647-More-CommandBlock-API.patch diff --git a/patches/server/0649-Add-missing-team-sidebar-display-slots.patch b/patches/server/0648-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0649-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0648-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0650-Add-back-EntityPortalExitEvent.patch b/patches/server/0649-Add-back-EntityPortalExitEvent.patch similarity index 97% rename from patches/server/0650-Add-back-EntityPortalExitEvent.patch rename to patches/server/0649-Add-back-EntityPortalExitEvent.patch index 97155b3279ce..ab399684bb8d 100644 --- a/patches/server/0650-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0649-Add-back-EntityPortalExitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add back EntityPortalExitEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6889b02637178db2caad58e5513847fb96e04ecb..6f023b22a1051baaa5310d8c5a1aa6d8b76d8992 100644 +index c598247bd8cf65f33845502107277518f7260d4d..8db434d01f2771a94cd4c4a662ea0482b2a02307 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3373,6 +3373,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0651-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0650-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 93% rename from patches/server/0651-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0650-Add-methods-to-find-targets-for-lightning-strikes.patch index 5ee092eda08f..8b56c0c4a7a5 100644 --- a/patches/server/0651-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0650-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 89396f956fc413f6ce53c2f66a85c395557aa883..0830f7671ade925e0b89b2723cef9f43d4f20922 100644 +index dbfd4a642e862f46a8b4fd1f3fc52c13ecf74284..1629a94a272f34d395b6be8f16944b9a8837d195 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -998,6 +998,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -31,7 +31,7 @@ index 89396f956fc413f6ce53c2f66a85c395557aa883..0830f7671ade925e0b89b2723cef9f43 blockposition1 = blockposition1.above(2); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 144d49ddf5b4daf9d36ba84a25b130c1491fcc02..392714a19fc977678a7a7041d48ff553934ecf51 100644 +index a920936018a2e05ea72d68a83e6debb3807df353..095fa9e4c4d367a3cdd343ca71bef7a6564759be 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -701,6 +701,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0652-Get-entity-default-attributes.patch b/patches/server/0651-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0652-Get-entity-default-attributes.patch rename to patches/server/0651-Get-entity-default-attributes.patch diff --git a/patches/server/0653-Left-handed-API.patch b/patches/server/0652-Left-handed-API.patch similarity index 100% rename from patches/server/0653-Left-handed-API.patch rename to patches/server/0652-Left-handed-API.patch diff --git a/patches/server/0654-Add-more-advancement-API.patch b/patches/server/0653-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0654-Add-more-advancement-API.patch rename to patches/server/0653-Add-more-advancement-API.patch diff --git a/patches/server/0655-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0654-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0655-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0654-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0656-Add-critical-damage-API.patch b/patches/server/0655-Add-critical-damage-API.patch similarity index 98% rename from patches/server/0656-Add-critical-damage-API.patch rename to patches/server/0655-Add-critical-damage-API.patch index 05210d88e42c..d2acf3ffd513 100644 --- a/patches/server/0656-Add-critical-damage-API.patch +++ b/patches/server/0655-Add-critical-damage-API.patch @@ -71,7 +71,7 @@ index 004c130fc03dc01ef75fabdb4ef1ef711e33cb95..ae4319c2532855315bc45995a39d7eb9 int k = entity.getRemainingFireTicks(); boolean flag1 = entity.getType().is(EntityTypeTags.DEFLECTS_ARROWS); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ca586aef7a22b4824f3c954d9574682f6a25ab28..e4d08d4b85f9ce57af50e6aaf4a308a8a6c85ce3 100644 +index 8a7c90014beb5e044abc1fd6f8832bb3c78ffb12..1894fddf867df210d041307d72118eacde9fe5cb 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1043,7 +1043,7 @@ public class CraftEventFactory { diff --git a/patches/server/0657-Fix-issues-with-mob-conversion.patch b/patches/server/0656-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0657-Fix-issues-with-mob-conversion.patch rename to patches/server/0656-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0658-Add-isCollidable-methods-to-various-places.patch b/patches/server/0657-Add-isCollidable-methods-to-various-places.patch similarity index 96% rename from patches/server/0658-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0657-Add-isCollidable-methods-to-various-places.patch index f02bfe0a1d9d..9623c465996c 100644 --- a/patches/server/0658-Add-isCollidable-methods-to-various-places.patch +++ b/patches/server/0657-Add-isCollidable-methods-to-various-places.patch @@ -23,7 +23,7 @@ index ce297420f695404356655b1df2847a32fb98ec59..068b3735b6c50a7a2053c7dc39856f72 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java -index aca63719790429d3d7c7c59a1931a98221c70fc0..31bb92c026a4a2de0e8d3500f6ecf35b60d61fb9 100644 +index 928a301627134b49915b0ceaeabb7dc350605dc2..08716e757b2e100f7bc47a046f02db664d882aba 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java @@ -331,4 +331,11 @@ public class CraftBlockState implements BlockState { diff --git a/patches/server/0659-Goat-ram-API.patch b/patches/server/0658-Goat-ram-API.patch similarity index 100% rename from patches/server/0659-Goat-ram-API.patch rename to patches/server/0658-Goat-ram-API.patch diff --git a/patches/server/0660-Add-API-for-resetting-a-single-score.patch b/patches/server/0659-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0660-Add-API-for-resetting-a-single-score.patch rename to patches/server/0659-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0661-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0660-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/server/0661-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0660-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/server/0662-Vanilla-command-permission-fixes.patch b/patches/server/0661-Vanilla-command-permission-fixes.patch similarity index 97% rename from patches/server/0662-Vanilla-command-permission-fixes.patch rename to patches/server/0661-Vanilla-command-permission-fixes.patch index b0ff5eb32df8..6813c9adc7c5 100644 --- a/patches/server/0662-Vanilla-command-permission-fixes.patch +++ b/patches/server/0661-Vanilla-command-permission-fixes.patch @@ -33,7 +33,7 @@ index 899008b2980d13f1be6280cd8cb959c53a29bebf..f875507241ac6769545e91cd3285232b private RedirectModifier modifier = null; private boolean forks; diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 1409801946be84e3256748c68ba0c62d42b869de..713e665ee962d9e8bebeb13d2621d43849084090 100644 +index 3b3fa067ee5a95d52645147c2d9d1e43d7a789b6..bc0f9bf88de8f79f8e2aa2261d5a8bdc9dd1f53a 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -257,6 +257,13 @@ public class Commands { diff --git a/patches/server/0663-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0662-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 97% rename from patches/server/0663-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0662-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index 15f28499ca32..55882d08414f 100644 --- a/patches/server/0663-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0662-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/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0830f7671ade925e0b89b2723cef9f43d4f20922..5329fe64b64fab73d3bda02c700a6f01aa2d9637 100644 +index 1629a94a272f34d395b6be8f16944b9a8837d195..ce74bfb123427c5459c03c3c8f85445077c329c7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1578,9 +1578,13 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0664-Fix-GameProfileCache-concurrency.patch b/patches/server/0663-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0664-Fix-GameProfileCache-concurrency.patch rename to patches/server/0663-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0665-Improve-and-expand-AsyncCatcher.patch b/patches/server/0664-Improve-and-expand-AsyncCatcher.patch similarity index 98% rename from patches/server/0665-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0664-Improve-and-expand-AsyncCatcher.patch index 4ec9137a17c4..810bd9cbce1d 100644 --- a/patches/server/0665-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0664-Improve-and-expand-AsyncCatcher.patch @@ -17,7 +17,7 @@ Async catch modifications to critical entity state Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 80a31b422ecae9eb30a418034b6eb357076eded1..93cb76c8e96488051b10ed4a634c681305628fcc 100644 +index 28fdf5f4df4b61383e6d132f603c50ec35f62024..b203c945e7c013e202013f7bce6b3c7077bf2d42 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1575,6 +1575,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -166,7 +166,7 @@ index bbbf6dd8e566ecdca8794e3b03765fe7e426a2bd..66ab901956ca394c251c420338643d39 PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason}); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 392714a19fc977678a7a7041d48ff553934ecf51..5910373dfbe561e52c507129d506f68aa9252249 100644 +index 095fa9e4c4d367a3cdd343ca71bef7a6564759be..b52d3413cfe725ff5778c897a0ba06ca834e533f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1803,6 +1803,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0666-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0665-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 100% rename from patches/server/0666-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0665-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/server/0667-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0666-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0667-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0666-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0668-Optimise-general-POI-access.patch b/patches/server/0667-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/0668-Optimise-general-POI-access.patch rename to patches/server/0667-Optimise-general-POI-access.patch diff --git a/patches/server/0669-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/0668-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/0669-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/0668-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/0670-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0669-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0670-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0669-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0671-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0670-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0671-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0670-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0672-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0671-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 94% rename from patches/server/0672-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0671-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index 5931189e1586..779fad9d1aea 100644 --- a/patches/server/0672-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0671-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -13,7 +13,7 @@ Paper recently reverted this optimisation, so it's been reintroduced here. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2b29b1cf3cd8abccd4b7629e56f18eee741522a5..18e26a5fd8843618710403b3fa4818287e90376c 100644 +index 35ca44c88497e0b07f43ba7bf092360365b1c53a..e297be9cf8c59b6b8d051d5db70c3bebcd235a2d 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -458,6 +458,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0673-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0672-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0673-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0672-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0674-Don-t-lookup-fluid-state-when-raytracing.patch b/patches/server/0673-Don-t-lookup-fluid-state-when-raytracing.patch similarity index 100% rename from patches/server/0674-Don-t-lookup-fluid-state-when-raytracing.patch rename to patches/server/0673-Don-t-lookup-fluid-state-when-raytracing.patch diff --git a/patches/server/0675-Time-scoreboard-search.patch b/patches/server/0674-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0675-Time-scoreboard-search.patch rename to patches/server/0674-Time-scoreboard-search.patch diff --git a/patches/server/0676-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0675-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/0676-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/0675-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/0677-Do-not-run-raytrace-logic-for-AIR.patch b/patches/server/0676-Do-not-run-raytrace-logic-for-AIR.patch similarity index 100% rename from patches/server/0677-Do-not-run-raytrace-logic-for-AIR.patch rename to patches/server/0676-Do-not-run-raytrace-logic-for-AIR.patch diff --git a/patches/server/0678-Execute-chunk-tasks-mid-tick.patch b/patches/server/0677-Execute-chunk-tasks-mid-tick.patch similarity index 100% rename from patches/server/0678-Execute-chunk-tasks-mid-tick.patch rename to patches/server/0677-Execute-chunk-tasks-mid-tick.patch diff --git a/patches/server/0679-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0678-Oprimise-map-impl-for-tracked-players.patch similarity index 100% rename from patches/server/0679-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0678-Oprimise-map-impl-for-tracked-players.patch diff --git a/patches/server/0680-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0679-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0680-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0679-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0681-Optimise-random-block-ticking.patch b/patches/server/0680-Optimise-random-block-ticking.patch similarity index 99% rename from patches/server/0681-Optimise-random-block-ticking.patch rename to patches/server/0680-Optimise-random-block-ticking.patch index d875078af07d..347a22d5c4a9 100644 --- a/patches/server/0681-Optimise-random-block-ticking.patch +++ b/patches/server/0680-Optimise-random-block-ticking.patch @@ -90,7 +90,7 @@ index 0000000000000000000000000000000000000000..7d93652c1abbb6aee6eb7c26cf35d4d0 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4df6c879aae57cb85c67a0c7342fc33db6f180dc..bc826660514a76738f5256bf571eb2abf8bf85ef 100644 +index 6b999e05f93b0da1a3cc9a679a3a88b89df4aab5..a9f336ed75ef406c1179bdc6e63e6fd944470534 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -860,6 +860,10 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -324,7 +324,7 @@ index 722e323d2ae3f4ac8aa3197fed79f7d926d5ccfa..f8c1dfc8e121a406955348a1ec00c264 public BlockPos getHomePos() { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 43f43c59138b661299f20cba89d91aa5585cdf32..3b13a13c4e7de12ed0cac354701bf3502d788b59 100644 +index 02dfea10b27c6f932bc5742f6c577e30c155b3fe..94a4ceeea167164fb589518881952dd5e082f8c2 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1398,10 +1398,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0682-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0681-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 99% rename from patches/server/0682-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/0681-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch index 0a7c36c9772e..d2cc318b7d73 100644 --- a/patches/server/0682-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch +++ b/patches/server/0681-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch @@ -10,7 +10,7 @@ hoping that at least then we don't swap chunks, and maybe recover them all. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 19b35d1c07c75b27cef9a53258a68ec5d9f721d5..e1ad2152bbd55435495bdad57a0984842e55fcb8 100644 +index a95909bc818f395ce5772c5129f9cc9b789ce133..df9ae808c5a59ea25145c9df62f42fb33d159021 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -70,6 +70,18 @@ import net.minecraft.world.ticks.ProtoChunkTicks; @@ -685,7 +685,7 @@ index 647ce340c81606ab86d33e1f9dec1fb0afc262d8..98c8b676fc5b2add44d6ddf5d32f85bc return bytebuffer; } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 7dee0f7d49f3492c92fceff7750e696239f840ed..134a5cf10073c27dfbc19709e81ffa75bcc73743 100644 +index 9fa07295bf73317a4c2bbbbaf1918393c891f09a..a2794ec3d846136da64b6888d846587499a5f635 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -24,6 +24,7 @@ public class RegionFileStorage implements AutoCloseable { diff --git a/patches/server/0683-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0682-Use-Velocity-compression-and-cipher-natives.patch similarity index 99% rename from patches/server/0683-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/0682-Use-Velocity-compression-and-cipher-natives.patch index d1fecc8c7584..159866c83f4a 100644 --- a/patches/server/0683-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/0682-Use-Velocity-compression-and-cipher-natives.patch @@ -337,7 +337,7 @@ index 5f625acf04ddb56e3596d086252f9bfccfdb95f2..54c7f34ba3dc8466223e589702d0c93a protected void initChannel(Channel channel) { Connection.setInitialProtocolAttributes(channel); diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 8f60341a3f17fa4553a22e4a98699e0855c54e06..7da7571eef2a90d039da3a3ec122398b523b6730 100644 +index 0bed0d7aff06a400fa28348f8658d7ad385e8749..453ed111a6640bfafe66d914db976243e94f94c8 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -223,12 +223,14 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, diff --git a/patches/server/0684-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0683-Detail-more-information-in-watchdog-dumps.patch similarity index 100% rename from patches/server/0684-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/0683-Detail-more-information-in-watchdog-dumps.patch diff --git a/patches/server/0685-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch b/patches/server/0684-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch similarity index 100% rename from patches/server/0685-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch rename to patches/server/0684-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch diff --git a/patches/server/0686-Distance-manager-tick-timings.patch b/patches/server/0685-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0686-Distance-manager-tick-timings.patch rename to patches/server/0685-Distance-manager-tick-timings.patch diff --git a/patches/server/0687-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0686-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 94% rename from patches/server/0687-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0686-Fix-merchant-inventory-not-closing-on-entity-removal.patch index f42b637caeef..5a15e29fbe6b 100644 --- a/patches/server/0687-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0686-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 53ab0a55cef95bf7660ccf68558967ce9b63c741..15533cf984bc29edc8015f0cc6b1d510c672c896 100644 +index 56c999c7f80b280966e81a0b1ca4929f034edb20..cae00701c5dbf40be07ea5c2d01ea8929f4fa216 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2696,6 +2696,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0688-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0687-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0688-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0687-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0689-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0688-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 92% rename from patches/server/0689-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0688-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index a0919cf95348..23944724e986 100644 --- a/patches/server/0689-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/server/0688-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8ad189164db55c8416b07511dc349ee7a94752a0..3fb7e355a86851731f5f11b6b8bb8e4515806a33 100644 +index b203c945e7c013e202013f7bce6b3c7077bf2d42..648530ce3183362ed71cbd2de534471da65ab787 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -736,6 +736,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0690-Add-packet-limiter-config.patch b/patches/server/0689-Add-packet-limiter-config.patch similarity index 100% rename from patches/server/0690-Add-packet-limiter-config.patch rename to patches/server/0689-Add-packet-limiter-config.patch diff --git a/patches/server/0691-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0690-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0691-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0690-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0692-Ensure-valid-vehicle-status.patch b/patches/server/0691-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/server/0692-Ensure-valid-vehicle-status.patch rename to patches/server/0691-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0693-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0692-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0693-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0692-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0694-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0693-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0694-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0693-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0695-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0694-Don-t-log-debug-logging-being-disabled.patch similarity index 88% rename from patches/server/0695-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0694-Don-t-log-debug-logging-being-disabled.patch index 2130840734ab..8daedd938db1 100644 --- a/patches/server/0695-Don-t-log-debug-logging-being-disabled.patch +++ b/patches/server/0694-Don-t-log-debug-logging-being-disabled.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't log debug logging being disabled diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java -index 1eafb92fdf3c6ddce5f5f847bd9034287e2d4b84..68602dfb171d47e47fd0710b4324013ef05214d0 100644 +index 56dbc23f10d946a7ec992b08fd868f3ee5089068..6c260403d91d640da0473a3df56e1c5582459fde 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java @@ -382,7 +382,7 @@ public class SpigotConfig diff --git a/patches/server/0696-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0695-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0696-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0695-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0697-Preserve-overstacked-loot.patch b/patches/server/0696-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0697-Preserve-overstacked-loot.patch rename to patches/server/0696-Preserve-overstacked-loot.patch diff --git a/patches/server/0698-Update-head-rotation-in-missing-places.patch b/patches/server/0697-Update-head-rotation-in-missing-places.patch similarity index 100% rename from patches/server/0698-Update-head-rotation-in-missing-places.patch rename to patches/server/0697-Update-head-rotation-in-missing-places.patch diff --git a/patches/server/0699-prevent-unintended-light-block-manipulation.patch b/patches/server/0698-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0699-prevent-unintended-light-block-manipulation.patch rename to patches/server/0698-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0700-Fix-CraftCriteria-defaults-map.patch b/patches/server/0699-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0700-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0699-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0701-Fix-upstreams-block-state-factories.patch b/patches/server/0700-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0701-Fix-upstreams-block-state-factories.patch rename to patches/server/0700-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0702-Configurable-feature-seeds.patch b/patches/server/0701-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0702-Configurable-feature-seeds.patch rename to patches/server/0701-Configurable-feature-seeds.patch diff --git a/patches/server/0703-Add-root-admin-user-detection.patch b/patches/server/0702-Add-root-admin-user-detection.patch similarity index 97% rename from patches/server/0703-Add-root-admin-user-detection.patch rename to patches/server/0702-Add-root-admin-user-detection.patch index 1b3440b01297..a8a91bed0fc4 100644 --- a/patches/server/0703-Add-root-admin-user-detection.patch +++ b/patches/server/0702-Add-root-admin-user-detection.patch @@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..6bd0afddbcc461149dfe9a5c7a86fff6 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 0008e63e96841c48fa039001f282ffa70c88494f..a305557e97d8719f5f82e70794d15242364ce136 100644 +index a8621519c2fec415c8d56c3510b0780b6ccd9eeb..c9af6ba082d1d387aa2e6ecf5fb4647d994447f4 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -179,6 +179,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0704-Always-allow-item-changing-in-Fireball.patch b/patches/server/0703-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0704-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0703-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0705-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0704-don-t-attempt-to-teleport-dead-entities.patch similarity index 100% rename from patches/server/0705-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0704-don-t-attempt-to-teleport-dead-entities.patch diff --git a/patches/server/0706-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0705-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/server/0706-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0705-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0707-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0706-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0707-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0706-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0708-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0707-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0708-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0707-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0709-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0708-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/server/0709-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0708-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0710-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0709-Hide-unnecessary-itemmeta-from-clients.patch similarity index 98% rename from patches/server/0710-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0709-Hide-unnecessary-itemmeta-from-clients.patch index a500bba1622b..2279e3103348 100644 --- a/patches/server/0710-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0709-Hide-unnecessary-itemmeta-from-clients.patch @@ -18,7 +18,7 @@ index 8d2870c780c4c253f6570c7ef73f6e7c2ccc46ad..0cbb5dd17c5b37ad90ce11a31b644707 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3fb7e355a86851731f5f11b6b8bb8e4515806a33..3d2ef1728a54d7612a773dfb7066b7370c9df178 100644 +index 648530ce3183362ed71cbd2de534471da65ab787..1e519cdd673a4d4beb53ae84822e7b85c25a5e97 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2566,8 +2566,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0711-Fix-Spigot-growth-modifiers.patch b/patches/server/0710-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0711-Fix-Spigot-growth-modifiers.patch rename to patches/server/0710-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0712-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0711-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0712-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0711-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0713-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0712-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0713-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0712-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0714-Optimize-HashMapPalette.patch b/patches/server/0713-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0714-Optimize-HashMapPalette.patch rename to patches/server/0713-Optimize-HashMapPalette.patch diff --git a/patches/server/0715-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0714-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/server/0715-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0714-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/server/0716-Collision-optimisations.patch b/patches/server/0715-Collision-optimisations.patch similarity index 100% rename from patches/server/0716-Collision-optimisations.patch rename to patches/server/0715-Collision-optimisations.patch diff --git a/patches/server/0717-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0716-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 99% rename from patches/server/0717-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/0716-Optimise-collision-checking-in-player-move-packet-ha.patch index aac62fe828a4..67f37342908a 100644 --- a/patches/server/0717-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/0716-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -8,7 +8,7 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN CHECK ME diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3d2ef1728a54d7612a773dfb7066b7370c9df178..846db5783d85b68ca1f3788fe5434bc88b90c2d9 100644 +index 1e519cdd673a4d4beb53ae84822e7b85c25a5e97..554b0cd2f61005b57e1b0f68730354a8753fb0b7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -543,7 +543,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0718-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0717-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0718-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0717-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0719-Add-more-Campfire-API.patch b/patches/server/0718-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0719-Add-more-Campfire-API.patch rename to patches/server/0718-Add-more-Campfire-API.patch diff --git a/patches/server/0720-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0719-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0720-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0719-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0721-Fix-tripwire-state-inconsistency.patch b/patches/server/0720-Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/server/0721-Fix-tripwire-state-inconsistency.patch rename to patches/server/0720-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/0722-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0721-Forward-CraftEntity-in-teleport-command.patch similarity index 94% rename from patches/server/0722-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0721-Forward-CraftEntity-in-teleport-command.patch index 7cecf9756171..0133abe04edf 100644 --- a/patches/server/0722-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0721-Forward-CraftEntity-in-teleport-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4903c0ddff7a7fcfdadb62e92ff285b77bd8eacf..0d561537ab767e357c2e4385d0d87f8e3db022d8 100644 +index 519e3f0e376198fb399819f4587ccf935b93ea1a..4ffd551e6ea540cff14eaba0e95ed2c7c0bca513 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3531,6 +3531,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0723-Improve-scoreboard-entries.patch b/patches/server/0722-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0723-Improve-scoreboard-entries.patch rename to patches/server/0722-Improve-scoreboard-entries.patch diff --git a/patches/server/0724-Entity-powdered-snow-API.patch b/patches/server/0723-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0724-Entity-powdered-snow-API.patch rename to patches/server/0723-Entity-powdered-snow-API.patch diff --git a/patches/server/0725-Add-API-for-item-entity-health.patch b/patches/server/0724-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0725-Add-API-for-item-entity-health.patch rename to patches/server/0724-Add-API-for-item-entity-health.patch diff --git a/patches/server/0726-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0725-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 98% rename from patches/server/0726-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/0725-Fix-entity-type-tags-suggestions-in-selectors.patch index 2064d7103a71..225dce154f7c 100644 --- a/patches/server/0726-Fix-entity-type-tags-suggestions-in-selectors.patch +++ b/patches/server/0725-Fix-entity-type-tags-suggestions-in-selectors.patch @@ -10,7 +10,7 @@ when if this was fixed on the client, that wouldn't be needed. Mojira Issue: https://bugs.mojang.com/browse/MC-235045 diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index e58c2844356c71973d81b460a21aab795b506d77..20b2cbbc73f6420b6ace9746016527b90d9f01b9 100644 +index 79732086bc4cdbca8364d78eb60d68c758055966..82ca6267bca684a8f04ca37d40816686677a852a 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -447,4 +447,20 @@ public class CommandSourceStack implements ExecutionCommandSource -Date: Fri, 24 Sep 2021 17:59:21 +0200 -Subject: [PATCH] Added getHostname to AsyncPlayerPreLoginEvent - - -diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 856699cd8976bca49bb4f7cae424bad606166b9d..12dc053af430218fae9ec30d3e793e0323ca1137 100644 ---- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -299,7 +299,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, - - // Paper start - com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(gameprofile); -- AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile); // Paper - add rawAddress -+ AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile, ServerLoginPacketListenerImpl.this.connection.hostname); // Paper - add rawAddress & hostname - server.getPluginManager().callEvent(asyncEvent); - profile = asyncEvent.getPlayerProfile(); - profile.complete(true); // Paper - setPlayerProfileAPI diff --git a/patches/server/0743-Multi-Block-Change-API-Implementation.patch b/patches/server/0741-Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/server/0743-Multi-Block-Change-API-Implementation.patch rename to patches/server/0741-Multi-Block-Change-API-Implementation.patch diff --git a/patches/server/0744-Fix-NotePlayEvent.patch b/patches/server/0742-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0744-Fix-NotePlayEvent.patch rename to patches/server/0742-Fix-NotePlayEvent.patch diff --git a/patches/server/0745-Freeze-Tick-Lock-API.patch b/patches/server/0743-Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/server/0745-Freeze-Tick-Lock-API.patch rename to patches/server/0743-Freeze-Tick-Lock-API.patch diff --git a/patches/server/0746-Dolphin-API.patch b/patches/server/0744-Dolphin-API.patch similarity index 100% rename from patches/server/0746-Dolphin-API.patch rename to patches/server/0744-Dolphin-API.patch diff --git a/patches/server/0747-More-PotionEffectType-API.patch b/patches/server/0745-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0747-More-PotionEffectType-API.patch rename to patches/server/0745-More-PotionEffectType-API.patch diff --git a/patches/server/0748-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0746-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0748-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0746-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0749-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0747-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/server/0749-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0747-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/server/0750-Add-missing-structure-set-seed-configs.patch b/patches/server/0748-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/server/0750-Add-missing-structure-set-seed-configs.patch rename to patches/server/0748-Add-missing-structure-set-seed-configs.patch diff --git a/patches/server/0751-Implement-regenerateChunk.patch b/patches/server/0749-Implement-regenerateChunk.patch similarity index 98% rename from patches/server/0751-Implement-regenerateChunk.patch rename to patches/server/0749-Implement-regenerateChunk.patch index b4ba01ed7b96..18db0bc2db5b 100644 --- a/patches/server/0751-Implement-regenerateChunk.patch +++ b/patches/server/0749-Implement-regenerateChunk.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement regenerateChunk Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 83f51cbe9de3fdde19d02a564f873f51f697a828..e709b6fda1703c0787ddeedec9b7cc09f440d652 100644 +index 999602a6c11257b05083bcc2d36b6e30b2b129f4..d41cd3075a5f59f271ddee7009a3ed26a34d3041 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -144,6 +144,7 @@ import org.jetbrains.annotations.NotNull; diff --git a/patches/server/0752-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0750-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0752-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0750-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0753-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0751-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/server/0753-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0751-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0754-Add-GameEvent-tags.patch b/patches/server/0752-Add-GameEvent-tags.patch similarity index 100% rename from patches/server/0754-Add-GameEvent-tags.patch rename to patches/server/0752-Add-GameEvent-tags.patch diff --git a/patches/server/0755-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0753-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/server/0755-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0753-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/server/0756-Furnace-RecipesUsed-API.patch b/patches/server/0754-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/server/0756-Furnace-RecipesUsed-API.patch rename to patches/server/0754-Furnace-RecipesUsed-API.patch diff --git a/patches/server/0757-Configurable-sculk-sensor-listener-range.patch b/patches/server/0755-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/server/0757-Configurable-sculk-sensor-listener-range.patch rename to patches/server/0755-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/server/0758-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0756-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/server/0758-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0756-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0759-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0757-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 96% rename from patches/server/0759-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0757-Option-to-have-default-CustomSpawners-in-custom-worl.patch index b584e52ee200..e48a11568928 100644 --- a/patches/server/0759-Option-to-have-default-CustomSpawners-in-custom-worl.patch +++ b/patches/server/0757-Option-to-have-default-CustomSpawners-in-custom-worl.patch @@ -10,7 +10,7 @@ just looking at the LevelStem key, look at the DimensionType key which is one level below that. Defaults to off to keep vanilla behavior. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8f375cc054f6c15537eca4927ea5cb0eb6a93b67..abd20b1bbda4177a3f3be8abf3977866780a9b67 100644 +index 396cbd1a0a94e913475bad65faf8e871b7105895..67bda174adb74e6176e81f986382b3bbbfe6b95f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -623,7 +623,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { + try { -+ this.callPlayerPreLoginEvents(this.authenticatedProfile); ++ final GameProfile gameprofile = this.callPlayerPreLoginEvents(this.authenticatedProfile); ++ ServerLoginPacketListenerImpl.LOGGER.info("UUID of player {} is {}", gameprofile.getName(), gameprofile.getId()); ++ ServerLoginPacketListenerImpl.this.startClientVerification(gameprofile); + } catch (Exception ex) { + disconnect("Failed to verify username!"); + server.server.getLogger().log(java.util.logging.Level.WARNING, "Exception verifying " + this.authenticatedProfile.getName(), ex); diff --git a/patches/server/0830-Add-NamespacedKey-biome-methods.patch b/patches/server/0828-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0830-Add-NamespacedKey-biome-methods.patch rename to patches/server/0828-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0831-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0829-Fix-plugin-loggers-on-server-shutdown.patch similarity index 96% rename from patches/server/0831-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0829-Fix-plugin-loggers-on-server-shutdown.patch index ed3aa5f07b53..ba6d4a0a8dd8 100644 --- a/patches/server/0831-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0829-Fix-plugin-loggers-on-server-shutdown.patch @@ -37,7 +37,7 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5b39e4a6b39e73cfe5645d80cd823e582ade6bc2..a2961f1453e3805879941c709ab74a608285db42 100644 +index 002511a54565aab9eb4552fecdf974fe0eab9122..7c9f7aefc59ae1a785b261f80f25d3304f3bdd22 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1026,6 +1026,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7b6c3d1feeb390485e5ef5507e6dae3992155212..bdd2909b1ce8932509ab37ff1124a97171658d18 100644 +index 3f60f33c43dfcc4ea99a80c66a70222b2ea2f4a6..2fdc9fcc8f88d78fd4b06bfae947c5cb28f8eea7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2658,7 +2658,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0880-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0878-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0880-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0878-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0881-fix-Instruments.patch b/patches/server/0879-fix-Instruments.patch similarity index 100% rename from patches/server/0881-fix-Instruments.patch rename to patches/server/0879-fix-Instruments.patch diff --git a/patches/server/0882-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0880-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 97% rename from patches/server/0882-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0880-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch index e454a32d6d5f..b956dd543c08 100644 --- a/patches/server/0882-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch +++ b/patches/server/0880-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve inlining for some hot BlockBehavior and FluidState diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 84d7aeafafe1497d96dca2238b579007cbe27146..3ab8b99837b1d1faea722c598b0228b2780be8b1 100644 +index d91a82428a435a65bc55ad466ccebe91e0d905e0..17d2b90441d7513d7907b988610be8604ac05282 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -1078,15 +1078,15 @@ public abstract class BlockBehaviour implements FeatureElement { diff --git a/patches/server/0883-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0881-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0883-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0881-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0884-Add-BlockLockCheckEvent.patch b/patches/server/0882-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0884-Add-BlockLockCheckEvent.patch rename to patches/server/0882-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0885-Add-Sneaking-API-for-Entities.patch b/patches/server/0883-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/server/0885-Add-Sneaking-API-for-Entities.patch rename to patches/server/0883-Add-Sneaking-API-for-Entities.patch diff --git a/patches/server/0886-Improve-logging-and-errors.patch b/patches/server/0884-Improve-logging-and-errors.patch similarity index 98% rename from patches/server/0886-Improve-logging-and-errors.patch rename to patches/server/0884-Improve-logging-and-errors.patch index 7a98293c5267..aaf43d1ac7cc 100644 --- a/patches/server/0886-Improve-logging-and-errors.patch +++ b/patches/server/0884-Improve-logging-and-errors.patch @@ -40,7 +40,7 @@ index 536f0c496ce36ca3248fc6eeac9bbd77214a36f9..5e24c1e712eb16d0d5343760a65310bd while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bdd2909b1ce8932509ab37ff1124a97171658d18..623de7ab6d45f48db7637ecb46e07488c01d4dc6 100644 +index 2fdc9fcc8f88d78fd4b06bfae947c5cb28f8eea7..e602a3b5182e68e7cb20395169bb392d49a23e89 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3395,7 +3395,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0887-Improve-PortalEvents.patch b/patches/server/0885-Improve-PortalEvents.patch similarity index 93% rename from patches/server/0887-Improve-PortalEvents.patch rename to patches/server/0885-Improve-PortalEvents.patch index 26f33f7a454e..333ac5fa1125 100644 --- a/patches/server/0887-Improve-PortalEvents.patch +++ b/patches/server/0885-Improve-PortalEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bee8fe397c960c4f2ceba8777d0cc4e6e2bd060d..250a0ade29d4cf619d99a1c052e521e94482a213 100644 +index 5968a555ce7cc4681f5c096bda7d007005e2a8bf..04ca1f84c68a73addd2177256268bb9b444f72da 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3765,7 +3765,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0888-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0886-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0888-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0886-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0889-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0887-Add-missing-SpigotConfig-logCommands-check.patch similarity index 92% rename from patches/server/0889-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0887-Add-missing-SpigotConfig-logCommands-check.patch index 53541ae43125..855d97253750 100644 --- a/patches/server/0889-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0887-Add-missing-SpigotConfig-logCommands-check.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 623de7ab6d45f48db7637ecb46e07488c01d4dc6..23fe6877cadd780f4db99955fd993e1461a21040 100644 +index e602a3b5182e68e7cb20395169bb392d49a23e89..b9d6f38df243bbdd55639716cfaff24eb95aaa74 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2139,7 +2139,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0890-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0888-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0890-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0888-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0891-Flying-Fall-Damage.patch b/patches/server/0889-Flying-Fall-Damage.patch similarity index 100% rename from patches/server/0891-Flying-Fall-Damage.patch rename to patches/server/0889-Flying-Fall-Damage.patch diff --git a/patches/server/0892-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0890-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/server/0892-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0890-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/server/0893-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0891-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 100% rename from patches/server/0893-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0891-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch diff --git a/patches/server/0894-config-for-disabling-entity-tag-tags.patch b/patches/server/0892-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0894-config-for-disabling-entity-tag-tags.patch rename to patches/server/0892-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0895-Use-single-player-info-update-packet-on-join.patch b/patches/server/0893-Use-single-player-info-update-packet-on-join.patch similarity index 97% rename from patches/server/0895-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0893-Use-single-player-info-update-packet-on-join.patch index 890fc6471288..4b599b67237c 100644 --- a/patches/server/0895-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0893-Use-single-player-info-update-packet-on-join.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 23fe6877cadd780f4db99955fd993e1461a21040..00855a1e3519a43ab5b203cf0313b297baa254a0 100644 +index b9d6f38df243bbdd55639716cfaff24eb95aaa74..ab5b354b0fb42535e8d176a219876e23f08c1f3d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3425,7 +3425,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0896-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0894-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 100% rename from patches/server/0896-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0894-Correctly-shrink-items-during-EntityResurrectEvent.patch diff --git a/patches/server/0897-Win-Screen-API.patch b/patches/server/0895-Win-Screen-API.patch similarity index 100% rename from patches/server/0897-Win-Screen-API.patch rename to patches/server/0895-Win-Screen-API.patch diff --git a/patches/server/0898-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0896-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 93% rename from patches/server/0898-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0896-Remove-CraftItemStack-setAmount-null-assignment.patch index 2cc8370e152e..4dff637cb9c2 100644 --- a/patches/server/0898-Remove-CraftItemStack-setAmount-null-assignment.patch +++ b/patches/server/0896-Remove-CraftItemStack-setAmount-null-assignment.patch @@ -16,7 +16,7 @@ with less than zero amounts, so this code doesn't create a problem with operations on the vanilla ItemStack. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 8c06ff72bcc7cce2c853bf999bda8afc10e53ca6..7081aebf67cc3d8deb27dfc508970f0fa5e9d1b6 100644 +index a4d522a19f1a1288baa2688d5beb62c91a5fb3a3..749bf6a897b053197988112551192abe6af2f186 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -157,7 +157,7 @@ public final class CraftItemStack extends ItemStack { diff --git a/patches/server/0899-Fix-force-opening-enchantment-tables.patch b/patches/server/0897-Fix-force-opening-enchantment-tables.patch similarity index 94% rename from patches/server/0899-Fix-force-opening-enchantment-tables.patch rename to patches/server/0897-Fix-force-opening-enchantment-tables.patch index b258d6375104..7137782d6f9f 100644 --- a/patches/server/0899-Fix-force-opening-enchantment-tables.patch +++ b/patches/server/0897-Fix-force-opening-enchantment-tables.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix force-opening enchantment tables diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 7ce6d05b99cce1672ce397b5ce64d266f68a8cae..4e2e16a7c40f69ff79979a7b580364224c64585f 100644 +index 267863ff81a95d686b8db6cfee9256a2c5ad3f68..5e5fda690605f767b33f8225bffea98d23299fea 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -402,7 +402,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0900-Add-Entity-Body-Yaw-API.patch b/patches/server/0898-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0900-Add-Entity-Body-Yaw-API.patch rename to patches/server/0898-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0901-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0899-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0901-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0899-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0902-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0900-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 90% rename from patches/server/0902-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0900-Update-the-flag-when-a-captured-block-state-is-outda.patch index 17e4b0c33197..82ed0eb32566 100644 --- a/patches/server/0902-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0900-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e6c49b780b802fce13451e71be0b36160fabbef7..9f08ab23b9c0c24c4b6131b110dfc7d4a9cdd1b2 100644 +index 28ed2605bc3f4d657f6f58729134aeb81a98dac4..c7eb97008b8096f69602678722506fddbeac3148 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -923,6 +923,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0903-Add-EntityFertilizeEggEvent.patch b/patches/server/0901-Add-EntityFertilizeEggEvent.patch similarity index 98% rename from patches/server/0903-Add-EntityFertilizeEggEvent.patch rename to patches/server/0901-Add-EntityFertilizeEggEvent.patch index 28c9a823c09d..e24d72836134 100644 --- a/patches/server/0903-Add-EntityFertilizeEggEvent.patch +++ b/patches/server/0901-Add-EntityFertilizeEggEvent.patch @@ -69,7 +69,7 @@ index 36b3945832733b5ad66d25aa3a31335234d2acff..47a5125e44cea1ece84657cdb874807f this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F); } // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index a6ccc177a3435d807dd6be3bdfca7f016c094158..9ad9f18b62c8c7d2b4f53bf795817e4fcce3c4cc 100644 +index ef7d6f898c2c94d0697e38230564e110948b0460..dfab64b21eedfbdd129c881b7c862ad962c78f3d 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -2092,4 +2092,29 @@ public class CraftEventFactory { diff --git a/patches/server/0904-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0902-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 94% rename from patches/server/0904-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0902-Fix-HumanEntity-drop-not-updating-the-client-inv.patch index 9e8f8139fb07..e8652816d710 100644 --- a/patches/server/0904-Fix-HumanEntity-drop-not-updating-the-client-inv.patch +++ b/patches/server/0902-Fix-HumanEntity-drop-not-updating-the-client-inv.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix HumanEntity#drop not updating the client inv public net.minecraft.server.level.ServerPlayer containerSynchronizer diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 4e2e16a7c40f69ff79979a7b580364224c64585f..e0ab2124b339d0053a1d075204ca1070be572e75 100644 +index 5e5fda690605f767b33f8225bffea98d23299fea..52c9244194f3c0182f3a6010ed97d4238efd4eb4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -755,8 +755,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0905-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0903-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0905-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0903-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0906-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0904-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0906-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0904-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0907-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0905-Fix-advancement-triggers-for-entity-damage.patch similarity index 100% rename from patches/server/0907-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0905-Fix-advancement-triggers-for-entity-damage.patch diff --git a/patches/server/0908-Fix-text-display-error-on-spawn.patch b/patches/server/0906-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0908-Fix-text-display-error-on-spawn.patch rename to patches/server/0906-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0909-Fix-certain-inventories-returning-null-Locations.patch b/patches/server/0907-Fix-certain-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0909-Fix-certain-inventories-returning-null-Locations.patch rename to patches/server/0907-Fix-certain-inventories-returning-null-Locations.patch diff --git a/patches/server/0910-Add-Shearable-API.patch b/patches/server/0908-Add-Shearable-API.patch similarity index 100% rename from patches/server/0910-Add-Shearable-API.patch rename to patches/server/0908-Add-Shearable-API.patch diff --git a/patches/server/0911-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0909-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0911-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0909-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0912-Optimize-Hoppers.patch b/patches/server/0910-Optimize-Hoppers.patch similarity index 100% rename from patches/server/0912-Optimize-Hoppers.patch rename to patches/server/0910-Optimize-Hoppers.patch diff --git a/patches/server/0913-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0911-Fix-beehives-generating-from-using-bonemeal.patch similarity index 100% rename from patches/server/0913-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0911-Fix-beehives-generating-from-using-bonemeal.patch diff --git a/patches/server/0914-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0912-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0914-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0912-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0915-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0913-Treat-sequence-violations-like-they-should-be.patch similarity index 91% rename from patches/server/0915-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0913-Treat-sequence-violations-like-they-should-be.patch index 9eb3ebf47018..f08f796d75f4 100644 --- a/patches/server/0915-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0913-Treat-sequence-violations-like-they-should-be.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 00855a1e3519a43ab5b203cf0313b297baa254a0..6f1602e5e077b9dd401a1ca80aef445b257801fd 100644 +index ab5b354b0fb42535e8d176a219876e23f08c1f3d..e0bdb0ef35494b376960613bd6e319d179676bf3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2043,6 +2043,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0916-remove-duplicate-animate-packet-for-records.patch b/patches/server/0914-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0916-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0914-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0917-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0915-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 97% rename from patches/server/0917-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0915-Prevent-causing-expired-keys-from-impacting-new-join.patch index 2df3ae662608..66b0be1bb3db 100644 --- a/patches/server/0917-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0915-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -24,7 +24,7 @@ index 0e54e8faa48751a651b953bec72543a94edf74bc..aa1c6de4d6cb7bbca33d25895c54707d UPDATE_GAME_MODE((serialized, buf) -> { serialized.gameMode = GameType.byId(buf.readVarInt()); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6f1602e5e077b9dd401a1ca80aef445b257801fd..70adc48f7126425b43a667c4d82d511f92909807 100644 +index e0bdb0ef35494b376960613bd6e319d179676bf3..361d31a4a527c32ff3b8cd2e763e23963ec0a2b4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -287,6 +287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0918-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0916-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 90% rename from patches/server/0918-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0916-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index 7907f1339e50..c98ffaa074e3 100644 --- a/patches/server/0918-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0916-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 93bd05adb8dcc1dae81b820e262bc1fb43430981..abef96d4c0ee22d05fc8b462811189128900fb8d 100644 +index 4e8e1f4562b3edb7041e299b6719e965df975636..a7f2e8755af41abc66070f1971e526b4f05bc710 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1724,6 +1724,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0919-Use-array-for-gamerule-storage.patch b/patches/server/0917-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0919-Use-array-for-gamerule-storage.patch rename to patches/server/0917-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0920-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0918-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0920-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0918-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0921-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0919-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 91% rename from patches/server/0921-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0919-Fix-demo-flag-not-enabling-demo-mode.patch index 7810e020e835..01bdc03d01d8 100644 --- a/patches/server/0921-Fix-demo-flag-not-enabling-demo-mode.patch +++ b/patches/server/0919-Fix-demo-flag-not-enabling-demo-mode.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix demo flag not enabling demo mode https://github.com/PaperMC/Paper/issues/9046 diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 4a451d6d5b11f10db9c583823c4d742f4a69970c..7573c12a77797146c51ef2dfe4b2a636df45e21a 100644 +index 786104fb12f02f493619dfc0d81ab98140d70912..2568272a10c0d92bc49c0c244b10791db7bfae2b 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -333,7 +333,9 @@ public class Main { diff --git a/patches/server/0922-Add-Mob-Experience-reward-API.patch b/patches/server/0920-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0922-Add-Mob-Experience-reward-API.patch rename to patches/server/0920-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0923-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0921-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0923-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0921-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0924-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0922-Fix-DamageCause-for-Falling-Blocks.patch similarity index 92% rename from patches/server/0924-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0922-Fix-DamageCause-for-Falling-Blocks.patch index cbe24321bd92..e1935baf2e0a 100644 --- a/patches/server/0924-Fix-DamageCause-for-Falling-Blocks.patch +++ b/patches/server/0922-Fix-DamageCause-for-Falling-Blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9ad9f18b62c8c7d2b4f53bf795817e4fcce3c4cc..7bd1147362d057a16cdac0893615483479233c66 100644 +index dfab64b21eedfbdd129c881b7c862ad962c78f3d..454365ea4795ac6c0e30530f795cbdb511908440 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1085,6 +1085,11 @@ public class CraftEventFactory { diff --git a/patches/server/0925-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0923-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0925-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0923-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0926-More-accurate-isInOpenWater-impl.patch b/patches/server/0924-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0926-More-accurate-isInOpenWater-impl.patch rename to patches/server/0924-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0927-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0925-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0927-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0925-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0928-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0926-Optimise-recalcBlockCounts-for-empty-sections.patch similarity index 100% rename from patches/server/0928-Optimise-recalcBlockCounts-for-empty-sections.patch rename to patches/server/0926-Optimise-recalcBlockCounts-for-empty-sections.patch diff --git a/patches/server/0929-Expand-PlayerItemMendEvent.patch b/patches/server/0927-Expand-PlayerItemMendEvent.patch similarity index 98% rename from patches/server/0929-Expand-PlayerItemMendEvent.patch rename to patches/server/0927-Expand-PlayerItemMendEvent.patch index b0c81d037f5b..0ad40b41ebe4 100644 --- a/patches/server/0929-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0927-Expand-PlayerItemMendEvent.patch @@ -51,7 +51,7 @@ index b1d12c30dd23e092531c0d4d3af367262ccb5402..809932208bdf8e01d7bc73f885c44497 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 7bd1147362d057a16cdac0893615483479233c66..d55e1611028a836a34dd85f08c4463f1ec15662e 100644 +index 454365ea4795ac6c0e30530f795cbdb511908440..a6897c9a46d9cef083d5424c5b4a2ed0a32dfe3b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1321,10 +1321,10 @@ public class CraftEventFactory { diff --git a/patches/server/0930-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0928-Refresh-ProjectileSource-for-projectiles.patch similarity index 100% rename from patches/server/0930-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0928-Refresh-ProjectileSource-for-projectiles.patch diff --git a/patches/server/0931-Add-transient-modifier-API.patch b/patches/server/0929-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0931-Add-transient-modifier-API.patch rename to patches/server/0929-Add-transient-modifier-API.patch diff --git a/patches/server/0932-Fix-block-place-logic.patch b/patches/server/0930-Fix-block-place-logic.patch similarity index 97% rename from patches/server/0932-Fix-block-place-logic.patch rename to patches/server/0930-Fix-block-place-logic.patch index 54373872257b..0f786528da1e 100644 --- a/patches/server/0932-Fix-block-place-logic.patch +++ b/patches/server/0930-Fix-block-place-logic.patch @@ -41,7 +41,7 @@ index 3f420bbe8c2b9128a051030c4acd3603ea487132..453f48b540560a340721d762ca80eadf } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9f08ab23b9c0c24c4b6131b110dfc7d4a9cdd1b2..3a6615df0e9e0043cebe35268509b882893725fb 100644 +index c7eb97008b8096f69602678722506fddbeac3148..7a4c21beaa4004f72cbfe75e567cafb3279a1c94 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1038,17 +1038,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0933-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0931-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0933-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0931-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0934-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0932-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0934-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0932-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0935-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0933-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 94% rename from patches/server/0935-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0933-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index 26067bee3dd7..0fec15f9b78d 100644 --- a/patches/server/0935-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0933-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2836eb1edefc46556d71a23ddbb50cb495b44021..036d1d133dbe39194ba8bc5201bdae1a3bdae56c 100644 +index 0b4639e56b87319e78c1b46fb581d8bb74ead2e4..4310134fe9cb74cb11591d52562bc35039130d19 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -352,7 +352,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0936-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0934-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0936-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0934-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0937-Fix-sniffer-removeExploredLocation.patch b/patches/server/0935-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0937-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0935-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0938-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0936-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0938-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0936-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0939-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0937-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch similarity index 100% rename from patches/server/0939-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename to patches/server/0937-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch diff --git a/patches/server/0940-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0938-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0940-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0938-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0941-Properly-Cancel-Usable-Items.patch b/patches/server/0939-Properly-Cancel-Usable-Items.patch similarity index 97% rename from patches/server/0941-Properly-Cancel-Usable-Items.patch rename to patches/server/0939-Properly-Cancel-Usable-Items.patch index 2055eb8ac71b..4122f9b89f5a 100644 --- a/patches/server/0941-Properly-Cancel-Usable-Items.patch +++ b/patches/server/0939-Properly-Cancel-Usable-Items.patch @@ -34,7 +34,7 @@ index f58386e952d29a16d160b628a23efbe102791277..82f26186156a487f29ad3abff3f68852 return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 70adc48f7126425b43a667c4d82d511f92909807..9fc1ed35896563ba5fd3e19512db6a2bc79fd0ad 100644 +index 361d31a4a527c32ff3b8cd2e763e23963ec0a2b4..ab2fcbdd9567e18a59eb70b3557da7a3f4a91f38 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1955,6 +1955,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0942-Add-event-for-player-editing-sign.patch b/patches/server/0940-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0942-Add-event-for-player-editing-sign.patch rename to patches/server/0940-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0943-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0941-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0943-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0941-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0944-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0942-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 97% rename from patches/server/0944-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0942-Fix-cmd-permission-levels-for-command-blocks.patch index ac6fec89810f..7f1a3972333c 100644 --- a/patches/server/0944-Fix-cmd-permission-levels-for-command-blocks.patch +++ b/patches/server/0942-Fix-cmd-permission-levels-for-command-blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix cmd permission levels for command blocks diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 20b2cbbc73f6420b6ace9746016527b90d9f01b9..37ba8fd69a0099f80bdf7c28b593241f1f5d681f 100644 +index 82ca6267bca684a8f04ca37d40816686677a852a..4e81a823c49807d9978aeaef8293baaa67194c4d 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -204,10 +204,29 @@ public class CommandSourceStack implements ExecutionCommandSource Date: Sun, 14 Jan 2024 13:51:41 +0100 Subject: [PATCH 12/45] Readd missed line --- patches/server/0180-Player.setPlayerProfile-API.patch | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/patches/server/0180-Player.setPlayerProfile-API.patch b/patches/server/0180-Player.setPlayerProfile-API.patch index cce5e09728ea..932856ea66a2 100644 --- a/patches/server/0180-Player.setPlayerProfile-API.patch +++ b/patches/server/0180-Player.setPlayerProfile-API.patch @@ -22,10 +22,15 @@ index 9c0440a6e3768ca6300e128da7f1b11a96f10f91..c1c9076be05cd4b0b19d16aabbf0320c if (Float.isNaN(f)) { f = 0; diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 58d97fce07ad8f786940c3f5e74e9aaeabe8d261..fd2a8959e9a929ae7ea17dcb554591a6e2b1ac92 100644 +index 58d97fce07ad8f786940c3f5e74e9aaeabe8d261..dd4e97ff4c8fb2d2f251713271f5ac493574fcd9 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -299,7 +299,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -295,11 +295,11 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + + // Paper start - Add more fields to AsyncPlayerPreLoginEvent + final java.net.InetAddress rawAddress = ((java.net.InetSocketAddress) this.connection.channel.remoteAddress()).getAddress(); +- com.destroystokyo.paper.profile.PlayerProfile profile = org.bukkit.Bukkit.createProfile(uniqueId, playerName); ++ com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(gameprofile); // Paper - setPlayerProfileAPI AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile, this.connection.hostname); server.getPluginManager().callEvent(asyncEvent); profile = asyncEvent.getPlayerProfile(); From f9fdedf2d7d855943c7e5db632ae43d136d2bcdd Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 14 Jan 2024 16:31:39 +0100 Subject: [PATCH 13/45] [ci skip] Add more patch identifying comments, merge related patches --- ...dd-more-fields-to-AsyncPreLoginEvent.patch | 2 + ...setting-for-proxy-online-mode-status.patch | 31 ++- .../0365-Improved-Watchdog-Support.patch | 4 +- ...-Remove-some-streams-from-structures.patch | 48 ---- .../0421-Remove-streams-from-hot-code.patch | 244 ++++++++++++++++++ ...from-classes-related-villager-gossip.patch | 72 ------ ...0422-Support-components-in-ItemMeta.patch} | 0 ...e-fix-EntityTargetLivingEntityEvent.patch} | 0 ...patch => 0424-Add-entity-liquid-API.patch} | 2 +- ...date-itemstack-legacy-name-and-lore.patch} | 0 ...atch => 0426-Add-PrepareResultEvent.patch} | 2 +- ...-for-portal-on-world-gen-entity-add.patch} | 2 +- ...x-arrows-never-despawning-MC-125757.patch} | 0 ...Vanilla-Command-permission-checking.patch} | 0 ...-5989.patch => 0430-Fix-SPIGOT-5989.patch} | 2 +- ...-Bukkit-world-container-is-not-used.patch} | 0 ...5885-Unable-to-disable-advancements.patch} | 2 +- ...taPlayer-leak-due-from-quitting-ear.patch} | 0 ...e-NetworkManager-Exception-Handling.patch} | 0 ...ix-some-rails-connecting-improperly.patch} | 0 ...stake-in-CB-NBT-int-deserialization.patch} | 0 ...support.patch => 0437-Brand-support.patch} | 4 +- ...PickupItemAnimation-to-LivingEntity.patch} | 0 ...h => 0439-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 4 +- ...PI.patch => 0441-Add-moon-phase-API.patch} | 2 +- ...rver-load-chunks-from-newer-version.patch} | 0 ...headless-pistons-from-being-created.patch} | 0 ...ent.patch => 0444-Add-BellRingEvent.patch} | 2 +- ...dd-zombie-targets-turtle-egg-config.patch} | 0 ...patch => 0446-Buffer-joins-to-world.patch} | 0 ...-Eigencraft-redstone-implementation.patch} | 0 ...s-not-working-in-some-kick-messages.patch} | 2 +- ...reateEvent-needs-to-know-its-entity.patch} | 4 +- ...I.patch => 0450-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 2 +- ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0453-Cache-block-data-strings.patch} | 0 ...rtation-and-cancel-velocity-if-tele.patch} | 0 ...l-open-container-api-to-HumanEntity.patch} | 2 +- ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 2 +- ...-Counter-to-allow-plugins-to-use-va.patch} | 2 +- ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0460-Entity-isTicking.patch} | 4 +- ...non-whitelisted-player-when-white-l.patch} | 0 ...-Concurrency-issue-in-ShufflingList.patch} | 2 +- ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 0 ...-large-move-vectors-crashing-server.patch} | 2 +- ...atch => 0465-Optimise-getType-calls.patch} | 0 ....patch => 0466-Villager-resetOffers.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 2 +- ...lockpos-allocation-from-pathfinding.patch} | 0 ...em-locations-dropped-from-campfires.patch} | 0 ...70-Fixed-TileEntityBell-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 2 +- ...ch => 0473-Add-ignore-discounts-API.patch} | 0 ...Toggle-for-removing-existing-dragon.patch} | 0 ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0476-Item-no-age-no-player-pickup.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 1 - ...478-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0479-Add-API-for-quit-reason.patch} | 6 +- ...ng-Trader-spawn-rate-config-options.patch} | 0 ...ch => 0481-Expose-world-spawn-angle.patch} | 2 +- ...patch => 0482-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 2 +- ...84-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0485-Add-PlayerItemCooldownEvent.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...PI.patch => 0487-More-lightning-API.patch} | 2 +- ...should-not-bypass-cramming-gamerule.patch} | 0 ...-missing-default-perms-for-commands.patch} | 0 ...h => 0490-Add-PlayerShearBlockEvent.patch} | 0 ....patch => 0491-Limit-recipe-packets.patch} | 2 +- ...-CraftSound-backwards-compatibility.patch} | 0 ...493-Player-Chunk-Load-Unload-Events.patch} | 0 ...4-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 2 +- ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 2 +- ...-invalid-ingredient-lists-in-Villag.patch} | 0 ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 0 ...ch => 0499-Implement-TargetHitEvent.patch} | 0 ... 0500-MC-4-Fix-item-position-desync.patch} | 2 +- ...501-Additional-Block-Material-API-s.patch} | 0 ...tch => 0502-Fix-harming-potion-dupe.patch} | 0 ...get-Material-from-Boats-and-Minecar.patch} | 0 ....patch => 0504-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 0 ...ment-PlayerFlowerPotManipulateEvent.patch} | 0 ...ct-event-not-being-called-sometimes.patch} | 2 +- ...h => 0509-Zombie-API-breaking-doors.patch} | 0 ...510-Fix-nerfed-slime-when-splitting.patch} | 0 ...=> 0511-Add-EntityLoadCrossbowEvent.patch} | 0 ...0512-Added-WorldGameRuleChangeEvent.patch} | 2 +- ...-Added-ServerResourcesReloadedEvent.patch} | 0 ...d-settings-for-mobs-picking-up-loot.patch} | 0 ...mplemented-BlockFailedDispenseEvent.patch} | 2 +- ...-Added-PlayerLecternPageChangeEvent.patch} | 0 ...-Added-PlayerLoomPatternSelectEvent.patch} | 0 ...nfigurable-door-breaking-difficulty.patch} | 0 ...ty-commands-shall-not-be-dispatched.patch} | 2 +- ...OIs.patch => 0520-Remove-stale-POIs.patch} | 2 +- ...h => 0521-Fix-villager-boat-exploit.patch} | 2 +- ...I.patch => 0522-Add-sendOpLevel-API.patch} | 2 +- ...0523-TODO-Registry-Modification-API.patch} | 0 ...h => 0524-Add-StructuresLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 0 ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 0 ...528-Make-schedule-command-per-world.patch} | 0 ...529-Configurable-max-leash-distance.patch} | 0 ...530-Implement-BlockPreDispenseEvent.patch} | 2 +- ...ng-of-PlayerChangeBeaconEffectEvent.patch} | 0 ...e-for-always-placing-the-dragon-egg.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...eash-variable-to-EntityUnleashEvent.patch} | 2 +- ...shield-blocking-on-dimension-change.patch} | 2 +- ...atch => 0536-add-DragonEggFormEvent.patch} | 0 ...Event.patch => 0537-EntityMoveEvent.patch} | 0 ...isable-pathfinding-updates-on-block.patch} | 2 +- ... 0539-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 2 +- ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ...atch => 0545-Expose-Tracked-Players.patch} | 2 +- ...GUI.patch => 0546-Improve-ServerGUI.patch} | 0 ...47-Remove-streams-from-SensorNearest.patch | 88 ------- ...547-fix-converting-txt-to-json-file.patch} | 2 +- ...atch => 0548-Add-worldborder-events.patch} | 0 ...=> 0549-added-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 0 ...h => 0551-Add-recipe-to-cook-events.patch} | 0 ...patch => 0552-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 2 +- ....patch => 0554-Expand-world-key-API.patch} | 4 +- ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0556-Item-Rarity-API.patch} | 0 ...d-item-when-player-has-disconnected.patch} | 2 +- ...elist-use-configurable-kick-message.patch} | 0 ...gnore-result-of-PlayerEditBookEvent.patch} | 2 +- ...tch => 0560-Expose-protocol-version.patch} | 0 ...ab-completions-for-brigadier-comman.patch} | 2 +- ...temConsumeEvent-cancelling-properly.patch} | 2 +- ...patch => 0563-Add-bypass-host-check.patch} | 0 ...0564-Set-area-affect-cloud-rotation.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 2 +- ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 2 +- ... => 0570-Added-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0571-More-World-API.patch} | 0 ... 0572-Added-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 2 +- ...n-acting-as-a-bed-respawn-from-the-.patch} | 2 +- ...acon-activation-deactivation-events.patch} | 0 ...-RespawnFlags-to-PlayerRespawnEvent.patch} | 2 +- ...dd-Channel-initialization-listeners.patch} | 0 ...mands-if-tab-completion-is-disabled.patch} | 2 +- ...> 0579-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...81-Entity-load-save-limit-per-chunk.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...close.patch => 0583-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0585-Add-basic-Datapack-API.patch} | 2 +- ...ment-variable-to-disable-server-gui.patch} | 0 ...itions-to-PlayerGameModeChangeEvent.patch} | 0 ... => 0588-ItemStack-repair-check-API.patch} | 0 ....patch => 0589-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 2 +- ...PI.patch => 0592-Add-Mob-lookAt-API.patch} | 0 ...0593-Add-Unix-domain-socket-support.patch} | 2 +- ... => 0594-Add-EntityInsideBlockEvent.patch} | 0 ...95-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0597-More-Lidded-Block-API.patch} | 0 ...98-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0599-Add-PlayerKickEvent-causes.patch} | 0 ...0600-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0604-Add-BellRevealRaiderEvent.patch} | 0 ... 0605-Fix-invulnerable-end-crystals.patch} | 0 ...06-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0607-Fix-dangerous-end-portal-logic.patch} | 0 ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...patch => 0610-Line-Of-Sight-Changes.patch} | 0 ... => 0611-add-per-world-spawn-limits.patch} | 0 ...h => 0612-Fix-potions-splash-events.patch} | 0 ... => 0613-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 0 ...PI.patch => 0615-Missing-Entity-API.patch} | 0 ...ect-for-book-edit-is-called-on-main.patch} | 0 ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 0 ...rom-signs-not-firing-command-events.patch} | 0 ...ch => 0620-Adds-PlayerArmSwingEvent.patch} | 0 ...-event-leave-message-not-being-sent.patch} | 0 ...-for-mobs-immune-to-default-effects.patch} | 0 ...-t-apply-cramming-damage-to-players.patch} | 0 ...d-timings-for-sensors-and-behaviors.patch} | 0 ...-bunch-of-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0626-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0628-Add-System.out-err-catcher.patch} | 2 +- ...-to-contain-the-source-jars-in-stac.patch} | 0 ...-Improve-boat-collision-performance.patch} | 0 ...AFK-kick-while-watching-end-credits.patch} | 0 ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0633-Add-PlayerSetSpawnEvent.patch} | 0 ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...=> 0637-Added-EntityDamageItemEvent.patch} | 0 ...timize-indirect-passenger-iteration.patch} | 0 ...em-frame-map-cursor-update-interval.patch} | 0 ...Make-EntityUnleashEvent-cancellable.patch} | 0 ...641-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0643-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0645-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0647-Add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 0 ... 0649-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0650-Left-handed-API.patch} | 0 ...ch => 0651-Add-more-advancement-API.patch} | 0 ...652-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0653-Add-critical-damage-API.patch} | 0 ...0654-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0656-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...8-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...59-Vanilla-command-permission-fixes.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 0 ...61-Fix-GameProfileCache-concurrency.patch} | 2 +- ...662-Improve-and-expand-AsyncCatcher.patch} | 0 ...per-mobcaps-and-paper-playermobcaps.patch} | 2 +- ...tize-ResourceLocation-error-logging.patch} | 0 ...=> 0665-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 0 ...our-chunk-data-off-disk-when-conver.patch} | 0 ...-lookup-fluid-state-when-raytracing.patch} | 0 ...atch => 0672-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...4-Do-not-run-raytrace-logic-for-AIR.patch} | 0 ...> 0675-Execute-chunk-tasks-mid-tick.patch} | 0 ...rimise-map-impl-for-tracked-players.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ... 0678-Optimise-random-block-ticking.patch} | 0 ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 2 +- ...-more-information-in-watchdog-dumps.patch} | 0 ...hread-worker-count-for-low-core-cou.patch} | 0 ... 0683-Distance-manager-tick-timings.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 0 ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 0 ...h => 0687-Add-packet-limiter-config.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0689-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0694-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 0 ...unintended-light-block-manipulation.patch} | 0 ...0697-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0699-Configurable-feature-seeds.patch} | 0 ... 0700-Add-root-admin-user-detection.patch} | 2 +- ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 0 ...ive-velocity-through-repeated-crits.patch} | 0 ...e-code-using-deprecated-for-removal.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 0 ...e-unnecessary-itemmeta-from-clients.patch} | 0 ...=> 0708-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0710-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0711-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 2 +- ...tch => 0713-Collision-optimisations.patch} | 0 ...n-checking-in-player-move-packet-ha.patch} | 0 ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0716-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...18-Fix-tripwire-state-inconsistency.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 0 ... => 0720-Improve-scoreboard-entries.patch} | 0 ...ch => 0721-Entity-powdered-snow-API.patch} | 0 ...0722-Add-API-for-item-entity-health.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0728-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0729-Bucketable-API.patch} | 0 ...es.patch => 0730-Validate-usernames.patch} | 2 +- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 2 +- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...5-Multiple-Entries-with-Scoreboards.patch} | 0 ...736-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0738-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0740-Fix-NotePlayEvent.patch} | 0 ....patch => 0741-Freeze-Tick-Lock-API.patch} | 0 ...lphin-API.patch => 0742-Dolphin-API.patch} | 0 ...h => 0743-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 2 +- ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0747-Implement-regenerateChunk.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 2 +- ...gs.patch => 0750-Add-GameEvent-tags.patch} | 2 +- ...ks-fairly-for-worlds-while-waiting-.patch} | 0 ...tch => 0752-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 0 ...-worldlist-before-initing-the-world.patch} | 2 +- ... => 0757-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0758-Custom-Potion-Mixes.patch} | 2 +- ...59-Force-close-world-loading-screen.patch} | 0 ...760-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0763-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0766-Implement-getComputedBiome-API.patch} | 0 ...> 0767-Make-some-itemstacks-nonnull.patch} | 0 ...768-Implement-enchantWithLevels-API.patch} | 0 ...h => 0769-Fix-saving-in-unloadWorld.patch} | 2 +- ...h => 0770-Buffer-OOB-setBlock-calls.patch} | 0 ... 0771-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 0 ...rd-against-invalid-entity-positions.patch} | 0 ...s.patch => 0776-cache-resource-keys.patch} | 0 ...ange-the-podium-for-the-EnderDragon.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 0 ...-ServerLevel-for-gamerule-callbacks.patch} | 2 +- ...ing-amount-to-PlayerItemDamageEvent.patch} | 0 ...> 0784-WorldCreator-keepSpawnLoaded.patch} | 2 +- ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0790-Add-PlayerStopUsingItemEvent.patch} | 0 ...rs.patch => 0791-Don-t-tick-markers.patch} | 0 ...tch => 0792-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 0 ...0794-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0797-Sanitize-Sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 0 ...-on-world-create-while-being-ticked.patch} | 2 +- ...ate-Current-redstone-implementation.patch} | 0 ...02-Dont-resent-entity-on-art-update.patch} | 0 ... => 0803-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0806-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 2 +- ...pty-items-from-being-added-to-world.patch} | 0 ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0810-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 0 ...PE.patch => 0813-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 0 ...API.patch => 0815-More-Teleport-API.patch} | 0 ... => 0816-Add-EntityPortalReadyEvent.patch} | 0 ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 0 ...on-plugins-accessing-faraway-chunks.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0822-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0824-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 6 +- ...826-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 0 ...ok-changes-from-crashing-the-server.patch} | 0 ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0830-Missing-eating-regain-reason.patch} | 0 ....patch => 0831-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...4-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0835-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0837-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0839-Add-getDrops-to-BlockState.patch} | 0 ...=> 0840-Fix-a-bunch-of-vanilla-bugs.patch} | 0 ...y-onTrackingStart-during-navigation.patch} | 0 ... 0842-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0843-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0846-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0848-Add-entity-knockback-API.patch} | 0 ....patch => 0849-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...1-optimized-dirt-and-snow-spreading.patch} | 0 ... => 0852-Added-EntityToggleSitEvent.patch} | 0 ... => 0853-Add-fire-tick-delay-option.patch} | 0 ...patch => 0854-Add-Moving-Piston-API.patch} | 0 ...> 0855-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 0 ...Prevent-compass-from-loading-chunks.patch} | 0 ...0860-Add-PrePlayerAttackEntityEvent.patch} | 0 ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 0 ... 0863-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...865-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 0 ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0868-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0869-Friction-API.patch} | 0 ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0871-Fix-player-kick-on-shutdown.patch} | 0 ... => 0872-Sync-offhand-slot-in-menus.patch} | 0 ... 0873-Player-Entity-Tracking-Events.patch} | 0 ...tch => 0874-Limit-pet-look-distance.patch} | 0 ...ch => 0875-Properly-resend-entities.patch} | 0 ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0877-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 0 ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0880-Add-BlockLockCheckEvent.patch} | 0 ... 0881-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0882-Improve-logging-and-errors.patch} | 0 ....patch => 0883-Improve-PortalEvents.patch} | 0 ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 0 ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0887-Flying-Fall-Damage.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...ion-moving-velocity-to-VehicleBlock.patch} | 0 ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 0 ...k-items-during-EntityResurrectEvent.patch} | 0 ...en-API.patch => 0893-Win-Screen-API.patch} | 0 ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0896-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 0 ...=> 0899-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 0 ...904-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0906-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...pers.patch => 0908-Optimize-Hoppers.patch} | 0 ...ives-generating-from-using-bonemeal.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 0 ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 0 ...0915-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0918-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...22-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ...ecalcBlockCounts-for-empty-sections.patch} | 0 ... => 0925-Expand-PlayerItemMendEvent.patch} | 0 ...sh-ProjectileSource-for-projectiles.patch} | 0 ... => 0927-Add-transient-modifier-API.patch} | 0 ...patch => 0928-Fix-block-place-logic.patch} | 0 ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 2 +- ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...yerChunkLoaderData-in-order-to-prep.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0937-Properly-Cancel-Usable-Items.patch} | 0 ...8-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 0 ...942-Call-missing-BlockDispenseEvent.patch} | 0 ...-chunks-for-supporting-block-checks.patch} | 0 ...Optimize-player-lookups-for-beacons.patch} | 0 ...945-Add-Sign-getInteractableSideFor.patch} | 0 ...46-Array-backed-synched-entity-data.patch} | 0 ...7-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0948-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 8 +- ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 6 +- ...t-throw-both-Spread-and-Grow-Events.patch} | 4 +- ....patch => 0954-Add-whitelist-events.patch} | 4 +- ... 0955-Implement-PlayerFailMoveEvent.patch} | 12 +- ...olia-scheduler-and-owned-region-API.patch} | 2 +- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 32 +-- ...tion-when-spawning-display-entities.patch} | 0 ...960-Only-capture-actual-tree-growth.patch} | 0 ...rce-for-mushroom-block-spread-event.patch} | 6 +- ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 2 +- ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0965-Cache-map-ids-on-item-frames.patch} | 10 +- ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0967-Bandaid-fix-for-Effect.patch} | 0 ...tch => 0968-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 6 +- ...lace-methods-with-old-StructureType.patch} | 2 +- ...e-namespaced-commands-if-send-names.patch} | 4 +- ...-handle-BlockBreakEvent-isDropItems.patch} | 40 +-- ...entity-death-event-for-ender-dragon.patch} | 6 +- ...tity-tracking-range-by-Y-coordinate.patch} | 6 +- ... => 0976-Add-Listing-API-for-Player.patch} | 42 ++- ...figurable-Region-Compression-Format.patch} | 6 +- ...8-Add-BlockFace-to-BlockDamageEvent.patch} | 12 +- ...h => 0979-Fix-NPE-on-Boat-getStatus.patch} | 6 +- ...e-API.patch => 0980-Expand-Pose-API.patch} | 6 +- ...patch => 0981-More-DragonBattle-API.patch} | 12 +- ... 0982-Deep-clone-unhandled-nbt-tags.patch} | 6 +- ...tch => 0983-Add-PlayerPickItemEvent.patch} | 13 +- ...-Improve-performance-of-mass-crafts.patch} | 0 ...=> 0985-Allow-trident-custom-damage.patch} | 21 +- ...6-Expose-hand-in-BlockCanBuildEvent.patch} | 10 +- ...-nearest-structure-border-iteration.patch} | 4 +- ...Implement-OfflinePlayer-isConnected.patch} | 2 +- ....patch => 0989-Fix-inventory-desync.patch} | 2 +- ...titleOverride-to-InventoryOpenEvent.patch} | 38 +-- ...91-Configure-sniffer-egg-hatch-time.patch} | 4 +- ...-proximity-check-before-entity-look.patch} | 14 +- ...kip-POI-finding-if-stuck-in-vehicle.patch} | 4 +- ...t-sanity-checks-in-container-clicks.patch} | 14 +- ...ll-BlockRedstoneEvents-for-lecterns.patch} | 4 +- ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0998-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 2 +- ...entities-in-chunks-that-are-positio.patch} | 0 ...> 1001-Actually-optimise-explosions.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 2 +- ...atch => 1004-Fix-SuspiciousStewMeta.patch} | 0 ... 1005-Optimise-chunk-tick-iteration.patch} | 4 +- ...atch => 1006-Lag-compensation-ticks.patch} | 2 +- ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...10-Optimise-nearby-player-retrieval.patch} | 67 +++++ ...x-missing-map-initialize-event-call.patch} | 0 ...a-when-attaching-firework-to-entity.patch} | 0 .../1013-Remove-streams-for-villager-AI.patch | 210 --------------- ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...15-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 1016-Add-player-idle-duration-API.patch} | 2 +- ...-if-we-can-see-non-visible-entities.patch} | 4 +- ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 2 +- ...Ints.patch => 1020-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...em-packets-with-collector-as-source.patch} | 0 ... => 1024-Expand-LingeringPotion-API.patch} | 0 ....patch => 1025-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...ecure-profile-with-proxy-online-mode.patch | 23 -- ...everal-issues-with-EntityBreedEvent.patch} | 0 ...029-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 2 +- ...-getAttributeModifier-duplication-c.patch} | 2 +- ...store-vanilla-entity-drops-behavior.patch} | 6 +- ...tch => 1035-Add-Structure-check-API.patch} | 0 ...-Dont-resend-blocks-on-interactions.patch} | 2 +- ...evious-behavior-for-setResourcePack.patch} | 2 +- ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 1040-add-more-scoreboard-API.patch} | 0 ...stry.patch => 1041-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 0 ...h => 1043-Add-experience-points-API.patch} | 2 +- ...h => 1044-Add-missing-InventoryType.patch} | 0 ...h => 1045-Add-drops-to-shear-events.patch} | 2 +- ...> 1046-Add-PlayerShieldDisableEvent.patch} | 0 ... => 1047-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 2 +- ...ate-ResourceLocation-in-NBT-reading.patch} | 2 +- ...-experience-dropping-on-block-break.patch} | 6 +- ...> 1052-Fixup-NamespacedKey-handling.patch} | 0 640 files changed, 627 insertions(+), 751 deletions(-) delete mode 100644 patches/server/0421-Remove-some-streams-from-structures.patch create mode 100644 patches/server/0421-Remove-streams-from-hot-code.patch delete mode 100644 patches/server/0422-Remove-streams-from-classes-related-villager-gossip.patch rename patches/server/{0423-Support-components-in-ItemMeta.patch => 0422-Support-components-in-ItemMeta.patch} (100%) rename patches/server/{0424-Improve-fix-EntityTargetLivingEntityEvent.patch => 0423-Improve-fix-EntityTargetLivingEntityEvent.patch} (100%) rename patches/server/{0425-Add-entity-liquid-API.patch => 0424-Add-entity-liquid-API.patch} (94%) rename patches/server/{0426-Update-itemstack-legacy-name-and-lore.patch => 0425-Update-itemstack-legacy-name-and-lore.patch} (100%) rename patches/server/{0427-Add-PrepareResultEvent.patch => 0426-Add-PrepareResultEvent.patch} (99%) rename patches/server/{0428-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch => 0427-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch} (91%) rename patches/server/{0429-Fix-arrows-never-despawning-MC-125757.patch => 0428-Fix-arrows-never-despawning-MC-125757.patch} (100%) rename patches/server/{0430-Thread-Safe-Vanilla-Command-permission-checking.patch => 0429-Thread-Safe-Vanilla-Command-permission-checking.patch} (100%) rename patches/server/{0431-Fix-SPIGOT-5989.patch => 0430-Fix-SPIGOT-5989.patch} (97%) rename patches/server/{0432-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0431-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (100%) rename patches/server/{0433-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0432-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (89%) rename patches/server/{0434-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0433-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (100%) rename patches/server/{0435-Optimize-NetworkManager-Exception-Handling.patch => 0434-Optimize-NetworkManager-Exception-Handling.patch} (100%) rename patches/server/{0436-Fix-some-rails-connecting-improperly.patch => 0435-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/server/{0437-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0436-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/server/{0438-Brand-support.patch => 0437-Brand-support.patch} (96%) rename patches/server/{0439-Add-playPickupItemAnimation-to-LivingEntity.patch => 0438-Add-playPickupItemAnimation-to-LivingEntity.patch} (100%) rename patches/server/{0440-Don-t-require-FACING-data.patch => 0439-Don-t-require-FACING-data.patch} (100%) rename patches/server/{0441-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0440-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (93%) rename patches/server/{0442-Add-moon-phase-API.patch => 0441-Add-moon-phase-API.patch} (90%) rename patches/server/{0443-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0442-Do-not-let-the-server-load-chunks-from-newer-version.patch} (100%) rename patches/server/{0444-Prevent-headless-pistons-from-being-created.patch => 0443-Prevent-headless-pistons-from-being-created.patch} (100%) rename patches/server/{0445-Add-BellRingEvent.patch => 0444-Add-BellRingEvent.patch} (93%) rename patches/server/{0446-Add-zombie-targets-turtle-egg-config.patch => 0445-Add-zombie-targets-turtle-egg-config.patch} (100%) rename patches/server/{0447-Buffer-joins-to-world.patch => 0446-Buffer-joins-to-world.patch} (100%) rename patches/server/{0448-Eigencraft-redstone-implementation.patch => 0447-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{0449-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0448-Fix-hex-colors-not-working-in-some-kick-messages.patch} (97%) rename patches/server/{0450-PortalCreateEvent-needs-to-know-its-entity.patch => 0449-PortalCreateEvent-needs-to-know-its-entity.patch} (97%) rename patches/server/{0451-Add-more-Evoker-API.patch => 0450-Add-more-Evoker-API.patch} (100%) rename patches/server/{0452-Add-methods-to-get-translation-keys.patch => 0451-Add-methods-to-get-translation-keys.patch} (98%) rename patches/server/{0453-Create-HoverEvent-from-ItemStack-Entity.patch => 0452-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0454-Cache-block-data-strings.patch => 0453-Cache-block-data-strings.patch} (100%) rename patches/server/{0455-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0454-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (100%) rename patches/server/{0456-Add-additional-open-container-api-to-HumanEntity.patch => 0455-Add-additional-open-container-api-to-HumanEntity.patch} (97%) rename patches/server/{0457-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0456-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0458-Extend-block-drop-capture-to-capture-all-items-added.patch => 0457-Extend-block-drop-capture-to-capture-all-items-added.patch} (96%) rename patches/server/{0459-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0458-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (94%) rename patches/server/{0460-Lazily-track-plugin-scoreboards-by-default.patch => 0459-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0461-Entity-isTicking.patch => 0460-Entity-isTicking.patch} (87%) rename patches/server/{0462-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0461-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (100%) rename patches/server/{0463-Fix-Concurrency-issue-in-ShufflingList.patch => 0462-Fix-Concurrency-issue-in-ShufflingList.patch} (97%) rename patches/server/{0464-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0463-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (100%) rename patches/server/{0465-Fix-for-large-move-vectors-crashing-server.patch => 0464-Fix-for-large-move-vectors-crashing-server.patch} (98%) rename patches/server/{0466-Optimise-getType-calls.patch => 0465-Optimise-getType-calls.patch} (100%) rename patches/server/{0467-Villager-resetOffers.patch => 0466-Villager-resetOffers.patch} (100%) rename patches/server/{0468-Retain-block-place-order-when-capturing-blockstates.patch => 0467-Retain-block-place-order-when-capturing-blockstates.patch} (93%) rename patches/server/{0469-Reduce-blockpos-allocation-from-pathfinding.patch => 0468-Reduce-blockpos-allocation-from-pathfinding.patch} (100%) rename patches/server/{0470-Fix-item-locations-dropped-from-campfires.patch => 0469-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0471-Fixed-TileEntityBell-memory-leak.patch => 0470-Fixed-TileEntityBell-memory-leak.patch} (100%) rename patches/server/{0472-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0471-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0473-Add-getOfflinePlayerIfCached-String.patch => 0472-Add-getOfflinePlayerIfCached-String.patch} (93%) rename patches/server/{0474-Add-ignore-discounts-API.patch => 0473-Add-ignore-discounts-API.patch} (100%) rename patches/server/{0475-Toggle-for-removing-existing-dragon.patch => 0474-Toggle-for-removing-existing-dragon.patch} (100%) rename patches/server/{0476-Fix-client-lag-on-advancement-loading.patch => 0475-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/server/{0477-Item-no-age-no-player-pickup.patch => 0476-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0478-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 0477-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (99%) rename patches/server/{0479-Beacon-API-custom-effect-ranges.patch => 0478-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0480-Add-API-for-quit-reason.patch => 0479-Add-API-for-quit-reason.patch} (94%) rename patches/server/{0481-Add-Wandering-Trader-spawn-rate-config-options.patch => 0480-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/server/{0482-Expose-world-spawn-angle.patch => 0481-Expose-world-spawn-angle.patch} (91%) rename patches/server/{0483-Add-Destroy-Speed-API.patch => 0482-Add-Destroy-Speed-API.patch} (100%) rename patches/server/{0484-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0483-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (93%) rename patches/server/{0485-Add-LivingEntity-clearActiveItem.patch => 0484-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/server/{0486-Add-PlayerItemCooldownEvent.patch => 0485-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0487-Significantly-improve-performance-of-the-end-generat.patch => 0486-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0488-More-lightning-API.patch => 0487-More-lightning-API.patch} (93%) rename patches/server/{0489-Climbing-should-not-bypass-cramming-gamerule.patch => 0488-Climbing-should-not-bypass-cramming-gamerule.patch} (100%) rename patches/server/{0490-Added-missing-default-perms-for-commands.patch => 0489-Added-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0491-Add-PlayerShearBlockEvent.patch => 0490-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0492-Limit-recipe-packets.patch => 0491-Limit-recipe-packets.patch} (96%) rename patches/server/{0493-Fix-CraftSound-backwards-compatibility.patch => 0492-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0494-Player-Chunk-Load-Unload-Events.patch => 0493-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/server/{0495-Optimize-Dynamic-get-Missing-Keys.patch => 0494-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0496-Expose-LivingEntity-hurt-direction.patch => 0495-Expose-LivingEntity-hurt-direction.patch} (96%) rename patches/server/{0497-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0496-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (91%) rename patches/server/{0498-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch => 0497-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch} (100%) rename patches/server/{0499-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 0498-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (100%) rename patches/server/{0500-Implement-TargetHitEvent.patch => 0499-Implement-TargetHitEvent.patch} (100%) rename patches/server/{0501-MC-4-Fix-item-position-desync.patch => 0500-MC-4-Fix-item-position-desync.patch} (96%) rename patches/server/{0502-Additional-Block-Material-API-s.patch => 0501-Additional-Block-Material-API-s.patch} (100%) rename patches/server/{0503-Fix-harming-potion-dupe.patch => 0502-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0504-Implement-API-to-get-Material-from-Boats-and-Minecar.patch => 0503-Implement-API-to-get-Material-from-Boats-and-Minecar.patch} (100%) rename patches/server/{0505-Cache-burn-durations.patch => 0504-Cache-burn-durations.patch} (100%) rename patches/server/{0506-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0505-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/server/{0507-Fix-Not-a-string-Map-Conversion-spam.patch => 0506-Fix-Not-a-string-Map-Conversion-spam.patch} (100%) rename patches/server/{0508-Implement-PlayerFlowerPotManipulateEvent.patch => 0507-Implement-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0509-Fix-interact-event-not-being-called-sometimes.patch => 0508-Fix-interact-event-not-being-called-sometimes.patch} (97%) rename patches/server/{0510-Zombie-API-breaking-doors.patch => 0509-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0511-Fix-nerfed-slime-when-splitting.patch => 0510-Fix-nerfed-slime-when-splitting.patch} (100%) rename patches/server/{0512-Add-EntityLoadCrossbowEvent.patch => 0511-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0513-Added-WorldGameRuleChangeEvent.patch => 0512-Added-WorldGameRuleChangeEvent.patch} (98%) rename patches/server/{0514-Added-ServerResourcesReloadedEvent.patch => 0513-Added-ServerResourcesReloadedEvent.patch} (100%) rename patches/server/{0515-Added-world-settings-for-mobs-picking-up-loot.patch => 0514-Added-world-settings-for-mobs-picking-up-loot.patch} (100%) rename patches/server/{0516-Implemented-BlockFailedDispenseEvent.patch => 0515-Implemented-BlockFailedDispenseEvent.patch} (96%) rename patches/server/{0517-Added-PlayerLecternPageChangeEvent.patch => 0516-Added-PlayerLecternPageChangeEvent.patch} (100%) rename patches/server/{0518-Added-PlayerLoomPatternSelectEvent.patch => 0517-Added-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/server/{0519-Configurable-door-breaking-difficulty.patch => 0518-Configurable-door-breaking-difficulty.patch} (100%) rename patches/server/{0520-Empty-commands-shall-not-be-dispatched.patch => 0519-Empty-commands-shall-not-be-dispatched.patch} (89%) rename patches/server/{0521-Remove-stale-POIs.patch => 0520-Remove-stale-POIs.patch} (91%) rename patches/server/{0522-Fix-villager-boat-exploit.patch => 0521-Fix-villager-boat-exploit.patch} (93%) rename patches/server/{0523-Add-sendOpLevel-API.patch => 0522-Add-sendOpLevel-API.patch} (96%) rename patches/server/{0524-TODO-Registry-Modification-API.patch => 0523-TODO-Registry-Modification-API.patch} (100%) rename patches/server/{0525-Add-StructuresLocateEvent.patch => 0524-Add-StructuresLocateEvent.patch} (100%) rename patches/server/{0526-Collision-option-for-requiring-a-player-participant.patch => 0525-Collision-option-for-requiring-a-player-participant.patch} (100%) rename patches/server/{0527-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0526-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0528-Return-chat-component-with-empty-text-instead-of-thr.patch => 0527-Return-chat-component-with-empty-text-instead-of-thr.patch} (100%) rename patches/server/{0529-Make-schedule-command-per-world.patch => 0528-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0530-Configurable-max-leash-distance.patch => 0529-Configurable-max-leash-distance.patch} (100%) rename patches/server/{0531-Implement-BlockPreDispenseEvent.patch => 0530-Implement-BlockPreDispenseEvent.patch} (95%) rename patches/server/{0532-Added-firing-of-PlayerChangeBeaconEffectEvent.patch => 0531-Added-firing-of-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/server/{0533-Add-toggle-for-always-placing-the-dragon-egg.patch => 0532-Add-toggle-for-always-placing-the-dragon-egg.patch} (100%) rename patches/server/{0534-Added-PlayerStonecutterRecipeSelectEvent.patch => 0533-Added-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/server/{0535-Add-dropLeash-variable-to-EntityUnleashEvent.patch => 0534-Add-dropLeash-variable-to-EntityUnleashEvent.patch} (99%) rename patches/server/{0536-Reset-shield-blocking-on-dimension-change.patch => 0535-Reset-shield-blocking-on-dimension-change.patch} (89%) rename patches/server/{0537-add-DragonEggFormEvent.patch => 0536-add-DragonEggFormEvent.patch} (100%) rename patches/server/{0538-EntityMoveEvent.patch => 0537-EntityMoveEvent.patch} (100%) rename patches/server/{0539-added-option-to-disable-pathfinding-updates-on-block.patch => 0538-added-option-to-disable-pathfinding-updates-on-block.patch} (91%) rename patches/server/{0540-Inline-shift-direction-fields.patch => 0539-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0541-Allow-adding-items-to-BlockDropItemEvent.patch => 0540-Allow-adding-items-to-BlockDropItemEvent.patch} (95%) rename patches/server/{0542-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0541-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0543-living-entity-allow-attribute-registration.patch => 0542-living-entity-allow-attribute-registration.patch} (100%) rename patches/server/{0544-fix-dead-slime-setSize-invincibility.patch => 0543-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0545-Merchant-getRecipes-should-return-an-immutable-list.patch => 0544-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0546-Expose-Tracked-Players.patch => 0545-Expose-Tracked-Players.patch} (92%) rename patches/server/{0548-Improve-ServerGUI.patch => 0546-Improve-ServerGUI.patch} (100%) delete mode 100644 patches/server/0547-Remove-streams-from-SensorNearest.patch rename patches/server/{0549-fix-converting-txt-to-json-file.patch => 0547-fix-converting-txt-to-json-file.patch} (97%) rename patches/server/{0550-Add-worldborder-events.patch => 0548-Add-worldborder-events.patch} (100%) rename patches/server/{0551-added-PlayerNameEntityEvent.patch => 0549-added-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0552-Prevent-grindstones-from-overstacking-items.patch => 0550-Prevent-grindstones-from-overstacking-items.patch} (100%) rename patches/server/{0553-Add-recipe-to-cook-events.patch => 0551-Add-recipe-to-cook-events.patch} (100%) rename patches/server/{0554-Add-Block-isValidTool.patch => 0552-Add-Block-isValidTool.patch} (100%) rename patches/server/{0555-Allow-using-signs-inside-spawn-protection.patch => 0553-Allow-using-signs-inside-spawn-protection.patch} (94%) rename patches/server/{0556-Expand-world-key-API.patch => 0554-Expand-world-key-API.patch} (95%) rename patches/server/{0557-Add-fast-alternative-constructor-for-Rotations.patch => 0555-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0558-Item-Rarity-API.patch => 0556-Item-Rarity-API.patch} (100%) rename patches/server/{0559-Drop-carried-item-when-player-has-disconnected.patch => 0557-Drop-carried-item-when-player-has-disconnected.patch} (92%) rename patches/server/{0560-forced-whitelist-use-configurable-kick-message.patch => 0558-forced-whitelist-use-configurable-kick-message.patch} (100%) rename patches/server/{0561-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0559-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (91%) rename patches/server/{0562-Expose-protocol-version.patch => 0560-Expose-protocol-version.patch} (100%) rename patches/server/{0563-Enhance-console-tab-completions-for-brigadier-comman.patch => 0561-Enhance-console-tab-completions-for-brigadier-comman.patch} (99%) rename patches/server/{0564-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0562-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (93%) rename patches/server/{0565-Add-bypass-host-check.patch => 0563-Add-bypass-host-check.patch} (100%) rename patches/server/{0566-Set-area-affect-cloud-rotation.patch => 0564-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0567-add-isDeeplySleeping-to-HumanEntity.patch => 0565-add-isDeeplySleeping-to-HumanEntity.patch} (90%) rename patches/server/{0568-add-consumeFuel-to-FurnaceBurnEvent.patch => 0566-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0569-add-get-set-drop-chance-to-EntityEquipment.patch => 0567-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0570-fix-PigZombieAngerEvent-cancellation.patch => 0568-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0571-fix-PlayerItemHeldEvent-firing-twice.patch => 0569-fix-PlayerItemHeldEvent-firing-twice.patch} (93%) rename patches/server/{0572-Added-PlayerDeepSleepEvent.patch => 0570-Added-PlayerDeepSleepEvent.patch} (100%) rename patches/server/{0573-More-World-API.patch => 0571-More-World-API.patch} (100%) rename patches/server/{0574-Added-PlayerBedFailEnterEvent.patch => 0572-Added-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0575-Implement-methods-to-convert-between-Component-and-B.patch => 0573-Implement-methods-to-convert-between-Component-and-B.patch} (96%) rename patches/server/{0576-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch => 0574-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch} (95%) rename patches/server/{0577-Introduce-beacon-activation-deactivation-events.patch => 0575-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0578-add-RespawnFlags-to-PlayerRespawnEvent.patch => 0576-add-RespawnFlags-to-PlayerRespawnEvent.patch} (97%) rename patches/server/{0579-Add-Channel-initialization-listeners.patch => 0577-Add-Channel-initialization-listeners.patch} (100%) rename patches/server/{0580-Send-empty-commands-if-tab-completion-is-disabled.patch => 0578-Send-empty-commands-if-tab-completion-is-disabled.patch} (91%) rename patches/server/{0581-Add-more-WanderingTrader-API.patch => 0579-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0582-Add-EntityBlockStorage-clearEntities.patch => 0580-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0583-Entity-load-save-limit-per-chunk.patch => 0581-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/server/{0584-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0582-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0585-Inventory-close.patch => 0583-Inventory-close.patch} (100%) rename patches/server/{0586-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0584-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0587-Add-basic-Datapack-API.patch => 0585-Add-basic-Datapack-API.patch} (98%) rename patches/server/{0588-Add-environment-variable-to-disable-server-gui.patch => 0586-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0589-additions-to-PlayerGameModeChangeEvent.patch => 0587-additions-to-PlayerGameModeChangeEvent.patch} (100%) rename patches/server/{0590-ItemStack-repair-check-API.patch => 0588-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0591-More-Enchantment-API.patch => 0589-More-Enchantment-API.patch} (100%) rename patches/server/{0592-Move-range-check-for-block-placing-up.patch => 0590-Move-range-check-for-block-placing-up.patch} (100%) rename patches/server/{0593-Fix-and-optimise-world-force-upgrading.patch => 0591-Fix-and-optimise-world-force-upgrading.patch} (99%) rename patches/server/{0594-Add-Mob-lookAt-API.patch => 0592-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0595-Add-Unix-domain-socket-support.patch => 0593-Add-Unix-domain-socket-support.patch} (98%) rename patches/server/{0596-Add-EntityInsideBlockEvent.patch => 0594-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0597-Attributes-API-for-item-defaults.patch => 0595-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0598-Add-cause-to-Weather-ThunderChangeEvents.patch => 0596-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/server/{0599-More-Lidded-Block-API.patch => 0597-More-Lidded-Block-API.patch} (100%) rename patches/server/{0600-Limit-item-frame-cursors-on-maps.patch => 0598-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0601-Add-PlayerKickEvent-causes.patch => 0599-Add-PlayerKickEvent-causes.patch} (100%) rename patches/server/{0602-Add-PufferFishStateChangeEvent.patch => 0600-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0603-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0601-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0604-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0602-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/server/{0605-Add-option-to-fix-items-merging-through-walls.patch => 0603-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0606-Add-BellRevealRaiderEvent.patch => 0604-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0607-Fix-invulnerable-end-crystals.patch => 0605-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0608-Add-ElderGuardianAppearanceEvent.patch => 0606-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0609-Fix-dangerous-end-portal-logic.patch => 0607-Fix-dangerous-end-portal-logic.patch} (100%) rename patches/server/{0610-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0608-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0611-Make-item-validations-configurable.patch => 0609-Make-item-validations-configurable.patch} (100%) rename patches/server/{0612-Line-Of-Sight-Changes.patch => 0610-Line-Of-Sight-Changes.patch} (100%) rename patches/server/{0613-add-per-world-spawn-limits.patch => 0611-add-per-world-spawn-limits.patch} (100%) rename patches/server/{0614-Fix-potions-splash-events.patch => 0612-Fix-potions-splash-events.patch} (100%) rename patches/server/{0615-Add-more-LimitedRegion-API.patch => 0613-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0616-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0614-Fix-PlayerDropItemEvent-using-wrong-item.patch} (100%) rename patches/server/{0617-Missing-Entity-API.patch => 0615-Missing-Entity-API.patch} (100%) rename patches/server/{0618-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0616-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (100%) rename patches/server/{0619-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0617-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0620-Use-getChunkIfLoadedImmediately-in-places.patch => 0618-Use-getChunkIfLoadedImmediately-in-places.patch} (100%) rename patches/server/{0621-Fix-commands-from-signs-not-firing-command-events.patch => 0619-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0622-Adds-PlayerArmSwingEvent.patch => 0620-Adds-PlayerArmSwingEvent.patch} (100%) rename patches/server/{0623-Fixes-kick-event-leave-message-not-being-sent.patch => 0621-Fixes-kick-event-leave-message-not-being-sent.patch} (100%) rename patches/server/{0624-Add-config-for-mobs-immune-to-default-effects.patch => 0622-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/server/{0625-Don-t-apply-cramming-damage-to-players.patch => 0623-Don-t-apply-cramming-damage-to-players.patch} (100%) rename patches/server/{0626-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0624-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0627-Add-a-bunch-of-missing-forceDrop-toggles.patch => 0625-Add-a-bunch-of-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0628-Stinger-API.patch => 0626-Stinger-API.patch} (100%) rename patches/server/{0629-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0627-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0630-Add-System.out-err-catcher.patch => 0628-Add-System.out-err-catcher.patch} (98%) rename patches/server/{0631-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0629-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0632-Improve-boat-collision-performance.patch => 0630-Improve-boat-collision-performance.patch} (100%) rename patches/server/{0633-Prevent-AFK-kick-while-watching-end-credits.patch => 0631-Prevent-AFK-kick-while-watching-end-credits.patch} (100%) rename patches/server/{0634-Allow-skipping-writing-of-comments-to-server.propert.patch => 0632-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0635-Add-PlayerSetSpawnEvent.patch => 0633-Add-PlayerSetSpawnEvent.patch} (100%) rename patches/server/{0636-Make-hoppers-respect-inventory-max-stack-size.patch => 0634-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0637-Optimize-entity-tracker-passenger-checks.patch => 0635-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0638-Config-option-for-Piglins-guarding-chests.patch => 0636-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0639-Added-EntityDamageItemEvent.patch => 0637-Added-EntityDamageItemEvent.patch} (100%) rename patches/server/{0640-Optimize-indirect-passenger-iteration.patch => 0638-Optimize-indirect-passenger-iteration.patch} (100%) rename patches/server/{0641-Configurable-item-frame-map-cursor-update-interval.patch => 0639-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0642-Make-EntityUnleashEvent-cancellable.patch => 0640-Make-EntityUnleashEvent-cancellable.patch} (100%) rename patches/server/{0643-Clear-bucket-NBT-after-dispense.patch => 0641-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0644-Change-EnderEye-target-without-changing-other-things.patch => 0642-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0645-Add-BlockBreakBlockEvent.patch => 0643-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0646-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0644-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0647-More-CommandBlock-API.patch => 0645-More-CommandBlock-API.patch} (100%) rename patches/server/{0648-Add-missing-team-sidebar-display-slots.patch => 0646-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0649-Add-back-EntityPortalExitEvent.patch => 0647-Add-back-EntityPortalExitEvent.patch} (100%) rename patches/server/{0650-Add-methods-to-find-targets-for-lightning-strikes.patch => 0648-Add-methods-to-find-targets-for-lightning-strikes.patch} (100%) rename patches/server/{0651-Get-entity-default-attributes.patch => 0649-Get-entity-default-attributes.patch} (100%) rename patches/server/{0652-Left-handed-API.patch => 0650-Left-handed-API.patch} (100%) rename patches/server/{0653-Add-more-advancement-API.patch => 0651-Add-more-advancement-API.patch} (100%) rename patches/server/{0654-Add-ItemFactory-getSpawnEgg-API.patch => 0652-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0655-Add-critical-damage-API.patch => 0653-Add-critical-damage-API.patch} (100%) rename patches/server/{0656-Fix-issues-with-mob-conversion.patch => 0654-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0657-Add-isCollidable-methods-to-various-places.patch => 0655-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0658-Goat-ram-API.patch => 0656-Goat-ram-API.patch} (100%) rename patches/server/{0659-Add-API-for-resetting-a-single-score.patch => 0657-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0660-Add-Raw-Byte-Entity-Serialization.patch => 0658-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/server/{0661-Vanilla-command-permission-fixes.patch => 0659-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0662-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0660-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (100%) rename patches/server/{0663-Fix-GameProfileCache-concurrency.patch => 0661-Fix-GameProfileCache-concurrency.patch} (98%) rename patches/server/{0664-Improve-and-expand-AsyncCatcher.patch => 0662-Improve-and-expand-AsyncCatcher.patch} (100%) rename patches/server/{0665-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0663-Add-paper-mobcaps-and-paper-playermobcaps.patch} (99%) rename patches/server/{0666-Sanitize-ResourceLocation-error-logging.patch => 0664-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0667-Optimise-general-POI-access.patch => 0665-Optimise-general-POI-access.patch} (100%) rename patches/server/{0668-Custom-table-implementation-for-blockstate-state-loo.patch => 0666-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{0669-Manually-inline-methods-in-BlockPosition.patch => 0667-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0670-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0668-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0671-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0669-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (100%) rename patches/server/{0672-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0670-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0673-Don-t-lookup-fluid-state-when-raytracing.patch => 0671-Don-t-lookup-fluid-state-when-raytracing.patch} (100%) rename patches/server/{0674-Time-scoreboard-search.patch => 0672-Time-scoreboard-search.patch} (100%) rename patches/server/{0675-Send-full-pos-packets-for-hard-colliding-entities.patch => 0673-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{0676-Do-not-run-raytrace-logic-for-AIR.patch => 0674-Do-not-run-raytrace-logic-for-AIR.patch} (100%) rename patches/server/{0677-Execute-chunk-tasks-mid-tick.patch => 0675-Execute-chunk-tasks-mid-tick.patch} (100%) rename patches/server/{0678-Oprimise-map-impl-for-tracked-players.patch => 0676-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/server/{0679-Optimise-BlockSoil-nearby-water-lookup.patch => 0677-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0680-Optimise-random-block-ticking.patch => 0678-Optimise-random-block-ticking.patch} (100%) rename patches/server/{0681-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 0679-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{0682-Use-Velocity-compression-and-cipher-natives.patch => 0680-Use-Velocity-compression-and-cipher-natives.patch} (99%) rename patches/server/{0683-Detail-more-information-in-watchdog-dumps.patch => 0681-Detail-more-information-in-watchdog-dumps.patch} (100%) rename patches/server/{0684-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch => 0682-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch} (100%) rename patches/server/{0685-Distance-manager-tick-timings.patch => 0683-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0686-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0684-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (100%) rename patches/server/{0687-Check-requirement-before-suggesting-root-nodes.patch => 0685-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0688-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0686-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/server/{0689-Add-packet-limiter-config.patch => 0687-Add-packet-limiter-config.patch} (100%) rename patches/server/{0690-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0688-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0691-Ensure-valid-vehicle-status.patch => 0689-Ensure-valid-vehicle-status.patch} (100%) rename patches/server/{0692-Prevent-softlocked-end-exit-portal-generation.patch => 0690-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0693-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0691-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0694-Don-t-log-debug-logging-being-disabled.patch => 0692-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0695-fix-various-menus-with-empty-level-accesses.patch => 0693-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0696-Preserve-overstacked-loot.patch => 0694-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0697-Update-head-rotation-in-missing-places.patch => 0695-Update-head-rotation-in-missing-places.patch} (100%) rename patches/server/{0698-prevent-unintended-light-block-manipulation.patch => 0696-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0699-Fix-CraftCriteria-defaults-map.patch => 0697-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0700-Fix-upstreams-block-state-factories.patch => 0698-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0701-Configurable-feature-seeds.patch => 0699-Configurable-feature-seeds.patch} (100%) rename patches/server/{0702-Add-root-admin-user-detection.patch => 0700-Add-root-admin-user-detection.patch} (97%) rename patches/server/{0703-Always-allow-item-changing-in-Fireball.patch => 0701-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0704-don-t-attempt-to-teleport-dead-entities.patch => 0702-don-t-attempt-to-teleport-dead-entities.patch} (100%) rename patches/server/{0705-Prevent-excessive-velocity-through-repeated-crits.patch => 0703-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/server/{0706-Remove-client-side-code-using-deprecated-for-removal.patch => 0704-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0707-Fix-removing-recipes-from-RecipeIterator.patch => 0705-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0708-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0706-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/server/{0709-Hide-unnecessary-itemmeta-from-clients.patch => 0707-Hide-unnecessary-itemmeta-from-clients.patch} (100%) rename patches/server/{0710-Fix-Spigot-growth-modifiers.patch => 0708-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0711-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0709-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0712-Add-PlayerItemFrameChangeEvent.patch => 0710-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0713-Optimize-HashMapPalette.patch => 0711-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0714-Allow-delegation-to-vanilla-chunk-gen.patch => 0712-Allow-delegation-to-vanilla-chunk-gen.patch} (98%) rename patches/server/{0715-Collision-optimisations.patch => 0713-Collision-optimisations.patch} (100%) rename patches/server/{0716-Optimise-collision-checking-in-player-move-packet-ha.patch => 0714-Optimise-collision-checking-in-player-move-packet-ha.patch} (100%) rename patches/server/{0717-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0715-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0718-Add-more-Campfire-API.patch => 0716-Add-more-Campfire-API.patch} (100%) rename patches/server/{0719-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0717-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0720-Fix-tripwire-state-inconsistency.patch => 0718-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{0721-Forward-CraftEntity-in-teleport-command.patch => 0719-Forward-CraftEntity-in-teleport-command.patch} (100%) rename patches/server/{0722-Improve-scoreboard-entries.patch => 0720-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0723-Entity-powdered-snow-API.patch => 0721-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0724-Add-API-for-item-entity-health.patch => 0722-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0725-Fix-entity-type-tags-suggestions-in-selectors.patch => 0723-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{0726-Configurable-max-block-light-for-monster-spawning.patch => 0724-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0727-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0725-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0728-Load-effect-amplifiers-greater-than-127-correctly.patch => 0726-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0729-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0727-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0730-Fix-bees-aging-inside-hives.patch => 0728-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0731-Bucketable-API.patch => 0729-Bucketable-API.patch} (100%) rename patches/server/{0732-Validate-usernames.patch => 0730-Validate-usernames.patch} (97%) rename patches/server/{0733-Make-water-animal-spawn-height-configurable.patch => 0731-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0734-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0732-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (98%) rename patches/server/{0735-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0733-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0736-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0734-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0737-Multiple-Entries-with-Scoreboards.patch => 0735-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0738-Reset-placed-block-on-exception.patch => 0736-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0739-Add-configurable-height-for-slime-spawn.patch => 0737-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0740-Fix-xp-reward-for-baby-zombies.patch => 0738-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0741-Multi-Block-Change-API-Implementation.patch => 0739-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0742-Fix-NotePlayEvent.patch => 0740-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0743-Freeze-Tick-Lock-API.patch => 0741-Freeze-Tick-Lock-API.patch} (100%) rename patches/server/{0744-Dolphin-API.patch => 0742-Dolphin-API.patch} (100%) rename patches/server/{0745-More-PotionEffectType-API.patch => 0743-More-PotionEffectType-API.patch} (100%) rename patches/server/{0746-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0744-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0747-API-for-creating-command-sender-which-forwards-feedb.patch => 0745-API-for-creating-command-sender-which-forwards-feedb.patch} (98%) rename patches/server/{0748-Add-missing-structure-set-seed-configs.patch => 0746-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0749-Implement-regenerateChunk.patch => 0747-Implement-regenerateChunk.patch} (100%) rename patches/server/{0750-Fix-cancelled-powdered-snow-bucket-placement.patch => 0748-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0751-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0749-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (92%) rename patches/server/{0752-Add-GameEvent-tags.patch => 0750-Add-GameEvent-tags.patch} (97%) rename patches/server/{0753-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0751-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (100%) rename patches/server/{0754-Furnace-RecipesUsed-API.patch => 0752-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0755-Configurable-sculk-sensor-listener-range.patch => 0753-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0756-Add-missing-block-data-mins-and-maxes.patch => 0754-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0757-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0755-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (100%) rename patches/server/{0758-Put-world-into-worldlist-before-initing-the-world.patch => 0756-Put-world-into-worldlist-before-initing-the-world.patch} (95%) rename patches/server/{0759-Fix-Entity-Position-Desync.patch => 0757-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0760-Custom-Potion-Mixes.patch => 0758-Custom-Potion-Mixes.patch} (99%) rename patches/server/{0761-Force-close-world-loading-screen.patch => 0759-Force-close-world-loading-screen.patch} (100%) rename patches/server/{0762-Fix-falling-block-spawn-methods.patch => 0760-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0763-Expose-furnace-minecart-push-values.patch => 0761-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0764-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0762-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0765-More-Projectile-API.patch => 0763-More-Projectile-API.patch} (100%) rename patches/server/{0766-Fix-swamp-hut-cat-generation-deadlock.patch => 0764-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0767-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0765-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/server/{0768-Implement-getComputedBiome-API.patch => 0766-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0769-Make-some-itemstacks-nonnull.patch => 0767-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0770-Implement-enchantWithLevels-API.patch => 0768-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0771-Fix-saving-in-unloadWorld.patch => 0769-Fix-saving-in-unloadWorld.patch} (90%) rename patches/server/{0772-Buffer-OOB-setBlock-calls.patch => 0770-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0773-Add-TameableDeathMessageEvent.patch => 0771-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0774-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0772-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (100%) rename patches/server/{0775-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0773-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/server/{0776-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0774-Ensure-entity-passenger-world-matches-ridden-entity.patch} (100%) rename patches/server/{0777-Guard-against-invalid-entity-positions.patch => 0775-Guard-against-invalid-entity-positions.patch} (100%) rename patches/server/{0778-cache-resource-keys.patch => 0776-cache-resource-keys.patch} (100%) rename patches/server/{0779-Allow-to-change-the-podium-for-the-EnderDragon.patch => 0777-Allow-to-change-the-podium-for-the-EnderDragon.patch} (100%) rename patches/server/{0780-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0778-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0781-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0779-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0782-Prevent-tile-entity-copies-loading-chunks.patch => 0780-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/server/{0783-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0781-Use-username-instead-of-display-name-in-PlayerList-g.patch} (100%) rename patches/server/{0784-Pass-ServerLevel-for-gamerule-callbacks.patch => 0782-Pass-ServerLevel-for-gamerule-callbacks.patch} (99%) rename patches/server/{0785-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch => 0783-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0786-WorldCreator-keepSpawnLoaded.patch => 0784-WorldCreator-keepSpawnLoaded.patch} (94%) rename patches/server/{0787-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0785-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0788-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0786-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0789-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0787-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0790-Fire-CauldronLevelChange-on-initial-fill.patch => 0788-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0791-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0789-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0792-Add-PlayerStopUsingItemEvent.patch => 0790-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/server/{0793-Don-t-tick-markers.patch => 0791-Don-t-tick-markers.patch} (100%) rename patches/server/{0794-Expand-FallingBlock-API.patch => 0792-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0795-Do-not-accept-invalid-client-settings.patch => 0793-Do-not-accept-invalid-client-settings.patch} (100%) rename patches/server/{0796-Add-support-for-Proxy-Protocol.patch => 0794-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0797-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0795-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0798-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0796-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0799-Sanitize-Sent-BlockEntity-NBT.patch => 0797-Sanitize-Sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0800-Disable-component-selector-resolving-in-books-by-def.patch => 0798-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0801-Prevent-entity-loading-causing-async-lookups.patch => 0799-Prevent-entity-loading-causing-async-lookups.patch} (100%) rename patches/server/{0802-Throw-exception-on-world-create-while-being-ticked.patch => 0800-Throw-exception-on-world-create-while-being-ticked.patch} (97%) rename patches/server/{0803-Add-Alternate-Current-redstone-implementation.patch => 0801-Add-Alternate-Current-redstone-implementation.patch} (100%) rename patches/server/{0804-Dont-resent-entity-on-art-update.patch => 0802-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0805-Add-WardenAngerChangeEvent.patch => 0803-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0806-Add-option-for-strict-advancement-dimension-checks.patch => 0804-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/server/{0807-Add-missing-important-BlockStateListPopulator-method.patch => 0805-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0808-Nameable-Banner-API.patch => 0806-Nameable-Banner-API.patch} (100%) rename patches/server/{0809-Don-t-broadcast-messages-to-command-blocks.patch => 0807-Don-t-broadcast-messages-to-command-blocks.patch} (95%) rename patches/server/{0810-Prevent-empty-items-from-being-added-to-world.patch => 0808-Prevent-empty-items-from-being-added-to-world.patch} (100%) rename patches/server/{0811-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0809-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0812-Add-Player-getFishHook.patch => 0810-Add-Player-getFishHook.patch} (100%) rename patches/server/{0813-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0811-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0814-Add-various-missing-EntityDropItemEvent-calls.patch => 0812-Add-various-missing-EntityDropItemEvent-calls.patch} (100%) rename patches/server/{0815-Fix-Bee-flower-NPE.patch => 0813-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0816-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0814-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (100%) rename patches/server/{0817-More-Teleport-API.patch => 0815-More-Teleport-API.patch} (100%) rename patches/server/{0818-Add-EntityPortalReadyEvent.patch => 0816-Add-EntityPortalReadyEvent.patch} (100%) rename patches/server/{0819-Don-t-use-level-random-in-entity-constructors.patch => 0817-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0820-Send-block-entities-after-destroy-prediction.patch => 0818-Send-block-entities-after-destroy-prediction.patch} (100%) rename patches/server/{0821-Warn-on-plugins-accessing-faraway-chunks.patch => 0819-Warn-on-plugins-accessing-faraway-chunks.patch} (100%) rename patches/server/{0822-Custom-Chat-Completion-Suggestions-API.patch => 0820-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0823-Add-and-fix-missing-BlockFadeEvents.patch => 0821-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0824-Collision-API.patch => 0822-Collision-API.patch} (100%) rename patches/server/{0825-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0823-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/server/{0826-Block-Ticking-API.patch => 0824-Block-Ticking-API.patch} (100%) rename patches/server/{0827-Add-Velocity-IP-Forwarding-Support.patch => 0825-Add-Velocity-IP-Forwarding-Support.patch} (97%) rename patches/server/{0828-Add-NamespacedKey-biome-methods.patch => 0826-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0829-Fix-plugin-loggers-on-server-shutdown.patch => 0827-Fix-plugin-loggers-on-server-shutdown.patch} (100%) rename patches/server/{0830-Stop-large-look-changes-from-crashing-the-server.patch => 0828-Stop-large-look-changes-from-crashing-the-server.patch} (100%) rename patches/server/{0831-Fire-EntityChangeBlockEvent-in-more-places.patch => 0829-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0832-Missing-eating-regain-reason.patch => 0830-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0833-Missing-effect-cause.patch => 0831-Missing-effect-cause.patch} (100%) rename patches/server/{0834-Added-byte-array-serialization-deserialization-for-P.patch => 0832-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0835-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0833-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0836-Call-BlockPhysicsEvent-more-often.patch => 0834-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0837-Configurable-chat-thread-limit.patch => 0835-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0838-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0836-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0839-fix-Jigsaw-block-kicking-user.patch => 0837-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0840-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0838-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0841-Add-getDrops-to-BlockState.patch => 0839-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0842-Fix-a-bunch-of-vanilla-bugs.patch => 0840-Fix-a-bunch-of-vanilla-bugs.patch} (100%) rename patches/server/{0843-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0841-Remove-unnecessary-onTrackingStart-during-navigation.patch} (100%) rename patches/server/{0844-Fix-custom-piglin-loved-items.patch => 0842-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0845-EntityPickupItemEvent-fixes.patch => 0843-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0846-Correctly-handle-interactions-with-items-on-cooldown.patch => 0844-Correctly-handle-interactions-with-items-on-cooldown.patch} (100%) rename patches/server/{0847-Add-PlayerInventorySlotChangeEvent.patch => 0845-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/server/{0848-Elder-Guardian-appearance-API.patch => 0846-Elder-Guardian-appearance-API.patch} (100%) rename patches/server/{0849-Allow-changing-bed-s-occupied-property.patch => 0847-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0850-Add-entity-knockback-API.patch => 0848-Add-entity-knockback-API.patch} (100%) rename patches/server/{0851-Detect-headless-JREs.patch => 0849-Detect-headless-JREs.patch} (100%) rename patches/server/{0852-fixed-entity-vehicle-collision-event-not-called.patch => 0850-fixed-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0853-optimized-dirt-and-snow-spreading.patch => 0851-optimized-dirt-and-snow-spreading.patch} (100%) rename patches/server/{0854-Added-EntityToggleSitEvent.patch => 0852-Added-EntityToggleSitEvent.patch} (100%) rename patches/server/{0855-Add-fire-tick-delay-option.patch => 0853-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0856-Add-Moving-Piston-API.patch => 0854-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0857-Ignore-impossible-spawn-tick.patch => 0855-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0858-Track-projectile-source-for-fireworks-from-dispenser.patch => 0856-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0859-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0857-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0860-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0858-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (100%) rename patches/server/{0861-Prevent-compass-from-loading-chunks.patch => 0859-Prevent-compass-from-loading-chunks.patch} (100%) rename patches/server/{0862-Add-PrePlayerAttackEntityEvent.patch => 0860-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/server/{0863-ensure-reset-EnderDragon-boss-event-name.patch => 0861-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0864-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0862-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0865-Add-Player-Warden-Warning-API.patch => 0863-Add-Player-Warden-Warning-API.patch} (100%) rename patches/server/{0866-More-vanilla-friendly-methods-to-update-trades.patch => 0864-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0867-Add-paper-dumplisteners-command.patch => 0865-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0868-check-global-player-list-where-appropriate.patch => 0866-check-global-player-list-where-appropriate.patch} (100%) rename patches/server/{0869-Fix-async-entity-add-due-to-fungus-trees.patch => 0867-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0870-ItemStack-damage-API.patch => 0868-ItemStack-damage-API.patch} (100%) rename patches/server/{0871-Friction-API.patch => 0869-Friction-API.patch} (100%) rename patches/server/{0872-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0870-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0873-Fix-player-kick-on-shutdown.patch => 0871-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0874-Sync-offhand-slot-in-menus.patch => 0872-Sync-offhand-slot-in-menus.patch} (100%) rename patches/server/{0875-Player-Entity-Tracking-Events.patch => 0873-Player-Entity-Tracking-Events.patch} (100%) rename patches/server/{0876-Limit-pet-look-distance.patch => 0874-Limit-pet-look-distance.patch} (100%) rename patches/server/{0877-Properly-resend-entities.patch => 0875-Properly-resend-entities.patch} (100%) rename patches/server/{0878-Fixes-and-additions-to-the-SpawnReason-API.patch => 0876-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0879-fix-Instruments.patch => 0877-fix-Instruments.patch} (100%) rename patches/server/{0880-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (100%) rename patches/server/{0881-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0879-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0882-Add-BlockLockCheckEvent.patch => 0880-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0883-Add-Sneaking-API-for-Entities.patch => 0881-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/server/{0884-Improve-logging-and-errors.patch => 0882-Improve-logging-and-errors.patch} (100%) rename patches/server/{0885-Improve-PortalEvents.patch => 0883-Improve-PortalEvents.patch} (100%) rename patches/server/{0886-Add-config-option-for-spider-worldborder-climbing.patch => 0884-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0887-Add-missing-SpigotConfig-logCommands-check.patch => 0885-Add-missing-SpigotConfig-logCommands-check.patch} (100%) rename patches/server/{0888-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0886-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0889-Flying-Fall-Damage.patch => 0887-Flying-Fall-Damage.patch} (100%) rename patches/server/{0890-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0888-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/server/{0891-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0889-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (100%) rename patches/server/{0892-config-for-disabling-entity-tag-tags.patch => 0890-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0893-Use-single-player-info-update-packet-on-join.patch => 0891-Use-single-player-info-update-packet-on-join.patch} (100%) rename patches/server/{0894-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0892-Correctly-shrink-items-during-EntityResurrectEvent.patch} (100%) rename patches/server/{0895-Win-Screen-API.patch => 0893-Win-Screen-API.patch} (100%) rename patches/server/{0896-Remove-CraftItemStack-setAmount-null-assignment.patch => 0894-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0897-Fix-force-opening-enchantment-tables.patch => 0895-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0898-Add-Entity-Body-Yaw-API.patch => 0896-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0899-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0897-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0900-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0898-Update-the-flag-when-a-captured-block-state-is-outda.patch} (100%) rename patches/server/{0901-Add-EntityFertilizeEggEvent.patch => 0899-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/server/{0902-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0900-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0903-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0901-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0904-Correctly-handle-ArmorStand-invisibility.patch => 0902-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0905-Fix-advancement-triggers-for-entity-damage.patch => 0903-Fix-advancement-triggers-for-entity-damage.patch} (100%) rename patches/server/{0906-Fix-text-display-error-on-spawn.patch => 0904-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0907-Fix-certain-inventories-returning-null-Locations.patch => 0905-Fix-certain-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0908-Add-Shearable-API.patch => 0906-Add-Shearable-API.patch} (100%) rename patches/server/{0909-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0907-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0910-Optimize-Hoppers.patch => 0908-Optimize-Hoppers.patch} (100%) rename patches/server/{0911-Fix-beehives-generating-from-using-bonemeal.patch => 0909-Fix-beehives-generating-from-using-bonemeal.patch} (100%) rename patches/server/{0912-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0910-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0913-Treat-sequence-violations-like-they-should-be.patch => 0911-Treat-sequence-violations-like-they-should-be.patch} (100%) rename patches/server/{0914-remove-duplicate-animate-packet-for-records.patch => 0912-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0915-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0913-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/server/{0916-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (100%) rename patches/server/{0917-Use-array-for-gamerule-storage.patch => 0915-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0918-Fix-a-couple-of-upstream-bed-issues.patch => 0916-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0919-Fix-demo-flag-not-enabling-demo-mode.patch => 0917-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0920-Add-Mob-Experience-reward-API.patch => 0918-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0921-Break-redstone-on-top-of-trap-doors-early.patch => 0919-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0922-Fix-DamageCause-for-Falling-Blocks.patch => 0920-Fix-DamageCause-for-Falling-Blocks.patch} (100%) rename patches/server/{0923-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0921-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0924-More-accurate-isInOpenWater-impl.patch => 0922-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0925-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0923-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0926-Optimise-recalcBlockCounts-for-empty-sections.patch => 0924-Optimise-recalcBlockCounts-for-empty-sections.patch} (100%) rename patches/server/{0927-Expand-PlayerItemMendEvent.patch => 0925-Expand-PlayerItemMendEvent.patch} (100%) rename patches/server/{0928-Refresh-ProjectileSource-for-projectiles.patch => 0926-Refresh-ProjectileSource-for-projectiles.patch} (100%) rename patches/server/{0929-Add-transient-modifier-API.patch => 0927-Add-transient-modifier-API.patch} (100%) rename patches/server/{0930-Fix-block-place-logic.patch => 0928-Fix-block-place-logic.patch} (100%) rename patches/server/{0931-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0929-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0932-Call-BlockGrowEvent-for-missing-blocks.patch => 0930-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0933-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (94%) rename patches/server/{0934-fix-MapLike-spam-for-missing-key-selector.patch => 0932-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0935-Fix-sniffer-removeExploredLocation.patch => 0933-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0936-Add-method-to-remove-all-active-potion-effects.patch => 0934-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0937-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch => 0935-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch} (100%) rename patches/server/{0938-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0936-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0939-Properly-Cancel-Usable-Items.patch => 0937-Properly-Cancel-Usable-Items.patch} (100%) rename patches/server/{0940-Add-event-for-player-editing-sign.patch => 0938-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0941-Only-tick-item-frames-if-players-can-see-it.patch => 0939-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0942-Fix-cmd-permission-levels-for-command-blocks.patch => 0940-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/server/{0943-Add-option-to-disable-block-updates.patch => 0941-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0944-Call-missing-BlockDispenseEvent.patch => 0942-Call-missing-BlockDispenseEvent.patch} (100%) rename patches/server/{0945-Don-t-load-chunks-for-supporting-block-checks.patch => 0943-Don-t-load-chunks-for-supporting-block-checks.patch} (100%) rename patches/server/{0946-Optimize-player-lookups-for-beacons.patch => 0944-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0947-Add-Sign-getInteractableSideFor.patch => 0945-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0948-Array-backed-synched-entity-data.patch => 0946-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0949-fix-item-meta-for-tadpole-buckets.patch => 0947-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0950-Fix-BanList-API.patch => 0948-Fix-BanList-API.patch} (100%) rename patches/server/{0951-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0949-Determine-lava-and-water-fluid-explosion-resistance-.patch} (81%) rename patches/server/{0952-Fix-possible-NPE-on-painting-creation.patch => 0950-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0953-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0951-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0954-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0952-ExperienceOrb-should-call-EntitySpawnEvent.patch} (88%) rename patches/server/{0955-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0953-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (88%) rename patches/server/{0956-Add-whitelist-events.patch => 0954-Add-whitelist-events.patch} (91%) rename patches/server/{0957-Implement-PlayerFailMoveEvent.patch => 0955-Implement-PlayerFailMoveEvent.patch} (95%) rename patches/server/{0958-Folia-scheduler-and-owned-region-API.patch => 0956-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0959-Only-erase-allay-memory-on-non-item-targets.patch => 0957-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0960-API-for-updating-recipes-on-clients.patch => 0958-API-for-updating-recipes-on-clients.patch} (77%) rename patches/server/{0961-Fix-rotation-when-spawning-display-entities.patch => 0959-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0962-Only-capture-actual-tree-growth.patch => 0960-Only-capture-actual-tree-growth.patch} (100%) rename patches/server/{0963-Use-correct-source-for-mushroom-block-spread-event.patch => 0961-Use-correct-source-for-mushroom-block-spread-event.patch} (83%) rename patches/server/{0964-Respect-randomizeData-on-more-entities-when-spawning.patch => 0962-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0965-Use-correct-seed-on-api-world-load.patch => 0963-Use-correct-seed-on-api-world-load.patch} (90%) rename patches/server/{0966-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0964-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0967-Cache-map-ids-on-item-frames.patch => 0965-Cache-map-ids-on-item-frames.patch} (83%) rename patches/server/{0968-Fix-custom-statistic-criteria-creation.patch => 0966-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0969-Bandaid-fix-for-Effect.patch => 0967-Bandaid-fix-for-Effect.patch} (100%) rename patches/server/{0970-SculkCatalyst-bloom-API.patch => 0968-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0971-API-for-an-entity-s-scoreboard-name.patch => 0969-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0972-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0970-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (95%) rename patches/server/{0973-Deprecate-and-replace-methods-with-old-StructureType.patch => 0971-Deprecate-and-replace-methods-with-old-StructureType.patch} (96%) rename patches/server/{0974-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0972-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (90%) rename patches/server/{0975-Properly-handle-BlockBreakEvent-isDropItems.patch => 0973-Properly-handle-BlockBreakEvent-isDropItems.patch} (83%) rename patches/server/{0976-Fire-entity-death-event-for-ender-dragon.patch => 0974-Fire-entity-death-event-for-ender-dragon.patch} (85%) rename patches/server/{0977-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0975-Configurable-entity-tracking-range-by-Y-coordinate.patch} (86%) rename patches/server/{0978-Add-Listing-API-for-Player.patch => 0976-Add-Listing-API-for-Player.patch} (89%) rename patches/server/{0979-Configurable-Region-Compression-Format.patch => 0977-Configurable-Region-Compression-Format.patch} (91%) rename patches/server/{0980-Expose-clicked-BlockFace-during-BlockDamageEvent.patch => 0978-Add-BlockFace-to-BlockDamageEvent.patch} (84%) rename patches/server/{0981-Fix-NPE-on-Boat-getStatus.patch => 0979-Fix-NPE-on-Boat-getStatus.patch} (87%) rename patches/server/{0982-Expand-Pose-API.patch => 0980-Expand-Pose-API.patch} (90%) rename patches/server/{0983-More-DragonBattle-API.patch => 0981-More-DragonBattle-API.patch} (91%) rename patches/server/{0984-Deep-clone-unhandled-nbt-tags.patch => 0982-Deep-clone-unhandled-nbt-tags.patch} (93%) rename patches/server/{0985-Add-PlayerPickItemEvent.patch => 0983-Add-PlayerPickItemEvent.patch} (83%) rename patches/server/{0986-Improve-performance-of-mass-crafts.patch => 0984-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{0987-Allow-trident-custom-damage.patch => 0985-Allow-trident-custom-damage.patch} (57%) rename patches/server/{0988-Expose-hand-during-BlockCanBuildEvent.patch => 0986-Expose-hand-in-BlockCanBuildEvent.patch} (87%) rename patches/server/{0989-Optimize-nearest-structure-border-iteration.patch => 0987-Optimize-nearest-structure-border-iteration.patch} (91%) rename patches/server/{0990-Implement-OfflinePlayer-isConnected.patch => 0988-Implement-OfflinePlayer-isConnected.patch} (94%) rename patches/server/{0991-Fix-inventory-desync.patch => 0989-Fix-inventory-desync.patch} (91%) rename patches/server/{0992-Add-titleOverride-to-InventoryOpenEvent.patch => 0990-Add-titleOverride-to-InventoryOpenEvent.patch} (85%) rename patches/server/{0993-Configure-sniffer-egg-hatch-time.patch => 0991-Configure-sniffer-egg-hatch-time.patch} (91%) rename patches/server/{0994-Do-crystal-portal-proximity-check-before-entity-look.patch => 0992-Do-crystal-portal-proximity-check-before-entity-look.patch} (85%) rename patches/server/{0995-Skip-POI-finding-if-stuck-in-vehicle.patch => 0993-Skip-POI-finding-if-stuck-in-vehicle.patch} (89%) rename patches/server/{0996-Add-slot-sanity-checks-in-container-clicks.patch => 0994-Add-slot-sanity-checks-in-container-clicks.patch} (79%) rename patches/server/{0997-Call-BlockRedstoneEvents-for-lecterns.patch => 0995-Call-BlockRedstoneEvents-for-lecterns.patch} (89%) rename patches/server/{0998-Allow-proper-checking-of-empty-item-stacks.patch => 0996-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0999-Fix-silent-equipment-change-for-mobs.patch => 0997-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{1000-Fix-spigot-s-Forced-Stats.patch => 0998-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{1001-Add-missing-InventoryHolders-to-inventories.patch => 0999-Add-missing-InventoryHolders-to-inventories.patch} (99%) rename patches/server/{1002-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 1000-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{1003-Actually-optimise-explosions.patch => 1001-Actually-optimise-explosions.patch} (100%) rename patches/server/{1004-Add-missing-logs-for-log-ips-config-option.patch => 1002-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{1005-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 1003-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (92%) rename patches/server/{1006-Fix-SuspiciousStewMeta.patch => 1004-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{1007-Optimise-chunk-tick-iteration.patch => 1005-Optimise-chunk-tick-iteration.patch} (99%) rename patches/server/{1008-Lag-compensation-ticks.patch => 1006-Lag-compensation-ticks.patch} (98%) rename patches/server/{1009-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 1007-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{1010-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 1008-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{1011-Fix-team-sidebar-objectives-not-being-cleared.patch => 1009-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{1012-Optimise-nearby-player-retrieval.patch => 1010-Optimise-nearby-player-retrieval.patch} (69%) rename patches/server/{1014-Fix-missing-map-initialize-event-call.patch => 1011-Fix-missing-map-initialize-event-call.patch} (100%) rename patches/server/{1015-Update-entity-data-when-attaching-firework-to-entity.patch => 1012-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) delete mode 100644 patches/server/1013-Remove-streams-for-villager-AI.patch rename patches/server/{1016-Use-correct-variable-for-initializing-CraftLootTable.patch => 1013-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{1017-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 1014-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{1018-Fix-UnsafeValues-loadAdvancement.patch => 1015-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{1019-Add-player-idle-duration-API.patch => 1016-Add-player-idle-duration-API.patch} (91%) rename patches/server/{1020-Don-t-check-if-we-can-see-non-visible-entities.patch => 1017-Don-t-check-if-we-can-see-non-visible-entities.patch} (84%) rename patches/server/{1021-Fix-NPE-in-SculkBloomEvent-world-access.patch => 1018-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{1022-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (90%) rename patches/server/{1023-Optimize-VarInts.patch => 1020-Optimize-VarInts.patch} (100%) rename patches/server/{1024-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 1021-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{1025-Add-predicate-for-blocks-when-raytracing.patch => 1022-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/server/{1026-Broadcast-take-item-packets-with-collector-as-source.patch => 1023-Broadcast-take-item-packets-with-collector-as-source.patch} (100%) rename patches/server/{1028-Expand-LingeringPotion-API.patch => 1024-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{1029-Add-MaterialTagsTest.patch => 1025-Add-MaterialTagsTest.patch} (100%) rename patches/server/{1030-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 1026-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/server/{1031-Add-hand-to-fish-event-for-all-player-interactions.patch => 1027-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) delete mode 100644 patches/server/1027-fix-secure-profile-with-proxy-online-mode.patch rename patches/server/{1032-Fix-several-issues-with-EntityBreedEvent.patch => 1028-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{1033-Add-UUID-attribute-modifier-API.patch => 1029-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{1034-Fix-missing-event-call-for-entity-teleport-API.patch => 1030-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{1035-Lazily-create-LootContext-for-criterions.patch => 1031-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{1036-Don-t-fire-sync-events-during-worldgen.patch => 1032-Don-t-fire-sync-events-during-worldgen.patch} (99%) rename patches/server/{1037-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 1033-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (93%) rename patches/server/{1038-Restore-vanilla-entity-drops-behavior.patch => 1034-Restore-vanilla-entity-drops-behavior.patch} (98%) rename patches/server/{1039-Add-Structure-check-API.patch => 1035-Add-Structure-check-API.patch} (100%) rename patches/server/{1040-Dont-resend-blocks-on-interactions.patch => 1036-Dont-resend-blocks-on-interactions.patch} (99%) rename patches/server/{1041-Keep-previous-behavior-for-setResourcePack.patch => 1037-Keep-previous-behavior-for-setResourcePack.patch} (94%) rename patches/server/{1042-properly-read-and-store-sus-effect-duration.patch => 1038-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{1043-Use-correct-max-stack-size-in-crafter.patch => 1039-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{1044-add-more-scoreboard-API.patch => 1040-add-more-scoreboard-API.patch} (100%) rename patches/server/{1045-Improve-Registry.patch => 1041-Improve-Registry.patch} (100%) rename patches/server/{1046-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (100%) rename patches/server/{1047-Add-experience-points-API.patch => 1043-Add-experience-points-API.patch} (97%) rename patches/server/{1048-Add-missing-InventoryType.patch => 1044-Add-missing-InventoryType.patch} (100%) rename patches/server/{1049-Add-drops-to-shear-events.patch => 1045-Add-drops-to-shear-events.patch} (99%) rename patches/server/{1050-Add-PlayerShieldDisableEvent.patch => 1046-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/server/{1051-Add-HiddenPotionEffect-API.patch => 1047-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1052-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{1053-fix-ItemMeta-removing-CustomModelData.patch => 1049-fix-ItemMeta-removing-CustomModelData.patch} (91%) rename patches/server/{1054-Validate-ResourceLocation-in-NBT-reading.patch => 1050-Validate-ResourceLocation-in-NBT-reading.patch} (98%) rename patches/server/{1055-Properly-handle-experience-dropping-on-block-break.patch => 1051-Properly-handle-experience-dropping-on-block-break.patch} (96%) rename patches/server/{1056-Fixup-NamespacedKey-handling.patch => 1052-Fixup-NamespacedKey-handling.patch} (100%) diff --git a/patches/api/0090-Add-more-fields-to-AsyncPreLoginEvent.patch b/patches/api/0090-Add-more-fields-to-AsyncPreLoginEvent.patch index b73f9ab1ffc1..9dbdcfcde777 100644 --- a/patches/api/0090-Add-more-fields-to-AsyncPreLoginEvent.patch +++ b/patches/api/0090-Add-more-fields-to-AsyncPreLoginEvent.patch @@ -3,6 +3,8 @@ From: Aikar Date: Sun, 18 Mar 2018 11:43:30 -0400 Subject: [PATCH] Add more fields to AsyncPreLoginEvent +Co-authored-by: Connor Linfoot +Co-authored-by: MCMDEV diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java index 3432872303aa0df97b5d9090fe98b269ef3cb9f4..f8b69b52ec8efa103e4e78e1b5c6a015e73d2a75 100644 diff --git a/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch b/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch index 8c58e6d697dd..073bea1053fd 100644 --- a/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch +++ b/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch @@ -5,8 +5,25 @@ Subject: [PATCH] Add setting for proxy online mode status TODO: Add isProxyOnlineMode check to Metrics +diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +index 1ee3e38703175707dec6493a1785b1bbc5170793..73b398ffc86498151944bedb0ef12d63de35c603 100644 +--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java ++++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +@@ -584,7 +584,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + public boolean enforceSecureProfile() { + DedicatedServerProperties dedicatedserverproperties = this.getProperties(); + +- return dedicatedserverproperties.enforceSecureProfile && dedicatedserverproperties.onlineMode && this.services.canValidateProfileKeys(); ++ // Paper start - Add setting for proxy online mode status ++ return dedicatedserverproperties.enforceSecureProfile ++ && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() ++ && this.services.canValidateProfileKeys(); ++ // Paper end - Add setting for proxy online mode status + } + + @Override diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 0a2875f63523cc5eeec603e18eb62520587a8475..09de1ca3802e97442bc090db0cc87fd833ad3a9f 100644 +index 0a2875f63523cc5eeec603e18eb62520587a8475..64f7c3180a745a62bb5d71a42668cc67b5d56c3a 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -89,7 +89,8 @@ public class GameProfileCache { @@ -15,7 +32,7 @@ index 0a2875f63523cc5eeec603e18eb62520587a8475..09de1ca3802e97442bc090db0cc87fd8 - if (!org.apache.commons.lang3.StringUtils.isBlank(name)) // Paper - Don't lookup a profile with a blank name) + if (!org.apache.commons.lang3.StringUtils.isBlank(name) // Paper - Don't lookup a profile with a blank name -+ && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()) // Paper - only run in online mode - 100 COL ++ && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()) // Paper - Add setting for proxy online mode status repository.findProfilesByNames(new String[]{name}, profilelookupcallback); GameProfile gameprofile = (GameProfile) atomicreference.get(); @@ -24,12 +41,12 @@ index 0a2875f63523cc5eeec603e18eb62520587a8475..09de1ca3802e97442bc090db0cc87fd8 private static boolean usesAuthentication() { - return GameProfileCache.usesAuthentication; -+ return io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode(); // Paper ++ return io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode(); // Paper - Add setting for proxy online mode status } public void add(GameProfile profile) { diff --git a/src/main/java/net/minecraft/server/players/OldUsersConverter.java b/src/main/java/net/minecraft/server/players/OldUsersConverter.java -index 78b11d6fd74fb0714a8013fdc78d096643c4f83c..6a64c58fff9bbed542bf29a029531996f2a50d00 100644 +index 78b11d6fd74fb0714a8013fdc78d096643c4f83c..14bd0b94ece3f826f822b4900c7250ebdc27d937 100644 --- a/src/main/java/net/minecraft/server/players/OldUsersConverter.java +++ b/src/main/java/net/minecraft/server/players/OldUsersConverter.java @@ -66,7 +66,8 @@ public class OldUsersConverter { @@ -38,12 +55,12 @@ index 78b11d6fd74fb0714a8013fdc78d096643c4f83c..6a64c58fff9bbed542bf29a029531996 - if (server.usesAuthentication() || org.spigotmc.SpigotConfig.bungee) { // Spigot: bungee = online mode, for now. + if (server.usesAuthentication() || -+ (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode())) { // Spigot: bungee = online mode, for now. // Paper - Handle via setting ++ (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode())) { // Spigot: bungee = online mode, for now. // Paper - Add setting for proxy online mode status server.getProfileRepository().findProfilesByNames(astring, callback); } else { String[] astring1 = astring; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f8613718893c778cac3396fcedba1cf8144f0f0e..876c82e1f1e74417978fd974bd747562b9f8ccdd 100644 +index f8613718893c778cac3396fcedba1cf8144f0f0e..6d45d5f149211eaad9a07019290dac2c3d04084c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1821,7 +1821,7 @@ public final class CraftServer implements Server { @@ -51,7 +68,7 @@ index f8613718893c778cac3396fcedba1cf8144f0f0e..876c82e1f1e74417978fd974bd747562 GameProfile profile = null; // Only fetch an online UUID in online mode - if (this.getOnlineMode() || org.spigotmc.SpigotConfig.bungee) { // Spigot: bungee = online mode, for now. -+ if (this.getOnlineMode() || io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()) { // Paper - Handle via setting ++ if (this.getOnlineMode() || io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()) { // Paper - Add setting for proxy online mode status // This is potentially blocking :( profile = this.console.getProfileCache().get(name).orElse(null); } diff --git a/patches/server/0365-Improved-Watchdog-Support.patch b/patches/server/0365-Improved-Watchdog-Support.patch index 243fe13fb04c..1d1edf3f8224 100644 --- a/patches/server/0365-Improved-Watchdog-Support.patch +++ b/patches/server/0365-Improved-Watchdog-Support.patch @@ -231,7 +231,7 @@ index ce113cc2bc52c1135799190a22e0be21744b58cc..9a25d351df1141e9218d37c0f90e2d67 this.functionManager.replaceLibrary(this.resources.managers.getFunctionLibrary()); this.structureTemplateManager.onResourceManagerReload(this.resources.resourceManager); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 36312e6ec95324c16a5e70f3cc8c66127653b965..9ddcca2c17c15c5c7d88046aeae8b5588ad4612d 100644 +index 5f4f993243f19f1e88b7f2bc5e40a6b2125fd819..c9cca6ba3500791485bf19155156c38c24f1c761 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -269,7 +269,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -253,7 +253,7 @@ index 36312e6ec95324c16a5e70f3cc8c66127653b965..9ddcca2c17c15c5c7d88046aeae8b558 } @Override -@@ -774,7 +775,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface +@@ -778,7 +779,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @Override public void stopServer() { super.stopServer(); diff --git a/patches/server/0421-Remove-some-streams-from-structures.patch b/patches/server/0421-Remove-some-streams-from-structures.patch deleted file mode 100644 index 136b102df3f0..000000000000 --- a/patches/server/0421-Remove-some-streams-from-structures.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: JRoy -Date: Mon, 29 Jun 2020 17:03:06 -0400 -Subject: [PATCH] Remove some streams from structures - -This showed up a lot in the spark profiler, should have a low-medium performance improvement. - -diff --git a/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java b/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java -index bb8d8edb47621665872a5e8fc01512ba40c1b913..5d721dc196a6bde511f46dbdedb2e1d98553ac52 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java -@@ -36,9 +36,10 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { - int j = pos.getMinBlockZ(); - ObjectList objectList = new ObjectArrayList<>(10); - ObjectList objectList2 = new ObjectArrayList<>(32); -- world.startsForStructure(pos, (structure) -> { -+ // Paper start - replace for each -+ for (net.minecraft.world.level.levelgen.structure.StructureStart start : world.startsForStructure(pos, (structure) -> { - return structure.terrainAdaptation() != TerrainAdjustment.NONE; -- }).forEach((start) -> { -+ })) { // Paper end - TerrainAdjustment terrainAdjustment = start.getStructure().terrainAdaptation(); - - for(StructurePiece structurePiece : start.getPieces()) { -@@ -51,9 +52,11 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { - } - - for(JigsawJunction jigsawJunction : poolElementStructurePiece.getJunctions()) { -- int i = jigsawJunction.getSourceX(); -- int j = jigsawJunction.getSourceZ(); -- if (i > i - 12 && j > j - 12 && i < i + 15 + 12 && j < j + 15 + 12) { -+ // Paper start - decompile fix -+ int i2 = jigsawJunction.getSourceX(); -+ int j2 = jigsawJunction.getSourceZ(); -+ if (i2 > i - 12 && j2 > j - 12 && i2 < i + 15 + 12 && j2 < j + 15 + 12) { -+ // Paper end - objectList2.add(jigsawJunction); - } - } -@@ -63,7 +66,7 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { - } - } - -- }); -+ } // Paper - return new Beardifier(objectList.iterator(), objectList2.iterator()); - } - diff --git a/patches/server/0421-Remove-streams-from-hot-code.patch b/patches/server/0421-Remove-streams-from-hot-code.patch new file mode 100644 index 000000000000..8be147a9f901 --- /dev/null +++ b/patches/server/0421-Remove-streams-from-hot-code.patch @@ -0,0 +1,244 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: JRoy +Date: Wed, 1 Jul 2020 18:01:49 -0400 +Subject: [PATCH] Remove streams from hot code + +Co-authored-by: Bjarne Koll +Co-authored-by: Spottedleaf + +diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java +index 419eadbe31b86b7192fd7a63268d547705e7c7ce..281b5cf91135984a37ad013614c910f7d4d2fee3 100644 +--- a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java ++++ b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java +@@ -52,7 +52,7 @@ public class GateBehavior implements BehaviorControl + if (this.hasRequiredMemories(entity)) { + this.status = Behavior.Status.RUNNING; + this.orderPolicy.apply(this.behaviors); +- this.runningPolicy.apply(this.behaviors.stream(), world, entity, time); ++ this.runningPolicy.apply(this.behaviors, world, entity, time); // Paper - Perf: Remove streams from hot code + return true; + } else { + return false; +@@ -61,11 +61,13 @@ public class GateBehavior implements BehaviorControl + + @Override + public final void tickOrStop(ServerLevel world, E entity, long time) { +- this.behaviors.stream().filter((task) -> { +- return task.getStatus() == Behavior.Status.RUNNING; +- }).forEach((task) -> { +- task.tickOrStop(world, entity, time); +- }); ++ // Paper start - Perf: Remove streams from hot code ++ for (final BehaviorControl task : this.behaviors) { ++ if (task.getStatus() == Behavior.Status.RUNNING) { ++ task.tickOrStop(world, entity, time); ++ } ++ } ++ // Paper end - Perf: Remove streams from hot code + if (this.behaviors.stream().noneMatch((task) -> { + return task.getStatus() == Behavior.Status.RUNNING; + })) { +@@ -77,12 +79,16 @@ public class GateBehavior implements BehaviorControl + @Override + public final void doStop(ServerLevel world, E entity, long time) { + this.status = Behavior.Status.STOPPED; +- this.behaviors.stream().filter((task) -> { +- return task.getStatus() == Behavior.Status.RUNNING; +- }).forEach((task) -> { +- task.doStop(world, entity, time); +- }); +- this.exitErasedMemories.forEach(entity.getBrain()::eraseMemory); ++ // Paper start - Perf: Remove streams from hot code ++ for (final BehaviorControl task : this.behaviors) { ++ if (task.getStatus() == Behavior.Status.RUNNING) { ++ task.doStop(world, entity, time); ++ } ++ } ++ for (final MemoryModuleType exitErasedMemory : this.exitErasedMemories) { ++ entity.getBrain().eraseMemory(exitErasedMemory); ++ } ++ // Paper end - Perf: Remove streams from hot code + } + + @Override +@@ -116,26 +122,30 @@ public class GateBehavior implements BehaviorControl + + public static enum RunningPolicy { + RUN_ONE { ++ // Paper start - Perf: Remove streams from hot code + @Override +- public void apply(Stream> tasks, ServerLevel world, E entity, long time) { +- tasks.filter((task) -> { +- return task.getStatus() == Behavior.Status.STOPPED; +- }).filter((task) -> { +- return task.tryStart(world, entity, time); +- }).findFirst(); ++ public void apply(ShufflingList> tasks, ServerLevel world, E entity, long time) { ++ for (final BehaviorControl task : tasks) { ++ if (task.getStatus() == Behavior.Status.STOPPED && task.tryStart(world, entity, time)) { ++ break; ++ } ++ } ++ // Paper end - Perf: Remove streams from hot code + } + }, + TRY_ALL { ++ // Paper start - Perf: Remove streams from hot code + @Override +- public void apply(Stream> tasks, ServerLevel world, E entity, long time) { +- tasks.filter((task) -> { +- return task.getStatus() == Behavior.Status.STOPPED; +- }).forEach((task) -> { +- task.tryStart(world, entity, time); +- }); ++ public void apply(ShufflingList> tasks, ServerLevel world, E entity, long time) { ++ for (final BehaviorControl task : tasks) { ++ if (task.getStatus() == Behavior.Status.STOPPED) { ++ task.tryStart(world, entity, time); ++ } ++ } ++ // Paper end - Perf: Remove streams from hot code + } + }; + +- public abstract void apply(Stream> tasks, ServerLevel world, E entity, long time); ++ public abstract void apply(ShufflingList> tasks, ServerLevel world, E entity, long time); // Paper - Perf: Remove streams from hot code + } + } +diff --git a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java +index 76dffb2705e5207db96895f82f1c7c5638f817c6..7321ca0b2ae1443b57b9389f80a237225afa45ca 100644 +--- a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java ++++ b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java +@@ -61,8 +61,22 @@ public class GossipContainer { + }); + } + ++ // Paper start - Perf: Remove streams from hot code ++ private List decompress() { ++ List list = new it.unimi.dsi.fastutil.objects.ObjectArrayList<>(); ++ for (Map.Entry entry : this.gossips.entrySet()) { ++ for (GossipContainer.GossipEntry cur : entry.getValue().decompress(entry.getKey())) { ++ if (cur.weightedValue() != 0) { ++ list.add(cur); ++ } ++ } ++ } ++ return list; ++ } ++ // Paper end - Perf: Remove streams from hot code ++ + private Collection selectGossipsForTransfer(RandomSource random, int count) { +- List list = this.unpack().toList(); ++ List list = this.decompress(); // Paper - Perf: Remove streams from hot code + if (list.isEmpty()) { + return Collections.emptyList(); + } else { +@@ -156,7 +170,7 @@ public class GossipContainer { + } + + public T store(DynamicOps ops) { +- return GossipContainer.GossipEntry.LIST_CODEC.encodeStart(ops, this.unpack().toList()).resultOrPartial((error) -> { ++ return GossipContainer.GossipEntry.LIST_CODEC.encodeStart(ops, this.decompress()).resultOrPartial((error) -> { // Paper - Perf: Remove streams from hot code + LOGGER.warn("Failed to serialize gossips: {}", (Object)error); + }).orElseGet(ops::emptyList); + } +@@ -184,11 +198,23 @@ public class GossipContainer { + final Object2IntMap entries = new Object2IntOpenHashMap<>(); + + public int weightedValue(Predicate gossipTypeFilter) { +- return this.entries.object2IntEntrySet().stream().filter((entry) -> { +- return gossipTypeFilter.test(entry.getKey()); +- }).mapToInt((entry) -> { +- return entry.getIntValue() * (entry.getKey()).weight; +- }).sum(); ++ // Paper start - Perf: Remove streams from hot code ++ int weight = 0; ++ for (Object2IntMap.Entry entry : entries.object2IntEntrySet()) { ++ if (gossipTypeFilter.test(entry.getKey())) { ++ weight += entry.getIntValue() * entry.getKey().weight; ++ } ++ } ++ return weight; ++ } ++ ++ public List decompress(UUID uuid) { ++ List list = new it.unimi.dsi.fastutil.objects.ObjectArrayList<>(); ++ for (Object2IntMap.Entry entry : entries.object2IntEntrySet()) { ++ list.add(new GossipContainer.GossipEntry(uuid, entry.getKey(), entry.getIntValue())); ++ } ++ return list; ++ // Paper end - Perf: Remove streams from hot code + } + + public Stream unpack(UUID target) { +diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java +index a41c3365db8e9999b686f5bf4bd888458cee43a5..18e2fd705fe0db7cb9e3afe1ce7c8dcfaf93b1a5 100644 +--- a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java ++++ b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java +@@ -25,14 +25,18 @@ public class NearestItemSensor extends Sensor { + protected void doTick(ServerLevel world, Mob entity) { + Brain brain = entity.getBrain(); + List list = world.getEntitiesOfClass(ItemEntity.class, entity.getBoundingBox().inflate(32.0D, 16.0D, 32.0D), (itemEntity) -> { +- return true; ++ return itemEntity.closerThan(entity, MAX_DISTANCE_TO_WANTED_ITEM) && entity.wantsToPickUp(itemEntity.getItem()); // Paper - Perf: Move predicate into getEntities + }); + list.sort(Comparator.comparingDouble(entity::distanceToSqr)); +- Optional optional = list.stream().filter((itemEntity) -> { +- return entity.wantsToPickUp(itemEntity.getItem()); +- }).filter((itemEntity) -> { +- return itemEntity.closerThan(entity, 32.0D); +- }).filter(entity::hasLineOfSight).findFirst(); +- brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM, optional); ++ // Paper start - Perf: remove streams from hot code ++ ItemEntity nearest = null; ++ for (ItemEntity entityItem : list) { ++ if (entity.hasLineOfSight(entityItem)) { // Paper - Perf: Move predicate into getEntities ++ nearest = entityItem; ++ break; ++ } ++ } ++ brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM, Optional.ofNullable(nearest)); ++ // Paper end - Perf: remove streams from hot code + } + } +diff --git a/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java b/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java +index bb8d8edb47621665872a5e8fc01512ba40c1b913..dcb62d768d234f60af77ffb589ac2011afcfae4b 100644 +--- a/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java ++++ b/src/main/java/net/minecraft/world/level/levelgen/Beardifier.java +@@ -36,9 +36,10 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { + int j = pos.getMinBlockZ(); + ObjectList objectList = new ObjectArrayList<>(10); + ObjectList objectList2 = new ObjectArrayList<>(32); +- world.startsForStructure(pos, (structure) -> { ++ // Paper start - Perf: Remove streams from hot code ++ for (net.minecraft.world.level.levelgen.structure.StructureStart start : world.startsForStructure(pos, (structure) -> { + return structure.terrainAdaptation() != TerrainAdjustment.NONE; +- }).forEach((start) -> { ++ })) { // Paper end - Perf: Remove streams from hot code + TerrainAdjustment terrainAdjustment = start.getStructure().terrainAdaptation(); + + for(StructurePiece structurePiece : start.getPieces()) { +@@ -51,9 +52,11 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { + } + + for(JigsawJunction jigsawJunction : poolElementStructurePiece.getJunctions()) { +- int i = jigsawJunction.getSourceX(); +- int j = jigsawJunction.getSourceZ(); +- if (i > i - 12 && j > j - 12 && i < i + 15 + 12 && j < j + 15 + 12) { ++ // Paper start - decompile fix ++ int i2 = jigsawJunction.getSourceX(); ++ int j2 = jigsawJunction.getSourceZ(); ++ if (i2 > i - 12 && j2 > j - 12 && i2 < i + 15 + 12 && j2 < j + 15 + 12) { ++ // Paper end - decompile fix + objectList2.add(jigsawJunction); + } + } +@@ -63,7 +66,7 @@ public class Beardifier implements DensityFunctions.BeardifierOrMarker { + } + } + +- }); ++ } // Paper - Perf: Remove streams from hot code + return new Beardifier(objectList.iterator(), objectList2.iterator()); + } + diff --git a/patches/server/0422-Remove-streams-from-classes-related-villager-gossip.patch b/patches/server/0422-Remove-streams-from-classes-related-villager-gossip.patch deleted file mode 100644 index b9c37f3a0848..000000000000 --- a/patches/server/0422-Remove-streams-from-classes-related-villager-gossip.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: JRoy -Date: Wed, 1 Jul 2020 18:01:49 -0400 -Subject: [PATCH] Remove streams from classes related villager gossip - - -diff --git a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java -index 76dffb2705e5207db96895f82f1c7c5638f817c6..097007c1c25ba55d9916fc820dd1d1149d81f6f4 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java -+++ b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java -@@ -61,8 +61,22 @@ public class GossipContainer { - }); - } - -+ // Paper start - Remove streams from reputation -+ private List decompress() { -+ List list = new it.unimi.dsi.fastutil.objects.ObjectArrayList<>(); -+ for (Map.Entry entry : this.gossips.entrySet()) { -+ for (GossipContainer.GossipEntry cur : entry.getValue().decompress(entry.getKey())) { -+ if (cur.weightedValue() != 0) { -+ list.add(cur); -+ } -+ } -+ } -+ return list; -+ } -+ // Paper end -+ - private Collection selectGossipsForTransfer(RandomSource random, int count) { -- List list = this.unpack().toList(); -+ List list = this.decompress(); // Paper - Remove streams from reputation - if (list.isEmpty()) { - return Collections.emptyList(); - } else { -@@ -156,7 +170,7 @@ public class GossipContainer { - } - - public T store(DynamicOps ops) { -- return GossipContainer.GossipEntry.LIST_CODEC.encodeStart(ops, this.unpack().toList()).resultOrPartial((error) -> { -+ return GossipContainer.GossipEntry.LIST_CODEC.encodeStart(ops, this.decompress()).resultOrPartial((error) -> { - LOGGER.warn("Failed to serialize gossips: {}", (Object)error); - }).orElseGet(ops::emptyList); - } -@@ -184,11 +198,23 @@ public class GossipContainer { - final Object2IntMap entries = new Object2IntOpenHashMap<>(); - - public int weightedValue(Predicate gossipTypeFilter) { -- return this.entries.object2IntEntrySet().stream().filter((entry) -> { -- return gossipTypeFilter.test(entry.getKey()); -- }).mapToInt((entry) -> { -- return entry.getIntValue() * (entry.getKey()).weight; -- }).sum(); -+ // Paper start - Remove streams from reputation -+ int weight = 0; -+ for (Object2IntMap.Entry entry : entries.object2IntEntrySet()) { -+ if (gossipTypeFilter.test(entry.getKey())) { -+ weight += entry.getIntValue() * entry.getKey().weight; -+ } -+ } -+ return weight; -+ } -+ -+ public List decompress(UUID uuid) { -+ List list = new it.unimi.dsi.fastutil.objects.ObjectArrayList<>(); -+ for (Object2IntMap.Entry entry : entries.object2IntEntrySet()) { -+ list.add(new GossipContainer.GossipEntry(uuid, entry.getKey(), entry.getIntValue())); -+ } -+ return list; -+ // Paper end - } - - public Stream unpack(UUID target) { diff --git a/patches/server/0423-Support-components-in-ItemMeta.patch b/patches/server/0422-Support-components-in-ItemMeta.patch similarity index 100% rename from patches/server/0423-Support-components-in-ItemMeta.patch rename to patches/server/0422-Support-components-in-ItemMeta.patch diff --git a/patches/server/0424-Improve-fix-EntityTargetLivingEntityEvent.patch b/patches/server/0423-Improve-fix-EntityTargetLivingEntityEvent.patch similarity index 100% rename from patches/server/0424-Improve-fix-EntityTargetLivingEntityEvent.patch rename to patches/server/0423-Improve-fix-EntityTargetLivingEntityEvent.patch diff --git a/patches/server/0425-Add-entity-liquid-API.patch b/patches/server/0424-Add-entity-liquid-API.patch similarity index 94% rename from patches/server/0425-Add-entity-liquid-API.patch rename to patches/server/0424-Add-entity-liquid-API.patch index 165c4bb55b44..3d2fc104d12b 100644 --- a/patches/server/0425-Add-entity-liquid-API.patch +++ b/patches/server/0424-Add-entity-liquid-API.patch @@ -8,7 +8,7 @@ public net.minecraft.world.entity.Entity isInRain()Z public net.minecraft.world.entity.Entity isInBubbleColumn()Z diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 4d71849e8330e6f758e10223fabdb5d6ed0e7221..3444051416632eb30ef2cb820767285718095497 100644 +index 3da7fbec0fb55fb590fc9ff4bd0f984a5cac9fba..c17bb16567ad2354dc80e710469730b1dbc55b08 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1023,5 +1023,40 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0426-Update-itemstack-legacy-name-and-lore.patch b/patches/server/0425-Update-itemstack-legacy-name-and-lore.patch similarity index 100% rename from patches/server/0426-Update-itemstack-legacy-name-and-lore.patch rename to patches/server/0425-Update-itemstack-legacy-name-and-lore.patch diff --git a/patches/server/0427-Add-PrepareResultEvent.patch b/patches/server/0426-Add-PrepareResultEvent.patch similarity index 99% rename from patches/server/0427-Add-PrepareResultEvent.patch rename to patches/server/0426-Add-PrepareResultEvent.patch index 25662bdf0ac7..45a8d11a2c63 100644 --- a/patches/server/0427-Add-PrepareResultEvent.patch +++ b/patches/server/0426-Add-PrepareResultEvent.patch @@ -94,7 +94,7 @@ index 9c2fe69ced7a46bbd8b0fbe10fa67d0a39b0f375..70ecc3f673ebd56b65ad901e10f40c28 private void setupRecipeList(Container input, ItemStack stack) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index d0c267a79f262dafdd74a6c661a234b9301eddd2..31de936ece1391d75d41a00479a82f8dd0cbc850 100644 +index 90b93b7139f9a11028b0d78b109b478b8052e982..afccfcab4c1682c47bffe7e3c10a9ec60092e8a0 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1714,26 +1714,53 @@ public class CraftEventFactory { diff --git a/patches/server/0428-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0427-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch similarity index 91% rename from patches/server/0428-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch rename to patches/server/0427-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch index abea4015312c..038713778fd1 100644 --- a/patches/server/0428-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch +++ b/patches/server/0427-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't check chunk for portal on world gen entity add diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4b1366a456e7132d438fc99bd62e1dd77e35b35f..90c66f87e721ef34bf3f47b601456fece3064225 100644 +index 2fa60d96da53ca954dc1421745fafaeb2e806ed0..05fe4828af59e3cd894c9979ecb08ad0e1c6b2d3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3510,7 +3510,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0429-Fix-arrows-never-despawning-MC-125757.patch b/patches/server/0428-Fix-arrows-never-despawning-MC-125757.patch similarity index 100% rename from patches/server/0429-Fix-arrows-never-despawning-MC-125757.patch rename to patches/server/0428-Fix-arrows-never-despawning-MC-125757.patch diff --git a/patches/server/0430-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0429-Thread-Safe-Vanilla-Command-permission-checking.patch similarity index 100% rename from patches/server/0430-Thread-Safe-Vanilla-Command-permission-checking.patch rename to patches/server/0429-Thread-Safe-Vanilla-Command-permission-checking.patch diff --git a/patches/server/0431-Fix-SPIGOT-5989.patch b/patches/server/0430-Fix-SPIGOT-5989.patch similarity index 97% rename from patches/server/0431-Fix-SPIGOT-5989.patch rename to patches/server/0430-Fix-SPIGOT-5989.patch index 6b4d6c7bc15a..b863fc029c08 100644 --- a/patches/server/0431-Fix-SPIGOT-5989.patch +++ b/patches/server/0430-Fix-SPIGOT-5989.patch @@ -10,7 +10,7 @@ This fixes that by checking if the modified spawn location is still at a respawn anchor. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ed686f82dfd264a6b5d0a89163786574525f043e..e9c19cb33ce1ca81b81dbf9dc927289a8ab0520d 100644 +index 62888ec5766806016545e34758da20884626697a..5f24db6b68b629812d90b7b5e2f06c21732ed098 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -808,6 +808,7 @@ public abstract class PlayerList { diff --git a/patches/server/0432-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/patches/server/0431-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch similarity index 100% rename from patches/server/0432-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch rename to patches/server/0431-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch diff --git a/patches/server/0433-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch b/patches/server/0432-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch similarity index 89% rename from patches/server/0433-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch rename to patches/server/0432-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch index e67a4ea7a699..de07acbef284 100644 --- a/patches/server/0433-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch +++ b/patches/server/0432-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix SPIGOT-5885 Unable to disable advancements diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 49553615418bcbb6f3e4be6f38a9ecd0a650502b..0cb453b03977e90addc26f71d0518f134af3c36a 100644 +index 6170ff19f44a93e99c6aece6ed456a6af912efbb..1c64c81980739bbf09b71e1d1dd6d86dbf924e0d 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -175,6 +175,7 @@ public class Main { diff --git a/patches/server/0434-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/patches/server/0433-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch similarity index 100% rename from patches/server/0434-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch rename to patches/server/0433-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch diff --git a/patches/server/0435-Optimize-NetworkManager-Exception-Handling.patch b/patches/server/0434-Optimize-NetworkManager-Exception-Handling.patch similarity index 100% rename from patches/server/0435-Optimize-NetworkManager-Exception-Handling.patch rename to patches/server/0434-Optimize-NetworkManager-Exception-Handling.patch diff --git a/patches/server/0436-Fix-some-rails-connecting-improperly.patch b/patches/server/0435-Fix-some-rails-connecting-improperly.patch similarity index 100% rename from patches/server/0436-Fix-some-rails-connecting-improperly.patch rename to patches/server/0435-Fix-some-rails-connecting-improperly.patch diff --git a/patches/server/0437-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch b/patches/server/0436-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch similarity index 100% rename from patches/server/0437-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch rename to patches/server/0436-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch diff --git a/patches/server/0438-Brand-support.patch b/patches/server/0437-Brand-support.patch similarity index 96% rename from patches/server/0438-Brand-support.patch rename to patches/server/0437-Brand-support.patch index 6a623585c546..0aca87477ddf 100644 --- a/patches/server/0438-Brand-support.patch +++ b/patches/server/0437-Brand-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 14126f4f2f0c8d5ae06275fd735178a2c4d3efc0..f73988baef278bf603fc53a8a371514a094d9c37 100644 +index fddbd703071ec93d6e3a9ecc1ff17b3e74eb8986..8eb1d297ff0317ac679e85e03d0b4546fa1ed315 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -278,6 +278,7 @@ public class ServerPlayer extends Player { @@ -57,7 +57,7 @@ index 44aa178968c87fa72023a2c0f33c1a8123f3db72..f489b207cd3b62a33723f2e9ed0f4602 } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 196ece23104bc67a2df4e528851c0a2df8baaf5b..ff8bef2a88f04e4a333f90de05faddd66c69be20 100644 +index 49862c0338b84924003df85883760317d1ca7aec..e4068c64363a0769df7a01fbf8b04ac17df042fc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3030,6 +3030,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0439-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0438-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 100% rename from patches/server/0439-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/server/0438-Add-playPickupItemAnimation-to-LivingEntity.patch diff --git a/patches/server/0440-Don-t-require-FACING-data.patch b/patches/server/0439-Don-t-require-FACING-data.patch similarity index 100% rename from patches/server/0440-Don-t-require-FACING-data.patch rename to patches/server/0439-Don-t-require-FACING-data.patch diff --git a/patches/server/0441-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0440-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 93% rename from patches/server/0441-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/server/0440-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 7b2f9eb26f90..01a8c26fd014 100644 --- a/patches/server/0441-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0440-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 206aa969d1ea8831f4c30be11ab26ecd31fd433e..08c4b6e02c257cfbdaa0da6d65e531d4ed7be122 100644 +index 8a7dd236435b08e0857041641eec9edcef936503..307f2d8adae141cfb7f5fd3c08e68863ce3ed75f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2034,9 +2034,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -21,7 +21,7 @@ index 206aa969d1ea8831f4c30be11ab26ecd31fd433e..08c4b6e02c257cfbdaa0da6d65e531d4 // if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add this.removeTicketsForSpawn(this.paperConfig().spawn.keepSpawnLoadedRange * 16, prevSpawn); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 8efc044e5a38766aa29cb62db553a8390de50139..52628759695a441ff21f3077cfe9f75a6e999456 100644 +index 36d7c41505d41443e6034dfc88ce177fe47d980f..6a6bdc23767d4b0413352eda860f3fd3076f492e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -262,12 +262,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0442-Add-moon-phase-API.patch b/patches/server/0441-Add-moon-phase-API.patch similarity index 90% rename from patches/server/0442-Add-moon-phase-API.patch rename to patches/server/0441-Add-moon-phase-API.patch index 56f71054b93a..a3c711045348 100644 --- a/patches/server/0442-Add-moon-phase-API.patch +++ b/patches/server/0441-Add-moon-phase-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add moon phase API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 954d7a92d9deaf2332ddcfbb7f53f425ada822b6..be0ca9e82b88518109eec88735e628b8de9ebe72 100644 +index 588d583201bdd850052bdd2beaf08fc9b5473689..0fb214ddd919b568da64541fd9b531c65caa5fad 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -499,4 +499,11 @@ public abstract class CraftRegionAccessor implements RegionAccessor { diff --git a/patches/server/0443-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0442-Do-not-let-the-server-load-chunks-from-newer-version.patch similarity index 100% rename from patches/server/0443-Do-not-let-the-server-load-chunks-from-newer-version.patch rename to patches/server/0442-Do-not-let-the-server-load-chunks-from-newer-version.patch diff --git a/patches/server/0444-Prevent-headless-pistons-from-being-created.patch b/patches/server/0443-Prevent-headless-pistons-from-being-created.patch similarity index 100% rename from patches/server/0444-Prevent-headless-pistons-from-being-created.patch rename to patches/server/0443-Prevent-headless-pistons-from-being-created.patch diff --git a/patches/server/0445-Add-BellRingEvent.patch b/patches/server/0444-Add-BellRingEvent.patch similarity index 93% rename from patches/server/0445-Add-BellRingEvent.patch rename to patches/server/0444-Add-BellRingEvent.patch index d307d78495cc..35d5f6fb9cd8 100644 --- a/patches/server/0445-Add-BellRingEvent.patch +++ b/patches/server/0444-Add-BellRingEvent.patch @@ -7,7 +7,7 @@ Add a new event, BellRingEvent, to trigger whenever a player rings a village bell. Passes along the bell block and the player who rang it. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 31de936ece1391d75d41a00479a82f8dd0cbc850..e33dbade37e4763f838b6cd1267a4f0b9c1533b9 100644 +index afccfcab4c1682c47bffe7e3c10a9ec60092e8a0..6595c82741d5d7596fae982ac44461ae9086c064 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -366,10 +366,11 @@ public class CraftEventFactory { diff --git a/patches/server/0446-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0445-Add-zombie-targets-turtle-egg-config.patch similarity index 100% rename from patches/server/0446-Add-zombie-targets-turtle-egg-config.patch rename to patches/server/0445-Add-zombie-targets-turtle-egg-config.patch diff --git a/patches/server/0447-Buffer-joins-to-world.patch b/patches/server/0446-Buffer-joins-to-world.patch similarity index 100% rename from patches/server/0447-Buffer-joins-to-world.patch rename to patches/server/0446-Buffer-joins-to-world.patch diff --git a/patches/server/0448-Eigencraft-redstone-implementation.patch b/patches/server/0447-Eigencraft-redstone-implementation.patch similarity index 100% rename from patches/server/0448-Eigencraft-redstone-implementation.patch rename to patches/server/0447-Eigencraft-redstone-implementation.patch diff --git a/patches/server/0449-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0448-Fix-hex-colors-not-working-in-some-kick-messages.patch similarity index 97% rename from patches/server/0449-Fix-hex-colors-not-working-in-some-kick-messages.patch rename to patches/server/0448-Fix-hex-colors-not-working-in-some-kick-messages.patch index 95c8bad34bff..efe0e50025fa 100644 --- a/patches/server/0449-Fix-hex-colors-not-working-in-some-kick-messages.patch +++ b/patches/server/0448-Fix-hex-colors-not-working-in-some-kick-messages.patch @@ -29,7 +29,7 @@ index 21aafb1ea51769659462d722aa318460b37cbc1c..5d7f092e966d5b0496f48bd5c9d27415 this.connection.disconnect(ichatmutablecomponent); } else { diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 615fb00e50f3c434809f8e1b201d457b9beae8fd..faf1ae03a308ad07091e3e847370e9bda66288b2 100644 +index e9d94abb77693a845ea6318b7045bd61a7a46feb..e2c7fa3fd05ebb3b76388410d26b6493baf4f877 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -99,7 +99,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, diff --git a/patches/server/0450-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0449-PortalCreateEvent-needs-to-know-its-entity.patch similarity index 97% rename from patches/server/0450-PortalCreateEvent-needs-to-know-its-entity.patch rename to patches/server/0449-PortalCreateEvent-needs-to-know-its-entity.patch index 86c18082c551..12f0ccc20050 100644 --- a/patches/server/0450-PortalCreateEvent-needs-to-know-its-entity.patch +++ b/patches/server/0449-PortalCreateEvent-needs-to-know-its-entity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PortalCreateEvent needs to know its entity diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index e9df7ea1228603ee3ebf515b6419f668cbe3aef7..0dfa1ca78f747b2ea7e6b9f59d4561daad8bfcc8 100644 +index c5e36e7e96902fc0e8e9bb409907c6424cf223bd..761a46c21aaddcd43b4c33f477658605648127e9 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -478,7 +478,7 @@ public final class ItemStack { @@ -79,7 +79,7 @@ index 8fce3ad36a6ee8166f4abd9e0e369b641d487af9..3fb197ee3bfd3f36881b7d67f7a37f03 private static int getFireTickDelay(RandomSource random) { diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index c64213fe3ec0bd34cd1b31ae18eff1fecbcf63d6..31dc96c371953eb7ca3d3b444b123ade1f24c909 100644 +index 79ff216e473ebc4bf7ab3ade42b0fa224f7e4c19..fb46c66d916931fd80a99c59030ca05e12d29953 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -43,6 +43,7 @@ import net.minecraft.world.item.DyeColor; diff --git a/patches/server/0451-Add-more-Evoker-API.patch b/patches/server/0450-Add-more-Evoker-API.patch similarity index 100% rename from patches/server/0451-Add-more-Evoker-API.patch rename to patches/server/0450-Add-more-Evoker-API.patch diff --git a/patches/server/0452-Add-methods-to-get-translation-keys.patch b/patches/server/0451-Add-methods-to-get-translation-keys.patch similarity index 98% rename from patches/server/0452-Add-methods-to-get-translation-keys.patch rename to patches/server/0451-Add-methods-to-get-translation-keys.patch index 7307a84d685a..a4ba0afcdc9c 100644 --- a/patches/server/0452-Add-methods-to-get-translation-keys.patch +++ b/patches/server/0451-Add-methods-to-get-translation-keys.patch @@ -10,7 +10,7 @@ public org.bukkit.craftbukkit.inventory.CraftMetaFirework getNBT(Lorg/bukkit/Fir Co-authored-by: MeFisto94 diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index d0b1a419c9bc73066d79459dc3e5998160f8038b..a7783474afef0a2bab7e99e475c6d130bb88b01c 100644 +index f041b5d80bff9c022b007e04ef1558e9116acc6b..a586442422a2b2c06b785af0d261d3e19eb1d59b 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -669,5 +669,10 @@ public class CraftBlock implements Block { diff --git a/patches/server/0453-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0452-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/server/0453-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/server/0452-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/server/0454-Cache-block-data-strings.patch b/patches/server/0453-Cache-block-data-strings.patch similarity index 100% rename from patches/server/0454-Cache-block-data-strings.patch rename to patches/server/0453-Cache-block-data-strings.patch diff --git a/patches/server/0455-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0454-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch similarity index 100% rename from patches/server/0455-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch rename to patches/server/0454-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch diff --git a/patches/server/0456-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0455-Add-additional-open-container-api-to-HumanEntity.patch similarity index 97% rename from patches/server/0456-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/server/0455-Add-additional-open-container-api-to-HumanEntity.patch index 2cac2e1af08c..0c392ad75b20 100644 --- a/patches/server/0456-Add-additional-open-container-api-to-HumanEntity.patch +++ b/patches/server/0455-Add-additional-open-container-api-to-HumanEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add additional open container api to HumanEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 2d0e861275a921ccb3aabcb76ae6eb31f67dd373..7406094fc58e5df4f5d553bb882c75ba6ef766a9 100644 +index dcc5947143dc39e8f629b29d3649174327783801..6d67df9ae039c7e803c3fe6207e59923bd7be218 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -461,6 +461,70 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0457-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0456-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch similarity index 100% rename from patches/server/0457-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch rename to patches/server/0456-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch diff --git a/patches/server/0458-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0457-Extend-block-drop-capture-to-capture-all-items-added.patch similarity index 96% rename from patches/server/0458-Extend-block-drop-capture-to-capture-all-items-added.patch rename to patches/server/0457-Extend-block-drop-capture-to-capture-all-items-added.patch index 3e68ea2f2e41..415fdddb48db 100644 --- a/patches/server/0458-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/patches/server/0457-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Extend block drop capture to capture all items added to the diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 08c4b6e02c257cfbdaa0da6d65e531d4ed7be122..5bd212dcf32fcf3ad5c3dafbd3d413755a8cd934 100644 +index 307f2d8adae141cfb7f5fd3c08e68863ce3ed75f..902f3a7ae5ba9c15b634bb2f214be7d85c6d5a00 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1532,6 +1532,12 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0459-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0458-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 94% rename from patches/server/0459-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/server/0458-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index 35e55d554a7e..d1e3210ee85c 100644 --- a/patches/server/0459-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/0458-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 452789dc47393580374bf438e6229b1e6cd3832b..e3275f09f48c9e69179fd17901d4294ddb68a435 100644 +index ec224193e9ca7734fe533d5cfc0e316d5eed2adb..03eee2a591a533ec9930a262ffd4af2023a07c91 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4493,4 +4493,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0460-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0459-Lazily-track-plugin-scoreboards-by-default.patch similarity index 100% rename from patches/server/0460-Lazily-track-plugin-scoreboards-by-default.patch rename to patches/server/0459-Lazily-track-plugin-scoreboards-by-default.patch diff --git a/patches/server/0461-Entity-isTicking.patch b/patches/server/0460-Entity-isTicking.patch similarity index 87% rename from patches/server/0461-Entity-isTicking.patch rename to patches/server/0460-Entity-isTicking.patch index b225bb8bcab7..5e72f3630c21 100644 --- a/patches/server/0461-Entity-isTicking.patch +++ b/patches/server/0460-Entity-isTicking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e3275f09f48c9e69179fd17901d4294ddb68a435..46637e6913e5f2aae0be6aa67b95f1fe604b021e 100644 +index 03eee2a591a533ec9930a262ffd4af2023a07c91..4a1245fb3ad821ee997b35f180390a07bc871982 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4498,5 +4498,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -19,7 +19,7 @@ index e3275f09f48c9e69179fd17901d4294ddb68a435..46637e6913e5f2aae0be6aa67b95f1fe // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index fdf22cb358040738a1b7fabf1cef47a5d33af832..58b591d047e88c00ea09b33ece9f16fde98d3208 100644 +index d5e8c8ed7528cdac203a7594ccf9576db0e5f019..6e302dff4c0b48694d234091b1637ff3b7b4b098 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1058,5 +1058,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0462-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0461-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch similarity index 100% rename from patches/server/0462-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch rename to patches/server/0461-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch diff --git a/patches/server/0463-Fix-Concurrency-issue-in-ShufflingList.patch b/patches/server/0462-Fix-Concurrency-issue-in-ShufflingList.patch similarity index 97% rename from patches/server/0463-Fix-Concurrency-issue-in-ShufflingList.patch rename to patches/server/0462-Fix-Concurrency-issue-in-ShufflingList.patch index 07c57efa624e..064548966e3d 100644 --- a/patches/server/0463-Fix-Concurrency-issue-in-ShufflingList.patch +++ b/patches/server/0462-Fix-Concurrency-issue-in-ShufflingList.patch @@ -7,7 +7,7 @@ if multiple threads from worldgen sort at same time, it will crash. So make a copy of the list for sorting purposes. diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java -index 419eadbe31b86b7192fd7a63268d547705e7c7ce..b45c4f50705f80163d44d9e588f86a5770f5be38 100644 +index 1fbe732e840d2018269361f7c9e7d3e4606dbff5..225af5abb839880dd6df15af28172bdc74f7b9e5 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java @@ -17,7 +17,7 @@ public class GateBehavior implements BehaviorControl diff --git a/patches/server/0464-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0463-Reset-Ender-Crystals-on-Dragon-Spawn.patch similarity index 100% rename from patches/server/0464-Reset-Ender-Crystals-on-Dragon-Spawn.patch rename to patches/server/0463-Reset-Ender-Crystals-on-Dragon-Spawn.patch diff --git a/patches/server/0465-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0464-Fix-for-large-move-vectors-crashing-server.patch similarity index 98% rename from patches/server/0465-Fix-for-large-move-vectors-crashing-server.patch rename to patches/server/0464-Fix-for-large-move-vectors-crashing-server.patch index 437b5971fbe2..9077c29c5fa4 100644 --- a/patches/server/0465-Fix-for-large-move-vectors-crashing-server.patch +++ b/patches/server/0464-Fix-for-large-move-vectors-crashing-server.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix for large move vectors crashing server Check movement distance also based on current position. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0d4e641187b305c4b56782b4c70bca39efcaa69c..5ee4d04f9770672f451b8a87b65075432203e310 100644 +index 5550f60424d827616c935e3b0036f1b4f6144e5c..27b84c1db793af21c947ab31e7732a3b371da40a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -473,9 +473,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0466-Optimise-getType-calls.patch b/patches/server/0465-Optimise-getType-calls.patch similarity index 100% rename from patches/server/0466-Optimise-getType-calls.patch rename to patches/server/0465-Optimise-getType-calls.patch diff --git a/patches/server/0467-Villager-resetOffers.patch b/patches/server/0466-Villager-resetOffers.patch similarity index 100% rename from patches/server/0467-Villager-resetOffers.patch rename to patches/server/0466-Villager-resetOffers.patch diff --git a/patches/server/0468-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0467-Retain-block-place-order-when-capturing-blockstates.patch similarity index 93% rename from patches/server/0468-Retain-block-place-order-when-capturing-blockstates.patch rename to patches/server/0467-Retain-block-place-order-when-capturing-blockstates.patch index 2d7288e3c4e0..8ddc270c44c9 100644 --- a/patches/server/0468-Retain-block-place-order-when-capturing-blockstates.patch +++ b/patches/server/0467-Retain-block-place-order-when-capturing-blockstates.patch @@ -10,7 +10,7 @@ In general, look at making this logic more robust (i.e properly handling cases where a captured entry is overriden) - but for now this will do. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index d89b6c99e1cf4c6171ea6f2dad1e812760707603..f9b37892ca92f0fb4943088ad6c4f1f48db287c6 100644 +index a7fca2d662e013809fef088213cf0275b596629d..3588ad0b5e8510a00b1a65c73defec39ee7fb108 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -160,7 +160,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0469-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0468-Reduce-blockpos-allocation-from-pathfinding.patch similarity index 100% rename from patches/server/0469-Reduce-blockpos-allocation-from-pathfinding.patch rename to patches/server/0468-Reduce-blockpos-allocation-from-pathfinding.patch diff --git a/patches/server/0470-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0469-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/server/0470-Fix-item-locations-dropped-from-campfires.patch rename to patches/server/0469-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/server/0471-Fixed-TileEntityBell-memory-leak.patch b/patches/server/0470-Fixed-TileEntityBell-memory-leak.patch similarity index 100% rename from patches/server/0471-Fixed-TileEntityBell-memory-leak.patch rename to patches/server/0470-Fixed-TileEntityBell-memory-leak.patch diff --git a/patches/server/0472-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0471-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/server/0472-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/server/0471-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/server/0473-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0472-Add-getOfflinePlayerIfCached-String.patch similarity index 93% rename from patches/server/0473-Add-getOfflinePlayerIfCached-String.patch rename to patches/server/0472-Add-getOfflinePlayerIfCached-String.patch index d0ca1491c1b4..6f4af765a56a 100644 --- a/patches/server/0473-Add-getOfflinePlayerIfCached-String.patch +++ b/patches/server/0472-Add-getOfflinePlayerIfCached-String.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ea2ca7a37d0bdcc1ccc1627e4246a8290e32d16f..95edbf365a916687d9a6a2e7598435fa1a32baf4 100644 +index 776b3d4d165303715e70c44689bb556541cb7582..8617abb738f311e2f7141ec98799f6cc8b4c6cf5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1909,6 +1909,28 @@ public final class CraftServer implements Server { diff --git a/patches/server/0474-Add-ignore-discounts-API.patch b/patches/server/0473-Add-ignore-discounts-API.patch similarity index 100% rename from patches/server/0474-Add-ignore-discounts-API.patch rename to patches/server/0473-Add-ignore-discounts-API.patch diff --git a/patches/server/0475-Toggle-for-removing-existing-dragon.patch b/patches/server/0474-Toggle-for-removing-existing-dragon.patch similarity index 100% rename from patches/server/0475-Toggle-for-removing-existing-dragon.patch rename to patches/server/0474-Toggle-for-removing-existing-dragon.patch diff --git a/patches/server/0476-Fix-client-lag-on-advancement-loading.patch b/patches/server/0475-Fix-client-lag-on-advancement-loading.patch similarity index 100% rename from patches/server/0476-Fix-client-lag-on-advancement-loading.patch rename to patches/server/0475-Fix-client-lag-on-advancement-loading.patch diff --git a/patches/server/0477-Item-no-age-no-player-pickup.patch b/patches/server/0476-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/server/0477-Item-no-age-no-player-pickup.patch rename to patches/server/0476-Item-no-age-no-player-pickup.patch diff --git a/patches/server/0478-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/0477-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 99% rename from patches/server/0478-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/0477-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch index 9a80ce81b870..18c0ed99c8b3 100644 --- a/patches/server/0478-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch +++ b/patches/server/0477-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch @@ -3,7 +3,6 @@ From: Aikar Date: Tue, 4 Aug 2020 22:24:15 +0200 Subject: [PATCH] Optimize Pathfinder - Remove Streams / Optimized collections -1.17 Update: Please do this k thx bb I utilized the IDE to convert streams to non streams code, so shouldn't be any risk of behavior change. Only did minor optimization of the generated code set to remove unnecessary things. diff --git a/patches/server/0479-Beacon-API-custom-effect-ranges.patch b/patches/server/0478-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/server/0479-Beacon-API-custom-effect-ranges.patch rename to patches/server/0478-Beacon-API-custom-effect-ranges.patch diff --git a/patches/server/0480-Add-API-for-quit-reason.patch b/patches/server/0479-Add-API-for-quit-reason.patch similarity index 94% rename from patches/server/0480-Add-API-for-quit-reason.patch rename to patches/server/0479-Add-API-for-quit-reason.patch index 949147c91a8d..16cb4b1757c5 100644 --- a/patches/server/0480-Add-API-for-quit-reason.patch +++ b/patches/server/0479-Add-API-for-quit-reason.patch @@ -25,7 +25,7 @@ index 4df0342c38f8ff763a08a145ec94325bcd50689d..2db208427447b94cdfdb22b38b6dc669 Connection.LOGGER.debug("Failed to sent packet", throwable); if (this.getSending() == PacketFlow.CLIENTBOUND) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 478abaffd1a80949b96f1c1774c98134be92e5ac..063742400f3065ace62b64b42d952517ae00ea1f 100644 +index 8eb1d297ff0317ac679e85e03d0b4546fa1ed315..ff75234d76e4f6a939841c982a6fc3e33b36ea61 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -279,6 +279,7 @@ public class ServerPlayer extends Player { @@ -37,7 +37,7 @@ index 478abaffd1a80949b96f1c1774c98134be92e5ac..063742400f3065ace62b64b42d952517 // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index e58e8fe05a6e826ef8bf6f04924e2aadba738d97..c07b0fcc62e8ce05ddfe9c6c9c9dd57d85e6683b 100644 +index f489b207cd3b62a33723f2e9ed0f46020d7f4fd1..0616a8e89931680602da2dbc640906708aebd5ca 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -315,6 +315,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -49,7 +49,7 @@ index e58e8fe05a6e826ef8bf6f04924e2aadba738d97..c07b0fcc62e8ce05ddfe9c6c9c9dd57d this.connection.disconnect(ichatbasecomponent); })); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e9c19cb33ce1ca81b81dbf9dc927289a8ab0520d..d101376e05abb72aa874c11fe820fdee469302b1 100644 +index 5f24db6b68b629812d90b7b5e2f06c21732ed098..e2669eb88b76460207f2283711b64e0d6fa8f942 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -579,7 +579,7 @@ public abstract class PlayerList { diff --git a/patches/server/0481-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0480-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/server/0481-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0480-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/server/0482-Expose-world-spawn-angle.patch b/patches/server/0481-Expose-world-spawn-angle.patch similarity index 91% rename from patches/server/0482-Expose-world-spawn-angle.patch rename to patches/server/0481-Expose-world-spawn-angle.patch index 80e8e1b9390e..cfa87b6cd4e0 100644 --- a/patches/server/0482-Expose-world-spawn-angle.patch +++ b/patches/server/0481-Expose-world-spawn-angle.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose world spawn angle diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d101376e05abb72aa874c11fe820fdee469302b1..3ae3d47f3b94b4626f37ffbca1d2d958931b3b71 100644 +index e2669eb88b76460207f2283711b64e0d6fa8f942..8cbcbf358b978c85ade7efdefc4e138c09f634ab 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -851,7 +851,7 @@ public abstract class PlayerList { diff --git a/patches/server/0483-Add-Destroy-Speed-API.patch b/patches/server/0482-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/server/0483-Add-Destroy-Speed-API.patch rename to patches/server/0482-Add-Destroy-Speed-API.patch diff --git a/patches/server/0484-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0483-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 93% rename from patches/server/0484-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0483-Fix-Player-spawnParticle-x-y-z-precision-loss.patch index 28cd4073a5d8..8ac0f729ad9d 100644 --- a/patches/server/0484-Fix-Player-spawnParticle-x-y-z-precision-loss.patch +++ b/patches/server/0483-Fix-Player-spawnParticle-x-y-z-precision-loss.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ff8bef2a88f04e4a333f90de05faddd66c69be20..58731389c9b120395f4eb9e38c8e8584147fe9fd 100644 +index e4068c64363a0769df7a01fbf8b04ac17df042fc..ba30c5e17a294cee9f408fdd4e31849c0e5d28ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2593,7 +2593,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0485-Add-LivingEntity-clearActiveItem.patch b/patches/server/0484-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/server/0485-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0484-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/server/0486-Add-PlayerItemCooldownEvent.patch b/patches/server/0485-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0486-Add-PlayerItemCooldownEvent.patch rename to patches/server/0485-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0487-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0486-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0487-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0486-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0488-More-lightning-API.patch b/patches/server/0487-More-lightning-API.patch similarity index 93% rename from patches/server/0488-More-lightning-API.patch rename to patches/server/0487-More-lightning-API.patch index bda291858a0a..967871902a8a 100644 --- a/patches/server/0488-More-lightning-API.patch +++ b/patches/server/0487-More-lightning-API.patch @@ -8,7 +8,7 @@ public net.minecraft.world.entity.LightningBolt life public net.minecraft.world.entity.LightningBolt flashes diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java -index 849c7d1e4eabfaea491b6c9004f764307ad1b9c6..cd9bd7f06e55e970b7791e635610bb5e7491d102 100644 +index 0b2ba5c93355a5b7548d4634d964732e45477a34..6fed8075aa75e3852dc826a45ca44603c0446a56 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java @@ -66,4 +66,23 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike diff --git a/patches/server/0489-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0488-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 100% rename from patches/server/0489-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0488-Climbing-should-not-bypass-cramming-gamerule.patch diff --git a/patches/server/0490-Added-missing-default-perms-for-commands.patch b/patches/server/0489-Added-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0490-Added-missing-default-perms-for-commands.patch rename to patches/server/0489-Added-missing-default-perms-for-commands.patch diff --git a/patches/server/0491-Add-PlayerShearBlockEvent.patch b/patches/server/0490-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0491-Add-PlayerShearBlockEvent.patch rename to patches/server/0490-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0492-Limit-recipe-packets.patch b/patches/server/0491-Limit-recipe-packets.patch similarity index 96% rename from patches/server/0492-Limit-recipe-packets.patch rename to patches/server/0491-Limit-recipe-packets.patch index 8aeb9981909c..738970877fb3 100644 --- a/patches/server/0492-Limit-recipe-packets.patch +++ b/patches/server/0491-Limit-recipe-packets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Limit recipe packets diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d3b90fbdd198cdb82263a39561ee5392e32edf41..3b29de365044cf6d51903dd18b6c3ece04a5fff8 100644 +index 27b84c1db793af21c947ab31e7732a3b371da40a..3683e3b56da96e5528d63319892b5ec76075d86c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -258,6 +258,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0493-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0492-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0493-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0492-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0494-Player-Chunk-Load-Unload-Events.patch b/patches/server/0493-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/server/0494-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0493-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/server/0495-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0494-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0495-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0494-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0496-Expose-LivingEntity-hurt-direction.patch b/patches/server/0495-Expose-LivingEntity-hurt-direction.patch similarity index 96% rename from patches/server/0496-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0495-Expose-LivingEntity-hurt-direction.patch index 43d3dccdaf39..998fc4558ca8 100644 --- a/patches/server/0496-Expose-LivingEntity-hurt-direction.patch +++ b/patches/server/0495-Expose-LivingEntity-hurt-direction.patch @@ -18,7 +18,7 @@ index 4bac05cb48d81dc9776d90502b6f12285b92122b..2957b3929c1e92af1b1a2636b83b757a public boolean affectsSpawning = true; // Paper end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 7406094fc58e5df4f5d553bb882c75ba6ef766a9..faaed968a3e771c1db3957e2b42acf6d87a38842 100644 +index 6d67df9ae039c7e803c3fe6207e59923bd7be218..cdbd8d7d1c23809a7345f0c3b0c7f9356be47900 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -126,6 +126,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0497-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0496-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 91% rename from patches/server/0497-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0496-Add-OBSTRUCTED-reason-to-BedEnterResult.patch index ca858b50f05b..bc839e262d5a 100644 --- a/patches/server/0497-Add-OBSTRUCTED-reason-to-BedEnterResult.patch +++ b/patches/server/0496-Add-OBSTRUCTED-reason-to-BedEnterResult.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add OBSTRUCTED reason to BedEnterResult diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e33dbade37e4763f838b6cd1267a4f0b9c1533b9..0e0c64c9fad14ad77af784e719fe6f203479db14 100644 +index 6595c82741d5d7596fae982ac44461ae9086c064..5b047c46a4d3f0c7aca7ceb562f8e429e4f498fc 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -301,6 +301,10 @@ public class CraftEventFactory { diff --git a/patches/server/0498-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch b/patches/server/0497-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch similarity index 100% rename from patches/server/0498-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch rename to patches/server/0497-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch diff --git a/patches/server/0499-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/0498-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch similarity index 100% rename from patches/server/0499-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch rename to patches/server/0498-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch diff --git a/patches/server/0500-Implement-TargetHitEvent.patch b/patches/server/0499-Implement-TargetHitEvent.patch similarity index 100% rename from patches/server/0500-Implement-TargetHitEvent.patch rename to patches/server/0499-Implement-TargetHitEvent.patch diff --git a/patches/server/0501-MC-4-Fix-item-position-desync.patch b/patches/server/0500-MC-4-Fix-item-position-desync.patch similarity index 96% rename from patches/server/0501-MC-4-Fix-item-position-desync.patch rename to patches/server/0500-MC-4-Fix-item-position-desync.patch index 48a9f48a82dc..7d3b45708b2c 100644 --- a/patches/server/0501-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0500-MC-4-Fix-item-position-desync.patch @@ -28,7 +28,7 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..33d9131e9c75ef23cd637f5d6c39a270 public Vec3 decode(long x, long y, long z) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 28d12ffb79a29be67b6476ae7fa87b557f55839f..a0c70b204007a906076d3a1f28c84521ad4471c4 100644 +index 82eb980dd463c423b2b30a3149166a227608bb96..5436949cd928303cf80b606c747f386f0189f774 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4269,6 +4269,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0502-Additional-Block-Material-API-s.patch b/patches/server/0501-Additional-Block-Material-API-s.patch similarity index 100% rename from patches/server/0502-Additional-Block-Material-API-s.patch rename to patches/server/0501-Additional-Block-Material-API-s.patch diff --git a/patches/server/0503-Fix-harming-potion-dupe.patch b/patches/server/0502-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0503-Fix-harming-potion-dupe.patch rename to patches/server/0502-Fix-harming-potion-dupe.patch diff --git a/patches/server/0504-Implement-API-to-get-Material-from-Boats-and-Minecar.patch b/patches/server/0503-Implement-API-to-get-Material-from-Boats-and-Minecar.patch similarity index 100% rename from patches/server/0504-Implement-API-to-get-Material-from-Boats-and-Minecar.patch rename to patches/server/0503-Implement-API-to-get-Material-from-Boats-and-Minecar.patch diff --git a/patches/server/0505-Cache-burn-durations.patch b/patches/server/0504-Cache-burn-durations.patch similarity index 100% rename from patches/server/0505-Cache-burn-durations.patch rename to patches/server/0504-Cache-burn-durations.patch diff --git a/patches/server/0506-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0505-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/server/0506-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0505-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/server/0507-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0506-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 100% rename from patches/server/0507-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/server/0506-Fix-Not-a-string-Map-Conversion-spam.patch diff --git a/patches/server/0508-Implement-PlayerFlowerPotManipulateEvent.patch b/patches/server/0507-Implement-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0508-Implement-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0507-Implement-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0509-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0508-Fix-interact-event-not-being-called-sometimes.patch similarity index 97% rename from patches/server/0509-Fix-interact-event-not-being-called-sometimes.patch rename to patches/server/0508-Fix-interact-event-not-being-called-sometimes.patch index 36ce1a332234..f5e0fb2f2559 100644 --- a/patches/server/0509-Fix-interact-event-not-being-called-sometimes.patch +++ b/patches/server/0508-Fix-interact-event-not-being-called-sometimes.patch @@ -11,7 +11,7 @@ Subject: [PATCH] Fix interact event not being called sometimes Co-authored-by: Moulberry diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3b29de365044cf6d51903dd18b6c3ece04a5fff8..2c87b676290e4de8e119f3ba5fd4292af9d0654e 100644 +index 3683e3b56da96e5528d63319892b5ec76075d86c..48815e94a0eacbdd03ea8630ae4a53f1a4747520 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1765,7 +1765,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0510-Zombie-API-breaking-doors.patch b/patches/server/0509-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0510-Zombie-API-breaking-doors.patch rename to patches/server/0509-Zombie-API-breaking-doors.patch diff --git a/patches/server/0511-Fix-nerfed-slime-when-splitting.patch b/patches/server/0510-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/server/0511-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0510-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/server/0512-Add-EntityLoadCrossbowEvent.patch b/patches/server/0511-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0512-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0511-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0513-Added-WorldGameRuleChangeEvent.patch b/patches/server/0512-Added-WorldGameRuleChangeEvent.patch similarity index 98% rename from patches/server/0513-Added-WorldGameRuleChangeEvent.patch rename to patches/server/0512-Added-WorldGameRuleChangeEvent.patch index 0c45472f913d..02a675af5cbc 100644 --- a/patches/server/0513-Added-WorldGameRuleChangeEvent.patch +++ b/patches/server/0512-Added-WorldGameRuleChangeEvent.patch @@ -64,7 +64,7 @@ index 334001cb749600c973c82391e1c11f0e40bd2dfb..2a480026c3bfb06e6556fe5b11d9712c public int get() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 52628759695a441ff21f3077cfe9f75a6e999456..3fbc0ea59ac2e56e3f024104c7904614827c8e04 100644 +index 6a6bdc23767d4b0413352eda860f3fd3076f492e..b70239ff42f5c7f4754bae311385e4804891fd86 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1930,8 +1930,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0514-Added-ServerResourcesReloadedEvent.patch b/patches/server/0513-Added-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/server/0514-Added-ServerResourcesReloadedEvent.patch rename to patches/server/0513-Added-ServerResourcesReloadedEvent.patch diff --git a/patches/server/0515-Added-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0514-Added-world-settings-for-mobs-picking-up-loot.patch similarity index 100% rename from patches/server/0515-Added-world-settings-for-mobs-picking-up-loot.patch rename to patches/server/0514-Added-world-settings-for-mobs-picking-up-loot.patch diff --git a/patches/server/0516-Implemented-BlockFailedDispenseEvent.patch b/patches/server/0515-Implemented-BlockFailedDispenseEvent.patch similarity index 96% rename from patches/server/0516-Implemented-BlockFailedDispenseEvent.patch rename to patches/server/0515-Implemented-BlockFailedDispenseEvent.patch index 31283d0db6cc..04cf1f8abd8f 100644 --- a/patches/server/0516-Implemented-BlockFailedDispenseEvent.patch +++ b/patches/server/0515-Implemented-BlockFailedDispenseEvent.patch @@ -32,7 +32,7 @@ index 913ed110d8402d377152753325901eb7f3ac82d6..675644974ae6fb5380a6496a2ac3ec4d } else { ItemStack itemstack = tileentitydispenser.getItem(i); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 0e0c64c9fad14ad77af784e719fe6f203479db14..8b2fda9c6cbb0872798ce3240d9a6d32cb61b82e 100644 +index 5b047c46a4d3f0c7aca7ceb562f8e429e4f498fc..5bd9efcf3bedf71a19674251271b9b72c39df444 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -2040,4 +2040,12 @@ public class CraftEventFactory { diff --git a/patches/server/0517-Added-PlayerLecternPageChangeEvent.patch b/patches/server/0516-Added-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/server/0517-Added-PlayerLecternPageChangeEvent.patch rename to patches/server/0516-Added-PlayerLecternPageChangeEvent.patch diff --git a/patches/server/0518-Added-PlayerLoomPatternSelectEvent.patch b/patches/server/0517-Added-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/server/0518-Added-PlayerLoomPatternSelectEvent.patch rename to patches/server/0517-Added-PlayerLoomPatternSelectEvent.patch diff --git a/patches/server/0519-Configurable-door-breaking-difficulty.patch b/patches/server/0518-Configurable-door-breaking-difficulty.patch similarity index 100% rename from patches/server/0519-Configurable-door-breaking-difficulty.patch rename to patches/server/0518-Configurable-door-breaking-difficulty.patch diff --git a/patches/server/0520-Empty-commands-shall-not-be-dispatched.patch b/patches/server/0519-Empty-commands-shall-not-be-dispatched.patch similarity index 89% rename from patches/server/0520-Empty-commands-shall-not-be-dispatched.patch rename to patches/server/0519-Empty-commands-shall-not-be-dispatched.patch index 3eefe6463d2d..bf2b5b144d3e 100644 --- a/patches/server/0520-Empty-commands-shall-not-be-dispatched.patch +++ b/patches/server/0519-Empty-commands-shall-not-be-dispatched.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Empty commands shall not be dispatched diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index b27256d251e5db5781197319f79f89cc7638c80b..f43baa1f4dbed72bbcf130e180956cfd31998256 100644 +index 337ff2b3e8ea6f106656cf4bef029d81998e0e58..2de557a5ed91e2036a7f558cfca8b174cd534959 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -287,6 +287,7 @@ public class Commands { diff --git a/patches/server/0521-Remove-stale-POIs.patch b/patches/server/0520-Remove-stale-POIs.patch similarity index 91% rename from patches/server/0521-Remove-stale-POIs.patch rename to patches/server/0520-Remove-stale-POIs.patch index 1215d86bfc27..b7bb2e5aa767 100644 --- a/patches/server/0521-Remove-stale-POIs.patch +++ b/patches/server/0520-Remove-stale-POIs.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove stale POIs diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5bd212dcf32fcf3ad5c3dafbd3d413755a8cd934..9ad59776ad035b8f6069f5df1fda174002ef58d1 100644 +index 902f3a7ae5ba9c15b634bb2f214be7d85c6d5a00..efbdcaff160e1c8e666d54a9babe35ac325ec8a5 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2103,6 +2103,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0522-Fix-villager-boat-exploit.patch b/patches/server/0521-Fix-villager-boat-exploit.patch similarity index 93% rename from patches/server/0522-Fix-villager-boat-exploit.patch rename to patches/server/0521-Fix-villager-boat-exploit.patch index 53da0387cc01..6aca9a61ef9e 100644 --- a/patches/server/0522-Fix-villager-boat-exploit.patch +++ b/patches/server/0521-Fix-villager-boat-exploit.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix villager boat exploit diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 3ae3d47f3b94b4626f37ffbca1d2d958931b3b71..1131ee88f35c3898f0119c414c8376b0d9130169 100644 +index 8cbcbf358b978c85ade7efdefc4e138c09f634ab..8137afc62e5430666ee9e74460109f7408baeffd 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -604,6 +604,14 @@ public abstract class PlayerList { diff --git a/patches/server/0523-Add-sendOpLevel-API.patch b/patches/server/0522-Add-sendOpLevel-API.patch similarity index 96% rename from patches/server/0523-Add-sendOpLevel-API.patch rename to patches/server/0522-Add-sendOpLevel-API.patch index c9ab9f7adc3e..be2e48d0a32a 100644 --- a/patches/server/0523-Add-sendOpLevel-API.patch +++ b/patches/server/0522-Add-sendOpLevel-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9ed8c8d90db1ae785b7f6b7e9ae7dc1147cb8a29..1e02dbbd1fbee57da79eade5a0c9cf70e38b2f13 100644 +index 8137afc62e5430666ee9e74460109f7408baeffd..32f93ed20f5f2cec71850d7e0ce8a633fd5efc82 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1105,6 +1105,11 @@ public abstract class PlayerList { diff --git a/patches/server/0524-TODO-Registry-Modification-API.patch b/patches/server/0523-TODO-Registry-Modification-API.patch similarity index 100% rename from patches/server/0524-TODO-Registry-Modification-API.patch rename to patches/server/0523-TODO-Registry-Modification-API.patch diff --git a/patches/server/0525-Add-StructuresLocateEvent.patch b/patches/server/0524-Add-StructuresLocateEvent.patch similarity index 100% rename from patches/server/0525-Add-StructuresLocateEvent.patch rename to patches/server/0524-Add-StructuresLocateEvent.patch diff --git a/patches/server/0526-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0525-Collision-option-for-requiring-a-player-participant.patch similarity index 100% rename from patches/server/0526-Collision-option-for-requiring-a-player-participant.patch rename to patches/server/0525-Collision-option-for-requiring-a-player-participant.patch diff --git a/patches/server/0527-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0526-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch similarity index 100% rename from patches/server/0527-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch rename to patches/server/0526-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch diff --git a/patches/server/0528-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0527-Return-chat-component-with-empty-text-instead-of-thr.patch similarity index 100% rename from patches/server/0528-Return-chat-component-with-empty-text-instead-of-thr.patch rename to patches/server/0527-Return-chat-component-with-empty-text-instead-of-thr.patch diff --git a/patches/server/0529-Make-schedule-command-per-world.patch b/patches/server/0528-Make-schedule-command-per-world.patch similarity index 100% rename from patches/server/0529-Make-schedule-command-per-world.patch rename to patches/server/0528-Make-schedule-command-per-world.patch diff --git a/patches/server/0530-Configurable-max-leash-distance.patch b/patches/server/0529-Configurable-max-leash-distance.patch similarity index 100% rename from patches/server/0530-Configurable-max-leash-distance.patch rename to patches/server/0529-Configurable-max-leash-distance.patch diff --git a/patches/server/0531-Implement-BlockPreDispenseEvent.patch b/patches/server/0530-Implement-BlockPreDispenseEvent.patch similarity index 95% rename from patches/server/0531-Implement-BlockPreDispenseEvent.patch rename to patches/server/0530-Implement-BlockPreDispenseEvent.patch index 92e4e0ee35ce..a840af8a0a2c 100644 --- a/patches/server/0531-Implement-BlockPreDispenseEvent.patch +++ b/patches/server/0530-Implement-BlockPreDispenseEvent.patch @@ -17,7 +17,7 @@ index 21c37ad365e09a296c3e7a2d0cde7a29ced09c33..52e92ffd6bf5d3d721807a0b3a8e2d30 tileentitydispenser.setItem(i, idispensebehavior.dispense(sourceblock, itemstack)); } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 8b2fda9c6cbb0872798ce3240d9a6d32cb61b82e..59dcf578c326354bde835b5ebe94f8425f6b53b9 100644 +index 5bd9efcf3bedf71a19674251271b9b72c39df444..3fef79f0e3b8a05b11b77802b80acc8e5c584653 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -2047,5 +2047,11 @@ public class CraftEventFactory { diff --git a/patches/server/0532-Added-firing-of-PlayerChangeBeaconEffectEvent.patch b/patches/server/0531-Added-firing-of-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/server/0532-Added-firing-of-PlayerChangeBeaconEffectEvent.patch rename to patches/server/0531-Added-firing-of-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/server/0533-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0532-Add-toggle-for-always-placing-the-dragon-egg.patch similarity index 100% rename from patches/server/0533-Add-toggle-for-always-placing-the-dragon-egg.patch rename to patches/server/0532-Add-toggle-for-always-placing-the-dragon-egg.patch diff --git a/patches/server/0534-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0533-Added-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/server/0534-Added-PlayerStonecutterRecipeSelectEvent.patch rename to patches/server/0533-Added-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/server/0535-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/server/0534-Add-dropLeash-variable-to-EntityUnleashEvent.patch similarity index 99% rename from patches/server/0535-Add-dropLeash-variable-to-EntityUnleashEvent.patch rename to patches/server/0534-Add-dropLeash-variable-to-EntityUnleashEvent.patch index def86a56f0b7..a8c76b8b3faf 100644 --- a/patches/server/0535-Add-dropLeash-variable-to-EntityUnleashEvent.patch +++ b/patches/server/0534-Add-dropLeash-variable-to-EntityUnleashEvent.patch @@ -122,7 +122,7 @@ index 16784fcc853e23689a854e7dc6c03ed8182a164e..4eb97572a97a8d98af37c4223f42fc63 flag1 = true; } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 59dcf578c326354bde835b5ebe94f8425f6b53b9..158f2656864f559100b33c8a48b6a1c0f2d827fa 100644 +index 3fef79f0e3b8a05b11b77802b80acc8e5c584653..2d9d6d735a13e0e0fc1f277f48c7bdb05aa3352a 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1637,8 +1637,10 @@ public class CraftEventFactory { diff --git a/patches/server/0536-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0535-Reset-shield-blocking-on-dimension-change.patch similarity index 89% rename from patches/server/0536-Reset-shield-blocking-on-dimension-change.patch rename to patches/server/0535-Reset-shield-blocking-on-dimension-change.patch index 35b8ed8daeef..d95df4f1e8b0 100644 --- a/patches/server/0536-Reset-shield-blocking-on-dimension-change.patch +++ b/patches/server/0535-Reset-shield-blocking-on-dimension-change.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Reset shield blocking on dimension change diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 090ff649eeef45fe4c0403a171e5eddff12d2c7d..9db7bfe3782e96921e3a65ed60f4494770210d5a 100644 +index ff75234d76e4f6a939841c982a6fc3e33b36ea61..33477a639304c1491b5eea8585051e266ec93bc7 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1247,6 +1247,11 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0537-add-DragonEggFormEvent.patch b/patches/server/0536-add-DragonEggFormEvent.patch similarity index 100% rename from patches/server/0537-add-DragonEggFormEvent.patch rename to patches/server/0536-add-DragonEggFormEvent.patch diff --git a/patches/server/0538-EntityMoveEvent.patch b/patches/server/0537-EntityMoveEvent.patch similarity index 100% rename from patches/server/0538-EntityMoveEvent.patch rename to patches/server/0537-EntityMoveEvent.patch diff --git a/patches/server/0539-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0538-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 91% rename from patches/server/0539-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0538-added-option-to-disable-pathfinding-updates-on-block.patch index c702a59411d7..a07a4b85aa19 100644 --- a/patches/server/0539-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0538-added-option-to-disable-pathfinding-updates-on-block.patch @@ -5,7 +5,7 @@ Subject: [PATCH] added option to disable pathfinding updates on block changes diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c5fc4d510ebdc1308759be9f6ac79dfff9c69895..7b1374c8ee66c58fe6bd25173966d62e8971e3e4 100644 +index 3396f940f5c7c4e7b77a4570c34fbe5ad2c7da01..a3288d3cd160978e8bab4ca34d1fe6dbee042e28 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1677,6 +1677,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0540-Inline-shift-direction-fields.patch b/patches/server/0539-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0540-Inline-shift-direction-fields.patch rename to patches/server/0539-Inline-shift-direction-fields.patch diff --git a/patches/server/0541-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0540-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 95% rename from patches/server/0541-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0540-Allow-adding-items-to-BlockDropItemEvent.patch index bb5ff4cea62a..4aa5e9a47f8f 100644 --- a/patches/server/0541-Allow-adding-items-to-BlockDropItemEvent.patch +++ b/patches/server/0540-Allow-adding-items-to-BlockDropItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow adding items to BlockDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 158f2656864f559100b33c8a48b6a1c0f2d827fa..ca586aef7a22b4824f3c954d9574682f6a25ab28 100644 +index 2d9d6d735a13e0e0fc1f277f48c7bdb05aa3352a..8a7c90014beb5e044abc1fd6f8832bb3c78ffb12 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -450,13 +450,30 @@ public class CraftEventFactory { diff --git a/patches/server/0542-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0541-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0542-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0541-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0543-living-entity-allow-attribute-registration.patch b/patches/server/0542-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/server/0543-living-entity-allow-attribute-registration.patch rename to patches/server/0542-living-entity-allow-attribute-registration.patch diff --git a/patches/server/0544-fix-dead-slime-setSize-invincibility.patch b/patches/server/0543-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0544-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0543-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0545-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0544-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0545-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0544-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0546-Expose-Tracked-Players.patch b/patches/server/0545-Expose-Tracked-Players.patch similarity index 92% rename from patches/server/0546-Expose-Tracked-Players.patch rename to patches/server/0545-Expose-Tracked-Players.patch index bc451e12be11..075b73c5c593 100644 --- a/patches/server/0546-Expose-Tracked-Players.patch +++ b/patches/server/0545-Expose-Tracked-Players.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose Tracked Players diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 58b591d047e88c00ea09b33ece9f16fde98d3208..f72c20c8b427c1dee1e58f03a02a6a59e28da0e7 100644 +index 6e302dff4c0b48694d234091b1637ff3b7b4b098..a6492b6a9f66d8bcda8928fadf0a5920ff7f0dab 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1063,5 +1063,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0548-Improve-ServerGUI.patch b/patches/server/0546-Improve-ServerGUI.patch similarity index 100% rename from patches/server/0548-Improve-ServerGUI.patch rename to patches/server/0546-Improve-ServerGUI.patch diff --git a/patches/server/0547-Remove-streams-from-SensorNearest.patch b/patches/server/0547-Remove-streams-from-SensorNearest.patch deleted file mode 100644 index a7ae5d1a9862..000000000000 --- a/patches/server/0547-Remove-streams-from-SensorNearest.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Bjarne Koll -Date: Wed, 3 Mar 2021 12:48:48 +0100 -Subject: [PATCH] Remove streams from SensorNearest - -The behavioural nearby sensors are validated every tick on the entities -that registered the respective sensors and are therefore a good subject -to performance improvements. - -More specifically this commit replaces the Stream#filter usage with -ArrayList#removeIf as the removeIf method on an array list is heavily -optimized towards a single internal array re-allocation without any -further overhead on the removeIf call. - -The only negative of this change is the rather agressive diff these -patches introduce as the methods are basically being reimplemented -compared to the previous stream-based implementation. - -See: https://nipafx.dev/java-stream-performance/ - -diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java -index a41c3365db8e9999b686f5bf4bd888458cee43a5..1dfcc5cba6ffb463acf161a23fff1ca452184290 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java -+++ b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java -@@ -28,11 +28,15 @@ public class NearestItemSensor extends Sensor { - return true; - }); - list.sort(Comparator.comparingDouble(entity::distanceToSqr)); -- Optional optional = list.stream().filter((itemEntity) -> { -- return entity.wantsToPickUp(itemEntity.getItem()); -- }).filter((itemEntity) -> { -- return itemEntity.closerThan(entity, 32.0D); -- }).filter(entity::hasLineOfSight).findFirst(); -- brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM, optional); -+ // Paper start - remove streams in favour of lists -+ ItemEntity nearest = null; -+ for (ItemEntity entityItem : list) { -+ if (entity.wantsToPickUp(entityItem.getItem()) && entityItem.closerThan(entity, 32.0D) && entity.hasLineOfSight(entityItem)) { -+ nearest = entityItem; -+ break; -+ } -+ } -+ brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM, Optional.ofNullable(nearest)); -+ // Paper end - } - } -diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java -index ed1b95ec694b0fe8b647964b18b8c33707fc0b47..312775d0430f793720211dc29bb293503e799d11 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java -+++ b/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java -@@ -21,18 +21,25 @@ public class PlayerSensor extends Sensor { - - @Override - protected void doTick(ServerLevel world, LivingEntity entity) { -- List list = world.players().stream().filter(EntitySelector.NO_SPECTATORS).filter((player) -> { -- return entity.closerThan(player, 16.0D); -- }).sorted(Comparator.comparingDouble(entity::distanceToSqr)).collect(Collectors.toList()); -+ List players = new java.util.ArrayList<>(world.players()); -+ players.removeIf(player -> !EntitySelector.NO_SPECTATORS.test(player) || !entity.closerThan(player, 16.0D)); -+ players.sort(Comparator.comparingDouble(entity::distanceTo)); - Brain brain = entity.getBrain(); -- brain.setMemory(MemoryModuleType.NEAREST_PLAYERS, list); -- List list2 = list.stream().filter((player) -> { -- return isEntityTargetable(entity, player); -- }).collect(Collectors.toList()); -- brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, list2.isEmpty() ? null : list2.get(0)); -- Optional optional = list2.stream().filter((player) -> { -- return isEntityAttackable(entity, player); -- }).findFirst(); -- brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, optional); -+ -+ brain.setMemory(MemoryModuleType.NEAREST_PLAYERS, players); -+ -+ Player nearest = null, nearestTargetable = null; -+ for (Player player : players) { -+ if (Sensor.isEntityTargetable(entity, player)) { -+ if (nearest == null) nearest = player; -+ if (Sensor.isEntityAttackable(entity, player)) { -+ nearestTargetable = player; -+ break; // Both variables are assigned, no reason to loop further -+ } -+ } -+ } -+ brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, nearest); -+ brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, nearestTargetable); -+ // Paper end - } - } diff --git a/patches/server/0549-fix-converting-txt-to-json-file.patch b/patches/server/0547-fix-converting-txt-to-json-file.patch similarity index 97% rename from patches/server/0549-fix-converting-txt-to-json-file.patch rename to patches/server/0547-fix-converting-txt-to-json-file.patch index 4761cc2aebe6..250a6e2a2812 100644 --- a/patches/server/0549-fix-converting-txt-to-json-file.patch +++ b/patches/server/0547-fix-converting-txt-to-json-file.patch @@ -21,7 +21,7 @@ index a20d47f54f12dfc0a5f76dd969238e34c958b618..935dac757280731bfeb0a8f033cbe315 this.saveUserBanList(); this.loadIpBanList(); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 4d76d64fad92510de5098613aa0a04e1bbf7bca5..d7a147cc29f9d6882326ddac29449e1b14ae9c96 100644 +index 2d5e8d624b153f55e28d8a4e008dce11853179cf..b5acccc3339e3e2b817116ecf2af228cb641b175 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -199,6 +199,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0550-Add-worldborder-events.patch b/patches/server/0548-Add-worldborder-events.patch similarity index 100% rename from patches/server/0550-Add-worldborder-events.patch rename to patches/server/0548-Add-worldborder-events.patch diff --git a/patches/server/0551-added-PlayerNameEntityEvent.patch b/patches/server/0549-added-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0551-added-PlayerNameEntityEvent.patch rename to patches/server/0549-added-PlayerNameEntityEvent.patch diff --git a/patches/server/0552-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0550-Prevent-grindstones-from-overstacking-items.patch similarity index 100% rename from patches/server/0552-Prevent-grindstones-from-overstacking-items.patch rename to patches/server/0550-Prevent-grindstones-from-overstacking-items.patch diff --git a/patches/server/0553-Add-recipe-to-cook-events.patch b/patches/server/0551-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/server/0553-Add-recipe-to-cook-events.patch rename to patches/server/0551-Add-recipe-to-cook-events.patch diff --git a/patches/server/0554-Add-Block-isValidTool.patch b/patches/server/0552-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0554-Add-Block-isValidTool.patch rename to patches/server/0552-Add-Block-isValidTool.patch diff --git a/patches/server/0555-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0553-Allow-using-signs-inside-spawn-protection.patch similarity index 94% rename from patches/server/0555-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0553-Allow-using-signs-inside-spawn-protection.patch index c6d90bbf80b3..b1ef73a2a049 100644 --- a/patches/server/0555-Allow-using-signs-inside-spawn-protection.patch +++ b/patches/server/0553-Allow-using-signs-inside-spawn-protection.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow using signs inside spawn protection diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f066a3e2c21678f1019d223f97d181aa869ed9cc..4ad617dcaf1af622f405a2c6cf08ad56de85cd9d 100644 +index 48815e94a0eacbdd03ea8630ae4a53f1a4747520..06f6f39e8ac9f2ebc05d63c3c34eb2b1bdb6aa1d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1757,7 +1757,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0556-Expand-world-key-API.patch b/patches/server/0554-Expand-world-key-API.patch similarity index 95% rename from patches/server/0556-Expand-world-key-API.patch rename to patches/server/0554-Expand-world-key-API.patch index 9acc10109bee..c343f5e34956 100644 --- a/patches/server/0556-Expand-world-key-API.patch +++ b/patches/server/0554-Expand-world-key-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand world key API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index be0ca9e82b88518109eec88735e628b8de9ebe72..2667822413c329fc004aad826e5890ab4dc5bfeb 100644 +index 0fb214ddd919b568da64541fd9b531c65caa5fad..9cd267f53505658d1c75187b662c4d9f68cd6bae 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -505,5 +505,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor { @@ -20,7 +20,7 @@ index be0ca9e82b88518109eec88735e628b8de9ebe72..2667822413c329fc004aad826e5890ab // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 508ccf9685058674020c04914d8107e7fb1912ce..0d0f575c07fc1cc31a3b648720558c6f8d639eb5 100644 +index 8617abb738f311e2f7141ec98799f6cc8b4c6cf5..caa58d0a531a2541cff901e6eebeca0a74f5b3dd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1137,9 +1137,15 @@ public final class CraftServer implements Server { diff --git a/patches/server/0557-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0555-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0557-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0555-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0558-Item-Rarity-API.patch b/patches/server/0556-Item-Rarity-API.patch similarity index 100% rename from patches/server/0558-Item-Rarity-API.patch rename to patches/server/0556-Item-Rarity-API.patch diff --git a/patches/server/0559-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0557-Drop-carried-item-when-player-has-disconnected.patch similarity index 92% rename from patches/server/0559-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0557-Drop-carried-item-when-player-has-disconnected.patch index b3bc183092b8..a7d48b393e64 100644 --- a/patches/server/0559-Drop-carried-item-when-player-has-disconnected.patch +++ b/patches/server/0557-Drop-carried-item-when-player-has-disconnected.patch @@ -7,7 +7,7 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro Closes #5036 diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c8f40d71619a53f85b71ef5af397bbfa65fd797f..59d847b87d7d35598231a1352a1a1ed32f38c176 100644 +index 8a13160ff62a671a11740c456a2cbc3ccbac708f..d45b529c91e678a1f3b5b3d427eaf4019b8cc424 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -597,6 +597,14 @@ public abstract class PlayerList { diff --git a/patches/server/0560-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0558-forced-whitelist-use-configurable-kick-message.patch similarity index 100% rename from patches/server/0560-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0558-forced-whitelist-use-configurable-kick-message.patch diff --git a/patches/server/0561-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0559-Don-t-ignore-result-of-PlayerEditBookEvent.patch similarity index 91% rename from patches/server/0561-Don-t-ignore-result-of-PlayerEditBookEvent.patch rename to patches/server/0559-Don-t-ignore-result-of-PlayerEditBookEvent.patch index 701440b3d4c3..0532301d2d05 100644 --- a/patches/server/0561-Don-t-ignore-result-of-PlayerEditBookEvent.patch +++ b/patches/server/0559-Don-t-ignore-result-of-PlayerEditBookEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't ignore result of PlayerEditBookEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4ad617dcaf1af622f405a2c6cf08ad56de85cd9d..2e41cf6f694549d9783884a2f1a9e6a54ad137c4 100644 +index 06f6f39e8ac9f2ebc05d63c3c34eb2b1bdb6aa1d..24c4a0dd076b1c4c9eac2dfece0581fc796c53a6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1190,7 +1190,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0562-Expose-protocol-version.patch b/patches/server/0560-Expose-protocol-version.patch similarity index 100% rename from patches/server/0562-Expose-protocol-version.patch rename to patches/server/0560-Expose-protocol-version.patch diff --git a/patches/server/0563-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0561-Enhance-console-tab-completions-for-brigadier-comman.patch similarity index 99% rename from patches/server/0563-Enhance-console-tab-completions-for-brigadier-comman.patch rename to patches/server/0561-Enhance-console-tab-completions-for-brigadier-comman.patch index 12c556faf5f0..eea0310f5521 100644 --- a/patches/server/0563-Enhance-console-tab-completions-for-brigadier-comman.patch +++ b/patches/server/0561-Enhance-console-tab-completions-for-brigadier-comman.patch @@ -208,7 +208,7 @@ index 0000000000000000000000000000000000000000..dd9d77d7c7f1a5a130a1f4c15e5b1e68 + public void setErrorIndex(final int errorIndex) {} +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index d7a147cc29f9d6882326ddac29449e1b14ae9c96..5c455e4fba3e7b6064d869340667f48ed9cb3e9e 100644 +index b5acccc3339e3e2b817116ecf2af228cb641b175..d3e5235d4aa7240ba91bd40c3e1809e1fc1c4632 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -173,7 +173,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0564-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0562-Fix-PlayerItemConsumeEvent-cancelling-properly.patch similarity index 93% rename from patches/server/0564-Fix-PlayerItemConsumeEvent-cancelling-properly.patch rename to patches/server/0562-Fix-PlayerItemConsumeEvent-cancelling-properly.patch index 2843bff0c028..dd040dff42d1 100644 --- a/patches/server/0564-Fix-PlayerItemConsumeEvent-cancelling-properly.patch +++ b/patches/server/0562-Fix-PlayerItemConsumeEvent-cancelling-properly.patch @@ -9,7 +9,7 @@ till their item is switched. This patch clears the active item when the event is cancelled diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e112880d8389c059a5daa572cb7906d767279084..d6b80be711b11758ef0bb3187dbcb6e597ef35d3 100644 +index 51916ff6f45090cf5e2da6b12640c130533fc4d9..383c39ac381f9a86693abb7935b5b142b889d7be 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3859,6 +3859,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0565-Add-bypass-host-check.patch b/patches/server/0563-Add-bypass-host-check.patch similarity index 100% rename from patches/server/0565-Add-bypass-host-check.patch rename to patches/server/0563-Add-bypass-host-check.patch diff --git a/patches/server/0566-Set-area-affect-cloud-rotation.patch b/patches/server/0564-Set-area-affect-cloud-rotation.patch similarity index 100% rename from patches/server/0566-Set-area-affect-cloud-rotation.patch rename to patches/server/0564-Set-area-affect-cloud-rotation.patch diff --git a/patches/server/0567-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0565-add-isDeeplySleeping-to-HumanEntity.patch similarity index 90% rename from patches/server/0567-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/server/0565-add-isDeeplySleeping-to-HumanEntity.patch index c1c7283532d6..e632b7d55cb9 100644 --- a/patches/server/0567-add-isDeeplySleeping-to-HumanEntity.patch +++ b/patches/server/0565-add-isDeeplySleeping-to-HumanEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add isDeeplySleeping to HumanEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index faaed968a3e771c1db3957e2b42acf6d87a38842..a5ca7c33565a3ffbb6ff991f5be2e1d807b4b4bf 100644 +index cdbd8d7d1c23809a7345f0c3b0c7f9356be47900..fd8d8b1e3583fe61b966f3550bd8e846b536b4e5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -133,6 +133,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0568-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0566-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/server/0568-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/server/0566-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/server/0569-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0567-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/server/0569-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/server/0567-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/server/0570-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0568-fix-PigZombieAngerEvent-cancellation.patch similarity index 100% rename from patches/server/0570-fix-PigZombieAngerEvent-cancellation.patch rename to patches/server/0568-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/server/0571-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0569-fix-PlayerItemHeldEvent-firing-twice.patch similarity index 93% rename from patches/server/0571-fix-PlayerItemHeldEvent-firing-twice.patch rename to patches/server/0569-fix-PlayerItemHeldEvent-firing-twice.patch index c4aac740ba19..0d12c6ad47b9 100644 --- a/patches/server/0571-fix-PlayerItemHeldEvent-firing-twice.patch +++ b/patches/server/0569-fix-PlayerItemHeldEvent-firing-twice.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix PlayerItemHeldEvent firing twice diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2e41cf6f694549d9783884a2f1a9e6a54ad137c4..87e118594209d3f483588f5f59013da635f59a24 100644 +index 24c4a0dd076b1c4c9eac2dfece0581fc796c53a6..91e1a5fb981dd8468bb13098424b54da1c90a998 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1926,6 +1926,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0572-Added-PlayerDeepSleepEvent.patch b/patches/server/0570-Added-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/server/0572-Added-PlayerDeepSleepEvent.patch rename to patches/server/0570-Added-PlayerDeepSleepEvent.patch diff --git a/patches/server/0573-More-World-API.patch b/patches/server/0571-More-World-API.patch similarity index 100% rename from patches/server/0573-More-World-API.patch rename to patches/server/0571-More-World-API.patch diff --git a/patches/server/0574-Added-PlayerBedFailEnterEvent.patch b/patches/server/0572-Added-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/server/0574-Added-PlayerBedFailEnterEvent.patch rename to patches/server/0572-Added-PlayerBedFailEnterEvent.patch diff --git a/patches/server/0575-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0573-Implement-methods-to-convert-between-Component-and-B.patch similarity index 96% rename from patches/server/0575-Implement-methods-to-convert-between-Component-and-B.patch rename to patches/server/0573-Implement-methods-to-convert-between-Component-and-B.patch index 573adc195020..6acb1ecfa0dc 100644 --- a/patches/server/0575-Implement-methods-to-convert-between-Component-and-B.patch +++ b/patches/server/0573-Implement-methods-to-convert-between-Component-and-B.patch @@ -42,7 +42,7 @@ index 0000000000000000000000000000000000000000..dd6012b6a097575b2d1471be5069ecce + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 5c455e4fba3e7b6064d869340667f48ed9cb3e9e..f9e39f557f04269769b869ff24127a6f312ddec3 100644 +index d3e5235d4aa7240ba91bd40c3e1809e1fc1c4632..019dd5a66b883e6ac8d0f07abc2636768a373664 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -210,6 +210,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0576-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch b/patches/server/0574-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch similarity index 95% rename from patches/server/0576-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch rename to patches/server/0574-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch index a79fb53695fb..f58290b66d1c 100644 --- a/patches/server/0576-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch +++ b/patches/server/0574-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix anchor respawn acting as a bed respawn from the end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 59d847b87d7d35598231a1352a1a1ed32f38c176..c2951a771456fc803dee0691cbe40f56a3010c70 100644 +index d45b529c91e678a1f3b5b3d427eaf4019b8cc424..43e8cb83ec6cd18706dcba7022dd0f56cf24f33b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -824,6 +824,7 @@ public abstract class PlayerList { diff --git a/patches/server/0577-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0575-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0577-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0575-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0578-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0576-add-RespawnFlags-to-PlayerRespawnEvent.patch similarity index 97% rename from patches/server/0578-add-RespawnFlags-to-PlayerRespawnEvent.patch rename to patches/server/0576-add-RespawnFlags-to-PlayerRespawnEvent.patch index aa911dc229b4..96e8ecd7a3d2 100644 --- a/patches/server/0578-add-RespawnFlags-to-PlayerRespawnEvent.patch +++ b/patches/server/0576-add-RespawnFlags-to-PlayerRespawnEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add RespawnFlags to PlayerRespawnEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c9a2119728e2a1340fda2071ac54afad93431aaf..60945de12bf3b7068da9897d3af778f4f8577134 100644 +index 91e1a5fb981dd8468bb13098424b54da1c90a998..206c0a1e783699ed272e3640a29fe349eb0b465e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2644,7 +2644,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0579-Add-Channel-initialization-listeners.patch b/patches/server/0577-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/server/0579-Add-Channel-initialization-listeners.patch rename to patches/server/0577-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0580-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0578-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 91% rename from patches/server/0580-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0578-Send-empty-commands-if-tab-completion-is-disabled.patch index a092e4c3675e..5ac1f0000995 100644 --- a/patches/server/0580-Send-empty-commands-if-tab-completion-is-disabled.patch +++ b/patches/server/0578-Send-empty-commands-if-tab-completion-is-disabled.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Send empty commands if tab completion is disabled diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index f43baa1f4dbed72bbcf130e180956cfd31998256..1409801946be84e3256748c68ba0c62d42b869de 100644 +index 2de557a5ed91e2036a7f558cfca8b174cd534959..3b3fa067ee5a95d52645147c2d9d1e43d7a789b6 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -456,7 +456,12 @@ public class Commands { diff --git a/patches/server/0581-Add-more-WanderingTrader-API.patch b/patches/server/0579-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0581-Add-more-WanderingTrader-API.patch rename to patches/server/0579-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0582-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0580-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0582-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0580-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0583-Entity-load-save-limit-per-chunk.patch b/patches/server/0581-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/server/0583-Entity-load-save-limit-per-chunk.patch rename to patches/server/0581-Entity-load-save-limit-per-chunk.patch diff --git a/patches/server/0584-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0582-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0584-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0582-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0585-Inventory-close.patch b/patches/server/0583-Inventory-close.patch similarity index 100% rename from patches/server/0585-Inventory-close.patch rename to patches/server/0583-Inventory-close.patch diff --git a/patches/server/0586-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0584-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0586-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0584-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0587-Add-basic-Datapack-API.patch b/patches/server/0585-Add-basic-Datapack-API.patch similarity index 98% rename from patches/server/0587-Add-basic-Datapack-API.patch rename to patches/server/0585-Add-basic-Datapack-API.patch index 6b29653667e2..068de223c9fd 100644 --- a/patches/server/0587-Add-basic-Datapack-API.patch +++ b/patches/server/0585-Add-basic-Datapack-API.patch @@ -92,7 +92,7 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 346a4d7204e872f9a0e081b2afd4276b33d2cf20..1a4168073251e105c53dae2da040367294eb3787 100644 +index caa58d0a531a2541cff901e6eebeca0a74f5b3dd..565beb65968b3f7e187f3e5b59aa08e9ac34f2a0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -301,6 +301,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0588-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0586-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0588-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0586-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0589-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0587-additions-to-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/server/0589-additions-to-PlayerGameModeChangeEvent.patch rename to patches/server/0587-additions-to-PlayerGameModeChangeEvent.patch diff --git a/patches/server/0590-ItemStack-repair-check-API.patch b/patches/server/0588-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0590-ItemStack-repair-check-API.patch rename to patches/server/0588-ItemStack-repair-check-API.patch diff --git a/patches/server/0591-More-Enchantment-API.patch b/patches/server/0589-More-Enchantment-API.patch similarity index 100% rename from patches/server/0591-More-Enchantment-API.patch rename to patches/server/0589-More-Enchantment-API.patch diff --git a/patches/server/0592-Move-range-check-for-block-placing-up.patch b/patches/server/0590-Move-range-check-for-block-placing-up.patch similarity index 100% rename from patches/server/0592-Move-range-check-for-block-placing-up.patch rename to patches/server/0590-Move-range-check-for-block-placing-up.patch diff --git a/patches/server/0593-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0591-Fix-and-optimise-world-force-upgrading.patch similarity index 99% rename from patches/server/0593-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0591-Fix-and-optimise-world-force-upgrading.patch index 948e8209910a..d04c0155d23f 100644 --- a/patches/server/0593-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0591-Fix-and-optimise-world-force-upgrading.patch @@ -352,7 +352,7 @@ index deed4d50e0e4d810647a0745ef328c20dfe51093..9fa07295bf73317a4c2bbbbaf1918393 return this.regionCache.getAndMoveToFirst(ChunkPos.asLong(chunkcoordintpair.getRegionX(), chunkcoordintpair.getRegionZ())); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1a4168073251e105c53dae2da040367294eb3787..b3225546c6c65dc18aa71930a38a72c7b6997ad5 100644 +index 565beb65968b3f7e187f3e5b59aa08e9ac34f2a0..9c82a367ceacb1d2ae1a0503f5920d5919289502 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1251,9 +1251,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0594-Add-Mob-lookAt-API.patch b/patches/server/0592-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0594-Add-Mob-lookAt-API.patch rename to patches/server/0592-Add-Mob-lookAt-API.patch diff --git a/patches/server/0595-Add-Unix-domain-socket-support.patch b/patches/server/0593-Add-Unix-domain-socket-support.patch similarity index 98% rename from patches/server/0595-Add-Unix-domain-socket-support.patch rename to patches/server/0593-Add-Unix-domain-socket-support.patch index 82f599b1b2ae..c7280bd49722 100644 --- a/patches/server/0595-Add-Unix-domain-socket-support.patch +++ b/patches/server/0593-Add-Unix-domain-socket-support.patch @@ -11,7 +11,7 @@ Tested-by: Mariell Hoversholm Reviewed-by: Mariell Hoversholm diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index f9e39f557f04269769b869ff24127a6f312ddec3..a8621519c2fec415c8d56c3510b0780b6ccd9eeb 100644 +index 019dd5a66b883e6ac8d0f07abc2636768a373664..f0d6e6f85dc2a9ae8d70dd691b144fac0298bf33 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -219,6 +219,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0596-Add-EntityInsideBlockEvent.patch b/patches/server/0594-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0596-Add-EntityInsideBlockEvent.patch rename to patches/server/0594-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0597-Attributes-API-for-item-defaults.patch b/patches/server/0595-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0597-Attributes-API-for-item-defaults.patch rename to patches/server/0595-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0598-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0596-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/server/0598-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0596-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/server/0599-More-Lidded-Block-API.patch b/patches/server/0597-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0599-More-Lidded-Block-API.patch rename to patches/server/0597-More-Lidded-Block-API.patch diff --git a/patches/server/0600-Limit-item-frame-cursors-on-maps.patch b/patches/server/0598-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0600-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0598-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0601-Add-PlayerKickEvent-causes.patch b/patches/server/0599-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/server/0601-Add-PlayerKickEvent-causes.patch rename to patches/server/0599-Add-PlayerKickEvent-causes.patch diff --git a/patches/server/0602-Add-PufferFishStateChangeEvent.patch b/patches/server/0600-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0602-Add-PufferFishStateChangeEvent.patch rename to patches/server/0600-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0603-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0601-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0603-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0601-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0604-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0602-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/server/0604-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0602-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/server/0605-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0603-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0605-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0603-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0606-Add-BellRevealRaiderEvent.patch b/patches/server/0604-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0606-Add-BellRevealRaiderEvent.patch rename to patches/server/0604-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0607-Fix-invulnerable-end-crystals.patch b/patches/server/0605-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0607-Fix-invulnerable-end-crystals.patch rename to patches/server/0605-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0608-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0606-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0608-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0606-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0609-Fix-dangerous-end-portal-logic.patch b/patches/server/0607-Fix-dangerous-end-portal-logic.patch similarity index 100% rename from patches/server/0609-Fix-dangerous-end-portal-logic.patch rename to patches/server/0607-Fix-dangerous-end-portal-logic.patch diff --git a/patches/server/0610-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0608-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0610-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0608-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0611-Make-item-validations-configurable.patch b/patches/server/0609-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0611-Make-item-validations-configurable.patch rename to patches/server/0609-Make-item-validations-configurable.patch diff --git a/patches/server/0612-Line-Of-Sight-Changes.patch b/patches/server/0610-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/server/0612-Line-Of-Sight-Changes.patch rename to patches/server/0610-Line-Of-Sight-Changes.patch diff --git a/patches/server/0613-add-per-world-spawn-limits.patch b/patches/server/0611-add-per-world-spawn-limits.patch similarity index 100% rename from patches/server/0613-add-per-world-spawn-limits.patch rename to patches/server/0611-add-per-world-spawn-limits.patch diff --git a/patches/server/0614-Fix-potions-splash-events.patch b/patches/server/0612-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0614-Fix-potions-splash-events.patch rename to patches/server/0612-Fix-potions-splash-events.patch diff --git a/patches/server/0615-Add-more-LimitedRegion-API.patch b/patches/server/0613-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0615-Add-more-LimitedRegion-API.patch rename to patches/server/0613-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0616-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0614-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 100% rename from patches/server/0616-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0614-Fix-PlayerDropItemEvent-using-wrong-item.patch diff --git a/patches/server/0617-Missing-Entity-API.patch b/patches/server/0615-Missing-Entity-API.patch similarity index 100% rename from patches/server/0617-Missing-Entity-API.patch rename to patches/server/0615-Missing-Entity-API.patch diff --git a/patches/server/0618-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0616-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 100% rename from patches/server/0618-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0616-Ensure-disconnect-for-book-edit-is-called-on-main.patch diff --git a/patches/server/0619-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0617-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0619-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0617-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0620-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0618-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 100% rename from patches/server/0620-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0618-Use-getChunkIfLoadedImmediately-in-places.patch diff --git a/patches/server/0621-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0619-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0621-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0619-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0622-Adds-PlayerArmSwingEvent.patch b/patches/server/0620-Adds-PlayerArmSwingEvent.patch similarity index 100% rename from patches/server/0622-Adds-PlayerArmSwingEvent.patch rename to patches/server/0620-Adds-PlayerArmSwingEvent.patch diff --git a/patches/server/0623-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0621-Fixes-kick-event-leave-message-not-being-sent.patch similarity index 100% rename from patches/server/0623-Fixes-kick-event-leave-message-not-being-sent.patch rename to patches/server/0621-Fixes-kick-event-leave-message-not-being-sent.patch diff --git a/patches/server/0624-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0622-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/0624-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0622-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0625-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0623-Don-t-apply-cramming-damage-to-players.patch similarity index 100% rename from patches/server/0625-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0623-Don-t-apply-cramming-damage-to-players.patch diff --git a/patches/server/0626-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0624-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0626-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0624-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0627-Add-a-bunch-of-missing-forceDrop-toggles.patch b/patches/server/0625-Add-a-bunch-of-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0627-Add-a-bunch-of-missing-forceDrop-toggles.patch rename to patches/server/0625-Add-a-bunch-of-missing-forceDrop-toggles.patch diff --git a/patches/server/0628-Stinger-API.patch b/patches/server/0626-Stinger-API.patch similarity index 100% rename from patches/server/0628-Stinger-API.patch rename to patches/server/0626-Stinger-API.patch diff --git a/patches/server/0629-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0627-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0629-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0627-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0630-Add-System.out-err-catcher.patch b/patches/server/0628-Add-System.out-err-catcher.patch similarity index 98% rename from patches/server/0630-Add-System.out-err-catcher.patch rename to patches/server/0628-Add-System.out-err-catcher.patch index 13982718676f..0bcf18a56788 100644 --- a/patches/server/0630-Add-System.out-err-catcher.patch +++ b/patches/server/0628-Add-System.out-err-catcher.patch @@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b3225546c6c65dc18aa71930a38a72c7b6997ad5..7621b77d49330e462c4857f2033d74723eee4281 100644 +index 9c82a367ceacb1d2ae1a0503f5920d5919289502..7df30c0d3f647b74dd812fc9d286feb95b52dfae 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -303,6 +303,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0631-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0629-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0631-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0629-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0632-Improve-boat-collision-performance.patch b/patches/server/0630-Improve-boat-collision-performance.patch similarity index 100% rename from patches/server/0632-Improve-boat-collision-performance.patch rename to patches/server/0630-Improve-boat-collision-performance.patch diff --git a/patches/server/0633-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0631-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 100% rename from patches/server/0633-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0631-Prevent-AFK-kick-while-watching-end-credits.patch diff --git a/patches/server/0634-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0632-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0634-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0632-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0635-Add-PlayerSetSpawnEvent.patch b/patches/server/0633-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/server/0635-Add-PlayerSetSpawnEvent.patch rename to patches/server/0633-Add-PlayerSetSpawnEvent.patch diff --git a/patches/server/0636-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0634-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0636-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0634-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0637-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0635-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0637-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0635-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0638-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0636-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0638-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0636-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0639-Added-EntityDamageItemEvent.patch b/patches/server/0637-Added-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0639-Added-EntityDamageItemEvent.patch rename to patches/server/0637-Added-EntityDamageItemEvent.patch diff --git a/patches/server/0640-Optimize-indirect-passenger-iteration.patch b/patches/server/0638-Optimize-indirect-passenger-iteration.patch similarity index 100% rename from patches/server/0640-Optimize-indirect-passenger-iteration.patch rename to patches/server/0638-Optimize-indirect-passenger-iteration.patch diff --git a/patches/server/0641-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0639-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0641-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0639-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0642-Make-EntityUnleashEvent-cancellable.patch b/patches/server/0640-Make-EntityUnleashEvent-cancellable.patch similarity index 100% rename from patches/server/0642-Make-EntityUnleashEvent-cancellable.patch rename to patches/server/0640-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/server/0643-Clear-bucket-NBT-after-dispense.patch b/patches/server/0641-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0643-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0641-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0644-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0642-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0644-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0642-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0645-Add-BlockBreakBlockEvent.patch b/patches/server/0643-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0645-Add-BlockBreakBlockEvent.patch rename to patches/server/0643-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0646-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0644-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0646-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0644-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0647-More-CommandBlock-API.patch b/patches/server/0645-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0647-More-CommandBlock-API.patch rename to patches/server/0645-More-CommandBlock-API.patch diff --git a/patches/server/0648-Add-missing-team-sidebar-display-slots.patch b/patches/server/0646-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0648-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0646-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0649-Add-back-EntityPortalExitEvent.patch b/patches/server/0647-Add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/server/0649-Add-back-EntityPortalExitEvent.patch rename to patches/server/0647-Add-back-EntityPortalExitEvent.patch diff --git a/patches/server/0650-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0648-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/server/0650-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0648-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/server/0651-Get-entity-default-attributes.patch b/patches/server/0649-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0651-Get-entity-default-attributes.patch rename to patches/server/0649-Get-entity-default-attributes.patch diff --git a/patches/server/0652-Left-handed-API.patch b/patches/server/0650-Left-handed-API.patch similarity index 100% rename from patches/server/0652-Left-handed-API.patch rename to patches/server/0650-Left-handed-API.patch diff --git a/patches/server/0653-Add-more-advancement-API.patch b/patches/server/0651-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0653-Add-more-advancement-API.patch rename to patches/server/0651-Add-more-advancement-API.patch diff --git a/patches/server/0654-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0652-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0654-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0652-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0655-Add-critical-damage-API.patch b/patches/server/0653-Add-critical-damage-API.patch similarity index 100% rename from patches/server/0655-Add-critical-damage-API.patch rename to patches/server/0653-Add-critical-damage-API.patch diff --git a/patches/server/0656-Fix-issues-with-mob-conversion.patch b/patches/server/0654-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0656-Fix-issues-with-mob-conversion.patch rename to patches/server/0654-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0657-Add-isCollidable-methods-to-various-places.patch b/patches/server/0655-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0657-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0655-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0658-Goat-ram-API.patch b/patches/server/0656-Goat-ram-API.patch similarity index 100% rename from patches/server/0658-Goat-ram-API.patch rename to patches/server/0656-Goat-ram-API.patch diff --git a/patches/server/0659-Add-API-for-resetting-a-single-score.patch b/patches/server/0657-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0659-Add-API-for-resetting-a-single-score.patch rename to patches/server/0657-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0660-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0658-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/server/0660-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0658-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/server/0661-Vanilla-command-permission-fixes.patch b/patches/server/0659-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0661-Vanilla-command-permission-fixes.patch rename to patches/server/0659-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0662-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0660-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 100% rename from patches/server/0662-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0660-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch diff --git a/patches/server/0663-Fix-GameProfileCache-concurrency.patch b/patches/server/0661-Fix-GameProfileCache-concurrency.patch similarity index 98% rename from patches/server/0663-Fix-GameProfileCache-concurrency.patch rename to patches/server/0661-Fix-GameProfileCache-concurrency.patch index f02aafe4332c..68ec851967e9 100644 --- a/patches/server/0663-Fix-GameProfileCache-concurrency.patch +++ b/patches/server/0661-Fix-GameProfileCache-concurrency.patch @@ -7,7 +7,7 @@ Separate lookup and state access locks prevent lookups from stalling simple state access/write calls diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 731a7c0363c8c91d25b35f7cbbb480879381bc8d..452fbb0aa44157225d8a9064e3eae2db7771b27d 100644 +index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf391593651e 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -60,6 +60,11 @@ public class GameProfileCache { diff --git a/patches/server/0664-Improve-and-expand-AsyncCatcher.patch b/patches/server/0662-Improve-and-expand-AsyncCatcher.patch similarity index 100% rename from patches/server/0664-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0662-Improve-and-expand-AsyncCatcher.patch diff --git a/patches/server/0665-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0663-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 99% rename from patches/server/0665-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0663-Add-paper-mobcaps-and-paper-playermobcaps.patch index 9fcd87b7725d..435570bcbe15 100644 --- a/patches/server/0665-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0663-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -278,7 +278,7 @@ index 9df761f5cf043e8d2dffa711c20ab32fe2992331..d08c7b0b52065980f1f13c5533ff6355 // Paper start - add parameters and int ret type spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7621b77d49330e462c4857f2033d74723eee4281..e7e29ee51247fd7d5749d72d34a39d210e0c83ff 100644 +index 7df30c0d3f647b74dd812fc9d286feb95b52dfae..8f61efe32500ebe47e13d96fd96df646adb3dd5b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2279,6 +2279,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0666-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0664-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0666-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0664-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0667-Optimise-general-POI-access.patch b/patches/server/0665-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/0667-Optimise-general-POI-access.patch rename to patches/server/0665-Optimise-general-POI-access.patch diff --git a/patches/server/0668-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/0666-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/0668-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/0666-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/0669-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0667-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0669-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0667-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0670-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0668-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0670-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0668-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0671-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0669-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 100% rename from patches/server/0671-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0669-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch diff --git a/patches/server/0672-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0670-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0672-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0670-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0673-Don-t-lookup-fluid-state-when-raytracing.patch b/patches/server/0671-Don-t-lookup-fluid-state-when-raytracing.patch similarity index 100% rename from patches/server/0673-Don-t-lookup-fluid-state-when-raytracing.patch rename to patches/server/0671-Don-t-lookup-fluid-state-when-raytracing.patch diff --git a/patches/server/0674-Time-scoreboard-search.patch b/patches/server/0672-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0674-Time-scoreboard-search.patch rename to patches/server/0672-Time-scoreboard-search.patch diff --git a/patches/server/0675-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0673-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/0675-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/0673-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/0676-Do-not-run-raytrace-logic-for-AIR.patch b/patches/server/0674-Do-not-run-raytrace-logic-for-AIR.patch similarity index 100% rename from patches/server/0676-Do-not-run-raytrace-logic-for-AIR.patch rename to patches/server/0674-Do-not-run-raytrace-logic-for-AIR.patch diff --git a/patches/server/0677-Execute-chunk-tasks-mid-tick.patch b/patches/server/0675-Execute-chunk-tasks-mid-tick.patch similarity index 100% rename from patches/server/0677-Execute-chunk-tasks-mid-tick.patch rename to patches/server/0675-Execute-chunk-tasks-mid-tick.patch diff --git a/patches/server/0678-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0676-Oprimise-map-impl-for-tracked-players.patch similarity index 100% rename from patches/server/0678-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0676-Oprimise-map-impl-for-tracked-players.patch diff --git a/patches/server/0679-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0677-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0679-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0677-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0680-Optimise-random-block-ticking.patch b/patches/server/0678-Optimise-random-block-ticking.patch similarity index 100% rename from patches/server/0680-Optimise-random-block-ticking.patch rename to patches/server/0678-Optimise-random-block-ticking.patch diff --git a/patches/server/0681-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0679-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/0681-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/0679-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/0682-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0680-Use-Velocity-compression-and-cipher-natives.patch similarity index 99% rename from patches/server/0682-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/0680-Use-Velocity-compression-and-cipher-natives.patch index 159866c83f4a..c37c0306aa0c 100644 --- a/patches/server/0682-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/0680-Use-Velocity-compression-and-cipher-natives.patch @@ -337,7 +337,7 @@ index 5f625acf04ddb56e3596d086252f9bfccfdb95f2..54c7f34ba3dc8466223e589702d0c93a protected void initChannel(Channel channel) { Connection.setInitialProtocolAttributes(channel); diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 0bed0d7aff06a400fa28348f8658d7ad385e8749..453ed111a6640bfafe66d914db976243e94f94c8 100644 +index e2c7fa3fd05ebb3b76388410d26b6493baf4f877..7a2f78ae76354e15afa5368c8fb2a571c15dc82d 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -223,12 +223,14 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, diff --git a/patches/server/0683-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0681-Detail-more-information-in-watchdog-dumps.patch similarity index 100% rename from patches/server/0683-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/0681-Detail-more-information-in-watchdog-dumps.patch diff --git a/patches/server/0684-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch b/patches/server/0682-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch similarity index 100% rename from patches/server/0684-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch rename to patches/server/0682-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch diff --git a/patches/server/0685-Distance-manager-tick-timings.patch b/patches/server/0683-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0685-Distance-manager-tick-timings.patch rename to patches/server/0683-Distance-manager-tick-timings.patch diff --git a/patches/server/0686-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0684-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 100% rename from patches/server/0686-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0684-Fix-merchant-inventory-not-closing-on-entity-removal.patch diff --git a/patches/server/0687-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0685-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0687-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0685-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0688-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0686-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 100% rename from patches/server/0688-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0686-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/server/0689-Add-packet-limiter-config.patch b/patches/server/0687-Add-packet-limiter-config.patch similarity index 100% rename from patches/server/0689-Add-packet-limiter-config.patch rename to patches/server/0687-Add-packet-limiter-config.patch diff --git a/patches/server/0690-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0688-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0690-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0688-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0691-Ensure-valid-vehicle-status.patch b/patches/server/0689-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/server/0691-Ensure-valid-vehicle-status.patch rename to patches/server/0689-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0692-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0690-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0692-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0690-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0693-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0691-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0693-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0691-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0694-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0692-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0694-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0692-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0695-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0693-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0695-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0693-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0696-Preserve-overstacked-loot.patch b/patches/server/0694-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0696-Preserve-overstacked-loot.patch rename to patches/server/0694-Preserve-overstacked-loot.patch diff --git a/patches/server/0697-Update-head-rotation-in-missing-places.patch b/patches/server/0695-Update-head-rotation-in-missing-places.patch similarity index 100% rename from patches/server/0697-Update-head-rotation-in-missing-places.patch rename to patches/server/0695-Update-head-rotation-in-missing-places.patch diff --git a/patches/server/0698-prevent-unintended-light-block-manipulation.patch b/patches/server/0696-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0698-prevent-unintended-light-block-manipulation.patch rename to patches/server/0696-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0699-Fix-CraftCriteria-defaults-map.patch b/patches/server/0697-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0699-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0697-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0700-Fix-upstreams-block-state-factories.patch b/patches/server/0698-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0700-Fix-upstreams-block-state-factories.patch rename to patches/server/0698-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0701-Configurable-feature-seeds.patch b/patches/server/0699-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0701-Configurable-feature-seeds.patch rename to patches/server/0699-Configurable-feature-seeds.patch diff --git a/patches/server/0702-Add-root-admin-user-detection.patch b/patches/server/0700-Add-root-admin-user-detection.patch similarity index 97% rename from patches/server/0702-Add-root-admin-user-detection.patch rename to patches/server/0700-Add-root-admin-user-detection.patch index a8a91bed0fc4..bdd773fb1a92 100644 --- a/patches/server/0702-Add-root-admin-user-detection.patch +++ b/patches/server/0700-Add-root-admin-user-detection.patch @@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..6bd0afddbcc461149dfe9a5c7a86fff6 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index a8621519c2fec415c8d56c3510b0780b6ccd9eeb..c9af6ba082d1d387aa2e6ecf5fb4647d994447f4 100644 +index f0d6e6f85dc2a9ae8d70dd691b144fac0298bf33..e69a0121c8644d831cbb8bc1c95d9219d1c343da 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -179,6 +179,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0703-Always-allow-item-changing-in-Fireball.patch b/patches/server/0701-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0703-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0701-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0704-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0702-don-t-attempt-to-teleport-dead-entities.patch similarity index 100% rename from patches/server/0704-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0702-don-t-attempt-to-teleport-dead-entities.patch diff --git a/patches/server/0705-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0703-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/server/0705-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0703-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0706-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0704-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0706-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0704-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0707-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0705-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0707-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0705-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0708-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0706-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/server/0708-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0706-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0709-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0707-Hide-unnecessary-itemmeta-from-clients.patch similarity index 100% rename from patches/server/0709-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0707-Hide-unnecessary-itemmeta-from-clients.patch diff --git a/patches/server/0710-Fix-Spigot-growth-modifiers.patch b/patches/server/0708-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0710-Fix-Spigot-growth-modifiers.patch rename to patches/server/0708-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0711-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0709-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0711-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0709-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0712-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0710-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0712-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0710-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0713-Optimize-HashMapPalette.patch b/patches/server/0711-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0713-Optimize-HashMapPalette.patch rename to patches/server/0711-Optimize-HashMapPalette.patch diff --git a/patches/server/0714-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0712-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 98% rename from patches/server/0714-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0712-Allow-delegation-to-vanilla-chunk-gen.patch index 001dcd4eed5e..d83e71ed4425 100644 --- a/patches/server/0714-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0712-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e7e29ee51247fd7d5749d72d34a39d210e0c83ff..ea5147262daade44265af7aa029d02f8314673ee 100644 +index 8f61efe32500ebe47e13d96fd96df646adb3dd5b..36a620d44140edac72e20b83a2cee2860e09deec 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2459,6 +2459,88 @@ public final class CraftServer implements Server { diff --git a/patches/server/0715-Collision-optimisations.patch b/patches/server/0713-Collision-optimisations.patch similarity index 100% rename from patches/server/0715-Collision-optimisations.patch rename to patches/server/0713-Collision-optimisations.patch diff --git a/patches/server/0716-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0714-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 100% rename from patches/server/0716-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/0714-Optimise-collision-checking-in-player-move-packet-ha.patch diff --git a/patches/server/0717-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0715-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0717-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0715-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0718-Add-more-Campfire-API.patch b/patches/server/0716-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0718-Add-more-Campfire-API.patch rename to patches/server/0716-Add-more-Campfire-API.patch diff --git a/patches/server/0719-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0717-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0719-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0717-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0720-Fix-tripwire-state-inconsistency.patch b/patches/server/0718-Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/server/0720-Fix-tripwire-state-inconsistency.patch rename to patches/server/0718-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/0721-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0719-Forward-CraftEntity-in-teleport-command.patch similarity index 100% rename from patches/server/0721-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0719-Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/server/0722-Improve-scoreboard-entries.patch b/patches/server/0720-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0722-Improve-scoreboard-entries.patch rename to patches/server/0720-Improve-scoreboard-entries.patch diff --git a/patches/server/0723-Entity-powdered-snow-API.patch b/patches/server/0721-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0723-Entity-powdered-snow-API.patch rename to patches/server/0721-Entity-powdered-snow-API.patch diff --git a/patches/server/0724-Add-API-for-item-entity-health.patch b/patches/server/0722-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0724-Add-API-for-item-entity-health.patch rename to patches/server/0722-Add-API-for-item-entity-health.patch diff --git a/patches/server/0725-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0723-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/0725-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/0723-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/0726-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0724-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0726-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0724-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0727-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0725-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0727-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0725-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0728-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0726-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0728-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0726-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0729-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0727-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0729-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0727-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0730-Fix-bees-aging-inside-hives.patch b/patches/server/0728-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0730-Fix-bees-aging-inside-hives.patch rename to patches/server/0728-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0731-Bucketable-API.patch b/patches/server/0729-Bucketable-API.patch similarity index 100% rename from patches/server/0731-Bucketable-API.patch rename to patches/server/0729-Bucketable-API.patch diff --git a/patches/server/0732-Validate-usernames.patch b/patches/server/0730-Validate-usernames.patch similarity index 97% rename from patches/server/0732-Validate-usernames.patch rename to patches/server/0730-Validate-usernames.patch index e86a22d0f0df..a3126a1fa56a 100644 --- a/patches/server/0732-Validate-usernames.patch +++ b/patches/server/0730-Validate-usernames.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Validate usernames diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 453ed111a6640bfafe66d914db976243e94f94c8..08a65700909dd64e6e15fac5c6542b02a864782b 100644 +index 7a2f78ae76354e15afa5368c8fb2a571c15dc82d..6121a3879eeb1d13653e93da02ecdbbcb2a866ac 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -63,6 +63,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, diff --git a/patches/server/0733-Make-water-animal-spawn-height-configurable.patch b/patches/server/0731-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0733-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0731-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0734-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0732-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 98% rename from patches/server/0734-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0732-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index c80646e846c5..eba87186840c 100644 --- a/patches/server/0734-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0732-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -18,7 +18,7 @@ index 6873036e7d24a2b8e85ab7ae270eec63bd7e7b5b..ac4d96345c985284a1306055b164a74a biomeProvider = gen.getDefaultBiomeProvider(worldInfo); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ea5147262daade44265af7aa029d02f8314673ee..c5aa5bd2a9372d9d21ac600fdf4041d78186c002 100644 +index 36a620d44140edac72e20b83a2cee2860e09deec..e2308ca7bd457ada1e5c0535d10e97affef65612 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1258,7 +1258,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0735-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0733-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/server/0735-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0733-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/server/0736-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0734-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/server/0736-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/server/0734-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/server/0737-Multiple-Entries-with-Scoreboards.patch b/patches/server/0735-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/server/0737-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0735-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/server/0738-Reset-placed-block-on-exception.patch b/patches/server/0736-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/server/0738-Reset-placed-block-on-exception.patch rename to patches/server/0736-Reset-placed-block-on-exception.patch diff --git a/patches/server/0739-Add-configurable-height-for-slime-spawn.patch b/patches/server/0737-Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/server/0739-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0737-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/server/0740-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0738-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/server/0740-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0738-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/server/0741-Multi-Block-Change-API-Implementation.patch b/patches/server/0739-Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/server/0741-Multi-Block-Change-API-Implementation.patch rename to patches/server/0739-Multi-Block-Change-API-Implementation.patch diff --git a/patches/server/0742-Fix-NotePlayEvent.patch b/patches/server/0740-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0742-Fix-NotePlayEvent.patch rename to patches/server/0740-Fix-NotePlayEvent.patch diff --git a/patches/server/0743-Freeze-Tick-Lock-API.patch b/patches/server/0741-Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/server/0743-Freeze-Tick-Lock-API.patch rename to patches/server/0741-Freeze-Tick-Lock-API.patch diff --git a/patches/server/0744-Dolphin-API.patch b/patches/server/0742-Dolphin-API.patch similarity index 100% rename from patches/server/0744-Dolphin-API.patch rename to patches/server/0742-Dolphin-API.patch diff --git a/patches/server/0745-More-PotionEffectType-API.patch b/patches/server/0743-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0745-More-PotionEffectType-API.patch rename to patches/server/0743-More-PotionEffectType-API.patch diff --git a/patches/server/0746-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0744-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0746-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0744-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0747-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0745-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 98% rename from patches/server/0747-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0745-API-for-creating-command-sender-which-forwards-feedb.patch index fcd9ab105acd..f0732e3393d5 100644 --- a/patches/server/0747-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/server/0745-API-for-creating-command-sender-which-forwards-feedb.patch @@ -122,7 +122,7 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c5aa5bd2a9372d9d21ac600fdf4041d78186c002..44faa651250397ab5ceef0cd905bd4984b246a33 100644 +index e2308ca7bd457ada1e5c0535d10e97affef65612..3aa82952cfd0415288b434a6462123504e4dab99 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2110,6 +2110,13 @@ public final class CraftServer implements Server { diff --git a/patches/server/0748-Add-missing-structure-set-seed-configs.patch b/patches/server/0746-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/server/0748-Add-missing-structure-set-seed-configs.patch rename to patches/server/0746-Add-missing-structure-set-seed-configs.patch diff --git a/patches/server/0749-Implement-regenerateChunk.patch b/patches/server/0747-Implement-regenerateChunk.patch similarity index 100% rename from patches/server/0749-Implement-regenerateChunk.patch rename to patches/server/0747-Implement-regenerateChunk.patch diff --git a/patches/server/0750-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0748-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0750-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0748-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0751-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0749-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 92% rename from patches/server/0751-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0749-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 56a4a21224d6..16d4dac83030 100644 --- a/patches/server/0751-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0749-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 44faa651250397ab5ceef0cd905bd4984b246a33..bd452d9200179d9e385ff415822d8e810a8da30c 100644 +index 3aa82952cfd0415288b434a6462123504e4dab99..64224332b7e037330e87d96445a56afebb1e81a2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2287,6 +2287,8 @@ public final class CraftServer implements Server { diff --git a/patches/server/0752-Add-GameEvent-tags.patch b/patches/server/0750-Add-GameEvent-tags.patch similarity index 97% rename from patches/server/0752-Add-GameEvent-tags.patch rename to patches/server/0750-Add-GameEvent-tags.patch index 2ad5887d87ee..40a6ea8d4ac6 100644 --- a/patches/server/0752-Add-GameEvent-tags.patch +++ b/patches/server/0750-Add-GameEvent-tags.patch @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index bd452d9200179d9e385ff415822d8e810a8da30c..48961913ed0a437129432cfa5fa707904d5bcdb2 100644 +index 64224332b7e037330e87d96445a56afebb1e81a2..a3eaa58625d96df5beb00b69b0c7c902f63865db 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2708,6 +2708,15 @@ public final class CraftServer implements Server { diff --git a/patches/server/0753-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0751-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/server/0753-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0751-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/server/0754-Furnace-RecipesUsed-API.patch b/patches/server/0752-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/server/0754-Furnace-RecipesUsed-API.patch rename to patches/server/0752-Furnace-RecipesUsed-API.patch diff --git a/patches/server/0755-Configurable-sculk-sensor-listener-range.patch b/patches/server/0753-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/server/0755-Configurable-sculk-sensor-listener-range.patch rename to patches/server/0753-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/server/0756-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0754-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/server/0756-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0754-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0757-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0755-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 100% rename from patches/server/0757-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0755-Option-to-have-default-CustomSpawners-in-custom-worl.patch diff --git a/patches/server/0758-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0756-Put-world-into-worldlist-before-initing-the-world.patch similarity index 95% rename from patches/server/0758-Put-world-into-worldlist-before-initing-the-world.patch rename to patches/server/0756-Put-world-into-worldlist-before-initing-the-world.patch index ea31a814cb30..5088a1cf5177 100644 --- a/patches/server/0758-Put-world-into-worldlist-before-initing-the-world.patch +++ b/patches/server/0756-Put-world-into-worldlist-before-initing-the-world.patch @@ -23,7 +23,7 @@ index 67bda174adb74e6176e81f986382b3bbbfe6b95f..4f43e306d70bc733ceba2b375c8732f3 if (worlddata.getCustomBossEvents() != null) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 48961913ed0a437129432cfa5fa707904d5bcdb2..4ffb0a342a553b714a0807591a3d21d7a6b08959 100644 +index a3eaa58625d96df5beb00b69b0c7c902f63865db..316a901f5d943209d94ba6631cfaa9be43fdae3b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1288,10 +1288,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0759-Fix-Entity-Position-Desync.patch b/patches/server/0757-Fix-Entity-Position-Desync.patch similarity index 100% rename from patches/server/0759-Fix-Entity-Position-Desync.patch rename to patches/server/0757-Fix-Entity-Position-Desync.patch diff --git a/patches/server/0760-Custom-Potion-Mixes.patch b/patches/server/0758-Custom-Potion-Mixes.patch similarity index 99% rename from patches/server/0760-Custom-Potion-Mixes.patch rename to patches/server/0758-Custom-Potion-Mixes.patch index 9a1291460498..c6c5fb576018 100644 --- a/patches/server/0760-Custom-Potion-Mixes.patch +++ b/patches/server/0758-Custom-Potion-Mixes.patch @@ -172,7 +172,7 @@ index 424406d2692856cfd82b6f3b7b6228fa3bd20c2f..c57efcb9a79337ec791e4e8f6671612f @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4ffb0a342a553b714a0807591a3d21d7a6b08959..4af7f37e12104f6a493c08aff2968762bbdc4811 100644 +index 316a901f5d943209d94ba6631cfaa9be43fdae3b..536057656dfb7af96977b692b854e5a4fff98dd9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -304,6 +304,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0761-Force-close-world-loading-screen.patch b/patches/server/0759-Force-close-world-loading-screen.patch similarity index 100% rename from patches/server/0761-Force-close-world-loading-screen.patch rename to patches/server/0759-Force-close-world-loading-screen.patch diff --git a/patches/server/0762-Fix-falling-block-spawn-methods.patch b/patches/server/0760-Fix-falling-block-spawn-methods.patch similarity index 100% rename from patches/server/0762-Fix-falling-block-spawn-methods.patch rename to patches/server/0760-Fix-falling-block-spawn-methods.patch diff --git a/patches/server/0763-Expose-furnace-minecart-push-values.patch b/patches/server/0761-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0763-Expose-furnace-minecart-push-values.patch rename to patches/server/0761-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0764-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0762-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0764-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0762-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0765-More-Projectile-API.patch b/patches/server/0763-More-Projectile-API.patch similarity index 100% rename from patches/server/0765-More-Projectile-API.patch rename to patches/server/0763-More-Projectile-API.patch diff --git a/patches/server/0766-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0764-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0766-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0764-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0767-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0765-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 100% rename from patches/server/0767-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0765-Don-t-allow-vehicle-movement-from-players-while-tele.patch diff --git a/patches/server/0768-Implement-getComputedBiome-API.patch b/patches/server/0766-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0768-Implement-getComputedBiome-API.patch rename to patches/server/0766-Implement-getComputedBiome-API.patch diff --git a/patches/server/0769-Make-some-itemstacks-nonnull.patch b/patches/server/0767-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0769-Make-some-itemstacks-nonnull.patch rename to patches/server/0767-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0770-Implement-enchantWithLevels-API.patch b/patches/server/0768-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0770-Implement-enchantWithLevels-API.patch rename to patches/server/0768-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0771-Fix-saving-in-unloadWorld.patch b/patches/server/0769-Fix-saving-in-unloadWorld.patch similarity index 90% rename from patches/server/0771-Fix-saving-in-unloadWorld.patch rename to patches/server/0769-Fix-saving-in-unloadWorld.patch index 24b31ecfa307..0110c67e8828 100644 --- a/patches/server/0771-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0769-Fix-saving-in-unloadWorld.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix saving in unloadWorld Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4af7f37e12104f6a493c08aff2968762bbdc4811..50a941add66d160ce3328d869238bab73215be5e 100644 +index 536057656dfb7af96977b692b854e5a4fff98dd9..f9b994a024be198a26d0213b9c98fc46987549a4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1336,7 +1336,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0772-Buffer-OOB-setBlock-calls.patch b/patches/server/0770-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0772-Buffer-OOB-setBlock-calls.patch rename to patches/server/0770-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0773-Add-TameableDeathMessageEvent.patch b/patches/server/0771-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0773-Add-TameableDeathMessageEvent.patch rename to patches/server/0771-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0774-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0772-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 100% rename from patches/server/0774-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0772-Fix-new-block-data-for-EntityChangeBlockEvent.patch diff --git a/patches/server/0775-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0773-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 100% rename from patches/server/0775-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0773-fix-player-loottables-running-when-mob-loot-gamerule.patch diff --git a/patches/server/0776-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0774-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 100% rename from patches/server/0776-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0774-Ensure-entity-passenger-world-matches-ridden-entity.patch diff --git a/patches/server/0777-Guard-against-invalid-entity-positions.patch b/patches/server/0775-Guard-against-invalid-entity-positions.patch similarity index 100% rename from patches/server/0777-Guard-against-invalid-entity-positions.patch rename to patches/server/0775-Guard-against-invalid-entity-positions.patch diff --git a/patches/server/0778-cache-resource-keys.patch b/patches/server/0776-cache-resource-keys.patch similarity index 100% rename from patches/server/0778-cache-resource-keys.patch rename to patches/server/0776-cache-resource-keys.patch diff --git a/patches/server/0779-Allow-to-change-the-podium-for-the-EnderDragon.patch b/patches/server/0777-Allow-to-change-the-podium-for-the-EnderDragon.patch similarity index 100% rename from patches/server/0779-Allow-to-change-the-podium-for-the-EnderDragon.patch rename to patches/server/0777-Allow-to-change-the-podium-for-the-EnderDragon.patch diff --git a/patches/server/0780-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0778-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0780-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0778-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0781-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0779-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 100% rename from patches/server/0781-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0779-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch diff --git a/patches/server/0782-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0780-Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/server/0782-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0780-Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/server/0783-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0781-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 100% rename from patches/server/0783-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0781-Use-username-instead-of-display-name-in-PlayerList-g.patch diff --git a/patches/server/0784-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0782-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 99% rename from patches/server/0784-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0782-Pass-ServerLevel-for-gamerule-callbacks.patch index 203c8ac7fd42..5a24996368b4 100644 --- a/patches/server/0784-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0782-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Pass ServerLevel for gamerule callbacks diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index c9af6ba082d1d387aa2e6ecf5fb4647d994447f4..62c66bb3bcb1cb0a09011aa81bbb39f23623506f 100644 +index e69a0121c8644d831cbb8bc1c95d9219d1c343da..4d7124ae7cefcc8c65bf74ac9d3c103fe6817c42 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -304,7 +304,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0785-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/server/0783-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch similarity index 100% rename from patches/server/0785-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch rename to patches/server/0783-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch diff --git a/patches/server/0786-WorldCreator-keepSpawnLoaded.patch b/patches/server/0784-WorldCreator-keepSpawnLoaded.patch similarity index 94% rename from patches/server/0786-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0784-WorldCreator-keepSpawnLoaded.patch index 7a1ddbe39c9f..74001a685da2 100644 --- a/patches/server/0786-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0784-WorldCreator-keepSpawnLoaded.patch @@ -5,7 +5,7 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 50a941add66d160ce3328d869238bab73215be5e..4642cfb862549c4b3d7e64ac6f040b7cf54d3793 100644 +index f9b994a024be198a26d0213b9c98fc46987549a4..08eb6f115fe5fb2414a35010faa91d6fab7db0e2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1283,7 +1283,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0787-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0785-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0787-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0785-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0788-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0786-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/server/0788-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0786-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/server/0789-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0787-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0789-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0787-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0790-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0788-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0790-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0788-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0791-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0789-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0791-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0789-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0792-Add-PlayerStopUsingItemEvent.patch b/patches/server/0790-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/server/0792-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0790-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/server/0793-Don-t-tick-markers.patch b/patches/server/0791-Don-t-tick-markers.patch similarity index 100% rename from patches/server/0793-Don-t-tick-markers.patch rename to patches/server/0791-Don-t-tick-markers.patch diff --git a/patches/server/0794-Expand-FallingBlock-API.patch b/patches/server/0792-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0794-Expand-FallingBlock-API.patch rename to patches/server/0792-Expand-FallingBlock-API.patch diff --git a/patches/server/0795-Do-not-accept-invalid-client-settings.patch b/patches/server/0793-Do-not-accept-invalid-client-settings.patch similarity index 100% rename from patches/server/0795-Do-not-accept-invalid-client-settings.patch rename to patches/server/0793-Do-not-accept-invalid-client-settings.patch diff --git a/patches/server/0796-Add-support-for-Proxy-Protocol.patch b/patches/server/0794-Add-support-for-Proxy-Protocol.patch similarity index 100% rename from patches/server/0796-Add-support-for-Proxy-Protocol.patch rename to patches/server/0794-Add-support-for-Proxy-Protocol.patch diff --git a/patches/server/0797-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0795-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0797-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0795-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0798-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0796-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0798-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0796-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0799-Sanitize-Sent-BlockEntity-NBT.patch b/patches/server/0797-Sanitize-Sent-BlockEntity-NBT.patch similarity index 100% rename from patches/server/0799-Sanitize-Sent-BlockEntity-NBT.patch rename to patches/server/0797-Sanitize-Sent-BlockEntity-NBT.patch diff --git a/patches/server/0800-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0798-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0800-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0798-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0801-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0799-Prevent-entity-loading-causing-async-lookups.patch similarity index 100% rename from patches/server/0801-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0799-Prevent-entity-loading-causing-async-lookups.patch diff --git a/patches/server/0802-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0800-Throw-exception-on-world-create-while-being-ticked.patch similarity index 97% rename from patches/server/0802-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0800-Throw-exception-on-world-create-while-being-ticked.patch index 7c6b011e7322..7b59f847f336 100644 --- a/patches/server/0802-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0800-Throw-exception-on-world-create-while-being-ticked.patch @@ -45,7 +45,7 @@ index d8eb1dbc1601c1f76183ddd78b88d0ee6df68bed..002511a54565aab9eb4552fecdf974fe this.profiler.popPush("connection"); MinecraftTimings.connectionTimer.startTiming(); // Spigot // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4642cfb862549c4b3d7e64ac6f040b7cf54d3793..de2cd044c5aaf8aca922443374b7a10aafd6f03e 100644 +index 08eb6f115fe5fb2414a35010faa91d6fab7db0e2..398a89a1f695f1e99b30ca0d5ebb192c8f465748 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -874,6 +874,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0803-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0801-Add-Alternate-Current-redstone-implementation.patch similarity index 100% rename from patches/server/0803-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/0801-Add-Alternate-Current-redstone-implementation.patch diff --git a/patches/server/0804-Dont-resent-entity-on-art-update.patch b/patches/server/0802-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/server/0804-Dont-resent-entity-on-art-update.patch rename to patches/server/0802-Dont-resent-entity-on-art-update.patch diff --git a/patches/server/0805-Add-WardenAngerChangeEvent.patch b/patches/server/0803-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/server/0805-Add-WardenAngerChangeEvent.patch rename to patches/server/0803-Add-WardenAngerChangeEvent.patch diff --git a/patches/server/0806-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0804-Add-option-for-strict-advancement-dimension-checks.patch similarity index 100% rename from patches/server/0806-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0804-Add-option-for-strict-advancement-dimension-checks.patch diff --git a/patches/server/0807-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0805-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/server/0807-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0805-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/0808-Nameable-Banner-API.patch b/patches/server/0806-Nameable-Banner-API.patch similarity index 100% rename from patches/server/0808-Nameable-Banner-API.patch rename to patches/server/0806-Nameable-Banner-API.patch diff --git a/patches/server/0809-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0807-Don-t-broadcast-messages-to-command-blocks.patch similarity index 95% rename from patches/server/0809-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0807-Don-t-broadcast-messages-to-command-blocks.patch index 5f36d0ac9831..34bc1d83ab76 100644 --- a/patches/server/0809-Don-t-broadcast-messages-to-command-blocks.patch +++ b/patches/server/0807-Don-t-broadcast-messages-to-command-blocks.patch @@ -20,7 +20,7 @@ index c56f5173fda6b38c2dcaea196217f2f5a7d7c641..d4ff8c6b7801e33be4ff69b8bae13c09 Date date = new Date(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index de2cd044c5aaf8aca922443374b7a10aafd6f03e..2d12d59974224d1adaf862e5a9bbffe804bd07ce 100644 +index 398a89a1f695f1e99b30ca0d5ebb192c8f465748..84d6b1b3ec3972281218cbe5e72c9d4ce6419c59 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1873,7 +1873,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0810-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0808-Prevent-empty-items-from-being-added-to-world.patch similarity index 100% rename from patches/server/0810-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0808-Prevent-empty-items-from-being-added-to-world.patch diff --git a/patches/server/0811-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0809-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/server/0811-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0809-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/server/0812-Add-Player-getFishHook.patch b/patches/server/0810-Add-Player-getFishHook.patch similarity index 100% rename from patches/server/0812-Add-Player-getFishHook.patch rename to patches/server/0810-Add-Player-getFishHook.patch diff --git a/patches/server/0813-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0811-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/server/0813-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0811-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/server/0814-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0812-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 100% rename from patches/server/0814-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0812-Add-various-missing-EntityDropItemEvent-calls.patch diff --git a/patches/server/0815-Fix-Bee-flower-NPE.patch b/patches/server/0813-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/server/0815-Fix-Bee-flower-NPE.patch rename to patches/server/0813-Fix-Bee-flower-NPE.patch diff --git a/patches/server/0816-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0814-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 100% rename from patches/server/0816-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0814-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch diff --git a/patches/server/0817-More-Teleport-API.patch b/patches/server/0815-More-Teleport-API.patch similarity index 100% rename from patches/server/0817-More-Teleport-API.patch rename to patches/server/0815-More-Teleport-API.patch diff --git a/patches/server/0818-Add-EntityPortalReadyEvent.patch b/patches/server/0816-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/server/0818-Add-EntityPortalReadyEvent.patch rename to patches/server/0816-Add-EntityPortalReadyEvent.patch diff --git a/patches/server/0819-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0817-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/server/0819-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0817-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/server/0820-Send-block-entities-after-destroy-prediction.patch b/patches/server/0818-Send-block-entities-after-destroy-prediction.patch similarity index 100% rename from patches/server/0820-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0818-Send-block-entities-after-destroy-prediction.patch diff --git a/patches/server/0821-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0819-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 100% rename from patches/server/0821-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0819-Warn-on-plugins-accessing-faraway-chunks.patch diff --git a/patches/server/0822-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0820-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/server/0822-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0820-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/server/0823-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0821-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0823-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0821-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0824-Collision-API.patch b/patches/server/0822-Collision-API.patch similarity index 100% rename from patches/server/0824-Collision-API.patch rename to patches/server/0822-Collision-API.patch diff --git a/patches/server/0825-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0823-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 100% rename from patches/server/0825-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0823-Fix-suggest-command-message-for-brigadier-syntax-exc.patch diff --git a/patches/server/0826-Block-Ticking-API.patch b/patches/server/0824-Block-Ticking-API.patch similarity index 100% rename from patches/server/0826-Block-Ticking-API.patch rename to patches/server/0824-Block-Ticking-API.patch diff --git a/patches/server/0827-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0825-Add-Velocity-IP-Forwarding-Support.patch similarity index 97% rename from patches/server/0827-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0825-Add-Velocity-IP-Forwarding-Support.patch index b2324c5ee679..3f8870171a1e 100644 --- a/patches/server/0827-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0825-Add-Velocity-IP-Forwarding-Support.patch @@ -95,7 +95,7 @@ index 0000000000000000000000000000000000000000..a34381122de53123169927e181df6628 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 62c66bb3bcb1cb0a09011aa81bbb39f23623506f..5969f45d479188aceedfbe7931c69c36de78a705 100644 +index 4d7124ae7cefcc8c65bf74ac9d3c103fe6817c42..9d7e1b306f8c96883dbe1adbf7e77825da4cbc21 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -274,13 +274,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -123,7 +123,7 @@ index 62c66bb3bcb1cb0a09011aa81bbb39f23623506f..5969f45d479188aceedfbe7931c69c36 DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 08a65700909dd64e6e15fac5c6542b02a864782b..9a5ce6fff9fc2bf18e9fb4bf304584fbbf78b621 100644 +index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..b9117be53b8b8b37af54621f54480f275546f0fd 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -64,6 +64,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -217,7 +217,7 @@ index 08a65700909dd64e6e15fac5c6542b02a864782b..9a5ce6fff9fc2bf18e9fb4bf304584fb } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2d12d59974224d1adaf862e5a9bbffe804bd07ce..0b4639e56b87319e78c1b46fb581d8bb74ead2e4 100644 +index 84d6b1b3ec3972281218cbe5e72c9d4ce6419c59..56e5dff13323068ad2911649e6285aa915d787bd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -803,7 +803,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0828-Add-NamespacedKey-biome-methods.patch b/patches/server/0826-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0828-Add-NamespacedKey-biome-methods.patch rename to patches/server/0826-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0829-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0827-Fix-plugin-loggers-on-server-shutdown.patch similarity index 100% rename from patches/server/0829-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0827-Fix-plugin-loggers-on-server-shutdown.patch diff --git a/patches/server/0830-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0828-Stop-large-look-changes-from-crashing-the-server.patch similarity index 100% rename from patches/server/0830-Stop-large-look-changes-from-crashing-the-server.patch rename to patches/server/0828-Stop-large-look-changes-from-crashing-the-server.patch diff --git a/patches/server/0831-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0829-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0831-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0829-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0832-Missing-eating-regain-reason.patch b/patches/server/0830-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0832-Missing-eating-regain-reason.patch rename to patches/server/0830-Missing-eating-regain-reason.patch diff --git a/patches/server/0833-Missing-effect-cause.patch b/patches/server/0831-Missing-effect-cause.patch similarity index 100% rename from patches/server/0833-Missing-effect-cause.patch rename to patches/server/0831-Missing-effect-cause.patch diff --git a/patches/server/0834-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0832-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0834-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0832-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0835-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0833-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0835-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0833-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0836-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0834-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0836-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0834-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0837-Configurable-chat-thread-limit.patch b/patches/server/0835-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0837-Configurable-chat-thread-limit.patch rename to patches/server/0835-Configurable-chat-thread-limit.patch diff --git a/patches/server/0838-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0836-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0838-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0836-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0839-fix-Jigsaw-block-kicking-user.patch b/patches/server/0837-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0839-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0837-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0840-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0838-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0840-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0838-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0841-Add-getDrops-to-BlockState.patch b/patches/server/0839-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0841-Add-getDrops-to-BlockState.patch rename to patches/server/0839-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0842-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0840-Fix-a-bunch-of-vanilla-bugs.patch similarity index 100% rename from patches/server/0842-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0840-Fix-a-bunch-of-vanilla-bugs.patch diff --git a/patches/server/0843-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0841-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 100% rename from patches/server/0843-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0841-Remove-unnecessary-onTrackingStart-during-navigation.patch diff --git a/patches/server/0844-Fix-custom-piglin-loved-items.patch b/patches/server/0842-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0844-Fix-custom-piglin-loved-items.patch rename to patches/server/0842-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0845-EntityPickupItemEvent-fixes.patch b/patches/server/0843-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0845-EntityPickupItemEvent-fixes.patch rename to patches/server/0843-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0846-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0844-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 100% rename from patches/server/0846-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0844-Correctly-handle-interactions-with-items-on-cooldown.patch diff --git a/patches/server/0847-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0845-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/server/0847-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0845-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/server/0848-Elder-Guardian-appearance-API.patch b/patches/server/0846-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/server/0848-Elder-Guardian-appearance-API.patch rename to patches/server/0846-Elder-Guardian-appearance-API.patch diff --git a/patches/server/0849-Allow-changing-bed-s-occupied-property.patch b/patches/server/0847-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0849-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0847-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0850-Add-entity-knockback-API.patch b/patches/server/0848-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0850-Add-entity-knockback-API.patch rename to patches/server/0848-Add-entity-knockback-API.patch diff --git a/patches/server/0851-Detect-headless-JREs.patch b/patches/server/0849-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0851-Detect-headless-JREs.patch rename to patches/server/0849-Detect-headless-JREs.patch diff --git a/patches/server/0852-fixed-entity-vehicle-collision-event-not-called.patch b/patches/server/0850-fixed-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0852-fixed-entity-vehicle-collision-event-not-called.patch rename to patches/server/0850-fixed-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0853-optimized-dirt-and-snow-spreading.patch b/patches/server/0851-optimized-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/0853-optimized-dirt-and-snow-spreading.patch rename to patches/server/0851-optimized-dirt-and-snow-spreading.patch diff --git a/patches/server/0854-Added-EntityToggleSitEvent.patch b/patches/server/0852-Added-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0854-Added-EntityToggleSitEvent.patch rename to patches/server/0852-Added-EntityToggleSitEvent.patch diff --git a/patches/server/0855-Add-fire-tick-delay-option.patch b/patches/server/0853-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0855-Add-fire-tick-delay-option.patch rename to patches/server/0853-Add-fire-tick-delay-option.patch diff --git a/patches/server/0856-Add-Moving-Piston-API.patch b/patches/server/0854-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0856-Add-Moving-Piston-API.patch rename to patches/server/0854-Add-Moving-Piston-API.patch diff --git a/patches/server/0857-Ignore-impossible-spawn-tick.patch b/patches/server/0855-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0857-Ignore-impossible-spawn-tick.patch rename to patches/server/0855-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0858-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0856-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0858-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0856-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0859-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0857-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0859-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0857-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0860-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0858-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 100% rename from patches/server/0860-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0858-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch diff --git a/patches/server/0861-Prevent-compass-from-loading-chunks.patch b/patches/server/0859-Prevent-compass-from-loading-chunks.patch similarity index 100% rename from patches/server/0861-Prevent-compass-from-loading-chunks.patch rename to patches/server/0859-Prevent-compass-from-loading-chunks.patch diff --git a/patches/server/0862-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0860-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/server/0862-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0860-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/server/0863-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0861-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0863-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0861-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0864-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0862-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0864-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0862-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0865-Add-Player-Warden-Warning-API.patch b/patches/server/0863-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/server/0865-Add-Player-Warden-Warning-API.patch rename to patches/server/0863-Add-Player-Warden-Warning-API.patch diff --git a/patches/server/0866-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0864-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0866-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0864-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0867-Add-paper-dumplisteners-command.patch b/patches/server/0865-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0867-Add-paper-dumplisteners-command.patch rename to patches/server/0865-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0868-check-global-player-list-where-appropriate.patch b/patches/server/0866-check-global-player-list-where-appropriate.patch similarity index 100% rename from patches/server/0868-check-global-player-list-where-appropriate.patch rename to patches/server/0866-check-global-player-list-where-appropriate.patch diff --git a/patches/server/0869-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0867-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0869-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0867-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0870-ItemStack-damage-API.patch b/patches/server/0868-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0870-ItemStack-damage-API.patch rename to patches/server/0868-ItemStack-damage-API.patch diff --git a/patches/server/0871-Friction-API.patch b/patches/server/0869-Friction-API.patch similarity index 100% rename from patches/server/0871-Friction-API.patch rename to patches/server/0869-Friction-API.patch diff --git a/patches/server/0872-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0870-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0872-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0870-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0873-Fix-player-kick-on-shutdown.patch b/patches/server/0871-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0873-Fix-player-kick-on-shutdown.patch rename to patches/server/0871-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0874-Sync-offhand-slot-in-menus.patch b/patches/server/0872-Sync-offhand-slot-in-menus.patch similarity index 100% rename from patches/server/0874-Sync-offhand-slot-in-menus.patch rename to patches/server/0872-Sync-offhand-slot-in-menus.patch diff --git a/patches/server/0875-Player-Entity-Tracking-Events.patch b/patches/server/0873-Player-Entity-Tracking-Events.patch similarity index 100% rename from patches/server/0875-Player-Entity-Tracking-Events.patch rename to patches/server/0873-Player-Entity-Tracking-Events.patch diff --git a/patches/server/0876-Limit-pet-look-distance.patch b/patches/server/0874-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0876-Limit-pet-look-distance.patch rename to patches/server/0874-Limit-pet-look-distance.patch diff --git a/patches/server/0877-Properly-resend-entities.patch b/patches/server/0875-Properly-resend-entities.patch similarity index 100% rename from patches/server/0877-Properly-resend-entities.patch rename to patches/server/0875-Properly-resend-entities.patch diff --git a/patches/server/0878-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0876-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0878-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0876-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0879-fix-Instruments.patch b/patches/server/0877-fix-Instruments.patch similarity index 100% rename from patches/server/0879-fix-Instruments.patch rename to patches/server/0877-fix-Instruments.patch diff --git a/patches/server/0880-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 100% rename from patches/server/0880-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch diff --git a/patches/server/0881-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0879-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0881-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0879-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0882-Add-BlockLockCheckEvent.patch b/patches/server/0880-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0882-Add-BlockLockCheckEvent.patch rename to patches/server/0880-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0883-Add-Sneaking-API-for-Entities.patch b/patches/server/0881-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/server/0883-Add-Sneaking-API-for-Entities.patch rename to patches/server/0881-Add-Sneaking-API-for-Entities.patch diff --git a/patches/server/0884-Improve-logging-and-errors.patch b/patches/server/0882-Improve-logging-and-errors.patch similarity index 100% rename from patches/server/0884-Improve-logging-and-errors.patch rename to patches/server/0882-Improve-logging-and-errors.patch diff --git a/patches/server/0885-Improve-PortalEvents.patch b/patches/server/0883-Improve-PortalEvents.patch similarity index 100% rename from patches/server/0885-Improve-PortalEvents.patch rename to patches/server/0883-Improve-PortalEvents.patch diff --git a/patches/server/0886-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0884-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0886-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0884-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0887-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0885-Add-missing-SpigotConfig-logCommands-check.patch similarity index 100% rename from patches/server/0887-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0885-Add-missing-SpigotConfig-logCommands-check.patch diff --git a/patches/server/0888-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0886-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0888-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0886-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0889-Flying-Fall-Damage.patch b/patches/server/0887-Flying-Fall-Damage.patch similarity index 100% rename from patches/server/0889-Flying-Fall-Damage.patch rename to patches/server/0887-Flying-Fall-Damage.patch diff --git a/patches/server/0890-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0888-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/server/0890-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0888-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/server/0891-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0889-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 100% rename from patches/server/0891-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0889-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch diff --git a/patches/server/0892-config-for-disabling-entity-tag-tags.patch b/patches/server/0890-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0892-config-for-disabling-entity-tag-tags.patch rename to patches/server/0890-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0893-Use-single-player-info-update-packet-on-join.patch b/patches/server/0891-Use-single-player-info-update-packet-on-join.patch similarity index 100% rename from patches/server/0893-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0891-Use-single-player-info-update-packet-on-join.patch diff --git a/patches/server/0894-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0892-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 100% rename from patches/server/0894-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0892-Correctly-shrink-items-during-EntityResurrectEvent.patch diff --git a/patches/server/0895-Win-Screen-API.patch b/patches/server/0893-Win-Screen-API.patch similarity index 100% rename from patches/server/0895-Win-Screen-API.patch rename to patches/server/0893-Win-Screen-API.patch diff --git a/patches/server/0896-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0894-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0896-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0894-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0897-Fix-force-opening-enchantment-tables.patch b/patches/server/0895-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0897-Fix-force-opening-enchantment-tables.patch rename to patches/server/0895-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0898-Add-Entity-Body-Yaw-API.patch b/patches/server/0896-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0898-Add-Entity-Body-Yaw-API.patch rename to patches/server/0896-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0899-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0897-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0899-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0897-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0900-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0898-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 100% rename from patches/server/0900-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0898-Update-the-flag-when-a-captured-block-state-is-outda.patch diff --git a/patches/server/0901-Add-EntityFertilizeEggEvent.patch b/patches/server/0899-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/server/0901-Add-EntityFertilizeEggEvent.patch rename to patches/server/0899-Add-EntityFertilizeEggEvent.patch diff --git a/patches/server/0902-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0900-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0902-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0900-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0903-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0901-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0903-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0901-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0904-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0902-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0904-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0902-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0905-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0903-Fix-advancement-triggers-for-entity-damage.patch similarity index 100% rename from patches/server/0905-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0903-Fix-advancement-triggers-for-entity-damage.patch diff --git a/patches/server/0906-Fix-text-display-error-on-spawn.patch b/patches/server/0904-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0906-Fix-text-display-error-on-spawn.patch rename to patches/server/0904-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0907-Fix-certain-inventories-returning-null-Locations.patch b/patches/server/0905-Fix-certain-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0907-Fix-certain-inventories-returning-null-Locations.patch rename to patches/server/0905-Fix-certain-inventories-returning-null-Locations.patch diff --git a/patches/server/0908-Add-Shearable-API.patch b/patches/server/0906-Add-Shearable-API.patch similarity index 100% rename from patches/server/0908-Add-Shearable-API.patch rename to patches/server/0906-Add-Shearable-API.patch diff --git a/patches/server/0909-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0907-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0909-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0907-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0910-Optimize-Hoppers.patch b/patches/server/0908-Optimize-Hoppers.patch similarity index 100% rename from patches/server/0910-Optimize-Hoppers.patch rename to patches/server/0908-Optimize-Hoppers.patch diff --git a/patches/server/0911-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0909-Fix-beehives-generating-from-using-bonemeal.patch similarity index 100% rename from patches/server/0911-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0909-Fix-beehives-generating-from-using-bonemeal.patch diff --git a/patches/server/0912-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0910-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0912-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0910-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0913-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0911-Treat-sequence-violations-like-they-should-be.patch similarity index 100% rename from patches/server/0913-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0911-Treat-sequence-violations-like-they-should-be.patch diff --git a/patches/server/0914-remove-duplicate-animate-packet-for-records.patch b/patches/server/0912-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0914-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0912-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0915-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0913-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/server/0915-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0913-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/server/0916-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 100% rename from patches/server/0916-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch diff --git a/patches/server/0917-Use-array-for-gamerule-storage.patch b/patches/server/0915-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0917-Use-array-for-gamerule-storage.patch rename to patches/server/0915-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0918-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0916-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0918-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0916-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0919-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0917-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0919-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0917-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0920-Add-Mob-Experience-reward-API.patch b/patches/server/0918-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0920-Add-Mob-Experience-reward-API.patch rename to patches/server/0918-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0921-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0919-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0921-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0919-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0922-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0920-Fix-DamageCause-for-Falling-Blocks.patch similarity index 100% rename from patches/server/0922-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0920-Fix-DamageCause-for-Falling-Blocks.patch diff --git a/patches/server/0923-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0921-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0923-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0921-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0924-More-accurate-isInOpenWater-impl.patch b/patches/server/0922-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0924-More-accurate-isInOpenWater-impl.patch rename to patches/server/0922-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0925-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0923-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0925-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0923-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0926-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0924-Optimise-recalcBlockCounts-for-empty-sections.patch similarity index 100% rename from patches/server/0926-Optimise-recalcBlockCounts-for-empty-sections.patch rename to patches/server/0924-Optimise-recalcBlockCounts-for-empty-sections.patch diff --git a/patches/server/0927-Expand-PlayerItemMendEvent.patch b/patches/server/0925-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/server/0927-Expand-PlayerItemMendEvent.patch rename to patches/server/0925-Expand-PlayerItemMendEvent.patch diff --git a/patches/server/0928-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0926-Refresh-ProjectileSource-for-projectiles.patch similarity index 100% rename from patches/server/0928-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0926-Refresh-ProjectileSource-for-projectiles.patch diff --git a/patches/server/0929-Add-transient-modifier-API.patch b/patches/server/0927-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0929-Add-transient-modifier-API.patch rename to patches/server/0927-Add-transient-modifier-API.patch diff --git a/patches/server/0930-Fix-block-place-logic.patch b/patches/server/0928-Fix-block-place-logic.patch similarity index 100% rename from patches/server/0930-Fix-block-place-logic.patch rename to patches/server/0928-Fix-block-place-logic.patch diff --git a/patches/server/0931-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0929-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0931-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0929-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0932-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0930-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0932-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0930-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0933-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 94% rename from patches/server/0933-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index 0fec15f9b78d..19c94cb4d028 100644 --- a/patches/server/0933-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0b4639e56b87319e78c1b46fb581d8bb74ead2e4..4310134fe9cb74cb11591d52562bc35039130d19 100644 +index 56e5dff13323068ad2911649e6285aa915d787bd..d0cc462f3ca02218978ac14358d533e3a4d8b066 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -352,7 +352,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0934-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0932-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0934-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0932-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0935-Fix-sniffer-removeExploredLocation.patch b/patches/server/0933-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0935-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0933-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0936-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0934-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0936-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0934-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0937-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0935-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch similarity index 100% rename from patches/server/0937-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename to patches/server/0935-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch diff --git a/patches/server/0938-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0936-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0938-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0936-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0939-Properly-Cancel-Usable-Items.patch b/patches/server/0937-Properly-Cancel-Usable-Items.patch similarity index 100% rename from patches/server/0939-Properly-Cancel-Usable-Items.patch rename to patches/server/0937-Properly-Cancel-Usable-Items.patch diff --git a/patches/server/0940-Add-event-for-player-editing-sign.patch b/patches/server/0938-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0940-Add-event-for-player-editing-sign.patch rename to patches/server/0938-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0941-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0939-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0941-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0939-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0942-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0940-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0942-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0940-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0943-Add-option-to-disable-block-updates.patch b/patches/server/0941-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0943-Add-option-to-disable-block-updates.patch rename to patches/server/0941-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0944-Call-missing-BlockDispenseEvent.patch b/patches/server/0942-Call-missing-BlockDispenseEvent.patch similarity index 100% rename from patches/server/0944-Call-missing-BlockDispenseEvent.patch rename to patches/server/0942-Call-missing-BlockDispenseEvent.patch diff --git a/patches/server/0945-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0943-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 100% rename from patches/server/0945-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0943-Don-t-load-chunks-for-supporting-block-checks.patch diff --git a/patches/server/0946-Optimize-player-lookups-for-beacons.patch b/patches/server/0944-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0946-Optimize-player-lookups-for-beacons.patch rename to patches/server/0944-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0947-Add-Sign-getInteractableSideFor.patch b/patches/server/0945-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0947-Add-Sign-getInteractableSideFor.patch rename to patches/server/0945-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0948-Array-backed-synched-entity-data.patch b/patches/server/0946-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0948-Array-backed-synched-entity-data.patch rename to patches/server/0946-Array-backed-synched-entity-data.patch diff --git a/patches/server/0949-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0947-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0949-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0947-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0950-Fix-BanList-API.patch b/patches/server/0948-Fix-BanList-API.patch similarity index 100% rename from patches/server/0950-Fix-BanList-API.patch rename to patches/server/0948-Fix-BanList-API.patch diff --git a/patches/server/0951-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0949-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 81% rename from patches/server/0951-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0949-Determine-lava-and-water-fluid-explosion-resistance-.patch index 05fb1ac2acb4..40890b3d2895 100644 --- a/patches/server/0951-Determine-lava-and-water-fluid-explosion-resistance-.patch +++ b/patches/server/0949-Determine-lava-and-water-fluid-explosion-resistance-.patch @@ -9,7 +9,7 @@ When selecting which explosion resistance to use for lava and water, vanilla sel Problems emerge when we want to reduce the explosion resistance of water or lava, since the fluid explosion resistance is hardcoded to return 100.0F and can't be changed by a plugin. This simply makes the fluid explosion resistance the same as the block explosion resistance, which allows plugin to change the value. Since both are the same in vanilla, this has no side effects on servers that do not need to do this. diff --git a/src/main/java/net/minecraft/world/level/material/LavaFluid.java b/src/main/java/net/minecraft/world/level/material/LavaFluid.java -index 72f8b72c6436ca3b8eaeb39c7d3efe2c1462ae1d..c3f8e1e2dd89c168b8b4a15b589109db486bc8d7 100644 +index 72f8b72c6436ca3b8eaeb39c7d3efe2c1462ae1d..3bb4a9a1a6249e8ba2de237f801210e7f4fd5825 100644 --- a/src/main/java/net/minecraft/world/level/material/LavaFluid.java +++ b/src/main/java/net/minecraft/world/level/material/LavaFluid.java @@ -232,7 +232,7 @@ public abstract class LavaFluid extends FlowingFluid { @@ -17,12 +17,12 @@ index 72f8b72c6436ca3b8eaeb39c7d3efe2c1462ae1d..c3f8e1e2dd89c168b8b4a15b589109db @Override protected float getExplosionResistance() { - return 100.0F; -+ return Blocks.LAVA.getExplosionResistance(); // Paper ++ return Blocks.LAVA.getExplosionResistance(); // Paper - Get explosion resistance from actual block } @Override diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -index 82e85fbbd45244d02df90fa00c9046e7f51275a2..d280c98aed5262c4ce39526c917de884f25a8584 100644 +index 82e85fbbd45244d02df90fa00c9046e7f51275a2..d8c26b02188a6d443c6ec73bd5fa2fa8197a5e59 100644 --- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java +++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java @@ -109,7 +109,7 @@ public abstract class WaterFluid extends FlowingFluid { @@ -30,7 +30,7 @@ index 82e85fbbd45244d02df90fa00c9046e7f51275a2..d280c98aed5262c4ce39526c917de884 @Override protected float getExplosionResistance() { - return 100.0F; -+ return Blocks.WATER.getExplosionResistance(); // Paper ++ return Blocks.WATER.getExplosionResistance(); // Paper - Get explosion resistance from actual block } @Override diff --git a/patches/server/0952-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0950-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0952-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0950-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0953-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0951-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0953-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0951-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0954-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0952-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 88% rename from patches/server/0954-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0952-ExperienceOrb-should-call-EntitySpawnEvent.patch index dfc52d60b664..e6d854a0e320 100644 --- a/patches/server/0954-ExperienceOrb-should-call-EntitySpawnEvent.patch +++ b/patches/server/0952-ExperienceOrb-should-call-EntitySpawnEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] ExperienceOrb should call EntitySpawnEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 5ead89e46d9cf17980baf35cda000bc4c0e7425b..2299cff413241aa97e9f498eb0dea51575e364ae 100644 +index 5ead89e46d9cf17980baf35cda000bc4c0e7425b..7fe4d29f7734ba9642f1a64c161df7d24b88a18a 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -734,7 +734,10 @@ public class CraftEventFactory { @@ -13,10 +13,10 @@ index 5ead89e46d9cf17980baf35cda000bc4c0e7425b..2299cff413241aa97e9f498eb0dea515 if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) { double radius = world.spigotConfig.expMerge; - if (radius > 0) { -+ // Paper start - Call EntitySpawnEvent for ExperienceOrb entities. ++ // Paper start - Call EntitySpawnEvent for ExperienceOrb entities + event = CraftEventFactory.callEntitySpawnEvent(entity); + if (radius > 0 && !event.isCancelled() && !entity.isRemoved()) { -+ // Paper end ++ // Paper end - Call EntitySpawnEvent for ExperienceOrb entities // Paper start - Maximum exp value when merging - Whole section has been tweaked, see comments for specifics final int maxValue = world.paperConfig().entities.behavior.experienceMergeMaxValue; final boolean mergeUnconditionally = world.paperConfig().entities.behavior.experienceMergeMaxValue <= 0; diff --git a/patches/server/0955-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0953-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 88% rename from patches/server/0955-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0953-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch index 392fad1ce84f..b2837d4486f7 100644 --- a/patches/server/0955-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch +++ b/patches/server/0953-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make Amethyst throw both Spread and Grow Events diff --git a/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java b/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java -index 79f1fb45447350b5bedee8ce3efe6c150aa9772c..ee24eac5e37a2fd0c8c37365ea10d03749beb9a7 100644 +index 79f1fb45447350b5bedee8ce3efe6c150aa9772c..617c35f8e2877be193693548b5af17c50d013e47 100644 --- a/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java @@ -45,7 +45,13 @@ public class BuddingAmethystBlock extends AmethystBlock { @@ -18,7 +18,7 @@ index 79f1fb45447350b5bedee8ce3efe6c150aa9772c..ee24eac5e37a2fd0c8c37365ea10d037 + } else { + org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockGrowEvent(world, blockposition1, iblockdata2); + } -+ // Paper end ++ // Paper end - Have Amethyst throw both spread and grow events } } diff --git a/patches/server/0956-Add-whitelist-events.patch b/patches/server/0954-Add-whitelist-events.patch similarity index 91% rename from patches/server/0956-Add-whitelist-events.patch rename to patches/server/0954-Add-whitelist-events.patch index 42eff5bfe176..44cddb390d00 100644 --- a/patches/server/0956-Add-whitelist-events.patch +++ b/patches/server/0954-Add-whitelist-events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add whitelist events diff --git a/src/main/java/net/minecraft/server/players/UserWhiteList.java b/src/main/java/net/minecraft/server/players/UserWhiteList.java -index a6c70decad1a496595944a5dd2aeeb387757fef3..e5c218833f5bcb1c908cd62bdc57cc5152d37be5 100644 +index a6c70decad1a496595944a5dd2aeeb387757fef3..37635f58cd78ff50991dde413470004400259c89 100644 --- a/src/main/java/net/minecraft/server/players/UserWhiteList.java +++ b/src/main/java/net/minecraft/server/players/UserWhiteList.java @@ -30,4 +30,23 @@ public class UserWhiteList extends StoredUserList collisionsBB = new java.util.ArrayList<>(); diff --git a/patches/server/0958-Folia-scheduler-and-owned-region-API.patch b/patches/server/0956-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0958-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0956-Folia-scheduler-and-owned-region-API.patch index ca3ecfa30b7f..d1bfe767a5a9 100644 --- a/patches/server/0958-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0956-Folia-scheduler-and-owned-region-API.patch @@ -1251,7 +1251,7 @@ index a2607d0782e8d72d7e531a2b078674bc78daa5e3..687f7358466302195ec564ca5c817b13 public void setLevelCallback(EntityInLevelCallback changeListener) { this.levelCallback = changeListener; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4310134fe9cb74cb11591d52562bc35039130d19..8d92fe2b91bc1a68df05c0833acd964dbfbcc312 100644 +index d0cc462f3ca02218978ac14358d533e3a4d8b066..e321af528d356317da3753b73ccbc6af860f2618 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -306,6 +306,76 @@ public final class CraftServer implements Server { diff --git a/patches/server/0959-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0957-Only-erase-allay-memory-on-non-item-targets.patch similarity index 100% rename from patches/server/0959-Only-erase-allay-memory-on-non-item-targets.patch rename to patches/server/0957-Only-erase-allay-memory-on-non-item-targets.patch diff --git a/patches/server/0960-API-for-updating-recipes-on-clients.patch b/patches/server/0958-API-for-updating-recipes-on-clients.patch similarity index 77% rename from patches/server/0960-API-for-updating-recipes-on-clients.patch rename to patches/server/0958-API-for-updating-recipes-on-clients.patch index d677fe2f527e..eedc91b17616 100644 --- a/patches/server/0960-API-for-updating-recipes-on-clients.patch +++ b/patches/server/0958-API-for-updating-recipes-on-clients.patch @@ -5,20 +5,20 @@ Subject: [PATCH] API for updating recipes on clients diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 69e75aec30e8c25f621c8e7d024abe672395a0ef..683317e8c008fdb501e981490fd62f94597f2fee 100644 +index 69e75aec30e8c25f621c8e7d024abe672395a0ef..b33f6f3ceb279eb5a36df7d37d56bfce951c3de7 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1545,6 +1545,13 @@ public abstract class PlayerList { } public void reloadResources() { -+ // Paper start - split this method up into separate methods ++ // Paper start - API for updating recipes on clients + this.reloadAdvancementData(); + this.reloadTagData(); + this.reloadRecipeData(); + } + public void reloadAdvancementData() { -+ // Paper end ++ // Paper end - API for updating recipes on clients // CraftBukkit start /*Iterator iterator = this.advancements.values().iterator(); @@ -26,27 +26,27 @@ index 69e75aec30e8c25f621c8e7d024abe672395a0ef..683317e8c008fdb501e981490fd62f94 } // CraftBukkit end -+ // Paper start ++ // Paper start - API for updating recipes on clients + } + public void reloadTagData() { -+ // Paper end ++ // Paper end - API for updating recipes on clients this.broadcastAll(new ClientboundUpdateTagsPacket(TagNetworkSerialization.serializeTagsToNetwork(this.registries))); -+ // Paper start ++ // Paper start - API for updating recipes on clients + } + public void reloadRecipeData() { -+ // Paper end ++ // Paper end - API for updating recipes on clients ClientboundUpdateRecipesPacket packetplayoutrecipeupdate = new ClientboundUpdateRecipesPacket(this.server.getRecipeManager().getRecipes()); Iterator iterator1 = this.players.iterator(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8d92fe2b91bc1a68df05c0833acd964dbfbcc312..2c044fc1d5c26c68a103932f516e0625b83f4da7 100644 +index e321af528d356317da3753b73ccbc6af860f2618..d26982e05cdcd5f822f1f0d9142ddbf4d08a6891 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1129,6 +1129,18 @@ public final class CraftServer implements Server { ReloadCommand.reload(this.console); } -+ // Paper start ++ // Paper start - API for updating recipes on clients + @Override + public void updateResources() { + this.playerList.reloadResources(); @@ -56,7 +56,7 @@ index 8d92fe2b91bc1a68df05c0833acd964dbfbcc312..2c044fc1d5c26c68a103932f516e0625 + public void updateRecipes() { + this.playerList.reloadRecipeData(); + } -+ // Paper end ++ // Paper end - API for updating recipes on clients + private void loadIcon() { this.icon = new CraftIconCache(null); @@ -65,13 +65,13 @@ index 8d92fe2b91bc1a68df05c0833acd964dbfbcc312..2c044fc1d5c26c68a103932f516e0625 @Override public boolean addRecipe(Recipe recipe) { -+ // Paper start ++ // Paper start - API for updating recipes on clients + return this.addRecipe(recipe, false); + } + + @Override + public boolean addRecipe(Recipe recipe, boolean resendRecipes) { -+ // Paper end ++ // Paper end - API for updating recipes on clients CraftRecipe toAdd; if (recipe instanceof CraftRecipe) { toAdd = (CraftRecipe) recipe; @@ -79,11 +79,11 @@ index 8d92fe2b91bc1a68df05c0833acd964dbfbcc312..2c044fc1d5c26c68a103932f516e0625 } } toAdd.addToCraftingManager(); -+ // Paper start ++ // Paper start - API for updating recipes on clients + if (resendRecipes) { + this.playerList.reloadRecipeData(); + } -+ // Paper end ++ // Paper end - API for updating recipes on clients return true; } @@ -91,13 +91,13 @@ index 8d92fe2b91bc1a68df05c0833acd964dbfbcc312..2c044fc1d5c26c68a103932f516e0625 @Override public boolean removeRecipe(NamespacedKey recipeKey) { -+ // Paper start ++ // Paper start - API for updating recipes on clients + return this.removeRecipe(recipeKey, false); + } + + @Override + public boolean removeRecipe(NamespacedKey recipeKey, boolean resendRecipes) { -+ // Paper end ++ // Paper end - API for updating recipes on clients Preconditions.checkArgument(recipeKey != null, "recipeKey == null"); ResourceLocation mcKey = CraftNamespacedKey.toMinecraft(recipeKey); diff --git a/patches/server/0961-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0959-Fix-rotation-when-spawning-display-entities.patch similarity index 100% rename from patches/server/0961-Fix-rotation-when-spawning-display-entities.patch rename to patches/server/0959-Fix-rotation-when-spawning-display-entities.patch diff --git a/patches/server/0962-Only-capture-actual-tree-growth.patch b/patches/server/0960-Only-capture-actual-tree-growth.patch similarity index 100% rename from patches/server/0962-Only-capture-actual-tree-growth.patch rename to patches/server/0960-Only-capture-actual-tree-growth.patch diff --git a/patches/server/0963-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0961-Use-correct-source-for-mushroom-block-spread-event.patch similarity index 83% rename from patches/server/0963-Use-correct-source-for-mushroom-block-spread-event.patch rename to patches/server/0961-Use-correct-source-for-mushroom-block-spread-event.patch index b5e0bc1a5e69..b1a7bde7b7f8 100644 --- a/patches/server/0963-Use-correct-source-for-mushroom-block-spread-event.patch +++ b/patches/server/0961-Use-correct-source-for-mushroom-block-spread-event.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Use correct source for mushroom block spread event diff --git a/src/main/java/net/minecraft/world/level/block/MushroomBlock.java b/src/main/java/net/minecraft/world/level/block/MushroomBlock.java -index 5889cb1cdb64875f0d7a7c681808b45cdc661d8e..7368c76a01275223a7bd3df1d36e80a15f66edbb 100644 +index 5889cb1cdb64875f0d7a7c681808b45cdc661d8e..96f9ca2439a617b5f90b826d4fc99c857301b1c2 100644 --- a/src/main/java/net/minecraft/world/level/block/MushroomBlock.java +++ b/src/main/java/net/minecraft/world/level/block/MushroomBlock.java @@ -68,6 +68,7 @@ public class MushroomBlock extends BushBlock implements BonemealableBlock { } BlockPos blockposition2 = pos.offset(random.nextInt(3) - 1, random.nextInt(2) - random.nextInt(2), random.nextInt(3) - 1); -+ final BlockPos sourcePos = pos; // Paper ++ final BlockPos sourcePos = pos; // Paper - Use correct source for mushroom block spread event for (int j = 0; j < 4; ++j) { if (world.isEmptyBlock(blockposition2) && state.canSurvive(world, blockposition2)) { @@ -21,7 +21,7 @@ index 5889cb1cdb64875f0d7a7c681808b45cdc661d8e..7368c76a01275223a7bd3df1d36e80a1 if (world.isEmptyBlock(blockposition2) && state.canSurvive(world, blockposition2)) { - org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition2, state, 2); // CraftBukkit -+ org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, sourcePos, blockposition2, state, 2); // CraftBukkit // Paper ++ org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, sourcePos, blockposition2, state, 2); // CraftBukkit // Paper - Use correct source for mushroom block spread event } } diff --git a/patches/server/0964-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0962-Respect-randomizeData-on-more-entities-when-spawning.patch similarity index 100% rename from patches/server/0964-Respect-randomizeData-on-more-entities-when-spawning.patch rename to patches/server/0962-Respect-randomizeData-on-more-entities-when-spawning.patch diff --git a/patches/server/0965-Use-correct-seed-on-api-world-load.patch b/patches/server/0963-Use-correct-seed-on-api-world-load.patch similarity index 90% rename from patches/server/0965-Use-correct-seed-on-api-world-load.patch rename to patches/server/0963-Use-correct-seed-on-api-world-load.patch index 915841f29f20..d8c6ae0ff1b2 100644 --- a/patches/server/0965-Use-correct-seed-on-api-world-load.patch +++ b/patches/server/0963-Use-correct-seed-on-api-world-load.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use correct seed on api world load diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2c044fc1d5c26c68a103932f516e0625b83f4da7..c986e6c25cb3865fe94e0c37a21701c7c5fa3e8d 100644 +index d26982e05cdcd5f822f1f0d9142ddbf4d08a6891..45818b55be7431e73245efc447a3dca21fdf95e0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1347,7 +1347,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0966-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0964-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch similarity index 100% rename from patches/server/0966-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch rename to patches/server/0964-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch diff --git a/patches/server/0967-Cache-map-ids-on-item-frames.patch b/patches/server/0965-Cache-map-ids-on-item-frames.patch similarity index 83% rename from patches/server/0967-Cache-map-ids-on-item-frames.patch rename to patches/server/0965-Cache-map-ids-on-item-frames.patch index 2c0fbde170db..4233b66ea50e 100644 --- a/patches/server/0967-Cache-map-ids-on-item-frames.patch +++ b/patches/server/0965-Cache-map-ids-on-item-frames.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cache map ids on item frames diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 625a598eb5f3c9c5ea60ae9ea50974bb08abbf85..9f1b424f8437f0f859d4f177ecc52233ad8e3357 100644 +index 625a598eb5f3c9c5ea60ae9ea50974bb08abbf85..ec8fcc3f105c6265de02fcaabc4b51eca626aa5e 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -118,7 +118,7 @@ public class ServerEntity { @@ -13,19 +13,19 @@ index 625a598eb5f3c9c5ea60ae9ea50974bb08abbf85..9f1b424f8437f0f859d4f177ecc52233 if (this.level.paperConfig().maps.itemFrameCursorUpdateInterval > 0 && this.tickCount % this.level.paperConfig().maps.itemFrameCursorUpdateInterval == 0 && itemstack.getItem() instanceof MapItem) { // CraftBukkit - Moved this.tickCounter % 10 logic here so item frames do not enter the other blocks // Paper - Make item frame map cursor update interval configurable - Integer integer = MapItem.getMapId(itemstack); -+ Integer integer = entityitemframe.cachedMapId; // Paper ++ Integer integer = entityitemframe.cachedMapId; // Paper - Perf: Cache map ids on item frames MapItemSavedData worldmap = MapItem.getSavedData(integer, this.level); if (worldmap != null) { diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index 9c11d0af958ec47408d238d34d30750d29ecdd88..69912c5b300b67394dce3876d2d96872033cf156 100644 +index 9c11d0af958ec47408d238d34d30750d29ecdd88..8994385e95df467166985083fbdaa89dc1949f91 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java @@ -50,6 +50,7 @@ public class ItemFrame extends HangingEntity { public static final int NUM_ROTATIONS = 8; public float dropChance; public boolean fixed; -+ public Integer cachedMapId; // Paper ++ public Integer cachedMapId; // Paper - Perf: Cache map ids on item frames public ItemFrame(EntityType type, Level world) { super(type, world); @@ -33,7 +33,7 @@ index 9c11d0af958ec47408d238d34d30750d29ecdd88..69912c5b300b67394dce3876d2d96872 } private void onItemChanged(ItemStack stack) { -+ this.cachedMapId = MapItem.getMapId(stack); // Paper ++ this.cachedMapId = MapItem.getMapId(stack); // Paper - Perf: Cache map ids on item frames if (!stack.isEmpty() && stack.getFrame() != this) { stack.setEntityRepresentation(this); } diff --git a/patches/server/0968-Fix-custom-statistic-criteria-creation.patch b/patches/server/0966-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/server/0968-Fix-custom-statistic-criteria-creation.patch rename to patches/server/0966-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/server/0969-Bandaid-fix-for-Effect.patch b/patches/server/0967-Bandaid-fix-for-Effect.patch similarity index 100% rename from patches/server/0969-Bandaid-fix-for-Effect.patch rename to patches/server/0967-Bandaid-fix-for-Effect.patch diff --git a/patches/server/0970-SculkCatalyst-bloom-API.patch b/patches/server/0968-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/server/0970-SculkCatalyst-bloom-API.patch rename to patches/server/0968-SculkCatalyst-bloom-API.patch diff --git a/patches/server/0971-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0969-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/server/0971-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0969-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/server/0972-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0970-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 95% rename from patches/server/0972-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/0970-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch index 028651b9f300..88e0ced5584c 100644 --- a/patches/server/0972-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch +++ b/patches/server/0970-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch @@ -73,18 +73,18 @@ index de27b8d578d429564038e01cef5f46d4d3d7e81c..42c42d599d5b4827693cfe3f6cf9a32e // CraftBukkit start public String displayName; diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index d08c7b0b52065980f1f13c5533ff6355028322db..3cdddda9c0618e95288b81b975d499c8dd30c05f 100644 +index d08c7b0b52065980f1f13c5533ff6355028322db..dc211c6aedc178ac50b7d05aab3662c422211cbd 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -277,6 +277,11 @@ public final class NaturalSpawner { // Paper start PreSpawnStatus doSpawning = isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2); -+ // Paper start - mob count backoff ++ // Paper start - per player mob count backoff + if (doSpawning == PreSpawnStatus.ABORT || doSpawning == PreSpawnStatus.CANCELLED) { + world.getChunkSource().chunkMap.updateFailurePlayerMobTypeMap(blockposition_mutableblockposition.getX() >> 4, blockposition_mutableblockposition.getZ() >> 4, group); + } -+ // Paper end - mob count backoff ++ // Paper end - per player mob count backoff if (doSpawning == PreSpawnStatus.ABORT) { return j; // Paper } diff --git a/patches/server/0973-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0971-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 96% rename from patches/server/0973-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0971-Deprecate-and-replace-methods-with-old-StructureType.patch index 02d04be28cb1..7ac8f482d821 100644 --- a/patches/server/0973-Deprecate-and-replace-methods-with-old-StructureType.patch +++ b/patches/server/0971-Deprecate-and-replace-methods-with-old-StructureType.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Deprecate and replace methods with old StructureType diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c986e6c25cb3865fe94e0c37a21701c7c5fa3e8d..0b68bd21b0e45d556ec9ae0a51507987dfed559c 100644 +index 45818b55be7431e73245efc447a3dca21fdf95e0..6f3a06eeadc9fd2ccab0622fc21819a9fb569956 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1951,6 +1951,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0974-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0972-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 90% rename from patches/server/0974-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0972-Don-t-tab-complete-namespaced-commands-if-send-names.patch index e66d5e65648b..97bd8df990c3 100644 --- a/patches/server/0974-Don-t-tab-complete-namespaced-commands-if-send-names.patch +++ b/patches/server/0972-Don-t-tab-complete-namespaced-commands-if-send-names.patch @@ -11,7 +11,7 @@ This patch prevents server from sending namespaced commands when player requests tab-complete only commands. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a20e8910f1a4800708e587853ba9aea5cc0ebce2..fa3c26732778339cd84d53a28c6c938b50594f0f 100644 +index bed713a7c13cd11c2ea7d8397aee1159f42eac7d..4f511fd74abe7a666fd12a514d65846f8b689278 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -807,6 +807,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -22,7 +22,7 @@ index a20e8910f1a4800708e587853ba9aea5cc0ebce2..fa3c26732778339cd84d53a28c6c938b + if (!org.spigotmc.SpigotConfig.sendNamespaced && suggestions.getRange().getStart() <= 1) { + suggestions.getList().removeIf(suggestion -> suggestion.getText().contains(":")); + } -+ // Paper end ++ // Paper end - Don't tab-complete namespaced commands if send-namespaced is false // Paper start - Brigadier API com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent suggestEvent = new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendSuggestionsEvent(this.getCraftPlayer(), suggestions, command); suggestEvent.setCancelled(suggestions.isEmpty()); diff --git a/patches/server/0975-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0973-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 83% rename from patches/server/0975-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0973-Properly-handle-BlockBreakEvent-isDropItems.patch index 275d134d203e..e05e39b2778c 100644 --- a/patches/server/0975-Properly-handle-BlockBreakEvent-isDropItems.patch +++ b/patches/server/0973-Properly-handle-BlockBreakEvent-isDropItems.patch @@ -9,7 +9,7 @@ food consumption, turtle egg count decreases, ice to water conversions and beehive releases diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 82f26186156a487f29ad3abff3f68852e5b8a1f9..3088cf508427ca03804bfa4c081bb6dfcce07d45 100644 +index 82f26186156a487f29ad3abff3f68852e5b8a1f9..932bed293f3eb9ec5aae63235e2907ed96eca189 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -433,8 +433,8 @@ public class ServerPlayerGameMode { @@ -19,12 +19,12 @@ index 82f26186156a487f29ad3abff3f68852e5b8a1f9..3088cf508427ca03804bfa4c081bb6df - if (flag && flag1 && event.isDropItems()) { // CraftBukkit - Check if block should drop items - block.playerDestroy(this.level, this.player, pos, iblockdata1, tileentity, itemstack1); + if (flag && flag1/* && event.isDropItems() */) { // CraftBukkit - Check if block should drop items // Paper - fix drops not preventing stats/food exhaustion -+ block.playerDestroy(this.level, this.player, pos, iblockdata1, tileentity, itemstack1, event.isDropItems(), false); // Paper ++ block.playerDestroy(this.level, this.player, pos, iblockdata1, tileentity, itemstack1, event.isDropItems(), false); // Paper - fix drops not preventing stats/food exhaustion } // return true; // CraftBukkit diff --git a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java -index 6e7a9f68aa3a5084c8eea9fd8721272260734289..2594c8e233114b21e5b00acb5ad7012b004a0ef2 100644 +index 6e7a9f68aa3a5084c8eea9fd8721272260734289..a276e133d1aabcb5b9c1f407fcbee6a84a052f2d 100644 --- a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java @@ -84,8 +84,8 @@ public class BeehiveBlock extends BaseEntityBlock { @@ -33,36 +33,36 @@ index 6e7a9f68aa3a5084c8eea9fd8721272260734289..2594c8e233114b21e5b00acb5ad7012b @Override - public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool) { - super.playerDestroy(world, player, pos, state, blockEntity, tool); -+ public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool, boolean includeDrops, boolean dropExp) { // Paper -+ super.playerDestroy(world, player, pos, state, blockEntity, tool, includeDrops, dropExp); // Paper ++ public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool, boolean includeDrops, boolean dropExp) { // Paper - fix drops not preventing stats/food exhaustion ++ super.playerDestroy(world, player, pos, state, blockEntity, tool, includeDrops, dropExp); // Paper - fix drops not preventing stats/food exhaustion if (!world.isClientSide && blockEntity instanceof BeehiveBlockEntity) { BeehiveBlockEntity tileentitybeehive = (BeehiveBlockEntity) blockEntity; diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 38d587c93a9ae5706633608f681f18684b7a631d..c450caed1a8d14f3bd56d0336a9bf72a5adca14f 100644 +index 38d587c93a9ae5706633608f681f18684b7a631d..8ac67dd1b06eee08787150abdfc74a8cccec94fc 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -423,10 +423,18 @@ public class Block extends BlockBehaviour implements ItemLike { return this.defaultBlockState(); } -+ @io.papermc.paper.annotation.DoNotUse // Paper - method below allows better control of item drops ++ @io.papermc.paper.annotation.DoNotUse // Paper - fix drops not preventing stats/food exhaustion public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool) { -+ // Paper start ++ // Paper start - fix drops not preventing stats/food exhaustion + this.playerDestroy(world, player, pos, state, blockEntity, tool, true, true); + } + public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool, boolean includeDrops, boolean dropExp) { -+ // Paper end ++ // Paper end - fix drops not preventing stats/food exhaustion player.awardStat(Stats.BLOCK_MINED.get(this)); player.causeFoodExhaustion(0.005F, org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.BLOCK_MINED); // CraftBukkit - EntityExhaustionEvent -+ if (includeDrops) { // Paper ++ if (includeDrops) { // Paper - fix drops not preventing stats/food exhaustion Block.dropResources(state, world, pos, blockEntity, player, tool); -+ } // Paper ++ } // Paper - fix drops not preventing stats/food exhaustion } public void setPlacedBy(Level world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack itemStack) {} diff --git a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java -index 0f0750f8c790d0db72a0e6b277449a1461674890..a6a257027d60bfda8cb975eca7f255fb1bd1e8d5 100644 +index 0f0750f8c790d0db72a0e6b277449a1461674890..03b5ab8251497c0c94467f90e6663a0dc766babb 100644 --- a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java @@ -96,8 +96,8 @@ public class DoublePlantBlock extends BushBlock { @@ -71,13 +71,13 @@ index 0f0750f8c790d0db72a0e6b277449a1461674890..a6a257027d60bfda8cb975eca7f255fb @Override - public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool) { - super.playerDestroy(world, player, pos, Blocks.AIR.defaultBlockState(), blockEntity, tool); -+ public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool, boolean includeDrops, boolean dropExp) { // Paper -+ super.playerDestroy(world, player, pos, Blocks.AIR.defaultBlockState(), blockEntity, tool, includeDrops, dropExp); // Paper ++ public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool, boolean includeDrops, boolean dropExp) { // Paper - fix drops not preventing stats/food exhaustion ++ super.playerDestroy(world, player, pos, Blocks.AIR.defaultBlockState(), blockEntity, tool, includeDrops, dropExp); // Paper - fix drops not preventing stats/food exhaustion } protected static void preventDropFromBottomPart(Level world, BlockPos pos, BlockState state, Player player) { diff --git a/src/main/java/net/minecraft/world/level/block/IceBlock.java b/src/main/java/net/minecraft/world/level/block/IceBlock.java -index f05998e0af1e844f19bf86b74f652a9901088c37..9ebe74e235d425fde985a6180857dc4039ecfedf 100644 +index f05998e0af1e844f19bf86b74f652a9901088c37..19f6e36daed6af02dca3bb88bb81000268264438 100644 --- a/src/main/java/net/minecraft/world/level/block/IceBlock.java +++ b/src/main/java/net/minecraft/world/level/block/IceBlock.java @@ -33,8 +33,8 @@ public class IceBlock extends HalfTransparentBlock { @@ -86,13 +86,13 @@ index f05998e0af1e844f19bf86b74f652a9901088c37..9ebe74e235d425fde985a6180857dc40 @Override - public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool) { - super.playerDestroy(world, player, pos, state, blockEntity, tool); -+ public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool, boolean includeDrops, boolean dropExp) { // Paper -+ super.playerDestroy(world, player, pos, state, blockEntity, tool, includeDrops, dropExp); // Paper ++ public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool, boolean includeDrops, boolean dropExp) { // Paper - fix drops not preventing stats/food exhaustion ++ super.playerDestroy(world, player, pos, state, blockEntity, tool, includeDrops, dropExp); // Paper - fix drops not preventing stats/food exhaustion // Paper start this.afterDestroy(world, pos, tool); } diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java -index c79f3a8885a5ffc9ebac51992e63df14929d9f24..5c0127ecbbafd406f450f8707c4563bfea7a0214 100644 +index c79f3a8885a5ffc9ebac51992e63df14929d9f24..b4646e26965e0f1f26c5019e7c6a13fdf22bdb47 100644 --- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java @@ -173,8 +173,8 @@ public class TurtleEggBlock extends Block { @@ -101,8 +101,8 @@ index c79f3a8885a5ffc9ebac51992e63df14929d9f24..5c0127ecbbafd406f450f8707c4563bf @Override - public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool) { - super.playerDestroy(world, player, pos, state, blockEntity, tool); -+ public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool, boolean includeDrops, boolean dropExp) { // Paper -+ super.playerDestroy(world, player, pos, state, blockEntity, tool, includeDrops, dropExp); // Paper ++ public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool, boolean includeDrops, boolean dropExp) { // Paper - fix drops not preventing stats/food exhaustion ++ super.playerDestroy(world, player, pos, state, blockEntity, tool, includeDrops, dropExp); // Paper - fix drops not preventing stats/food exhaustion this.decreaseEggs(world, pos, state); } diff --git a/patches/server/0976-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0974-Fire-entity-death-event-for-ender-dragon.patch similarity index 85% rename from patches/server/0976-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0974-Fire-entity-death-event-for-ender-dragon.patch index 3a071f226e94..976d3bd555cc 100644 --- a/patches/server/0976-Fire-entity-death-event-for-ender-dragon.patch +++ b/patches/server/0974-Fire-entity-death-event-for-ender-dragon.patch @@ -5,21 +5,21 @@ Subject: [PATCH] Fire entity death event for ender dragon diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 4bcbfe3f95efd5d8ec2d2d7c66c4c355cdf510b2..e5b4aaa9e08dbafa46c92e3fce8b2ee9b0167530 100644 +index 4bcbfe3f95efd5d8ec2d2d7c66c4c355cdf510b2..a59c2d1e84c522a9b86cb86491fb987f6f70dcd0 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -642,6 +642,15 @@ public class EnderDragon extends Mob implements Enemy { @Override public void kill() { -+ // Paper start ++ // Paper start - Fire entity death event + this.silentDeath = true; + org.bukkit.event.entity.EntityDeathEvent deathEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityDeathEvent(this); + if (deathEvent.isCancelled()) { + this.silentDeath = false; // Reset to default if event was cancelled + return; + } -+ // Paper end ++ // Paper end - Fire entity death event + this.remove(Entity.RemovalReason.KILLED); this.gameEvent(GameEvent.ENTITY_DIE); diff --git a/patches/server/0977-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0975-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 86% rename from patches/server/0977-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0975-Configurable-entity-tracking-range-by-Y-coordinate.patch index 24d83cbe74df..39e103219645 100644 --- a/patches/server/0977-Configurable-entity-tracking-range-by-Y-coordinate.patch +++ b/patches/server/0975-Configurable-entity-tracking-range-by-Y-coordinate.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Configurable entity tracking range by Y coordinate Options to configure entity tracking by Y coordinate, also for each entity category. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 4af505a8b6074c49f2d16a6447eeaf038c7804e6..0405bc1e17975a74af3d56edf34354f5cb553a1c 100644 +index 4af505a8b6074c49f2d16a6447eeaf038c7804e6..00a98841d88e8b13501116caa7a03534e1025159 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1419,6 +1419,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider double d1 = vec3d.x * vec3d.x + vec3d.z * vec3d.z; double d2 = d0 * d0; boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z); -+ // Paper start - check Y ++ // Paper start - Configurable entity tracking range by Y + if (flag && level.paperConfig().entities.trackingRangeY.enabled) { + double rangeY = level.paperConfig().entities.trackingRangeY.get(this.entity, -1); + if (rangeY != -1) { @@ -21,7 +21,7 @@ index 4af505a8b6074c49f2d16a6447eeaf038c7804e6..0405bc1e17975a74af3d56edf34354f5 + flag = vec3d_dy * vec3d_dy <= rangeY * rangeY; + } + } -+ // Paper end - check Y ++ // Paper end - Configurable entity tracking range by Y // CraftBukkit start - respect vanish API if (!player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { diff --git a/patches/server/0978-Add-Listing-API-for-Player.patch b/patches/server/0976-Add-Listing-API-for-Player.patch similarity index 89% rename from patches/server/0978-Add-Listing-API-for-Player.patch rename to patches/server/0976-Add-Listing-API-for-Player.patch index ae104af86890..a054a7938c80 100644 --- a/patches/server/0978-Add-Listing-API-for-Player.patch +++ b/patches/server/0976-Add-Listing-API-for-Player.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add Listing API for Player diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java -index aa1c6de4d6cb7bbca33d25895c54707d220ab62a..9810d62c99f5d7dfca61ddfbbc356aebad2f7001 100644 +index aa1c6de4d6cb7bbca33d25895c54707d220ab62a..0e997dc282ce04dad9a3bc7b01055d8616dc546b 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java @@ -29,12 +29,46 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet actions, List entries) { + this.actions = actions; + this.entries = entries; @@ -22,14 +22,14 @@ index aa1c6de4d6cb7bbca33d25895c54707d220ab62a..9810d62c99f5d7dfca61ddfbbc356aeb + this.actions = actions; + this.entries = List.of(entry); + } -+ // Paper end ++ // Paper end - Add Listing API for Player public static ClientboundPlayerInfoUpdatePacket createPlayerInitializing(Collection players) { EnumSet enumSet = EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER, ClientboundPlayerInfoUpdatePacket.Action.INITIALIZE_CHAT, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LATENCY, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME); return new ClientboundPlayerInfoUpdatePacket(enumSet, players); } -+ // Paper start ++ // Paper start - Add Listing API for Player + public static ClientboundPlayerInfoUpdatePacket createPlayerInitializing(Collection players, ServerPlayer forPlayer) { + final EnumSet enumSet = EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER, ClientboundPlayerInfoUpdatePacket.Action.INITIALIZE_CHAT, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LATENCY, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME); + final List entries = new java.util.ArrayList<>(players.size()); @@ -50,33 +50,31 @@ index aa1c6de4d6cb7bbca33d25895c54707d220ab62a..9810d62c99f5d7dfca61ddfbbc356aeb + EnumSet enumSet = EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED); + return new ClientboundPlayerInfoUpdatePacket(enumSet, new ClientboundPlayerInfoUpdatePacket.Entry(playerInfoId, listed)); + } -+ // Paper end ++ // Paper end - Add Listing API for Player + public ClientboundPlayerInfoUpdatePacket(FriendlyByteBuf buf) { this.actions = buf.readEnumSet(ClientboundPlayerInfoUpdatePacket.Action.class); this.entries = buf.readList((buf2) -> { -@@ -144,8 +178,18 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet onlinePlayers = Lists.newArrayListWithExpectedSize(this.players.size() - 1); // Paper - use single player info update packet for (int i = 0; i < this.players.size(); ++i) { ServerPlayer entityplayer1 = (ServerPlayer) this.players.get(i); if (entityplayer1.getBukkitEntity().canSee(bukkitPlayer)) { -+ // Paper start ++ // Paper start - Add Listing API for Player + if (entityplayer1.getBukkitEntity().isListed(bukkitPlayer)) { -+ // Paper end ++ // Paper end - Add Listing API for Player entityplayer1.connection.send(packet); -+ // Paper start ++ // Paper start - Add Listing API for Player + } else { + entityplayer1.connection.send(ClientboundPlayerInfoUpdatePacket.createSinglePlayerInitializing(player, false)); + } -+ // Paper end ++ // Paper end - Add Listing API for Player } if (entityplayer1 == player || !bukkitPlayer.canSee(entityplayer1.getBukkitEntity())) { // Paper - don't include joining player @@ -108,19 +106,19 @@ index 683317e8c008fdb501e981490fd62f94597f2fee..e98a455b6bca9d094d0da323bddd7b3f // Paper start - use single player info update packet if (!onlinePlayers.isEmpty()) { - player.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(onlinePlayers)); -+ player.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(onlinePlayers, player)); ++ player.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(onlinePlayers, player)); // Paper - Add Listing API for Player } // Paper end player.sentListPacket = true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 07312502b4cc95d83e8cadebe7bbc906e01f7f7b..274e001882c0fe1127fc636ea42e3a540edfabbf 100644 +index 07312502b4cc95d83e8cadebe7bbc906e01f7f7b..dfed4f4bf2ca9097aad383f2406de2f635af1031 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -182,6 +182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private final ConversationTracker conversationTracker = new ConversationTracker(); private final Set channels = new HashSet(); private final Map>> invertedVisibilityEntities = new HashMap<>(); -+ private final Set unlistedEntities = new HashSet<>(); // Paper ++ private final Set unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player private static final WeakHashMap> pluginWeakReferences = new WeakHashMap<>(); private int hash = 0; private double health = 20; @@ -129,7 +127,7 @@ index 07312502b4cc95d83e8cadebe7bbc906e01f7f7b..274e001882c0fe1127fc636ea42e3a54 } // Paper end - this.getHandle().connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(otherPlayer))); -+ this.getHandle().connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(otherPlayer), this.getHandle())); // Paper ++ this.getHandle().connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(otherPlayer), this.getHandle())); // Paper - Add Listing API for Player if (original != null) otherPlayer.setUUID(original); // Paper - uuid override } @@ -137,7 +135,7 @@ index 07312502b4cc95d83e8cadebe7bbc906e01f7f7b..274e001882c0fe1127fc636ea42e3a54 return (entity != null) ? this.canSee(entity) : false; // If we can't find it, we can't see it } -+ // Paper start ++ // Paper start - Add Listing API for Player + @Override + public boolean isListed(Player other) { + return !this.unlistedEntities.contains(other.getUniqueId()); @@ -172,7 +170,7 @@ index 07312502b4cc95d83e8cadebe7bbc906e01f7f7b..274e001882c0fe1127fc636ea42e3a54 + return false; + } + } -+ // Paper end ++ // Paper end - Add Listing API for Player + @Override public Map serialize() { diff --git a/patches/server/0979-Configurable-Region-Compression-Format.patch b/patches/server/0977-Configurable-Region-Compression-Format.patch similarity index 91% rename from patches/server/0979-Configurable-Region-Compression-Format.patch rename to patches/server/0977-Configurable-Region-Compression-Format.patch index 08de696dde61..d5e8d8849c7a 100644 --- a/patches/server/0979-Configurable-Region-Compression-Format.patch +++ b/patches/server/0977-Configurable-Region-Compression-Format.patch @@ -23,7 +23,7 @@ index 84b2fd9db39e0cdf3e1cbe6444579f7ca839bc45..9248769e6d357f6eec68945fd7700e79 // Paper end - add can recalc flag diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java -index 4411e427d3b6b592f8a18e61b6c59309cf699d3f..ee27a553b426d3e1e1317bbeb39a3c2d46520e59 100644 +index 4411e427d3b6b592f8a18e61b6c59309cf699d3f..6210a202d27788b1304e749b5bc2d9e2b88f5a63 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java @@ -30,6 +30,17 @@ public class RegionFileVersion { @@ -31,7 +31,7 @@ index 4411e427d3b6b592f8a18e61b6c59309cf699d3f..ee27a553b426d3e1e1317bbeb39a3c2d return stream; })); + -+ // Paper Start - Configurable region compression format ++ // Paper start - Configurable region compression format + public static RegionFileVersion getCompressionFormat() { + return switch (io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.compressionFormat) { + case GZIP -> VERSION_GZIP; @@ -39,7 +39,7 @@ index 4411e427d3b6b592f8a18e61b6c59309cf699d3f..ee27a553b426d3e1e1317bbeb39a3c2d + case NONE -> VERSION_NONE; + }; + } -+ // Paper End ++ // Paper end - Configurable region compression format + private final int id; private final RegionFileVersion.StreamWrapper inputWrapper; diff --git a/patches/server/0980-Expose-clicked-BlockFace-during-BlockDamageEvent.patch b/patches/server/0978-Add-BlockFace-to-BlockDamageEvent.patch similarity index 84% rename from patches/server/0980-Expose-clicked-BlockFace-during-BlockDamageEvent.patch rename to patches/server/0978-Add-BlockFace-to-BlockDamageEvent.patch index f2d86a7eedf0..cf0ff66fb95f 100644 --- a/patches/server/0980-Expose-clicked-BlockFace-during-BlockDamageEvent.patch +++ b/patches/server/0978-Add-BlockFace-to-BlockDamageEvent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: aerulion Date: Mon, 21 Aug 2023 04:36:07 +0200 -Subject: [PATCH] Expose clicked BlockFace during BlockDamageEvent +Subject: [PATCH] Add BlockFace to BlockDamageEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 3088cf508427ca03804bfa4c081bb6dfcce07d45..cc1c077c3e91d1f8852fcd6ea939864cfce398a8 100644 +index 932bed293f3eb9ec5aae63235e2907ed96eca189..16cb80c64ebf33b9621fdbd6655becb85db487fa 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -253,7 +253,7 @@ public class ServerPlayerGameMode { @@ -13,12 +13,12 @@ index 3088cf508427ca03804bfa4c081bb6dfcce07d45..cc1c077c3e91d1f8852fcd6ea939864c return; } - org.bukkit.event.block.BlockDamageEvent blockEvent = CraftEventFactory.callBlockDamageEvent(this.player, pos, this.player.getInventory().getSelected(), f >= 1.0f); -+ org.bukkit.event.block.BlockDamageEvent blockEvent = CraftEventFactory.callBlockDamageEvent(this.player, pos, direction, this.player.getInventory().getSelected(), f >= 1.0f); // Paper - Expose BlockFace ++ org.bukkit.event.block.BlockDamageEvent blockEvent = CraftEventFactory.callBlockDamageEvent(this.player, pos, direction, this.player.getInventory().getSelected(), f >= 1.0f); // Paper - Add BlockFace to BlockDamageEvent if (blockEvent.isCancelled()) { // Let the client know the block still exists diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 2299cff413241aa97e9f498eb0dea51575e364ae..9e204e066550a47b3b670b6b60b7cb4421812d3f 100644 +index 7fe4d29f7734ba9642f1a64c161df7d24b88a18a..acaa575e70261c188fa1728919ee493f0ea53502 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -649,13 +649,13 @@ public class CraftEventFactory { @@ -26,14 +26,14 @@ index 2299cff413241aa97e9f498eb0dea51575e364ae..9e204e066550a47b3b670b6b60b7cb44 * BlockDamageEvent */ - public static BlockDamageEvent callBlockDamageEvent(ServerPlayer who, BlockPos pos, ItemStack itemstack, boolean instaBreak) { -+ public static BlockDamageEvent callBlockDamageEvent(ServerPlayer who, BlockPos pos, Direction direction, ItemStack itemstack, boolean instaBreak) { // Paper - Expose BlockFace ++ public static BlockDamageEvent callBlockDamageEvent(ServerPlayer who, BlockPos pos, Direction direction, ItemStack itemstack, boolean instaBreak) { // Paper - Add BlockFace to BlockDamageEvent Player player = who.getBukkitEntity(); CraftItemStack itemInHand = CraftItemStack.asCraftMirror(itemstack); Block blockClicked = CraftBlock.at(who.level(), pos); - BlockDamageEvent event = new BlockDamageEvent(player, blockClicked, itemInHand, instaBreak); -+ BlockDamageEvent event = new BlockDamageEvent(player, blockClicked, CraftBlock.notchToBlockFace(direction), itemInHand, instaBreak); // Paper - Expose BlockFace ++ BlockDamageEvent event = new BlockDamageEvent(player, blockClicked, CraftBlock.notchToBlockFace(direction), itemInHand, instaBreak); // Paper - Add BlockFace to BlockDamageEvent player.getServer().getPluginManager().callEvent(event); return event; diff --git a/patches/server/0981-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0979-Fix-NPE-on-Boat-getStatus.patch similarity index 87% rename from patches/server/0981-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0979-Fix-NPE-on-Boat-getStatus.patch index f2b53faa13d4..060e44340f0b 100644 --- a/patches/server/0981-Fix-NPE-on-Boat-getStatus.patch +++ b/patches/server/0979-Fix-NPE-on-Boat-getStatus.patch @@ -9,14 +9,14 @@ Boat status is null until the entity is added to the world and the tick() method public net.minecraft.world.entity.vehicle.Boat getStatus()Lnet/minecraft/world/entity/vehicle/Boat$Status; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java -index d161cbf9c83cd78593864850b98f688da2c85aa5..859f233197ebe738511011e36668c4eb5d4b7d8e 100644 +index d161cbf9c83cd78593864850b98f688da2c85aa5..8184a2adf889e02b048ceb015edfc04d1b5c21b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java @@ -88,6 +88,17 @@ public class CraftBoat extends CraftVehicle implements Boat { @Override public Status getStatus() { -+ // Paper start ++ // Paper start - Fix NPE on Boat getStatus + final net.minecraft.world.entity.vehicle.Boat handle = this.getHandle(); + if (handle.status == null) { + if (handle.valid && !handle.updatingSectionStatus) { @@ -26,7 +26,7 @@ index d161cbf9c83cd78593864850b98f688da2c85aa5..859f233197ebe738511011e36668c4eb + return Status.NOT_IN_WORLD; + } + } -+ // Paper end ++ // Paper end - Fix NPE on Boat getStatus return CraftBoat.boatStatusFromNms(this.getHandle().status); } diff --git a/patches/server/0982-Expand-Pose-API.patch b/patches/server/0980-Expand-Pose-API.patch similarity index 90% rename from patches/server/0982-Expand-Pose-API.patch rename to patches/server/0980-Expand-Pose-API.patch index 1acea775aacd..e4fe784fba6c 100644 --- a/patches/server/0982-Expand-Pose-API.patch +++ b/patches/server/0980-Expand-Pose-API.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 687f7358466302195ec564ca5c817b13d2ce3f16..a152716a0dedc39d6d606476d8e3ba542f773d56 100644 +index 687f7358466302195ec564ca5c817b13d2ce3f16..ec6a75e266725ce9de09f44cb7ed4096cf23a211 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @javax.annotation.Nullable private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API -+ public boolean fixedPose = false; // Paper ++ public boolean fixedPose = false; // Paper - Expand Pose API public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); @@ -20,7 +20,7 @@ index 687f7358466302195ec564ca5c817b13d2ce3f16..a152716a0dedc39d6d606476d8e3ba54 public void onClientRemoval() {} public void setPose(net.minecraft.world.entity.Pose pose) { -+ if (this.fixedPose) return; // Paper ++ if (this.fixedPose) return; // Paper - Expand Pose API // CraftBukkit start if (pose == this.getPose()) { return; diff --git a/patches/server/0983-More-DragonBattle-API.patch b/patches/server/0981-More-DragonBattle-API.patch similarity index 91% rename from patches/server/0983-More-DragonBattle-API.patch rename to patches/server/0981-More-DragonBattle-API.patch index d14bf53224f7..ccbfe560ab93 100644 --- a/patches/server/0983-More-DragonBattle-API.patch +++ b/patches/server/0981-More-DragonBattle-API.patch @@ -10,14 +10,14 @@ public net.minecraft.world.level.dimension.end.EndDragonFight respawnCrystals public net.minecraft.world.level.dimension.end.EndDragonFight spawnNewGateway(Lnet/minecraft/core/BlockPos;)V diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 390542c42fe957e8e2d21c879c1c8908c8970b44..b2a57cb75916d2724f18779c922005ef9bcc0b0e 100644 +index 390542c42fe957e8e2d21c879c1c8908c8970b44..36b0912fa2fd64b83a163112df478e67408e089b 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -439,6 +439,24 @@ public class EndDragonFight { this.gateways.clear(); } -+ // Paper start ++ // Paper start - More DragonBattle API + public boolean spawnNewGatewayIfPossible() { + if (!this.gateways.isEmpty()) { + this.spawnNewGateway(); @@ -33,20 +33,20 @@ index 390542c42fe957e8e2d21c879c1c8908c8970b44..b2a57cb75916d2724f18779c922005ef + } + return endCrystals; + } -+ // Paper end ++ // Paper end - More DragonBattle API + private void spawnNewGateway() { if (!this.gateways.isEmpty()) { int i = (Integer) this.gateways.remove(this.gateways.size() - 1); diff --git a/src/main/java/org/bukkit/craftbukkit/boss/CraftDragonBattle.java b/src/main/java/org/bukkit/craftbukkit/boss/CraftDragonBattle.java -index 58f1562373bab8d082172e4a5db22493fb913ca8..716327137c3528a74871d2aad4849812d7113d22 100644 +index 58f1562373bab8d082172e4a5db22493fb913ca8..cd5c59ed59eedf233f31415bb949fcf5ae2bd49f 100644 --- a/src/main/java/org/bukkit/craftbukkit/boss/CraftDragonBattle.java +++ b/src/main/java/org/bukkit/craftbukkit/boss/CraftDragonBattle.java @@ -132,4 +132,46 @@ public class CraftDragonBattle implements DragonBattle { private DragonRespawnAnimation toNMSRespawnPhase(RespawnPhase phase) { return (phase != RespawnPhase.NONE) ? DragonRespawnAnimation.values()[phase.ordinal()] : null; } -+ // Paper start ++ // Paper start - More DragonBattle API + @Override + public int getGatewayCount() { + return EndDragonFight.GATEWAY_COUNT - this.handle.gateways.size(); @@ -87,5 +87,5 @@ index 58f1562373bab8d082172e4a5db22493fb913ca8..716327137c3528a74871d2aad4849812 + } + return java.util.Collections.unmodifiableList(enderCrystals); + } -+ // Paper end ++ // Paper end - More DragonBattle API } diff --git a/patches/server/0984-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0982-Deep-clone-unhandled-nbt-tags.patch similarity index 93% rename from patches/server/0984-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0982-Deep-clone-unhandled-nbt-tags.patch index d08974665d32..f9f9e518d8b7 100644 --- a/patches/server/0984-Deep-clone-unhandled-nbt-tags.patch +++ b/patches/server/0982-Deep-clone-unhandled-nbt-tags.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Deep clone unhandled nbt tags diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index b7c0c9a40dac3e828f880ef928ca34206a898cb9..ba2da16e1e17d9544535511939302da633e8ebcc 100644 +index b7c0c9a40dac3e828f880ef928ca34206a898cb9..baf31c109ee8b5e59acd7ff5fc537ea46f27d164 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -305,7 +305,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @@ -13,7 +13,7 @@ index b7c0c9a40dac3e828f880ef928ca34206a898cb9..ba2da16e1e17d9544535511939302da6 private CompoundTag internalTag; - final Map unhandledTags = new TreeMap(); // Visible for testing only // Paper -+ Map unhandledTags = new TreeMap(); // Visible for testing only // Paper // Paper - remove final ++ Map unhandledTags = new TreeMap(); // Visible for testing only // Paper // Paper - Deep clone unhandled nbt tags; remove final private CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftMetaItem.DATA_TYPE_REGISTRY); private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only @@ -26,7 +26,7 @@ index b7c0c9a40dac3e828f880ef928ca34206a898cb9..ba2da16e1e17d9544535511939302da6 + // Paper start - Deep clone unhandled nbt tags + meta.unhandledTags.forEach((key, tag) -> this.unhandledTags.put(key, tag.copy())); + this.persistentDataContainer.putAll(meta.persistentDataContainer.getTagsCloned()); -+ // Paper end ++ // Paper end - Deep clone unhandled nbt tags this.internalTag = meta.internalTag; if (this.internalTag != null) { diff --git a/patches/server/0985-Add-PlayerPickItemEvent.patch b/patches/server/0983-Add-PlayerPickItemEvent.patch similarity index 83% rename from patches/server/0985-Add-PlayerPickItemEvent.patch rename to patches/server/0983-Add-PlayerPickItemEvent.patch index 15241752ef73..a7c9b6c5ddd2 100644 --- a/patches/server/0985-Add-PlayerPickItemEvent.patch +++ b/patches/server/0983-Add-PlayerPickItemEvent.patch @@ -5,14 +5,16 @@ Subject: [PATCH] Add PlayerPickItemEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index fa3c26732778339cd84d53a28c6c938b50594f0f..e04ba1e0949e3fa237ea002c37229f5cb03275cb 100644 +index 4f511fd74abe7a666fd12a514d65846f8b689278..b613bacfbc6f04b908db85aafaba45a170a0a0f1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -944,7 +944,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -944,8 +944,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.disconnect("Invalid hotbar selection (Hacking?)", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause return; } - this.player.getInventory().pickSlot(packet.getSlot()); // Paper - Diff above if changed + // Paper end ++ // Paper start - Add PlayerPickItemEvent + Player bukkitPlayer = this.player.getBukkitEntity(); + int targetSlot = this.player.getInventory().getSuitableHotbarSlot(); + int sourceSlot = packet.getSlot(); @@ -21,11 +23,12 @@ index fa3c26732778339cd84d53a28c6c938b50594f0f..e04ba1e0949e3fa237ea002c37229f5c + if (!event.callEvent()) return; + + this.player.getInventory().pickSlot(event.getSourceSlot(), event.getTargetSlot()); - // Paper end ++ // Paper end - Add PlayerPickItemEvent this.player.connection.send(new ClientboundContainerSetSlotPacket(-2, 0, this.player.getInventory().selected, this.player.getInventory().getItem(this.player.getInventory().selected))); this.player.connection.send(new ClientboundContainerSetSlotPacket(-2, 0, packet.getSlot(), this.player.getInventory().getItem(packet.getSlot()))); + this.player.connection.send(new ClientboundSetCarriedItemPacket(this.player.getInventory().selected)); diff --git a/src/main/java/net/minecraft/world/entity/player/Inventory.java b/src/main/java/net/minecraft/world/entity/player/Inventory.java -index 395cecc385e4126a7534ac9aeb15cf323efab03e..96d664c28738d6090f7067761c2978dd1aa0fd0e 100644 +index 395cecc385e4126a7534ac9aeb15cf323efab03e..309acf7bd07e38043aa81e0e686edba1136bd04c 100644 --- a/src/main/java/net/minecraft/world/entity/player/Inventory.java +++ b/src/main/java/net/minecraft/world/entity/player/Inventory.java @@ -174,7 +174,13 @@ public class Inventory implements Container, Nameable { @@ -39,7 +42,7 @@ index 395cecc385e4126a7534ac9aeb15cf323efab03e..96d664c28738d6090f7067761c2978dd + + public void pickSlot(int slot, int targetSlot) { + this.selected = targetSlot; -+ // Paper end ++ // Paper end - Add PlayerPickItemEvent ItemStack itemstack = (ItemStack) this.items.get(this.selected); this.items.set(this.selected, (ItemStack) this.items.get(slot)); diff --git a/patches/server/0986-Improve-performance-of-mass-crafts.patch b/patches/server/0984-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/0986-Improve-performance-of-mass-crafts.patch rename to patches/server/0984-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/0987-Allow-trident-custom-damage.patch b/patches/server/0985-Allow-trident-custom-damage.patch similarity index 57% rename from patches/server/0987-Allow-trident-custom-damage.patch rename to patches/server/0985-Allow-trident-custom-damage.patch index 3b1f6db13211..6e500d2b28b7 100644 --- a/patches/server/0987-Allow-trident-custom-damage.patch +++ b/patches/server/0985-Allow-trident-custom-damage.patch @@ -4,33 +4,20 @@ Date: Tue, 12 Jul 2022 18:01:14 +0200 Subject: [PATCH] Allow trident custom damage -diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 6272b0e1e332789b983a486ee25226e2a1c9fdda..42ebd91196ae420eee57f4380abc558555457163 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -@@ -66,7 +66,7 @@ public abstract class AbstractArrow extends Projectile { - public AbstractArrow.Pickup pickup; - public int shakeTime; - public int life; -- private double baseDamage; -+ protected double baseDamage; // Paper - private -> protected - public int knockback; - public SoundEvent soundEvent; - @Nullable diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java -index cbe8593cecd84f1598649801bebcb46364044eef..01e8f6f36a17c484b825879c377f7d6cc08e1fda 100644 +index cbe8593cecd84f1598649801bebcb46364044eef..51931e5cecf4c9ed8442136b18a94c7da89cf77d 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java @@ -34,10 +34,12 @@ public class ThrownTrident extends AbstractArrow { public ThrownTrident(EntityType type, Level world) { super(type, world, ThrownTrident.DEFAULT_ARROW_STACK); -+ this.baseDamage = net.minecraft.world.item.TridentItem.BASE_DAMAGE; // Paper ++ this.setBaseDamage(net.minecraft.world.item.TridentItem.BASE_DAMAGE); // Paper - Allow trident custom damage } public ThrownTrident(Level world, LivingEntity owner, ItemStack stack) { super(EntityType.TRIDENT, owner, world, stack); -+ this.baseDamage = net.minecraft.world.item.TridentItem.BASE_DAMAGE; // Paper ++ this.setBaseDamage(net.minecraft.world.item.TridentItem.BASE_DAMAGE); // Paper - Allow trident custom damage this.entityData.set(ThrownTrident.ID_LOYALTY, (byte) EnchantmentHelper.getLoyalty(stack)); this.entityData.set(ThrownTrident.ID_FOIL, stack.hasFoil()); } @@ -39,7 +26,7 @@ index cbe8593cecd84f1598649801bebcb46364044eef..01e8f6f36a17c484b825879c377f7d6c protected void onHitEntity(EntityHitResult entityHitResult) { Entity entity = entityHitResult.getEntity(); - float f = 8.0F; -+ float f = (float) this.baseDamage; // Paper ++ float f = (float) this.getBaseDamage(); // Paper - Allow trident custom damage if (entity instanceof LivingEntity) { LivingEntity entityliving = (LivingEntity) entity; diff --git a/patches/server/0988-Expose-hand-during-BlockCanBuildEvent.patch b/patches/server/0986-Expose-hand-in-BlockCanBuildEvent.patch similarity index 87% rename from patches/server/0988-Expose-hand-during-BlockCanBuildEvent.patch rename to patches/server/0986-Expose-hand-in-BlockCanBuildEvent.patch index dc68b12fb240..82904d45d2fd 100644 --- a/patches/server/0988-Expose-hand-during-BlockCanBuildEvent.patch +++ b/patches/server/0986-Expose-hand-in-BlockCanBuildEvent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The456gamer Date: Mon, 21 Aug 2023 14:13:42 +0100 -Subject: [PATCH] Expose hand during BlockCanBuildEvent +Subject: [PATCH] Expose hand in BlockCanBuildEvent diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index 6819cea2858f0035a4fbf3671612d43fead883b6..ce0a22b5084cb382b7c1036960793e3a8314a26f 100644 +index 6819cea2858f0035a4fbf3671612d43fead883b6..de632c93817f1214c9c4cafc841dd9e07c624ec9 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java @@ -214,7 +214,7 @@ public class BlockItem extends Item { @@ -13,12 +13,12 @@ index 6819cea2858f0035a4fbf3671612d43fead883b6..ce0a22b5084cb382b7c1036960793e3a org.bukkit.entity.Player player = (context.getPlayer() instanceof ServerPlayer) ? (org.bukkit.entity.Player) context.getPlayer().getBukkitEntity() : null; - BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(context.getLevel(), context.getClickedPos()), player, CraftBlockData.fromData(state), defaultReturn); -+ BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(context.getLevel(), context.getClickedPos()), player, CraftBlockData.fromData(state), defaultReturn, org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(context.getHand())); // Paper - expose hand ++ BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(context.getLevel(), context.getClickedPos()), player, CraftBlockData.fromData(state), defaultReturn, org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(context.getHand())); // Paper - Expose hand in BlockCanBuildEvent context.getLevel().getCraftServer().getPluginManager().callEvent(event); return event.isBuildable(); diff --git a/src/main/java/net/minecraft/world/item/StandingAndWallBlockItem.java b/src/main/java/net/minecraft/world/item/StandingAndWallBlockItem.java -index 39b8b3675ac58409e05fac07e07c8016c5280d81..88072259a9de205db428351c5c9f6114e199e402 100644 +index 39b8b3675ac58409e05fac07e07c8016c5280d81..f8f909ebdad5e96379e8bd8c610164ef0697368e 100644 --- a/src/main/java/net/minecraft/world/item/StandingAndWallBlockItem.java +++ b/src/main/java/net/minecraft/world/item/StandingAndWallBlockItem.java @@ -59,7 +59,7 @@ public class StandingAndWallBlockItem extends BlockItem { @@ -26,7 +26,7 @@ index 39b8b3675ac58409e05fac07e07c8016c5280d81..88072259a9de205db428351c5c9f6114 org.bukkit.entity.Player player = (context.getPlayer() instanceof ServerPlayer) ? (org.bukkit.entity.Player) context.getPlayer().getBukkitEntity() : null; - BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(world, blockposition), player, CraftBlockData.fromData(iblockdata1), defaultReturn); -+ BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(world, blockposition), player, CraftBlockData.fromData(iblockdata1), defaultReturn, org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(context.getHand())); // Paper - expose hand ++ BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(world, blockposition), player, CraftBlockData.fromData(iblockdata1), defaultReturn, org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(context.getHand())); // Paper - Expose hand in BlockCanBuildEvent context.getLevel().getCraftServer().getPluginManager().callEvent(event); return (event.isBuildable()) ? iblockdata1 : null; diff --git a/patches/server/0989-Optimize-nearest-structure-border-iteration.patch b/patches/server/0987-Optimize-nearest-structure-border-iteration.patch similarity index 91% rename from patches/server/0989-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0987-Optimize-nearest-structure-border-iteration.patch index a817c718230d..9cae3f6ba9d8 100644 --- a/patches/server/0989-Optimize-nearest-structure-border-iteration.patch +++ b/patches/server/0987-Optimize-nearest-structure-border-iteration.patch @@ -14,7 +14,7 @@ ensure that the returned found structure (which may for example be a buried treasure that will be marked on a treasure map) is the same as in vanilla. diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index e9239f90e59d1429fc7a2618e0fd3b8a57633b87..0708aaa7d25c674ab2ce431a262fed2459fd633d 100644 +index e9239f90e59d1429fc7a2618e0fd3b8a57633b87..59ba71da7f679e53aab2a84cb991b77d1abf6578 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -260,12 +260,15 @@ public abstract class ChunkGenerator { @@ -33,7 +33,7 @@ index e9239f90e59d1429fc7a2618e0fd3b8a57633b87..0708aaa7d25c674ab2ce431a262fed24 - if (flag1 || flag2) { + // if (flag1 || flag2) { + if (true) { -+ // Paper end ++ // Paper end - iterate over border chunks instead of entire square chunk area int l1 = centerChunkX + i1 * j1; int i2 = centerChunkZ + i1 * k1; ChunkPos chunkcoordintpair = placement.getPotentialStructureChunk(seed, l1, i2); diff --git a/patches/server/0990-Implement-OfflinePlayer-isConnected.patch b/patches/server/0988-Implement-OfflinePlayer-isConnected.patch similarity index 94% rename from patches/server/0990-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0988-Implement-OfflinePlayer-isConnected.patch index b69e2d1858c2..aac77cd38367 100644 --- a/patches/server/0990-Implement-OfflinePlayer-isConnected.patch +++ b/patches/server/0988-Implement-OfflinePlayer-isConnected.patch @@ -23,7 +23,7 @@ index 9daec0782774ab51ea8091cb8ed9d0a106e34cfa..2bbc39c257965ad91ee360cdfcd3538a public String getName() { Player player = this.getPlayer(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 274e001882c0fe1127fc636ea42e3a540edfabbf..3507696d2b83b09b781ac0e6f3eefd6eed632ab4 100644 +index dfed4f4bf2ca9097aad383f2406de2f635af1031..0eaa7d410ef93713f59d0cfb3cf4112a004e886c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -279,6 +279,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0991-Fix-inventory-desync.patch b/patches/server/0989-Fix-inventory-desync.patch similarity index 91% rename from patches/server/0991-Fix-inventory-desync.patch rename to patches/server/0989-Fix-inventory-desync.patch index 6da7d78b4313..e92e350ff53e 100644 --- a/patches/server/0991-Fix-inventory-desync.patch +++ b/patches/server/0989-Fix-inventory-desync.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix inventory desync diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index ce0a22b5084cb382b7c1036960793e3a8314a26f..efdf56044396b4ce486948d2c993971f99174a5e 100644 +index de632c93817f1214c9c4cafc841dd9e07c624ec9..aa8fc03d620a079b650decfec409ba4d58a83fa6 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java @@ -116,7 +116,7 @@ public class BlockItem extends Item { diff --git a/patches/server/0992-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0990-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 85% rename from patches/server/0992-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0990-Add-titleOverride-to-InventoryOpenEvent.patch index 0ec6f1759440..23dcf85fc5ed 100644 --- a/patches/server/0992-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/0990-Add-titleOverride-to-InventoryOpenEvent.patch @@ -5,25 +5,25 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 42c42d599d5b4827693cfe3f6cf9a32e67f2e16c..7f370d7f6e576ef719e69734dd81ec950a1f5022 100644 +index 42c42d599d5b4827693cfe3f6cf9a32e67f2e16c..2eb320dc136712aac3896a5aacf8800dc2c121ba 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1573,12 +1573,17 @@ public class ServerPlayer extends Player { this.nextContainerCounter(); AbstractContainerMenu container = factory.createMenu(this.containerCounter, this.getInventory(), this); -+ Component title = null; // Paper ++ Component title = null; // Paper - Add titleOverride to InventoryOpenEvent // CraftBukkit start - Inventory open hook if (container != null) { container.setTitle(factory.getDisplayName()); boolean cancelled = false; - container = CraftEventFactory.callInventoryOpenEvent(this, container, cancelled); -+ // Paper start ++ // Paper start - Add titleOverride to InventoryOpenEvent + final com.mojang.datafixers.util.Pair result = CraftEventFactory.callInventoryOpenEventWithTitle(this, container, cancelled); + container = result.getSecond(); + title = PaperAdventure.asVanilla(result.getFirst()); -+ // Paper end ++ // Paper end - Add titleOverride to InventoryOpenEvent if (container == null && !cancelled) { // Let pre-cancelled events fall through // SPIGOT-5263 - close chest if cancelled if (factory instanceof Container) { @@ -32,12 +32,12 @@ index 42c42d599d5b4827693cfe3f6cf9a32e67f2e16c..7f370d7f6e576ef719e69734dd81ec95 // CraftBukkit start this.containerMenu = container; - if (!this.isImmobile()) this.connection.send(new ClientboundOpenScreenPacket(container.containerId, container.getType(), container.getTitle())); // Paper -+ if (!this.isImmobile()) this.connection.send(new ClientboundOpenScreenPacket(container.containerId, container.getType(), Objects.requireNonNullElseGet(title, container::getTitle))); // Paper ++ if (!this.isImmobile()) this.connection.send(new ClientboundOpenScreenPacket(container.containerId, container.getType(), Objects.requireNonNullElseGet(title, container::getTitle))); // Paper - Add titleOverride to InventoryOpenEvent // CraftBukkit end this.initMenu(container); return OptionalInt.of(this.containerCounter); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 52c9244194f3c0182f3a6010ed97d4238efd4eb4..b9fa739f03b33da7d20cf6430321da64690ec4f3 100644 +index 52c9244194f3c0182f3a6010ed97d4238efd4eb4..16fc8c502ffce94d4fb50119e36a21d847408f03 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -357,12 +357,16 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -45,16 +45,16 @@ index 52c9244194f3c0182f3a6010ed97d4238efd4eb4..b9fa739f03b33da7d20cf6430321da64 AbstractContainerMenu container = new CraftContainer(inventory, player, player.nextContainerCounter()); - container = CraftEventFactory.callInventoryOpenEvent(player, container); -+ // Paper start ++ // Paper start - Add titleOverride to InventoryOpenEvent + final com.mojang.datafixers.util.Pair result = CraftEventFactory.callInventoryOpenEventWithTitle(player, container); + container = result.getSecond(); -+ // Paper end ++ // Paper end - Add titleOverride to InventoryOpenEvent if (container == null) return; //String title = container.getBukkitView().getTitle(); // Paper - comment net.kyori.adventure.text.Component adventure$title = container.getBukkitView().title(); // Paper if (adventure$title == null) adventure$title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(container.getBukkitView().getTitle()); // Paper -+ if (result.getFirst() != null) adventure$title = result.getFirst(); // Paper ++ if (result.getFirst() != null) adventure$title = result.getFirst(); // Paper - Add titleOverride to InventoryOpenEvent //player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper @@ -63,10 +63,10 @@ index 52c9244194f3c0182f3a6010ed97d4238efd4eb4..b9fa739f03b33da7d20cf6430321da64 // Trigger an INVENTORY_OPEN event - container = CraftEventFactory.callInventoryOpenEvent(player, container); -+ // Paper start ++ // Paper start - Add titleOverride to InventoryOpenEvent + final com.mojang.datafixers.util.Pair result = CraftEventFactory.callInventoryOpenEventWithTitle(player, container); + container = result.getSecond(); -+ // Paper end ++ // Paper end - Add titleOverride to InventoryOpenEvent if (container == null) { return; } @@ -74,12 +74,12 @@ index 52c9244194f3c0182f3a6010ed97d4238efd4eb4..b9fa739f03b33da7d20cf6430321da64 //String title = inventory.getTitle(); // Paper - comment net.kyori.adventure.text.Component adventure$title = inventory.title(); // Paper if (adventure$title == null) adventure$title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(inventory.getTitle()); // Paper -+ if (result.getFirst() != null) adventure$title = result.getFirst(); // Paper ++ if (result.getFirst() != null) adventure$title = result.getFirst(); // Paper - Add titleOverride to InventoryOpenEvent //player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper player.containerMenu = container; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9e204e066550a47b3b670b6b60b7cb4421812d3f..93bf055d1b050c58677e8cec39e95b53b879ec1d 100644 +index acaa575e70261c188fa1728919ee493f0ea53502..e42c87a38787e3528dd663627da9c4286e1d8bfc 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1440,10 +1440,21 @@ public class CraftEventFactory { @@ -87,21 +87,21 @@ index 9e204e066550a47b3b670b6b60b7cb4421812d3f..93bf055d1b050c58677e8cec39e95b53 public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container) { - return CraftEventFactory.callInventoryOpenEvent(player, container, false); -+ // Paper start ++ // Paper start - Add titleOverride to InventoryOpenEvent + return callInventoryOpenEventWithTitle(player, container).getSecond(); + } + public static com.mojang.datafixers.util.Pair callInventoryOpenEventWithTitle(ServerPlayer player, AbstractContainerMenu container) { + return CraftEventFactory.callInventoryOpenEventWithTitle(player, container, false); -+ // Paper end ++ // Paper end - Add titleOverride to InventoryOpenEvent } + @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - use method that acknowledges title overrides public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container, boolean cancelled) { -+ // Paper start ++ // Paper start - Add titleOverride to InventoryOpenEvent + return callInventoryOpenEventWithTitle(player, container, cancelled).getSecond(); + } + public static com.mojang.datafixers.util.Pair callInventoryOpenEventWithTitle(ServerPlayer player, AbstractContainerMenu container, boolean cancelled) { -+ // Paper end ++ // Paper end - Add titleOverride to InventoryOpenEvent if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper } @@ -110,11 +110,11 @@ index 9e204e066550a47b3b670b6b60b7cb4421812d3f..93bf055d1b050c58677e8cec39e95b53 if (event.isCancelled()) { container.transferTo(player.containerMenu, craftPlayer); - return null; -+ return com.mojang.datafixers.util.Pair.of(null, null); // Paper - title override ++ return com.mojang.datafixers.util.Pair.of(null, null); // Paper - Add titleOverride to InventoryOpenEvent } - return container; -+ return com.mojang.datafixers.util.Pair.of(event.titleOverride(), container); // Paper - title override ++ return com.mojang.datafixers.util.Pair.of(event.titleOverride(), container); // Paper - Add titleOverride to InventoryOpenEvent } public static ItemStack callPreCraftEvent(Container matrix, Container resultInventory, ItemStack result, InventoryView lastCraftView, boolean isRepair) { diff --git a/patches/server/0993-Configure-sniffer-egg-hatch-time.patch b/patches/server/0991-Configure-sniffer-egg-hatch-time.patch similarity index 91% rename from patches/server/0993-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0991-Configure-sniffer-egg-hatch-time.patch index 4b20794de9fe..dd9b57737ffe 100644 --- a/patches/server/0993-Configure-sniffer-egg-hatch-time.patch +++ b/patches/server/0991-Configure-sniffer-egg-hatch-time.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configure sniffer egg hatch time diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 02939518ead6463e677ecf5b045ec89aae154e8c..cb431b6027019ca95879129e88967ee6ae03c313 100644 +index 02939518ead6463e677ecf5b045ec89aae154e8c..a18b85769d5d46efa43b0cd2face958b3250571a 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java @@ -63,7 +63,7 @@ public class SnifferEggBlock extends Block { @@ -13,7 +13,7 @@ index 02939518ead6463e677ecf5b045ec89aae154e8c..cb431b6027019ca95879129e88967ee6 // Paper start private void rescheduleTick(ServerLevel world, BlockPos pos) { - int baseDelay = hatchBoost(world, pos) ? BOOSTED_HATCH_TIME_TICKS : REGULAR_HATCH_TIME_TICKS; -+ int baseDelay = hatchBoost(world, pos) ? world.paperConfig().entities.sniffer.boostedHatchTime.or(BOOSTED_HATCH_TIME_TICKS) : world.paperConfig().entities.sniffer.hatchTime.or(REGULAR_HATCH_TIME_TICKS); ++ int baseDelay = hatchBoost(world, pos) ? world.paperConfig().entities.sniffer.boostedHatchTime.or(BOOSTED_HATCH_TIME_TICKS) : world.paperConfig().entities.sniffer.hatchTime.or(REGULAR_HATCH_TIME_TICKS); // Paper - Configure sniffer egg hatch time world.scheduleTick(pos, this, (baseDelay / 3) + world.random.nextInt(RANDOM_HATCH_OFFSET_TICKS)); // reschedule to avoid being stuck here and behave like the other calls (see #onPlace) } diff --git a/patches/server/0994-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0992-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 85% rename from patches/server/0994-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0992-Do-crystal-portal-proximity-check-before-entity-look.patch index 0244f274f5c5..2ae71ff13790 100644 --- a/patches/server/0994-Do-crystal-portal-proximity-check-before-entity-look.patch +++ b/patches/server/0992-Do-crystal-portal-proximity-check-before-entity-look.patch @@ -12,7 +12,7 @@ some servers that have players placing end crystals as a style of combat. The very cheap distance check prevents running the entity lookup every time. diff --git a/src/main/java/net/minecraft/world/item/EndCrystalItem.java b/src/main/java/net/minecraft/world/item/EndCrystalItem.java -index ca1edc083847b47bb450b291723aca778a5912dc..5a19875cbc603acea95193d969d2e1dc1e0bfd78 100644 +index ca1edc083847b47bb450b291723aca778a5912dc..e1696f6b77df4c8fceaece64701d4db78b0a4c42 100644 --- a/src/main/java/net/minecraft/world/item/EndCrystalItem.java +++ b/src/main/java/net/minecraft/world/item/EndCrystalItem.java @@ -29,7 +29,7 @@ public class EndCrystalItem extends Item { @@ -29,24 +29,24 @@ index ca1edc083847b47bb450b291723aca778a5912dc..5a19875cbc603acea95193d969d2e1dc if (enderdragonbattle != null) { - enderdragonbattle.tryRespawn(); -+ enderdragonbattle.tryRespawn(aboveBlockPosition); // Paper - pass placed end crystal position to pre-check proximity to portal ++ enderdragonbattle.tryRespawn(aboveBlockPosition); // Paper - Perf: Do crystal-portal proximity check before entity lookup } } diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index b2a57cb75916d2724f18779c922005ef9bcc0b0e..c1ff2e15bc5da1a642872ac0fdcdc457e8abb063 100644 +index 36b0912fa2fd64b83a163112df478e67408e089b..e1604fd1fb5f779b5fb96f98c94918e4db88918a 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -558,6 +558,12 @@ public class EndDragonFight { } public boolean tryRespawn() { // CraftBukkit - return boolean -+ // Paper start - pass null (indicating no placed end crystal involved) by default ++ // Paper start - Perf: Do crystal-portal proximity check before entity lookup + return this.tryRespawn(null); + } + + public boolean tryRespawn(@Nullable BlockPos placedEndCrystalPos) { // placedEndCrystalPos is null if the tryRespawn() call was not caused by a placed end crystal -+ // Paper end ++ // Paper end - Perf: Do crystal-portal proximity check before entity lookup if (this.dragonKilled && this.respawnStage == null) { BlockPos blockposition = this.portalLocation; @@ -54,7 +54,7 @@ index b2a57cb75916d2724f18779c922005ef9bcc0b0e..c1ff2e15bc5da1a642872ac0fdcdc457 blockposition = this.portalLocation; } -+ // Paper start - check placed end crystal to portal proximity before attempting to respawn dragon ++ // Paper start - Perf: Do crystal-portal proximity check before entity lookup + if (placedEndCrystalPos != null) { + // The end crystal must be 0 or 1 higher than the portal origin + int dy = placedEndCrystalPos.getY() - blockposition.getY(); @@ -68,7 +68,7 @@ index b2a57cb75916d2724f18779c922005ef9bcc0b0e..c1ff2e15bc5da1a642872ac0fdcdc457 + return false; + } + } -+ // Paper end ++ // Paper end - Perf: Do crystal-portal proximity check before entity lookup + List list = Lists.newArrayList(); BlockPos blockposition1 = blockposition.above(1); diff --git a/patches/server/0995-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0993-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 89% rename from patches/server/0995-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0993-Skip-POI-finding-if-stuck-in-vehicle.patch index e45ced771d98..62f6c025a8a9 100644 --- a/patches/server/0995-Skip-POI-finding-if-stuck-in-vehicle.patch +++ b/patches/server/0993-Skip-POI-finding-if-stuck-in-vehicle.patch @@ -19,14 +19,14 @@ 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/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -index d4c91e0a0c64fcb7f1145de3f30134cb1f1f8ee6..8f8b29f80d1573981ccffd207dd6e0941e71a352 100644 +index d4c91e0a0c64fcb7f1145de3f30134cb1f1f8ee6..abcc3ef59475ac170fd10b4dd4a4f3371faf17e0 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java @@ -47,6 +47,7 @@ public class AcquirePoi { return false; } else { mutableLong.setValue(time + 20L + (long)world.getRandom().nextInt(20)); -+ if (entity.getNavigation().isStuck()) mutableLong.add(200); // Paper - Wait an additional 10s to check again if they're stuck ++ if (entity.getNavigation().isStuck()) mutableLong.add(200); // Paper - Perf: Wait an additional 10s to check again if they're stuck PoiManager poiManager = world.getPoiManager(); long2ObjectMap.long2ObjectEntrySet().removeIf((entry) -> { return !entry.getValue().isStillValid(time); diff --git a/patches/server/0996-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0994-Add-slot-sanity-checks-in-container-clicks.patch similarity index 79% rename from patches/server/0996-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0994-Add-slot-sanity-checks-in-container-clicks.patch index eb4e322b31d5..8735a4ad5af1 100644 --- a/patches/server/0996-Add-slot-sanity-checks-in-container-clicks.patch +++ b/patches/server/0994-Add-slot-sanity-checks-in-container-clicks.patch @@ -5,31 +5,31 @@ Subject: [PATCH] Add slot sanity checks in container clicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e04ba1e0949e3fa237ea002c37229f5cb03275cb..81e143aa2af57ee40513452ef7f3dd9dad5c91e8 100644 +index b613bacfbc6f04b908db85aafaba45a170a0a0f1..d11f8dd119e7d2d46217760fd125115e1da6af30 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2990,6 +2990,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2992,6 +2992,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl break; case SWAP: if ((packet.getButtonNum() >= 0 && packet.getButtonNum() < 9) || packet.getButtonNum() == 40) { -+ // Paper start ++ // Paper start - Add slot sanity checks to container clicks + if (packet.getSlotNum() < 0) { + action = InventoryAction.NOTHING; + break; + } -+ // Paper end ++ // Paper end - Add slot sanity checks to container clicks click = (packet.getButtonNum() == 40) ? ClickType.SWAP_OFFHAND : ClickType.NUMBER_KEY; Slot clickedSlot = this.player.containerMenu.getSlot(packet.getSlotNum()); if (clickedSlot.mayPickup(this.player)) { diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 9ee3c2e0dcfaa4280be4973479c6490ded33809c..cdd230337584befb37f2e48b24dd504398b431a5 100644 +index 9ee3c2e0dcfaa4280be4973479c6490ded33809c..924e2d510752aa332129d79574ce85c5a4d5f0a4 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -423,6 +423,7 @@ public abstract class AbstractContainerMenu { this.resetQuickCraft(); } } else if (this.quickcraftStatus == 1) { -+ if (slotIndex < 0) return; // Paper ++ if (slotIndex < 0) return; // Paper - Add slot sanity checks to container clicks slot = (Slot) this.slots.get(slotIndex); itemstack = this.getCarried(); if (AbstractContainerMenu.canItemQuickReplace(slot, itemstack, true) && slot.mayPlace(itemstack) && (this.quickcraftType == 2 || itemstack.getCount() > this.quickcraftSlots.size()) && this.canDragTo(slot)) { @@ -37,7 +37,7 @@ index 9ee3c2e0dcfaa4280be4973479c6490ded33809c..cdd230337584befb37f2e48b24dd5043 int j2; if (actionType == ClickType.SWAP && (button >= 0 && button < 9 || button == 40)) { -+ if (slotIndex < 0) return; // Paper ++ if (slotIndex < 0) return; // Paper - Add slot sanity checks to container clicks ItemStack itemstack4 = playerinventory.getItem(button); slot = (Slot) this.slots.get(slotIndex); diff --git a/patches/server/0997-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0995-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 89% rename from patches/server/0997-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0995-Call-BlockRedstoneEvents-for-lecterns.patch index aebbe3eb3180..c5d3495f315a 100644 --- a/patches/server/0997-Call-BlockRedstoneEvents-for-lecterns.patch +++ b/patches/server/0995-Call-BlockRedstoneEvents-for-lecterns.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Call BlockRedstoneEvents for lecterns diff --git a/src/main/java/net/minecraft/world/level/block/LecternBlock.java b/src/main/java/net/minecraft/world/level/block/LecternBlock.java -index f14f35e0f5a087845f7229a68e996feb06c946d4..38f68917119b30be2787363697a0501080362a90 100644 +index f14f35e0f5a087845f7229a68e996feb06c946d4..95652e63870f3d7473b1bb144515a77d9d8c3b1c 100644 --- a/src/main/java/net/minecraft/world/level/block/LecternBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LecternBlock.java @@ -178,6 +178,16 @@ public class LecternBlock extends BaseEntityBlock { @@ -21,7 +21,7 @@ index f14f35e0f5a087845f7229a68e996feb06c946d4..38f68917119b30be2787363697a05010 + return; + } + } -+ // Paper end ++ // Paper end - call BlockRedstoneEvents for lecterns world.setBlock(pos, (BlockState) state.setValue(LecternBlock.POWERED, powered), 3); LecternBlock.updateBelow(world, pos, state); } diff --git a/patches/server/0998-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0996-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0998-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0996-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0999-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0997-Fix-silent-equipment-change-for-mobs.patch similarity index 100% rename from patches/server/0999-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0997-Fix-silent-equipment-change-for-mobs.patch diff --git a/patches/server/1000-Fix-spigot-s-Forced-Stats.patch b/patches/server/0998-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/1000-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0998-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/1001-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0999-Add-missing-InventoryHolders-to-inventories.patch similarity index 99% rename from patches/server/1001-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0999-Add-missing-InventoryHolders-to-inventories.patch index 2cac87c8e0f3..b98da8fd7d37 100644 --- a/patches/server/1001-Add-missing-InventoryHolders-to-inventories.patch +++ b/patches/server/0999-Add-missing-InventoryHolders-to-inventories.patch @@ -57,7 +57,7 @@ index 061e870e0cdd5bf00351b7e8104361bce86809f3..5cdb0face59ee3a12d8aba95ebe16658 public SimpleContainer(int i, org.bukkit.inventory.InventoryHolder owner) { this.bukkitOwner = owner; diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index cdd230337584befb37f2e48b24dd504398b431a5..0727dcbd561c0b488733aa0ad0d3f256d0f76c66 100644 +index 924e2d510752aa332129d79574ce85c5a4d5f0a4..eb8155e29821d5622320d69041c5a1a6406afbbc 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -1029,4 +1029,15 @@ public abstract class AbstractContainerMenu { diff --git a/patches/server/1002-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/1000-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/server/1002-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/1000-Do-not-read-tile-entities-in-chunks-that-are-positio.patch diff --git a/patches/server/1003-Actually-optimise-explosions.patch b/patches/server/1001-Actually-optimise-explosions.patch similarity index 100% rename from patches/server/1003-Actually-optimise-explosions.patch rename to patches/server/1001-Actually-optimise-explosions.patch diff --git a/patches/server/1004-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/1002-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/1004-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/1002-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/1005-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/1003-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 92% rename from patches/server/1005-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/1003-Remove-Spigot-Bug-Fix-for-MC-109346.patch index d3ecc6930123..07c14191bb81 100644 --- a/patches/server/1005-Remove-Spigot-Bug-Fix-for-MC-109346.patch +++ b/patches/server/1003-Remove-Spigot-Bug-Fix-for-MC-109346.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove Spigot Bug Fix for MC-109346 diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 9f1b424f8437f0f859d4f177ecc52233ad8e3357..35674f92a67f93382103c2766df4b678ba5c862f 100644 +index ec8fcc3f105c6265de02fcaabc4b51eca626aa5e..1039e6f6555d27ecf8de8b5cf65ba75d15501686 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -348,12 +348,6 @@ public class ServerEntity { diff --git a/patches/server/1006-Fix-SuspiciousStewMeta.patch b/patches/server/1004-Fix-SuspiciousStewMeta.patch similarity index 100% rename from patches/server/1006-Fix-SuspiciousStewMeta.patch rename to patches/server/1004-Fix-SuspiciousStewMeta.patch diff --git a/patches/server/1007-Optimise-chunk-tick-iteration.patch b/patches/server/1005-Optimise-chunk-tick-iteration.patch similarity index 99% rename from patches/server/1007-Optimise-chunk-tick-iteration.patch rename to patches/server/1005-Optimise-chunk-tick-iteration.patch index d194ec1e9785..335327b20a12 100644 --- a/patches/server/1007-Optimise-chunk-tick-iteration.patch +++ b/patches/server/1005-Optimise-chunk-tick-iteration.patch @@ -108,7 +108,7 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754 List list; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 0405bc1e17975a74af3d56edf34354f5cb553a1c..71606bca60410c8ab6fd6427dc11e35614928702 100644 +index 00a98841d88e8b13501116caa7a03534e1025159..abe94c37513f41dce1ec924d00205a752d3195aa 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -365,7 +365,7 @@ index 5152979bf81345fc365e7b16028c7d970d2f5856..44ada45d9bf2d9b48e5de1c3cb1a8559 gameprofilerfiller.pop(); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7f370d7f6e576ef719e69734dd81ec950a1f5022..3ca06c5dfed3bc2006bf2f42444353bfab14096d 100644 +index 2eb320dc136712aac3896a5aacf8800dc2c121ba..67a4c0a436cb1a0b5b9fc7c80dc501b1fb546f8f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -325,6 +325,9 @@ public class ServerPlayer extends Player { diff --git a/patches/server/1008-Lag-compensation-ticks.patch b/patches/server/1006-Lag-compensation-ticks.patch similarity index 98% rename from patches/server/1008-Lag-compensation-ticks.patch rename to patches/server/1006-Lag-compensation-ticks.patch index 826376376bfa..5a7e6880f5ea 100644 --- a/patches/server/1008-Lag-compensation-ticks.patch +++ b/patches/server/1006-Lag-compensation-ticks.patch @@ -52,7 +52,7 @@ index a7f2e8755af41abc66070f1971e526b4f05bc710..9a7d5aa722eb1e56da8e9e11b46179c9 // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index cc1c077c3e91d1f8852fcd6ea939864cfce398a8..4634f4fbb0c06c68436c5e30069621c9fcd4ffb5 100644 +index 16cb80c64ebf33b9621fdbd6655becb85db487fa..8e6b4880e9596cf2e9c34fb90f03897f05475000 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -124,7 +124,7 @@ public class ServerPlayerGameMode { diff --git a/patches/server/1009-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/1007-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/1009-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/1007-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/1010-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/1008-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/1010-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/1008-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/1011-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/1009-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/1011-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/1009-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/1012-Optimise-nearby-player-retrieval.patch b/patches/server/1010-Optimise-nearby-player-retrieval.patch similarity index 69% rename from patches/server/1012-Optimise-nearby-player-retrieval.patch rename to patches/server/1010-Optimise-nearby-player-retrieval.patch index 9165214b1132..2659e9fd38e8 100644 --- a/patches/server/1012-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1010-Optimise-nearby-player-retrieval.patch @@ -127,6 +127,73 @@ index 9a7d5aa722eb1e56da8e9e11b46179c9f9ab716f..672dcf1d82b4a858167be678888d3fb6 // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { +diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java +index ed1b95ec694b0fe8b647964b18b8c33707fc0b47..65cd42ce9f553e0aa5bf248bdbf902f9d1f55460 100644 +--- a/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java ++++ b/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java +@@ -21,18 +21,50 @@ public class PlayerSensor extends Sensor { + + @Override + protected void doTick(ServerLevel world, LivingEntity entity) { +- List list = world.players().stream().filter(EntitySelector.NO_SPECTATORS).filter((player) -> { +- return entity.closerThan(player, 16.0D); +- }).sorted(Comparator.comparingDouble(entity::distanceToSqr)).collect(Collectors.toList()); ++ // Paper start - Perf: optimise nearby player retrieval & remove streams from hot code ++ io.papermc.paper.util.player.NearbyPlayers nearbyPlayers = world.chunkSource.chunkMap.getNearbyPlayers(); ++ net.minecraft.world.phys.Vec3 entityPos = entity.position(); ++ com.destroystokyo.paper.util.maplist.ReferenceList nearby = nearbyPlayers.getPlayersByChunk( ++ entity.chunkPosition().x, ++ entity.chunkPosition().z, ++ io.papermc.paper.util.player.NearbyPlayers.NearbyMapType.GENERAL_REALLY_SMALL ++ ); ++ ++ List players = new java.util.ArrayList<>(nearby == null ? 0 : nearby.size()); ++ if (nearby != null) { ++ Object[] rawData = nearby.getRawData(); ++ for (int index = 0, len = nearby.size(); index < len; ++index) { ++ net.minecraft.server.level.ServerPlayer player = (net.minecraft.server.level.ServerPlayer) rawData[index]; ++ if (player.isSpectator()) { ++ continue; ++ } ++ if (player.distanceToSqr(entityPos.x, entityPos.y, entityPos.z) >= (16.0 * 16.0)) { ++ continue; ++ } ++ players.add(player); ++ } ++ } ++ players.sort(Comparator.comparingDouble(entity::distanceToSqr)); + Brain brain = entity.getBrain(); +- brain.setMemory(MemoryModuleType.NEAREST_PLAYERS, list); +- List list2 = list.stream().filter((player) -> { +- return isEntityTargetable(entity, player); +- }).collect(Collectors.toList()); +- brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, list2.isEmpty() ? null : list2.get(0)); +- Optional optional = list2.stream().filter((player) -> { +- return isEntityAttackable(entity, player); +- }).findFirst(); +- brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, optional); ++ ++ brain.setMemory(MemoryModuleType.NEAREST_PLAYERS, players); ++ ++ Player firstTargetable = null; ++ Player firstAttackable = null; ++ for (Player player : players) { ++ if (firstTargetable == null && Sensor.isEntityTargetable(entity, player)) { ++ firstTargetable = player; ++ } ++ if (firstAttackable == null && Sensor.isEntityAttackable(entity, player)) { ++ firstAttackable = player; ++ } ++ ++ if (firstAttackable != null && firstTargetable != null) { ++ break; ++ } ++ } ++ brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, firstTargetable); ++ brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, Optional.ofNullable(firstAttackable)); ++ // Paper end - Perf: optimise nearby player retrieval & remove streams from hot code + } + } diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java index 58422f00c7d64dbd1cf6d7211c9838875cbe7778..c157309ac78e7af084d3acb6e8b2bcd469a39d5e 100644 --- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java diff --git a/patches/server/1014-Fix-missing-map-initialize-event-call.patch b/patches/server/1011-Fix-missing-map-initialize-event-call.patch similarity index 100% rename from patches/server/1014-Fix-missing-map-initialize-event-call.patch rename to patches/server/1011-Fix-missing-map-initialize-event-call.patch diff --git a/patches/server/1015-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/1012-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/1015-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/1012-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/1013-Remove-streams-for-villager-AI.patch b/patches/server/1013-Remove-streams-for-villager-AI.patch deleted file mode 100644 index e5c6b2d9eddc..000000000000 --- a/patches/server/1013-Remove-streams-for-villager-AI.patch +++ /dev/null @@ -1,210 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Spottedleaf -Date: Thu, 27 Aug 2020 20:51:40 -0700 -Subject: [PATCH] Remove streams for villager AI - - -diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java -index b45c4f50705f80163d44d9e588f86a5770f5be38..64165fed12c6c76d4ceb36d69f47a1235c1e8e44 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java -+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java -@@ -52,7 +52,7 @@ public class GateBehavior implements BehaviorControl - if (this.hasRequiredMemories(entity)) { - this.status = Behavior.Status.RUNNING; - this.orderPolicy.apply(this.behaviors); -- this.runningPolicy.apply(this.behaviors.stream(), world, entity, time); -+ this.runningPolicy.apply(this.behaviors.entries, world, entity, time); // Paper - Remove streams - return true; - } else { - return false; -@@ -61,11 +61,13 @@ public class GateBehavior implements BehaviorControl - - @Override - public final void tickOrStop(ServerLevel world, E entity, long time) { -- this.behaviors.stream().filter((task) -> { -- return task.getStatus() == Behavior.Status.RUNNING; -- }).forEach((task) -> { -- task.tickOrStop(world, entity, time); -- }); -+ // Paper start - Remove streams -+ for (BehaviorControl task : this.behaviors) { -+ if (task.getStatus() == Behavior.Status.RUNNING) { -+ task.tickOrStop(world, entity, time); -+ } -+ } -+ // Paper end - Remove streams - if (this.behaviors.stream().noneMatch((task) -> { - return task.getStatus() == Behavior.Status.RUNNING; - })) { -@@ -77,11 +79,13 @@ public class GateBehavior implements BehaviorControl - @Override - public final void doStop(ServerLevel world, E entity, long time) { - this.status = Behavior.Status.STOPPED; -- this.behaviors.stream().filter((task) -> { -- return task.getStatus() == Behavior.Status.RUNNING; -- }).forEach((task) -> { -- task.doStop(world, entity, time); -- }); -+ // Paper start - Remove streams -+ for (BehaviorControl behavior : this.behaviors) { -+ if (behavior.getStatus() == Behavior.Status.RUNNING) { -+ behavior.doStop(world, entity, time); -+ } -+ } -+ // Paper end - Remove streams - this.exitErasedMemories.forEach(entity.getBrain()::eraseMemory); - } - -@@ -117,25 +121,31 @@ public class GateBehavior implements BehaviorControl - public static enum RunningPolicy { - RUN_ONE { - @Override -- public void apply(Stream> tasks, ServerLevel world, E entity, long time) { -- tasks.filter((task) -> { -- return task.getStatus() == Behavior.Status.STOPPED; -- }).filter((task) -> { -- return task.tryStart(world, entity, time); -- }).findFirst(); -+ // Paper start - Remove streams -+ public void apply(List>> tasks, ServerLevel world, E entity, long time) { -+ for (ShufflingList.WeightedEntry> task : tasks) { -+ final BehaviorControl behavior = task.getData(); -+ if (behavior.getStatus() == Behavior.Status.STOPPED && behavior.tryStart(world, entity, time)) { -+ break; -+ } -+ } -+ // Paper end - Remove streams - } - }, - TRY_ALL { - @Override -- public void apply(Stream> tasks, ServerLevel world, E entity, long time) { -- tasks.filter((task) -> { -- return task.getStatus() == Behavior.Status.STOPPED; -- }).forEach((task) -> { -- task.tryStart(world, entity, time); -- }); -+ // Paper start - Remove streams -+ public void apply(List>> tasks, ServerLevel world, E entity, long time) { -+ for (ShufflingList.WeightedEntry> task : tasks) { -+ final BehaviorControl behavior = task.getData(); -+ if (behavior.getStatus() == Behavior.Status.STOPPED) { -+ behavior.tryStart(world, entity, time); -+ } -+ } -+ // Paper end - Remove streams - } - }; - -- public abstract void apply(Stream> tasks, ServerLevel world, E entity, long time); -+ public abstract void apply(List>> tasks, ServerLevel world, E entity, long time); // Paper - Remove streams - } - } -diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java -index 731ef21dbbd25d6924717de42f4569a9b5935643..fe3ab3d388f0481fb0db06b7f730f868dbf8e8a5 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java -+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java -@@ -14,7 +14,7 @@ import java.util.stream.Stream; - import net.minecraft.util.RandomSource; - - public class ShufflingList implements Iterable { -- protected final List> entries; -+ public final List> entries; // Paper - public - private final RandomSource random = RandomSource.create(); - private final boolean isUnsafe; // Paper - -diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java -index 1dfcc5cba6ffb463acf161a23fff1ca452184290..9958690971a2f14bfdb8841e466fa783452c5b0c 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java -+++ b/src/main/java/net/minecraft/world/entity/ai/sensing/NearestItemSensor.java -@@ -25,13 +25,16 @@ public class NearestItemSensor extends Sensor { - protected void doTick(ServerLevel world, Mob entity) { - Brain brain = entity.getBrain(); - List list = world.getEntitiesOfClass(ItemEntity.class, entity.getBoundingBox().inflate(32.0D, 16.0D, 32.0D), (itemEntity) -> { -- return true; -+ return itemEntity.closerThan(entity, MAX_DISTANCE_TO_WANTED_ITEM) && entity.wantsToPickUp(itemEntity.getItem()); // Paper - move predicate into getEntities - }); -- list.sort(Comparator.comparingDouble(entity::distanceToSqr)); -+ list.sort((e1, e2) -> Double.compare(entity.distanceToSqr(e1), entity.distanceToSqr(e2))); // better to take the sort perf hit than using line of sight more than we need to. -+ // Paper start - Remove streams - // Paper start - remove streams in favour of lists - ItemEntity nearest = null; -- for (ItemEntity entityItem : list) { -- if (entity.wantsToPickUp(entityItem.getItem()) && entityItem.closerThan(entity, 32.0D) && entity.hasLineOfSight(entityItem)) { -+ for (int i = 0; i < list.size(); i++) { -+ ItemEntity entityItem = list.get(i); -+ if (entity.hasLineOfSight(entityItem)) { -+ // Paper end - Remove streams - nearest = entityItem; - break; - } -diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java -index 312775d0430f793720211dc29bb293503e799d11..9c6b1027dcda0ff4fd357d3cb70fcf5b9f6127a0 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java -+++ b/src/main/java/net/minecraft/world/entity/ai/sensing/PlayerSensor.java -@@ -21,25 +21,51 @@ public class PlayerSensor extends Sensor { - - @Override - protected void doTick(ServerLevel world, LivingEntity entity) { -- List players = new java.util.ArrayList<>(world.players()); -- players.removeIf(player -> !EntitySelector.NO_SPECTATORS.test(player) || !entity.closerThan(player, 16.0D)); -- players.sort(Comparator.comparingDouble(entity::distanceTo)); -+ // Paper start - remove streams -+ io.papermc.paper.util.player.NearbyPlayers nearbyPlayers = world.chunkSource.chunkMap.getNearbyPlayers(); -+ net.minecraft.world.phys.Vec3 entityPos = entity.position(); -+ com.destroystokyo.paper.util.maplist.ReferenceList nearby = nearbyPlayers.getPlayersByChunk( -+ entity.chunkPosition().x, -+ entity.chunkPosition().z, -+ io.papermc.paper.util.player.NearbyPlayers.NearbyMapType.GENERAL_REALLY_SMALL -+ ); -+ -+ List players = new java.util.ArrayList<>(nearby == null ? 0 : nearby.size()); -+ if (nearby != null) { -+ Object[] rawData = nearby.getRawData(); -+ for (int index = 0, len = nearby.size(); index < len; ++index) { -+ net.minecraft.server.level.ServerPlayer player = (net.minecraft.server.level.ServerPlayer)rawData[index]; -+ if (player.isSpectator()) { -+ continue; -+ } -+ if (player.distanceToSqr(entityPos.x, entityPos.y, entityPos.z) >= (16.0 * 16.0)) { -+ continue; -+ } -+ players.add((Player)player); -+ } -+ } -+ players.sort((e1, e2) -> Double.compare(entity.distanceToSqr(e1), entity.distanceToSqr(e2))); - Brain brain = entity.getBrain(); - - brain.setMemory(MemoryModuleType.NEAREST_PLAYERS, players); - -- Player nearest = null, nearestTargetable = null; -- for (Player player : players) { -- if (Sensor.isEntityTargetable(entity, player)) { -- if (nearest == null) nearest = player; -- if (Sensor.isEntityAttackable(entity, player)) { -- nearestTargetable = player; -- break; // Both variables are assigned, no reason to loop further -- } -+ Player firstTargetable = null; -+ Player firstAttackable = null; -+ for (int index = 0, len = players.size(); index < len; ++index) { -+ Player player = players.get(index); -+ if (firstTargetable == null && isEntityTargetable(entity, player)) { -+ firstTargetable = player; -+ } -+ if (firstAttackable == null && isEntityAttackable(entity, player)) { -+ firstAttackable = player; -+ } -+ -+ if (firstAttackable != null && firstTargetable != null) { -+ break; - } - } -- brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, nearest); -- brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, nearestTargetable); -- // Paper end -+ brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, firstTargetable); -+ brain.setMemory(MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, Optional.ofNullable(firstAttackable)); -+ // Paper end - remove streams - } - } diff --git a/patches/server/1016-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/1013-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/1016-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/1013-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/1017-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/1014-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/1017-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/1014-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/1018-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/1015-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/1018-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/1015-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/1019-Add-player-idle-duration-API.patch b/patches/server/1016-Add-player-idle-duration-API.patch similarity index 91% rename from patches/server/1019-Add-player-idle-duration-API.patch rename to patches/server/1016-Add-player-idle-duration-API.patch index 5b6173313ff7..ca5244769b63 100644 --- a/patches/server/1019-Add-player-idle-duration-API.patch +++ b/patches/server/1016-Add-player-idle-duration-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3507696d2b83b09b781ac0e6f3eefd6eed632ab4..f125cff31de52c4d761b75e82e1577888da72667 100644 +index 0eaa7d410ef93713f59d0cfb3cf4112a004e886c..9314506770f7841d15371d81c1c63504d1ecd2ad 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3311,6 +3311,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1020-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/1017-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 84% rename from patches/server/1020-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/1017-Don-t-check-if-we-can-see-non-visible-entities.patch index 18496660d93e..5bfab6e4e082 100644 --- a/patches/server/1020-Don-t-check-if-we-can-see-non-visible-entities.patch +++ b/patches/server/1017-Don-t-check-if-we-can-see-non-visible-entities.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Don't check if we can see non-visible entities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 71606bca60410c8ab6fd6427dc11e35614928702..bde56e7bf595a8ecfe77c04eb3fcaf1ce4d92670 100644 +index abe94c37513f41dce1ec924d00205a752d3195aa..4a473f75c1c14549acd134c20adbe0c52663405f 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1435,7 +1435,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - // Paper end - check Y + // Paper end - Configurable entity tracking range by Y // CraftBukkit start - respect vanish API - if (!player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { diff --git a/patches/server/1021-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/1018-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/1021-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/1018-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/1022-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 90% rename from patches/server/1022-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch index f8f4d1525a61..d5c60aea752a 100644 --- a/patches/server/1022-Allow-null-itemstack-for-Player-sendEquipmentChange.patch +++ b/patches/server/1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f125cff31de52c4d761b75e82e1577888da72667..558b446cf58f6b66bea23236b24f08f6e281e533 100644 +index 9314506770f7841d15371d81c1c63504d1ecd2ad..5513ceedd304995d6c8cbec0f6b629ef1b30d3e7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1083,7 +1083,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1023-Optimize-VarInts.patch b/patches/server/1020-Optimize-VarInts.patch similarity index 100% rename from patches/server/1023-Optimize-VarInts.patch rename to patches/server/1020-Optimize-VarInts.patch diff --git a/patches/server/1024-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/1021-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/1024-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/1021-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/1025-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/1022-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/server/1025-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/1022-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/server/1026-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 100% rename from patches/server/1026-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch diff --git a/patches/server/1028-Expand-LingeringPotion-API.patch b/patches/server/1024-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/1028-Expand-LingeringPotion-API.patch rename to patches/server/1024-Expand-LingeringPotion-API.patch diff --git a/patches/server/1029-Add-MaterialTagsTest.patch b/patches/server/1025-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/1029-Add-MaterialTagsTest.patch rename to patches/server/1025-Add-MaterialTagsTest.patch diff --git a/patches/server/1030-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/1026-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 100% rename from patches/server/1030-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/1026-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch diff --git a/patches/server/1031-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/1027-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/1031-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/1027-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/1027-fix-secure-profile-with-proxy-online-mode.patch b/patches/server/1027-fix-secure-profile-with-proxy-online-mode.patch deleted file mode 100644 index f0b910f6e1e7..000000000000 --- a/patches/server/1027-fix-secure-profile-with-proxy-online-mode.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NonSwag -Date: Sun, 8 Oct 2023 09:55:56 +0200 -Subject: [PATCH] fix secure profile with proxy online mode - - -diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 5969f45d479188aceedfbe7931c69c36de78a705..c1402d4dfbddc14ca748efa24e7d62d81abf4e58 100644 ---- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -638,7 +638,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - public boolean enforceSecureProfile() { - DedicatedServerProperties dedicatedserverproperties = this.getProperties(); - -- return dedicatedserverproperties.enforceSecureProfile && dedicatedserverproperties.onlineMode && this.services.canValidateProfileKeys(); -+ // Paper start - fix secure profile with proxy online mode -+ return dedicatedserverproperties.enforceSecureProfile -+ && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() -+ && this.services.canValidateProfileKeys(); -+ // Paper end - fix secure profile with proxy online mode - } - - @Override diff --git a/patches/server/1032-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/1028-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/1032-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/1028-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/1033-Add-UUID-attribute-modifier-API.patch b/patches/server/1029-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/1033-Add-UUID-attribute-modifier-API.patch rename to patches/server/1029-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/1034-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/1030-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/server/1034-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/1030-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/1035-Lazily-create-LootContext-for-criterions.patch b/patches/server/1031-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/1035-Lazily-create-LootContext-for-criterions.patch rename to patches/server/1031-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/1036-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch similarity index 99% rename from patches/server/1036-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch index 22efdd720385..7d3e2ef6533d 100644 --- a/patches/server/1036-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch @@ -31,7 +31,7 @@ index 79b6602570de0e213faef04f9605f206aa5b7840..0567fbf194d3dfef3f2348c4b1f69ac8 if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a152716a0dedc39d6d606476d8e3ba542f773d56..c80a7a476c6363e526f26a3c7a5ed0a277ca0394 100644 +index ec6a75e266725ce9de09f44cb7ed4096cf23a211..63e445beaeedcbd6f06991e7ef504af9943e0c9f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -713,7 +713,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1037-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/1033-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 93% rename from patches/server/1037-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/1033-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch index 2a28b856f5df..ccb27e52d957 100644 --- a/patches/server/1037-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch +++ b/patches/server/1033-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix CraftMetaItem#getAttributeModifier duplication check diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index ba2da16e1e17d9544535511939302da633e8ebcc..d8ac86c3a89e29696e23b8ee6fddb84eb0313ea6 100644 +index baf31c109ee8b5e59acd7ff5fc537ea46f27d164..efc6ca53c048dbd49438ce0f7718de332fd5de2f 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -1167,7 +1167,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/1038-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1034-Restore-vanilla-entity-drops-behavior.patch similarity index 98% rename from patches/server/1038-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/1034-Restore-vanilla-entity-drops-behavior.patch index c24ef852cb89..eedc31601eb3 100644 --- a/patches/server/1038-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1034-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3ca06c5dfed3bc2006bf2f42444353bfab14096d..a3037dccab32597aa99e1590e1ea42fcec06bb0c 100644 +index 67a4c0a436cb1a0b5b9fc7c80dc501b1fb546f8f..d8bea03eb39b393751a69c4cfc8c004215ebd3d3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -944,22 +944,20 @@ public class ServerPlayer extends Player { @@ -50,7 +50,7 @@ index 3ca06c5dfed3bc2006bf2f42444353bfab14096d..a3037dccab32597aa99e1590e1ea42fc if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c80a7a476c6363e526f26a3c7a5ed0a277ca0394..26ee8f19a3f7d722060170c4e2c5c1aa8c03d28d 100644 +index 63e445beaeedcbd6f06991e7ef504af9943e0c9f..020cddd4c62aa952ae0f9d5a0e73d033fb3ab7c8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -165,7 +165,7 @@ index ab708b256183fc54fe8e13f341d8a38acf611739..a9c1f99ba2461333bd154ac16e812031 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 93bf055d1b050c58677e8cec39e95b53b879ec1d..2fba13f4355fc7c32fa80935416014b292a6beeb 100644 +index e42c87a38787e3528dd663627da9c4286e1d8bfc..69bce85eb00b4f8d26c4e1333cf778ef5084d07b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -939,17 +939,21 @@ public class CraftEventFactory { diff --git a/patches/server/1039-Add-Structure-check-API.patch b/patches/server/1035-Add-Structure-check-API.patch similarity index 100% rename from patches/server/1039-Add-Structure-check-API.patch rename to patches/server/1035-Add-Structure-check-API.patch diff --git a/patches/server/1040-Dont-resend-blocks-on-interactions.patch b/patches/server/1036-Dont-resend-blocks-on-interactions.patch similarity index 99% rename from patches/server/1040-Dont-resend-blocks-on-interactions.patch rename to patches/server/1036-Dont-resend-blocks-on-interactions.patch index d518c2066756..89a6d56c8386 100644 --- a/patches/server/1040-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1036-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 4634f4fbb0c06c68436c5e30069621c9fcd4ffb5..51bf6c740ac08548eedf0c026c5a66d6a3c6d83e 100644 +index 8e6b4880e9596cf2e9c34fb90f03897f05475000..c4bafa1b5c50d953502b5d918eb28dfe692a180d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { diff --git a/patches/server/1041-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/1037-Keep-previous-behavior-for-setResourcePack.patch similarity index 94% rename from patches/server/1041-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/1037-Keep-previous-behavior-for-setResourcePack.patch index f3d9528b31b0..255ed26116e8 100644 --- a/patches/server/1041-Keep-previous-behavior-for-setResourcePack.patch +++ b/patches/server/1037-Keep-previous-behavior-for-setResourcePack.patch @@ -10,7 +10,7 @@ packs before sending the new pack. Other API exists for adding a new pack to the existing packs on a client. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 558b446cf58f6b66bea23236b24f08f6e281e533..39bf2b92cd8907afa13b9bf7f02553cd2539023b 100644 +index 5513ceedd304995d6c8cbec0f6b629ef1b30d3e7..103e311bb37e9686b53d8dde645f4a2d1301e4be 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2351,8 +2351,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1042-properly-read-and-store-sus-effect-duration.patch b/patches/server/1038-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/1042-properly-read-and-store-sus-effect-duration.patch rename to patches/server/1038-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/1043-Use-correct-max-stack-size-in-crafter.patch b/patches/server/1039-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/1043-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/1039-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/1044-add-more-scoreboard-API.patch b/patches/server/1040-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/1044-add-more-scoreboard-API.patch rename to patches/server/1040-add-more-scoreboard-API.patch diff --git a/patches/server/1045-Improve-Registry.patch b/patches/server/1041-Improve-Registry.patch similarity index 100% rename from patches/server/1045-Improve-Registry.patch rename to patches/server/1041-Improve-Registry.patch diff --git a/patches/server/1046-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 100% rename from patches/server/1046-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch diff --git a/patches/server/1047-Add-experience-points-API.patch b/patches/server/1043-Add-experience-points-API.patch similarity index 97% rename from patches/server/1047-Add-experience-points-API.patch rename to patches/server/1043-Add-experience-points-API.patch index a14d0455bf89..f8f091d89547 100644 --- a/patches/server/1047-Add-experience-points-API.patch +++ b/patches/server/1043-Add-experience-points-API.patch @@ -18,7 +18,7 @@ index 7f3466340891b4409d1399ebeb2ca865d77841cd..0a9ee8aee52b34566f1613229951e33e // Paper start - send SoundEffect to everyone who can see fromEntity private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 39bf2b92cd8907afa13b9bf7f02553cd2539023b..da63b4050be25dcb91d04df8c2fcc643cbb0751d 100644 +index 103e311bb37e9686b53d8dde645f4a2d1301e4be..a4db69d8d814c03fa9efe79492c7cc3c736af5a4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1821,6 +1821,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1048-Add-missing-InventoryType.patch b/patches/server/1044-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/1048-Add-missing-InventoryType.patch rename to patches/server/1044-Add-missing-InventoryType.patch diff --git a/patches/server/1049-Add-drops-to-shear-events.patch b/patches/server/1045-Add-drops-to-shear-events.patch similarity index 99% rename from patches/server/1049-Add-drops-to-shear-events.patch rename to patches/server/1045-Add-drops-to-shear-events.patch index 74fd1a217b5d..bafa35c1b886 100644 --- a/patches/server/1049-Add-drops-to-shear-events.patch +++ b/patches/server/1045-Add-drops-to-shear-events.patch @@ -233,7 +233,7 @@ index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..b5d6857eaf2bed14adcb5f5e80d91b44 } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 2fba13f4355fc7c32fa80935416014b292a6beeb..92aff5734425f7b5765687d892d4db4af806a1ba 100644 +index 69bce85eb00b4f8d26c4e1333cf778ef5084d07b..f2de6aa8c1ed96bd0dfd028212cf3c5c570020c3 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1718,20 +1718,20 @@ public class CraftEventFactory { diff --git a/patches/server/1050-Add-PlayerShieldDisableEvent.patch b/patches/server/1046-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/server/1050-Add-PlayerShieldDisableEvent.patch rename to patches/server/1046-Add-PlayerShieldDisableEvent.patch diff --git a/patches/server/1051-Add-HiddenPotionEffect-API.patch b/patches/server/1047-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1051-Add-HiddenPotionEffect-API.patch rename to patches/server/1047-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1052-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/1052-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/1053-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1049-fix-ItemMeta-removing-CustomModelData.patch similarity index 91% rename from patches/server/1053-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/1049-fix-ItemMeta-removing-CustomModelData.patch index 4beeab274c1f..6808c2174582 100644 --- a/patches/server/1053-fix-ItemMeta-removing-CustomModelData.patch +++ b/patches/server/1049-fix-ItemMeta-removing-CustomModelData.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix ItemMeta removing CustomModelData diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index d8ac86c3a89e29696e23b8ee6fddb84eb0313ea6..8eae41077dc370e2286efaad4b9878c8ec04460e 100644 +index efc6ca53c048dbd49438ce0f7718de332fd5de2f..ef2b0e8aa9cce09097000029e39ff70f177ed3a7 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -381,7 +381,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/1054-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1050-Validate-ResourceLocation-in-NBT-reading.patch similarity index 98% rename from patches/server/1054-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/1050-Validate-ResourceLocation-in-NBT-reading.patch index 9151c477c86f..4f9fa600b703 100644 --- a/patches/server/1054-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1050-Validate-ResourceLocation-in-NBT-reading.patch @@ -66,7 +66,7 @@ index 42e2be9286b75a1d34845f303ffc65e96fdd5416..0b5334004b9d0489e8465824870662b4 } diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 42ebd91196ae420eee57f4380abc558555457163..b61a367048c3d6dfef187fef35a5dc7471f891d0 100644 +index 6272b0e1e332789b983a486ee25226e2a1c9fdda..505fe5496044f090ce6f7d541b8c3e13c567b16d 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -560,7 +560,7 @@ public abstract class AbstractArrow extends Projectile { diff --git a/patches/server/1055-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1051-Properly-handle-experience-dropping-on-block-break.patch similarity index 96% rename from patches/server/1055-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/1051-Properly-handle-experience-dropping-on-block-break.patch index 275d1e2c27ea..edc6007964d9 100644 --- a/patches/server/1055-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1051-Properly-handle-experience-dropping-on-block-break.patch @@ -21,7 +21,7 @@ index b8bf9eaae60040a3ba3d395712aa91940a71bea2..afd2e9bcdf94f3511bcd68cab5e72284 boolean flag1 = this.setBlock(pos, fluid.createLegacyBlock(), 3, maxUpdateDepth); diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index c450caed1a8d14f3bd56d0336a9bf72a5adca14f..a4b51821d8bcf9fdb7ff5e200c33ac2c565eece1 100644 +index 8ac67dd1b06eee08787150abdfc74a8cccec94fc..3f2fdf73e2e520838c7b59fe994e67ab2d1a4d6b 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -333,23 +333,31 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -61,10 +61,10 @@ index c450caed1a8d14f3bd56d0336a9bf72a5adca14f..a4b51821d8bcf9fdb7ff5e200c33ac2c @@ -433,7 +441,7 @@ public class Block extends BlockBehaviour implements ItemLike { player.awardStat(Stats.BLOCK_MINED.get(this)); player.causeFoodExhaustion(0.005F, org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.BLOCK_MINED); // CraftBukkit - EntityExhaustionEvent - if (includeDrops) { // Paper + if (includeDrops) { // Paper - fix drops not preventing stats/food exhaustion - Block.dropResources(state, world, pos, blockEntity, player, tool); + Block.dropResources(state, world, pos, blockEntity, player, tool, dropExp); // Paper - Properly handle xp dropping - } // Paper + } // Paper - fix drops not preventing stats/food exhaustion } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java diff --git a/patches/server/1056-Fixup-NamespacedKey-handling.patch b/patches/server/1052-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1056-Fixup-NamespacedKey-handling.patch rename to patches/server/1052-Fixup-NamespacedKey-handling.patch From 0ef59845bf75aac7d8f0d03003a2f4a3c82b918d Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 15 Jan 2024 12:38:39 +0100 Subject: [PATCH 14/45] [ci skip] Add more patch identifying comments, merge related patches --- ...e-profiles-that-have-no-UUID-and-no-.patch | 4 +- ...setting-for-proxy-online-mode-status.patch | 4 +- ...ity-drop-not-updating-the-client-inv.patch | 6 +- ...ItemEvent-and-EntityCompostItemEvent.patch | 10 +-- ...0904-Fix-text-display-error-on-spawn.patch | 4 +- ...nventories-returning-null-Locations.patch} | 18 ++-- patches/server/0908-Optimize-Hoppers.patch | 86 +++++++++---------- ...hives-generating-from-using-bonemeal.patch | 12 +-- ...uence-violations-like-they-should-be.patch | 4 +- ...expired-keys-from-impacting-new-join.patch | 16 ++-- ...nts-being-fired-from-unloaded-chunks.patch | 6 +- .../0915-Use-array-for-gamerule-storage.patch | 18 ++-- ...0-Fix-DamageCause-for-Falling-Blocks.patch | 6 +- ...-Lazy-Initialization-for-Enum-Fields.patch | 10 +-- .../0925-Expand-PlayerItemMendEvent.patch | 22 ++--- ...esh-ProjectileSource-for-projectiles.patch | 22 ++--- .../server/0928-Fix-block-place-logic.patch | 18 ++-- ...und-playing-for-BlockItem-ItemStacks.patch | 6 +- ...anhasbukkit-default-if-alias-block-e.patch | 4 +- ...ayerChunkLoaderData-in-order-to-prep.patch | 4 +- ...> 0937-Properly-cancel-usable-items.patch} | 20 ++--- ...38-Add-event-for-player-editing-sign.patch | 26 +++--- ...ck-item-frames-if-players-can-see-it.patch | 4 +- ...permission-levels-for-command-blocks.patch | 14 +-- ...0942-Call-missing-BlockDispenseEvent.patch | 20 ++--- ...d-chunks-for-supporting-block-checks.patch | 2 +- ...0945-Add-Sign-getInteractableSideFor.patch | 12 +-- ...946-Array-backed-synched-entity-data.patch | 8 +- patches/server/0948-Fix-BanList-API.patch | 2 +- ...enceOrb-should-call-EntitySpawnEvent.patch | 2 +- .../0955-Implement-PlayerFailMoveEvent.patch | 2 +- ...Folia-scheduler-and-owned-region-API.patch | 6 +- ...-API-for-updating-recipes-on-clients.patch | 2 +- ...0960-Only-capture-actual-tree-growth.patch | 8 +- ...3-Use-correct-seed-on-api-world-load.patch | 2 +- .../0965-Cache-map-ids-on-item-frames.patch | 2 +- .../server/0967-Bandaid-fix-for-Effect.patch | 2 +- ...place-methods-with-old-StructureType.patch | 2 +- ...te-namespaced-commands-if-send-names.patch | 2 +- ...y-handle-BlockBreakEvent-isDropItems.patch | 2 +- .../0976-Add-Listing-API-for-Player.patch | 4 +- ...78-Add-BlockFace-to-BlockDamageEvent.patch | 4 +- patches/server/0980-Expand-Pose-API.patch | 2 +- .../server/0983-Add-PlayerPickItemEvent.patch | 2 +- ...86-Expose-hand-in-BlockCanBuildEvent.patch | 2 +- ...-Implement-OfflinePlayer-isConnected.patch | 2 +- .../server/0989-Fix-inventory-desync.patch | 2 +- ...-titleOverride-to-InventoryOpenEvent.patch | 4 +- ...ot-sanity-checks-in-container-clicks.patch | 2 +- ...sing-InventoryHolders-to-inventories.patch | 4 +- ...-Remove-Spigot-Bug-Fix-for-MC-109346.patch | 2 +- .../server/1006-Lag-compensation-ticks.patch | 12 +-- ...010-Optimise-nearby-player-retrieval.patch | 2 +- ...ix-missing-map-initialize-event-call.patch | 2 +- .../1016-Add-player-idle-duration-API.patch | 2 +- ...stack-for-Player-sendEquipmentChange.patch | 2 +- ...tem-packets-with-collector-as-source.patch | 2 +- ...n-t-fire-sync-events-during-worldgen.patch | 6 +- ...estore-vanilla-entity-drops-behavior.patch | 6 +- ...6-Dont-resend-blocks-on-interactions.patch | 4 +- ...revious-behavior-for-setResourcePack.patch | 2 +- ...-on-null-loc-for-EntityTeleportEvent.patch | 2 +- .../1043-Add-experience-points-API.patch | 2 +- .../1045-Add-drops-to-shear-events.patch | 2 +- ...if-bucket-dispenses-will-succeed-for.patch | 2 +- ...e-experience-dropping-on-block-break.patch | 2 +- 66 files changed, 250 insertions(+), 250 deletions(-) rename patches/server/{0905-Fix-certain-inventories-returning-null-Locations.patch => 0905-Fix-inventories-returning-null-Locations.patch} (79%) rename patches/server/{0937-Properly-Cancel-Usable-Items.patch => 0937-Properly-cancel-usable-items.patch} (82%) diff --git a/patches/server/0104-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch b/patches/server/0104-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch index 038e2fbd2123..f7dfc982e6da 100644 --- a/patches/server/0104-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch +++ b/patches/server/0104-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Don't lookup game profiles that have no UUID and no name diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 1924757cec5d7f2d13ef35f9bbe1554d786713d7..0a2875f63523cc5eeec603e18eb62520587a8475 100644 +index 1924757cec5d7f2d13ef35f9bbe1554d786713d7..f13b0143ad89386f8e8d350ebacf98f4f66f18a8 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -89,6 +89,7 @@ public class GameProfileCache { } }; -+ if (!org.apache.commons.lang3.StringUtils.isBlank(name)) // Paper - Don't lookup a profile with a blank name) ++ if (!org.apache.commons.lang3.StringUtils.isBlank(name)) // Paper - Don't lookup a profile with a blank name repository.findProfilesByNames(new String[]{name}, profilelookupcallback); GameProfile gameprofile = (GameProfile) atomicreference.get(); diff --git a/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch b/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch index 073bea1053fd..af9d409ee8f1 100644 --- a/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch +++ b/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch @@ -23,14 +23,14 @@ index 1ee3e38703175707dec6493a1785b1bbc5170793..73b398ffc86498151944bedb0ef12d63 @Override diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 0a2875f63523cc5eeec603e18eb62520587a8475..64f7c3180a745a62bb5d71a42668cc67b5d56c3a 100644 +index f13b0143ad89386f8e8d350ebacf98f4f66f18a8..64f7c3180a745a62bb5d71a42668cc67b5d56c3a 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -89,7 +89,8 @@ public class GameProfileCache { } }; -- if (!org.apache.commons.lang3.StringUtils.isBlank(name)) // Paper - Don't lookup a profile with a blank name) +- if (!org.apache.commons.lang3.StringUtils.isBlank(name)) // Paper - Don't lookup a profile with a blank name + if (!org.apache.commons.lang3.StringUtils.isBlank(name) // Paper - Don't lookup a profile with a blank name + && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()) // Paper - Add setting for proxy online mode status repository.findProfilesByNames(new String[]{name}, profilelookupcallback); diff --git a/patches/server/0900-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0900-Fix-HumanEntity-drop-not-updating-the-client-inv.patch index e8652816d710..4aea1758efa5 100644 --- a/patches/server/0900-Fix-HumanEntity-drop-not-updating-the-client-inv.patch +++ b/patches/server/0900-Fix-HumanEntity-drop-not-updating-the-client-inv.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix HumanEntity#drop not updating the client inv public net.minecraft.server.level.ServerPlayer containerSynchronizer diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 5e5fda690605f767b33f8225bffea98d23299fea..52c9244194f3c0182f3a6010ed97d4238efd4eb4 100644 +index 5e5fda690605f767b33f8225bffea98d23299fea..897e693492bdf9293154535d5772929bc2b1a523 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -755,8 +755,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -16,7 +16,7 @@ index 5e5fda690605f767b33f8225bffea98d23299fea..52c9244194f3c0182f3a6010ed97d423 public boolean dropItem(boolean dropAll) { - if (!(this.getHandle() instanceof ServerPlayer)) return false; - return ((ServerPlayer) this.getHandle()).drop(dropAll); -+ // Paper start - notify client of remote slot change ++ // Paper start - Fix HumanEntity#drop not updating the client inv + if (!(this.getHandle() instanceof ServerPlayer player)) return false; + boolean success = player.drop(dropAll); + if (!success) return false; @@ -24,7 +24,7 @@ index 5e5fda690605f767b33f8225bffea98d23299fea..52c9244194f3c0182f3a6010ed97d423 + final java.util.OptionalInt optionalSlot = player.containerMenu.findSlot(inv, inv.selected); + optionalSlot.ifPresent(slot -> player.containerSynchronizer.sendSlotChange(player.containerMenu, slot, inv.getSelected())); + return true; -+ // Paper end ++ // Paper end - Fix HumanEntity#drop not updating the client inv } @Override diff --git a/patches/server/0901-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0901-Add-CompostItemEvent-and-EntityCompostItemEvent.patch index efa34d8b7ccb..c5176a356ff3 100644 --- a/patches/server/0901-Add-CompostItemEvent-and-EntityCompostItemEvent.patch +++ b/patches/server/0901-Add-CompostItemEvent-and-EntityCompostItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add CompostItemEvent and EntityCompostItemEvent diff --git a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java -index 413b307acaad5823b9e06f49fa2faf561f5f7b9a..de8b5cab7925c1c46478952ed2cb2bd40f9a9c48 100644 +index 413b307acaad5823b9e06f49fa2faf561f5f7b9a..d78fe4081bc2938326066e0afddb4a6c833a4bf7 100644 --- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java @@ -328,7 +328,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { @@ -13,7 +13,7 @@ index 413b307acaad5823b9e06f49fa2faf561f5f7b9a..de8b5cab7925c1c46478952ed2cb2bd4 float f = ComposterBlock.COMPOSTABLES.getFloat(itemstack.getItem()); - if ((i != 0 || f <= 0.0F) && rand >= (double) f) { -+ // Paper start ++ // Paper start - Add CompostItemEvent and EntityCompostItemEvent + boolean willRaiseLevel = !((i != 0 || f <= 0.0F) && rand >= (double) f); + final io.papermc.paper.event.block.CompostItemEvent event; + if (entity == null) { @@ -27,7 +27,7 @@ index 413b307acaad5823b9e06f49fa2faf561f5f7b9a..de8b5cab7925c1c46478952ed2cb2bd4 + willRaiseLevel = event.willRaiseLevel(); + + if (!willRaiseLevel) { -+ // Paper end ++ // Paper end - Add CompostItemEvent and EntityCompostItemEvent return iblockdata; } else { int j = i + 1; @@ -35,11 +35,11 @@ index 413b307acaad5823b9e06f49fa2faf561f5f7b9a..de8b5cab7925c1c46478952ed2cb2bd4 this.changed = true; BlockState iblockdata = ComposterBlock.addItem((Entity) null, this.state, this.level, this.pos, itemstack); -+ // Paper start ++ // Paper start - Add CompostItemEvent and EntityCompostItemEvent + if (iblockdata == null) { + return; + } -+ // Paper end ++ // Paper end - Add CompostItemEvent and EntityCompostItemEvent this.level.levelEvent(1500, this.pos, iblockdata != this.state ? 1 : 0); this.removeItemNoUpdate(0); } diff --git a/patches/server/0904-Fix-text-display-error-on-spawn.patch b/patches/server/0904-Fix-text-display-error-on-spawn.patch index 359b41bd6709..7074ea7170de 100644 --- a/patches/server/0904-Fix-text-display-error-on-spawn.patch +++ b/patches/server/0904-Fix-text-display-error-on-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix text display error on spawn diff --git a/src/main/java/net/minecraft/world/entity/Display.java b/src/main/java/net/minecraft/world/entity/Display.java -index dcbaa06f807ba3c1b64c96b3c2dd84d46d6be751..58de4a3ff0b5494fa576a902f33de4cd38b9c7be 100644 +index dcbaa06f807ba3c1b64c96b3c2dd84d46d6be751..2ecd3ed5b36475125c6f63af2612011fc8fba8a5 100644 --- a/src/main/java/net/minecraft/world/entity/Display.java +++ b/src/main/java/net/minecraft/world/entity/Display.java @@ -864,7 +864,7 @@ public abstract class Display extends Entity { @@ -13,7 +13,7 @@ index dcbaa06f807ba3c1b64c96b3c2dd84d46d6be751..58de4a3ff0b5494fa576a902f33de4cd b = loadFlag(b, nbt, "see_through", (byte)2); b = loadFlag(b, nbt, "default_background", (byte)4); - Optional optional = Display.TextDisplay.Align.CODEC.decode(NbtOps.INSTANCE, nbt.get("alignment")).resultOrPartial(Util.prefix("Display entity", Display.LOGGER::error)).map(Pair::getFirst); -+ Optional optional = Display.TextDisplay.Align.CODEC.decode(NbtOps.INSTANCE, nbt.get("alignment")).result().map(Pair::getFirst); // Paper - hide error message ++ Optional optional = Display.TextDisplay.Align.CODEC.decode(NbtOps.INSTANCE, nbt.get("alignment")).result().map(Pair::getFirst); // Paper - Hide text display error on spawn if (optional.isPresent()) { byte var10000; switch ((Display.TextDisplay.Align)optional.get()) { diff --git a/patches/server/0905-Fix-certain-inventories-returning-null-Locations.patch b/patches/server/0905-Fix-inventories-returning-null-Locations.patch similarity index 79% rename from patches/server/0905-Fix-certain-inventories-returning-null-Locations.patch rename to patches/server/0905-Fix-inventories-returning-null-Locations.patch index 47b96132fa21..ca5f09c8dfb4 100644 --- a/patches/server/0905-Fix-certain-inventories-returning-null-Locations.patch +++ b/patches/server/0905-Fix-inventories-returning-null-Locations.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Wed, 15 Mar 2023 18:29:45 -0700 -Subject: [PATCH] Fix certain inventories returning null Locations +Subject: [PATCH] Fix inventories returning null Locations Wandering Trader, AbstractHorse, Beacon and Composter inventories returned null locations when a block or entity location is readily available @@ -9,14 +9,14 @@ when a block or entity location is readily available Co-authored-by: Lukas Planz diff --git a/src/main/java/net/minecraft/world/SimpleContainer.java b/src/main/java/net/minecraft/world/SimpleContainer.java -index d5eeb2fcb119b815213aeffb3811d4a843502e50..061e870e0cdd5bf00351b7e8104361bce86809f3 100644 +index d5eeb2fcb119b815213aeffb3811d4a843502e50..ff1aba1e69cfde633fd01724f1a8d0af7f59437f 100644 --- a/src/main/java/net/minecraft/world/SimpleContainer.java +++ b/src/main/java/net/minecraft/world/SimpleContainer.java @@ -63,6 +63,16 @@ public class SimpleContainer implements Container, StackedContentsCompatible { @Override public Location getLocation() { -+ // Paper start ++ // Paper start - Fix inventories returning null Locations + // When the block inventory does not have a tile state that implements getLocation, e. g. composters + if (this.bukkitOwner instanceof org.bukkit.inventory.BlockInventoryHolder blockInventoryHolder) { + return blockInventoryHolder.getBlock().getLocation(); @@ -25,29 +25,29 @@ index d5eeb2fcb119b815213aeffb3811d4a843502e50..061e870e0cdd5bf00351b7e8104361bc + if (this.bukkitOwner instanceof org.bukkit.entity.Entity entity) { + return entity.getLocation(); + } -+ // Paper end ++ // Paper end - Fix inventories returning null Locations return null; } diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index 0b1a0be964d799f1706c273092dc653fa04e8014..a6e712606ece631502ae4c7513403092df77524f 100644 +index 0b1a0be964d799f1706c273092dc653fa04e8014..3c67132bd3c1e4886f7ba823fe330b019359ac9d 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java @@ -51,6 +51,12 @@ public class BeaconMenu extends AbstractContainerMenu { public int getMaxStackSize() { return 1; } -+ // Paper start ++ // Paper start - Fix inventories returning null Locations + @Override + public org.bukkit.Location getLocation() { + return context.getLocation(); + } -+ // Paper end ++ // Paper end - Fix inventories returning null Locations }; checkContainerDataCount(propertyDelegate, 3); this.beaconData = propertyDelegate; diff --git a/src/main/java/net/minecraft/world/inventory/MerchantContainer.java b/src/main/java/net/minecraft/world/inventory/MerchantContainer.java -index 083e50e27685f441ede4c75e913d671fe45d1d15..98cbcf67d8fdb1c80fb7ba8ba7734821e2818da6 100644 +index 083e50e27685f441ede4c75e913d671fe45d1d15..ac4ec7157cf93b0cbc4472dc42fbbbff3402335a 100644 --- a/src/main/java/net/minecraft/world/inventory/MerchantContainer.java +++ b/src/main/java/net/minecraft/world/inventory/MerchantContainer.java @@ -65,7 +65,7 @@ public class MerchantContainer implements Container { @@ -55,7 +55,7 @@ index 083e50e27685f441ede4c75e913d671fe45d1d15..98cbcf67d8fdb1c80fb7ba8ba7734821 @Override public Location getLocation() { - return (this.merchant instanceof Villager) ? ((Villager) this.merchant).getBukkitEntity().getLocation() : null; -+ return (this.merchant instanceof AbstractVillager) ? ((AbstractVillager) this.merchant).getBukkitEntity().getLocation() : null; // Paper ++ return (this.merchant instanceof AbstractVillager) ? ((AbstractVillager) this.merchant).getBukkitEntity().getLocation() : null; // Paper - Fix inventories returning null Locations } // CraftBukkit end diff --git a/patches/server/0908-Optimize-Hoppers.patch b/patches/server/0908-Optimize-Hoppers.patch index 33fd16b6e3a4..da2c0e69cf16 100644 --- a/patches/server/0908-Optimize-Hoppers.patch +++ b/patches/server/0908-Optimize-Hoppers.patch @@ -50,19 +50,19 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7c9f7aefc59ae1a785b261f80f25d3304f3bdd22..c9e1ded332fc320e87e0b4b95b97905ea0c91803 100644 +index 7c9f7aefc59ae1a785b261f80f25d3304f3bdd22..45f7e7efa8cf407cae2db657074478565590bd12 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1672,6 +1672,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper -+ net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper ++ net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper this.profiler.push(() -> { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 80682ce58d0b0ce0409d162f447b585163c36753..ae7214c6f72b85ec51230809db97b66fd2fcd298 100644 +index 80682ce58d0b0ce0409d162f447b585163c36753..9f1dfb6c7c44d0525792d3517bfdad6479fb12a7 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -749,10 +749,16 @@ public final class ItemStack { @@ -70,29 +70,29 @@ index 80682ce58d0b0ce0409d162f447b585163c36753..ae7214c6f72b85ec51230809db97b66f public ItemStack copy() { - if (this.isEmpty()) { -+ // Paper start ++ // Paper start - Perf: Optimize Hoppers + return this.copy(false); + } + + public ItemStack copy(boolean originalItem) { + if (!originalItem && this.isEmpty()) { -+ // Paper end ++ // Paper end - Perf: Optimize Hoppers return ItemStack.EMPTY; } else { - ItemStack itemstack = new ItemStack(this.getItem(), this.count); -+ ItemStack itemstack = new ItemStack(originalItem ? this.item : this.getItem(), this.count); // Paper ++ ItemStack itemstack = new ItemStack(originalItem ? this.item : this.getItem(), this.count); // Paper - Perf: Optimize Hoppers itemstack.setPopTime(this.getPopTime()); if (this.tag != null) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index 5bdad1866386908b9fef74d15862eb107fabe68f..370a25d2deb54f10a35ee24d9e7e92fbfde60edf 100644 +index 5bdad1866386908b9fef74d15862eb107fabe68f..a6f47fa9f6065ed669414996b447e2daf34b3495 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java @@ -26,6 +26,7 @@ import co.aikar.timings.MinecraftTimings; // Paper import co.aikar.timings.Timing; // Paper public abstract class BlockEntity { -+ static boolean ignoreTileUpdates; // Paper ++ static boolean ignoreTileUpdates; // Paper - Perf: Optimize Hoppers public Timing tickTimer = MinecraftTimings.getTileEntityTimings(this); // Paper // CraftBukkit start - data containers @@ -100,19 +100,19 @@ index 5bdad1866386908b9fef74d15862eb107fabe68f..370a25d2deb54f10a35ee24d9e7e92fb public void setChanged() { if (this.level != null) { -+ if (ignoreTileUpdates) return; // Paper ++ if (ignoreTileUpdates) return; // Paper - Perf: Optimize Hoppers BlockEntity.setChanged(this.level, this.worldPosition, this.blockState); } diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5c8b54f97 100644 +index f98367830e87d5f1428448931f756d9277699563..df1c1c27b7c0065f8179d59bdb9de01dde22befa 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java @@ -151,6 +151,43 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen } -+ // Paper start - optimize hoppers ++ // Paper start - Perf: Optimize Hoppers + private static final int HOPPER_EMPTY = 0; + private static final int HOPPER_HAS_ITEMS = 1; + private static final int HOPPER_IS_FULL = 2; @@ -147,7 +147,7 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 + + return empty ? HOPPER_EMPTY : (full ? HOPPER_IS_FULL : HOPPER_HAS_ITEMS); + } -+ // Paper end - optimize hoppers ++ // Paper end - Perf: Optimize Hoppers + private static boolean tryMoveItems(Level world, BlockPos pos, BlockState state, HopperBlockEntity blockEntity, BooleanSupplier booleansupplier) { if (world.isClientSide) { @@ -157,14 +157,14 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 boolean flag = false; - if (!blockEntity.isEmpty()) { -+ int fullState = getFullState(blockEntity); // Paper - optimize hoppers ++ int fullState = getFullState(blockEntity); // Paper - Perf: Optimize Hoppers + -+ if (fullState != HOPPER_EMPTY) { // Paper - optimize hoppers ++ if (fullState != HOPPER_EMPTY) { // Paper - Perf: Optimize Hopperss flag = HopperBlockEntity.ejectItems(world, pos, state, (Container) blockEntity, blockEntity); // CraftBukkit } - if (!blockEntity.inventoryFull()) { -+ if (fullState != HOPPER_IS_FULL || flag) { // Paper - optimize hoppers ++ if (fullState != HOPPER_IS_FULL || flag) { // Paper - Perf: Optimize Hoppers flag |= booleansupplier.getAsBoolean(); } @@ -172,7 +172,7 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 return false; } -+ // Paper start - Optimize Hoppers ++ // Paper start - Perf: Optimize Hoppers + private static boolean skipPullModeEventFire; + private static boolean skipPushModeEventFire; + public static boolean skipHopperEvents; @@ -366,7 +366,7 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 + } + private static final java.util.function.BiPredicate STACK_SIZE_TEST = (itemstack, i) -> itemstack.getCount() >= itemstack.getMaxStackSize(); + private static final java.util.function.BiPredicate IS_EMPTY_TEST = (itemstack, i) -> itemstack.isEmpty(); -+ // Paper end ++ // Paper end - Perf: Optimize Hoppers + private static boolean ejectItems(Level world, BlockPos blockposition, BlockState iblockdata, Container iinventory, HopperBlockEntity hopper) { // CraftBukkit Container iinventory1 = HopperBlockEntity.getAttachedContainer(world, blockposition, iblockdata); @@ -453,7 +453,7 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 - return false; + // return false; -+ // Paper end ++ // Paper end - Perf: Optimize Hoppers } } } @@ -466,7 +466,7 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 - - return itemstack.getCount() >= itemstack.getMaxStackSize(); - }); -+ // Paper start - optimize hoppers ++ // Paper start - Perf: Optimize Hoppers + if (inventory instanceof WorldlyContainer worldlyContainer) { + for (final int slot : worldlyContainer.getSlotsForFace(direction)) { + final ItemStack stack = inventory.getItem(slot); @@ -484,14 +484,14 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 + } + return true; + } -+ // Paper end - optimize hoppers ++ // Paper end - Perf: Optimize Hoppers } private static boolean isEmptyContainer(Container inv, Direction facing) { - return HopperBlockEntity.getSlots(inv, facing).allMatch((i) -> { - return inv.getItem(i).isEmpty(); - }); -+ return allMatch(inv, facing, IS_EMPTY_TEST); ++ return allMatch(inv, facing, IS_EMPTY_TEST); // Paper - Perf: Optimize Hoppers } public static boolean suckInItems(Level world, Hopper hopper) { @@ -502,7 +502,7 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 - return HopperBlockEntity.isEmptyContainer(iinventory, enumdirection) ? false : HopperBlockEntity.getSlots(iinventory, enumdirection).anyMatch((i) -> { - return HopperBlockEntity.a(hopper, iinventory, i, enumdirection, world); // Spigot - }); -+ // Paper start - optimize hoppers and remove streams ++ // Paper start - Perf: Optimize Hoppers + skipPullModeEventFire = skipHopperEvents; + // merge container isEmpty check and move logic into one loop + if (iinventory instanceof WorldlyContainer worldlyContainer) { @@ -528,7 +528,7 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 + } + return false; + } -+ // Paper end ++ // Paper end - Perf: Optimize Hoppers } else { Iterator iterator = HopperBlockEntity.getItemsAtAndAbove(world, hopper).iterator(); @@ -579,7 +579,7 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 - - itemstack1.shrink(origCount - itemstack2.getCount()); // Spigot - iinventory.setItem(i, itemstack1); -+ // Paper start - replace pull logic; MAKE SURE TO CHECK FOR DIFFS WHEN UPDATING ++ // Paper start - Perf: Optimize Hoppers; replace pull logic; MAKE SURE TO CHECK FOR DIFFS WHEN UPDATING + if (!itemstack.isEmpty() && HopperBlockEntity.canTakeItemFromContainer(ihopper, iinventory, itemstack, i, enumdirection)) { // If this logic changes, update above. this is left unused incase reflective plugins + return hopperPull(world, ihopper, iinventory, itemstack, i); + // ItemStack itemstack1 = itemstack.copy(); @@ -620,7 +620,7 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 + + // itemstack1.shrink(origCount - itemstack2.getCount()); // Spigot + // iinventory.setItem(i, itemstack1); -+ // Paper end ++ // Paper end - Perf: Optimize Hoppers } return false; @@ -630,13 +630,13 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 // CraftBukkit start - InventoryPickupItemEvent event = new InventoryPickupItemEvent(inventory.getOwner().getInventory(), (org.bukkit.entity.Item) itemEntity.getBukkitEntity()); + if (InventoryPickupItemEvent.getHandlerList().getRegisteredListeners().length > 0) { // Paper - optimize hoppers -+ InventoryPickupItemEvent event = new InventoryPickupItemEvent(getInventory(inventory), (org.bukkit.entity.Item) itemEntity.getBukkitEntity()); // Paper - use getInventory() to avoid snapshot creation ++ InventoryPickupItemEvent event = new InventoryPickupItemEvent(getInventory(inventory), (org.bukkit.entity.Item) itemEntity.getBukkitEntity()); // Paper - Perf: Optimize Hoppers; use getInventory() to avoid snapshot creation itemEntity.level().getCraftServer().getPluginManager().callEvent(event); if (event.isCancelled()) { return false; } // CraftBukkit end -+ } // Paper - optimize hoppers ++ } // Paper - Perf: Optimize Hoppers ItemStack itemstack = itemEntity.getItem().copy(); ItemStack itemstack1 = HopperBlockEntity.addItem((Container) null, inventory, itemstack, (Direction) null); @@ -644,9 +644,9 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 stack = stack.split(to.getMaxStackSize()); } // Spigot end -+ ignoreTileUpdates = true; // Paper ++ ignoreTileUpdates = true; // Paper - Perf: Optimize Hoppers to.setItem(slot, stack); -+ ignoreTileUpdates = false; // Paper ++ ignoreTileUpdates = false; // Paper - Perf: Optimize Hoppers stack = leftover; // Paper flag = true; } else if (HopperBlockEntity.canMergeItems(itemstack1, stack)) { @@ -654,16 +654,16 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 // CraftBukkit end } -+ // Paper start - optimize hopper item suck in ++ // Paper start - Perf: Optimize Hoppers + static final AABB HOPPER_ITEM_SUCK_OVERALL = Hopper.SUCK.bounds(); + static final AABB[] HOPPER_ITEM_SUCK_INDIVIDUAL = Hopper.SUCK.toAabbs().toArray(new AABB[0]); -+ // Paper end - optimize hopper item suck in ++ // Paper end - Perf: Optimize Hoppers + public static List getItemsAtAndAbove(Level world, Hopper hopper) { - return (List) hopper.getSuckShape().toAabbs().stream().flatMap((axisalignedbb) -> { - return world.getEntitiesOfClass(ItemEntity.class, axisalignedbb.move(hopper.getLevelX() - 0.5D, hopper.getLevelY() - 0.5D, hopper.getLevelZ() - 0.5D), EntitySelector.ENTITY_STILL_ALIVE).stream(); - }).collect(Collectors.toList()); -+ // Paper start - optimize hopper item suck in ++ // Paper start - Perf: Optimize Hoppers + // eliminate multiple getEntitiesOfClass() but maintain the voxelshape collision by moving + // the individual AABB checks into the predicate + final double shiftX = hopper.getLevelX() - 0.5D; @@ -682,23 +682,23 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 + + return false; + }); -+ // Paper end - optimize hopper item suck in ++ // Paper end - Perf: Optimize Hoppers } @Nullable public static Container getContainerAt(Level world, BlockPos pos) { - return HopperBlockEntity.getContainerAt(world, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D); -+ return HopperBlockEntity.getContainerAt(world, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, true); // Paper ++ return HopperBlockEntity.getContainerAt(world, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, true); // Paper - Perf: Optimize Hoppers } @Nullable private static Container getContainerAt(Level world, double x, double y, double z) { -+ // Paper start - add optimizeEntities parameter ++ // Paper start - Perf: Optimize Hoppers + return HopperBlockEntity.getContainerAt(world, x, y, z, false); + } + @Nullable + private static Container getContainerAt(Level world, double x, double y, double z, final boolean optimizeEntities) { -+ // Paper end - add optimizeEntities parameter ++ // Paper end - Perf: Optimize Hoppers Object object = null; BlockPos blockposition = BlockPos.containing(x, y, z); if ( !world.spigotConfig.hopperCanLoadChunks && !world.hasChunkAt( blockposition ) ) return null; // Spigot @@ -708,8 +708,8 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 - if (object == null) { - List list = world.getEntities((Entity) null, new AABB(x - 0.5D, y - 0.5D, z - 0.5D, x + 0.5D, y + 0.5D, z + 0.5D), EntitySelector.CONTAINER_ENTITY_SELECTOR); -+ if (object == null && (!optimizeEntities || !world.paperConfig().hopper.ignoreOccludingBlocks || !iblockdata.getBukkitMaterial().isOccluding())) { // Paper -+ List list = world.getEntitiesOfClass((Class)Container.class, new AABB(x - 0.5D, y - 0.5D, z - 0.5D, x + 0.5D, y + 0.5D, z + 0.5D), EntitySelector.CONTAINER_ENTITY_SELECTOR); // Paper - optimize hoppers, use getEntitiesOfClass ++ if (object == null && (!optimizeEntities || !world.paperConfig().hopper.ignoreOccludingBlocks || !iblockdata.getBukkitMaterial().isOccluding())) { // Paper - Perf: Optimize Hoppers ++ List list = world.getEntitiesOfClass((Class)Container.class, new AABB(x - 0.5D, y - 0.5D, z - 0.5D, x + 0.5D, y + 0.5D, z + 0.5D), EntitySelector.CONTAINER_ENTITY_SELECTOR); // Paper - Perf: Optimize Hoppers if (!list.isEmpty()) { object = (Container) list.get(world.random.nextInt(list.size())); @@ -718,12 +718,12 @@ index f98367830e87d5f1428448931f756d9277699563..d4dcf7fe26474ae07374e7761d823bc5 private static boolean canMergeItems(ItemStack first, ItemStack second) { - return first.getCount() <= first.getMaxStackSize() && ItemStack.isSameItemSameTags(first, second); -+ return first.getCount() < first.getMaxStackSize() && first.is(second.getItem()) && first.getDamageValue() == second.getDamageValue() && ((first.isEmpty() && second.isEmpty()) || java.util.Objects.equals(first.getTag(), second.getTag())); // Paper - used to return true for full itemstacks?! ++ return first.getCount() < first.getMaxStackSize() && first.is(second.getItem()) && first.getDamageValue() == second.getDamageValue() && ((first.isEmpty() && second.isEmpty()) || java.util.Objects.equals(first.getTag(), second.getTag())); // Paper - Perf: Optimize Hoppers; used to return true for full itemstacks?! } @Override diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -index 7cbd403f9e96e7ce35475c8102cd9f9c04819c27..64875525df244db838560f5fefb7b1b07b0f1f51 100644 +index 7cbd403f9e96e7ce35475c8102cd9f9c04819c27..a94300a457b25f0e33a8eeabba6dd5720ca9ab1e 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java @@ -93,12 +93,19 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc @@ -731,20 +731,20 @@ index 7cbd403f9e96e7ce35475c8102cd9f9c04819c27..64875525df244db838560f5fefb7b1b0 public boolean isEmpty() { this.unpackLootTable((Player)null); - return this.getItems().stream().allMatch(ItemStack::isEmpty); -+ // Paper start ++ // Paper start - Perf: Optimize Hoppers + for (final ItemStack itemStack : this.getItems()) { + if (!itemStack.isEmpty()) { + return false; + } + } + return true; -+ // Paper end ++ // Paper end - Perf: Optimize Hoppers } @Override public ItemStack getItem(int slot) { - this.unpackLootTable((Player)null); -+ if (slot == 0) this.unpackLootTable((Player)null); // Paper ++ if (slot == 0) this.unpackLootTable((Player) null); // Paper - Perf: Optimize Hoppers return this.getItems().get(slot); } diff --git a/patches/server/0909-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0909-Fix-beehives-generating-from-using-bonemeal.patch index 88ae1ee91bff..e0c9d13bb896 100644 --- a/patches/server/0909-Fix-beehives-generating-from-using-bonemeal.patch +++ b/patches/server/0909-Fix-beehives-generating-from-using-bonemeal.patch @@ -5,31 +5,31 @@ Subject: [PATCH] Fix beehives generating from using bonemeal diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index ae7214c6f72b85ec51230809db97b66fd2fcd298..3f420bbe8c2b9128a051030c4acd3603ea487132 100644 +index 9f1dfb6c7c44d0525792d3517bfdad6479fb12a7..8d051e23e16cef71e54fef2955720f604c306221 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -422,6 +422,7 @@ public final class ItemStack { } for (CraftBlockState blockstate : blocks) { world.setBlock(blockstate.getPosition(),blockstate.getHandle(), blockstate.getFlag()); // SPIGOT-7248 - manual update to avoid physics where appropriate -+ if (blockstate instanceof org.bukkit.craftbukkit.block.CapturedBlockState capturedBlockState) capturedBlockState.checkTreeBlockHack(); // Paper ++ if (blockstate instanceof org.bukkit.craftbukkit.block.CapturedBlockState capturedBlockState) capturedBlockState.checkTreeBlockHack(); // Paper - Fix beehives generating from using bonemeal } entityhuman.awardStat(Stats.ITEM_USED.get(item)); // SPIGOT-7236 - award stat } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CapturedBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CapturedBlockState.java -index 2aab5ba9e90f09e6d679ee0d0d5d5e52c44b677f..a8760f015b9ee3ee408c3b9220266eb76b313ba0 100644 +index 2aab5ba9e90f09e6d679ee0d0d5d5e52c44b677f..c17c8b2bff32bfd101675d73f8ab81b35a9e1c15 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CapturedBlockState.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CapturedBlockState.java @@ -31,6 +31,12 @@ public final class CapturedBlockState extends CraftBlockState { public boolean update(boolean force, boolean applyPhysics) { boolean result = super.update(force, applyPhysics); -+ // Paper start ++ // Paper start - Fix beehives generating from using bonemeal + this.checkTreeBlockHack(); + return result; + } + public void checkTreeBlockHack() { -+ // Paper end ++ // Paper end - Fix beehives generating from using bonemeal // SPIGOT-5537: Horrible hack to manually add bees given World.captureTreeGeneration does not support tiles if (this.treeBlock && this.getType() == Material.BEE_NEST) { WorldGenLevel generatoraccessseed = this.world.getHandle(); @@ -38,7 +38,7 @@ index 2aab5ba9e90f09e6d679ee0d0d5d5e52c44b677f..a8760f015b9ee3ee408c3b9220266eb7 } - return result; -+ // Paper ++ // Paper - Fix beehives generating from using bonemeal } @Override diff --git a/patches/server/0911-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0911-Treat-sequence-violations-like-they-should-be.patch index f08f796d75f4..1300b8f449d2 100644 --- a/patches/server/0911-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0911-Treat-sequence-violations-like-they-should-be.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ab5b354b0fb42535e8d176a219876e23f08c1f3d..e0bdb0ef35494b376960613bd6e319d179676bf3 100644 +index ab5b354b0fb42535e8d176a219876e23f08c1f3d..b55af3bceba3d78110bc9eac6ea136b43d90cd5d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2043,6 +2043,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void ackBlockChangesUpTo(int sequence) { if (sequence < 0) { -+ this.disconnect("Expected packet sequence nr >= 0", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper ++ this.disconnect("Expected packet sequence nr >= 0", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - Treat sequence violations like they should be throw new IllegalArgumentException("Expected packet sequence nr >= 0"); } else { this.ackBlockChangesUpTo = Math.max(sequence, this.ackBlockChangesUpTo); diff --git a/patches/server/0913-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0913-Prevent-causing-expired-keys-from-impacting-new-join.patch index 66b0be1bb3db..d79d1c3697a0 100644 --- a/patches/server/0913-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0913-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent causing expired keys from impacting new joins diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java -index 0e54e8faa48751a651b953bec72543a94edf74bc..aa1c6de4d6cb7bbca33d25895c54707d220ab62a 100644 +index 0e54e8faa48751a651b953bec72543a94edf74bc..d43106eb89b14667e85cd6e8fa047d64f2e8ec87 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java @@ -96,7 +96,13 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet { - buf.writeNullable(entry.chatSession, RemoteChatSession.Data::write); -+ // Paper start ++ // Paper start - Prevent causing expired keys from impacting new joins + RemoteChatSession.Data chatSession = entry.chatSession; + if (chatSession != null && chatSession.profilePublicKey().hasExpired()) { + chatSession = null; + } + buf.writeNullable(chatSession, RemoteChatSession.Data::write); -+ // Paper end ++ // Paper end - Prevent causing expired keys from impacting new joins }), UPDATE_GAME_MODE((serialized, buf) -> { serialized.gameMode = GameType.byId(buf.readVarInt()); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e0bdb0ef35494b376960613bd6e319d179676bf3..361d31a4a527c32ff3b8cd2e763e23963ec0a2b4 100644 +index b55af3bceba3d78110bc9eac6ea136b43d90cd5d..48bae46261f592923c8c6f1d56c92ce6a121f1b8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -287,6 +287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private int knownMovePacketCount; @Nullable private RemoteChatSession chatSession; -+ private boolean hasLoggedExpiry = false; // Paper ++ private boolean hasLoggedExpiry = false; // Paper - Prevent causing expired keys from impacting new joins private SignedMessageChain.Decoder signedMessageDecoder; private final LastSeenMessagesValidator lastSeenMessages = new LastSeenMessagesValidator(20); private final MessageSignatureCache messageSignatureCache = MessageSignatureCache.createDefault(); @@ -39,12 +39,12 @@ index e0bdb0ef35494b376960613bd6e319d179676bf3..361d31a4a527c32ff3b8cd2e763e2396 this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } -+ // Paper start ++ // Paper start - Prevent causing expired keys from impacting new joins + if (!hasLoggedExpiry && this.chatSession != null && this.chatSession.profilePublicKey().data().hasExpired()) { + LOGGER.info("Player profile key for {} has expired!", this.player.getName().getString()); + hasLoggedExpiry = true; + } -+ // Paper end ++ // Paper end - Prevent causing expired keys from impacting new joins + } @@ -53,7 +53,7 @@ index e0bdb0ef35494b376960613bd6e319d179676bf3..361d31a4a527c32ff3b8cd2e763e2396 private void resetPlayerChatState(RemoteChatSession session) { this.chatSession = session; -+ this.hasLoggedExpiry = false; // Paper ++ this.hasLoggedExpiry = false; // Paper - Prevent causing expired keys from impacting new joins this.signedMessageDecoder = session.createMessageDecoder(this.player.getUUID()); this.chatMessageChain.append(() -> { this.player.setChatSession(session); diff --git a/patches/server/0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index c98ffaa074e3..05d48a9e06b5 100644 --- a/patches/server/0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4e8e1f4562b3edb7041e299b6719e965df975636..a7f2e8755af41abc66070f1971e526b4f05bc710 100644 +index 4e8e1f4562b3edb7041e299b6719e965df975636..dae52be48e9789db2fbbff699f3e0c44086c864f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1724,6 +1724,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void gameEvent(GameEvent event, Vec3 emitterPos, GameEvent.Context emitter) { -+ // Paper start ++ // Paper start - Prevent GameEvents being fired from unloaded chunks + if (this.getChunkIfLoadedImmediately((Mth.floor(emitterPos.x) >> 4), (Mth.floor(emitterPos.z) >> 4)) == null) { + return; + } -+ // Paper end ++ // Paper end - Prevent GameEvents being fired from unloaded chunks this.gameEventDispatcher.post(event, emitterPos, emitter); } diff --git a/patches/server/0915-Use-array-for-gamerule-storage.patch b/patches/server/0915-Use-array-for-gamerule-storage.patch index 6750b6a93a81..41d8673025f7 100644 --- a/patches/server/0915-Use-array-for-gamerule-storage.patch +++ b/patches/server/0915-Use-array-for-gamerule-storage.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Use array for gamerule storage diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index 6c1af24f2f02ef5fe1be135b4071362f2297147a..4f2fa47d094348bb8f86a86e808019ddba56e187 100644 +index 6c1af24f2f02ef5fe1be135b4071362f2297147a..a9be16e53a9df34af3495048aa9af7b1a3efea4a 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java @@ -114,6 +114,7 @@ public class GameRules { public static final GameRules.Key RULE_DO_VINES_SPREAD = GameRules.register("doVinesSpread", GameRules.Category.UPDATES, GameRules.BooleanValue.create(true)); public static final GameRules.Key RULE_ENDER_PEARLS_VANISH_ON_DEATH = GameRules.register("enderPearlsVanishOnDeath", GameRules.Category.PLAYER, GameRules.BooleanValue.create(true)); private final Map, GameRules.Value> rules; -+ private final GameRules.Value[] gameruleArray; // Paper ++ private final GameRules.Value[] gameruleArray; // Paper - Perf: Use array for gamerule storage private static > GameRules.Key register(String name, GameRules.Category category, GameRules.Type type) { GameRules.Key gamerules_gamerulekey = new GameRules.Key<>(name, category); @@ -21,18 +21,18 @@ index 6c1af24f2f02ef5fe1be135b4071362f2297147a..4f2fa47d094348bb8f86a86e808019dd public GameRules() { - this.rules = (Map) GameRules.GAME_RULE_TYPES.entrySet().stream().collect(ImmutableMap.toImmutableMap(Entry::getKey, (entry) -> { -+ // Paper start - use this to ensure gameruleArray is initialized ++ // Paper start - Perf: Use array for gamerule storage + this((Map) GameRules.GAME_RULE_TYPES.entrySet().stream().collect(ImmutableMap.toImmutableMap(Entry::getKey, (entry) -> { return ((GameRules.Type) entry.getValue()).createRule(); - })); + }))); -+ // Paper end ++ // Paper end - Perf: Use array for gamerule storage } private GameRules(Map, GameRules.Value> rules) { this.rules = rules; + -+ // Paper start ++ // Paper start - Perf: Use array for gamerule storage + int arraySize = rules.keySet().stream().mapToInt(key -> key.gameRuleIndex).max().orElse(-1) + 1; + GameRules.Value[] values = new GameRules.Value[arraySize]; + @@ -41,12 +41,12 @@ index 6c1af24f2f02ef5fe1be135b4071362f2297147a..4f2fa47d094348bb8f86a86e808019dd + } + + this.gameruleArray = values; -+ // Paper end ++ // Paper end - Perf: Use array for gamerule storage } public > T getRule(GameRules.Key key) { - return (T) this.rules.get(key); // CraftBukkit - decompile error -+ return key == null ? null : (T) this.gameruleArray[key.gameRuleIndex]; // Paper ++ return key == null ? null : (T) this.gameruleArray[key.gameRuleIndex]; // Paper - Perf: Use array for gamerule storage } public CompoundTag createTag() { @@ -54,10 +54,10 @@ index 6c1af24f2f02ef5fe1be135b4071362f2297147a..4f2fa47d094348bb8f86a86e808019dd } public static final class Key> { -+ // Paper start ++ // Paper start - Perf: Use array for gamerule storage + private static int lastGameRuleIndex = 0; + public final int gameRuleIndex = lastGameRuleIndex++; -+ // Paper end ++ // Paper end - Perf: Use array for gamerule storage final String id; private final GameRules.Category category; diff --git a/patches/server/0920-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0920-Fix-DamageCause-for-Falling-Blocks.patch index e1935baf2e0a..7a7127e5a307 100644 --- a/patches/server/0920-Fix-DamageCause-for-Falling-Blocks.patch +++ b/patches/server/0920-Fix-DamageCause-for-Falling-Blocks.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index dfab64b21eedfbdd129c881b7c862ad962c78f3d..454365ea4795ac6c0e30530f795cbdb511908440 100644 +index dfab64b21eedfbdd129c881b7c862ad962c78f3d..c4745b8151f41ab55abe01ac30a5c5e54f1fbf7e 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1085,6 +1085,11 @@ public class CraftEventFactory { } else if (source.is(DamageTypes.SONIC_BOOM)) { cause = DamageCause.SONIC_BOOM; } -+ // Paper start - fix handle of Falling Blocks ++ // Paper start - fix falling block handling + else if (source.is(DamageTypes.FALLING_STALACTITE) || source.is(DamageTypes.FALLING_BLOCK) || source.is(DamageTypes.FALLING_ANVIL)) { + cause = DamageCause.FALLING_BLOCK; + } -+ // Paper end ++ // Paper end - fix falling block handling return CraftEventFactory.callEntityDamageEvent(damager, entity, cause, modifiers, modifierFunctions, cancelled, source.isCritical()); // Paper - add critical damage API } else if (source.is(DamageTypes.FELL_OUT_OF_WORLD)) { diff --git a/patches/server/0921-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0921-Avoid-Lazy-Initialization-for-Enum-Fields.patch index 809f5d171034..346c3fd86c6e 100644 --- a/patches/server/0921-Avoid-Lazy-Initialization-for-Enum-Fields.patch +++ b/patches/server/0921-Avoid-Lazy-Initialization-for-Enum-Fields.patch @@ -7,14 +7,14 @@ This patch is meant to get rid of any instances of lazy initialization that Mine This has the possibility to create race condition issues, and generally don't make sense to be lazily done anyways. diff --git a/src/main/java/com/mojang/math/OctahedralGroup.java b/src/main/java/com/mojang/math/OctahedralGroup.java -index a5a889d40228a0d6c7259caf8cb2554588d9aaf9..bbd407ab618fc89a82a6724ba3503d8b4a397016 100644 +index a5a889d40228a0d6c7259caf8cb2554588d9aaf9..5009192046e5e083d14cef3f448b98b978dd54bf 100644 --- a/src/main/java/com/mojang/math/OctahedralGroup.java +++ b/src/main/java/com/mojang/math/OctahedralGroup.java @@ -111,6 +111,7 @@ public enum OctahedralGroup implements StringRepresentable { this.permutation = axisTransformation; this.transformation = (new Matrix3f()).scaling(flipX ? -1.0F : 1.0F, flipY ? -1.0F : 1.0F, flipZ ? -1.0F : 1.0F); this.transformation.mul(axisTransformation.transformation()); -+ this.initializeRotationDirections(); // Paper ++ this.initializeRotationDirections(); // Paper - Avoid Lazy Initialization for Enum Fields } private BooleanList packInversions() { @@ -23,7 +23,7 @@ index a5a889d40228a0d6c7259caf8cb2554588d9aaf9..bbd407ab618fc89a82a6724ba3503d8b } - public Direction rotate(Direction direction) { -+ public void initializeRotationDirections() { // Paper ++ public void initializeRotationDirections() { // Paper - Avoid Lazy Initialization for Enum Fields if (this.rotatedDirections == null) { this.rotatedDirections = Maps.newEnumMap(Direction.class); Direction.Axis[] axiss = Direction.Axis.values(); @@ -31,10 +31,10 @@ index a5a889d40228a0d6c7259caf8cb2554588d9aaf9..bbd407ab618fc89a82a6724ba3503d8b } } -+ // Paper start - Move lazy initialization to constructor ++ // Paper start - Avoid Lazy Initialization for Enum Fields + } + public Direction rotate(Direction direction) { -+ // Paper end ++ // Paper end - Avoid Lazy Initialization for Enum Fields return this.rotatedDirections.get(direction); } diff --git a/patches/server/0925-Expand-PlayerItemMendEvent.patch b/patches/server/0925-Expand-PlayerItemMendEvent.patch index 0ad40b41ebe4..6147d4eabf06 100644 --- a/patches/server/0925-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0925-Expand-PlayerItemMendEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand PlayerItemMendEvent diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 5685951b71a8b81c7a71fd93b099b276d535b401..2a689581565bebc01ba354a3564d30327486953d 100644 +index 5685951b71a8b81c7a71fd93b099b276d535b401..b37e13c5de1a0a22a3713d04b203afc6c03ccbac 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -337,7 +337,7 @@ public class ExperienceOrb extends Entity { @@ -13,7 +13,7 @@ index 5685951b71a8b81c7a71fd93b099b276d535b401..2a689581565bebc01ba354a3564d3032 int j = Math.min(this.xpToDurability(amount), itemstack.getDamageValue()); // CraftBukkit start - org.bukkit.event.player.PlayerItemMendEvent event = CraftEventFactory.callPlayerItemMendEvent(player, this, itemstack, entry.getKey(), j); -+ org.bukkit.event.player.PlayerItemMendEvent event = CraftEventFactory.callPlayerItemMendEvent(player, this, itemstack, entry.getKey(), j, this::durabilityToXp); // Paper ++ org.bukkit.event.player.PlayerItemMendEvent event = CraftEventFactory.callPlayerItemMendEvent(player, this, itemstack, entry.getKey(), j, this::durabilityToXp); // Paper - Expand PlayerItemMendEvent j = event.getRepairAmount(); if (event.isCancelled()) { return amount; @@ -22,18 +22,18 @@ index 5685951b71a8b81c7a71fd93b099b276d535b401..2a689581565bebc01ba354a3564d3032 itemstack.setDamageValue(itemstack.getDamageValue() - j); - int k = amount - this.durabilityToXp(j); -+ int k = amount - event.getDurabilityToXpOperation().applyAsInt(j); // Paper ++ int k = amount - event.getDurabilityToXpOperation().applyAsInt(j); // Paper - Expand PlayerItemMendEvent this.value = k; // CraftBukkit - update exp value of orb for PlayerItemMendEvent calls -+ // Paper start ++ // Paper start - Expand PlayerItemMendEvent + if (j == 0 && amount == k) { // if repair amount is 0 and no xp was removed, don't do recursion; treat as cancelled + return k; + } -+ // Paper end ++ // Paper end - Expand PlayerItemMendEvent return k > 0 ? this.repairPlayerItems(player, k) : 0; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b1d12c30dd23e092531c0d4d3af367262ccb5402..809932208bdf8e01d7bc73f885c44497a4ce4a95 100644 +index b1d12c30dd23e092531c0d4d3af367262ccb5402..cc0824b3a8e4cb0bbefd53f91faf3942c097a004 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1754,11 +1754,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -41,17 +41,17 @@ index b1d12c30dd23e092531c0d4d3af367262ccb5402..809932208bdf8e01d7bc73f885c44497 int i = Math.min(orb.xpToDurability(amount), itemstack.getDamageValue()); - org.bukkit.event.player.PlayerItemMendEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemMendEvent(handle, orb, itemstack, stackEntry.getKey(), i); -+ org.bukkit.event.player.PlayerItemMendEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemMendEvent(handle, orb, itemstack, stackEntry.getKey(), i, orb::durabilityToXp); // Paper ++ org.bukkit.event.player.PlayerItemMendEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemMendEvent(handle, orb, itemstack, stackEntry.getKey(), i, orb::durabilityToXp); // Paper - Expand PlayerItemMendEvent i = event.getRepairAmount(); orb.discard(); if (!event.isCancelled()) { - amount -= orb.durabilityToXp(i); -+ amount -= event.getDurabilityToXpOperation().applyAsInt(i); // Paper ++ amount -= event.getDurabilityToXpOperation().applyAsInt(i); // Paper - Expand PlayerItemMendEvent itemstack.setDamageValue(itemstack.getDamageValue() - i); } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 454365ea4795ac6c0e30530f795cbdb511908440..a6897c9a46d9cef083d5424c5b4a2ed0a32dfe3b 100644 +index c4745b8151f41ab55abe01ac30a5c5e54f1fbf7e..99befdda75711c815f974d7260d8b979ce4e8694 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1321,10 +1321,10 @@ public class CraftEventFactory { @@ -59,11 +59,11 @@ index 454365ea4795ac6c0e30530f795cbdb511908440..a6897c9a46d9cef083d5424c5b4a2ed0 } - public static PlayerItemMendEvent callPlayerItemMendEvent(net.minecraft.world.entity.player.Player entity, net.minecraft.world.entity.ExperienceOrb orb, net.minecraft.world.item.ItemStack nmsMendedItem, net.minecraft.world.entity.EquipmentSlot slot, int repairAmount) { -+ public static PlayerItemMendEvent callPlayerItemMendEvent(net.minecraft.world.entity.player.Player entity, net.minecraft.world.entity.ExperienceOrb orb, net.minecraft.world.item.ItemStack nmsMendedItem, net.minecraft.world.entity.EquipmentSlot slot, int repairAmount, java.util.function.IntUnaryOperator durabilityToXpOp) { // Paper ++ public static PlayerItemMendEvent callPlayerItemMendEvent(net.minecraft.world.entity.player.Player entity, net.minecraft.world.entity.ExperienceOrb orb, net.minecraft.world.item.ItemStack nmsMendedItem, net.minecraft.world.entity.EquipmentSlot slot, int repairAmount, java.util.function.IntUnaryOperator durabilityToXpOp) { // Paper - Expand PlayerItemMendEvent Player player = (Player) entity.getBukkitEntity(); org.bukkit.inventory.ItemStack bukkitStack = CraftItemStack.asCraftMirror(nmsMendedItem); - PlayerItemMendEvent event = new PlayerItemMendEvent(player, bukkitStack, CraftEquipmentSlot.getSlot(slot), (ExperienceOrb) orb.getBukkitEntity(), repairAmount); -+ PlayerItemMendEvent event = new PlayerItemMendEvent(player, bukkitStack, CraftEquipmentSlot.getSlot(slot), (ExperienceOrb) orb.getBukkitEntity(), repairAmount, durabilityToXpOp); // Paper ++ PlayerItemMendEvent event = new PlayerItemMendEvent(player, bukkitStack, CraftEquipmentSlot.getSlot(slot), (ExperienceOrb) orb.getBukkitEntity(), repairAmount, durabilityToXpOp); // Paper - Expand PlayerItemMendEvent Bukkit.getPluginManager().callEvent(event); return event; } diff --git a/patches/server/0926-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0926-Refresh-ProjectileSource-for-projectiles.patch index a29b7a8db9ef..e6f66bc8426f 100644 --- a/patches/server/0926-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0926-Refresh-ProjectileSource-for-projectiles.patch @@ -14,19 +14,19 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2d8223ff9e3f51e43946cfcc1bd638235c48ec11..f5df304943abd40d2c9fee2f4d84fa1374eba387 100644 +index 2d8223ff9e3f51e43946cfcc1bd638235c48ec11..3ef46f1a9859c5ba9ea2fcda3b65816679cfc519 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -386,6 +386,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public boolean inWorld = false; public boolean generation; public int maxAirTicks = this.getDefaultMaxAirSupply(); // CraftBukkit - SPIGOT-6907: re-implement LivingEntity#setMaximumAir() -+ @Nullable // Paper ++ @Nullable // Paper - Refresh ProjectileSource for projectiles public org.bukkit.projectiles.ProjectileSource projectileSource; // For projectiles only public boolean lastDamageCancelled; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled public boolean persistentInvisibility = false; diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 270dd1db56b187bffaedba9f2b86b3e46dda3152..2f058cec80c6ef7a5a5ca065dc6c9fe353c521de 100644 +index 270dd1db56b187bffaedba9f2b86b3e46dda3152..5b6d5c799cc8e601a01b6967917e15ba1e2db721 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -50,14 +50,31 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -35,16 +35,16 @@ index 270dd1db56b187bffaedba9f2b86b3e46dda3152..2f058cec80c6ef7a5a5ca065dc6c9fe3 } - this.projectileSource = (entity != null && entity.getBukkitEntity() instanceof ProjectileSource) ? (ProjectileSource) entity.getBukkitEntity() : null; // CraftBukkit - -+ // Paper start - Fix null owners not being handled ++ // Paper start - Refresh ProjectileSource for projectiles + else { + this.ownerUUID = null; + this.cachedOwner = null; + this.projectileSource = null; + } -+ // Paper end ++ // Paper end - Refresh ProjectileSource for projectiles + this.refreshProjectileSource(false); // Paper + } -+ // Paper start ++ // Paper start - Refresh ProjectileSource for projectiles + public void refreshProjectileSource(boolean fillCache) { + if (fillCache) { + this.getOwner(); @@ -53,13 +53,13 @@ index 270dd1db56b187bffaedba9f2b86b3e46dda3152..2f058cec80c6ef7a5a5ca065dc6c9fe3 + this.projectileSource = projSource; + } } -+ // Paper end ++ // Paper end - Refresh ProjectileSource for projectiles @Nullable @Override public Entity getOwner() { if (this.cachedOwner != null && !this.cachedOwner.isRemoved()) { -+ this.refreshProjectileSource(false); // Paper ++ this.refreshProjectileSource(false); // Paper - Refresh ProjectileSource for projectiles return this.cachedOwner; } else { if (this.ownerUUID != null) { @@ -67,19 +67,19 @@ index 270dd1db56b187bffaedba9f2b86b3e46dda3152..2f058cec80c6ef7a5a5ca065dc6c9fe3 ServerLevel worldserver = (ServerLevel) world; this.cachedOwner = worldserver.getEntity(this.ownerUUID); -+ this.refreshProjectileSource(false); // Paper ++ this.refreshProjectileSource(false); // Paper - Refresh ProjectileSource for projectiles return this.cachedOwner; } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java b/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java -index 2c376687349825833e6d9a5ca92ce6afb98c36a3..0f7ae4a5c672039828454bf18c770dd99e250212 100644 +index 2c376687349825833e6d9a5ca92ce6afb98c36a3..856984601a59f51544b741f5f2137028b53c9439 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java @@ -60,6 +60,7 @@ public abstract class AbstractProjectile extends CraftEntity implements Projecti @Override public final org.bukkit.projectiles.ProjectileSource getShooter() { -+ this.getHandle().refreshProjectileSource(true); // Paper ++ this.getHandle().refreshProjectileSource(true); // Paper - Refresh ProjectileSource for projectiles return this.getHandle().projectileSource; } diff --git a/patches/server/0928-Fix-block-place-logic.patch b/patches/server/0928-Fix-block-place-logic.patch index 0f786528da1e..227c84be9e5d 100644 --- a/patches/server/0928-Fix-block-place-logic.patch +++ b/patches/server/0928-Fix-block-place-logic.patch @@ -9,7 +9,7 @@ Fix several issues when a player interact with a block: * poi can desync when the BlockPhysicsEvent is cancelled diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index e581dc10f3c805f7f8b6e4c842092609e7e1a0f8..6819cea2858f0035a4fbf3671612d43fead883b6 100644 +index e581dc10f3c805f7f8b6e4c842092609e7e1a0f8..b6b5abba349fecfecd8f3a3c237693607f9bf0ad 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java @@ -130,7 +130,7 @@ public class BlockItem extends Item { @@ -17,12 +17,12 @@ index e581dc10f3c805f7f8b6e4c842092609e7e1a0f8..6819cea2858f0035a4fbf3671612d43f SoundType soundeffecttype = iblockdata1.getSoundType(); - // world.playSound(entityhuman, blockposition, this.getPlaceSound(iblockdata1), SoundCategory.BLOCKS, (soundeffecttype.getVolume() + 1.0F) / 2.0F, soundeffecttype.getPitch() * 0.8F); -+ if (entityhuman == null) world.playSound(entityhuman, blockposition, this.getPlaceSound(iblockdata1), net.minecraft.sounds.SoundSource.BLOCKS, (soundeffecttype.getVolume() + 1.0F) / 2.0F, soundeffecttype.getPitch() * 0.8F); // Paper - reintroduce this for the dispenser (i.e the shulker) ++ if (entityhuman == null) world.playSound(entityhuman, blockposition, this.getPlaceSound(iblockdata1), net.minecraft.sounds.SoundSource.BLOCKS, (soundeffecttype.getVolume() + 1.0F) / 2.0F, soundeffecttype.getPitch() * 0.8F); // Paper - Fix block place logic; reintroduce this for the dispenser (i.e the shulker) world.gameEvent(GameEvent.BLOCK_PLACE, blockposition, GameEvent.Context.of(entityhuman, iblockdata1)); if ((entityhuman == null || !entityhuman.getAbilities().instabuild) && itemstack != ItemStack.EMPTY) { // CraftBukkit itemstack.shrink(1); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 3f420bbe8c2b9128a051030c4acd3603ea487132..453f48b540560a340721d762ca80eadf229c4dce 100644 +index 8d051e23e16cef71e54fef2955720f604c306221..9ac862354c7026845287344bbc2a94c958f65a59 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -493,13 +493,7 @@ public final class ItemStack { @@ -36,19 +36,19 @@ index 3f420bbe8c2b9128a051030c4acd3603ea487132..453f48b540560a340721d762ca80eadf - } - - tileentityjukebox.setTheItem(record); -+ tileentityjukebox.setTheItem(this.copy()); // Paper - sync this with record item, jukebox has now an inventory ++ tileentityjukebox.setTheItem(this.copy()); // Paper - Fix block place logic; sync this with record item, jukebox has now an inventory world.gameEvent(GameEvent.BLOCK_CHANGE, blockposition, GameEvent.Context.of(entityhuman, world.getBlockState(blockposition))); } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c7eb97008b8096f69602678722506fddbeac3148..7a4c21beaa4004f72cbfe75e567cafb3279a1c94 100644 +index c7eb97008b8096f69602678722506fddbeac3148..28e56e61ff5c14683f55780ed83e593f6b06503c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1038,17 +1038,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam CraftWorld world = ((ServerLevel) this).getWorld(); -+ boolean cancelledUpdates = false; // Paper ++ boolean cancelledUpdates = false; // Paper - Fix block place logic if (world != null && ((ServerLevel)this).hasPhysicsEvent) { // Paper BlockPhysicsEvent event = new BlockPhysicsEvent(world.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()), CraftBlockData.fromData(iblockdata)); this.getCraftServer().getPluginManager().callEvent(event); @@ -56,13 +56,13 @@ index c7eb97008b8096f69602678722506fddbeac3148..7a4c21beaa4004f72cbfe75e567cafb3 - if (event.isCancelled()) { - return; - } -+ cancelledUpdates = event.isCancelled(); // Paper ++ cancelledUpdates = event.isCancelled(); // Paper - Fix block place logic } // CraftBukkit end -+ if (!cancelledUpdates) { // Paper ++ if (!cancelledUpdates) { // Paper - Fix block place logic iblockdata.updateNeighbourShapes(this, blockposition, k, j - 1); iblockdata.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); -+ } // Paper ++ } // Paper - Fix block place logic } // CraftBukkit start - SPIGOT-5710 diff --git a/patches/server/0929-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0929-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch index c65f4bdd368d..65daee2e55d4 100644 --- a/patches/server/0929-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch +++ b/patches/server/0929-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 453f48b540560a340721d762ca80eadf229c4dce..b5e91462e403f4f53879be82301f5bae6cf564d2 100644 +index 9ac862354c7026845287344bbc2a94c958f65a59..b7e30d0a3c3c945addfa22c805af9608d68284b5 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -544,7 +544,11 @@ public final class ItemStack { @@ -13,11 +13,11 @@ index 453f48b540560a340721d762ca80eadf229c4dce..b5e91462e403f4f53879be82301f5bae // SPIGOT-1288 - play sound stripped from ItemBlock if (this.item instanceof BlockItem) { - SoundType soundeffecttype = ((BlockItem) this.item).getBlock().defaultBlockState().getSoundType(); // TODO: not strictly correct, however currently only affects decorated pots -+ // Paper start ++ // Paper start - Fix spigot sound playing for BlockItem ItemStacks + BlockPos position = new net.minecraft.world.item.context.BlockPlaceContext(context).getClickedPos(); + net.minecraft.world.level.block.state.BlockState blockData = world.getBlockState(position); + SoundType soundeffecttype = blockData.getSoundType(); -+ // Paper end ++ // Paper end - Fix spigot sound playing for BlockItem ItemStacks world.playSound(entityhuman, blockposition, soundeffecttype.getPlaceSound(), SoundSource.BLOCKS, (soundeffecttype.getVolume() + 1.0F) / 2.0F, soundeffecttype.getPitch() * 0.8F); } diff --git a/patches/server/0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index 19c94cb4d028..bedbcb956adc 100644 --- a/patches/server/0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 56e5dff13323068ad2911649e6285aa915d787bd..d0cc462f3ca02218978ac14358d533e3a4d8b066 100644 +index 56e5dff13323068ad2911649e6285aa915d787bd..15dfa910d91ac49f4d264d0289b891a47beabe25 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -352,7 +352,11 @@ public final class CraftServer implements Server { @@ -17,7 +17,7 @@ index 56e5dff13323068ad2911649e6285aa915d787bd..d0cc462f3ca02218978ac14358d533e3 + final YamlConfiguration commandsDefaults = YamlConfiguration.loadConfiguration(new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("configurations/commands.yml"), Charsets.UTF_8)); + if (this.commandsConfiguration.contains("aliases")) commandsDefaults.set("aliases", null); + this.commandsConfiguration.setDefaults(commandsDefaults); -+ // Paper stop - dont enforce icanhasbukkit default if alias block exists ++ // Paper stop - don't enforce icanhasbukkit default if alias block exists this.saveCommandsConfig(); // Migrate aliases from old file and add previously implicit $1- to pass all arguments diff --git a/patches/server/0935-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0935-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch index 0d77ba1beaec..4ff44ca179b7 100644 --- a/patches/server/0935-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch +++ b/patches/server/0935-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Temp: Pre-init PlayerChunkLoaderData in order to prepopulate diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index aca49044899f65d7e91e5762fb58dbaffbfbd4c9..a74a8a027c99eef199c1a6a54232ac2c8ffb9d08 100644 +index aca49044899f65d7e91e5762fb58dbaffbfbd4c9..ef8bbef6e4143b9432ee2ae2fb79e2aa2a9b84df 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -368,6 +368,7 @@ public class Main { tryPreloadClass(net.minecraft.world.level.lighting.LayerLightEventListener.DummyLightLayerEventListener.class.getName()); tryPreloadClass(net.minecraft.world.level.lighting.LayerLightEventListener.class.getName()); tryPreloadClass(net.minecraft.util.ExceptionCollector.class.getName()); -+ tryPreloadClass(io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData.class.getName()); ++ tryPreloadClass(io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData.class.getName()); // Paper - Prepopulate BFS lookup for potatos // Paper end } } diff --git a/patches/server/0937-Properly-Cancel-Usable-Items.patch b/patches/server/0937-Properly-cancel-usable-items.patch similarity index 82% rename from patches/server/0937-Properly-Cancel-Usable-Items.patch rename to patches/server/0937-Properly-cancel-usable-items.patch index 4122f9b89f5a..59b569391ca1 100644 --- a/patches/server/0937-Properly-Cancel-Usable-Items.patch +++ b/patches/server/0937-Properly-cancel-usable-items.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> Date: Tue, 23 May 2023 22:33:36 -0400 -Subject: [PATCH] Properly Cancel Usable Items +Subject: [PATCH] Properly cancel usable items This fixes the bug causing cancelling PlayerInteractEvent to cause items to continue to be used despite being cancelled on the server. @@ -10,14 +10,14 @@ The underlying issue of this is that the client modifies their synced data value them in order for the client to reset their using item state. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index f58386e952d29a16d160b628a23efbe102791277..82f26186156a487f29ad3abff3f68852e5b8a1f9 100644 +index f58386e952d29a16d160b628a23efbe102791277..d0404f7f103b4f98f9d76cf2a5cddec0dfa47b6f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -557,6 +557,7 @@ public class ServerPlayerGameMode { } // Paper end - extend Player Interact cancellation player.getBukkitEntity().updateInventory(); // SPIGOT-2867 -+ this.player.resyncUsingItem(this.player); // Paper - Resend player's using item status ++ this.player.resyncUsingItem(this.player); // Paper - Properly cancel usable items enuminteractionresult = (event.useItemInHand() != Event.Result.ALLOW) ? InteractionResult.SUCCESS : InteractionResult.PASS; } else if (this.gameModeForPlayer == GameType.SPECTATOR) { MenuProvider itileinventory = iblockdata.getMenuProvider(world, blockposition); @@ -25,39 +25,39 @@ index f58386e952d29a16d160b628a23efbe102791277..82f26186156a487f29ad3abff3f68852 return enuminteractionresult1; } -+ // Paper start - Cancel only if cancelled + if the interact result is different from default response ++ // Paper start - Properly cancel usable items; Cancel only if cancelled + if the interact result is different from default response + else if (this.interactResult && this.interactResult != cancelledItem) { + this.player.resyncUsingItem(this.player); + } -+ // Paper end ++ // Paper end - Properly cancel usable items } return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 361d31a4a527c32ff3b8cd2e763e23963ec0a2b4..ab2fcbdd9567e18a59eb70b3557da7a3f4a91f38 100644 +index 48bae46261f592923c8c6f1d56c92ce6a121f1b8..589662812bc6f6fb09d50d8793c7ed4cb1140af8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1955,6 +1955,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (cancelled) { -+ this.player.resyncUsingItem(this.player); // Paper - Resend player's using item status ++ this.player.resyncUsingItem(this.player); // Paper - Properly cancel usable items this.player.getBukkitEntity().updateInventory(); // SPIGOT-2524 return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 070d9630af6d8c29de9df3b59ce14c57637ebf6d..3ce5c06a6c154c0b8c9f2aaaa0a2f9d092cc4551 100644 +index 070d9630af6d8c29de9df3b59ce14c57637ebf6d..668297b8978cbde6635254122f8f29f4a7ead45b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3813,6 +3813,11 @@ public abstract class LivingEntity extends Entity implements Attackable { return ((Byte) this.entityData.get(LivingEntity.DATA_LIVING_ENTITY_FLAGS) & 2) > 0 ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND; } -+ // Paper start ++ // Paper start - Properly cancel usable items + public void resyncUsingItem(ServerPlayer serverPlayer) { + this.getEntityData().resendPossiblyDesyncedDataValues(java.util.List.of(DATA_LIVING_ENTITY_FLAGS), serverPlayer); + } -+ // Paper end ++ // Paper end - Properly cancel usable items private void updatingUsingItem() { if (this.isUsingItem()) { if (ItemStack.isSameItem(this.getItemInHand(this.getUsedItemHand()), this.useItem)) { diff --git a/patches/server/0938-Add-event-for-player-editing-sign.patch b/patches/server/0938-Add-event-for-player-editing-sign.patch index a434075f6d01..236c286da9ac 100644 --- a/patches/server/0938-Add-event-for-player-editing-sign.patch +++ b/patches/server/0938-Add-event-for-player-editing-sign.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add event for player editing sign diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index b5e91462e403f4f53879be82301f5bae6cf564d2..b44c596194f3e9fdd29f3eef1065612f46e7cd66 100644 +index b7e30d0a3c3c945addfa22c805af9608d68284b5..244fcdcb153b1f4d842405302261afe1cce67daa 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -523,7 +523,7 @@ public final class ItemStack { @@ -13,12 +13,12 @@ index b5e91462e403f4f53879be82301f5bae6cf564d2..b44c596194f3e9fdd29f3eef1065612f if (world.getBlockEntity(SignItem.openSign) instanceof SignBlockEntity tileentitysign) { if (world.getBlockState(SignItem.openSign).getBlock() instanceof SignBlock blocksign) { - blocksign.openTextEdit(entityhuman, tileentitysign, true, org.bukkit.event.player.PlayerSignOpenEvent.Cause.PLACE); // Craftbukkit -+ blocksign.openTextEdit(entityhuman, tileentitysign, true, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.PLACE); // Paper ++ blocksign.openTextEdit(entityhuman, tileentitysign, true, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.PLACE); // Paper - Add PlayerOpenSignEvent } } } finally { diff --git a/src/main/java/net/minecraft/world/level/block/SignBlock.java b/src/main/java/net/minecraft/world/level/block/SignBlock.java -index 57b79e7fa34755e68b06f5b3010e68745cabbb7e..a09f6a2f9fdbe8361f67b543f3b337789897b982 100644 +index 57b79e7fa34755e68b06f5b3010e68745cabbb7e..27a1e8ffc43efe4e086e7fd88ee4d80c23f98674 100644 --- a/src/main/java/net/minecraft/world/level/block/SignBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SignBlock.java @@ -118,7 +118,7 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo @@ -26,7 +26,7 @@ index 57b79e7fa34755e68b06f5b3010e68745cabbb7e..a09f6a2f9fdbe8361f67b543f3b33778 return InteractionResult.SUCCESS; } else if (!this.otherPlayerIsEditingSign(player, tileentitysign) && player.mayBuild() && this.hasEditableText(player, tileentitysign, flag1)) { - this.openTextEdit(player, tileentitysign, flag1, org.bukkit.event.player.PlayerSignOpenEvent.Cause.INTERACT); // CraftBukkit -+ this.openTextEdit(player, tileentitysign, flag1, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.INTERACT); // Paper ++ this.openTextEdit(player, tileentitysign, flag1, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.INTERACT); // Paper - Add PlayerOpenSignEvent return this.getInteractionResult(flag); } else { return InteractionResult.PASS; @@ -34,7 +34,7 @@ index 57b79e7fa34755e68b06f5b3010e68745cabbb7e..a09f6a2f9fdbe8361f67b543f3b33778 return blockpropertywood; } -+ @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper ++ @io.papermc.paper.annotation.DoNotUse @Deprecated // Paper - Add PlayerOpenSignEvent public void openTextEdit(Player player, SignBlockEntity blockEntity, boolean front) { - // Craftbukkit start - this.openTextEdit(player, blockEntity, front, org.bukkit.event.player.PlayerSignOpenEvent.Cause.UNKNOWN); @@ -42,7 +42,7 @@ index 57b79e7fa34755e68b06f5b3010e68745cabbb7e..a09f6a2f9fdbe8361f67b543f3b33778 - - public void openTextEdit(Player entityhuman, SignBlockEntity tileentitysign, boolean flag, org.bukkit.event.player.PlayerSignOpenEvent.Cause cause) { - if (!org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerSignOpenEvent(entityhuman, tileentitysign, flag, cause)) { -+ // Paper start - PlayerOpenSignEvent ++ // Paper start - Add PlayerOpenSignEvent + this.openTextEdit(player, blockEntity, front, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.UNKNOWN); + } + public void openTextEdit(Player entityhuman, SignBlockEntity tileentitysign, boolean flag, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause cause) { @@ -62,32 +62,32 @@ index 57b79e7fa34755e68b06f5b3010e68745cabbb7e..a09f6a2f9fdbe8361f67b543f3b33778 + case INTERACT -> org.bukkit.event.player.PlayerSignOpenEvent.Cause.INTERACT; + case UNKNOWN -> org.bukkit.event.player.PlayerSignOpenEvent.Cause.UNKNOWN; + }; -+ // Paper end - PlayerOpenSignEvent -+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerSignOpenEvent(entityhuman, tileentitysign, flag, legacyCause)) { // Paper ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerSignOpenEvent(entityhuman, tileentitysign, flag, legacyCause)) { ++ // Paper end - Add PlayerOpenSignEvent return; } - // Craftbukkit end -+ } // Paper ++ } // Paper - Add PlayerOpenSignEvent tileentitysign.setAllowedPlayerEditor(entityhuman.getUUID()); entityhuman.openTextEdit(tileentitysign, flag); } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -index 94caa0915e1a9ec1c46c7a0380db840901cc8063..3b33aed51a84ee30b1e7bceecb0d3840866e0748 100644 +index 94caa0915e1a9ec1c46c7a0380db840901cc8063..3ebfc8e5b5462e6e532f8e8901fd5f8f386bbf34 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java @@ -139,9 +139,15 @@ public class CraftSign extends CraftBlockEntityState< Preconditions.checkArgument(sign.isPlaced(), "Sign must be placed"); Preconditions.checkArgument(sign.getWorld() == player.getWorld(), "Sign must be in same world as Player"); -+ // Paper start ++ // Paper start - Add PlayerOpenSignEvent + io.papermc.paper.event.player.PlayerOpenSignEvent event = new io.papermc.paper.event.player.PlayerOpenSignEvent((Player) player, sign, side, io.papermc.paper.event.player.PlayerOpenSignEvent.Cause.PLUGIN); + if (!event.callEvent()) return; + if (PlayerSignOpenEvent.getHandlerList().getRegisteredListeners().length > 0) { -+ // Paper end ++ // Paper end - Add PlayerOpenSignEvent if (!CraftEventFactory.callPlayerSignOpenEvent(player, sign, side, PlayerSignOpenEvent.Cause.PLUGIN)) { return; } -+ } // Paper ++ } // Paper - Add PlayerOpenSignEvent SignBlockEntity handle = ((CraftSign) sign).getTileEntity(); handle.setAllowedPlayerEditor(player.getUniqueId()); diff --git a/patches/server/0939-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0939-Only-tick-item-frames-if-players-can-see-it.patch index b3de8c9a7c4c..704c5443df32 100644 --- a/patches/server/0939-Only-tick-item-frames-if-players-can-see-it.patch +++ b/patches/server/0939-Only-tick-item-frames-if-players-can-see-it.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Only tick item frames if players can see it In the event that an item frame cannot be seen by any players, ticking the item frame every tick is unnecessary. This can be a very hot section of the entity tracker when lots of item frames are present on a server, so this reduces the logic which speeds it up. diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 9d5d32705f9d8aadb51019f17b4db76a9bc6a04b..625a598eb5f3c9c5ea60ae9ea50974bb08abbf85 100644 +index 9d5d32705f9d8aadb51019f17b4db76a9bc6a04b..4eee77a14c941b637ec9e9dc844e67c5e933bfe7 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -111,7 +111,7 @@ public class ServerEntity { @@ -14,7 +14,7 @@ index 9d5d32705f9d8aadb51019f17b4db76a9bc6a04b..625a598eb5f3c9c5ea60ae9ea50974bb Entity entity = this.entity; - if (entity instanceof ItemFrame) { -+ if (!this.trackedPlayers.isEmpty() && entity instanceof ItemFrame) { // Paper - Only tick item frames if players can see it ++ if (!this.trackedPlayers.isEmpty() && entity instanceof ItemFrame) { // Paper - Perf: Only tick item frames if players can see it ItemFrame entityitemframe = (ItemFrame) entity; if (true || this.tickCount % 10 == 0) { // CraftBukkit - Moved below, should always enter this block diff --git a/patches/server/0940-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0940-Fix-cmd-permission-levels-for-command-blocks.patch index 7f1a3972333c..fede763c8198 100644 --- a/patches/server/0940-Fix-cmd-permission-levels-for-command-blocks.patch +++ b/patches/server/0940-Fix-cmd-permission-levels-for-command-blocks.patch @@ -5,24 +5,24 @@ Subject: [PATCH] Fix cmd permission levels for command blocks diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 82ca6267bca684a8f04ca37d40816686677a852a..4e81a823c49807d9978aeaef8293baaa67194c4d 100644 +index 82ca6267bca684a8f04ca37d40816686677a852a..ec4152f7372ddad216039a489fb5d72f963b4f18 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -204,10 +204,29 @@ public class CommandSourceStack implements ExecutionCommandSource= level; } -+ // Paper start ++ // Paper start - Fix permission levels for command blocks + private boolean forceRespectPermissionLevel() { + return this.source == CommandSource.NULL || (this.source instanceof final net.minecraft.world.level.BaseCommandBlock commandBlock && commandBlock.getLevel().paperConfig().commandBlocks.forceFollowPermLevel); + } -+ // Paper end ++ // Paper end - Fix permission levels for command blocks + // CraftBukkit start public boolean hasPermission(int i, String bukkitPermission) { - // World is null when loading functions - return ((this.getLevel() == null || !this.getLevel().getCraftServer().ignoreVanillaPermissions) && this.permissionLevel >= i) || this.getBukkitSender().hasPermission(bukkitPermission); -+ // Paper start ++ // Paper start - Fix permission levels for command blocks + final java.util.function.BooleanSupplier hasBukkitPerm = () -> this.source == CommandSource.NULL /*treat NULL as having all bukkit perms*/ || this.getBukkitSender().hasPermission(bukkitPermission); // lazily check bukkit perms to the benefit of custom permission setups + // if the server is null, we must check the vanilla perm level system + // if ignoreVanillaPermissions is true, we can skip vanilla perms and just run the bukkit perm check @@ -36,12 +36,12 @@ index 82ca6267bca684a8f04ca37d40816686677a852a..4e81a823c49807d9978aeaef8293baaa + } + } + return hasBukkitPerm.getAsBoolean(); -+ // Paper end ++ // Paper end - Fix permission levels for command blocks } // CraftBukkit end diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 6abef7947cadca6bccac809a8d58d38961132e0f..55a835bbe69453fe010d03f3b2e80b954dfc208e 100644 +index 6abef7947cadca6bccac809a8d58d38961132e0f..1a5b1be217e210db3f498b93fbcae7509be597ee 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -296,16 +296,7 @@ public class Commands { @@ -58,7 +58,7 @@ index 6abef7947cadca6bccac809a8d58d38961132e0f..55a835bbe69453fe010d03f3b2e80b95 - || cmd.equalsIgnoreCase("pardon") || cmd.equalsIgnoreCase("pardon-ip") || cmd.equalsIgnoreCase("reload")) { - return; - } -+ // Paper - use proper permission levels to block these commands ++ // Paper - Fix permission levels for command blocks // Handle vanilla commands; if (sender.getLevel().getCraftServer().getCommandBlockOverride(args[0])) { diff --git a/patches/server/0942-Call-missing-BlockDispenseEvent.patch b/patches/server/0942-Call-missing-BlockDispenseEvent.patch index 8b8394dbe564..09aac68d23f0 100644 --- a/patches/server/0942-Call-missing-BlockDispenseEvent.patch +++ b/patches/server/0942-Call-missing-BlockDispenseEvent.patch @@ -5,20 +5,20 @@ Subject: [PATCH] Call missing BlockDispenseEvent diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 415d387f8cfa3ae99b1c809233c86c18b76ad1e2..0286740aabe04e6e78ad6efd003a1e1a1ab6a460 100644 +index 415d387f8cfa3ae99b1c809233c86c18b76ad1e2..5165651f1ddcda78f2551d02ca5a4a5ea97ac91a 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -1106,6 +1106,13 @@ public interface DispenseItemBehavior { this.setSuccess(true); if (iblockdata.is(Blocks.RESPAWN_ANCHOR)) { if ((Integer) iblockdata.getValue(RespawnAnchorBlock.CHARGE) != 4) { -+ // Paper start ++ // Paper start - Call missing BlockDispenseEvent + ItemStack result = org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDispenseEvent(pointer, blockposition, stack, this); + if (result != null) { + this.setSuccess(false); + return result; + } -+ // Paper end ++ // Paper end - Call missing BlockDispenseEvent RespawnAnchorBlock.charge((Entity) null, worldserver, blockposition, iblockdata); stack.shrink(1); } else { @@ -26,13 +26,13 @@ index 415d387f8cfa3ae99b1c809233c86c18b76ad1e2..0286740aabe04e6e78ad6efd003a1e1a Optional optional = HoneycombItem.getWaxed(iblockdata); if (optional.isPresent()) { -+ // Paper start ++ // Paper start - Call missing BlockDispenseEvent + ItemStack result = org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDispenseEvent(pointer, blockposition, stack, this); + if (result != null) { + this.setSuccess(false); + return result; + } -+ // Paper end ++ // Paper end - Call missing BlockDispenseEvent worldserver.setBlockAndUpdate(blockposition, (BlockState) optional.get()); worldserver.levelEvent(3003, blockposition, 0); stack.shrink(1); @@ -40,24 +40,24 @@ index 415d387f8cfa3ae99b1c809233c86c18b76ad1e2..0286740aabe04e6e78ad6efd003a1e1a if (!worldserver.getBlockState(blockposition1).is(BlockTags.CONVERTABLE_TO_MUD)) { return this.defaultDispenseItemBehavior.dispense(pointer, stack); } else { -+ // Paper start ++ // Paper start - Call missing BlockDispenseEvent + ItemStack result = org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDispenseEvent(pointer, blockposition1, stack, this); + if (result != null) { + return result; + } -+ // Paper end ++ // Paper end - Call missing BlockDispenseEvent if (!worldserver.isClientSide) { for (int k = 0; k < 5; ++k) { worldserver.sendParticles(ParticleTypes.SPLASH, (double) blockposition.getX() + worldserver.random.nextDouble(), (double) (blockposition.getY() + 1), (double) blockposition.getZ() + worldserver.random.nextDouble(), 1, 0.0D, 0.0D, 0.0D, 1.0D); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index a6897c9a46d9cef083d5424c5b4a2ed0a32dfe3b..5ead89e46d9cf17980baf35cda000bc4c0e7425b 100644 +index 99befdda75711c815f974d7260d8b979ce4e8694..ba7f9ac6068bae43c628015fa07b32794fea9369 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -2098,6 +2098,32 @@ public class CraftEventFactory { } // Paper end -+ // Paper start - missing BlockDispenseEvent calls ++ // Paper start - Call missing BlockDispenseEvent + @Nullable + public static ItemStack handleBlockDispenseEvent(net.minecraft.core.dispenser.BlockSource pointer, BlockPos to, ItemStack itemStack, net.minecraft.core.dispenser.DispenseItemBehavior instance) { + org.bukkit.block.Block bukkitBlock = pointer.level().getWorld().getBlockAt(pointer.pos().getX(), pointer.pos().getY(), pointer.pos().getZ()); @@ -81,7 +81,7 @@ index a6897c9a46d9cef083d5424c5b4a2ed0a32dfe3b..5ead89e46d9cf17980baf35cda000bc4 + } + return null; + } -+ // Paper end - missing BlockDispenseEvent calls ++ // Paper end - Call missing BlockDispenseEvent + // Paper start - add EntityFertilizeEggEvent /** diff --git a/patches/server/0943-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0943-Don-t-load-chunks-for-supporting-block-checks.patch index e4c46db9bdb6..b9ac71bda76a 100644 --- a/patches/server/0943-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0943-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f5df304943abd40d2c9fee2f4d84fa1374eba387..a2607d0782e8d72d7e531a2b078674bc78daa5e3 100644 +index 3ef46f1a9859c5ba9ea2fcda3b65816679cfc519..d3ec25371478e5f4bfb3886f4765f6eaf54a39ce 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1362,7 +1362,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0945-Add-Sign-getInteractableSideFor.patch b/patches/server/0945-Add-Sign-getInteractableSideFor.patch index d9c5a89205e1..3e0f85b62d56 100644 --- a/patches/server/0945-Add-Sign-getInteractableSideFor.patch +++ b/patches/server/0945-Add-Sign-getInteractableSideFor.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Add Sign#getInteractableSideFor diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index da3d947c58bdb79372e64b2cea6e49b99a4a9ad8..a3ec2f522be2d02b9e37810799cecc2ba14f58f3 100644 +index da3d947c58bdb79372e64b2cea6e49b99a4a9ad8..9bc1e7f03106cc35ac79bc9d7cced2bc5871b36c 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java @@ -66,13 +66,18 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C } public boolean isFacingFrontText(net.minecraft.world.entity.player.Player player) { -+ // Paper start ++ // Paper start - Add Sign#getInteractableSideFor + return this.isFacingFrontText(player.getX(), player.getZ()); + } + public boolean isFacingFrontText(double x, double z) { -+ // Paper end ++ // Paper end - Add Sign#getInteractableSideFor Block block = this.getBlockState().getBlock(); if (block instanceof SignBlock) { @@ -24,13 +24,13 @@ index da3d947c58bdb79372e64b2cea6e49b99a4a9ad8..a3ec2f522be2d02b9e37810799cecc2b Vec3 vec3d = blocksign.getSignHitboxCenterPosition(this.getBlockState()); - double d0 = player.getX() - ((double) this.getBlockPos().getX() + vec3d.x); - double d1 = player.getZ() - ((double) this.getBlockPos().getZ() + vec3d.z); -+ double d0 = x - ((double) this.getBlockPos().getX() + vec3d.x); // Paper -+ double d1 = z - ((double) this.getBlockPos().getZ() + vec3d.z); // Paper ++ double d0 = x - ((double) this.getBlockPos().getX() + vec3d.x); // Paper - Add Sign#getInteractableSideFor ++ double d1 = z - ((double) this.getBlockPos().getZ() + vec3d.z); // Paper - Add Sign#getInteractableSideFor float f = blocksign.getYRotationDegrees(this.getBlockState()); float f1 = (float) (Mth.atan2(d1, d0) * 57.2957763671875D) - 90.0F; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java -index 3b33aed51a84ee30b1e7bceecb0d3840866e0748..2a70c68af92967851f5caf8e67e433355ff48d44 100644 +index 3ebfc8e5b5462e6e532f8e8901fd5f8f386bbf34..2725fd91596a69e12996e838267b6612f745a4bb 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java @@ -169,6 +169,14 @@ public class CraftSign extends CraftBlockEntityState< diff --git a/patches/server/0946-Array-backed-synched-entity-data.patch b/patches/server/0946-Array-backed-synched-entity-data.patch index 84bf2095b4f9..20c0e69844d6 100644 --- a/patches/server/0946-Array-backed-synched-entity-data.patch +++ b/patches/server/0946-Array-backed-synched-entity-data.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Array backed synched entity data Original code by jellysquid3 in Lithium, licensed under the GNU Lesser General Public License v3.0 (https://www.gnu.org/licenses/lgpl-3.0.html) diff --git a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java -index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..a043c382c37058032548a5192e17f5f816abe5a6 100644 +index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..fa3faf436dc1c5ed2d53abaec6e126d3e3c22c36 100644 --- a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java +++ b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java @@ -34,6 +34,11 @@ public class SynchedEntityData { @@ -17,7 +17,7 @@ index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..a043c382c37058032548a5192e17f5f8 + private static final int DEFAULT_ENTRY_COUNT = 10; + private static final int GROW_FACTOR = 8; + private SynchedEntityData.DataItem[] itemsArray = new SynchedEntityData.DataItem[DEFAULT_ENTRY_COUNT]; -+ // Paper end ++ // Paper end - array backed synched entity data public SynchedEntityData(Entity trackedEntity) { this.entity = trackedEntity; @@ -33,7 +33,7 @@ index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..a043c382c37058032548a5192e17f5f8 + } + + this.itemsArray[key.getId()] = datawatcher_item; -+ // Paper end ++ // Paper end - array backed synched entity data } public boolean hasItem(EntityDataAccessor key) { @@ -50,7 +50,7 @@ index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..a043c382c37058032548a5192e17f5f8 + } + + return (DataItem) this.itemsArray[id]; -+ // Paper end ++ // Paper end - array backed synched entity data // Spigot end } diff --git a/patches/server/0948-Fix-BanList-API.patch b/patches/server/0948-Fix-BanList-API.patch index ecc87d62a02e..f61cc30d0c04 100644 --- a/patches/server/0948-Fix-BanList-API.patch +++ b/patches/server/0948-Fix-BanList-API.patch @@ -208,7 +208,7 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 809932208bdf8e01d7bc73f885c44497a4ce4a95..5e17e19b79e6d98e95e1daae33c6430b3dfb151e 100644 +index cc0824b3a8e4cb0bbefd53f91faf3942c097a004..4c5ad6275f12a656d5d02ba1c0736fed55ac561e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1652,23 +1652,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0952-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0952-ExperienceOrb-should-call-EntitySpawnEvent.patch index e6d854a0e320..0a5366e668ee 100644 --- a/patches/server/0952-ExperienceOrb-should-call-EntitySpawnEvent.patch +++ b/patches/server/0952-ExperienceOrb-should-call-EntitySpawnEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] ExperienceOrb should call EntitySpawnEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 5ead89e46d9cf17980baf35cda000bc4c0e7425b..7fe4d29f7734ba9642f1a64c161df7d24b88a18a 100644 +index ba7f9ac6068bae43c628015fa07b32794fea9369..ab576ca90606d3c9dabf08ae9f37a339cf1c3f5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -734,7 +734,10 @@ public class CraftEventFactory { diff --git a/patches/server/0955-Implement-PlayerFailMoveEvent.patch b/patches/server/0955-Implement-PlayerFailMoveEvent.patch index 3ac0346c4930..807a4fa81e4d 100644 --- a/patches/server/0955-Implement-PlayerFailMoveEvent.patch +++ b/patches/server/0955-Implement-PlayerFailMoveEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerFailMoveEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ab2fcbdd9567e18a59eb70b3557da7a3f4a91f38..bed713a7c13cd11c2ea7d8397aee1159f42eac7d 100644 +index 589662812bc6f6fb09d50d8793c7ed4cb1140af8..12d714fe819fedd358921c1a146372087e5fb9d1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1316,8 +1316,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0956-Folia-scheduler-and-owned-region-API.patch b/patches/server/0956-Folia-scheduler-and-owned-region-API.patch index d1bfe767a5a9..22f55be902e0 100644 --- a/patches/server/0956-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0956-Folia-scheduler-and-owned-region-API.patch @@ -1148,7 +1148,7 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c9e1ded332fc320e87e0b4b95b97905ea0c91803..9a3ee0a2b2b41baea6988ee0ad64ff5cf61dde9f 100644 +index 45f7e7efa8cf407cae2db657074478565590bd12..d34f0d5abd93ed1729a00405d78a34a1873ba086 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1629,6 +1629,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper + net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a7f2e8755af41abc66070f1971e526b4f05bc710..9a7d5aa722eb1e56da8e9e11b46179c9f9ab716f 100644 +index dae52be48e9789db2fbbff699f3e0c44086c864f..2e293fb94024d21769faf0e60e79e91efac79007 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -52,7 +52,7 @@ index a7f2e8755af41abc66070f1971e526b4f05bc710..9a7d5aa722eb1e56da8e9e11b46179c9 // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 16cb80c64ebf33b9621fdbd6655becb85db487fa..8e6b4880e9596cf2e9c34fb90f03897f05475000 100644 +index 8bfd31ce3b4f88f0b32adb242c53771d9930b855..921d9d8bc6265631073d105fb8de68562f902778 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -124,7 +124,7 @@ public class ServerPlayerGameMode { @@ -65,13 +65,13 @@ index 16cb80c64ebf33b9621fdbd6655becb85db487fa..8e6b4880e9596cf2e9c34fb90f03897f if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3ce5c06a6c154c0b8c9f2aaaa0a2f9d092cc4551..c5a07b414da0209035f3f186f72a8913243187be 100644 +index 668297b8978cbde6635254122f8f29f4a7ead45b..ceb3bfbd955111af183eb16c0946109251289d40 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3818,6 +3818,10 @@ public abstract class LivingEntity extends Entity implements Attackable { this.getEntityData().resendPossiblyDesyncedDataValues(java.util.List.of(DATA_LIVING_ENTITY_FLAGS), serverPlayer); } - // Paper end + // Paper end - Properly cancel usable items + // Paper start - lag compensate eating + protected long eatStartTime; + protected int totalEatTimeTicks; diff --git a/patches/server/1010-Optimise-nearby-player-retrieval.patch b/patches/server/1010-Optimise-nearby-player-retrieval.patch index 2659e9fd38e8..764647638f15 100644 --- a/patches/server/1010-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1010-Optimise-nearby-player-retrieval.patch @@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9a7d5aa722eb1e56da8e9e11b46179c9f9ab716f..672dcf1d82b4a858167be678888d3fb672c1384a 100644 +index 2e293fb94024d21769faf0e60e79e91efac79007..9f1ba9240b6a8ea0ca19344a49e93a63e3132729 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -581,6 +581,115 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1011-Fix-missing-map-initialize-event-call.patch b/patches/server/1011-Fix-missing-map-initialize-event-call.patch index 6bcc31b4948e..8e3ae3895742 100644 --- a/patches/server/1011-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/1011-Fix-missing-map-initialize-event-call.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 672dcf1d82b4a858167be678888d3fb672c1384a..79b6602570de0e213faef04f9605f206aa5b7840 100644 +index 9f1ba9240b6a8ea0ca19344a49e93a63e3132729..ad4a987c1de4265f9f0d6a8769aaed95d0a66786 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2133,13 +2133,25 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1016-Add-player-idle-duration-API.patch b/patches/server/1016-Add-player-idle-duration-API.patch index ca5244769b63..a3b91651f548 100644 --- a/patches/server/1016-Add-player-idle-duration-API.patch +++ b/patches/server/1016-Add-player-idle-duration-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0eaa7d410ef93713f59d0cfb3cf4112a004e886c..9314506770f7841d15371d81c1c63504d1ecd2ad 100644 +index 85983812ac86ead64bdf3789a49c46302a9566ef..2a639bc8d3edca5eb7bfca2cc117b56587e5e525 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3311,6 +3311,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch index d5c60aea752a..9267ffa134fb 100644 --- a/patches/server/1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch +++ b/patches/server/1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 9314506770f7841d15371d81c1c63504d1ecd2ad..5513ceedd304995d6c8cbec0f6b629ef1b30d3e7 100644 +index 2a639bc8d3edca5eb7bfca2cc117b56587e5e525..132692091fdec45f0330c8bc668cc16873db2976 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1083,7 +1083,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch index 1d1ab9746ccd..0268bd6315c7 100644 --- a/patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c5a07b414da0209035f3f186f72a8913243187be..d90d86f6b6e656bc6680afa07c7a9e99e6325851 100644 +index ceb3bfbd955111af183eb16c0946109251289d40..c30ae7d8b5ee601db30111054c74ce60625d8203 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3703,7 +3703,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch index 7d3e2ef6533d..231b72f7c345 100644 --- a/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch @@ -19,7 +19,7 @@ where generation happened directly to a ServerLevel and the entity still has the flag set. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 79b6602570de0e213faef04f9605f206aa5b7840..0567fbf194d3dfef3f2348c4b1f69ac857dc5648 100644 +index ad4a987c1de4265f9f0d6a8769aaed95d0a66786..a1fd04399ef61d0257d1e4a6bb627e4a1b7a7ceb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1681,6 +1681,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -31,7 +31,7 @@ index 79b6602570de0e213faef04f9605f206aa5b7840..0567fbf194d3dfef3f2348c4b1f69ac8 if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ec6a75e266725ce9de09f44cb7ed4096cf23a211..63e445beaeedcbd6f06991e7ef504af9943e0c9f 100644 +index aef714923ff1e9d476aacd9bfaa80f85dc84890b..d77faa799de1b7cc23adb91d82a45a05532532f1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -713,7 +713,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -68,7 +68,7 @@ index 940b8d0b89d7e55c938aefbe80ee71b0db3dacb8..abb2a02e0fc1deedb0ad76aec64f74ce }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d90d86f6b6e656bc6680afa07c7a9e99e6325851..f242b2c56bfc2f17e87125e642538d58feb253e0 100644 +index c30ae7d8b5ee601db30111054c74ce60625d8203..7204fc4d535fb7cf5579aa51148e6a1262f3124d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1133,6 +1133,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1034-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1034-Restore-vanilla-entity-drops-behavior.patch index eedc31601eb3..3f6577f1b1fd 100644 --- a/patches/server/1034-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1034-Restore-vanilla-entity-drops-behavior.patch @@ -50,7 +50,7 @@ index 67a4c0a436cb1a0b5b9fc7c80dc501b1fb546f8f..d8bea03eb39b393751a69c4cfc8c0042 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 63e445beaeedcbd6f06991e7ef504af9943e0c9f..020cddd4c62aa952ae0f9d5a0e73d033fb3ab7c8 100644 +index d77faa799de1b7cc23adb91d82a45a05532532f1..29853426230ef7e95c7060cf1a44870d369d5f68 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -104,7 +104,7 @@ index 63e445beaeedcbd6f06991e7ef504af9943e0c9f..020cddd4c62aa952ae0f9d5a0e73d033 return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f242b2c56bfc2f17e87125e642538d58feb253e0..4cbdc1c36b1afb93f7c261b4ecbc5a766a00a288 100644 +index 7204fc4d535fb7cf5579aa51148e6a1262f3124d..3b7459226ae022c9e1de6dbf775046a767b409c9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -165,7 +165,7 @@ index ab708b256183fc54fe8e13f341d8a38acf611739..a9c1f99ba2461333bd154ac16e812031 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e42c87a38787e3528dd663627da9c4286e1d8bfc..69bce85eb00b4f8d26c4e1333cf778ef5084d07b 100644 +index 57b11760b420f09111899a7e19f0d555785b425f..b648d1960280d6aa235e511edf30848ee20bb693 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -939,17 +939,21 @@ public class CraftEventFactory { diff --git a/patches/server/1036-Dont-resend-blocks-on-interactions.patch b/patches/server/1036-Dont-resend-blocks-on-interactions.patch index 89a6d56c8386..69edfadb3442 100644 --- a/patches/server/1036-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1036-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 8e6b4880e9596cf2e9c34fb90f03897f05475000..c4bafa1b5c50d953502b5d918eb28dfe692a180d 100644 +index 921d9d8bc6265631073d105fb8de68562f902778..3c567a9ea921a6ae36f4dc5e16a8394ab62460a8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { @@ -149,7 +149,7 @@ index 277555a26e8281dd1a626e572794b08cf51d00c5..aa0f09a18ea781e027ea70928b30d3e9 return false; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 666533627e772e5e85ba04e65dd2b376efc0b139..bab97eedd92f7131fd0cd478580ddd52d2173de9 100644 +index 32a3729b9f1caca789af8176737fc510761ee960..5caf48c84b8dd46903dbdacaa3a5e13272374e0e 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -457,10 +457,12 @@ public final class ItemStack { diff --git a/patches/server/1037-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/1037-Keep-previous-behavior-for-setResourcePack.patch index 255ed26116e8..a3de6ac33072 100644 --- a/patches/server/1037-Keep-previous-behavior-for-setResourcePack.patch +++ b/patches/server/1037-Keep-previous-behavior-for-setResourcePack.patch @@ -10,7 +10,7 @@ packs before sending the new pack. Other API exists for adding a new pack to the existing packs on a client. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5513ceedd304995d6c8cbec0f6b629ef1b30d3e7..103e311bb37e9686b53d8dde645f4a2d1301e4be 100644 +index 132692091fdec45f0330c8bc668cc16873db2976..a257e7a998b79f33662cc96c8f5e6329910bdec6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2351,8 +2351,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index f0ca125467f0..795c995ce319 100644 --- a/patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,7 +26,7 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4cbdc1c36b1afb93f7c261b4ecbc5a766a00a288..8ac9c65caab86d30c31be0b713a7896a24637457 100644 +index 3b7459226ae022c9e1de6dbf775046a767b409c9..97dbd1c8c8b6301bb607079575589dcceab0f881 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4204,7 +4204,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1043-Add-experience-points-API.patch b/patches/server/1043-Add-experience-points-API.patch index f8f091d89547..67e0c99c8096 100644 --- a/patches/server/1043-Add-experience-points-API.patch +++ b/patches/server/1043-Add-experience-points-API.patch @@ -18,7 +18,7 @@ index 7f3466340891b4409d1399ebeb2ca865d77841cd..0a9ee8aee52b34566f1613229951e33e // Paper start - send SoundEffect to everyone who can see fromEntity private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 103e311bb37e9686b53d8dde645f4a2d1301e4be..a4db69d8d814c03fa9efe79492c7cc3c736af5a4 100644 +index a257e7a998b79f33662cc96c8f5e6329910bdec6..1359db54d76c1eb81ef65a6dc6f56b3ffad4bb62 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1821,6 +1821,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1045-Add-drops-to-shear-events.patch b/patches/server/1045-Add-drops-to-shear-events.patch index bafa35c1b886..df6f2b963b27 100644 --- a/patches/server/1045-Add-drops-to-shear-events.patch +++ b/patches/server/1045-Add-drops-to-shear-events.patch @@ -233,7 +233,7 @@ index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..b5d6857eaf2bed14adcb5f5e80d91b44 } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 69bce85eb00b4f8d26c4e1333cf778ef5084d07b..f2de6aa8c1ed96bd0dfd028212cf3c5c570020c3 100644 +index b648d1960280d6aa235e511edf30848ee20bb693..417e63d99216edd23d784ac5733432c541baf452 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1718,20 +1718,20 @@ public class CraftEventFactory { diff --git a/patches/server/1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch index 761c0530e930..28d8d3e49934 100644 --- a/patches/server/1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch +++ b/patches/server/1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch @@ -8,7 +8,7 @@ in order to fire the BlockDispenseEvent. This patch corrects that. diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index f42a86549e389ec53962f7a5e7a625f351cd4724..a1739f6f091fe922ac0e97141fc9446664713fc3 100644 +index 6b7d8b7b6665aa87af4bd8aa00f75fb2c9dd4b6b..409d6415162d87d611694795a3864693f9ec6432 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -628,7 +628,13 @@ public interface DispenseItemBehavior { diff --git a/patches/server/1051-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1051-Properly-handle-experience-dropping-on-block-break.patch index edc6007964d9..fe8724fbc251 100644 --- a/patches/server/1051-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1051-Properly-handle-experience-dropping-on-block-break.patch @@ -7,7 +7,7 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b8bf9eaae60040a3ba3d395712aa91940a71bea2..afd2e9bcdf94f3511bcd68cab5e72284f07fd016 100644 +index 2c2189a31c608c99abe6a9c0a78bdcb717b51aba..00ff7de3fe0feb166a792c61aa81a1e201d7e928 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1103,7 +1103,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { From 848a3960f6056461b7edfeefa717bc18bbc1172a Mon Sep 17 00:00:00 2001 From: Owen <23108066+Owen1212055@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:36:10 -0500 Subject: [PATCH 15/45] Add mob goal generator (#9980) --- paper-api-generator/build.gradle.kts | 1 + .../paper/entity/ai/VanillaGoal.java | 1128 +++++++++++++++++ .../java/io/papermc/generator/Generators.java | 32 + .../main/java/io/papermc/generator/Main.java | 25 +- .../papermc/generator/types/Annotations.java | 26 - .../generator/types/GeneratedKeyType.java | 74 +- .../generator/types/SimpleGenerator.java | 37 + .../generator/types/SourceGenerator.java | 2 - .../types/goal/MobGoalGenerator.java | 262 ++++ .../generator/types/goal/MobGoalNames.java | 329 +++++ .../papermc/generator/utils/Annotations.java | 59 + .../papermc/generator/utils/Formatting.java | 15 + .../io/papermc/generator/utils/Javadocs.java | 27 + patches/api/0196-Add-Mob-Goal-API.patch | 313 +---- patches/api/0299-Missing-Entity-API.patch | 13 - .../server/0387-Implement-Mob-Goal-API.patch | 112 -- 16 files changed, 1917 insertions(+), 538 deletions(-) create mode 100644 paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java create mode 100644 paper-api-generator/src/main/java/io/papermc/generator/Generators.java delete mode 100644 paper-api-generator/src/main/java/io/papermc/generator/types/Annotations.java create mode 100644 paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java create mode 100644 paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java create mode 100644 paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java create mode 100644 paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java create mode 100644 paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java create mode 100644 paper-api-generator/src/main/java/io/papermc/generator/utils/Javadocs.java diff --git a/paper-api-generator/build.gradle.kts b/paper-api-generator/build.gradle.kts index 50cc3c1e5968..3b86451bdc93 100644 --- a/paper-api-generator/build.gradle.kts +++ b/paper-api-generator/build.gradle.kts @@ -21,6 +21,7 @@ minecraft { dependencies { implementation("com.squareup:javapoet:1.13.0") implementation(project(":paper-api")) + implementation("io.github.classgraph:classgraph:4.8.47") } group = "io.papermc.paper" diff --git a/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java new file mode 100644 index 000000000000..069f2668f522 --- /dev/null +++ b/paper-api-generator/generated/com/destroystokyo/paper/entity/ai/VanillaGoal.java @@ -0,0 +1,1128 @@ +package com.destroystokyo.paper.entity.ai; + +import com.destroystokyo.paper.entity.RangedEntity; +import io.papermc.paper.entity.SchoolableFish; +import io.papermc.paper.generated.GeneratedFrom; +import org.bukkit.NamespacedKey; +import org.bukkit.entity.AbstractHorse; +import org.bukkit.entity.AbstractSkeleton; +import org.bukkit.entity.AbstractVillager; +import org.bukkit.entity.Animals; +import org.bukkit.entity.Bee; +import org.bukkit.entity.Blaze; +import org.bukkit.entity.Cat; +import org.bukkit.entity.Creature; +import org.bukkit.entity.Creeper; +import org.bukkit.entity.Dolphin; +import org.bukkit.entity.Drowned; +import org.bukkit.entity.Enderman; +import org.bukkit.entity.Evoker; +import org.bukkit.entity.Fish; +import org.bukkit.entity.Fox; +import org.bukkit.entity.Ghast; +import org.bukkit.entity.Guardian; +import org.bukkit.entity.Illager; +import org.bukkit.entity.Illusioner; +import org.bukkit.entity.IronGolem; +import org.bukkit.entity.Llama; +import org.bukkit.entity.Mob; +import org.bukkit.entity.Monster; +import org.bukkit.entity.Ocelot; +import org.bukkit.entity.Panda; +import org.bukkit.entity.Parrot; +import org.bukkit.entity.Phantom; +import org.bukkit.entity.PigZombie; +import org.bukkit.entity.PolarBear; +import org.bukkit.entity.PufferFish; +import org.bukkit.entity.Rabbit; +import org.bukkit.entity.Raider; +import org.bukkit.entity.Ravager; +import org.bukkit.entity.Shulker; +import org.bukkit.entity.Silverfish; +import org.bukkit.entity.SkeletonHorse; +import org.bukkit.entity.Slime; +import org.bukkit.entity.Spellcaster; +import org.bukkit.entity.Spider; +import org.bukkit.entity.Squid; +import org.bukkit.entity.Strider; +import org.bukkit.entity.Tameable; +import org.bukkit.entity.TraderLlama; +import org.bukkit.entity.Turtle; +import org.bukkit.entity.Vex; +import org.bukkit.entity.Vindicator; +import org.bukkit.entity.WanderingTrader; +import org.bukkit.entity.Wither; +import org.bukkit.entity.Wolf; +import org.bukkit.entity.Zombie; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * Vanilla keys for Mob Goals. + * + * @apiNote The fields provided here are a direct representation of + * what is available from the vanilla game source. They may be + * changed (including removals) on any Minecraft version + * bump, so cross-version compatibility is not provided on the + * same level as it is on most of the other API. + */ +@SuppressWarnings({ + "unused", + "SpellCheckingInspection" +}) +@GeneratedFrom("1.20.4") +public interface VanillaGoal extends Goal { + GoalKey RANDOM_STAND = create("random_stand", AbstractHorse.class); + + GoalKey RUN_AROUND_LIKE_CRAZY = create("run_around_like_crazy", AbstractHorse.class); + + GoalKey ABSTRACT_SKELETON_MELEE = create("abstract_skeleton_melee", AbstractSkeleton.class); + + GoalKey LOOK_AT_TRADING_PLAYER = create("look_at_trading_player", AbstractVillager.class); + + GoalKey TRADE_WITH_PLAYER = create("trade_with_player", AbstractVillager.class); + + GoalKey BREED = create("breed", Animals.class); + + GoalKey FOLLOW_PARENT = create("follow_parent", Animals.class); + + GoalKey BEE_ATTACK = create("bee_attack", Bee.class); + + GoalKey BEE_BECOME_ANGRY = create("bee_become_angry", Bee.class); + + GoalKey BEE_ENTER_HIVE = create("bee_enter_hive", Bee.class); + + GoalKey BEE_GO_TO_HIVE = create("bee_go_to_hive", Bee.class); + + GoalKey BEE_GO_TO_KNOWN_FLOWER = create("bee_go_to_known_flower", Bee.class); + + GoalKey BEE_GROW_CROP = create("bee_grow_crop", Bee.class); + + GoalKey BEE_HURT_BY_OTHER = create("bee_hurt_by_other", Bee.class); + + GoalKey BEE_LOCATE_HIVE = create("bee_locate_hive", Bee.class); + + GoalKey BEE_POLLINATE = create("bee_pollinate", Bee.class); + + GoalKey BEE_WANDER = create("bee_wander", Bee.class); + + GoalKey BLAZE_ATTACK = create("blaze_attack", Blaze.class); + + GoalKey CAT_AVOID_ENTITY = create("cat_avoid_entity", Cat.class); + + GoalKey CAT_LIE_ON_BED = create("cat_lie_on_bed", Cat.class); + + GoalKey CAT_RELAX_ON_OWNER = create("cat_relax_on_owner", Cat.class); + + GoalKey CAT_SIT_ON_BLOCK = create("cat_sit_on_block", Cat.class); + + GoalKey CAT_TEMPT = create("cat_tempt", Cat.class); + + GoalKey AVOID_ENTITY = create("avoid_entity", Creature.class); + + GoalKey BREATH_AIR = create("breath_air", Creature.class); + + GoalKey DROWNED_GO_TO_WATER = create("drowned_go_to_water", Creature.class); + + GoalKey FLEE_SUN = create("flee_sun", Creature.class); + + GoalKey FOLLOW_BOAT = create("follow_boat", Creature.class); + + GoalKey GOLEM_RANDOM_STROLL_IN_VILLAGE = create("golem_random_stroll_in_village", Creature.class); + + GoalKey HURT_BY = create("hurt_by", Creature.class); + + GoalKey MELEE_ATTACK = create("melee_attack", Creature.class); + + GoalKey MOVE_BACK_TO_VILLAGE = create("move_back_to_village", Creature.class); + + GoalKey MOVE_THROUGH_VILLAGE = create("move_through_village", Creature.class); + + GoalKey MOVE_TOWARDS = create("move_towards", Creature.class); + + GoalKey MOVE_TOWARDS_RESTRICTION = create("move_towards_restriction", Creature.class); + + GoalKey PANIC = create("panic", Creature.class); + + GoalKey PARROT_WANDER = create("parrot_wander", Creature.class); + + GoalKey RANDOM_STROLL = create("random_stroll", Creature.class); + + GoalKey RANDOM_SWIMMING = create("random_swimming", Creature.class); + + GoalKey REMOVE_BLOCK = create("remove_block", Creature.class); + + GoalKey RESTRICT_SUN = create("restrict_sun", Creature.class); + + GoalKey STROLL_THROUGH_VILLAGE = create("stroll_through_village", Creature.class); + + GoalKey TEMPT = create("tempt", Creature.class); + + GoalKey TRY_FIND_WATER = create("try_find_water", Creature.class); + + GoalKey WATER_AVOIDING_RANDOM_FLYING = create("water_avoiding_random_flying", Creature.class); + + GoalKey WATER_AVOIDING_RANDOM_STROLL = create("water_avoiding_random_stroll", Creature.class); + + GoalKey SWELL = create("swell", Creeper.class); + + GoalKey DOLPHIN_JUMP = create("dolphin_jump", Dolphin.class); + + GoalKey DOLPHIN_SWIM_TO_TREASURE = create("dolphin_swim_to_treasure", Dolphin.class); + + GoalKey DOLPHIN_SWIM_WITH_PLAYER = create("dolphin_swim_with_player", Dolphin.class); + + GoalKey PLAY_WITH_ITEMS = create("play_with_items", Dolphin.class); + + GoalKey DROWNED_ATTACK = create("drowned_attack", Drowned.class); + + GoalKey DROWNED_GO_TO_BEACH = create("drowned_go_to_beach", Drowned.class); + + GoalKey DROWNED_SWIM_UP = create("drowned_swim_up", Drowned.class); + + GoalKey ENDERMAN_FREEZE_WHEN_LOOKED_AT = create("enderman_freeze_when_looked_at", Enderman.class); + + GoalKey ENDERMAN_LEAVE_BLOCK = create("enderman_leave_block", Enderman.class); + + GoalKey ENDERMAN_LOOK_FOR_PLAYER = create("enderman_look_for_player", Enderman.class); + + GoalKey ENDERMAN_TAKE_BLOCK = create("enderman_take_block", Enderman.class); + + GoalKey EVOKER_ATTACK_SPELL = create("evoker_attack_spell", Evoker.class); + + GoalKey EVOKER_CASTING_SPELL = create("evoker_casting_spell", Evoker.class); + + GoalKey EVOKER_SUMMON_SPELL = create("evoker_summon_spell", Evoker.class); + + GoalKey EVOKER_WOLOLO_SPELL = create("evoker_wololo_spell", Evoker.class); + + GoalKey FISH_SWIM = create("fish_swim", Fish.class); + + GoalKey DEFEND_TRUSTED = create("defend_trusted", Fox.class); + + GoalKey FACEPLANT = create("faceplant", Fox.class); + + GoalKey FOX_BREED = create("fox_breed", Fox.class); + + GoalKey FOX_EAT_BERRIES = create("fox_eat_berries", Fox.class); + + GoalKey FOX_FLOAT = create("fox_float", Fox.class); + + GoalKey FOX_FOLLOW_PARENT = create("fox_follow_parent", Fox.class); + + GoalKey FOX_LOOK_AT_PLAYER = create("fox_look_at_player", Fox.class); + + GoalKey FOX_MELEE_ATTACK = create("fox_melee_attack", Fox.class); + + GoalKey FOX_PANIC = create("fox_panic", Fox.class); + + GoalKey FOX_POUNCE = create("fox_pounce", Fox.class); + + GoalKey FOX_SEARCH_FOR_ITEMS = create("fox_search_for_items", Fox.class); + + GoalKey FOX_STROLL_THROUGH_VILLAGE = create("fox_stroll_through_village", Fox.class); + + GoalKey PERCH_AND_SEARCH = create("perch_and_search", Fox.class); + + GoalKey SEEK_SHELTER = create("seek_shelter", Fox.class); + + GoalKey SLEEP = create("sleep", Fox.class); + + GoalKey STALK_PREY = create("stalk_prey", Fox.class); + + GoalKey GHAST_LOOK = create("ghast_look", Ghast.class); + + GoalKey GHAST_SHOOT_FIREBALL = create("ghast_shoot_fireball", Ghast.class); + + GoalKey RANDOM_FLOAT_AROUND = create("random_float_around", Ghast.class); + + GoalKey GUARDIAN_ATTACK = create("guardian_attack", Guardian.class); + + GoalKey RAIDER_OPEN_DOOR = create("raider_open_door", Illager.class); + + GoalKey ILLUSIONER_BLINDNESS_SPELL = create("illusioner_blindness_spell", Illusioner.class); + + GoalKey ILLUSIONER_MIRROR_SPELL = create("illusioner_mirror_spell", Illusioner.class); + + GoalKey DEFEND_VILLAGE = create("defend_village", IronGolem.class); + + GoalKey OFFER_FLOWER = create("offer_flower", IronGolem.class); + + GoalKey LLAMA_ATTACK_WOLF = create("llama_attack_wolf", Llama.class); + + GoalKey LLAMA_FOLLOW_CARAVAN = create("llama_follow_caravan", Llama.class); + + GoalKey LLAMA_HURT_BY = create("llama_hurt_by", Llama.class); + + GoalKey TRADER_LLAMA_DEFEND_WANDERING_TRADER = create("trader_llama_defend_wandering_trader", Llama.class); + + GoalKey BREAK_DOOR = create("break_door", Mob.class); + + GoalKey CLIMB_ON_TOP_OF_POWDER_SNOW = create("climb_on_top_of_powder_snow", Mob.class); + + GoalKey EAT_BLOCK = create("eat_block", Mob.class); + + GoalKey FLOAT = create("float", Mob.class); + + GoalKey FOLLOW_MOB = create("follow_mob", Mob.class); + + GoalKey INTERACT = create("interact", Mob.class); + + GoalKey LEAP_AT = create("leap_at", Mob.class); + + GoalKey LOOK_AT_PLAYER = create("look_at_player", Mob.class); + + GoalKey NEAREST_ATTACKABLE = create("nearest_attackable", Mob.class); + + GoalKey OCELOT_ATTACK = create("ocelot_attack", Mob.class); + + GoalKey OPEN_DOOR = create("open_door", Mob.class); + + GoalKey RANDOM_LOOK_AROUND = create("random_look_around", Mob.class); + + GoalKey RESET_UNIVERSAL_ANGER = create("reset_universal_anger", Mob.class); + + GoalKey USE_ITEM = create("use_item", Mob.class); + + GoalKey VINDICATOR_BREAK_DOOR = create("vindicator_break_door", Mob.class); + + GoalKey RANGED_BOW_ATTACK = create("ranged_bow_attack", Monster.class); + + GoalKey RANGED_CROSSBOW_ATTACK = create("ranged_crossbow_attack", Monster.class); + + GoalKey OCELOT_AVOID_ENTITY = create("ocelot_avoid_entity", Ocelot.class); + + GoalKey OCELOT_TEMPT = create("ocelot_tempt", Ocelot.class); + + GoalKey PANDA_ATTACK = create("panda_attack", Panda.class); + + GoalKey PANDA_AVOID = create("panda_avoid", Panda.class); + + GoalKey PANDA_BREED = create("panda_breed", Panda.class); + + GoalKey PANDA_HURT_BY = create("panda_hurt_by", Panda.class); + + GoalKey PANDA_LIE_ON_BACK = create("panda_lie_on_back", Panda.class); + + GoalKey PANDA_LOOK_AT_PLAYER = create("panda_look_at_player", Panda.class); + + GoalKey PANDA_PANIC = create("panda_panic", Panda.class); + + GoalKey PANDA_ROLL = create("panda_roll", Panda.class); + + GoalKey PANDA_SIT = create("panda_sit", Panda.class); + + GoalKey PANDA_SNEEZE = create("panda_sneeze", Panda.class); + + GoalKey LAND_ON_OWNERS_SHOULDER = create("land_on_owners_shoulder", Parrot.class); + + GoalKey PHANTOM_ATTACK_PLAYER = create("phantom_attack_player", Phantom.class); + + GoalKey PHANTOM_ATTACK_STRATEGY = create("phantom_attack_strategy", Phantom.class); + + GoalKey PHANTOM_CIRCLE_AROUND_ANCHOR = create("phantom_circle_around_anchor", Phantom.class); + + GoalKey PHANTOM_SWEEP_ATTACK = create("phantom_sweep_attack", Phantom.class); + + GoalKey POLAR_BEAR_ATTACK_PLAYERS = create("polar_bear_attack_players", PolarBear.class); + + GoalKey POLAR_BEAR_HURT_BY = create("polar_bear_hurt_by", PolarBear.class); + + GoalKey POLAR_BEAR_MELEE_ATTACK = create("polar_bear_melee_attack", PolarBear.class); + + GoalKey POLAR_BEAR_PANIC = create("polar_bear_panic", PolarBear.class); + + GoalKey PUFFERFISH_PUFF = create("pufferfish_puff", PufferFish.class); + + GoalKey RABBIT_AVOID_ENTITY = create("rabbit_avoid_entity", Rabbit.class); + + GoalKey RABBIT_PANIC = create("rabbit_panic", Rabbit.class); + + GoalKey RAID_GARDEN = create("raid_garden", Rabbit.class); + + GoalKey HOLD_GROUND_ATTACK = create("hold_ground_attack", Raider.class); + + GoalKey LONG_DISTANCE_PATROL = create("long_distance_patrol", Raider.class); + + GoalKey NEAREST_ATTACKABLE_WITCH = create("nearest_attackable_witch", Raider.class); + + GoalKey NEAREST_HEALABLE_RAIDER = create("nearest_healable_raider", Raider.class); + + GoalKey OBTAIN_RAID_LEADER_BANNER = create("obtain_raid_leader_banner", Raider.class); + + GoalKey PATHFIND_TO_RAID = create("pathfind_to_raid", Raider.class); + + GoalKey RAIDER_CELEBRATION = create("raider_celebration", Raider.class); + + GoalKey RAIDER_MOVE_THROUGH_VILLAGE = create("raider_move_through_village", Raider.class); + + GoalKey DROWNED_TRIDENT_ATTACK = create("drowned_trident_attack", RangedEntity.class); + + GoalKey RANGED_ATTACK = create("ranged_attack", RangedEntity.class); + + GoalKey FOLLOW_FLOCK_LEADER = create("follow_flock_leader", SchoolableFish.class); + + GoalKey SHULKER_ATTACK = create("shulker_attack", Shulker.class); + + GoalKey SHULKER_DEFENSE_ATTACK = create("shulker_defense_attack", Shulker.class); + + GoalKey SHULKER_NEAREST_ATTACK = create("shulker_nearest_attack", Shulker.class); + + GoalKey SHULKER_PEEK = create("shulker_peek", Shulker.class); + + GoalKey SILVERFISH_MERGE_WITH_STONE = create("silverfish_merge_with_stone", Silverfish.class); + + GoalKey SILVERFISH_WAKE_UP_FRIENDS = create("silverfish_wake_up_friends", Silverfish.class); + + GoalKey SKELETON_TRAP = create("skeleton_trap", SkeletonHorse.class); + + GoalKey SLIME_ATTACK = create("slime_attack", Slime.class); + + GoalKey SLIME_FLOAT = create("slime_float", Slime.class); + + GoalKey SLIME_KEEP_ON_JUMPING = create("slime_keep_on_jumping", Slime.class); + + GoalKey SLIME_RANDOM_DIRECTION = create("slime_random_direction", Slime.class); + + GoalKey SPELLCASTER_CASTING_SPELL = create("spellcaster_casting_spell", Spellcaster.class); + + GoalKey SPIDER = create("spider", Spider.class); + + GoalKey SPIDER_ATTACK = create("spider_attack", Spider.class); + + GoalKey SQUID_FLEE = create("squid_flee", Squid.class); + + GoalKey SQUID_RANDOM_MOVEMENT = create("squid_random_movement", Squid.class); + + GoalKey STRIDER_GO_TO_LAVA = create("strider_go_to_lava", Strider.class); + + GoalKey FOLLOW_OWNER = create("follow_owner", Tameable.class); + + GoalKey NON_TAME_RANDOM = create("non_tame_random", Tameable.class); + + GoalKey OWNER_HURT = create("owner_hurt", Tameable.class); + + GoalKey OWNER_HURT_BY = create("owner_hurt_by", Tameable.class); + + GoalKey SIT_WHEN_ORDERED_TO = create("sit_when_ordered_to", Tameable.class); + + GoalKey TURTLE_BREED = create("turtle_breed", Turtle.class); + + GoalKey TURTLE_GO_HOME = create("turtle_go_home", Turtle.class); + + GoalKey TURTLE_GO_TO_WATER = create("turtle_go_to_water", Turtle.class); + + GoalKey TURTLE_LAY_EGG = create("turtle_lay_egg", Turtle.class); + + GoalKey TURTLE_PANIC = create("turtle_panic", Turtle.class); + + GoalKey TURTLE_RANDOM_STROLL = create("turtle_random_stroll", Turtle.class); + + GoalKey TURTLE_TRAVEL = create("turtle_travel", Turtle.class); + + GoalKey VEX_CHARGE_ATTACK = create("vex_charge_attack", Vex.class); + + GoalKey VEX_COPY_OWNER = create("vex_copy_owner", Vex.class); + + GoalKey VEX_RANDOM_MOVE = create("vex_random_move", Vex.class); + + GoalKey VINDICATOR_JOHNNY_ATTACK = create("vindicator_johnny_attack", Vindicator.class); + + GoalKey WANDER_TO_POSITION = create("wander_to_position", WanderingTrader.class); + + GoalKey WITHER_DO_NOTHING = create("wither_do_nothing", Wither.class); + + GoalKey BEG = create("beg", Wolf.class); + + GoalKey WOLF_AVOID_ENTITY = create("wolf_avoid_entity", Wolf.class); + + GoalKey WOLF_PANIC = create("wolf_panic", Wolf.class); + + GoalKey ZOMBIE_ATTACK = create("zombie_attack", Zombie.class); + + GoalKey ZOMBIE_ATTACK_TURTLE_EGG = create("zombie_attack_turtle_egg", Zombie.class); + + /** + * Removed in 1.20.2 + */ + @Deprecated( + since = "1.20.2" + ) + GoalKey VINDICATOR_MELEE_ATTACK = create("vindicator_melee_attack", Vindicator.class); + + /** + * Removed in 1.20.2 + */ + @Deprecated( + since = "1.20.2" + ) + GoalKey RAVAGER_MELEE_ATTACK = create("ravager_melee_attack", Ravager.class); + + /** + * Removed in 1.20.2 + */ + @Deprecated( + since = "1.20.2" + ) + GoalKey EVIL_RABBIT_ATTACK = create("evil_rabbit_attack", Rabbit.class); + + /** + * Removed in 1.16 + */ + @Deprecated( + forRemoval = true, + since = "1.16" + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey ANGER = create("anger", PigZombie.class); + + /** + * Removed in 1.16 + */ + @Deprecated( + forRemoval = true, + since = "1.16" + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey ANGER_OTHER = create("anger_other", PigZombie.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey BLAZE_FIREBALL = create("blaze_fireball", Blaze.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey TEMPT_CHANCE = create("tempt_chance", Cat.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey DOLPHIN_PLAY_WITH_ITEMS = create("dolphin_play_with_items", Dolphin.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey DROWNED_GOTO_BEACH = create("drowned_goto_beach", Drowned.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey DROWNED_GOTO_WATER = create("drowned_goto_water", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey ENDERMAN_PICKUP_BLOCK = create("enderman_pickup_block", Enderman.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey ENDERMAN_PLACE_BLOCK = create("enderman_place_block", Enderman.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey PLAYER_WHO_LOOKED_AT_TARGET = create("player_who_looked_at_target", Enderman.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey EVOKER_CAST_SPELL = create("evoker_cast_spell", Evoker.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey FOX_DEFEND_TRUSTED = create("fox_defend_trusted", Fox.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey FOX_FACEPLANT = create("fox_faceplant", Fox.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey FOX_PERCH_AND_SEARCH = create("fox_perch_and_search", Fox.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey FOX_SLEEP = create("fox_sleep", Fox.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey FOX_SEEK_SHELTER = create("fox_seek_shelter", Fox.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey FOX_STALK_PREY = create("fox_stalk_prey", Fox.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey GHAST_ATTACK_TARGET = create("ghast_attack_target", Ghast.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey GHAST_IDLE_MOVE = create("ghast_idle_move", Ghast.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey GHAST_MOVE_TOWARDS_TARGET = create("ghast_move_towards_target", Ghast.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SPELLCASTER_CAST_SPELL = create("spellcaster_cast_spell", Spellcaster.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey LLAMATRADER_DEFENDED_WANDERING_TRADER = create("llamatrader_defended_wandering_trader", TraderLlama.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey PANDA_HURT_BY_TARGET = create("panda_hurt_by_target", Panda.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey POLARBEAR_ATTACK_PLAYERS = create("polarbear_attack_players", PolarBear.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey POLARBEAR_HURT_BY = create("polarbear_hurt_by", PolarBear.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey POLARBEAR_MELEE = create("polarbear_melee", PolarBear.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey POLARBEAR_PANIC = create("polarbear_panic", PolarBear.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey EAT_CARROTS = create("eat_carrots", Rabbit.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey KILLER_RABBIT_MELEE_ATTACK = create("killer_rabbit_melee_attack", Rabbit.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey RABBIT_AVOID_TARGET = create("rabbit_avoid_target", Rabbit.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey RAIDER_HOLD_GROUND = create("raider_hold_ground", Raider.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey RAIDER_OBTAIN_BANNER = create("raider_obtain_banner", Raider.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SHULKER_DEFENSE = create("shulker_defense", Shulker.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SHULKER_NEAREST = create("shulker_nearest", Shulker.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SILVERFISH_HIDE_IN_BLOCK = create("silverfish_hide_in_block", Silverfish.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SILVERFISH_WAKE_OTHERS = create("silverfish_wake_others", Silverfish.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SLIME_IDLE = create("slime_idle", Slime.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SLIME_NEAREST_PLAYER = create("slime_nearest_player", Slime.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SLIME_RANDOM_JUMP = create("slime_random_jump", Slime.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SPIDER_MELEE_ATTACK = create("spider_melee_attack", Spider.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SPIDER_NEAREST_ATTACKABLE_TARGET = create("spider_nearest_attackable_target", Spider.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SQUID = create("squid", Squid.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey TURTLE_GOTO_WATER = create("turtle_goto_water", Turtle.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey TURTLE_TEMPT = create("turtle_tempt", Turtle.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey VEX_COPY_TARGET_OF_OWNER = create("vex_copy_target_of_owner", Vex.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey VILLAGERTRADER_WANDER_TO_POSITION = create("villagertrader_wander_to_position", WanderingTrader.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey ARROW_ATTACK = create("arrow_attack", RangedEntity.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey AVOID_TARGET = create("avoid_target", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey BOW_SHOOT = create("bow_shoot", Monster.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey BREATH = create("breath", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey CAT_SIT_ON_BED = create("cat_sit_on_bed", Cat.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey CROSSBOW_ATTACK = create("crossbow_attack", Monster.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey DOOR_OPEN = create("door_open", Mob.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey EAT_TILE = create("eat_tile", Mob.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey FISH_SCHOOL = create("fish_school", Fish.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey FOLLOW_ENTITY = create("follow_entity", Mob.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey HORSE_TRAP = create("horse_trap", SkeletonHorse.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey HURT_BY_TARGET = create("hurt_by_target", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey JUMP_ON_BLOCK = create("jump_on_block", Cat.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey LEAP_AT_TARGET = create("leap_at_target", Mob.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey LLAMA_FOLLOW = create("llama_follow", Llama.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey MOVE_TOWARDS_TARGET = create("move_towards_target", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey NEAREST_ATTACKABLE_TARGET = create("nearest_attackable_target", Mob.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey NEAREST_ATTACKABLE_TARGET_WITCH = create("nearest_attackable_target_witch", Raider.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey NEAREST_VILLAGE = create("nearest_village", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey OWNER_HURT_BY_TARGET = create("owner_hurt_by_target", Tameable.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey OWNER_HURT_TARGET = create("owner_hurt_target", Tameable.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey PERCH = create("perch", Parrot.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey RAID = create("raid", Raider.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey RANDOM_FLY = create("random_fly", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey RANDOM_LOOKAROUND = create("random_lookaround", Mob.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey RANDOM_STROLL_LAND = create("random_stroll_land", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey RANDOM_SWIM = create("random_swim", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey RANDOM_TARGET_NON_TAMED = create("random_target_non_tamed", Tameable.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey SIT = create("sit", Tameable.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey STROLL_VILLAGE = create("stroll_village", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey TAME = create("tame", AbstractHorse.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey WATER = create("water", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey WATER_JUMP = create("water_jump", Dolphin.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey STROLL_VILLAGE_GOLEM = create("stroll_village_golem", Creature.class); + + @Deprecated( + forRemoval = true + ) + @ApiStatus.ScheduledForRemoval( + inVersion = "1.21" + ) + GoalKey UNIVERSAL_ANGER_RESET = create("universal_anger_reset", Mob.class); + + private static @NotNull GoalKey create(final @NotNull String key, final @NotNull Class clazz) { + return GoalKey.of(clazz, NamespacedKey.minecraft(key)); + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/Generators.java b/paper-api-generator/src/main/java/io/papermc/generator/Generators.java new file mode 100644 index 000000000000..ac62e26e9359 --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/Generators.java @@ -0,0 +1,32 @@ +package io.papermc.generator; + +import io.papermc.generator.types.GeneratedKeyType; +import io.papermc.generator.types.SourceGenerator; +import io.papermc.generator.types.goal.MobGoalGenerator; +import io.papermc.paper.registry.RegistryKey; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import org.bukkit.GameEvent; +import org.bukkit.block.Biome; +import org.bukkit.generator.structure.Structure; +import org.bukkit.generator.structure.StructureType; +import org.bukkit.inventory.meta.trim.TrimMaterial; +import org.bukkit.inventory.meta.trim.TrimPattern; + +public interface Generators { + + SourceGenerator[] API = { + simpleKey("GameEventKeys", GameEvent.class, Registries.GAME_EVENT, RegistryKey.GAME_EVENT, true), + simpleKey("BiomeKeys", Biome.class, Registries.BIOME, RegistryKey.BIOME, true), + simpleKey("TrimMaterialKeys", TrimMaterial.class, Registries.TRIM_MATERIAL, RegistryKey.TRIM_MATERIAL, true), + simpleKey("TrimPatternKeys", TrimPattern.class, Registries.TRIM_PATTERN, RegistryKey.TRIM_PATTERN, true), + simpleKey("StructureKeys", Structure.class, Registries.STRUCTURE, RegistryKey.STRUCTURE, true), + simpleKey("StructureTypeKeys", StructureType.class, Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE, false), + new MobGoalGenerator("VanillaGoal", "com.destroystokyo.paper.entity.ai") + }; + + private static SourceGenerator simpleKey(final String className, final Class apiType, final ResourceKey> registryKey, final RegistryKey apiRegistryKey, final boolean publicCreateKeyMethod) { + return new GeneratedKeyType<>(className, apiType, "io.papermc.paper.registry.keys", registryKey, apiRegistryKey, publicCreateKeyMethod); + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/Main.java b/paper-api-generator/src/main/java/io/papermc/generator/Main.java index 4ce510a6d260..e02f55871f6b 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/Main.java +++ b/paper-api-generator/src/main/java/io/papermc/generator/Main.java @@ -48,31 +48,24 @@ public final class Main { REGISTRY_ACCESS = layers.compositeAccess().freeze(); } - private static final List GENERATORS = List.of( - simpleKey("GameEventKeys", GameEvent.class, Registries.GAME_EVENT, RegistryKey.GAME_EVENT, true), - simpleKey("BiomeKeys", Biome.class, Registries.BIOME, RegistryKey.BIOME, true), - simpleKey("TrimMaterialKeys", TrimMaterial.class, Registries.TRIM_MATERIAL, RegistryKey.TRIM_MATERIAL, true), - simpleKey("TrimPatternKeys", TrimPattern.class, Registries.TRIM_PATTERN, RegistryKey.TRIM_PATTERN, true), - simpleKey("StructureKeys", Structure.class, Registries.STRUCTURE, RegistryKey.STRUCTURE, true), - simpleKey("StructureTypeKeys", StructureType.class, Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE, false) - ); - - private static SourceGenerator simpleKey(final String className, final Class apiType, final ResourceKey> registryKey, final RegistryKey apiRegistryKey, final boolean publicCreateKeyMethod) { - return new GeneratedKeyType<>(className, apiType, "io.papermc.paper.registry.keys", registryKey, apiRegistryKey, publicCreateKeyMethod); - } - private Main() { } public static void main(final String[] args) { - final Path output = Paths.get(args[0]); + LOGGER.info("Running API generators..."); + generate(Paths.get(args[0]), Generators.API); + // LOGGER.info("Running Server generators..."); + // generate(Paths.get(args[1]), Generators.SERVER); + } + + private static void generate(Path output, SourceGenerator[] generators) { try { if (Files.exists(output)) { PathUtils.deleteDirectory(output); } Files.createDirectories(output); - for (final SourceGenerator generator : GENERATORS) { + for (final SourceGenerator generator : generators) { generator.writeToFile(output); } @@ -81,6 +74,4 @@ public static void main(final String[] args) { throw new RuntimeException(ex); } } - - } diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/Annotations.java b/paper-api-generator/src/main/java/io/papermc/generator/types/Annotations.java deleted file mode 100644 index 0886a360a6ca..000000000000 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/Annotations.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.papermc.generator.types; - -import com.squareup.javapoet.AnnotationSpec; -import java.util.List; -import org.bukkit.MinecraftExperimental; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.NotNull; - -public final class Annotations { - - public static List experimentalAnnotations(final String version) { - return List.of( - AnnotationSpec.builder(ApiStatus.Experimental.class).build(), - AnnotationSpec.builder(MinecraftExperimental.class) - .addMember("value", "$S", version) - .build() - ); - } - - @ApiStatus.Experimental - public static final AnnotationSpec EXPERIMENTAL_API_ANNOTATION = AnnotationSpec.builder(ApiStatus.Experimental.class).build(); - public static final AnnotationSpec NOT_NULL = AnnotationSpec.builder(NotNull.class).build(); - - private Annotations() { - } -} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java index 4ecb1d102cc9..2c1a72d7150a 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java @@ -1,6 +1,5 @@ package io.papermc.generator.types; -import com.squareup.javapoet.AnnotationSpec; import com.squareup.javapoet.FieldSpec; import com.squareup.javapoet.JavaFile; import com.squareup.javapoet.MethodSpec; @@ -9,16 +8,13 @@ import com.squareup.javapoet.TypeName; import com.squareup.javapoet.TypeSpec; import io.papermc.generator.Main; +import io.papermc.generator.utils.Annotations; import io.papermc.generator.utils.CollectingContext; -import io.papermc.paper.generated.GeneratedFrom; +import io.papermc.generator.utils.Javadocs; import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.TypedKey; -import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -27,7 +23,6 @@ import java.util.Map; import java.util.stream.Collectors; import net.kyori.adventure.key.Key; -import net.minecraft.SharedConstants; import net.minecraft.core.Registry; import net.minecraft.core.RegistrySetBuilder; import net.minecraft.data.registries.UpdateOneTwentyOneRegistries; @@ -37,9 +32,9 @@ import org.checkerframework.framework.qual.DefaultQualifier; import static com.squareup.javapoet.TypeSpec.classBuilder; -import static io.papermc.generator.types.Annotations.EXPERIMENTAL_API_ANNOTATION; -import static io.papermc.generator.types.Annotations.NOT_NULL; -import static io.papermc.generator.types.Annotations.experimentalAnnotations; +import static io.papermc.generator.utils.Annotations.EXPERIMENTAL_API_ANNOTATION; +import static io.papermc.generator.utils.Annotations.NOT_NULL; +import static io.papermc.generator.utils.Annotations.experimentalAnnotations; import static java.util.Objects.requireNonNull; import static javax.lang.model.element.Modifier.FINAL; import static javax.lang.model.element.Modifier.PRIVATE; @@ -47,7 +42,7 @@ import static javax.lang.model.element.Modifier.STATIC; @DefaultQualifier(NonNull.class) -public class GeneratedKeyType implements SourceGenerator { +public class GeneratedKeyType extends SimpleGenerator { private static final Map>, RegistrySetBuilder.RegistryBootstrap> EXPERIMENTAL_REGISTRY_ENTRIES = UpdateOneTwentyOneRegistries.BUILDER.entries.stream() .collect(Collectors.toMap(RegistrySetBuilder.RegistryStub::key, RegistrySetBuilder.RegistryStub::bootstrap)); @@ -68,27 +63,6 @@ public class GeneratedKeyType implements SourceGenerator { } } - private static final AnnotationSpec SUPPRESS_WARNINGS = AnnotationSpec.builder(SuppressWarnings.class) - .addMember("value", "$S", "unused") - .addMember("value", "$S", "SpellCheckingInspection") - .build(); - private static final AnnotationSpec GENERATED_FROM = AnnotationSpec.builder(GeneratedFrom.class) - .addMember("value", "$S", SharedConstants.getCurrentVersion().getName()) - .build(); - private static final String TYPE_JAVADOC = """ - Vanilla keys for {@link $T#$L}. - - @apiNote The fields provided here are a direct representation of - what is available from the vanilla game source. They may be - changed (including removals) on any Minecraft version - bump, so cross-version compatibility is not provided on the - same level as it is on most of the other API. - """; - private static final String FIELD_JAVADOC = """ - {@code $L} - - @apiNote This field is version-dependant and may be removed in future Minecraft versions - """; private static final String CREATE_JAVADOC = """ Creates a key for {@link $T} in a registry. @@ -96,17 +70,14 @@ public class GeneratedKeyType implements SourceGenerator { @return a new typed key """; - private final String keysClassName; private final Class apiType; - private final String pkg; private final ResourceKey> registryKey; private final RegistryKey apiRegistryKey; private final boolean publicCreateKeyMethod; public GeneratedKeyType(final String keysClassName, final Class apiType, final String pkg, final ResourceKey> registryKey, final RegistryKey apiRegistryKey, final boolean publicCreateKeyMethod) { - this.keysClassName = keysClassName; + super(keysClassName, pkg); this.apiType = apiType; - this.pkg = pkg; this.registryKey = registryKey; this.apiRegistryKey = apiRegistryKey; this.publicCreateKeyMethod = publicCreateKeyMethod; @@ -129,17 +100,18 @@ private MethodSpec.Builder createMethod(final TypeName returnType) { } private TypeSpec.Builder keyHolderType() { - return classBuilder(this.keysClassName) + return classBuilder(this.className) .addModifiers(PUBLIC, FINAL) - .addJavadoc(TYPE_JAVADOC, RegistryKey.class, REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey)) - .addAnnotation(SUPPRESS_WARNINGS).addAnnotation(GENERATED_FROM) + .addJavadoc(Javadocs.getVersionDependentClassHeader("{@link $T#$L}"), RegistryKey.class, REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey)) + .addAnnotations(Annotations.CLASS_HEADER) .addMethod(MethodSpec.constructorBuilder() .addModifiers(PRIVATE) .build() ); } - protected TypeSpec createTypeSpec() { + @Override + protected TypeSpec getTypeSpec() { final TypeName typedKey = ParameterizedTypeName.get(TypedKey.class, this.apiType); final TypeSpec.Builder typeBuilder = this.keyHolderType(); @@ -156,7 +128,7 @@ protected TypeSpec createTypeSpec() { final String fieldName = keyPath.toUpperCase(Locale.ENGLISH).replaceAll("[.-/]", "_"); // replace invalid field name chars final FieldSpec.Builder fieldBuilder = FieldSpec.builder(typedKey, fieldName, PUBLIC, STATIC, FINAL) .initializer("$N(key($S))", createMethod.build(), keyPath) - .addJavadoc(FIELD_JAVADOC, key.location().toString()); + .addJavadoc(Javadocs.getVersionDependentField("{@code $L}"), key.location().toString()); if (experimental.contains(key)) { fieldBuilder.addAnnotations(experimentalAnnotations("update 1.21")); } else { @@ -183,23 +155,11 @@ private List> collectExperimentalKeys(final Registry registry) return experimental; } - protected JavaFile createFile() { - return JavaFile.builder(this.pkg, this.createTypeSpec()) + @Override + protected JavaFile.Builder file(JavaFile.Builder builder) { + return builder .skipJavaLangImports(true) .addStaticImport(Key.class, "key") - .indent(" ") - .build(); - } - - @Override - public final String outputString() { - return this.createFile().toString(); - } - - @Override - public void writeToFile(final Path parent) throws IOException { - final Path pkgDir = parent.resolve(this.pkg.replace('.', '/')); - Files.createDirectories(pkgDir); - Files.writeString(pkgDir.resolve(this.keysClassName + ".java"), this.outputString(), StandardCharsets.UTF_8); + .indent(" "); } } diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java b/paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java new file mode 100644 index 000000000000..76edecd9ff70 --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java @@ -0,0 +1,37 @@ +package io.papermc.generator.types; + +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.TypeSpec; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; + +public abstract class SimpleGenerator implements SourceGenerator { + + protected final String className; + protected final String packageName; + + protected SimpleGenerator(String className, String packageName) { + this.className = className; + this.packageName = packageName; + } + + protected abstract TypeSpec getTypeSpec(); + + protected abstract JavaFile.Builder file(JavaFile.Builder builder); + + @Override + public void writeToFile(Path parent) throws IOException { + Path packagePath = parent.resolve(this.packageName.replace('.', '/')); + Files.createDirectories(packagePath); + + JavaFile.Builder builder = JavaFile.builder(this.packageName, this.getTypeSpec()) + .indent(" "); + this.file(builder); + + Files.writeString(packagePath.resolve(this.className + ".java"), this.file(builder).build().toString(), StandardCharsets.UTF_8); + } + +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java b/paper-api-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java index 50d176e9ea0c..2d550fa4218c 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java @@ -5,7 +5,5 @@ public interface SourceGenerator { - String outputString(); - void writeToFile(Path parent) throws IOException; } diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java new file mode 100644 index 000000000000..649490b5b0ba --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java @@ -0,0 +1,262 @@ +package io.papermc.generator.types.goal; + +import com.destroystokyo.paper.entity.RangedEntity; +import com.destroystokyo.paper.entity.ai.GoalKey; +import com.squareup.javapoet.AnnotationSpec; +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; +import com.squareup.javapoet.TypeVariableName; +import io.github.classgraph.ClassGraph; +import io.github.classgraph.ScanResult; +import io.papermc.generator.types.SimpleGenerator; +import io.papermc.generator.utils.Annotations; +import io.papermc.generator.utils.Formatting; +import io.papermc.generator.utils.Javadocs; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import javax.lang.model.element.Modifier; +import net.minecraft.world.entity.ai.goal.Goal; +import net.minecraft.world.entity.ai.goal.WrappedGoal; +import org.bukkit.NamespacedKey; +import org.bukkit.entity.AbstractHorse; +import org.bukkit.entity.Blaze; +import org.bukkit.entity.Cat; +import org.bukkit.entity.Creature; +import org.bukkit.entity.Dolphin; +import org.bukkit.entity.Drowned; +import org.bukkit.entity.Enderman; +import org.bukkit.entity.Evoker; +import org.bukkit.entity.Fish; +import org.bukkit.entity.Fox; +import org.bukkit.entity.Ghast; +import org.bukkit.entity.Llama; +import org.bukkit.entity.Mob; +import org.bukkit.entity.Monster; +import org.bukkit.entity.Panda; +import org.bukkit.entity.Parrot; +import org.bukkit.entity.PigZombie; +import org.bukkit.entity.PolarBear; +import org.bukkit.entity.Rabbit; +import org.bukkit.entity.Raider; +import org.bukkit.entity.Ravager; +import org.bukkit.entity.Shulker; +import org.bukkit.entity.Silverfish; +import org.bukkit.entity.SkeletonHorse; +import org.bukkit.entity.Slime; +import org.bukkit.entity.Spellcaster; +import org.bukkit.entity.Spider; +import org.bukkit.entity.Squid; +import org.bukkit.entity.Tameable; +import org.bukkit.entity.TraderLlama; +import org.bukkit.entity.Turtle; +import org.bukkit.entity.Vex; +import org.bukkit.entity.Vindicator; +import org.bukkit.entity.WanderingTrader; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.framework.qual.DefaultQualifier; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Nullable; + +@DefaultQualifier(NonNull.class) +public class MobGoalGenerator extends SimpleGenerator { + + private static final String CLASS_HEADER = Javadocs.getVersionDependentClassHeader("Mob Goals"); + + private static final DeprecatedEntry[] DEPRECATED_ENTRIES = { + // + new DeprecatedEntry(Vindicator.class, "vindicator_melee_attack", null, "1.20.2"), + new DeprecatedEntry(Ravager.class, "ravager_melee_attack", null, "1.20.2"), + new DeprecatedEntry(Rabbit.class, "evil_rabbit_attack", null, "1.20.2"), + new DeprecatedEntry(PigZombie.class, "anger", "1.21", "1.16"), + new DeprecatedEntry(PigZombie.class, "anger_other", "1.21", "1.16"), + new DeprecatedEntry(Blaze.class, "blaze_fireball", "1.21", null), + new DeprecatedEntry(Cat.class, "tempt_chance", "1.21", null), + new DeprecatedEntry(Dolphin.class, "dolphin_play_with_items", "1.21", null), + new DeprecatedEntry(Drowned.class, "drowned_goto_beach", "1.21", null), + new DeprecatedEntry(Creature.class, "drowned_goto_water", "1.21", null), + new DeprecatedEntry(Enderman.class, "enderman_pickup_block", "1.21", null), + new DeprecatedEntry(Enderman.class, "enderman_place_block", "1.21", null), + new DeprecatedEntry(Enderman.class, "player_who_looked_at_target", "1.21", null), + new DeprecatedEntry(Evoker.class, "evoker_cast_spell", "1.21", null), + new DeprecatedEntry(Fox.class, "fox_defend_trusted", "1.21", null), + new DeprecatedEntry(Fox.class, "fox_faceplant", "1.21", null), + new DeprecatedEntry(Fox.class, "fox_perch_and_search", "1.21", null), + new DeprecatedEntry(Fox.class, "fox_sleep", "1.21", null), + new DeprecatedEntry(Fox.class, "fox_seek_shelter", "1.21", null), + new DeprecatedEntry(Fox.class, "fox_stalk_prey", "1.21", null), + new DeprecatedEntry(Ghast.class, "ghast_attack_target", "1.21", null), + new DeprecatedEntry(Ghast.class, "ghast_idle_move", "1.21", null), + new DeprecatedEntry(Ghast.class, "ghast_move_towards_target", "1.21", null), + new DeprecatedEntry(Spellcaster.class, "spellcaster_cast_spell", "1.21", null), + new DeprecatedEntry(TraderLlama.class, "llamatrader_defended_wandering_trader", "1.21", null), + new DeprecatedEntry(Panda.class, "panda_hurt_by_target", "1.21", null), + new DeprecatedEntry(PolarBear.class, "polarbear_attack_players", "1.21", null), + new DeprecatedEntry(PolarBear.class, "polarbear_hurt_by", "1.21", null), + new DeprecatedEntry(PolarBear.class, "polarbear_melee", "1.21", null), + new DeprecatedEntry(PolarBear.class, "polarbear_panic", "1.21", null), + new DeprecatedEntry(Rabbit.class, "eat_carrots", "1.21", null), + new DeprecatedEntry(Rabbit.class, "killer_rabbit_melee_attack", "1.21", null), + new DeprecatedEntry(Rabbit.class, "rabbit_avoid_target", "1.21", null), + new DeprecatedEntry(Raider.class, "raider_hold_ground", "1.21", null), + new DeprecatedEntry(Raider.class, "raider_obtain_banner", "1.21", null), + new DeprecatedEntry(Shulker.class, "shulker_defense", "1.21", null), + new DeprecatedEntry(Shulker.class, "shulker_nearest", "1.21", null), + new DeprecatedEntry(Silverfish.class, "silverfish_hide_in_block", "1.21", null), + new DeprecatedEntry(Silverfish.class, "silverfish_wake_others", "1.21", null), + new DeprecatedEntry(Slime.class, "slime_idle", "1.21", null), + new DeprecatedEntry(Slime.class, "slime_nearest_player", "1.21", null), + new DeprecatedEntry(Slime.class, "slime_random_jump", "1.21", null), + new DeprecatedEntry(Spider.class, "spider_melee_attack", "1.21", null), + new DeprecatedEntry(Spider.class, "spider_nearest_attackable_target", "1.21", null), + new DeprecatedEntry(Squid.class, "squid", "1.21", null), + new DeprecatedEntry(Turtle.class, "turtle_goto_water", "1.21", null), + new DeprecatedEntry(Turtle.class, "turtle_tempt", "1.21", null), + new DeprecatedEntry(Vex.class, "vex_copy_target_of_owner", "1.21", null), + new DeprecatedEntry(WanderingTrader.class, "villagertrader_wander_to_position", "1.21", null), + new DeprecatedEntry(RangedEntity.class, "arrow_attack", "1.21", null), + new DeprecatedEntry(Creature.class, "avoid_target", "1.21", null), + new DeprecatedEntry(Monster.class, "bow_shoot", "1.21", null), + new DeprecatedEntry(Creature.class, "breath", "1.21", null), + new DeprecatedEntry(Cat.class, "cat_sit_on_bed", "1.21", null), + new DeprecatedEntry(Monster.class, "crossbow_attack", "1.21", null), + new DeprecatedEntry(Mob.class, "door_open", "1.21", null), + new DeprecatedEntry(Mob.class, "eat_tile", "1.21", null), + new DeprecatedEntry(Fish.class, "fish_school", "1.21", null), + new DeprecatedEntry(Mob.class, "follow_entity", "1.21", null), + new DeprecatedEntry(SkeletonHorse.class, "horse_trap", "1.21", null), + new DeprecatedEntry(Creature.class, "hurt_by_target", "1.21", null), + new DeprecatedEntry(Cat.class, "jump_on_block", "1.21", null), + new DeprecatedEntry(Mob.class, "leap_at_target", "1.21", null), + new DeprecatedEntry(Llama.class, "llama_follow", "1.21", null), + new DeprecatedEntry(Creature.class, "move_towards_target", "1.21", null), + new DeprecatedEntry(Mob.class, "nearest_attackable_target", "1.21", null), + new DeprecatedEntry(Raider.class, "nearest_attackable_target_witch", "1.21", null), + new DeprecatedEntry(Creature.class, "nearest_village", "1.21", null), + new DeprecatedEntry(Tameable.class, "owner_hurt_by_target", "1.21", null), + new DeprecatedEntry(Tameable.class, "owner_hurt_target", "1.21", null), + new DeprecatedEntry(Parrot.class, "perch", "1.21", null), + new DeprecatedEntry(Raider.class, "raid", "1.21", null), + new DeprecatedEntry(Creature.class, "random_fly", "1.21", null), + new DeprecatedEntry(Mob.class, "random_lookaround", "1.21", null), + new DeprecatedEntry(Creature.class, "random_stroll_land", "1.21", null), + new DeprecatedEntry(Creature.class, "random_swim", "1.21", null), + new DeprecatedEntry(Tameable.class, "random_target_non_tamed", "1.21", null), + new DeprecatedEntry(Tameable.class, "sit", "1.21", null), + new DeprecatedEntry(Creature.class, "stroll_village", "1.21", null), + new DeprecatedEntry(AbstractHorse.class, "tame", "1.21", null), + new DeprecatedEntry(Creature.class, "water", "1.21", null), + new DeprecatedEntry(Dolphin.class, "water_jump", "1.21", null), + new DeprecatedEntry(Creature.class, "stroll_village_golem", "1.21", null), + new DeprecatedEntry(Mob.class, "universal_anger_reset", "1.21", null) + // + }; + + public MobGoalGenerator(final String keysClassName, final String pkg) { + super(keysClassName, pkg); + } + + @Override + protected TypeSpec getTypeSpec() { + TypeName clazzType = TypeName.get(Class.class) + .annotated(Annotations.NOT_NULL); + TypeName keyType = TypeName.get(String.class) + .annotated(Annotations.NOT_NULL); + + MethodSpec.Builder createMethod = MethodSpec.methodBuilder("create") + .addModifiers(Modifier.PRIVATE, Modifier.STATIC) + .addParameter(ParameterSpec.builder(keyType, "key", Modifier.FINAL) + .build() + ) + .addParameter(ParameterSpec.builder(clazzType, "clazz", Modifier.FINAL) + .build() + ) + .addCode("return $T.of(clazz, $T.minecraft(key));", GoalKey.class, NamespacedKey.class) + .returns(ParameterizedTypeName.get(GoalKey.class).annotated(Annotations.NOT_NULL)); + + + TypeVariableName type = TypeVariableName.get("T", Mob.class); + TypeSpec.Builder typeBuilder = TypeSpec.interfaceBuilder(this.className) + .addSuperinterface(ParameterizedTypeName.get(ClassName.get(com.destroystokyo.paper.entity.ai.Goal.class), type)) + .addModifiers(Modifier.PUBLIC) + .addTypeVariable(type) + .addAnnotations(Annotations.CLASS_HEADER) + .addJavadoc(CLASS_HEADER); + + + List> classes; + try (ScanResult scanResult = new ClassGraph().enableAllInfo().whitelistPackages("net.minecraft").scan()) { + classes = scanResult.getSubclasses(net.minecraft.world.entity.ai.goal.Goal.class.getName()).loadClasses(); + } + + List vanillaNames = classes.stream() + .filter(clazz -> !java.lang.reflect.Modifier.isAbstract(clazz.getModifiers())) + .filter(clazz -> !WrappedGoal.class.equals(clazz)) // TODO - properly fix + .map(goalClass -> new VanillaGoalKey(goalClass, MobGoalNames.getKey(goalClass.getName(), (Class) goalClass))) + .filter((key) -> !MobGoalNames.isIgnored(key.key().getNamespacedKey().getKey())) + .sorted(Comparator.comparing(o -> o.key().getEntityClass().getSimpleName()) + .thenComparing(vanillaGoalKey -> vanillaGoalKey.key.getNamespacedKey().getKey()) + ) + .toList(); + + + for (final VanillaGoalKey vanillaGoalKey : vanillaNames) { + GoalKey value = vanillaGoalKey.key(); + TypeName typedKey = ParameterizedTypeName.get(GoalKey.class, value.getEntityClass()); + NamespacedKey key = value.getNamespacedKey(); + + String keyPath = key.getKey(); + String fieldName = Formatting.formatKeyAsField(key); + FieldSpec.Builder fieldBuilder = FieldSpec.builder(typedKey, fieldName, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) + .initializer("$N($S, $T.class)", createMethod.build(), keyPath, value.getEntityClass()); + typeBuilder.addField(fieldBuilder.build()); + } + + for (final DeprecatedEntry value : DEPRECATED_ENTRIES) { + TypeName typedKey = ParameterizedTypeName.get(GoalKey.class, value.entity); + NamespacedKey key = NamespacedKey.minecraft(value.entryName); + + String keyPath = key.getKey(); + String fieldName = Formatting.formatKeyAsField(key); + FieldSpec.Builder fieldBuilder = FieldSpec.builder(typedKey, fieldName, Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL) + .addAnnotation(Annotations.deprecatedVersioned(value.removedVersion, value.removalVersion != null)) + .initializer("$N($S, $T.class)", createMethod.build(), keyPath, value.entity); + + if (value.removedVersion != null) { + fieldBuilder.addJavadoc("Removed in $L", value.removedVersion); + } + if (value.removalVersion != null) { + fieldBuilder.addAnnotation(Annotations.scheduledRemoval(value.removalVersion)); + } + + typeBuilder.addField(fieldBuilder.build()); + } + + return typeBuilder.addMethod(createMethod.build()).build(); + } + + @Override + protected JavaFile.Builder file(JavaFile.Builder builder) { + return builder + .skipJavaLangImports(true); + } + + record VanillaGoalKey(Class clazz, GoalKey key) { + } + + record DeprecatedEntry(Class entity, String entryName, @Nullable String removalVersion, + @Nullable String removedVersion) { + + } + +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java new file mode 100644 index 000000000000..cc7a41616630 --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java @@ -0,0 +1,329 @@ +package io.papermc.generator.types.goal; + +import com.destroystokyo.paper.entity.RangedEntity; +import com.destroystokyo.paper.entity.ai.GoalKey; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; +import net.minecraft.world.entity.FlyingMob; +import net.minecraft.world.entity.PathfinderMob; +import net.minecraft.world.entity.TamableAnimal; +import net.minecraft.world.entity.ai.goal.Goal; +import net.minecraft.world.entity.ambient.AmbientCreature; +import net.minecraft.world.entity.animal.AbstractFish; +import net.minecraft.world.entity.animal.AbstractGolem; +import net.minecraft.world.entity.animal.AbstractSchoolingFish; +import net.minecraft.world.entity.animal.Animal; +import net.minecraft.world.entity.animal.Pufferfish; +import net.minecraft.world.entity.animal.ShoulderRidingEntity; +import net.minecraft.world.entity.animal.SnowGolem; +import net.minecraft.world.entity.animal.WaterAnimal; +import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; +import net.minecraft.world.entity.boss.wither.WitherBoss; +import net.minecraft.world.entity.monster.AbstractIllager; +import net.minecraft.world.entity.monster.EnderMan; +import net.minecraft.world.entity.monster.PatrollingMonster; +import net.minecraft.world.entity.monster.RangedAttackMob; +import net.minecraft.world.entity.monster.SpellcasterIllager; +import net.minecraft.world.entity.monster.ZombifiedPiglin; +import net.minecraft.world.entity.monster.piglin.AbstractPiglin; +import org.bukkit.NamespacedKey; +import org.bukkit.entity.AbstractHorse; +import org.bukkit.entity.AbstractSkeleton; +import org.bukkit.entity.AbstractVillager; +import org.bukkit.entity.Ageable; +import org.bukkit.entity.Ambient; +import org.bukkit.entity.Animals; +import org.bukkit.entity.Bat; +import org.bukkit.entity.Bee; +import org.bukkit.entity.Blaze; +import org.bukkit.entity.Cat; +import org.bukkit.entity.CaveSpider; +import org.bukkit.entity.ChestedHorse; +import org.bukkit.entity.Chicken; +import org.bukkit.entity.Cod; +import org.bukkit.entity.Cow; +import org.bukkit.entity.Creature; +import org.bukkit.entity.Creeper; +import org.bukkit.entity.Dolphin; +import org.bukkit.entity.Donkey; +import org.bukkit.entity.Drowned; +import org.bukkit.entity.ElderGuardian; +import org.bukkit.entity.EnderDragon; +import org.bukkit.entity.Enderman; +import org.bukkit.entity.Endermite; +import org.bukkit.entity.Evoker; +import org.bukkit.entity.Fish; +import org.bukkit.entity.Flying; +import org.bukkit.entity.Fox; +import org.bukkit.entity.Ghast; +import org.bukkit.entity.Giant; +import org.bukkit.entity.Golem; +import org.bukkit.entity.Guardian; +import org.bukkit.entity.Hoglin; +import org.bukkit.entity.Horse; +import org.bukkit.entity.Husk; +import org.bukkit.entity.Illager; +import org.bukkit.entity.Illusioner; +import org.bukkit.entity.IronGolem; +import org.bukkit.entity.Llama; +import org.bukkit.entity.MagmaCube; +import org.bukkit.entity.Mob; +import org.bukkit.entity.Monster; +import org.bukkit.entity.Mule; +import org.bukkit.entity.MushroomCow; +import org.bukkit.entity.Ocelot; +import org.bukkit.entity.Panda; +import org.bukkit.entity.Parrot; +import org.bukkit.entity.Phantom; +import org.bukkit.entity.Pig; +import org.bukkit.entity.PigZombie; +import org.bukkit.entity.Piglin; +import org.bukkit.entity.PiglinAbstract; +import org.bukkit.entity.PiglinBrute; +import org.bukkit.entity.Pillager; +import org.bukkit.entity.PolarBear; +import org.bukkit.entity.PufferFish; +import org.bukkit.entity.Rabbit; +import org.bukkit.entity.Raider; +import org.bukkit.entity.Ravager; +import org.bukkit.entity.Salmon; +import org.bukkit.entity.Sheep; +import org.bukkit.entity.Shulker; +import org.bukkit.entity.Silverfish; +import org.bukkit.entity.Skeleton; +import org.bukkit.entity.SkeletonHorse; +import org.bukkit.entity.Slime; +import org.bukkit.entity.Snowman; +import org.bukkit.entity.Spellcaster; +import org.bukkit.entity.Spider; +import org.bukkit.entity.Squid; +import org.bukkit.entity.Stray; +import org.bukkit.entity.Strider; +import org.bukkit.entity.Tameable; +import org.bukkit.entity.TraderLlama; +import org.bukkit.entity.TropicalFish; +import org.bukkit.entity.Turtle; +import org.bukkit.entity.Vex; +import org.bukkit.entity.Villager; +import org.bukkit.entity.Vindicator; +import org.bukkit.entity.WanderingTrader; +import org.bukkit.entity.WaterMob; +import org.bukkit.entity.Witch; +import org.bukkit.entity.Wither; +import org.bukkit.entity.WitherSkeleton; +import org.bukkit.entity.Wolf; +import org.bukkit.entity.Zoglin; +import org.bukkit.entity.Zombie; +import org.bukkit.entity.ZombieHorse; +import org.bukkit.entity.ZombieVillager; + +import java.lang.reflect.Constructor; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public class MobGoalNames { + + private static final Map, Class> entityClassCache = new HashMap<>(); + private static final Map, Class> bukkitMap = new HashMap<>(); + + + static { + // + bukkitMap.put(net.minecraft.world.entity.Mob.class, Mob.class); + bukkitMap.put(net.minecraft.world.entity.AgeableMob.class, Ageable.class); + bukkitMap.put(AmbientCreature.class, Ambient.class); + bukkitMap.put(Animal.class, Animals.class); + bukkitMap.put(net.minecraft.world.entity.ambient.Bat.class, Bat.class); + bukkitMap.put(net.minecraft.world.entity.animal.Bee.class, Bee.class); + bukkitMap.put(net.minecraft.world.entity.monster.Blaze.class, Blaze.class); + bukkitMap.put(net.minecraft.world.entity.animal.Cat.class, Cat.class); + bukkitMap.put(net.minecraft.world.entity.monster.CaveSpider.class, CaveSpider.class); + bukkitMap.put(net.minecraft.world.entity.animal.Chicken.class, Chicken.class); + bukkitMap.put(net.minecraft.world.entity.animal.Cod.class, Cod.class); + bukkitMap.put(net.minecraft.world.entity.animal.Cow.class, Cow.class); + bukkitMap.put(PathfinderMob.class, Creature.class); + bukkitMap.put(net.minecraft.world.entity.monster.Creeper.class, Creeper.class); + bukkitMap.put(net.minecraft.world.entity.animal.Dolphin.class, Dolphin.class); + bukkitMap.put(net.minecraft.world.entity.monster.Drowned.class, Drowned.class); + bukkitMap.put(net.minecraft.world.entity.boss.enderdragon.EnderDragon.class, EnderDragon.class); + bukkitMap.put(EnderMan.class, Enderman.class); + bukkitMap.put(net.minecraft.world.entity.monster.Endermite.class, Endermite.class); + bukkitMap.put(net.minecraft.world.entity.monster.Evoker.class, Evoker.class); + bukkitMap.put(AbstractFish.class, Fish.class); + bukkitMap.put(AbstractSchoolingFish.class, io.papermc.paper.entity.SchoolableFish.class); + bukkitMap.put(FlyingMob.class, Flying.class); + bukkitMap.put(net.minecraft.world.entity.animal.Fox.class, Fox.class); + bukkitMap.put(net.minecraft.world.entity.monster.Ghast.class, Ghast.class); + bukkitMap.put(net.minecraft.world.entity.monster.Giant.class, Giant.class); + bukkitMap.put(AbstractGolem.class, Golem.class); + bukkitMap.put(net.minecraft.world.entity.monster.Guardian.class, Guardian.class); + bukkitMap.put(net.minecraft.world.entity.monster.ElderGuardian.class, ElderGuardian.class); + bukkitMap.put(net.minecraft.world.entity.animal.horse.Horse.class, Horse.class); + bukkitMap.put(net.minecraft.world.entity.animal.horse.AbstractHorse.class, AbstractHorse.class); + bukkitMap.put(AbstractChestedHorse.class, ChestedHorse.class); + bukkitMap.put(net.minecraft.world.entity.animal.horse.Donkey.class, Donkey.class); + bukkitMap.put(net.minecraft.world.entity.animal.horse.Mule.class, Mule.class); + bukkitMap.put(net.minecraft.world.entity.animal.horse.SkeletonHorse.class, SkeletonHorse.class); + bukkitMap.put(net.minecraft.world.entity.animal.horse.ZombieHorse.class, ZombieHorse.class); + bukkitMap.put(net.minecraft.world.entity.animal.camel.Camel.class, org.bukkit.entity.Camel.class); + bukkitMap.put(AbstractIllager.class, Illager.class); + bukkitMap.put(net.minecraft.world.entity.monster.Illusioner.class, Illusioner.class); + bukkitMap.put(SpellcasterIllager.class, Spellcaster.class); + bukkitMap.put(net.minecraft.world.entity.animal.IronGolem.class, IronGolem.class); + bukkitMap.put(net.minecraft.world.entity.animal.horse.Llama.class, Llama.class); + bukkitMap.put(net.minecraft.world.entity.animal.horse.TraderLlama.class, TraderLlama.class); + bukkitMap.put(net.minecraft.world.entity.monster.MagmaCube.class, MagmaCube.class); + bukkitMap.put(net.minecraft.world.entity.monster.Monster.class, Monster.class); + bukkitMap.put(PatrollingMonster.class, Raider.class); // close enough + bukkitMap.put(net.minecraft.world.entity.animal.MushroomCow.class, MushroomCow.class); + bukkitMap.put(net.minecraft.world.entity.animal.Ocelot.class, Ocelot.class); + bukkitMap.put(net.minecraft.world.entity.animal.Panda.class, Panda.class); + bukkitMap.put(net.minecraft.world.entity.animal.Parrot.class, Parrot.class); + bukkitMap.put(ShoulderRidingEntity.class, Parrot.class); // close enough + bukkitMap.put(net.minecraft.world.entity.monster.Phantom.class, Phantom.class); + bukkitMap.put(net.minecraft.world.entity.animal.Pig.class, Pig.class); + bukkitMap.put(ZombifiedPiglin.class, PigZombie.class); + bukkitMap.put(net.minecraft.world.entity.monster.Pillager.class, Pillager.class); + bukkitMap.put(net.minecraft.world.entity.animal.PolarBear.class, PolarBear.class); + bukkitMap.put(Pufferfish.class, PufferFish.class); + bukkitMap.put(net.minecraft.world.entity.animal.Rabbit.class, Rabbit.class); + bukkitMap.put(net.minecraft.world.entity.raid.Raider.class, Raider.class); + bukkitMap.put(net.minecraft.world.entity.monster.Ravager.class, Ravager.class); + bukkitMap.put(net.minecraft.world.entity.animal.Salmon.class, Salmon.class); + bukkitMap.put(net.minecraft.world.entity.animal.Sheep.class, Sheep.class); + bukkitMap.put(net.minecraft.world.entity.monster.Shulker.class, Shulker.class); + bukkitMap.put(net.minecraft.world.entity.monster.Silverfish.class, Silverfish.class); + bukkitMap.put(net.minecraft.world.entity.monster.Skeleton.class, Skeleton.class); + bukkitMap.put(net.minecraft.world.entity.monster.AbstractSkeleton.class, AbstractSkeleton.class); + bukkitMap.put(net.minecraft.world.entity.monster.Stray.class, Stray.class); + bukkitMap.put(net.minecraft.world.entity.monster.WitherSkeleton.class, WitherSkeleton.class); + bukkitMap.put(net.minecraft.world.entity.monster.Slime.class, Slime.class); + bukkitMap.put(SnowGolem.class, Snowman.class); + bukkitMap.put(net.minecraft.world.entity.monster.Spider.class, Spider.class); + bukkitMap.put(net.minecraft.world.entity.animal.Squid.class, Squid.class); + bukkitMap.put(TamableAnimal.class, Tameable.class); + bukkitMap.put(net.minecraft.world.entity.animal.TropicalFish.class, TropicalFish.class); + bukkitMap.put(net.minecraft.world.entity.animal.Turtle.class, Turtle.class); + bukkitMap.put(net.minecraft.world.entity.monster.Vex.class, Vex.class); + bukkitMap.put(net.minecraft.world.entity.npc.Villager.class, Villager.class); + bukkitMap.put(net.minecraft.world.entity.npc.AbstractVillager.class, AbstractVillager.class); + bukkitMap.put(net.minecraft.world.entity.npc.WanderingTrader.class, WanderingTrader.class); + bukkitMap.put(net.minecraft.world.entity.monster.Vindicator.class, Vindicator.class); + bukkitMap.put(WaterAnimal.class, WaterMob.class); + bukkitMap.put(net.minecraft.world.entity.monster.Witch.class, Witch.class); + bukkitMap.put(WitherBoss.class, Wither.class); + bukkitMap.put(net.minecraft.world.entity.animal.Wolf.class, Wolf.class); + bukkitMap.put(net.minecraft.world.entity.monster.Zombie.class, Zombie.class); + bukkitMap.put(net.minecraft.world.entity.monster.Husk.class, Husk.class); + bukkitMap.put(net.minecraft.world.entity.monster.ZombieVillager.class, ZombieVillager.class); + bukkitMap.put(net.minecraft.world.entity.monster.hoglin.Hoglin.class, Hoglin.class); + bukkitMap.put(net.minecraft.world.entity.monster.piglin.Piglin.class, Piglin.class); + bukkitMap.put(AbstractPiglin.class, PiglinAbstract.class); + bukkitMap.put(net.minecraft.world.entity.monster.piglin.PiglinBrute.class, PiglinBrute.class); + bukkitMap.put(net.minecraft.world.entity.monster.Strider.class, Strider.class); + bukkitMap.put(net.minecraft.world.entity.monster.Zoglin.class, Zoglin.class); + bukkitMap.put(net.minecraft.world.entity.GlowSquid.class, org.bukkit.entity.GlowSquid.class); + bukkitMap.put(net.minecraft.world.entity.animal.axolotl.Axolotl.class, org.bukkit.entity.Axolotl.class); + bukkitMap.put(net.minecraft.world.entity.animal.goat.Goat.class, org.bukkit.entity.Goat.class); + bukkitMap.put(net.minecraft.world.entity.animal.frog.Frog.class, org.bukkit.entity.Frog.class); + bukkitMap.put(net.minecraft.world.entity.animal.frog.Tadpole.class, org.bukkit.entity.Tadpole.class); + bukkitMap.put(net.minecraft.world.entity.monster.warden.Warden.class, org.bukkit.entity.Warden.class); + bukkitMap.put(net.minecraft.world.entity.animal.allay.Allay.class, org.bukkit.entity.Allay.class); + bukkitMap.put(net.minecraft.world.entity.animal.sniffer.Sniffer.class, org.bukkit.entity.Sniffer.class); + // + } + + private static final BiMap deobfuscationMap = HashBiMap.create(); + static final Set ignored = new HashSet<>(); + + static { + deobfuscationMap.put("abstract_skeleton_1", "abstract_skeleton_melee"); + + ignored.add("goal_selector_1"); + ignored.add("goal_selector_2"); + ignored.add("selector_1"); + ignored.add("selector_2"); + ignored.add("wrapped"); + } + + public static String getUsableName(String name) { + final String original = name; + name = name.substring(name.lastIndexOf(".") + 1); + boolean flag = false; + // inner classes + if (name.contains("$")) { + String cut = name.substring(name.indexOf("$") + 1); + if (cut.length() <= 2) { + name = name.replace("Entity", ""); + name = name.replace("$", "_"); + flag = true; + } else { + // mapped, wooo + name = cut; + } + } + name = name.replace("PathfinderGoal", ""); + name = name.replace("TargetGoal", ""); + name = name.replace("Goal", ""); + StringBuilder sb = new StringBuilder(); + for (char c : name.toCharArray()) { + if (c >= 'A' && c <= 'Z') { + sb.append("_"); + sb.append(Character.toLowerCase(c)); + } else { + sb.append(c); + } + } + name = sb.toString(); + name = name.replaceFirst("_", ""); + + if (flag && !deobfuscationMap.containsKey(name.toLowerCase()) && !ignored.contains(name)) { + System.out.println("need to map " + original + " (" + name.toLowerCase() + ")"); + } + + // did we rename this key? + return deobfuscationMap.getOrDefault(name, name); + } + + public static boolean isIgnored(String name) { + return ignored.contains(name); + } + + + public static GoalKey getKey(String clazzName, Class goalClass) { + String name = getUsableName(clazzName); + if (MobGoalNames.isIgnored(name)) { + //noinspection unchecked + return (GoalKey) GoalKey.of(Mob.class, NamespacedKey.minecraft(name)); + } + return GoalKey.of(getEntity(goalClass), NamespacedKey.minecraft(name)); + } + + public static Class getEntity(Class goalClass) { + //noinspection unchecked + return (Class) entityClassCache.computeIfAbsent(goalClass, key -> { + for (Constructor ctor : key.getDeclaredConstructors()) { + for (int i = 0; i < ctor.getParameterCount(); i++) { + Class param = ctor.getParameterTypes()[i]; + if (net.minecraft.world.entity.Mob.class.isAssignableFrom(param)) { + //noinspection unchecked + return toBukkitClass((Class) param); + } else if (RangedAttackMob.class.isAssignableFrom(param)) { + return RangedEntity.class; + } + } + } + throw new RuntimeException("Can't figure out applicable entity for mob goal " + goalClass); // maybe just return EntityInsentient? + }); + } + + public static Class toBukkitClass(Class nmsClass) { + Class bukkitClass = bukkitMap.get(nmsClass); + if (bukkitClass == null) { + throw new RuntimeException("Can't figure out applicable bukkit entity for nms entity " + nmsClass); // maybe just return Mob? + } + return bukkitClass; + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java new file mode 100644 index 000000000000..0d897ecfb480 --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java @@ -0,0 +1,59 @@ +package io.papermc.generator.utils; + +import com.squareup.javapoet.AnnotationSpec; +import java.util.List; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.SharedConstants; +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public final class Annotations { + + public static List experimentalAnnotations(final String version) { + return List.of( + AnnotationSpec.builder(ApiStatus.Experimental.class).build(), + AnnotationSpec.builder(MinecraftExperimental.class) + .addMember("value", "$S", version) + .build() + ); + } + + public static AnnotationSpec deprecatedVersioned(final @Nullable String version, boolean forRemoval) { + AnnotationSpec.Builder annotationSpec = AnnotationSpec.builder(Deprecated.class); + if (forRemoval) { + annotationSpec.addMember("forRemoval", "$L", forRemoval); + } + if (version != null) { + annotationSpec.addMember("since", "$S", version); + } + + return annotationSpec.build(); + } + + public static AnnotationSpec scheduledRemoval(final @Nullable String version) { + return AnnotationSpec.builder(ApiStatus.ScheduledForRemoval.class) + .addMember("inVersion", "$S", version) + .build(); + } + + @ApiStatus.Experimental + public static final AnnotationSpec EXPERIMENTAL_API_ANNOTATION = AnnotationSpec.builder(ApiStatus.Experimental.class).build(); + public static final AnnotationSpec NOT_NULL = AnnotationSpec.builder(NotNull.class).build(); + private static final AnnotationSpec SUPPRESS_WARNINGS = AnnotationSpec.builder(SuppressWarnings.class) + .addMember("value", "$S", "unused") + .addMember("value", "$S", "SpellCheckingInspection") + .build(); + private static final AnnotationSpec GENERATED_FROM = AnnotationSpec.builder(GeneratedFrom.class) + .addMember("value", "$S", SharedConstants.getCurrentVersion().getName()) + .build(); + public static final Iterable CLASS_HEADER = List.of( + SUPPRESS_WARNINGS, + GENERATED_FROM + ); + + private Annotations() { + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java new file mode 100644 index 000000000000..f4b07411a441 --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java @@ -0,0 +1,15 @@ +package io.papermc.generator.utils; + +import net.kyori.adventure.key.Key; + +import java.util.Locale; + +public final class Formatting { + + public static String formatKeyAsField(Key key) { + return key.value().toUpperCase(Locale.ENGLISH).replaceAll("[.-/]", "_"); // replace invalid field name chars + } + + private Formatting() { + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/Javadocs.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/Javadocs.java new file mode 100644 index 000000000000..33536c8311d6 --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/utils/Javadocs.java @@ -0,0 +1,27 @@ +package io.papermc.generator.utils; + +public final class Javadocs { + + public static String getVersionDependentClassHeader(String headerIdentifier) { + return """ + Vanilla keys for %s. + + @apiNote The fields provided here are a direct representation of + what is available from the vanilla game source. They may be + changed (including removals) on any Minecraft version + bump, so cross-version compatibility is not provided on the + same level as it is on most of the other API. + """.formatted(headerIdentifier); + } + + public static String getVersionDependentField(String headerIdentifier) { + return """ + %s + + @apiNote This field is version-dependant and may be removed in future Minecraft versions + """.formatted(headerIdentifier); + } + + private Javadocs() { + } +} diff --git a/patches/api/0196-Add-Mob-Goal-API.patch b/patches/api/0196-Add-Mob-Goal-API.patch index 83b5c476fa46..ce84f29868ed 100644 --- a/patches/api/0196-Add-Mob-Goal-API.patch +++ b/patches/api/0196-Add-Mob-Goal-API.patch @@ -225,317 +225,8 @@ index 0000000000000000000000000000000000000000..e21f7574763dd4f13794f91bbef192ef + @NotNull + Collection> getRunningGoalsWithout(@NotNull T mob, @NotNull GoalType type); +} -diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -new file mode 100644 -index 0000000000000000000000000000000000000000..39fca3674f32c7bbb2797bf6c3e222707cd7495a ---- /dev/null -+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -@@ -0,0 +1,303 @@ -+package com.destroystokyo.paper.entity.ai; -+ -+import com.destroystokyo.paper.entity.RangedEntity; -+ -+import org.bukkit.NamespacedKey; -+import org.bukkit.entity.*; -+import org.jetbrains.annotations.ApiStatus; -+ -+/** -+ * Represents a vanilla goal. Plugins should never implement this.
-+ * Generated by VanillaPathfinderTest in paper-server -+ */ -+public interface VanillaGoal extends Goal { -+ -+ GoalKey AVOID_ENTITY = GoalKey.of(Creature.class, NamespacedKey.minecraft("avoid_entity")); -+ GoalKey BEG = GoalKey.of(Wolf.class, NamespacedKey.minecraft("beg")); -+ GoalKey BREAK_DOOR = GoalKey.of(Mob.class, NamespacedKey.minecraft("break_door")); -+ GoalKey BREATH_AIR = GoalKey.of(Creature.class, NamespacedKey.minecraft("breath_air")); -+ GoalKey BREED = GoalKey.of(Animals.class, NamespacedKey.minecraft("breed")); -+ GoalKey CAT_LIE_ON_BED = GoalKey.of(Cat.class, NamespacedKey.minecraft("cat_lie_on_bed")); -+ GoalKey CAT_SIT_ON_BLOCK = GoalKey.of(Cat.class, NamespacedKey.minecraft("cat_sit_on_block")); -+ GoalKey DOLPHIN_JUMP = GoalKey.of(Dolphin.class, NamespacedKey.minecraft("dolphin_jump")); -+ GoalKey EAT_BLOCK = GoalKey.of(Mob.class, NamespacedKey.minecraft("eat_block")); -+ GoalKey FLEE_SUN = GoalKey.of(Creature.class, NamespacedKey.minecraft("flee_sun")); -+ GoalKey FLOAT = GoalKey.of(Mob.class, NamespacedKey.minecraft("float")); -+ GoalKey FOLLOW_BOAT = GoalKey.of(Creature.class, NamespacedKey.minecraft("follow_boat")); -+ GoalKey FOLLOW_FLOCK_LEADER = GoalKey.of(Fish.class, NamespacedKey.minecraft("follow_flock_leader")); -+ GoalKey FOLLOW_MOB = GoalKey.of(Mob.class, NamespacedKey.minecraft("follow_mob")); -+ GoalKey FOLLOW_OWNER = GoalKey.of(Tameable.class, NamespacedKey.minecraft("follow_owner")); -+ GoalKey FOLLOW_PARENT = GoalKey.of(Animals.class, NamespacedKey.minecraft("follow_parent")); -+ GoalKey GOLEM_RANDOM_STROLL_IN_VILLAGE = GoalKey.of(Creature.class, NamespacedKey.minecraft("golem_random_stroll_in_village")); -+ GoalKey INTERACT = GoalKey.of(Mob.class, NamespacedKey.minecraft("interact")); -+ GoalKey LAND_ON_OWNERS_SHOULDER = GoalKey.of(Parrot.class, NamespacedKey.minecraft("land_on_owners_shoulder")); -+ GoalKey LEAP_AT = GoalKey.of(Mob.class, NamespacedKey.minecraft("leap_at")); -+ GoalKey LLAMA_FOLLOW_CARAVAN = GoalKey.of(Llama.class, NamespacedKey.minecraft("llama_follow_caravan")); -+ GoalKey LOOK_AT_PLAYER = GoalKey.of(Mob.class, NamespacedKey.minecraft("look_at_player")); -+ GoalKey LOOK_AT_TRADING_PLAYER = GoalKey.of(AbstractVillager.class, NamespacedKey.minecraft("look_at_trading_player")); -+ GoalKey MELEE_ATTACK = GoalKey.of(Creature.class, NamespacedKey.minecraft("melee_attack")); -+ GoalKey MOVE_BACK_TO_VILLAGE = GoalKey.of(Creature.class, NamespacedKey.minecraft("move_back_to_village")); -+ GoalKey MOVE_THROUGH_VILLAGE = GoalKey.of(Creature.class, NamespacedKey.minecraft("move_through_village")); -+ GoalKey MOVE_TOWARDS_RESTRICTION = GoalKey.of(Creature.class, NamespacedKey.minecraft("move_towards_restriction")); -+ GoalKey MOVE_TOWARDS = GoalKey.of(Creature.class, NamespacedKey.minecraft("move_towards")); -+ GoalKey OCELOT_ATTACK = GoalKey.of(Mob.class, NamespacedKey.minecraft("ocelot_attack")); -+ GoalKey OFFER_FLOWER = GoalKey.of(IronGolem.class, NamespacedKey.minecraft("offer_flower")); -+ GoalKey OPEN_DOOR = GoalKey.of(Mob.class, NamespacedKey.minecraft("open_door")); -+ GoalKey PANIC = GoalKey.of(Creature.class, NamespacedKey.minecraft("panic")); -+ GoalKey PATHFIND_TO_RAID = GoalKey.of(Raider.class, NamespacedKey.minecraft("pathfind_to_raid")); -+ GoalKey RANDOM_LOOK_AROUND = GoalKey.of(Mob.class, NamespacedKey.minecraft("random_look_around")); -+ GoalKey RANDOM_STAND = GoalKey.of(AbstractHorse.class, NamespacedKey.minecraft("random_stand")); -+ GoalKey RANDOM_STROLL = GoalKey.of(Creature.class, NamespacedKey.minecraft("random_stroll")); -+ GoalKey RANDOM_SWIMMING = GoalKey.of(Creature.class, NamespacedKey.minecraft("random_swimming")); -+ GoalKey RANGED_ATTACK = GoalKey.of(RangedEntity.class, NamespacedKey.minecraft("ranged_attack")); -+ GoalKey RANGED_BOW_ATTACK = GoalKey.of(Monster.class, NamespacedKey.minecraft("ranged_bow_attack")); -+ GoalKey RANGED_CROSSBOW_ATTACK = GoalKey.of(Monster.class, NamespacedKey.minecraft("ranged_crossbow_attack")); -+ GoalKey REMOVE_BLOCK = GoalKey.of(Creature.class, NamespacedKey.minecraft("remove_block")); -+ GoalKey RESTRICT_SUN = GoalKey.of(Creature.class, NamespacedKey.minecraft("restrict_sun")); -+ GoalKey RUN_AROUND_LIKE_CRAZY = GoalKey.of(AbstractHorse.class, NamespacedKey.minecraft("run_around_like_crazy")); -+ GoalKey SIT_WHEN_ORDERED_TO = GoalKey.of(Tameable.class, NamespacedKey.minecraft("sit_when_ordered_to")); -+ GoalKey STROLL_THROUGH_VILLAGE = GoalKey.of(Creature.class, NamespacedKey.minecraft("stroll_through_village")); -+ GoalKey SWELL = GoalKey.of(Creeper.class, NamespacedKey.minecraft("swell")); -+ GoalKey TEMPT = GoalKey.of(Creature.class, NamespacedKey.minecraft("tempt")); -+ GoalKey TRADE_WITH_PLAYER = GoalKey.of(AbstractVillager.class, NamespacedKey.minecraft("trade_with_player")); -+ GoalKey TRY_FIND_WATER = GoalKey.of(Creature.class, NamespacedKey.minecraft("try_find_water")); -+ GoalKey USE_ITEM = GoalKey.of(Mob.class, NamespacedKey.minecraft("use_item")); -+ GoalKey WATER_AVOIDING_RANDOM_FLYING = GoalKey.of(Creature.class, NamespacedKey.minecraft("water_avoiding_random_flying")); -+ GoalKey WATER_AVOIDING_RANDOM_STROLL = GoalKey.of(Creature.class, NamespacedKey.minecraft("water_avoiding_random_stroll")); -+ GoalKey ZOMBIE_ATTACK = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack")); -+ GoalKey DEFEND_VILLAGE = GoalKey.of(IronGolem.class, NamespacedKey.minecraft("defend_village")); -+ GoalKey HURT_BY = GoalKey.of(Creature.class, NamespacedKey.minecraft("hurt_by")); -+ GoalKey NEAREST_ATTACKABLE = GoalKey.of(Mob.class, NamespacedKey.minecraft("nearest_attackable")); -+ GoalKey NEAREST_ATTACKABLE_WITCH = GoalKey.of(Raider.class, NamespacedKey.minecraft("nearest_attackable_witch")); -+ GoalKey NEAREST_HEALABLE_RAIDER = GoalKey.of(Raider.class, NamespacedKey.minecraft("nearest_healable_raider")); -+ GoalKey NON_TAME_RANDOM = GoalKey.of(Tameable.class, NamespacedKey.minecraft("non_tame_random")); -+ GoalKey OWNER_HURT_BY = GoalKey.of(Tameable.class, NamespacedKey.minecraft("owner_hurt_by")); -+ GoalKey OWNER_HURT = GoalKey.of(Tameable.class, NamespacedKey.minecraft("owner_hurt")); -+ GoalKey RESET_UNIVERSAL_ANGER = GoalKey.of(Mob.class, NamespacedKey.minecraft("reset_universal_anger")); -+ GoalKey FISH_SWIM = GoalKey.of(Fish.class, NamespacedKey.minecraft("fish_swim")); -+ GoalKey BEE_ATTACK = GoalKey.of(Bee.class, NamespacedKey.minecraft("bee_attack")); -+ GoalKey BEE_BECOME_ANGRY = GoalKey.of(Bee.class, NamespacedKey.minecraft("bee_become_angry")); -+ GoalKey BEE_ENTER_HIVE = GoalKey.of(Bee.class, NamespacedKey.minecraft("bee_enter_hive")); -+ GoalKey BEE_GO_TO_HIVE = GoalKey.of(Bee.class, NamespacedKey.minecraft("bee_go_to_hive")); -+ GoalKey BEE_GO_TO_KNOWN_FLOWER = GoalKey.of(Bee.class, NamespacedKey.minecraft("bee_go_to_known_flower")); -+ GoalKey BEE_GROW_CROP = GoalKey.of(Bee.class, NamespacedKey.minecraft("bee_grow_crop")); -+ GoalKey BEE_HURT_BY_OTHER = GoalKey.of(Bee.class, NamespacedKey.minecraft("bee_hurt_by_other")); -+ GoalKey BEE_LOCATE_HIVE = GoalKey.of(Bee.class, NamespacedKey.minecraft("bee_locate_hive")); -+ GoalKey BEE_POLLINATE = GoalKey.of(Bee.class, NamespacedKey.minecraft("bee_pollinate")); -+ GoalKey BEE_WANDER = GoalKey.of(Bee.class, NamespacedKey.minecraft("bee_wander")); -+ GoalKey CAT_AVOID_ENTITY = GoalKey.of(Cat.class, NamespacedKey.minecraft("cat_avoid_entity")); -+ GoalKey CAT_RELAX_ON_OWNER = GoalKey.of(Cat.class, NamespacedKey.minecraft("cat_relax_on_owner")); -+ GoalKey CAT_TEMPT = GoalKey.of(Cat.class, NamespacedKey.minecraft("cat_tempt")); -+ GoalKey DOLPHIN_SWIM_TO_TREASURE = GoalKey.of(Dolphin.class, NamespacedKey.minecraft("dolphin_swim_to_treasure")); -+ GoalKey DOLPHIN_SWIM_WITH_PLAYER = GoalKey.of(Dolphin.class, NamespacedKey.minecraft("dolphin_swim_with_player")); -+ GoalKey PLAY_WITH_ITEMS = GoalKey.of(Dolphin.class, NamespacedKey.minecraft("play_with_items")); -+ GoalKey DEFEND_TRUSTED = GoalKey.of(Fox.class, NamespacedKey.minecraft("defend_trusted")); -+ GoalKey FACEPLANT = GoalKey.of(Fox.class, NamespacedKey.minecraft("faceplant")); -+ GoalKey FOX_BREED = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_breed")); -+ GoalKey FOX_EAT_BERRIES = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_eat_berries")); -+ GoalKey FOX_FLOAT = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_float")); -+ GoalKey FOX_FOLLOW_PARENT = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_follow_parent")); -+ GoalKey FOX_LOOK_AT_PLAYER = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_look_at_player")); -+ GoalKey FOX_MELEE_ATTACK = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_melee_attack")); -+ GoalKey FOX_PANIC = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_panic")); -+ GoalKey FOX_POUNCE = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_pounce")); -+ GoalKey FOX_SEARCH_FOR_ITEMS = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_search_for_items")); -+ GoalKey FOX_STROLL_THROUGH_VILLAGE = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_stroll_through_village")); -+ GoalKey PERCH_AND_SEARCH = GoalKey.of(Fox.class, NamespacedKey.minecraft("perch_and_search")); -+ GoalKey SEEK_SHELTER = GoalKey.of(Fox.class, NamespacedKey.minecraft("seek_shelter")); -+ GoalKey SLEEP = GoalKey.of(Fox.class, NamespacedKey.minecraft("sleep")); -+ GoalKey STALK_PREY = GoalKey.of(Fox.class, NamespacedKey.minecraft("stalk_prey")); -+ GoalKey OCELOT_AVOID_ENTITY = GoalKey.of(Ocelot.class, NamespacedKey.minecraft("ocelot_avoid_entity")); -+ GoalKey OCELOT_TEMPT = GoalKey.of(Ocelot.class, NamespacedKey.minecraft("ocelot_tempt")); -+ GoalKey PANDA_ATTACK = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_attack")); -+ GoalKey PANDA_AVOID = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_avoid")); -+ GoalKey PANDA_BREED = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_breed")); -+ GoalKey PANDA_HURT_BY = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_hurt_by")); -+ GoalKey PANDA_LIE_ON_BACK = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_lie_on_back")); -+ GoalKey PANDA_LOOK_AT_PLAYER = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_look_at_player")); -+ GoalKey PANDA_PANIC = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_panic")); -+ GoalKey PANDA_ROLL = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_roll")); -+ GoalKey PANDA_SIT = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_sit")); -+ GoalKey PANDA_SNEEZE = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_sneeze")); -+ GoalKey POLAR_BEAR_ATTACK_PLAYERS = GoalKey.of(PolarBear.class, NamespacedKey.minecraft("polar_bear_attack_players")); -+ GoalKey POLAR_BEAR_HURT_BY = GoalKey.of(PolarBear.class, NamespacedKey.minecraft("polar_bear_hurt_by")); -+ GoalKey POLAR_BEAR_MELEE_ATTACK = GoalKey.of(PolarBear.class, NamespacedKey.minecraft("polar_bear_melee_attack")); -+ GoalKey POLAR_BEAR_PANIC = GoalKey.of(PolarBear.class, NamespacedKey.minecraft("polar_bear_panic")); -+ GoalKey PUFFERFISH_PUFF = GoalKey.of(PufferFish.class, NamespacedKey.minecraft("pufferfish_puff")); -+ GoalKey RABBIT_AVOID_ENTITY = GoalKey.of(Rabbit.class, NamespacedKey.minecraft("rabbit_avoid_entity")); -+ GoalKey RABBIT_PANIC = GoalKey.of(Rabbit.class, NamespacedKey.minecraft("rabbit_panic")); -+ GoalKey RAID_GARDEN = GoalKey.of(Rabbit.class, NamespacedKey.minecraft("raid_garden")); -+ GoalKey SQUID_FLEE = GoalKey.of(Squid.class, NamespacedKey.minecraft("squid_flee")); -+ GoalKey SQUID_RANDOM_MOVEMENT = GoalKey.of(Squid.class, NamespacedKey.minecraft("squid_random_movement")); -+ GoalKey TURTLE_BREED = GoalKey.of(Turtle.class, NamespacedKey.minecraft("turtle_breed")); -+ GoalKey TURTLE_GO_HOME = GoalKey.of(Turtle.class, NamespacedKey.minecraft("turtle_go_home")); -+ GoalKey TURTLE_GO_TO_WATER = GoalKey.of(Turtle.class, NamespacedKey.minecraft("turtle_go_to_water")); -+ GoalKey TURTLE_LAY_EGG = GoalKey.of(Turtle.class, NamespacedKey.minecraft("turtle_lay_egg")); -+ GoalKey TURTLE_PANIC = GoalKey.of(Turtle.class, NamespacedKey.minecraft("turtle_panic")); -+ GoalKey TURTLE_RANDOM_STROLL = GoalKey.of(Turtle.class, NamespacedKey.minecraft("turtle_random_stroll")); -+ GoalKey TURTLE_TRAVEL = GoalKey.of(Turtle.class, NamespacedKey.minecraft("turtle_travel")); -+ GoalKey WOLF_AVOID_ENTITY = GoalKey.of(Wolf.class, NamespacedKey.minecraft("wolf_avoid_entity")); -+ GoalKey LLAMA_ATTACK_WOLF = GoalKey.of(Llama.class, NamespacedKey.minecraft("llama_attack_wolf")); -+ GoalKey LLAMA_HURT_BY = GoalKey.of(Llama.class, NamespacedKey.minecraft("llama_hurt_by")); -+ GoalKey SKELETON_TRAP = GoalKey.of(SkeletonHorse.class, NamespacedKey.minecraft("skeleton_trap")); -+ GoalKey TRADER_LLAMA_DEFEND_WANDERING_TRADER = GoalKey.of(Llama.class, NamespacedKey.minecraft("trader_llama_defend_wandering_trader")); -+ GoalKey WITHER_DO_NOTHING = GoalKey.of(Wither.class, NamespacedKey.minecraft("wither_do_nothing")); -+ GoalKey RAIDER_OPEN_DOOR = GoalKey.of(Illager.class, NamespacedKey.minecraft("raider_open_door")); -+ GoalKey SKELETON_MELEE = GoalKey.of(AbstractSkeleton.class, NamespacedKey.minecraft("abstract_skeleton_melee")); -+ GoalKey BLAZE_ATTACK = GoalKey.of(Blaze.class, NamespacedKey.minecraft("blaze_attack")); -+ GoalKey DROWNED_ATTACK = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_attack")); -+ GoalKey DROWNED_GO_TO_BEACH = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_go_to_beach")); -+ GoalKey DROWNED_GO_TO_WATER = GoalKey.of(Creature.class, NamespacedKey.minecraft("drowned_go_to_water")); -+ GoalKey DROWNED_SWIM_UP = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_swim_up")); -+ GoalKey DROWNED_TRIDENT_ATTACK = GoalKey.of(RangedEntity.class, NamespacedKey.minecraft("drowned_trident_attack")); -+ GoalKey ENDERMAN_FREEZE_WHEN_LOOKED_AT = GoalKey.of(Enderman.class, NamespacedKey.minecraft("enderman_freeze_when_looked_at")); -+ GoalKey ENDERMAN_LEAVE_BLOCK = GoalKey.of(Enderman.class, NamespacedKey.minecraft("enderman_leave_block")); -+ GoalKey ENDERMAN_LOOK_FOR_PLAYER = GoalKey.of(Enderman.class, NamespacedKey.minecraft("enderman_look_for_player")); -+ GoalKey ENDERMAN_TAKE_BLOCK = GoalKey.of(Enderman.class, NamespacedKey.minecraft("enderman_take_block")); -+ GoalKey EVOKER_ATTACK_SPELL = GoalKey.of(Evoker.class, NamespacedKey.minecraft("evoker_attack_spell")); -+ GoalKey EVOKER_CASTING_SPELL = GoalKey.of(Evoker.class, NamespacedKey.minecraft("evoker_casting_spell")); -+ GoalKey EVOKER_SUMMON_SPELL = GoalKey.of(Evoker.class, NamespacedKey.minecraft("evoker_summon_spell")); -+ GoalKey EVOKER_WOLOLO_SPELL = GoalKey.of(Evoker.class, NamespacedKey.minecraft("evoker_wololo_spell")); -+ GoalKey GHAST_LOOK = GoalKey.of(Ghast.class, NamespacedKey.minecraft("ghast_look")); -+ GoalKey GHAST_SHOOT_FIREBALL = GoalKey.of(Ghast.class, NamespacedKey.minecraft("ghast_shoot_fireball")); -+ GoalKey RANDOM_FLOAT_AROUND = GoalKey.of(Ghast.class, NamespacedKey.minecraft("random_float_around")); -+ GoalKey GUARDIAN_ATTACK = GoalKey.of(Guardian.class, NamespacedKey.minecraft("guardian_attack")); -+ GoalKey ILLUSIONER_BLINDNESS_SPELL = GoalKey.of(Illusioner.class, NamespacedKey.minecraft("illusioner_blindness_spell")); -+ GoalKey ILLUSIONER_MIRROR_SPELL = GoalKey.of(Illusioner.class, NamespacedKey.minecraft("illusioner_mirror_spell")); -+ GoalKey LONG_DISTANCE_PATROL = GoalKey.of(Raider.class, NamespacedKey.minecraft("long_distance_patrol")); -+ GoalKey PHANTOM_ATTACK_PLAYER = GoalKey.of(Phantom.class, NamespacedKey.minecraft("phantom_attack_player")); -+ GoalKey PHANTOM_ATTACK_STRATEGY = GoalKey.of(Phantom.class, NamespacedKey.minecraft("phantom_attack_strategy")); -+ GoalKey PHANTOM_CIRCLE_AROUND_ANCHOR = GoalKey.of(Phantom.class, NamespacedKey.minecraft("phantom_circle_around_anchor")); -+ GoalKey PHANTOM_SWEEP_ATTACK = GoalKey.of(Phantom.class, NamespacedKey.minecraft("phantom_sweep_attack")); -+ GoalKey SHULKER_ATTACK = GoalKey.of(Shulker.class, NamespacedKey.minecraft("shulker_attack")); -+ GoalKey SHULKER_DEFENSE_ATTACK = GoalKey.of(Shulker.class, NamespacedKey.minecraft("shulker_defense_attack")); -+ GoalKey SHULKER_NEAREST_ATTACK = GoalKey.of(Shulker.class, NamespacedKey.minecraft("shulker_nearest_attack")); -+ GoalKey SHULKER_PEEK = GoalKey.of(Shulker.class, NamespacedKey.minecraft("shulker_peek")); -+ GoalKey SILVERFISH_MERGE_WITH_STONE = GoalKey.of(Silverfish.class, NamespacedKey.minecraft("silverfish_merge_with_stone")); -+ GoalKey SILVERFISH_WAKE_UP_FRIENDS = GoalKey.of(Silverfish.class, NamespacedKey.minecraft("silverfish_wake_up_friends")); -+ GoalKey SLIME_ATTACK = GoalKey.of(Slime.class, NamespacedKey.minecraft("slime_attack")); -+ GoalKey SLIME_FLOAT = GoalKey.of(Slime.class, NamespacedKey.minecraft("slime_float")); -+ GoalKey SLIME_KEEP_ON_JUMPING = GoalKey.of(Slime.class, NamespacedKey.minecraft("slime_keep_on_jumping")); -+ GoalKey SLIME_RANDOM_DIRECTION = GoalKey.of(Slime.class, NamespacedKey.minecraft("slime_random_direction")); -+ GoalKey SPELLCASTER_CASTING_SPELL = GoalKey.of(Spellcaster.class, NamespacedKey.minecraft("spellcaster_casting_spell")); -+ GoalKey SPIDER_ATTACK = GoalKey.of(Spider.class, NamespacedKey.minecraft("spider_attack")); -+ GoalKey SPIDER = GoalKey.of(Spider.class, NamespacedKey.minecraft("spider")); -+ GoalKey STRIDER_GO_TO_LAVA = GoalKey.of(Strider.class, NamespacedKey.minecraft("strider_go_to_lava")); -+ GoalKey VEX_CHARGE_ATTACK = GoalKey.of(Vex.class, NamespacedKey.minecraft("vex_charge_attack")); -+ GoalKey VEX_COPY_OWNER = GoalKey.of(Vex.class, NamespacedKey.minecraft("vex_copy_owner")); -+ GoalKey VEX_RANDOM_MOVE = GoalKey.of(Vex.class, NamespacedKey.minecraft("vex_random_move")); -+ GoalKey VINDICATOR_BREAK_DOOR = GoalKey.of(Mob.class, NamespacedKey.minecraft("vindicator_break_door")); -+ GoalKey VINDICATOR_JOHNNY_ATTACK = GoalKey.of(Vindicator.class, NamespacedKey.minecraft("vindicator_johnny_attack")); -+ GoalKey ZOMBIE_ATTACK_TURTLE_EGG = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack_turtle_egg")); -+ GoalKey WANDER_TO_POSITION = GoalKey.of(WanderingTrader.class, NamespacedKey.minecraft("wander_to_position")); -+ GoalKey HOLD_GROUND_ATTACK = GoalKey.of(Raider.class, NamespacedKey.minecraft("hold_ground_attack")); -+ GoalKey OBTAIN_RAID_LEADER_BANNER = GoalKey.of(Raider.class, NamespacedKey.minecraft("obtain_raid_leader_banner")); -+ GoalKey RAIDER_CELEBRATION = GoalKey.of(Raider.class, NamespacedKey.minecraft("raider_celebration")); -+ GoalKey RAIDER_MOVE_THROUGH_VILLAGE = GoalKey.of(Raider.class, NamespacedKey.minecraft("raider_move_through_village")); -+ GoalKey PARROT_WANDER = GoalKey.of(Creature.class, NamespacedKey.minecraft("parrot_wander")); -+ GoalKey CLIMB_ON_TOP_OF_POWDER_SNOW = GoalKey.of(Mob.class, NamespacedKey.minecraft("climb_on_top_of_powder_snow")); -+ GoalKey WOLF_PANIC = GoalKey.of(Wolf.class, NamespacedKey.minecraft("wolf_panic")); -+ -+ /** -+ * @deprecated removed in 1.20.2 -+ */ -+ @Deprecated GoalKey VINDICATOR_MELEE_ATTACK = GoalKey.of(Vindicator.class, NamespacedKey.minecraft("vindicator_melee_attack")); -+ /** -+ * @deprecated removed in 1.20.2 -+ */ -+ @Deprecated GoalKey RAVAGER_MELEE_ATTACK = GoalKey.of(Ravager.class, NamespacedKey.minecraft("ravager_melee_attack")); -+ /** -+ * @deprecated removed in 1.20.2 -+ */ -+ @Deprecated GoalKey EVIL_RABBIT_ATTACK = GoalKey.of(Rabbit.class, NamespacedKey.minecraft("evil_rabbit_attack")); -+ -+ /** -+ * @deprecated removed in 1.16 -+ */ -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey ANGER = GoalKey.of(PigZombie.class, NamespacedKey.minecraft("anger")); -+ /** -+ * @deprecated removed in 1.16 -+ */ -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey ANGER_OTHER = GoalKey.of(PigZombie.class, NamespacedKey.minecraft("anger_other")); -+ -+ // the constants below use spigot names, they no longer work -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey BLAZE_FIREBALL = GoalKey.of(Blaze.class, NamespacedKey.minecraft("blaze_fireball")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey TEMPT_CHANCE = GoalKey.of(Cat.class, NamespacedKey.minecraft("tempt_chance")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey DOLPHIN_PLAY_WITH_ITEMS = GoalKey.of(Dolphin.class, NamespacedKey.minecraft("dolphin_play_with_items")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey DROWNED_GOTO_BEACH = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_goto_beach")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey DROWNED_GOTO_WATER = GoalKey.of(Creature.class, NamespacedKey.minecraft("drowned_goto_water")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey ENDERMAN_PICKUP_BLOCK = GoalKey.of(Enderman.class, NamespacedKey.minecraft("enderman_pickup_block")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey ENDERMAN_PLACE_BLOCK = GoalKey.of(Enderman.class, NamespacedKey.minecraft("enderman_place_block")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey PLAYER_WHO_LOOKED_AT_TARGET = GoalKey.of(Enderman.class, NamespacedKey.minecraft("player_who_looked_at_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey EVOKER_CAST_SPELL = GoalKey.of(Evoker.class, NamespacedKey.minecraft("evoker_cast_spell")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey FOX_DEFEND_TRUSTED = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_defend_trusted")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey FOX_FACEPLANT = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_faceplant")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey FOX_PERCH_AND_SEARCH = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_perch_and_search")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey FOX_SLEEP = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_sleep")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey FOX_SEEK_SHELTER = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_seek_shelter")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey FOX_STALK_PREY = GoalKey.of(Fox.class, NamespacedKey.minecraft("fox_stalk_prey")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey GHAST_ATTACK_TARGET = GoalKey.of(Ghast.class, NamespacedKey.minecraft("ghast_attack_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey GHAST_IDLE_MOVE = GoalKey.of(Ghast.class, NamespacedKey.minecraft("ghast_idle_move")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey GHAST_MOVE_TOWARDS_TARGET = GoalKey.of(Ghast.class, NamespacedKey.minecraft("ghast_move_towards_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SPELLCASTER_CAST_SPELL = GoalKey.of(Spellcaster.class, NamespacedKey.minecraft("spellcaster_cast_spell")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey LLAMATRADER_DEFENDED_WANDERING_TRADER = GoalKey.of(TraderLlama.class, NamespacedKey.minecraft("llamatrader_defended_wandering_trader")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey PANDA_HURT_BY_TARGET = GoalKey.of(Panda.class, NamespacedKey.minecraft("panda_hurt_by_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey POLARBEAR_ATTACK_PLAYERS = GoalKey.of(PolarBear.class, NamespacedKey.minecraft("polarbear_attack_players")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey POLARBEAR_HURT_BY = GoalKey.of(PolarBear.class, NamespacedKey.minecraft("polarbear_hurt_by")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey POLARBEAR_MELEE = GoalKey.of(PolarBear.class, NamespacedKey.minecraft("polarbear_melee")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey POLARBEAR_PANIC = GoalKey.of(PolarBear.class, NamespacedKey.minecraft("polarbear_panic")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey EAT_CARROTS = GoalKey.of(Rabbit.class, NamespacedKey.minecraft("eat_carrots")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey KILLER_RABBIT_MELEE_ATTACK = GoalKey.of(Rabbit.class, NamespacedKey.minecraft("killer_rabbit_melee_attack")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey RABBIT_AVOID_TARGET = GoalKey.of(Rabbit.class, NamespacedKey.minecraft("rabbit_avoid_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey RAIDER_HOLD_GROUND = GoalKey.of(Raider.class, NamespacedKey.minecraft("raider_hold_ground")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey RAIDER_OBTAIN_BANNER = GoalKey.of(Raider.class, NamespacedKey.minecraft("raider_obtain_banner")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SHULKER_DEFENSE = GoalKey.of(Shulker.class, NamespacedKey.minecraft("shulker_defense")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SHULKER_NEAREST = GoalKey.of(Shulker.class, NamespacedKey.minecraft("shulker_nearest")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SILVERFISH_HIDE_IN_BLOCK = GoalKey.of(Silverfish.class, NamespacedKey.minecraft("silverfish_hide_in_block")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SILVERFISH_WAKE_OTHERS = GoalKey.of(Silverfish.class, NamespacedKey.minecraft("silverfish_wake_others")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SLIME_IDLE = GoalKey.of(Slime.class, NamespacedKey.minecraft("slime_idle")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SLIME_NEAREST_PLAYER = GoalKey.of(Slime.class, NamespacedKey.minecraft("slime_nearest_player")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SLIME_RANDOM_JUMP = GoalKey.of(Slime.class, NamespacedKey.minecraft("slime_random_jump")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SPIDER_MELEE_ATTACK = GoalKey.of(Spider.class, NamespacedKey.minecraft("spider_melee_attack")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SPIDER_NEAREST_ATTACKABLE_TARGET = GoalKey.of(Spider.class, NamespacedKey.minecraft("spider_nearest_attackable_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SQUID = GoalKey.of(Squid.class, NamespacedKey.minecraft("squid")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey TURTLE_GOTO_WATER = GoalKey.of(Turtle.class, NamespacedKey.minecraft("turtle_goto_water")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey TURTLE_TEMPT = GoalKey.of(Turtle.class, NamespacedKey.minecraft("turtle_tempt")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey VEX_COPY_TARGET_OF_OWNER = GoalKey.of(Vex.class, NamespacedKey.minecraft("vex_copy_target_of_owner")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey VILLAGERTRADER_WANDER_TO_POSITION = GoalKey.of(WanderingTrader.class, NamespacedKey.minecraft("villagertrader_wander_to_position")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey ARROW_ATTACK = GoalKey.of(RangedEntity.class, NamespacedKey.minecraft("arrow_attack")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey AVOID_TARGET = GoalKey.of(Creature.class, NamespacedKey.minecraft("avoid_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey BOW_SHOOT = GoalKey.of(Monster.class, NamespacedKey.minecraft("bow_shoot")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey BREATH = GoalKey.of(Creature.class, NamespacedKey.minecraft("breath")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey CAT_SIT_ON_BED = GoalKey.of(Cat.class, NamespacedKey.minecraft("cat_sit_on_bed")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey CROSSBOW_ATTACK = GoalKey.of(Monster.class, NamespacedKey.minecraft("crossbow_attack")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey DOOR_OPEN = GoalKey.of(Mob.class, NamespacedKey.minecraft("door_open")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey EAT_TILE = GoalKey.of(Mob.class, NamespacedKey.minecraft("eat_tile")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey FISH_SCHOOL = GoalKey.of(Fish.class, NamespacedKey.minecraft("fish_school")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey FOLLOW_ENTITY = GoalKey.of(Mob.class, NamespacedKey.minecraft("follow_entity")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey HORSE_TRAP = GoalKey.of(SkeletonHorse.class, NamespacedKey.minecraft("horse_trap")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey HURT_BY_TARGET = GoalKey.of(Creature.class, NamespacedKey.minecraft("hurt_by_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey JUMP_ON_BLOCK = GoalKey.of(Cat.class, NamespacedKey.minecraft("jump_on_block")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey LEAP_AT_TARGET = GoalKey.of(Mob.class, NamespacedKey.minecraft("leap_at_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey LLAMA_FOLLOW = GoalKey.of(Llama.class, NamespacedKey.minecraft("llama_follow")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey MOVE_TOWARDS_TARGET = GoalKey.of(Creature.class, NamespacedKey.minecraft("move_towards_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey NEAREST_ATTACKABLE_TARGET = GoalKey.of(Mob.class, NamespacedKey.minecraft("nearest_attackable_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey NEAREST_ATTACKABLE_TARGET_WITCH = GoalKey.of(Raider.class, NamespacedKey.minecraft("nearest_attackable_target_witch")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey NEAREST_VILLAGE = GoalKey.of(Creature.class, NamespacedKey.minecraft("nearest_village")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey OWNER_HURT_BY_TARGET = GoalKey.of(Tameable.class, NamespacedKey.minecraft("owner_hurt_by_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey OWNER_HURT_TARGET = GoalKey.of(Tameable.class, NamespacedKey.minecraft("owner_hurt_target")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey PERCH = GoalKey.of(Parrot.class, NamespacedKey.minecraft("perch")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey RAID = GoalKey.of(Raider.class, NamespacedKey.minecraft("raid")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey RANDOM_FLY = GoalKey.of(Creature.class, NamespacedKey.minecraft("random_fly")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey RANDOM_LOOKAROUND = GoalKey.of(Mob.class, NamespacedKey.minecraft("random_lookaround")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey RANDOM_STROLL_LAND = GoalKey.of(Creature.class, NamespacedKey.minecraft("random_stroll_land")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey RANDOM_SWIM = GoalKey.of(Creature.class, NamespacedKey.minecraft("random_swim")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey RANDOM_TARGET_NON_TAMED = GoalKey.of(Tameable.class, NamespacedKey.minecraft("random_target_non_tamed")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey SIT = GoalKey.of(Tameable.class, NamespacedKey.minecraft("sit")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey STROLL_VILLAGE = GoalKey.of(Creature.class, NamespacedKey.minecraft("stroll_village")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey TAME = GoalKey.of(AbstractHorse.class, NamespacedKey.minecraft("tame")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey WATER = GoalKey.of(Creature.class, NamespacedKey.minecraft("water")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey WATER_JUMP = GoalKey.of(Dolphin.class, NamespacedKey.minecraft("water_jump")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey STROLL_VILLAGE_GOLEM = GoalKey.of(Creature.class, NamespacedKey.minecraft("stroll_village_golem")); -+ @Deprecated(forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.21") GoalKey UNIVERSAL_ANGER_RESET = GoalKey.of(Mob.class, NamespacedKey.minecraft("universal_anger_reset")); -+} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 2a6ecd328c913cb493716c878f3474345148bb8e..1f63a4f8ffd11fe04f8dc807ad993e4b59172fea 100644 +index 29cf7359334144d6e718fed560771be35f580b16..5c508045a53d9f6efe6358648daa47c0096ad55e 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -2493,6 +2493,16 @@ public final class Bukkit { @@ -556,7 +247,7 @@ index 2a6ecd328c913cb493716c878f3474345148bb8e..1f63a4f8ffd11fe04f8dc807ad993e4b @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index b7c731b006e1bff630f12ff0c790a34c257adf3a..1e88ad22e98cbbde118e6208b3502aee7391bac8 100644 +index d97200a8816dbbbce07734b5547a942f8f3f0fdc..aec7814485efb0b827ccfde92372a436d47ed2f5 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -2172,5 +2172,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0299-Missing-Entity-API.patch b/patches/api/0299-Missing-Entity-API.patch index c6f1f30f2605..f9b97bdf0194 100644 --- a/patches/api/0299-Missing-Entity-API.patch +++ b/patches/api/0299-Missing-Entity-API.patch @@ -10,19 +10,6 @@ Co-authored-by: SoSeDiK Co-authored-by: booky10 Co-authored-by: Amin -diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -index 39fca3674f32c7bbb2797bf6c3e222707cd7495a..0c4dbb9ef63fa8575b5546239443cb2bd91ba847 100644 ---- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -@@ -24,7 +24,7 @@ public interface VanillaGoal extends Goal { - GoalKey FLEE_SUN = GoalKey.of(Creature.class, NamespacedKey.minecraft("flee_sun")); - GoalKey FLOAT = GoalKey.of(Mob.class, NamespacedKey.minecraft("float")); - GoalKey FOLLOW_BOAT = GoalKey.of(Creature.class, NamespacedKey.minecraft("follow_boat")); -- GoalKey FOLLOW_FLOCK_LEADER = GoalKey.of(Fish.class, NamespacedKey.minecraft("follow_flock_leader")); -+ GoalKey FOLLOW_FLOCK_LEADER = GoalKey.of(io.papermc.paper.entity.SchoolableFish.class, NamespacedKey.minecraft("follow_flock_leader")); - GoalKey FOLLOW_MOB = GoalKey.of(Mob.class, NamespacedKey.minecraft("follow_mob")); - GoalKey FOLLOW_OWNER = GoalKey.of(Tameable.class, NamespacedKey.minecraft("follow_owner")); - GoalKey FOLLOW_PARENT = GoalKey.of(Animals.class, NamespacedKey.minecraft("follow_parent")); diff --git a/src/main/java/io/papermc/paper/entity/SchoolableFish.java b/src/main/java/io/papermc/paper/entity/SchoolableFish.java new file mode 100644 index 0000000000000000000000000000000000000000..39ad7d283609d7e427a2ab35b6fad839e032fe92 diff --git a/patches/server/0387-Implement-Mob-Goal-API.patch b/patches/server/0387-Implement-Mob-Goal-API.patch index 11aff4ed7ad5..49feb07d70af 100644 --- a/patches/server/0387-Implement-Mob-Goal-API.patch +++ b/patches/server/0387-Implement-Mob-Goal-API.patch @@ -809,115 +809,3 @@ index 22886ae00f92824fc08018b9415537f1126920ee..1197e6f355f9b5a684024de31cddef11 + } // Paper end } -diff --git a/src/test/java/com/destroystokyo/paper/entity/ai/VanillaMobGoalTest.java b/src/test/java/com/destroystokyo/paper/entity/ai/VanillaMobGoalTest.java -new file mode 100644 -index 0000000000000000000000000000000000000000..654ed436e99dd56f1fe7c1d4f38da34d95ce9349 ---- /dev/null -+++ b/src/test/java/com/destroystokyo/paper/entity/ai/VanillaMobGoalTest.java -@@ -0,0 +1,106 @@ -+package com.destroystokyo.paper.entity.ai; -+ -+import io.github.classgraph.ClassGraph; -+import io.github.classgraph.ScanResult; -+import java.lang.reflect.Field; -+import java.lang.reflect.Modifier; -+import java.util.ArrayList; -+import java.util.Collections; -+import java.util.List; -+import java.util.stream.Collectors; -+import org.bukkit.entity.Mob; -+import org.junit.jupiter.api.Test; -+ -+import static org.junit.jupiter.api.Assertions.assertNotEquals; -+import static org.junit.jupiter.api.Assertions.fail; -+ -+public class VanillaMobGoalTest { -+ -+ @Test -+ public void testKeys() { -+ List> deprecated = new ArrayList<>(); -+ List> keys = new ArrayList<>(); -+ for (Field field : VanillaGoal.class.getFields()) { -+ if (field.getType().equals(GoalKey.class)) { -+ try { -+ GoalKey goalKey = (GoalKey) field.get(null); -+ if (field.getAnnotation(Deprecated.class) != null) { -+ deprecated.add(goalKey); -+ } else { -+ keys.add(goalKey); -+ } -+ } catch (IllegalAccessException e) { -+ System.out.println("Skipping " + field.getName() + ": " + e.getMessage()); -+ } -+ } -+ } -+ -+ List> classes; -+ try (ScanResult scanResult = new ClassGraph().enableAllInfo().whitelistPackages("net.minecraft").scan()) { -+ classes = scanResult.getSubclasses(net.minecraft.world.entity.ai.goal.Goal.class.getName()).loadClasses(); -+ } -+ -+ List> vanillaNames = classes.stream() -+ .filter(VanillaMobGoalTest::hasNoEnclosingClass) -+ .filter(clazz -> !Modifier.isAbstract(clazz.getModifiers())) -+ .filter(clazz -> !net.minecraft.world.entity.ai.goal.WrappedGoal.class.equals(clazz)) // TODO - properly fix -+ .map(goalClass -> MobGoalHelper.getKey((Class) goalClass)) -+ .collect(Collectors.toList()); -+ -+ List> missingFromAPI = new ArrayList<>(vanillaNames); -+ missingFromAPI.removeAll(keys); -+ missingFromAPI.removeIf(k -> MobGoalHelper.ignored.contains(k.getNamespacedKey().getKey())); -+ List> missingFromVanilla = new ArrayList<>(keys); -+ missingFromVanilla.removeAll(vanillaNames); -+ -+ boolean shouldFail = false; -+ if (missingFromAPI.size() != 0) { -+ System.out.println("Missing from API: "); -+ for (GoalKey key : missingFromAPI) { -+ System.out.println("GoalKey<" + key.getEntityClass().getSimpleName() + "> " + key.getNamespacedKey().getKey().toUpperCase() + -+ " = GoalKey.of(" + key.getEntityClass().getSimpleName() + ".class, NamespacedKey.minecraft(\"" + key.getNamespacedKey().getKey() + "\"));"); -+ } -+ shouldFail = true; -+ } -+ if (missingFromVanilla.size() != 0) { -+ System.out.println("Missing from vanilla: "); -+ missingFromVanilla.forEach(System.out::println); -+ shouldFail = true; -+ } -+ -+ if (deprecated.size() != 0) { -+ System.out.println("Deprecated (might want to remove them at some point): "); -+ deprecated.forEach(System.out::println); -+ } -+ -+ if (shouldFail) { -+ fail("See above"); -+ } -+ } -+ -+ private static boolean hasNoEnclosingClass(Class clazz) { -+ return clazz.getEnclosingClass() == null || hasNoEnclosingClass(clazz.getSuperclass()); -+ } -+ -+ @Test -+ public void testBukkitMap() { -+ List> classes; -+ try (ScanResult scanResult = new ClassGraph().enableAllInfo().whitelistPackages("net.minecraft.world.entity").scan()) { -+ classes = scanResult.getSubclasses("net.minecraft.world.entity.Mob").loadClasses(); -+ } -+ assertNotEquals(Collections.emptyList(), classes, "There are supposed to be more than 0 entity types!"); -+ -+ boolean shouldFail = false; -+ for (Class nmsClass : classes) { -+ Class bukkitClass = MobGoalHelper.toBukkitClass((Class) nmsClass); -+ if (bukkitClass == null) { -+ shouldFail = true; -+ System.out.println("Missing bukkitMap.put(" + nmsClass.getSimpleName() + ".class, " + nmsClass.getSimpleName().replace("Entity", "") + ".class);"); -+ } -+ } -+ -+ if (shouldFail) { -+ fail("See above"); -+ } -+ } -+} From ebf97bdfdd04681ccb186311f57f74fe19dfe119 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Tue, 16 Jan 2024 12:41:40 +0100 Subject: [PATCH 16/45] [ci skip] Add more patch identifying comments --- ...-vehicle-collision-event-not-called.patch} | 8 ++-- ...51-optimize-dirt-and-snow-spreading.patch} | 24 ++++++------ ...ch => 0852-Add-EntityToggleSitEvent.patch} | 32 ++++++++-------- .../0853-Add-fire-tick-delay-option.patch | 10 ++--- ...-source-for-fireworks-from-dispenser.patch | 4 +- ...nt-suggestion-permissions-to-align-w.patch | 6 +-- ...tEvent-cancellation-cant-fully-preve.patch | 12 +++--- ...-Prevent-compass-from-loading-chunks.patch | 4 +- .../0860-Add-PrePlayerAttackEntityEvent.patch | 4 +- ...re-reset-EnderDragon-boss-event-name.patch | 10 ++--- ...7-green-map-markers-do-not-disappear.patch | 6 +-- ...la-friendly-methods-to-update-trades.patch | 12 +++--- ...global-player-list-where-appropriate.patch | 26 ++++++------- ...async-entity-add-due-to-fungus-trees.patch | 10 ++--- patches/server/0869-Friction-API.patch | 31 +++++++-------- ...ntrol-player-s-insomnia-and-phantoms.patch | 18 ++++----- .../0871-Fix-player-kick-on-shutdown.patch | 4 +- .../0872-Sync-offhand-slot-in-menus.patch | 14 +++---- .../0873-Player-Entity-Tracking-Events.patch | 8 ++-- .../server/0874-Limit-pet-look-distance.patch | 4 +- ...and-additions-to-the-SpawnReason-API.patch | 12 +++--- ...-for-some-hot-BlockBehavior-and-Flui.patch | 24 ++++++------ .../server/0880-Add-BlockLockCheckEvent.patch | 16 ++++---- .../0882-Improve-logging-and-errors.patch | 30 +++++++-------- ...ssing-SpigotConfig-logCommands-check.patch | 6 +-- patches/server/0887-Flying-Fall-Damage.patch | 8 ++-- ...ck-state-to-BlockExplodeEvent-and-En.patch | 38 +++++++++---------- ...config-for-disabling-entity-tag-tags.patch | 4 +- ...le-player-info-update-packet-on-join.patch | 16 ++++---- ...nk-items-during-EntityResurrectEvent.patch | 4 +- ...vancement-triggers-for-entity-damage.patch | 6 +-- ...-Fix-a-couple-of-upstream-bed-issues.patch | 4 +- ...-redstone-on-top-of-trap-doors-early.patch | 6 +-- ...access-to-lookups-field-in-RegistryO.patch | 7 +++- ...recalcBlockCounts-for-empty-sections.patch | 6 +-- .../0937-Properly-cancel-usable-items.patch | 6 +-- ...-Optimize-player-lookups-for-beacons.patch | 6 +-- ...946-Array-backed-synched-entity-data.patch | 14 +++---- ...ata-neighbour-ticks-outside-of-range.patch | 7 ++-- .../0976-Add-Listing-API-for-Player.patch | 12 +++--- ...4-Improve-performance-of-mass-crafts.patch | 22 +++++------ ...e-nearest-structure-border-iteration.patch | 6 +-- ...-entities-in-chunks-that-are-positio.patch | 6 +-- .../server/1006-Lag-compensation-ticks.patch | 14 +++---- ...on-on-UpgradeData.BlockFixers-class-.patch | 4 +- ...tem-packets-with-collector-as-source.patch | 4 +- ...ly-create-LootContext-for-criterions.patch | 6 +-- ...n-t-fire-sync-events-during-worldgen.patch | 14 +++---- ...-on-null-loc-for-EntityTeleportEvent.patch | 6 +-- 49 files changed, 283 insertions(+), 278 deletions(-) rename patches/server/{0850-fixed-entity-vehicle-collision-event-not-called.patch => 0850-fix-entity-vehicle-collision-event-not-called.patch} (75%) rename patches/server/{0851-optimized-dirt-and-snow-spreading.patch => 0851-optimize-dirt-and-snow-spreading.patch} (85%) rename patches/server/{0852-Added-EntityToggleSitEvent.patch => 0852-Add-EntityToggleSitEvent.patch} (85%) diff --git a/patches/server/0850-fixed-entity-vehicle-collision-event-not-called.patch b/patches/server/0850-fix-entity-vehicle-collision-event-not-called.patch similarity index 75% rename from patches/server/0850-fixed-entity-vehicle-collision-event-not-called.patch rename to patches/server/0850-fix-entity-vehicle-collision-event-not-called.patch index 26b177ddcce8..fb96955e5711 100644 --- a/patches/server/0850-fixed-entity-vehicle-collision-event-not-called.patch +++ b/patches/server/0850-fix-entity-vehicle-collision-event-not-called.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: lukas81298 Date: Tue, 12 Jan 2021 14:41:38 +0100 -Subject: [PATCH] fixed entity vehicle collision event not called +Subject: [PATCH] fix entity vehicle collision event not called diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index 9780232286052d2cbbd604e71caf47dfb81fc1dc..c906ca07509939a06b9aaf2da0dafb172830a638 100644 +index 9780232286052d2cbbd604e71caf47dfb81fc1dc..dc421a0a6430583f1f0154e1dd689b80253f6e3d 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java @@ -168,7 +168,15 @@ public abstract class AbstractMinecart extends VehicleEntity { @@ -13,7 +13,7 @@ index 9780232286052d2cbbd604e71caf47dfb81fc1dc..c906ca07509939a06b9aaf2da0dafb17 @Override public boolean canCollideWith(Entity other) { - return Boat.canVehicleCollide(this, other); -+ // Paper start - fixed VehicleEntityCollisionEvent not called when colliding with player ++ // Paper start - fix VehicleEntityCollisionEvent not called when colliding with player + boolean collides = Boat.canVehicleCollide(this, other); + if (!collides) { + return false; @@ -21,7 +21,7 @@ index 9780232286052d2cbbd604e71caf47dfb81fc1dc..c906ca07509939a06b9aaf2da0dafb17 + org.bukkit.event.vehicle.VehicleEntityCollisionEvent collisionEvent = new org.bukkit.event.vehicle.VehicleEntityCollisionEvent((org.bukkit.entity.Vehicle) getBukkitEntity(), other.getBukkitEntity()); + + return collisionEvent.callEvent(); -+ // Paper end ++ // Paper end - fix VehicleEntityCollisionEvent not called when colliding with player } @Override diff --git a/patches/server/0851-optimized-dirt-and-snow-spreading.patch b/patches/server/0851-optimize-dirt-and-snow-spreading.patch similarity index 85% rename from patches/server/0851-optimized-dirt-and-snow-spreading.patch rename to patches/server/0851-optimize-dirt-and-snow-spreading.patch index e2c360d692a7..5c1d0ffe0c97 100644 --- a/patches/server/0851-optimized-dirt-and-snow-spreading.patch +++ b/patches/server/0851-optimize-dirt-and-snow-spreading.patch @@ -1,25 +1,25 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: lukas81298 Date: Fri, 22 Jan 2021 21:50:18 +0100 -Subject: [PATCH] optimized dirt and snow spreading +Subject: [PATCH] optimize dirt and snow spreading diff --git a/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java b/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java -index f38524cbcaa908644d901bf0929331d6dfd99ed9..1acdf9dad2621a20b077c5f88dab5e0f8688a38f 100644 +index f38524cbcaa908644d901bf0929331d6dfd99ed9..35a70bd30bc4beb06de4bb6e305ec3a787b43044 100644 --- a/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java @@ -19,8 +19,13 @@ public abstract class SpreadingSnowyDirtBlock extends SnowyDirtBlock { } private static boolean canBeGrass(BlockState state, LevelReader world, BlockPos pos) { -+ // Paper start ++ // Paper start - Perf: optimize dirt and snow spreading + return canBeGrass(world.getChunk(pos), state, world, pos); + } + private static boolean canBeGrass(net.minecraft.world.level.chunk.ChunkAccess chunk, BlockState state, LevelReader world, BlockPos pos) { -+ // Paper end ++ // Paper end - Perf: optimize dirt and snow spreading BlockPos blockposition1 = pos.above(); - BlockState iblockdata1 = world.getBlockState(blockposition1); -+ BlockState iblockdata1 = chunk.getBlockState(blockposition1); // Paper ++ BlockState iblockdata1 = chunk.getBlockState(blockposition1); // Paper - Perf: optimize dirt and snow spreading if (iblockdata1.is(Blocks.SNOW) && (Integer) iblockdata1.getValue(SnowLayerBlock.LAYERS) == 1) { return true; @@ -27,29 +27,29 @@ index f38524cbcaa908644d901bf0929331d6dfd99ed9..1acdf9dad2621a20b077c5f88dab5e0f protected abstract MapCodec codec(); private static boolean canPropagate(BlockState state, LevelReader world, BlockPos pos) { -+ // Paper start ++ // Paper start - Perf: optimize dirt and snow spreading + return canPropagate(world.getChunk(pos), state, world, pos); + } + + private static boolean canPropagate(net.minecraft.world.level.chunk.ChunkAccess chunk, BlockState state, LevelReader world, BlockPos pos) { -+ // Paper end ++ // Paper end - Perf: optimize dirt and snow spreading BlockPos blockposition1 = pos.above(); - return SpreadingSnowyDirtBlock.canBeGrass(state, world, pos) && !world.getFluidState(blockposition1).is(FluidTags.WATER); -+ return SpreadingSnowyDirtBlock.canBeGrass(chunk, state, world, pos) && !chunk.getFluidState(blockposition1).is(FluidTags.WATER); // Paper ++ return SpreadingSnowyDirtBlock.canBeGrass(chunk, state, world, pos) && !chunk.getFluidState(blockposition1).is(FluidTags.WATER); // Paper - Perf: optimize dirt and snow spreading } @Override public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (this instanceof GrassBlock && world.paperConfig().tickRates.grassSpread != 1 && (world.paperConfig().tickRates.grassSpread < 1 || (MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.grassSpread != 0)) { return; } // Paper - if (!SpreadingSnowyDirtBlock.canBeGrass(state, world, pos)) { -+ // Paper start ++ // Paper start - Perf: optimize dirt and snow spreading + net.minecraft.world.level.chunk.ChunkAccess cachedBlockChunk = world.getChunkIfLoaded(pos); + if (cachedBlockChunk == null) { // Is this needed? + return; + } + if (!SpreadingSnowyDirtBlock.canBeGrass(cachedBlockChunk, state, world, pos)) { -+ // Paper end ++ // Paper end - Perf: optimize dirt and snow spreading // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.callBlockFadeEvent(world, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) { return; @@ -60,7 +60,7 @@ index f38524cbcaa908644d901bf0929331d6dfd99ed9..1acdf9dad2621a20b077c5f88dab5e0f - - if (world.getBlockState(blockposition1).is(Blocks.DIRT) && SpreadingSnowyDirtBlock.canPropagate(iblockdata1, world, blockposition1)) { - org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition1, (BlockState) iblockdata1.setValue(SpreadingSnowyDirtBlock.SNOWY, world.getBlockState(blockposition1.above()).is(Blocks.SNOW))); // CraftBukkit -+ // Paper start ++ // Paper start - Perf: optimize dirt and snow spreading + if (pos.getX() == blockposition1.getX() && pos.getY() == blockposition1.getY() && pos.getZ() == blockposition1.getZ()) { + continue; + } @@ -72,7 +72,7 @@ index f38524cbcaa908644d901bf0929331d6dfd99ed9..1acdf9dad2621a20b077c5f88dab5e0f + } + if (access.getBlockState(blockposition1).is(Blocks.DIRT) && SpreadingSnowyDirtBlock.canPropagate(access, iblockdata1, world, blockposition1)) { + org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition1, (BlockState) iblockdata1.setValue(SpreadingSnowyDirtBlock.SNOWY, access.getBlockState(blockposition1.above()).is(Blocks.SNOW))); // CraftBukkit -+ // Paper end ++ // Paper end - Perf: optimize dirt and snow spreading } } } diff --git a/patches/server/0852-Added-EntityToggleSitEvent.patch b/patches/server/0852-Add-EntityToggleSitEvent.patch similarity index 85% rename from patches/server/0852-Added-EntityToggleSitEvent.patch rename to patches/server/0852-Add-EntityToggleSitEvent.patch index 69127e646759..3b46feb98725 100644 --- a/patches/server/0852-Added-EntityToggleSitEvent.patch +++ b/patches/server/0852-Add-EntityToggleSitEvent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: KyGuy2002 Date: Fri, 11 Mar 2022 15:33:10 +0000 -Subject: [PATCH] Added EntityToggleSitEvent +Subject: [PATCH] Add EntityToggleSitEvent diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -index 1999cda5876bb12283d8c91a1b3e737c0d27bc38..1611a54bb68af34bfcbfd17028f564b7332aa489 100644 +index 1999cda5876bb12283d8c91a1b3e737c0d27bc38..4d32db04040014dba8935d1cb601e0da1a5d5b02 100644 --- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java +++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java @@ -67,7 +67,7 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { @@ -13,7 +13,7 @@ index 1999cda5876bb12283d8c91a1b3e737c0d27bc38..1611a54bb68af34bfcbfd17028f564b7 this.orderedToSit = nbt.getBoolean("Sitting"); - this.setInSittingPose(this.orderedToSit); -+ this.setInSittingPose(this.orderedToSit, false); // Paper - Don't fire event ++ this.setInSittingPose(this.orderedToSit, false); // Paper - Add EntityToggleSitEvent } @Override @@ -21,17 +21,17 @@ index 1999cda5876bb12283d8c91a1b3e737c0d27bc38..1611a54bb68af34bfcbfd17028f564b7 } public void setInSittingPose(boolean inSittingPose) { -+ // Paper start ++ // Paper start - Add EntityToggleSitEvent + this.setInSittingPose(inSittingPose, true); + } + public void setInSittingPose(boolean inSittingPose, boolean callEvent) { -+ // Paper end -+ if (callEvent && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), inSittingPose).callEvent()) return; // Paper start - call EntityToggleSitEvent ++ if (callEvent && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), inSittingPose).callEvent()) return; ++ // Paper end - Add EntityToggleSitEvent byte b = this.entityData.get(DATA_FLAGS_ID); if (inSittingPose) { this.entityData.set(DATA_FLAGS_ID, (byte)(b | 1)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 96799179b0dd1886f0cdc386f04e152a19b3337d..d17c69a857f083350cc9e9ec2b5dbe0a1482c85f 100644 +index 96799179b0dd1886f0cdc386f04e152a19b3337d..a1c28f9590908df5dd9d850dd3f0cadbe83b05c6 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -433,7 +433,7 @@ public class Fox extends Animal implements VariantHolder { @@ -39,7 +39,7 @@ index 96799179b0dd1886f0cdc386f04e152a19b3337d..d17c69a857f083350cc9e9ec2b5dbe0a this.setSleeping(nbt.getBoolean("Sleeping")); this.setVariant(Fox.Type.byName(nbt.getString("Type"))); - this.setSitting(nbt.getBoolean("Sitting")); -+ this.setSitting(nbt.getBoolean("Sitting"), false); // Paper ++ this.setSitting(nbt.getBoolean("Sitting"), false); // Paper - Add EntityToggleSitEvent this.setIsCrouching(nbt.getBoolean("Crouching")); if (this.level() instanceof ServerLevel) { this.setTargetGoals(); @@ -47,29 +47,29 @@ index 96799179b0dd1886f0cdc386f04e152a19b3337d..d17c69a857f083350cc9e9ec2b5dbe0a } public void setSitting(boolean sitting) { ++ // Paper start + this.setSitting(sitting, true); + } -+ // Paper start + public void setSitting(boolean sitting, boolean fireEvent) { + if (fireEvent && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), sitting).callEvent()) return; -+ // Paper end ++ // Paper end - Add EntityToggleSitEvent this.setFlag(1, sitting); } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 130761afcaa6723e0a9d9a518f1b526c344484b4..683cc5f9f066d554383fcd30e3654ac06ec76510 100644 +index 130761afcaa6723e0a9d9a518f1b526c344484b4..25a7602670b9f736b3b9ff4523bc867e65c0998a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -138,6 +138,7 @@ public class Panda extends Animal { } public void sit(boolean sitting) { -+ if (!new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), sitting).callEvent()) return; // Paper start - call EntityToggleSitEvent ++ if (!new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), sitting).callEvent()) return; // Paper - Add EntityToggleSitEvent this.setFlag(8, sitting); } diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index faf3e31f23d71bbc345bf98d4240490ac4677843..1d9427da270edb447a2c8e031c4f05fe5d39603b 100644 +index faf3e31f23d71bbc345bf98d4240490ac4677843..17cff1a4657f688ed704404f76f6ceead3be3be1 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -556,7 +556,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -77,7 +77,7 @@ index faf3e31f23d71bbc345bf98d4240490ac4677843..1d9427da270edb447a2c8e031c4f05fe public void sitDown() { - if (!this.isCamelSitting()) { -+ if (!this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), true).callEvent()) { // Paper ++ if (!this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), true).callEvent()) { // Paper - Add EntityToggleSitEvent this.playSound(SoundEvents.CAMEL_SIT, 1.0F, this.getVoicePitch()); this.setPose(Pose.SITTING); this.gameEvent(GameEvent.ENTITY_ACTION); @@ -86,7 +86,7 @@ index faf3e31f23d71bbc345bf98d4240490ac4677843..1d9427da270edb447a2c8e031c4f05fe public void standUp() { - if (this.isCamelSitting()) { -+ if (this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) { // Paper ++ if (this.isCamelSitting() && new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) { // Paper - Add EntityToggleSitEvent this.playSound(SoundEvents.CAMEL_STAND, 1.0F, this.getVoicePitch()); this.setPose(Pose.STANDING); this.gameEvent(GameEvent.ENTITY_ACTION); @@ -94,7 +94,7 @@ index faf3e31f23d71bbc345bf98d4240490ac4677843..1d9427da270edb447a2c8e031c4f05fe } public void standUpInstantly() { -+ if (this.isCamelSitting() && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) return; // Paper ++ if (this.isCamelSitting() && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), false).callEvent()) return; // Paper - Add EntityToggleSitEvent this.setPose(Pose.STANDING); this.gameEvent(GameEvent.ENTITY_ACTION); this.resetLastPoseChangeTickToFullStand(this.level().getGameTime()); diff --git a/patches/server/0853-Add-fire-tick-delay-option.patch b/patches/server/0853-Add-fire-tick-delay-option.patch index a18fb56ba78a..610fc4a818d7 100644 --- a/patches/server/0853-Add-fire-tick-delay-option.patch +++ b/patches/server/0853-Add-fire-tick-delay-option.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add fire-tick-delay option diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index 3fb197ee3bfd3f36881b7d67f7a37f035bb27daf..8c0db5219ff30bdfae61b4b9f6033c8e28d21ee1 100644 +index 3fb197ee3bfd3f36881b7d67f7a37f035bb27daf..03310fe5d05bc9c61df221977c071757a488c352 100644 --- a/src/main/java/net/minecraft/world/level/block/FireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java @@ -172,7 +172,7 @@ public class FireBlock extends BaseFireBlock { @@ -13,7 +13,7 @@ index 3fb197ee3bfd3f36881b7d67f7a37f035bb27daf..8c0db5219ff30bdfae61b4b9f6033c8e @Override public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { - world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world.random)); -+ world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world)); // Paper ++ world.scheduleTick(pos, (Block) this, FireBlock.getFireTickDelay(world)); // Paper - Add fire-tick-delay option if (world.getGameRules().getBoolean(GameRules.RULE_DOFIRETICK)) { if (!state.canSurvive(world, pos)) { this.fireExtinguished(world, pos); // CraftBukkit - invalid place location @@ -22,15 +22,15 @@ index 3fb197ee3bfd3f36881b7d67f7a37f035bb27daf..8c0db5219ff30bdfae61b4b9f6033c8e super.onPlace(iblockdata, world, blockposition, iblockdata1, flag, itemActionContext); // Paper end - world.scheduleTick(blockposition, this, getFireTickDelay(world.random)); -+ world.scheduleTick(blockposition, this, getFireTickDelay(world)); // Paper ++ world.scheduleTick(blockposition, this, getFireTickDelay(world)); // Paper - Add fire-tick-delay option } - private static int getFireTickDelay(RandomSource random) { - return 30 + random.nextInt(10); -+ // Paper start - customisable fire tick delay ++ // Paper start - Add fire-tick-delay option + private static int getFireTickDelay(Level world) { + return world.paperConfig().environment.fireTickDelay + world.random.nextInt(10); -+ // Paper end ++ // Paper end - Add fire-tick-delay option } @Override diff --git a/patches/server/0856-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0856-Track-projectile-source-for-fireworks-from-dispenser.patch index aa366ccef9d0..68209c4b2861 100644 --- a/patches/server/0856-Track-projectile-source-for-fireworks-from-dispenser.patch +++ b/patches/server/0856-Track-projectile-source-for-fireworks-from-dispenser.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Track projectile source for fireworks from dispensers diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index d9077127757886e5d5e8d63a46fe27f2bfba1420..b65d0c2ac5b4f7eb3da85b693c354463c6f49694 100644 +index d9077127757886e5d5e8d63a46fe27f2bfba1420..764ba041a6be42202d0bcda07ef194ca6909f9d9 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -517,6 +517,7 @@ public interface DispenseItemBehavior { itemstack1 = CraftItemStack.asNMSCopy(event.getItem()); Vec3 vec3d = DispenseItemBehavior.getEntityPokingOutOfBlockPos(pointer, EntityType.FIREWORK_ROCKET, enumdirection); FireworkRocketEntity entityfireworks = new FireworkRocketEntity(pointer.level(), itemstack1, vec3d.x(), vec3d.y(), vec3d.z(), true); // Paper - GH-2871 - fix last firework in stack having no effects when dispensed -+ entityfireworks.projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource(pointer.blockEntity()); // Paper - track projectile source for fireworks ++ entityfireworks.projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource(pointer.blockEntity()); // PaperTrack projectile source for fireworks from dispensers entityfireworks.shoot((double) enumdirection.getStepX(), (double) enumdirection.getStepY(), (double) enumdirection.getStepZ(), 0.5F, 1.0F); pointer.level().addFreshEntity(entityfireworks); diff --git a/patches/server/0857-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0857-Fix-EntityArgument-suggestion-permissions-to-align-w.patch index a840f9a5767e..eaa1ba226b72 100644 --- a/patches/server/0857-Fix-EntityArgument-suggestion-permissions-to-align-w.patch +++ b/patches/server/0857-Fix-EntityArgument-suggestion-permissions-to-align-w.patch @@ -9,7 +9,7 @@ suggestions, which especially matters when we force suggestions to the server for this type diff --git a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java -index a71726cee91fb406875a4540c9fb7c0ecf757294..150daf6bf4b27a6ff984d872a28002f19beef51c 100644 +index a71726cee91fb406875a4540c9fb7c0ecf757294..21dfc4812414f6a75fdae7082c0fce788ebe095b 100644 --- a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java @@ -128,7 +128,12 @@ public class EntityArgument implements ArgumentType { @@ -17,12 +17,12 @@ index a71726cee91fb406875a4540c9fb7c0ecf757294..150daf6bf4b27a6ff984d872a28002f1 stringreader.setCursor(suggestionsbuilder.getStart()); - EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2), true); // Paper -+ // Paper start ++ // Paper start - Fix EntityArgument suggestion permissions + final boolean permission = object instanceof CommandSourceStack stack + ? stack.bypassSelectorPermissions || stack.hasPermission(2, "minecraft.command.selector") + : icompletionprovider.hasPermission(2); + EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission, true); // Paper -+ // Paper end ++ // Paper end - Fix EntityArgument suggestion permissions try { argumentparserselector.parse(); diff --git a/patches/server/0858-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0858-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index 26f0e4266a6f..bf94351fb2c8 100644 --- a/patches/server/0858-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0858-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,32 +6,32 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fcef36f5314107f416953fbd0f891da7348c2243..d5322f344b65c4442958eb4e36ddae1f9cfca974 100644 +index fcef36f5314107f416953fbd0f891da7348c2243..f46640f3e3305b133bd49271377cedae4fe31ab5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3378,6 +3378,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S pluginManager.callEvent(entityCombustEvent); if (!entityCombustEvent.isCancelled()) { this.setSecondsOnFire(entityCombustEvent.getDuration(), false); -+ // Paper start - fix EntityCombustEvent cancellation. ++ // Paper start - fix EntityCombustEvent cancellation + } else { + this.setRemainingFireTicks(this.remainingFireTicks - 1); -+ // Paper end ++ // Paper end - fix EntityCombustEvent cancellation } // CraftBukkit end } diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index 02cbb25b8b1fdaf6e2b771067ca132245eab13dc..116dc2ac4c0176244eb8fc22a471d2b9ede72822 100644 +index 02cbb25b8b1fdaf6e2b771067ca132245eab13dc..c203aa71acc01fa802c2b1ebd253c0e1718ec4cd 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java @@ -134,6 +134,10 @@ public abstract class BaseFireBlock extends Block { if (!event.isCancelled()) { entity.setSecondsOnFire(event.getDuration(), false); -+ // Paper start - fix EntityCombustEvent cancellation. ++ // Paper start - fix EntityCombustEvent cancellation + } else { + entity.setRemainingFireTicks(entity.getRemainingFireTicks() - 1); -+ // Paper end ++ // Paper end - fix EntityCombustEvent cancellation } // CraftBukkit end } diff --git a/patches/server/0859-Prevent-compass-from-loading-chunks.patch b/patches/server/0859-Prevent-compass-from-loading-chunks.patch index fd2163699077..fb597663ebf9 100644 --- a/patches/server/0859-Prevent-compass-from-loading-chunks.patch +++ b/patches/server/0859-Prevent-compass-from-loading-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent compass from loading chunks diff --git a/src/main/java/net/minecraft/world/item/CompassItem.java b/src/main/java/net/minecraft/world/item/CompassItem.java -index 5d3047a420efe59063e90bfc7b42392127e0ad7d..7c4a2f8bb3efd11db2f8711952cc26a067c6d56b 100644 +index 5d3047a420efe59063e90bfc7b42392127e0ad7d..b3c67c954acf7e518d89d6af65a55d6f22dac059 100644 --- a/src/main/java/net/minecraft/world/item/CompassItem.java +++ b/src/main/java/net/minecraft/world/item/CompassItem.java @@ -77,7 +77,7 @@ public class CompassItem extends Item implements Vanishable { @@ -13,7 +13,7 @@ index 5d3047a420efe59063e90bfc7b42392127e0ad7d..7c4a2f8bb3efd11db2f8711952cc26a0 if (optional.isPresent() && optional.get() == world.dimension() && compoundTag.contains("LodestonePos")) { BlockPos blockPos = NbtUtils.readBlockPos(compoundTag.getCompound("LodestonePos")); - if (!world.isInWorldBounds(blockPos) || !((ServerLevel)world).getPoiManager().existsAtPosition(PoiTypes.LODESTONE, blockPos)) { -+ if (!world.isInWorldBounds(blockPos) || (world.hasChunkAt(blockPos) && !((ServerLevel)world).getPoiManager().existsAtPosition(PoiTypes.LODESTONE, blockPos))) { // Paper ++ if (!world.isInWorldBounds(blockPos) || (world.hasChunkAt(blockPos) && !((ServerLevel)world).getPoiManager().existsAtPosition(PoiTypes.LODESTONE, blockPos))) { // Paper - Prevent compass from loading chunks compoundTag.remove("LodestonePos"); } } diff --git a/patches/server/0860-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0860-Add-PrePlayerAttackEntityEvent.patch index ede93986e13a..e6a55af2d204 100644 --- a/patches/server/0860-Add-PrePlayerAttackEntityEvent.patch +++ b/patches/server/0860-Add-PrePlayerAttackEntityEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PrePlayerAttackEntityEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 7a984f531d3ebb6e055f07227b2ef8247fb3a842..28fa46f29639a6b643b475912133d601028facb2 100644 +index 7a984f531d3ebb6e055f07227b2ef8247fb3a842..13a443d942aee77f18e91669b207d8ec54bbaf65 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1240,8 +1240,17 @@ public abstract class Player extends LivingEntity { @@ -24,7 +24,7 @@ index 7a984f531d3ebb6e055f07227b2ef8247fb3a842..28fa46f29639a6b643b475912133d601 + + if (playerAttackEntityEvent.callEvent() && willAttack) { // Logic moved to willAttack local variable. + { -+ // Paper end ++ // Paper end - PlayerAttackEntityEvent float f = (float) this.getAttributeValue(Attributes.ATTACK_DAMAGE); float f1; diff --git a/patches/server/0861-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0861-ensure-reset-EnderDragon-boss-event-name.patch index 6107fe92f8d3..8c8441774467 100644 --- a/patches/server/0861-ensure-reset-EnderDragon-boss-event-name.patch +++ b/patches/server/0861-ensure-reset-EnderDragon-boss-event-name.patch @@ -6,14 +6,14 @@ Subject: [PATCH] ensure reset EnderDragon boss event name Fix MC-257487 diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 44f799d595d7150f00dfdfa2f85c87386f896607..390542c42fe957e8e2d21c879c1c8908c8970b44 100644 +index 44f799d595d7150f00dfdfa2f85c87386f896607..1469ad613e71bcf0fa8fb9b3389eb830dbd72ca0 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -73,6 +73,7 @@ public class EndDragonFight { private static final int GATEWAY_DISTANCE = 96; public static final int DRAGON_SPAWN_Y = 128; private final Predicate validPlayer; -+ private static final Component DEFAULT_BOSS_EVENT_NAME = Component.translatable("entity.minecraft.ender_dragon"); // Paper ++ private static final Component DEFAULT_BOSS_EVENT_NAME = Component.translatable("entity.minecraft.ender_dragon"); // Paper - ensure reset EnderDragon boss event name public final ServerBossEvent dragonEvent; public final ServerLevel level; private final BlockPos origin; @@ -22,7 +22,7 @@ index 44f799d595d7150f00dfdfa2f85c87386f896607..390542c42fe957e8e2d21c879c1c8908 public EndDragonFight(ServerLevel world, long gatewaysSeed, EndDragonFight.Data data, BlockPos origin) { - this.dragonEvent = (ServerBossEvent) (new ServerBossEvent(Component.translatable("entity.minecraft.ender_dragon"), BossEvent.BossBarColor.PINK, BossEvent.BossBarOverlay.PROGRESS)).setPlayBossMusic(true).setCreateWorldFog(true); -+ this.dragonEvent = (ServerBossEvent) (new ServerBossEvent(DEFAULT_BOSS_EVENT_NAME, BossEvent.BossBarColor.PINK, BossEvent.BossBarOverlay.PROGRESS)).setPlayBossMusic(true).setCreateWorldFog(true); // Paper ++ this.dragonEvent = (ServerBossEvent) (new ServerBossEvent(DEFAULT_BOSS_EVENT_NAME, BossEvent.BossBarColor.PINK, BossEvent.BossBarOverlay.PROGRESS)).setPlayBossMusic(true).setCreateWorldFog(true); // Paper - ensure reset EnderDragon boss event name this.gateways = new ObjectArrayList(); this.ticksSinceLastPlayerScan = 21; this.skipArenaLoadedCheck = false; @@ -30,10 +30,10 @@ index 44f799d595d7150f00dfdfa2f85c87386f896607..390542c42fe957e8e2d21c879c1c8908 this.ticksSinceDragonSeen = 0; if (dragon.hasCustomName()) { this.dragonEvent.setName(dragon.getDisplayName()); -+ // Paper start - reset to default name ++ // Paper start - ensure reset EnderDragon boss event name + } else { + this.dragonEvent.setName(DEFAULT_BOSS_EVENT_NAME); -+ // Paper end ++ // Paper end - ensure reset EnderDragon boss event name } } diff --git a/patches/server/0862-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0862-fix-MC-252817-green-map-markers-do-not-disappear.patch index 02dc8427c22e..daccd2b9ff99 100644 --- a/patches/server/0862-fix-MC-252817-green-map-markers-do-not-disappear.patch +++ b/patches/server/0862-fix-MC-252817-green-map-markers-do-not-disappear.patch @@ -6,7 +6,7 @@ Subject: [PATCH] fix MC-252817 (green map markers do not disappear). this bug is caused by the fact that the itemframe's item is set to empty before the green marker is requested to be removed. this is fixed by getting the mapid from this method's parameter, rather than the air block now stored by the item frame. diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index 6849429c3577f36eb699083375824ae5633f8d06..9c11d0af958ec47408d238d34d30750d29ecdd88 100644 +index 6849429c3577f36eb699083375824ae5633f8d06..1ef8bbade35c3e18f53808a9955ba69750b7d30f 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java @@ -291,7 +291,9 @@ public class ItemFrame extends HangingEntity { @@ -16,7 +16,7 @@ index 6849429c3577f36eb699083375824ae5633f8d06..9c11d0af958ec47408d238d34d30750d - this.getFramedMapId().ifPresent((i) -> { + // Paper start - fix MC-252817 (green map markers do not disappear) + this.getFramedMapIdFromItem(itemstack).ifPresent((i) -> { -+ // Paper end ++ // Paper end - fix MC-252817 MapItemSavedData worldmap = MapItem.getSavedData(i, this.level()); if (worldmap != null) { @@ -29,7 +29,7 @@ index 6849429c3577f36eb699083375824ae5633f8d06..9c11d0af958ec47408d238d34d30750d + } + public OptionalInt getFramedMapIdFromItem(ItemStack itemstack) { -+ // Paper end ++ // Paper end - fix MC-252817 if (itemstack.is(Items.FILLED_MAP)) { Integer integer = MapItem.getMapId(itemstack); diff --git a/patches/server/0864-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0864-More-vanilla-friendly-methods-to-update-trades.patch index fef9414a8f1d..67411f0ade0a 100644 --- a/patches/server/0864-More-vanilla-friendly-methods-to-update-trades.patch +++ b/patches/server/0864-More-vanilla-friendly-methods-to-update-trades.patch @@ -5,19 +5,19 @@ Subject: [PATCH] More vanilla friendly methods to update trades diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 363d1f469862c2e980624ff69f74be015c19412d..11935e5b16324af572b07c5b173708f5a91f8289 100644 +index 363d1f469862c2e980624ff69f74be015c19412d..e12f1f11386fa723f62b51ed0cc5715c1812d2bf 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -944,6 +944,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override protected void updateTrades() { -+ // Paper start ++ // Paper start - More vanilla friendly methods to update trades + updateTrades(TRADES_PER_LEVEL); + } + + public boolean updateTrades(int amount) { -+ // Paper end ++ // Paper end - More vanilla friendly methods to update trades VillagerData villagerdata = this.getVillagerData(); Int2ObjectMap int2objectmap; @@ -26,11 +26,11 @@ index 363d1f469862c2e980624ff69f74be015c19412d..11935e5b16324af572b07c5b173708f5 MerchantOffers merchantrecipelist = this.getOffers(); - this.addOffersFromItemListings(merchantrecipelist, avillagertrades_imerchantrecipeoption, 2); -+ this.addOffersFromItemListings(merchantrecipelist, avillagertrades_imerchantrecipeoption, amount); // Paper -+ return true; // Paper ++ this.addOffersFromItemListings(merchantrecipelist, avillagertrades_imerchantrecipeoption, amount); // Paper - More vanilla friendly methods to update trades ++ return true; // Paper - More vanilla friendly methods to update trades } } -+ return false; // Paper ++ return false; // Paper - More vanilla friendly methods to update trades } public void gossip(ServerLevel world, Villager villager, long time) { diff --git a/patches/server/0866-check-global-player-list-where-appropriate.patch b/patches/server/0866-check-global-player-list-where-appropriate.patch index e90e425c8275..c890ca3a301c 100644 --- a/patches/server/0866-check-global-player-list-where-appropriate.patch +++ b/patches/server/0866-check-global-player-list-where-appropriate.patch @@ -7,7 +7,7 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c3ee52f2ad47c6f92b0e8cb284a14a3376fabba7..4e8e1f4562b3edb7041e299b6719e965df975636 100644 +index c3ee52f2ad47c6f92b0e8cb284a14a3376fabba7..0bf8cf88a3385f21ffc00096a4af5ce76070614e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2764,4 +2764,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -15,16 +15,16 @@ index c3ee52f2ad47c6f92b0e8cb284a14a3376fabba7..4e8e1f4562b3edb7041e299b6719e965 } } + -+ // Paper start ++ // Paper start - check global player list where appropriate + @Override + @Nullable + public Player getGlobalPlayerByUUID(UUID uuid) { + return this.server.getPlayerList().getPlayer(uuid); + } -+ // Paper end ++ // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0d0299482be6c906575626dc352cd13ae8be4569..944463496a9c2757e8ddb0104c77bbfb40e0d4ca 100644 +index 0d0299482be6c906575626dc352cd13ae8be4569..f3d201cba18be448a52304a43ec05b109010bb98 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -32,12 +32,12 @@ index 0d0299482be6c906575626dc352cd13ae8be4569..944463496a9c2757e8ddb0104c77bbfb public void onItemPickup(ItemEntity item) { - Entity entity = item.getOwner(); -+ Entity entity = item.thrower != null ? this.level().getGlobalPlayerByUUID(item.thrower) : null; // Paper - check all players ++ Entity entity = item.thrower != null ? this.level().getGlobalPlayerByUUID(item.thrower) : null; // Paper - check global player list where appropriate if (entity instanceof ServerPlayer) { CriteriaTriggers.THROWN_ITEM_PICKED_UP_BY_ENTITY.trigger((ServerPlayer) entity, item.getItem(), this); diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index d4ac3e566b47cfc8688bcc2ab08385b6de4693f8..94396ad1a3c280787d36c6c18256d10340ace488 100644 +index d4ac3e566b47cfc8688bcc2ab08385b6de4693f8..7de9d012e7416eaa0189b513a0972c846e93c4b6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -272,7 +272,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -45,12 +45,12 @@ index d4ac3e566b47cfc8688bcc2ab08385b6de4693f8..94396ad1a3c280787d36c6c18256d103 entityvillager.refreshBrain(world); if (this.conversionStarter != null) { - Player entityhuman = world.getPlayerByUUID(this.conversionStarter); -+ Player entityhuman = world.getGlobalPlayerByUUID(this.conversionStarter); // Paper - check all players ++ Player entityhuman = world.getGlobalPlayerByUUID(this.conversionStarter); // Paper - check global player list where appropriate if (entityhuman instanceof ServerPlayer) { CriteriaTriggers.CURED_ZOMBIE_VILLAGER.trigger((ServerPlayer) entityhuman, this, entityvillager); diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index 9f892de55ab03367daed4c30cc44c9dd8adc29ed..b3293a722fb5c5262a777402140c764c03367800 100644 +index 9f892de55ab03367daed4c30cc44c9dd8adc29ed..a3d15f30eaab29d85cb6b3d693df9980a880f686 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java @@ -280,4 +280,11 @@ public interface EntityGetter { @@ -58,28 +58,28 @@ index 9f892de55ab03367daed4c30cc44c9dd8adc29ed..b3293a722fb5c5262a777402140c764c return null; } + -+ // Paper start ++ // Paper start - check global player list where appropriate + @Nullable + default Player getGlobalPlayerByUUID(UUID uuid) { + return this.getPlayerByUUID(uuid); + } -+ // Paper end ++ // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java -index ee11a52e82091911aa3a196bcc1f7ab829626cef..bcb9556314ccfcf54ec49860f46b309c72be0714 100644 +index ee11a52e82091911aa3a196bcc1f7ab829626cef..f35939f3ef42591cfa8ed7de7599695b9d9d0067 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java @@ -100,6 +100,13 @@ public class SculkShriekerBlockEntity extends BlockEntity implements GameEventLi @Nullable public static ServerPlayer tryGetPlayer(@Nullable Entity entity) { -+ // Paper start - ensure level is the same for sculk events ++ // Paper start - check global player list where appropriate; ensure level is the same for sculk events + final ServerPlayer player = tryGetPlayer0(entity); + return player != null && player.level() == entity.level() ? player : null; + } + @Nullable + private static ServerPlayer tryGetPlayer0(@Nullable Entity entity) { -+ // Paper end ++ // Paper end - check global player list where appropriate if (entity instanceof ServerPlayer serverPlayer) { return serverPlayer; } else { diff --git a/patches/server/0867-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0867-Fix-async-entity-add-due-to-fungus-trees.patch index 8fa372969b77..c995b596719a 100644 --- a/patches/server/0867-Fix-async-entity-add-due-to-fungus-trees.patch +++ b/patches/server/0867-Fix-async-entity-add-due-to-fungus-trees.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Fix async entity add due to fungus trees diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 49c7825156afd053df1b7721a63070b51427aff2..14a5492428eac823a295ef3746d0aca6fbdab4ec 100644 +index 49c7825156afd053df1b7721a63070b51427aff2..277c8e429481ca9763ddac9e700735d25aba78e9 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java @@ -249,6 +249,7 @@ public class WorldGenRegion implements WorldGenLevel { if (iblockdata.isAir()) { return false; } else { -+ if (drop) LOGGER.warn("Potential async entity add during worldgen", new Throwable()); // Paper - log when this happens ++ if (drop) LOGGER.warn("Potential async entity add during worldgen", new Throwable()); // Paper - Fix async entity add due to fungus trees; log when this happens if (false) { // CraftBukkit - SPIGOT-6833: Do not drop during world generation BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 884343c4ecdecdecb4117ce61d14e05787195656..ef56e0346228b2c26e356d4b631fbc49274a8aec 100644 +index 884343c4ecdecdecb4117ce61d14e05787195656..99b890e8650356fc059a89a4164ca3f9a80f9d1f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -257,10 +257,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor { @@ -25,11 +25,11 @@ index 884343c4ecdecdecb4117ce61d14e05787195656..ef56e0346228b2c26e356d4b631fbc49 return true; case CRIMSON_FUNGUS: - gen = TreeFeatures.CRIMSON_FUNGUS_PLANTED; -+ gen = this.isNormalWorld() ? TreeFeatures.CRIMSON_FUNGUS_PLANTED : TreeFeatures.CRIMSON_FUNGUS; // Paper - if world gen, don't use planted version ++ gen = this.isNormalWorld() ? TreeFeatures.CRIMSON_FUNGUS_PLANTED : TreeFeatures.CRIMSON_FUNGUS; // Paper - Fix async entity add due to fungus trees; if world gen, don't use planted version break; case WARPED_FUNGUS: - gen = TreeFeatures.WARPED_FUNGUS_PLANTED; -+ gen = this.isNormalWorld() ? TreeFeatures.WARPED_FUNGUS_PLANTED : TreeFeatures.WARPED_FUNGUS; // Paper - if world gen, don't use planted version ++ gen = this.isNormalWorld() ? TreeFeatures.WARPED_FUNGUS_PLANTED : TreeFeatures.WARPED_FUNGUS; // Paper - Fix async entity add due to fungus trees; if world gen, don't use planted version break; case AZALEA: gen = TreeFeatures.AZALEA_TREE; diff --git a/patches/server/0869-Friction-API.patch b/patches/server/0869-Friction-API.patch index 67e31d0da623..443e360cd347 100644 --- a/patches/server/0869-Friction-API.patch +++ b/patches/server/0869-Friction-API.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 944463496a9c2757e8ddb0104c77bbfb40e0d4ca..a833036642b35e23b6887e0413d214ce0a6a4287 100644 +index f3d201cba18be448a52304a43ec05b109010bb98..38d0def27625f5b7918cc2cebad0d9db2596ff3b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { public boolean bukkitPickUpLoot; public org.bukkit.craftbukkit.entity.CraftLivingEntity getBukkitLivingEntity() { return (org.bukkit.craftbukkit.entity.CraftLivingEntity) super.getBukkitEntity(); } // Paper public boolean silentDeath = false; // Paper - mark entity as dying silently for cancellable death event -+ public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper ++ public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API @Override public float getBukkitYaw() { @@ -21,7 +21,7 @@ index 944463496a9c2757e8ddb0104c77bbfb40e0d4ca..a833036642b35e23b6887e0413d214ce public boolean shouldDiscardFriction() { - return this.discardFriction; -+ return !this.frictionState.toBooleanOrElse(!this.discardFriction); // Paper ++ return !this.frictionState.toBooleanOrElse(!this.discardFriction); // Paper - Friction API } public void setDiscardFriction(boolean noDrag) { @@ -29,19 +29,19 @@ index 944463496a9c2757e8ddb0104c77bbfb40e0d4ca..a833036642b35e23b6887e0413d214ce @Override public void addAdditionalSaveData(CompoundTag nbt) { -+ // Paper start ++ // Paper start - Friction API + if (this.frictionState != net.kyori.adventure.util.TriState.NOT_SET) { + nbt.putString("Paper.FrictionState", this.frictionState.toString()); + } -+ // Paper end ++ // Paper end - Friction API nbt.putFloat("Health", this.getHealth()); nbt.putShort("HurtTime", (short) this.hurtTime); nbt.putInt("HurtByTimestamp", this.lastHurtByMobTimestamp); -@@ -802,6 +808,15 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -802,6 +808,16 @@ public abstract class LivingEntity extends Entity implements Attackable { absorptionAmount = 0; } this.internalSetAbsorptionAmount(absorptionAmount); -+ ++ // Paper start - Friction API + if (nbt.contains("Paper.FrictionState")) { + String fs = nbt.getString("Paper.FrictionState"); + try { @@ -50,18 +50,19 @@ index 944463496a9c2757e8ddb0104c77bbfb40e0d4ca..a833036642b35e23b6887e0413d214ce + LOGGER.error("Unknown friction state " + fs + " for " + this); + } + } ++ // Paper end - Friction API // Paper end if (nbt.contains("Attributes", 9) && this.level() != null && !this.level().isClientSide) { this.getAttributes().load(nbt.getList("Attributes", 10)); diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 6b18f23b57c7000dce9726df98a509ee9477f6d2..a39db702063887cf530f272deaf4f334047cc7d4 100644 +index 6b18f23b57c7000dce9726df98a509ee9477f6d2..c34c698d389da29c9cfaa56cb8023e30416a14ba 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -57,6 +57,7 @@ public class ItemEntity extends Entity implements TraceableEntity { private int lastTick = MinecraftServer.currentTick - 1; // CraftBukkit public boolean canMobPickup = true; // Paper private int despawnRate = -1; // Paper -+ public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper ++ public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API public ItemEntity(EntityType type, Level world) { super(type, world); @@ -70,11 +71,11 @@ index 6b18f23b57c7000dce9726df98a509ee9477f6d2..a39db702063887cf530f272deaf4f334 float f1 = 0.98F; - if (this.onGround()) { -+ // Paper start ++ // Paper start - Friction API + if (frictionState == net.kyori.adventure.util.TriState.FALSE) { + f1 = 1F; + } else if (this.onGround()) { -+ // Paper end ++ // Paper end - Friction API f1 = this.level().getBlockState(this.getBlockPosBelowThatAffectsMyMovement()).getBlock().getFriction() * 0.98F; } @@ -82,11 +83,11 @@ index 6b18f23b57c7000dce9726df98a509ee9477f6d2..a39db702063887cf530f272deaf4f334 @Override public void addAdditionalSaveData(CompoundTag nbt) { -+ // Paper start ++ // Paper start - Friction API + if (this.frictionState != net.kyori.adventure.util.TriState.NOT_SET) { + nbt.putString("Paper.FrictionState", this.frictionState.toString()); + } -+ // Paper end ++ // Paper end - Friction API nbt.putShort("Health", (short) this.health); nbt.putShort("Age", (short) this.age); nbt.putShort("PickupDelay", (short) this.pickupDelay); @@ -94,7 +95,7 @@ index 6b18f23b57c7000dce9726df98a509ee9477f6d2..a39db702063887cf530f272deaf4f334 this.cachedThrower = null; } -+ // Paper start ++ // Paper start - Friction API + if (nbt.contains("Paper.FrictionState")) { + String fs = nbt.getString("Paper.FrictionState"); + try { @@ -103,7 +104,7 @@ index 6b18f23b57c7000dce9726df98a509ee9477f6d2..a39db702063887cf530f272deaf4f334 + com.mojang.logging.LogUtils.getLogger().error("Unknown friction state " + fs + " for " + this); + } + } -+ // Paper end ++ // Paper end - Friction API + CompoundTag nbttagcompound1 = nbt.getCompound("Item"); diff --git a/patches/server/0870-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0870-Ability-to-control-player-s-insomnia-and-phantoms.patch index c5ec7d4e2fcb..620ab413a9b7 100644 --- a/patches/server/0870-Ability-to-control-player-s-insomnia-and-phantoms.patch +++ b/patches/server/0870-Ability-to-control-player-s-insomnia-and-phantoms.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ability to control player's insomnia and phantoms diff --git a/src/main/java/net/minecraft/world/entity/EntitySelector.java b/src/main/java/net/minecraft/world/entity/EntitySelector.java -index 93a41156a01a1638f3ef469b1518a07e7961f378..2986c3b1c9dd7f3a00ed7f25b25bfc2b513b35eb 100644 +index 93a41156a01a1638f3ef469b1518a07e7961f378..dbbce471c35849ea7d7ad07e9db9b7d8d85690df 100644 --- a/src/main/java/net/minecraft/world/entity/EntitySelector.java +++ b/src/main/java/net/minecraft/world/entity/EntitySelector.java @@ -28,7 +28,18 @@ public final class EntitySelector { @@ -13,7 +13,7 @@ index 93a41156a01a1638f3ef469b1518a07e7961f378..2986c3b1c9dd7f3a00ed7f25b25bfc2b }; public static final Predicate CAN_BE_COLLIDED_WITH = EntitySelector.NO_SPECTATORS.and(Entity::canBeCollidedWith); - public static Predicate IS_INSOMNIAC = (player) -> net.minecraft.util.Mth.clamp(((net.minecraft.server.level.ServerPlayer) player).getStats().getValue(net.minecraft.stats.Stats.CUSTOM.get(net.minecraft.stats.Stats.TIME_SINCE_REST)), 1, Integer.MAX_VALUE) >= 72000; // Paper -+ // Paper start ++ // Paper start - Ability to control player's insomnia and phantoms + public static Predicate IS_INSOMNIAC = (player) -> { + net.minecraft.server.level.ServerPlayer serverPlayer = (net.minecraft.server.level.ServerPlayer) player; + int playerInsomniaTicks = serverPlayer.level().paperConfig().entities.behavior.playerInsomniaStartTicks; @@ -24,23 +24,23 @@ index 93a41156a01a1638f3ef469b1518a07e7961f378..2986c3b1c9dd7f3a00ed7f25b25bfc2b + + return net.minecraft.util.Mth.clamp(serverPlayer.getStats().getValue(net.minecraft.stats.Stats.CUSTOM.get(net.minecraft.stats.Stats.TIME_SINCE_REST)), 1, Integer.MAX_VALUE) >= playerInsomniaTicks; + }; -+ // Paper end ++ // Paper end - Ability to control player's insomnia and phantoms private EntitySelector() {} // Paper start diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java -index b1fc786970b5288a02cc3a46e3fe7784ac566c07..dfeb3e336e06ef01f5401a362755030db942bb07 100644 +index b1fc786970b5288a02cc3a46e3fe7784ac566c07..7d7d37334321c844958ce09e77547dd61dcba6c8 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java @@ -33,13 +33,22 @@ public class PhantomSpawner implements CustomSpawner { } else if (!world.getGameRules().getBoolean(GameRules.RULE_DOINSOMNIA)) { return 0; } else { -+ // Paper start ++ // Paper start - Ability to control player's insomnia and phantoms + if (world.paperConfig().entities.behavior.phantomsSpawnAttemptMaxSeconds <= 0) { + return 0; + } -+ // Paper end ++ // Paper end - Ability to control player's insomnia and phantoms RandomSource randomsource = world.random; --this.nextTick; @@ -48,11 +48,11 @@ index b1fc786970b5288a02cc3a46e3fe7784ac566c07..dfeb3e336e06ef01f5401a362755030d return 0; } else { - this.nextTick += (60 + randomsource.nextInt(60)) * 20; -+ // Paper start ++ // Paper start - Ability to control player's insomnia and phantoms + int spawnAttemptMinSeconds = world.paperConfig().entities.behavior.phantomsSpawnAttemptMinSeconds; + int spawnAttemptMaxSeconds = world.paperConfig().entities.behavior.phantomsSpawnAttemptMaxSeconds; + this.nextTick += (spawnAttemptMinSeconds + randomsource.nextInt(spawnAttemptMaxSeconds - spawnAttemptMinSeconds + 1)) * 20; -+ // Paper end ++ // Paper end - Ability to control player's insomnia and phantoms if (world.getSkyDarken() < 5 && world.dimensionType().hasSkyLight()) { return 0; } else { @@ -61,7 +61,7 @@ index b1fc786970b5288a02cc3a46e3fe7784ac566c07..dfeb3e336e06ef01f5401a362755030d boolean flag2 = true; - if (randomsource.nextInt(j) >= 72000) { -+ if (randomsource.nextInt(j) >= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper ++ if (randomsource.nextInt(j) >= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper - Ability to control player's insomnia and phantoms BlockPos blockposition1 = blockposition.above(20 + randomsource.nextInt(15)).east(-10 + randomsource.nextInt(21)).south(-10 + randomsource.nextInt(21)); BlockState iblockdata = world.getBlockState(blockposition1); FluidState fluid = world.getFluidState(blockposition1); diff --git a/patches/server/0871-Fix-player-kick-on-shutdown.patch b/patches/server/0871-Fix-player-kick-on-shutdown.patch index 236f62d6c180..6c78f5fc99f5 100644 --- a/patches/server/0871-Fix-player-kick-on-shutdown.patch +++ b/patches/server/0871-Fix-player-kick-on-shutdown.patch @@ -9,7 +9,7 @@ also check if all packets are ignored during the shutdown process. See net.minecraft.network.Connection#channelRead0(ChannelHandlerContext, Packet) and net.minecraft.util.thread.BlockableEventLoop#executeIfPossible(Runnable) diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -index 7297bca9224c12d7ace0e1967340d99436afafc1..c5c734b9eb80d1cdf0e9fd8a043f2b6d1f4cbffe 100644 +index 7297bca9224c12d7ace0e1967340d99436afafc1..3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644 100644 --- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java +++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java @@ -44,7 +44,7 @@ public class PacketUtils { @@ -17,7 +17,7 @@ index 7297bca9224c12d7ace0e1967340d99436afafc1..c5c734b9eb80d1cdf0e9fd8a043f2b6d public static void ensureRunningOnSameThread(Packet packet, T listener, BlockableEventLoop engine) throws RunningOnDifferentThreadException { if (!engine.isSameThread()) { - engine.executeIfPossible(() -> { -+ engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown. ++ engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown packetProcessing.push(listener); // Paper - detailed watchdog information try { // Paper - detailed watchdog information if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerCommonPacketListenerImpl && ((ServerCommonPacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590 diff --git a/patches/server/0872-Sync-offhand-slot-in-menus.patch b/patches/server/0872-Sync-offhand-slot-in-menus.patch index 8789394eda5e..0b118ff9456b 100644 --- a/patches/server/0872-Sync-offhand-slot-in-menus.patch +++ b/patches/server/0872-Sync-offhand-slot-in-menus.patch @@ -8,44 +8,44 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th by pressing the offhand swap item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 24e6808e325bd80a55c94309aeab835804b03973..de27b8d578d429564038e01cef5f46d4d3d7e81c 100644 +index 24e6808e325bd80a55c94309aeab835804b03973..2c3a6cee9519f44c40227c5d9cbd63cc483d2d60 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -348,6 +348,13 @@ public class ServerPlayer extends Player { } -+ // Paper start ++ // Paper start - Sync offhand slot in menus + @Override + public void sendOffHandSlotChange() { + ServerPlayer.this.connection.send(new ClientboundContainerSetSlotPacket(ServerPlayer.this.inventoryMenu.containerId, ServerPlayer.this.inventoryMenu.incrementStateId(), net.minecraft.world.inventory.InventoryMenu.SHIELD_SLOT, ServerPlayer.this.inventoryMenu.getSlot(net.minecraft.world.inventory.InventoryMenu.SHIELD_SLOT).getItem().copy())); + } -+ // Paper end ++ // Paper end - Sync offhand slot in menus + @Override public void sendSlotChange(AbstractContainerMenu handler, int slot, ItemStack stack) { ServerPlayer.this.connection.send(new ClientboundContainerSetSlotPacket(handler.containerId, handler.incrementStateId(), slot, stack)); diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index c18348f4ea79b15b081cf7ba3bd9d77212aa086e..9ee3c2e0dcfaa4280be4973479c6490ded33809c 100644 +index c18348f4ea79b15b081cf7ba3bd9d77212aa086e..cd82b7e83f79e813d9d87d074bbccad4d2712d60 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -200,6 +200,7 @@ public abstract class AbstractContainerMenu { if (this.synchronizer != null) { this.synchronizer.sendInitialData(this, this.remoteSlots, this.remoteCarried, this.remoteDataSlots.toIntArray()); -+ this.synchronizer.sendOffHandSlotChange(); // Paper - update player's offhand since the offhand slot is not added to the slots for menus but can be changed by swapping from a menu slot ++ this.synchronizer.sendOffHandSlotChange(); // Paper - Sync offhand slot in menus; update player's offhand since the offhand slot is not added to the slots for menus but can be changed by swapping from a menu slot } } diff --git a/src/main/java/net/minecraft/world/inventory/ContainerSynchronizer.java b/src/main/java/net/minecraft/world/inventory/ContainerSynchronizer.java -index ff4fa86f9408e83e505f7e27692d3423f8570c48..db6c290dcbb8f5cb502f85e154b42ac89350a460 100644 +index ff4fa86f9408e83e505f7e27692d3423f8570c48..a45ef5fcffc05e4e30801b73e82d29c6dbf5b8fd 100644 --- a/src/main/java/net/minecraft/world/inventory/ContainerSynchronizer.java +++ b/src/main/java/net/minecraft/world/inventory/ContainerSynchronizer.java @@ -6,6 +6,7 @@ import net.minecraft.world.item.ItemStack; public interface ContainerSynchronizer { void sendInitialData(AbstractContainerMenu handler, NonNullList stacks, ItemStack cursorStack, int[] properties); -+ default void sendOffHandSlotChange() {} // Paper ++ default void sendOffHandSlotChange() {} // Paper - Sync offhand slot in menus void sendSlotChange(AbstractContainerMenu handler, int slot, ItemStack stack); void sendCarriedChange(AbstractContainerMenu handler, ItemStack stack); diff --git a/patches/server/0873-Player-Entity-Tracking-Events.patch b/patches/server/0873-Player-Entity-Tracking-Events.patch index e60534fb296f..3488a71fe226 100644 --- a/patches/server/0873-Player-Entity-Tracking-Events.patch +++ b/patches/server/0873-Player-Entity-Tracking-Events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player Entity Tracking Events diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 982750fd4f3f474514194df9b76388311c052b29..526b52bbf7c5d82645d26710f05e62b781e3cb0e 100644 +index 982750fd4f3f474514194df9b76388311c052b29..a9c94645a4bf3837bce5622b76f0d24a5a4ef065 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1409,7 +1409,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -16,12 +16,12 @@ index 982750fd4f3f474514194df9b76388311c052b29..526b52bbf7c5d82645d26710f05e62b7 + if (io.papermc.paper.event.player.PlayerTrackEntityEvent.getHandlerList().getRegisteredListeners().length == 0 || new io.papermc.paper.event.player.PlayerTrackEntityEvent(player.getBukkitEntity(), this.entity.getBukkitEntity()).callEvent()) { this.serverEntity.addPairing(player); + } -+ // Paper end ++ // Paper end - entity tracking events } } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d5322f344b65c4442958eb4e36ddae1f9cfca974..5968a555ce7cc4681f5c096bda7d007005e2a8bf 100644 +index f46640f3e3305b133bd49271377cedae4fe31ab5..1a44341de58519dff830afce72707c286ac51364 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4107,7 +4107,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -36,7 +36,7 @@ index d5322f344b65c4442958eb4e36ddae1f9cfca974..5968a555ce7cc4681f5c096bda7d0070 + new io.papermc.paper.event.player.PlayerUntrackEntityEvent(player.getBukkitEntity(), this.getBukkitEntity()).callEvent(); + } + } -+ // Paper end ++ // Paper end - entity tracking events public float rotate(Rotation rotation) { float f = Mth.wrapDegrees(this.getYRot()); diff --git a/patches/server/0874-Limit-pet-look-distance.patch b/patches/server/0874-Limit-pet-look-distance.patch index 6b827724a3c2..915187e43e82 100644 --- a/patches/server/0874-Limit-pet-look-distance.patch +++ b/patches/server/0874-Limit-pet-look-distance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Limit pet look distance diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/FollowOwnerGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/FollowOwnerGoal.java -index 0a3f7dcc0e205a85dbaa6dee1fc9ae2c7fa9e02d..689bbc0feb700cfd6b10601d2c5a237ec40ed756 100644 +index 0a3f7dcc0e205a85dbaa6dee1fc9ae2c7fa9e02d..8e2f7e2385588224018f7f94ed9686415bc91deb 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/FollowOwnerGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/FollowOwnerGoal.java @@ -93,7 +93,7 @@ public class FollowOwnerGoal extends Goal { @@ -13,7 +13,7 @@ index 0a3f7dcc0e205a85dbaa6dee1fc9ae2c7fa9e02d..689bbc0feb700cfd6b10601d2c5a237e @Override public void tick() { - this.tamable.getLookControl().setLookAt(this.owner, 10.0F, (float) this.tamable.getMaxHeadXRot()); -+ if (this.tamable.distanceToSqr(this.owner) <= 16 * 16) this.tamable.getLookControl().setLookAt(this.owner, 10.0F, (float) this.tamable.getMaxHeadXRot()); // Paper ++ if (this.tamable.distanceToSqr(this.owner) <= 16 * 16) this.tamable.getLookControl().setLookAt(this.owner, 10.0F, (float) this.tamable.getMaxHeadXRot()); // Paper - Limit pet look distance if (--this.timeToRecalcPath <= 0) { this.timeToRecalcPath = this.adjustedTickDelay(10); if (this.tamable.distanceToSqr((Entity) this.owner) >= 144.0D) { diff --git a/patches/server/0876-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0876-Fixes-and-additions-to-the-SpawnReason-API.patch index 6b49deaebe76..9224cb2a3ce9 100644 --- a/patches/server/0876-Fixes-and-additions-to-the-SpawnReason-API.patch +++ b/patches/server/0876-Fixes-and-additions-to-the-SpawnReason-API.patch @@ -21,7 +21,7 @@ index 823f3b3093cffb49ccdcbcfbe6d348009a553ad7..e754a294645e1af9e39bde32dd1387cd @Nullable diff --git a/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java b/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java -index 9652e3385ad10e5d825dd141f6be3522c596916d..6256ce68d6ecada66745fb09360cba2bf991360c 100644 +index 9652e3385ad10e5d825dd141f6be3522c596916d..baea154a24d1b888af18b9b792db9edebe60ebc6 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java +++ b/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java @@ -54,7 +54,7 @@ public class DragonFireball extends AbstractHurtingProjectile { @@ -29,12 +29,12 @@ index 9652e3385ad10e5d825dd141f6be3522c596916d..6256ce68d6ecada66745fb09360cba2b if (new com.destroystokyo.paper.event.entity.EnderDragonFireballHitEvent((org.bukkit.entity.DragonFireball) this.getBukkitEntity(), list.stream().map(LivingEntity::getBukkitLivingEntity).collect(java.util.stream.Collectors.toList()), (org.bukkit.entity.AreaEffectCloud) areaEffectCloud.getBukkitEntity()).callEvent()) { // Paper this.level().levelEvent(2006, this.blockPosition(), this.isSilent() ? -1 : 1); - this.level().addFreshEntity(areaEffectCloud); -+ this.level().addFreshEntity(areaEffectCloud, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EXPLOSION); // Paper ++ this.level().addFreshEntity(areaEffectCloud, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EXPLOSION); // Paper - use correct spawn reason } else areaEffectCloud.discard(); // Paper this.discard(); } diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index 0a2de99c22cfcc96a664dc2afe7379987ea815db..6fc8d7f93141d85d8aecc97314e747624beb5e6c 100644 +index 0a2de99c22cfcc96a664dc2afe7379987ea815db..452b3070e68dda1a4c7ba99cbefcaab5c5958bdd 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java @@ -117,7 +117,7 @@ public class FrogspawnBlock extends Block { @@ -42,12 +42,12 @@ index 0a2de99c22cfcc96a664dc2afe7379987ea815db..6fc8d7f93141d85d8aecc97314e74762 tadpole.moveTo(d, (double)pos.getY() - 0.5D, e, (float)k, 0.0F); tadpole.setPersistenceRequired(); - world.addFreshEntity(tadpole); -+ world.addFreshEntity(tadpole, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG); // Paper ++ world.addFreshEntity(tadpole, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG); // Paper - use correct spawn reason } } diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 3cedc349e79665d3d471c92b5dca25c9e66ca0bf..6c025c0fac9bd6373b99e374b773ca626d47ee6d 100644 +index 3cedc349e79665d3d471c92b5dca25c9e66ca0bf..4d3dc58750f80d4aacb46c98a8ffc66acb4a2edc 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java @@ -88,7 +88,7 @@ public class SnifferEggBlock extends Block { @@ -55,7 +55,7 @@ index 3cedc349e79665d3d471c92b5dca25c9e66ca0bf..6c025c0fac9bd6373b99e374b773ca62 sniffer.setBaby(true); sniffer.moveTo(vec3.x(), vec3.y(), vec3.z(), Mth.wrapDegrees(world.random.nextFloat() * 360.0F), 0.0F); - world.addFreshEntity(sniffer); -+ world.addFreshEntity(sniffer, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG); // Paper ++ world.addFreshEntity(sniffer, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EGG); // Paper - use correct spawn reason } } diff --git a/patches/server/0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch index b956dd543c08..061b9b4433bf 100644 --- a/patches/server/0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch +++ b/patches/server/0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve inlining for some hot BlockBehavior and FluidState diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index d91a82428a435a65bc55ad466ccebe91e0d905e0..17d2b90441d7513d7907b988610be8604ac05282 100644 +index d91a82428a435a65bc55ad466ccebe91e0d905e0..88d7973e83ee828fa71d95924a9134935e80954d 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -1078,15 +1078,15 @@ public abstract class BlockBehaviour implements FeatureElement { @@ -14,17 +14,17 @@ index d91a82428a435a65bc55ad466ccebe91e0d905e0..17d2b90441d7513d7907b988610be860 } - public boolean useShapeForLightOcclusion() { -+ public final boolean useShapeForLightOcclusion() { // Paper ++ public final boolean useShapeForLightOcclusion() { // Paper - Perf: Final for inlining return this.useShapeForLightOcclusion; } - public int getLightEmission() { -+ public final int getLightEmission() { // Paper ++ public final int getLightEmission() { // Paper - Perf: Final for inlining return this.lightEmission; } - public boolean isAir() { -+ public final boolean isAir() { // Paper ++ public final boolean isAir() { // Paper - Perf: Final for inlining return this.isAir; } @@ -33,7 +33,7 @@ index d91a82428a435a65bc55ad466ccebe91e0d905e0..17d2b90441d7513d7907b988610be860 } - public boolean canOcclude() { -+ public final boolean canOcclude() { // Paper ++ public final boolean canOcclude() { // Paper - Perf: Final for inlining return this.canOcclude; } @@ -42,29 +42,29 @@ index d91a82428a435a65bc55ad466ccebe91e0d905e0..17d2b90441d7513d7907b988610be860 } - public FluidState getFluidState() { -+ public final FluidState getFluidState() { // Paper ++ public final FluidState getFluidState() { // Paper - Perf: Final for inlining return this.fluidState; } - public boolean isRandomlyTicking() { -+ public final boolean isRandomlyTicking() { // Paper ++ public final boolean isRandomlyTicking() { // Paper - Perf: Final for inlining return this.isRandomlyTicking; } diff --git a/src/main/java/net/minecraft/world/level/material/FluidState.java b/src/main/java/net/minecraft/world/level/material/FluidState.java -index ea2a04e5298832177fac93568656ac45784d5eb6..27f136815afc360387704fa1f2773e3816cccff6 100644 +index ea2a04e5298832177fac93568656ac45784d5eb6..b4d4082c5488e7cb48166c8bf4443b4ffbbaa761 100644 --- a/src/main/java/net/minecraft/world/level/material/FluidState.java +++ b/src/main/java/net/minecraft/world/level/material/FluidState.java @@ -26,8 +26,12 @@ public final class FluidState extends StateHolder { public static final int AMOUNT_MAX = 9; public static final int AMOUNT_FULL = 8; -+ // Paper start ++ // Paper start - Perf: moved from isEmpty() + protected final boolean isEmpty; -+ // Paper end ++ // Paper end - Perf: moved from isEmpty() public FluidState(Fluid fluid, ImmutableMap, Comparable> propertiesMap, MapCodec codec) { super(fluid, propertiesMap, codec); -+ this.isEmpty = fluid.isEmpty(); // Paper - moved from isEmpty() ++ this.isEmpty = fluid.isEmpty(); // Paper - Perf: moved from isEmpty() } public Fluid getType() { @@ -73,7 +73,7 @@ index ea2a04e5298832177fac93568656ac45784d5eb6..27f136815afc360387704fa1f2773e38 public boolean isEmpty() { - return this.getType().isEmpty(); -+ return this.isEmpty; // Paper - moved into constructor ++ return this.isEmpty; // Paper - Perf: moved into constructor } public float getHeight(BlockGetter world, BlockPos pos) { diff --git a/patches/server/0880-Add-BlockLockCheckEvent.patch b/patches/server/0880-Add-BlockLockCheckEvent.patch index 860cae73de6b..dd261092ef40 100644 --- a/patches/server/0880-Add-BlockLockCheckEvent.patch +++ b/patches/server/0880-Add-BlockLockCheckEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add BlockLockCheckEvent diff --git a/src/main/java/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java -index fce3a45d09a93ca68a3d49f2e666afa4c860d042..c134d089e55ea2ffb180f92aea020bd7647259c9 100644 +index fce3a45d09a93ca68a3d49f2e666afa4c860d042..b8b4d74076fa5ed6eb3b2045384db77e165931b2 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java @@ -69,17 +69,44 @@ public abstract class BaseContainerBlockEntity extends BlockEntity implements Co @@ -13,12 +13,12 @@ index fce3a45d09a93ca68a3d49f2e666afa4c860d042..c134d089e55ea2ffb180f92aea020bd7 public boolean canOpen(Player player) { - return BaseContainerBlockEntity.canUnlock(player, this.lockKey, this.getDisplayName()); -+ return BaseContainerBlockEntity.canUnlock(player, this.lockKey, this.getDisplayName(), this); // Paper ++ return BaseContainerBlockEntity.canUnlock(player, this.lockKey, this.getDisplayName(), this); // Paper - Add BlockLockCheckEvent } -+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper ++ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - Add BlockLockCheckEvent public static boolean canUnlock(Player player, LockCode lock, Component containerName) { -+ // Paper start ++ // Paper start - Add BlockLockCheckEvent + return canUnlock(player, lock, containerName, null); + } + public static boolean canUnlock(Player player, LockCode lock, Component containerName, @Nullable BlockEntity blockEntity) { @@ -42,7 +42,7 @@ index fce3a45d09a93ca68a3d49f2e666afa4c860d042..c134d089e55ea2ffb180f92aea020bd7 + return true; + } + } else { // logic below is replaced by logic above -+ // Paper end ++ // Paper end - Add BlockLockCheckEvent if (!player.isSpectator() && !lock.unlocksWith(player.getMainHandItem())) { - player.displayClientMessage(Component.translatable("container.isLocked", containerName), true); + player.displayClientMessage(Component.translatable("container.isLocked", containerName), true); // Paper - diff on change @@ -51,12 +51,12 @@ index fce3a45d09a93ca68a3d49f2e666afa4c860d042..c134d089e55ea2ffb180f92aea020bd7 } else { return true; } -+ } // Paper ++ } // Paper - Add BlockLockCheckEvent } @Nullable diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index db38c178543e221251ae8c6ad618ad9372af7f40..2f12a1054c9c9e311e02dc5c3244ad3688db15ba 100644 +index db38c178543e221251ae8c6ad618ad9372af7f40..afb20f58655e958bd64efd1a1265da9c94857f79 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -470,7 +470,7 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name @@ -64,7 +64,7 @@ index db38c178543e221251ae8c6ad618ad9372af7f40..2f12a1054c9c9e311e02dc5c3244ad36 @Override public AbstractContainerMenu createMenu(int syncId, Inventory playerInventory, Player player) { - return BaseContainerBlockEntity.canUnlock(player, this.lockKey, this.getDisplayName()) ? new BeaconMenu(syncId, playerInventory, this.dataAccess, ContainerLevelAccess.create(this.level, this.getBlockPos())) : null; -+ return BaseContainerBlockEntity.canUnlock(player, this.lockKey, this.getDisplayName(), this) ? new BeaconMenu(syncId, playerInventory, this.dataAccess, ContainerLevelAccess.create(this.level, this.getBlockPos())) : null; ++ return BaseContainerBlockEntity.canUnlock(player, this.lockKey, this.getDisplayName(), this) ? new BeaconMenu(syncId, playerInventory, this.dataAccess, ContainerLevelAccess.create(this.level, this.getBlockPos())) : null; // Paper - Add BlockLockCheckEvent } @Override diff --git a/patches/server/0882-Improve-logging-and-errors.patch b/patches/server/0882-Improve-logging-and-errors.patch index aaf43d1ac7cc..c6ee1aa1768f 100644 --- a/patches/server/0882-Improve-logging-and-errors.patch +++ b/patches/server/0882-Improve-logging-and-errors.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve logging and errors Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/advancements/AdvancementTree.java b/src/main/java/net/minecraft/advancements/AdvancementTree.java -index 938fe76677139e7e99698b61691bfcadf70dbd87..5cf3732d2197b381ae9256d8bed03a755d8539f4 100644 +index 938fe76677139e7e99698b61691bfcadf70dbd87..a017ebf550e3430c14a7159baa9a644530a0b5ab 100644 --- a/src/main/java/net/minecraft/advancements/AdvancementTree.java +++ b/src/main/java/net/minecraft/advancements/AdvancementTree.java @@ -35,7 +35,7 @@ public class AdvancementTree { @@ -14,7 +14,7 @@ index 938fe76677139e7e99698b61691bfcadf70dbd87..5cf3732d2197b381ae9256d8bed03a75 } - AdvancementTree.LOGGER.info("Forgot about advancement {}", advancement.holder()); -+ AdvancementTree.LOGGER.debug("Forgot about advancement {}", advancement.holder()); // Paper ++ AdvancementTree.LOGGER.debug("Forgot about advancement {}", advancement.holder()); // Paper - Improve logging and errors this.nodes.remove(advancement.holder().id()); if (advancement.parent() == null) { this.roots.remove(advancement); @@ -23,24 +23,24 @@ index 938fe76677139e7e99698b61691bfcadf70dbd87..5cf3732d2197b381ae9256d8bed03a75 } - // AdvancementTree.LOGGER.info("Loaded {} advancements", this.nodes.size()); // CraftBukkit - moved to AdvancementDataWorld#reload -+ // AdvancementTree.LOGGER.info("Loaded {} advancements", this.nodes.size()); // CraftBukkit - moved to AdvancementDataWorld#reload // Paper - you say it was moved... but it wasn't :) it should be moved however, since this is called when the API creates an advancement ++ // AdvancementTree.LOGGER.info("Loaded {} advancements", this.nodes.size()); // CraftBukkit - moved to AdvancementDataWorld#reload // Paper - Improve logging and errors; you say it was moved... but it wasn't :) it should be moved however, since this is called when the API creates an advancement } private boolean tryInsert(AdvancementHolder advancement) { diff --git a/src/main/java/net/minecraft/server/ServerAdvancementManager.java b/src/main/java/net/minecraft/server/ServerAdvancementManager.java -index 536f0c496ce36ca3248fc6eeac9bbd77214a36f9..5e24c1e712eb16d0d5343760a65310bd79d1020c 100644 +index 536f0c496ce36ca3248fc6eeac9bbd77214a36f9..31718823250a1490b783f426fff65bf5a067b6f4 100644 --- a/src/main/java/net/minecraft/server/ServerAdvancementManager.java +++ b/src/main/java/net/minecraft/server/ServerAdvancementManager.java @@ -66,6 +66,7 @@ public class ServerAdvancementManager extends SimpleJsonResourceReloadListener { AdvancementTree advancementtree = new AdvancementTree(); advancementtree.addAll(this.advancements.values()); -+ LOGGER.info("Loaded {} advancements", advancementtree.nodes().size()); // Paper - moved from AdvancementTree#addAll ++ LOGGER.info("Loaded {} advancements", advancementtree.nodes().size()); // Paper - Improve logging and errors; moved from AdvancementTree#addAll Iterator iterator = advancementtree.roots().iterator(); while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2fdc9fcc8f88d78fd4b06bfae947c5cb28f8eea7..e602a3b5182e68e7cb20395169bb392d49a23e89 100644 +index 2fdc9fcc8f88d78fd4b06bfae947c5cb28f8eea7..c64cbcd11362ad3e4cf63d769732a5158d616c4c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3395,7 +3395,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -48,29 +48,29 @@ index 2fdc9fcc8f88d78fd4b06bfae947c5cb28f8eea7..e602a3b5182e68e7cb20395169bb392d this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator)); } catch (ProfilePublicKey.ValidationException profilepublickey_b) { - ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage()); -+ // ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage()); // Paper - unnecessary log ++ // ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage()); // Paper - Improve logging and errors this.disconnect(profilepublickey_b.getComponent(), profilepublickey_b.kickCause); // Paper - kick event causes } diff --git a/src/main/java/net/minecraft/server/packs/PathPackResources.java b/src/main/java/net/minecraft/server/packs/PathPackResources.java -index 89aa86a49eda563c82ccedc99641e699f8e578b0..4822f94ce183a99ad9e0d1bdc6c5708d958f6104 100644 +index 89aa86a49eda563c82ccedc99641e699f8e578b0..3edd14ce90edf98798b89921ad18547809de5d2c 100644 --- a/src/main/java/net/minecraft/server/packs/PathPackResources.java +++ b/src/main/java/net/minecraft/server/packs/PathPackResources.java @@ -108,6 +108,12 @@ public class PathPackResources extends AbstractPackResources { try (DirectoryStream directoryStream = Files.newDirectoryStream(path)) { for(Path path2 : directoryStream) { String string = path2.getFileName().toString(); -+ // Paper start ++ // Paper start - Improve logging and errors + if (!Files.isDirectory(path2)) { + LOGGER.error("Invalid directory entry: {} in {}.", string, this.root, new java.nio.file.NotDirectoryException(string)); + continue; + } -+ // Paper end ++ // Paper end - Improve logging and errors if (ResourceLocation.isValidNamespace(string)) { set.add(string); } else { diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java -index 4259181bab2dc4f2d0409b56fdf81d966003376d..93e7d350a4176250d9ae3f0e1e7e6a4197d613b0 100644 +index 4259181bab2dc4f2d0409b56fdf81d966003376d..a0ab3c55826af292d1cdac05648139b4d31f1376 100644 --- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java +++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java @@ -84,7 +84,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener { @@ -78,19 +78,19 @@ index 4259181bab2dc4f2d0409b56fdf81d966003376d..93e7d350a4176250d9ae3f0e1e7e6a41 })); this.byName = Maps.newHashMap(builder.build()); // CraftBukkit - RecipeManager.LOGGER.info("Loaded {} recipes", map1.size()); -+ RecipeManager.LOGGER.info("Loaded {} recipes", this.byName.size()); // Paper - log correct number of recipes ++ RecipeManager.LOGGER.info("Loaded {} recipes", this.byName.size()); // Paper - Improve logging and errors; log correct number of recipes } // CraftBukkit start diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java -index 080cca90f15d90249b7a38f33286ae2f735ba7d9..2677e21d8239bf0361a3bc5c9a50c328e54d70f6 100644 +index 080cca90f15d90249b7a38f33286ae2f735ba7d9..fde9aadd6c688b9797a6755f9d214918047598a0 100644 --- a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java +++ b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java @@ -44,6 +44,7 @@ import org.bukkit.material.MaterialData; */ @Deprecated public final class CraftLegacy { -+ private static final org.slf4j.Logger LOGGER = com.mojang.logging.LogUtils.getLogger(); // Paper ++ private static final org.slf4j.Logger LOGGER = com.mojang.logging.LogUtils.getLogger(); // Paper - Improve logging and errors private static final Map SPAWN_EGGS = new HashMap<>(); private static final Set whitelistedStates = new HashSet<>(Arrays.asList("explode", "check_decay", "decayable", "facing")); @@ -99,7 +99,7 @@ index 080cca90f15d90249b7a38f33286ae2f735ba7d9..2677e21d8239bf0361a3bc5c9a50c328 static { - System.err.println("Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!"); -+ LOGGER.warn("Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!"); // Paper - doesn't need to be an error ++ LOGGER.warn("Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!"); // Paper - Improve logging and errors; doesn't need to be an error if (MinecraftServer.getServer() != null && MinecraftServer.getServer().isDebugging()) { new Exception().printStackTrace(); } diff --git a/patches/server/0885-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0885-Add-missing-SpigotConfig-logCommands-check.patch index 855d97253750..fcf0ee0222bd 100644 --- a/patches/server/0885-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0885-Add-missing-SpigotConfig-logCommands-check.patch @@ -5,16 +5,16 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e602a3b5182e68e7cb20395169bb392d49a23e89..b9d6f38df243bbdd55639716cfaff24eb95aaa74 100644 +index c64cbcd11362ad3e4cf63d769732a5158d616c4c..6d8d07f30cc18357b2b3a6aa50c54deb1c52f2b7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2139,7 +2139,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void performChatCommand(ServerboundChatCommandPacket packet, LastSeenMessages lastSeenMessages) { // CraftBukkit start String command = "/" + packet.command(); -+ if (org.spigotmc.SpigotConfig.logCommands) { // Paper ++ if (org.spigotmc.SpigotConfig.logCommands) { // Paper - Add missing SpigotConfig logCommands check ServerGamePacketListenerImpl.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + command); -+ } // Paper ++ } // Paper - Add missing SpigotConfig logCommands check PlayerCommandPreprocessEvent event = new PlayerCommandPreprocessEvent(this.getCraftPlayer(), command, new LazyPlayerSet(this.server)); this.cserver.getPluginManager().callEvent(event); diff --git a/patches/server/0887-Flying-Fall-Damage.patch b/patches/server/0887-Flying-Fall-Damage.patch index 91a5284e6b1f..075299e624ce 100644 --- a/patches/server/0887-Flying-Fall-Damage.patch +++ b/patches/server/0887-Flying-Fall-Damage.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Flying Fall Damage diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 28fa46f29639a6b643b475912133d601028facb2..7f3466340891b4409d1399ebeb2ca865d77841cd 100644 +index 13a443d942aee77f18e91669b207d8ec54bbaf65..9851d5803caa33cbf740f1ef91d71255d9c3b018 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity { public float hurtDir; // Paper - protected -> public // Paper start public boolean affectsSpawning = true; -+ public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; ++ public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage // Paper end // CraftBukkit start @@ -26,7 +26,7 @@ index 28fa46f29639a6b643b475912133d601028facb2..7f3466340891b4409d1399ebeb2ca865 } else { if (fallDistance >= 2.0F) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a0c6902955296da171548618bfcbf629944f8737..b8b23105d37ac2d461d87d0c8e3c83c6fd09c960 100644 +index a0c6902955296da171548618bfcbf629944f8737..a917c616043f7e17144a52ff4cfe0cc0217087b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2472,6 +2472,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -44,7 +44,7 @@ index a0c6902955296da171548618bfcbf629944f8737..b8b23105d37ac2d461d87d0c8e3c83c6 + public net.kyori.adventure.util.TriState hasFlyingFallDamage() { + return getHandle().flyingFallDamage; + } -+ // Paper end ++ // Paper end - flying fall damage + @Override public int getNoDamageTicks() { diff --git a/patches/server/0888-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0888-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch index 814dcb6bbe11..a25f59f41558 100644 --- a/patches/server/0888-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch +++ b/patches/server/0888-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch @@ -18,17 +18,17 @@ index 1a0f86b5a632469942e33c237c247d2d1dee4a3d..25a5a3b949a0eb632611355e74ccd486 public String toString() { return "DamageSource (" + this.type().msgId() + ")"; diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java -index 8bde8c581796ed11809b80b9a30a33df86116745..4604f8b38460e9113e966889a679d4547f24aff6 100644 +index 8bde8c581796ed11809b80b9a30a33df86116745..f339475185645f7be30963e4f980ce81a6f7e536 100644 --- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java @@ -247,8 +247,17 @@ public class DamageSources { return this.source(DamageTypes.SONIC_BOOM, attacker); } -+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper ++ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - add exploded state public DamageSource badRespawnPointExplosion(Vec3 position) { - return new DamageSource(this.damageTypes.getHolderOrThrow(DamageTypes.BAD_RESPAWN_POINT), position); -+ // Paper start ++ // Paper start - add exploded state + return this.badRespawnPointExplosion(position, null); + } + @@ -36,12 +36,12 @@ index 8bde8c581796ed11809b80b9a30a33df86116745..4604f8b38460e9113e966889a679d454 + DamageSource source = new DamageSource(this.damageTypes.getHolderOrThrow(DamageTypes.BAD_RESPAWN_POINT), position); + source.explodedBlockState = explodedBlockState; + return source; -+ // Paper end ++ // Paper end - add exploded state } public DamageSource outOfBorder() { diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 5a2e322d349340fa58f133c2034765f90319b2be..dbe679bb81a903668262cdf629469e971b49e088 100644 +index 5a2e322d349340fa58f133c2034765f90319b2be..7bb8dc1f4697960cdc6bac0daec4b7a06a2dd7c4 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -368,7 +368,7 @@ public class Explosion { @@ -49,19 +49,19 @@ index 5a2e322d349340fa58f133c2034765f90319b2be..dbe679bb81a903668262cdf629469e97 this.yield = event.getYield(); } else { - BlockExplodeEvent event = new BlockExplodeEvent(location.getBlock(), blockList, this.yield); -+ BlockExplodeEvent event = new BlockExplodeEvent(location.getBlock(), blockList, this.yield, this.damageSource.explodedBlockState); // Paper - exploded block state ++ BlockExplodeEvent event = new BlockExplodeEvent(location.getBlock(), blockList, this.yield, this.damageSource.explodedBlockState); // Paper - add exploded state this.level.getCraftServer().getPluginManager().callEvent(event); this.wasCanceled = event.isCancelled(); bukkitBlocks = event.blockList(); diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java -index 0e63fa3b49b1a275254cf108a51ab18e816aad49..2deb0d861a5f66d177068f37dd56da5cf692633e 100644 +index 0e63fa3b49b1a275254cf108a51ab18e816aad49..e302fdf76d013826804108cb6444e2de5658b84f 100644 --- a/src/main/java/net/minecraft/world/level/block/BedBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java @@ -96,6 +96,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock // CraftBukkit - moved world and biome check into EntityHuman if (false && !BedBlock.canSetSpawn(world)) { -+ final org.bukkit.block.BlockState explodedBlockState = org.bukkit.craftbukkit.block.CraftBlockStates.getUnplacedBlockState(world, pos, state); // Paper - exploded block state (this won't be called due to the false, but it's good for reference) ++ final org.bukkit.block.BlockState explodedBlockState = org.bukkit.craftbukkit.block.CraftBlockStates.getUnplacedBlockState(world, pos, state); // Paper - add exploded state (this won't be called due to the false, but it's good for reference) world.removeBlock(pos, false); BlockPos blockposition1 = pos.relative(((Direction) state.getValue(BedBlock.FACING)).getOpposite()); @@ -70,7 +70,7 @@ index 0e63fa3b49b1a275254cf108a51ab18e816aad49..2deb0d861a5f66d177068f37dd56da5c Vec3 vec3d = pos.getCenter(); - world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); -+ world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, explodedBlockState), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); ++ world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, explodedBlockState), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); // Paper - add exploded state return InteractionResult.SUCCESS; } else if ((Boolean) state.getValue(BedBlock.OCCUPIED)) { if (!this.kickVillagerOutOfBed(world, pos)) { @@ -78,7 +78,7 @@ index 0e63fa3b49b1a275254cf108a51ab18e816aad49..2deb0d861a5f66d177068f37dd56da5c private InteractionResult explodeBed(BlockState iblockdata, Level world, BlockPos blockposition) { { { -+ final org.bukkit.block.BlockState explodedBlockState = org.bukkit.craftbukkit.block.CraftBlockStates.getUnplacedBlockState(world, blockposition, iblockdata); // Paper - exploded block state ++ final org.bukkit.block.BlockState explodedBlockState = org.bukkit.craftbukkit.block.CraftBlockStates.getUnplacedBlockState(world, blockposition, iblockdata); // Paper - add exploded state world.removeBlock(blockposition, false); BlockPos blockposition1 = blockposition.relative(((Direction) iblockdata.getValue(BedBlock.FACING)).getOpposite()); @@ -87,19 +87,19 @@ index 0e63fa3b49b1a275254cf108a51ab18e816aad49..2deb0d861a5f66d177068f37dd56da5c Vec3 vec3d = blockposition.getCenter(); - world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); -+ world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, explodedBlockState), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); ++ world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, explodedBlockState), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); // Paper - add exploded state return InteractionResult.SUCCESS; } } diff --git a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java -index c83ffba568f33323b0f8b9a03fa0b7bbbfed4355..797ece59c10bdb60a86f71ca3b7bb95dbe0f1078 100644 +index c83ffba568f33323b0f8b9a03fa0b7bbbfed4355..ec7b5e089c2911c7833e3fd7db4018ca2e0d4e85 100644 --- a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java +++ b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java @@ -131,6 +131,7 @@ public class RespawnAnchorBlock extends Block { } private void explode(BlockState state, Level world, final BlockPos explodedPos) { -+ final org.bukkit.block.BlockState explodedBlockState = org.bukkit.craftbukkit.block.CraftBlockStates.getBlockState(explodedPos, state, null); // Paper - exploded block state ++ final org.bukkit.block.BlockState explodedBlockState = org.bukkit.craftbukkit.block.CraftBlockStates.getBlockState(explodedPos, state, null); // Paper - add exploded state world.removeBlock(explodedPos, false); Stream stream = Direction.Plane.HORIZONTAL.stream(); // CraftBukkit - decompile error @@ -108,29 +108,29 @@ index c83ffba568f33323b0f8b9a03fa0b7bbbfed4355..797ece59c10bdb60a86f71ca3b7bb95d Vec3 vec3d = explodedPos.getCenter(); - world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d), explosiondamagecalculator, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); -+ world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, explodedBlockState), explosiondamagecalculator, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); // Paper ++ world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, explodedBlockState), explosiondamagecalculator, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); // Paper - add exploded state } public static boolean canSetSpawn(Level world) { diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java -index f81c0d07a5efc92942d8ab5c50a8260db033307d..d3dd58ccb350d849f1d169e015369c183625c0b6 100644 +index f81c0d07a5efc92942d8ab5c50a8260db033307d..8afc396c162d928902a9d9beb9f039b06630f755 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java @@ -276,6 +276,12 @@ public final class CraftBlockStates { BlockEntity tileEntity = (blockEntityTag == null) ? null : BlockEntity.loadStatic(blockPosition, blockData, blockEntityTag); return CraftBlockStates.getBlockState(null, blockPosition, blockData, tileEntity); } -+ // Paper start ++ // Paper start - add exploded state + public static BlockState getUnplacedBlockState(net.minecraft.world.level.BlockGetter levelAccessor, BlockPos blockPos, net.minecraft.world.level.block.state.BlockState blockData) { + BlockEntity tileEntity = levelAccessor.getBlockEntity(blockPos); + return CraftBlockStates.getBlockState(null, blockPos, blockData, tileEntity); + } -+ // Paper end ++ // Paper end - add exploded state // See BlockStateFactory#createBlockState(World, BlockPosition, IBlockData, TileEntity) private static CraftBlockState getBlockState(World world, BlockPos blockPosition, net.minecraft.world.level.block.state.BlockState blockData, BlockEntity tileEntity) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 38fc706dabbeb93959638deb22311e226a48a6ee..ef7d6f898c2c94d0697e38230564e110948b0460 100644 +index 38fc706dabbeb93959638deb22311e226a48a6ee..f5a1ff50e8943d7ea75f8b8534b17f7788d094e2 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1045,7 +1045,7 @@ public class CraftEventFactory { @@ -138,7 +138,7 @@ index 38fc706dabbeb93959638deb22311e226a48a6ee..ef7d6f898c2c94d0697e38230564e110 EntityDamageEvent event; if (damager == null) { - event = new EntityDamageByBlockEvent(null, entity.getBukkitEntity(), DamageCause.BLOCK_EXPLOSION, modifiers, modifierFunctions); -+ event = new EntityDamageByBlockEvent(null, entity.getBukkitEntity(), DamageCause.BLOCK_EXPLOSION, modifiers, modifierFunctions, source.explodedBlockState); // Paper - handle block state in damage ++ event = new EntityDamageByBlockEvent(null, entity.getBukkitEntity(), DamageCause.BLOCK_EXPLOSION, modifiers, modifierFunctions, source.explodedBlockState); // Paper - add exploded state } else if (entity instanceof EnderDragon && /*PAIL FIXME ((EntityEnderDragon) entity).target == damager*/ false) { event = new EntityDamageEvent(entity.getBukkitEntity(), DamageCause.ENTITY_EXPLOSION, modifiers, modifierFunctions); } else { diff --git a/patches/server/0890-config-for-disabling-entity-tag-tags.patch b/patches/server/0890-config-for-disabling-entity-tag-tags.patch index e97b2390972b..4028bb8e3b2e 100644 --- a/patches/server/0890-config-for-disabling-entity-tag-tags.patch +++ b/patches/server/0890-config-for-disabling-entity-tag-tags.patch @@ -5,7 +5,7 @@ Subject: [PATCH] config for disabling entity tag tags diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index e754a294645e1af9e39bde32dd1387cd54335e7e..940b8d0b89d7e55c938aefbe80ee71b0db3dacb8 100644 +index e754a294645e1af9e39bde32dd1387cd54335e7e..82695b6f25011a315027bd7a5cb305af31663d4a 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -497,6 +497,13 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -18,7 +18,7 @@ index e754a294645e1af9e39bde32dd1387cd54335e7e..940b8d0b89d7e55c938aefbe80ee71b0 + tag.remove(itemNbt.getCompound("EntityTag")); + } + } -+ // Paper end ++ // Paper end - filter out protected tags nbttagcompound1.merge(itemNbt.getCompound("EntityTag")); entity.setUUID(uuid); diff --git a/patches/server/0891-Use-single-player-info-update-packet-on-join.patch b/patches/server/0891-Use-single-player-info-update-packet-on-join.patch index 4b599b67237c..79d2c8ce3280 100644 --- a/patches/server/0891-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0891-Use-single-player-info-update-packet-on-join.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b9d6f38df243bbdd55639716cfaff24eb95aaa74..ab5b354b0fb42535e8d176a219876e23f08c1f3d 100644 +index 6d8d07f30cc18357b2b3a6aa50c54deb1c52f2b7..19c1c398ca8e91faa23e8dc3736cd0945a540419 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3425,7 +3425,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -13,19 +13,19 @@ index b9d6f38df243bbdd55639716cfaff24eb95aaa74..ab5b354b0fb42535e8d176a219876e23 this.chatMessageChain.append(() -> { this.player.setChatSession(session); - this.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.INITIALIZE_CHAT), List.of(this.player))); -+ this.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.INITIALIZE_CHAT), List.of(this.player)), this.player); // Paper ++ this.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.INITIALIZE_CHAT), List.of(this.player)), this.player); // Paper - Use single player info update packet on join }); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 85ed7d2134902e2b3455efdb0defbbc8627933bf..a9cc3d7213f51a2a2cdc915fd9ab3cf97767b698 100644 +index 85ed7d2134902e2b3455efdb0defbbc8627933bf..a34377fb8774e3c43db9e460c88239e2a5b41f5d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { // CraftBukkit start - sendAll above replaced with this loop ClientboundPlayerInfoUpdatePacket packet = ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(player)); -+ final List onlinePlayers = Lists.newArrayListWithExpectedSize(this.players.size() - 1); // Paper - use single player info update packet ++ final List onlinePlayers = Lists.newArrayListWithExpectedSize(this.players.size() - 1); // Paper - Use single player info update packet on join for (int i = 0; i < this.players.size(); ++i) { ServerPlayer entityplayer1 = (ServerPlayer) this.players.get(i); @@ -34,18 +34,18 @@ index 85ed7d2134902e2b3455efdb0defbbc8627933bf..a9cc3d7213f51a2a2cdc915fd9ab3cf9 } - if (!bukkitPlayer.canSee(entityplayer1.getBukkitEntity())) { -+ if (entityplayer1 == player || !bukkitPlayer.canSee(entityplayer1.getBukkitEntity())) { // Paper - don't include joining player ++ if (entityplayer1 == player || !bukkitPlayer.canSee(entityplayer1.getBukkitEntity())) { // Paper - Use single player info update packet on join; Don't include joining player continue; } - player.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(entityplayer1))); -+ onlinePlayers.add(entityplayer1); // Paper - use single player info update packet ++ onlinePlayers.add(entityplayer1); // Pape - Use single player info update packet on join } -+ // Paper start - use single player info update packet ++ // Paper start - Use single player info update packet on join + if (!onlinePlayers.isEmpty()) { + player.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(onlinePlayers)); + } -+ // Paper end ++ // Paper end - Use single player info update packet on join player.sentListPacket = true; player.supressTrackerForLogin = false; // Paper ((ServerLevel)player.level()).getChunkSource().chunkMap.addEntity(player); // Paper - track entity now diff --git a/patches/server/0892-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0892-Correctly-shrink-items-during-EntityResurrectEvent.patch index 0be32d52e99d..bb2e2a0779a6 100644 --- a/patches/server/0892-Correctly-shrink-items-during-EntityResurrectEvent.patch +++ b/patches/server/0892-Correctly-shrink-items-during-EntityResurrectEvent.patch @@ -22,10 +22,10 @@ This patch corrects this behaviour by only shrinking the item if a totem of undying was found and the event was called uncancelled. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a833036642b35e23b6887e0413d214ce0a6a4287..2b034ff26e8d6b28910945dc4e72a8a0d4b82a6f 100644 +index 38d0def27625f5b7918cc2cebad0d9db2596ff3b..4b6858596f03233bf432329c1cdfe306cd0781ac 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1610,7 +1610,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1611,7 +1611,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.level().getCraftServer().getPluginManager().callEvent(event); if (!event.isCancelled()) { diff --git a/patches/server/0903-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0903-Fix-advancement-triggers-for-entity-damage.patch index 9b5be3df552f..aaf912275d31 100644 --- a/patches/server/0903-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0903-Fix-advancement-triggers-for-entity-damage.patch @@ -23,10 +23,10 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2b034ff26e8d6b28910945dc4e72a8a0d4b82a6f..070d9630af6d8c29de9df3b59ce14c57637ebf6d 100644 +index 4b6858596f03233bf432329c1cdfe306cd0781ac..a89b49052556cb26accc1957aaef2aea63f6f583 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2301,7 +2301,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2302,7 +2302,7 @@ public abstract class LivingEntity extends Entity implements Attackable { // Duplicate triggers if blocking if (event.getDamage(DamageModifier.BLOCKING) < 0) { if (this instanceof ServerPlayer) { @@ -35,7 +35,7 @@ index 2b034ff26e8d6b28910945dc4e72a8a0d4b82a6f..070d9630af6d8c29de9df3b59ce14c57 f2 = (float) -event.getDamage(DamageModifier.BLOCKING); if (f2 > 0.0F && f2 < 3.4028235E37F) { ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, Math.round(originalDamage * 10.0F)); -@@ -2309,7 +2309,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2310,7 +2310,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } if (damagesource.getEntity() instanceof ServerPlayer) { diff --git a/patches/server/0916-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0916-Fix-a-couple-of-upstream-bed-issues.patch index 6f14d13eb086..46bc18a26adf 100644 --- a/patches/server/0916-Fix-a-couple-of-upstream-bed-issues.patch +++ b/patches/server/0916-Fix-a-couple-of-upstream-bed-issues.patch @@ -10,11 +10,11 @@ but then replaced it with a bed, you could respawn at the bed in that world. diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java -index 2deb0d861a5f66d177068f37dd56da5cf692633e..04b1aa22ac1df39d274f27d9c93e0492a8a673f8 100644 +index e302fdf76d013826804108cb6444e2de5658b84f..2c1d03237d5b24b93807c7e97d969ace13d6a917 100644 --- a/src/main/java/net/minecraft/world/level/block/BedBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java @@ -109,6 +109,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock - world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, explodedBlockState), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); + world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d, explodedBlockState), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); // Paper - add exploded state return InteractionResult.SUCCESS; } else if ((Boolean) state.getValue(BedBlock.OCCUPIED)) { + if (!BedBlock.canSetSpawn(world)) return this.explodeBed(state, world, pos); // Paper - check explode first diff --git a/patches/server/0919-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0919-Break-redstone-on-top-of-trap-doors-early.patch index 905055e24f29..fd04a38431c1 100644 --- a/patches/server/0919-Break-redstone-on-top-of-trap-doors-early.patch +++ b/patches/server/0919-Break-redstone-on-top-of-trap-doors-early.patch @@ -7,7 +7,7 @@ This logic hooks into the neighbour update which should be invoked as a result of redstone powering the trap door. diff --git a/src/main/java/net/minecraft/world/level/block/TrapDoorBlock.java b/src/main/java/net/minecraft/world/level/block/TrapDoorBlock.java -index 98566a0d8776bd460abc28d56c5df7d6b7ff0506..ab5d25e2e1e86804c91885739c4f86770c40143c 100644 +index 98566a0d8776bd460abc28d56c5df7d6b7ff0506..1027e5e8da4323714a3e7fed8d39264b8b9e50e7 100644 --- a/src/main/java/net/minecraft/world/level/block/TrapDoorBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TrapDoorBlock.java @@ -153,7 +153,26 @@ public class TrapDoorBlock extends HorizontalDirectionalBlock implements SimpleW @@ -15,8 +15,8 @@ index 98566a0d8776bd460abc28d56c5df7d6b7ff0506..ab5d25e2e1e86804c91885739c4f8677 } // CraftBukkit end - if ((Boolean) state.getValue(TrapDoorBlock.OPEN) != flag1) { -+ boolean open = (Boolean) state.getValue(TrapDoorBlock.OPEN) != flag1; // Paper - break redstone on trapdoors early + // Paper start - break redstone on trapdoors early ++ boolean open = (Boolean) state.getValue(TrapDoorBlock.OPEN) != flag1; + // note: this must run before any state for this block/its neighborus are written to the world + // we allow the redstone event to fire so that plugins can block + if (flag1 && open) { // if we are now powered and it caused the trap door to open @@ -33,8 +33,8 @@ index 98566a0d8776bd460abc28d56c5df7d6b7ff0506..ab5d25e2e1e86804c91885739c4f8677 + } + } + } ++ if (open) { + // Paper end - break redstone on trapdoors early -+ if (open) { // Paper - break redstone on trapdoors early state = (BlockState) state.setValue(TrapDoorBlock.OPEN, flag1); this.playSound((Player) null, world, pos, flag1); } diff --git a/patches/server/0923-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0923-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch index 2127f28b00d0..01fcd2b85299 100644 --- a/patches/server/0923-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch +++ b/patches/server/0923-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch @@ -11,14 +11,17 @@ more than one Netty IO thread. Fixes https://github.com/PaperMC/Folia/issues/11 diff --git a/src/main/java/net/minecraft/resources/RegistryOps.java b/src/main/java/net/minecraft/resources/RegistryOps.java -index 7709eeac907c4895a264cec0a3d453aa8b194c18..29182c49b30110809f786ae99b47fcc67976562f 100644 +index 7709eeac907c4895a264cec0a3d453aa8b194c18..c7cfc3ca58f9439142fe5828117f6d576d7df10e 100644 --- a/src/main/java/net/minecraft/resources/RegistryOps.java +++ b/src/main/java/net/minecraft/resources/RegistryOps.java -@@ -19,11 +19,11 @@ public class RegistryOps extends DelegatingOps { +@@ -19,11 +19,14 @@ public class RegistryOps extends DelegatingOps { private static RegistryOps.RegistryInfoLookup memoizeLookup(final RegistryOps.RegistryInfoLookup registryInfoGetter) { return new RegistryOps.RegistryInfoLookup() { - private final Map>, Optional>> lookups = new HashMap<>(); ++ // The concurrent access occurs on the Netty IO threads when serializing packets. ++ // Thus, it seems it was an oversight of the implementator of this function as there ++ // are typically more than one Netty IO thread. + private final Map>, Optional>> lookups = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - fix concurrent access to lookups field @Override diff --git a/patches/server/0924-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0924-Optimise-recalcBlockCounts-for-empty-sections.patch index 0e23a9a1236a..5918de4d55be 100644 --- a/patches/server/0924-Optimise-recalcBlockCounts-for-empty-sections.patch +++ b/patches/server/0924-Optimise-recalcBlockCounts-for-empty-sections.patch @@ -16,14 +16,14 @@ sections with a ZeroBitStorage data to to take ~20% of the process, now it takes <1%. diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index b39fea80fcb83873b7e7085eaaf935e712f0ede7..f0de72afad4bb571153436399386a6a8a70582a6 100644 +index b39fea80fcb83873b7e7085eaaf935e712f0ede7..9da74764a91bea7822c0444b48623b23e038d3f2 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -144,6 +144,7 @@ public class LevelChunkSection { this.nonEmptyBlockCount = 0; this.tickingBlockCount = 0; this.tickingFluidCount = 0; -+ if (this.maybeHas((BlockState state) -> !state.isAir() || !state.getFluidState().isEmpty())) { // Paper - do not run forEachLocation on clearly empty sections ++ if (this.maybeHas((BlockState state) -> !state.isAir() || !state.getFluidState().isEmpty())) { // Paper - Perf: do not run forEachLocation on clearly empty sections this.states.forEachLocation((BlockState iblockdata, int i) -> { FluidState fluid = iblockdata.getFluidState(); @@ -31,7 +31,7 @@ index b39fea80fcb83873b7e7085eaaf935e712f0ede7..f0de72afad4bb571153436399386a6a8 // Paper end - optimise collisions }); -+ } // Paper - do not run forEachLocation on clearly empty sections ++ } // Paper - Perf: do not run forEachLocation on clearly empty sections // Paper end } diff --git a/patches/server/0937-Properly-cancel-usable-items.patch b/patches/server/0937-Properly-cancel-usable-items.patch index 59b569391ca1..d0ca00be320b 100644 --- a/patches/server/0937-Properly-cancel-usable-items.patch +++ b/patches/server/0937-Properly-cancel-usable-items.patch @@ -34,7 +34,7 @@ index f58386e952d29a16d160b628a23efbe102791277..d0404f7f103b4f98f9d76cf2a5cddec0 return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 48bae46261f592923c8c6f1d56c92ce6a121f1b8..589662812bc6f6fb09d50d8793c7ed4cb1140af8 100644 +index caa9fd305c90fe84b2eebca0f244c818800021ca..3f9106eb34db5df10961a44f56f2110fec8bd3c6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1955,6 +1955,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -46,10 +46,10 @@ index 48bae46261f592923c8c6f1d56c92ce6a121f1b8..589662812bc6f6fb09d50d8793c7ed4c return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 070d9630af6d8c29de9df3b59ce14c57637ebf6d..668297b8978cbde6635254122f8f29f4a7ead45b 100644 +index a89b49052556cb26accc1957aaef2aea63f6f583..fe5c46c9bb6130a29ec9cbb65e9e7142a79a157e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3813,6 +3813,11 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3814,6 +3814,11 @@ public abstract class LivingEntity extends Entity implements Attackable { return ((Byte) this.entityData.get(LivingEntity.DATA_LIVING_ENTITY_FLAGS) & 2) > 0 ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND; } diff --git a/patches/server/0944-Optimize-player-lookups-for-beacons.patch b/patches/server/0944-Optimize-player-lookups-for-beacons.patch index 5245e38833d7..65212bc207c3 100644 --- a/patches/server/0944-Optimize-player-lookups-for-beacons.patch +++ b/patches/server/0944-Optimize-player-lookups-for-beacons.patch @@ -7,7 +7,7 @@ For larger ranges, it's better to iterate over the player list than the entity slices. diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index 2f12a1054c9c9e311e02dc5c3244ad3688db15ba..f13943db6f2fb923c52dcf9e8bf7000041d0a362 100644 +index afb20f58655e958bd64efd1a1265da9c94857f79..5a1da6316ff56ea94a1ba1b68ce51bdffcee9736 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -329,7 +329,22 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name @@ -15,7 +15,7 @@ index 2f12a1054c9c9e311e02dc5c3244ad3688db15ba..f13943db6f2fb923c52dcf9e8bf70000 AABB axisalignedbb = (new AABB(blockposition)).inflate(d0).expandTowards(0.0D, (double) world.getHeight(), 0.0D); - List list = world.getEntitiesOfClass(Player.class, axisalignedbb); -+ // Paper start - optimize player lookup for beacons ++ // Paper start - Perf: optimize player lookup for beacons + List list; + if (d0 <= 128.0) { + list = world.getEntitiesOfClass(Player.class, axisalignedbb); @@ -30,7 +30,7 @@ index 2f12a1054c9c9e311e02dc5c3244ad3688db15ba..f13943db6f2fb923c52dcf9e8bf70000 + } + } + } -+ // Paper end - optimize player lookup for beacons ++ // Paper end - Perf: optimize player lookup for beacons return list; } diff --git a/patches/server/0946-Array-backed-synched-entity-data.patch b/patches/server/0946-Array-backed-synched-entity-data.patch index 20c0e69844d6..a8b90f7b2421 100644 --- a/patches/server/0946-Array-backed-synched-entity-data.patch +++ b/patches/server/0946-Array-backed-synched-entity-data.patch @@ -6,18 +6,18 @@ Subject: [PATCH] Array backed synched entity data Original code by jellysquid3 in Lithium, licensed under the GNU Lesser General Public License v3.0 (https://www.gnu.org/licenses/lgpl-3.0.html) diff --git a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java -index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..fa3faf436dc1c5ed2d53abaec6e126d3e3c22c36 100644 +index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..58b602e550258c1062ee940bc46538dac95d8979 100644 --- a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java +++ b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java @@ -34,6 +34,11 @@ public class SynchedEntityData { private final Int2ObjectMap> itemsById = new Int2ObjectOpenHashMap(); // private final ReadWriteLock lock = new ReentrantReadWriteLock(); // Spigot - not required private boolean isDirty; -+ // Paper start - array backed synched entity data ++ // Paper start - Perf: array backed synched entity data + private static final int DEFAULT_ENTRY_COUNT = 10; + private static final int GROW_FACTOR = 8; + private SynchedEntityData.DataItem[] itemsArray = new SynchedEntityData.DataItem[DEFAULT_ENTRY_COUNT]; -+ // Paper end - array backed synched entity data ++ // Paper end - Perf: array backed synched entity data public SynchedEntityData(Entity trackedEntity) { this.entity = trackedEntity; @@ -25,7 +25,7 @@ index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..fa3faf436dc1c5ed2d53abaec6e126d3 // this.lock.writeLock().lock(); // Spigot - not required this.itemsById.put(key.getId(), datawatcher_item); // this.lock.writeLock().unlock(); // Spigot - not required -+ // Paper start - array backed synched entity data ++ // Paper start - Perf: array backed synched entity data + if (this.itemsArray.length <= key.getId()) { + final int newSize = Math.min(key.getId() + GROW_FACTOR, MAX_ID_VALUE); + @@ -33,7 +33,7 @@ index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..fa3faf436dc1c5ed2d53abaec6e126d3 + } + + this.itemsArray[key.getId()] = datawatcher_item; -+ // Paper end - array backed synched entity data ++ // Paper end - Perf: array backed synched entity data } public boolean hasItem(EntityDataAccessor key) { @@ -42,7 +42,7 @@ index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..fa3faf436dc1c5ed2d53abaec6e126d3 return datawatcher_item; */ - return (SynchedEntityData.DataItem) this.itemsById.get(key.getId()); -+ // Paper start - array backed synched entity data ++ // Paper start - Perf: array backed synched entity data + final int id = key.getId(); + + if (id < 0 || id >= this.itemsArray.length) { @@ -50,7 +50,7 @@ index ccb7d92b6c36b6225a2e640f8cea6c0da37464c8..fa3faf436dc1c5ed2d53abaec6e126d3 + } + + return (DataItem) this.itemsArray[id]; -+ // Paper end - array backed synched entity data ++ // Paper end - Perf: array backed synched entity data // Spigot end } diff --git a/patches/server/0964-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0964-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch index 84f919c79650..6701e32f16b1 100644 --- a/patches/server/0964-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch +++ b/patches/server/0964-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch @@ -7,14 +7,15 @@ The lists are only supposed to contain ticks for the 1 radius neighbours of the chunk. diff --git a/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java b/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java -index 8943081f270d5328b4f333b7bc1ae1a449d1788c..0f94af3502ef517c33d04841a80ea2ace077f0af 100644 +index 8943081f270d5328b4f333b7bc1ae1a449d1788c..a5b90222cfad5b282f3f2db4dd5d1b201761fb72 100644 --- a/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java +++ b/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java -@@ -99,6 +99,24 @@ public class UpgradeData { +@@ -99,6 +99,25 @@ public class UpgradeData { } + // Paper start - filter out relocated neighbour ticks ++ // The lists are only supposed to contain ticks for the 1 radius neighbours of the chunk + private static void filterTickList(int chunkX, int chunkZ, List> ticks) { + for (java.util.Iterator> iterator = ticks.iterator(); iterator.hasNext();) { + SavedTick tick = iterator.next(); @@ -35,7 +36,7 @@ index 8943081f270d5328b4f333b7bc1ae1a449d1788c..0f94af3502ef517c33d04841a80ea2ac public void upgrade(LevelChunk chunk) { this.upgradeInside(chunk); -@@ -106,6 +124,11 @@ public class UpgradeData { +@@ -106,6 +125,11 @@ public class UpgradeData { upgradeSides(chunk, direction8); } diff --git a/patches/server/0976-Add-Listing-API-for-Player.patch b/patches/server/0976-Add-Listing-API-for-Player.patch index 4f4a0cf369e6..a637d367e43e 100644 --- a/patches/server/0976-Add-Listing-API-for-Player.patch +++ b/patches/server/0976-Add-Listing-API-for-Player.patch @@ -74,7 +74,7 @@ index d43106eb89b14667e85cd6e8fa047d64f2e8ec87..56eddd28429cf42c02d88b8bf79f8b61 static class EntryBuilder { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index b33f6f3ceb279eb5a36df7d37d56bfce951c3de7..7535ff5f5495879a66085fa9e67c26efbdedb825 100644 +index 359fb75e1ea580bfd5c1b9400000c0c4c8fa08c8..77f585edf113033dc3d7de874d388f4de209fd3b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -356,14 +356,22 @@ public abstract class PlayerList { @@ -84,7 +84,7 @@ index b33f6f3ceb279eb5a36df7d37d56bfce951c3de7..7535ff5f5495879a66085fa9e67c26ef - ClientboundPlayerInfoUpdatePacket packet = ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(player)); + ClientboundPlayerInfoUpdatePacket packet = ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(player)); // Paper - Add Listing API for Player - final List onlinePlayers = Lists.newArrayListWithExpectedSize(this.players.size() - 1); // Paper - use single player info update packet + final List onlinePlayers = Lists.newArrayListWithExpectedSize(this.players.size() - 1); // Paper - Use single player info update packet on join for (int i = 0; i < this.players.size(); ++i) { ServerPlayer entityplayer1 = (ServerPlayer) this.players.get(i); @@ -100,18 +100,18 @@ index b33f6f3ceb279eb5a36df7d37d56bfce951c3de7..7535ff5f5495879a66085fa9e67c26ef + // Paper end - Add Listing API for Player } - if (entityplayer1 == player || !bukkitPlayer.canSee(entityplayer1.getBukkitEntity())) { // Paper - don't include joining player + if (entityplayer1 == player || !bukkitPlayer.canSee(entityplayer1.getBukkitEntity())) { // Paper - Use single player info update packet on join; Don't include joining player @@ -374,7 +382,7 @@ public abstract class PlayerList { } - // Paper start - use single player info update packet + // Paper start - Use single player info update packet on join if (!onlinePlayers.isEmpty()) { - player.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(onlinePlayers)); + player.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(onlinePlayers, player)); // Paper - Add Listing API for Player } - // Paper end + // Paper end - Use single player info update packet on join player.sentListPacket = true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b9431260c928c264eac9b4d64f5692945a5a0b1b..d9a0ee62892a2f8044d874d262125ea03ee60057 100644 +index 8bc528408164427380277f3805d5275ebd7c7bb4..5c3a9c7d6b2d9a810edbb356fb3cdde40b3194b1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -182,6 +182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0984-Improve-performance-of-mass-crafts.patch b/patches/server/0984-Improve-performance-of-mass-crafts.patch index 65946d47318b..21ed7a6c7806 100644 --- a/patches/server/0984-Improve-performance-of-mass-crafts.patch +++ b/patches/server/0984-Improve-performance-of-mass-crafts.patch @@ -20,7 +20,7 @@ After this patch, the full iteration over all recipes checking for a match shoul initial recipe match. Then that recipe will be checked first for all future recipe match checks. diff --git a/src/main/java/net/minecraft/world/inventory/CraftingMenu.java b/src/main/java/net/minecraft/world/inventory/CraftingMenu.java -index a7aa2a4845cbf5a0843dcb93f7bdc5501f62a145..4c8ce073094e55ea0df67fe02c0d1cc8aef76562 100644 +index a7aa2a4845cbf5a0843dcb93f7bdc5501f62a145..1b05847cd5ec69ecaf75a2d3803089efbb89d165 100644 --- a/src/main/java/net/minecraft/world/inventory/CraftingMenu.java +++ b/src/main/java/net/minecraft/world/inventory/CraftingMenu.java @@ -76,7 +76,8 @@ public class CraftingMenu extends RecipeBookMenu { @@ -28,13 +28,13 @@ index a7aa2a4845cbf5a0843dcb93f7bdc5501f62a145..4c8ce073094e55ea0df67fe02c0d1cc8 ServerPlayer entityplayer = (ServerPlayer) player; ItemStack itemstack = ItemStack.EMPTY; - Optional> optional = world.getServer().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, craftingInventory, world); -+ final RecipeHolder currentRecipe = craftingInventory.getCurrentRecipe(); // Paper - check last recipe used first -+ Optional> optional = currentRecipe == null ? world.getServer().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, craftingInventory, world) : world.getServer().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, craftingInventory, world, currentRecipe.id()).map(com.mojang.datafixers.util.Pair::getSecond); // Paper - check last recipe used first ++ final RecipeHolder currentRecipe = craftingInventory.getCurrentRecipe(); // Paper - Perf: Improve mass crafting; check last recipe used first ++ Optional> optional = currentRecipe == null ? world.getServer().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, craftingInventory, world) : world.getServer().getRecipeManager().getRecipeFor(RecipeType.CRAFTING, craftingInventory, world, currentRecipe.id()).map(com.mojang.datafixers.util.Pair::getSecond); // Paper - Perf: Improve mass crafting; check last recipe used first if (optional.isPresent()) { RecipeHolder recipeholder = (RecipeHolder) optional.get(); diff --git a/src/main/java/net/minecraft/world/inventory/ResultSlot.java b/src/main/java/net/minecraft/world/inventory/ResultSlot.java -index 7b2ac37e8bd305919f04ded043e50f13b3fe4253..8c97a7269040436cacc65fd182fa8e5f931b6c16 100644 +index 7b2ac37e8bd305919f04ded043e50f13b3fe4253..245731757f2593c736916ac6ee59e2c91d179934 100644 --- a/src/main/java/net/minecraft/world/inventory/ResultSlot.java +++ b/src/main/java/net/minecraft/world/inventory/ResultSlot.java @@ -59,7 +59,7 @@ public class ResultSlot extends Slot { @@ -42,28 +42,28 @@ index 7b2ac37e8bd305919f04ded043e50f13b3fe4253..8c97a7269040436cacc65fd182fa8e5f public void onTake(Player player, ItemStack stack) { this.checkTakeAchievements(stack); - NonNullList nonNullList = player.level().getRecipeManager().getRemainingItemsFor(RecipeType.CRAFTING, this.craftSlots, player.level()); -+ NonNullList nonNullList = player.level().getRecipeManager().getRemainingItemsFor(RecipeType.CRAFTING, this.craftSlots, player.level(), this.craftSlots.getCurrentRecipe() != null ? this.craftSlots.getCurrentRecipe().id() : null); // Paper - check last recipe used first ++ NonNullList nonNullList = player.level().getRecipeManager().getRemainingItemsFor(RecipeType.CRAFTING, this.craftSlots, player.level(), this.craftSlots.getCurrentRecipe() != null ? this.craftSlots.getCurrentRecipe().id() : null); // Paper - Perf: Improve mass crafting; check last recipe used first for(int i = 0; i < nonNullList.size(); ++i) { ItemStack itemStack = this.craftSlots.getItem(i); diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java -index 93e7d350a4176250d9ae3f0e1e7e6a4197d613b0..b81e1802c8dcc8ebdef96d70088c18379598a66b 100644 +index a0ab3c55826af292d1cdac05648139b4d31f1376..d87124f5356180a37e581febc6141fdc5f1395a7 100644 --- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java +++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java @@ -122,13 +122,16 @@ public class RecipeManager extends SimpleJsonResourceReloadListener { RecipeHolder recipeholder = (RecipeHolder) map.get(id); if (recipeholder != null && recipeholder.value().matches(inventory, world)) { -+ inventory.setCurrentRecipe(recipeholder); // Paper ++ inventory.setCurrentRecipe(recipeholder); // Paper - Perf: Improve mass crafting return Optional.of(Pair.of(id, recipeholder)); } } -+ inventory.setCurrentRecipe(null); // Paper - clear before it might be set again ++ inventory.setCurrentRecipe(null); // Paper - Perf: Improve mass crafting;; clear before it might be set again return map.entrySet().stream().filter((entry) -> { return ((RecipeHolder) entry.getValue()).value().matches(inventory, world); }).findFirst().map((entry) -> { -+ inventory.setCurrentRecipe(entry.getValue()); // Paper ++ inventory.setCurrentRecipe(entry.getValue()); // Paper - Perf: Improve mass crafting return Pair.of((ResourceLocation) entry.getKey(), (RecipeHolder) entry.getValue()); }); } @@ -72,12 +72,12 @@ index 93e7d350a4176250d9ae3f0e1e7e6a4197d613b0..b81e1802c8dcc8ebdef96d70088c1837 public > NonNullList getRemainingItemsFor(RecipeType type, C inventory, Level world) { - Optional> optional = this.getRecipeFor(type, inventory, world); -+ // Paper start - check last recipe used first ++ // Paper start - Perf: Improve mass crafting;; check last recipe used first + return this.getRemainingItemsFor(type, inventory, world, null); + } + public > NonNullList getRemainingItemsFor(RecipeType type, C inventory, Level world, @Nullable ResourceLocation firstToCheck) { + Optional> optional = firstToCheck == null ? this.getRecipeFor(type, inventory, world) : this.getRecipeFor(type, inventory, world, firstToCheck).map(Pair::getSecond); -+ // Paper end ++ // Paper end - Perf: Improve mass crafting if (optional.isPresent()) { return ((RecipeHolder) optional.get()).value().getRemainingItems(inventory); diff --git a/patches/server/0987-Optimize-nearest-structure-border-iteration.patch b/patches/server/0987-Optimize-nearest-structure-border-iteration.patch index 9cae3f6ba9d8..9073004414ed 100644 --- a/patches/server/0987-Optimize-nearest-structure-border-iteration.patch +++ b/patches/server/0987-Optimize-nearest-structure-border-iteration.patch @@ -14,7 +14,7 @@ ensure that the returned found structure (which may for example be a buried treasure that will be marked on a treasure map) is the same as in vanilla. diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index e9239f90e59d1429fc7a2618e0fd3b8a57633b87..59ba71da7f679e53aab2a84cb991b77d1abf6578 100644 +index e9239f90e59d1429fc7a2618e0fd3b8a57633b87..a21db714971025448dd915b2281a1d9121eaf758 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -260,12 +260,15 @@ public abstract class ChunkGenerator { @@ -22,7 +22,7 @@ index e9239f90e59d1429fc7a2618e0fd3b8a57633b87..59ba71da7f679e53aab2a84cb991b77d for (int j1 = -radius; j1 <= radius; ++j1) { - boolean flag1 = j1 == -radius || j1 == radius; -+ // Paper start - iterate over border chunks instead of entire square chunk area ++ // Paper start - Perf: iterate over border chunks instead of entire square chunk area + boolean flag1 = j1 == -radius || j1 == radius; final boolean onBorderAlongZAxis = flag1; // Paper - OBFHELPER - for (int k1 = -radius; k1 <= radius; ++k1) { @@ -33,7 +33,7 @@ index e9239f90e59d1429fc7a2618e0fd3b8a57633b87..59ba71da7f679e53aab2a84cb991b77d - if (flag1 || flag2) { + // if (flag1 || flag2) { + if (true) { -+ // Paper end - iterate over border chunks instead of entire square chunk area ++ // Paper end - Perf: iterate over border chunks instead of entire square chunk area int l1 = centerChunkX + i1 * j1; int i2 = centerChunkZ + i1 * k1; ChunkPos chunkcoordintpair = placement.getPotentialStructureChunk(seed, l1, i2); diff --git a/patches/server/1000-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/1000-Do-not-read-tile-entities-in-chunks-that-are-positio.patch index 0b09e35be70d..f75b6c2e5ac8 100644 --- a/patches/server/1000-Do-not-read-tile-entities-in-chunks-that-are-positio.patch +++ b/patches/server/1000-Do-not-read-tile-entities-in-chunks-that-are-positio.patch @@ -10,7 +10,7 @@ which would cause a crash on Folia but would appear to function fine on Paper. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index df9ae808c5a59ea25145c9df62f42fb33d159021..daa7525074facfbf31c1183e872f083a02697700 100644 +index df9ae808c5a59ea25145c9df62f42fb33d159021..11eb5fc65ea0dccbb38c7d47a4dfd5cf3b46c79e 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -381,6 +381,13 @@ public class ChunkSerializer { @@ -32,7 +32,7 @@ index df9ae808c5a59ea25145c9df62f42fb33d159021..daa7525074facfbf31c1183e872f083a boolean flag = nbttagcompound1.getBoolean("keepPacked"); + // Paper start - do not read tile entities positioned outside the chunk -+ BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound1); // moved up ++ BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound1); // moved up + ChunkPos chunkPos = chunk.getPos(); + if ((blockposition.getX() >> 4) != chunkPos.x || (blockposition.getZ() >> 4) != chunkPos.z) { + LOGGER.warn("Tile entity serialized in chunk " + chunkPos + " in world '" + world.getWorld().getName() + "' positioned at " + blockposition + " is located outside of the chunk"); @@ -44,7 +44,7 @@ index df9ae808c5a59ea25145c9df62f42fb33d159021..daa7525074facfbf31c1183e872f083a chunk.setBlockEntityNbt(nbttagcompound1); } else { - BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound1); -+ // Paper - do not read tile entities positioned outside the chunk - move up ++ // Paper - do not read tile entities positioned outside the chunk; move up BlockEntity tileentity = BlockEntity.loadStatic(blockposition, chunk.getBlockState(blockposition), nbttagcompound1); if (tileentity != null) { diff --git a/patches/server/1006-Lag-compensation-ticks.patch b/patches/server/1006-Lag-compensation-ticks.patch index 53173eaab90b..6188a58d5501 100644 --- a/patches/server/1006-Lag-compensation-ticks.patch +++ b/patches/server/1006-Lag-compensation-ticks.patch @@ -30,7 +30,7 @@ index d34f0d5abd93ed1729a00405d78a34a1873ba086..016b7628b289fb882f3ec15dd5b0cb4e net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index dae52be48e9789db2fbbff699f3e0c44086c864f..2e293fb94024d21769faf0e60e79e91efac79007 100644 +index eff2a7e25a7b99613c1e208058c316f1e3586995..973a9deba3b11399cafb3482f4c56c9c648c4d5f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -65,10 +65,10 @@ index 8bfd31ce3b4f88f0b32adb242c53771d9930b855..921d9d8bc6265631073d105fb8de6856 if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 668297b8978cbde6635254122f8f29f4a7ead45b..ceb3bfbd955111af183eb16c0946109251289d40 100644 +index fe5c46c9bb6130a29ec9cbb65e9e7142a79a157e..484609925cc8cbed7b31d3c7780b6d30f6ad454c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3818,6 +3818,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3819,6 +3819,10 @@ public abstract class LivingEntity extends Entity implements Attackable { this.getEntityData().resendPossiblyDesyncedDataValues(java.util.List.of(DATA_LIVING_ENTITY_FLAGS), serverPlayer); } // Paper end - Properly cancel usable items @@ -79,7 +79,7 @@ index 668297b8978cbde6635254122f8f29f4a7ead45b..ceb3bfbd955111af183eb16c09461092 private void updatingUsingItem() { if (this.isUsingItem()) { if (ItemStack.isSameItem(this.getItemInHand(this.getUsedItemHand()), this.useItem)) { -@@ -3836,7 +3840,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3837,7 +3841,12 @@ public abstract class LivingEntity extends Entity implements Attackable { this.triggerItemUseEffects(stack, 5); } @@ -93,7 +93,7 @@ index 668297b8978cbde6635254122f8f29f4a7ead45b..ceb3bfbd955111af183eb16c09461092 this.completeUsingItem(); } -@@ -3884,7 +3893,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3885,7 +3894,10 @@ public abstract class LivingEntity extends Entity implements Attackable { if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper use override flag this.useItem = itemstack; @@ -105,7 +105,7 @@ index 668297b8978cbde6635254122f8f29f4a7ead45b..ceb3bfbd955111af183eb16c09461092 if (!this.level().isClientSide) { this.setLivingEntityFlag(1, true); this.setLivingEntityFlag(2, hand == InteractionHand.OFF_HAND); -@@ -3909,7 +3921,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3910,7 +3922,10 @@ public abstract class LivingEntity extends Entity implements Attackable { } } else if (!this.isUsingItem() && !this.useItem.isEmpty()) { this.useItem = ItemStack.EMPTY; @@ -117,7 +117,7 @@ index 668297b8978cbde6635254122f8f29f4a7ead45b..ceb3bfbd955111af183eb16c09461092 } } -@@ -4044,7 +4059,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4045,7 +4060,10 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.useItem = ItemStack.EMPTY; diff --git a/patches/server/1007-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/1007-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch index 352537a5ad71..e2c7a15a63e4 100644 --- a/patches/server/1007-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch +++ b/patches/server/1007-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch @@ -14,10 +14,10 @@ field by calling any method on the class, and for convenience we use values(). diff --git a/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java b/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java -index 0f94af3502ef517c33d04841a80ea2ace077f0af..f9c1012216928b16feb14f0bf78fb328a443a7ee 100644 +index a5b90222cfad5b282f3f2db4dd5d1b201761fb72..4a2c233898c00e09a7e1b75d3a9a82b572b849d6 100644 --- a/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java +++ b/src/main/java/net/minecraft/world/level/chunk/UpgradeData.java -@@ -138,6 +138,7 @@ public class UpgradeData { +@@ -139,6 +139,7 @@ public class UpgradeData { Fluid fluid = tick.type() == Fluids.EMPTY ? level.getFluidState(tick.pos()).getType() : tick.type(); level.scheduleTick(tick.pos(), fluid, tick.delay(), tick.priority()); }); diff --git a/patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch index 0268bd6315c7..c028ab2ffcfc 100644 --- a/patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ceb3bfbd955111af183eb16c0946109251289d40..c30ae7d8b5ee601db30111054c74ce60625d8203 100644 +index 484609925cc8cbed7b31d3c7780b6d30f6ad454c..03ca9ae4a195a6caacf2424e069a9644357e7e06 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3703,7 +3703,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3704,7 +3704,7 @@ public abstract class LivingEntity extends Entity implements Attackable { public void take(Entity item, int count) { if (!item.isRemoved() && !this.level().isClientSide && (item instanceof ItemEntity || item instanceof AbstractArrow || item instanceof ExperienceOrb)) { diff --git a/patches/server/1031-Lazily-create-LootContext-for-criterions.patch b/patches/server/1031-Lazily-create-LootContext-for-criterions.patch index 64a83b51464e..611776bbed2a 100644 --- a/patches/server/1031-Lazily-create-LootContext-for-criterions.patch +++ b/patches/server/1031-Lazily-create-LootContext-for-criterions.patch @@ -8,7 +8,7 @@ For each player on each tick, enter block triggers are invoked, and these create To avoid this, we now lazily create the LootContext if the criterion passes the predicate AND if any of the listener triggers require a loot context instance diff --git a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java -index 0a22ed467d04c6421f4f8ef227a665ae135a5b0b..31fa6a0cb00139bfcb71f4fd30da8b736bf491f2 100644 +index 0a22ed467d04c6421f4f8ef227a665ae135a5b0b..00bf770559d9c628119658cb027eb0b970c04e1b 100644 --- a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java +++ b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java @@ -45,14 +45,14 @@ public abstract class SimpleCriterionTrigger> set = (Set) playerAdvancements.criterionData.get(this); // Paper - fix AdvancementDataPlayer leak if (set != null && !set.isEmpty()) { - LootContext lootContext = EntityPredicate.createContext(player, player); -+ LootContext lootContext = null; // EntityPredicate.createContext(player, player); // Paper - lazily create LootContext for criterions ++ LootContext lootContext = null; // EntityPredicate.createContext(player, player); // Paper - Perf: lazily create LootContext for criterions List> list = null; for(CriterionTrigger.Listener listener : set) { @@ -24,7 +24,7 @@ index 0a22ed467d04c6421f4f8ef227a665ae135a5b0b..31fa6a0cb00139bfcb71f4fd30da8b73 if (predicate.test(simpleInstance)) { Optional optional = simpleInstance.player(); - if (optional.isEmpty() || optional.get().matches(lootContext)) { -+ if (optional.isEmpty() || optional.get().matches(lootContext = (lootContext == null ? EntityPredicate.createContext(player, player) : lootContext))) { // Paper - lazily create LootContext for criterions ++ if (optional.isEmpty() || optional.get().matches(lootContext = (lootContext == null ? EntityPredicate.createContext(player, player) : lootContext))) { // Paper - Perf: lazily create LootContext for criterions if (list == null) { list = Lists.newArrayList(); } diff --git a/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch index 231b72f7c345..b773c4ca98a1 100644 --- a/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch @@ -19,7 +19,7 @@ where generation happened directly to a ServerLevel and the entity still has the flag set. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ad4a987c1de4265f9f0d6a8769aaed95d0a66786..a1fd04399ef61d0257d1e4a6bb627e4a1b7a7ceb 100644 +index 01c7b3623314bb0e6fa0a135de3db7c42ca5e373..e0dae41eb94da08649cba607975798dc2ac328ad 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1681,6 +1681,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -31,7 +31,7 @@ index ad4a987c1de4265f9f0d6a8769aaed95d0a66786..a1fd04399ef61d0257d1e4a6bb627e4a if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index aef714923ff1e9d476aacd9bfaa80f85dc84890b..d77faa799de1b7cc23adb91d82a45a05532532f1 100644 +index 47857a43753e86d1c7c535e69ed07b31d753ad99..b240dc6a1e45b534a017806b41ddb76423691ee7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -713,7 +713,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -48,7 +48,7 @@ index aef714923ff1e9d476aacd9bfaa80f85dc84890b..d77faa799de1b7cc23adb91d82a45a05 this.entityData.set(Entity.DATA_POSE, pose); } diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 940b8d0b89d7e55c938aefbe80ee71b0db3dacb8..abb2a02e0fc1deedb0ad76aec64f74ce355129cc 100644 +index 82695b6f25011a315027bd7a5cb305af31663d4a..d362a06d0600003d40f632eac602ff552cafb9da 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -588,9 +588,15 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -68,10 +68,10 @@ index 940b8d0b89d7e55c938aefbe80ee71b0db3dacb8..abb2a02e0fc1deedb0ad76aec64f74ce }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c30ae7d8b5ee601db30111054c74ce60625d8203..7204fc4d535fb7cf5579aa51148e6a1262f3124d 100644 +index 03ca9ae4a195a6caacf2424e069a9644357e7e06..a42023793805b294dc167ec2cd5445f32b0c51eb 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1133,6 +1133,11 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { } public boolean addEffect(MobEffectInstance mobeffect, @Nullable Entity entity, EntityPotionEffectEvent.Cause cause) { @@ -83,7 +83,7 @@ index c30ae7d8b5ee601db30111054c74ce60625d8203..7204fc4d535fb7cf5579aa51148e6a12 // org.spigotmc.AsyncCatcher.catchOp("effect add"); // Spigot // Paper - move to API if (this.isTickingEffects) { this.effectsToProcess.add(new ProcessableEffect(mobeffect, cause)); -@@ -1152,10 +1157,13 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1153,10 +1158,13 @@ public abstract class LivingEntity extends Entity implements Attackable { override = new MobEffectInstance(mobeffect1).update(mobeffect); } @@ -97,7 +97,7 @@ index c30ae7d8b5ee601db30111054c74ce60625d8203..7204fc4d535fb7cf5579aa51148e6a12 // CraftBukkit end if (mobeffect1 == null) { -@@ -1163,7 +1171,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1164,7 +1172,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.onEffectAdded(mobeffect, entity); flag = true; // CraftBukkit start diff --git a/patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index 795c995ce319..e22cda937cf0 100644 --- a/patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,10 +26,10 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3b7459226ae022c9e1de6dbf775046a767b409c9..97dbd1c8c8b6301bb607079575589dcceab0f881 100644 +index 38793c3ab6db7e311866de88ba272b8e98178a4b..4cbb1f5d904191e59395df0177e76e94faae764c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -4204,7 +4204,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4205,7 +4205,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (!(this instanceof ServerPlayer)) { EntityTeleportEvent teleport = new EntityTeleportEvent(this.getBukkitEntity(), new Location(this.level().getWorld(), d3, d4, d5), new Location(this.level().getWorld(), d0, d6, d2)); this.level().getCraftServer().getPluginManager().callEvent(teleport); @@ -39,7 +39,7 @@ index 3b7459226ae022c9e1de6dbf775046a767b409c9..97dbd1c8c8b6301bb607079575589dcc this.teleportTo(to.getX(), to.getY(), to.getZ()); } else { diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/FollowOwnerGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/FollowOwnerGoal.java -index 689bbc0feb700cfd6b10601d2c5a237ec40ed756..ca0a2191f5bfb3c44c1ddacab8b7a874c2f44cc1 100644 +index 8e2f7e2385588224018f7f94ed9686415bc91deb..c0da573e3818a1dd2c1ef5a61c7cb34934b0a252 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/FollowOwnerGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/FollowOwnerGoal.java @@ -129,7 +129,7 @@ public class FollowOwnerGoal extends Goal { From 94807a1d2e74b26b1a3154974d4024daa4c95f51 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Tue, 16 Jan 2024 19:27:39 +0100 Subject: [PATCH 17/45] [ci skip] Minor cleanup and patch merges --- patches/api/0009-Paper-Plugins.patch | 4 +- ...s-to-contain-the-source-jars-in-stac.patch | 4 +- ...eCollisionEvent-move-HandlerList-up.patch} | 42 ++++++-- ...sion-moving-velocity-to-VehicleBlock.patch | 49 --------- ...eplace-ItemFlag.HIDE_POTION_EFFECTS.patch} | 0 ...en-API.patch => 0401-Win-Screen-API.patch} | 0 ...tch => 0402-Add-Entity-Body-Yaw-API.patch} | 0 ...or-InventoryBlockStartEvent-subclas.patch} | 0 ...=> 0404-Add-EntityFertilizeEggEvent.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...API.patch => 0406-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ... 0408-Add-Mob-Experience-reward-API.patch} | 0 ... => 0409-Expand-PlayerItemMendEvent.patch} | 0 ... => 0410-Add-transient-modifier-API.patch} | 0 ...he-experimental-smithing-inventory-.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 0 ...4-Add-event-for-player-editing-sign.patch} | 0 ...415-Add-Sign-getInteractableSideFor.patch} | 0 ...t-API.patch => 0416-Fix-BanList-API.patch} | 0 ....patch => 0417-Add-whitelist-events.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 0 ...tch => 0419-Add-PlayerFailMoveEvent.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...tch => 0421-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...lace-methods-with-old-StructureType.patch} | 0 ... => 0424-Add-Listing-API-for-Player.patch} | 0 ...d-BlockFace-during-BlockDamageEvent.patch} | 0 ...h => 0426-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0427-Expand-Pose-API.patch} | 0 ...MerchantRecipe-add-copy-constructor.patch} | 0 ...patch => 0429-More-DragonBattle-API.patch} | 0 ...tch => 0430-Add-PlayerPickItemEvent.patch} | 0 ...=> 0431-Allow-trident-custom-damage.patch} | 0 ...pose-hand-during-BlockCanBuildEvent.patch} | 0 ...t-setBurnTime-to-valid-short-values.patch} | 0 ... 0434-Add-OfflinePlayer-isConnected.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...dItemsEvent-throwing-exception-when.patch} | 0 ...> 0438-Add-player-idle-duration-API.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...442-Add-UUID-attribute-modifier-API.patch} | 0 ... => 0443-Expand-LingeringPotion-API.patch} | 0 ...y-durability-check-in-ItemStack-isS.patch} | 0 ...tch => 0445-Add-Structure-check-API.patch} | 0 ...dd-missing-Experimental-annotations.patch} | 0 ...tch => 0447-Add-more-scoreboard-API.patch} | 0 ...stry.patch => 0448-Improve-Registry.patch} | 0 ...h => 0449-Add-experience-points-API.patch} | 0 ...h => 0450-Add-missing-InventoryType.patch} | 0 ...h => 0451-Add-drops-to-shear-events.patch} | 0 ... => 0452-Add-HiddenPotionEffect-API.patch} | 0 ...> 0453-Add-PlayerShieldDisableEvent.patch} | 0 ...mpty-String-in-NamespacedKey.fromSt.patch} | 0 ...0845-Replace-ticket-level-propagator.patch | 2 +- ...ent-Mob-AI-Rules-from-Loading-Chunks.patch | 40 -------- ...interactions-from-causing-chunk-load.patch | 99 +++++++++++++++++++ ...-Large-Packets-disconnecting-client.patch} | 2 +- ...Prevent-rayTrace-from-loading-chunks.patch | 29 ------ ...ntity-dismount-during-teleportation.patch} | 0 ...I.patch => 0280-Add-more-Zombie-API.patch} | 0 ...mits.patch => 0281-Book-Size-Limits.patch} | 2 +- ...0282-Add-PlayerConnectionCloseEvent.patch} | 2 +- ...replace-OfflinePlayer-getLastPlayed.patch} | 6 +- ...Prevent-Enderman-from-loading-chunks.patch | 30 ------ ...ehicle-tracking-issue-on-disconnect.patch} | 2 +- ...-remove-if-the-handle-is-a-custom-p.patch} | 2 +- ...ent.patch => 0286-BlockDestroyEvent.patch} | 2 +- ... => 0287-Async-command-map-building.patch} | 2 +- ...0288-Implement-Brigadier-Mojang-API.patch} | 6 +- ...ove-exact-choice-recipe-ingredients.patch} | 0 ... 0290-Limit-Client-Sign-length-more.patch} | 2 +- ...ggleEvent-when-whitelist-is-toggled.patch} | 2 +- ...e-Oversized-Tile-Entities-in-chunks.patch} | 0 ...=> 0293-Entity-getEntitySpawnReason.patch} | 0 ...Manager-and-add-advanced-packet-sup.patch} | 0 ...tch => 0295-Fire-event-on-GS4-query.patch} | 0 ...96-Implement-PlayerPostRespawnEvent.patch} | 2 +- ...for-pickupDelay-breaks-picking-up-i.patch} | 0 ...ts.patch => 0298-Server-Tick-Events.patch} | 0 ...299-PlayerDeathEvent-getItemsToKeep.patch} | 2 +- ...Optimize-Captured-TileEntity-Lookup.patch} | 2 +- ...API.patch => 0301-Add-Heightmap-API.patch} | 2 +- ...> 0302-Mob-Spawner-API-Enhancements.patch} | 0 ...-to-changed-postToMainThread-method.patch} | 2 +- ...-item-frames-are-modified-MC-123450.patch} | 0 ...0305-Implement-CraftBlockSoundGroup.patch} | 2 +- ...e-Keep-Spawn-Loaded-range-per-world.patch} | 6 +- ...07-Allow-Saving-of-Oversized-Chunks.patch} | 0 ...08-Expose-the-internal-current-tick.patch} | 2 +- ...09-Fix-World-isChunkGenerated-calls.patch} | 4 +- ...te-location-if-we-failed-to-read-it.patch} | 0 ...l-Spawned-mobs-towards-natural-spaw.patch} | 0 ...urable-projectile-relative-velocity.patch} | 0 ...h => 0313-offset-item-frame-ticking.patch} | 0 ...event-consuming-the-wrong-itemstack.patch} | 2 +- ...5-Dont-send-unnecessary-sign-update.patch} | 0 ...-option-to-disable-pillager-patrols.patch} | 0 patches/server/0316-Fix-MC-158900.patch | 25 ----- ...317-Flat-bedrock-generator-settings.patch} | 0 ...k-loads-when-villagers-try-to-find-.patch} | 0 ...656-Fix-Follow-Range-Initial-Target.patch} | 0 ... 0320-Duplicate-UUID-Resolve-Option.patch} | 0 ...ayerDeathEvent-shouldDropExperience.patch} | 2 +- ...ading-chunks-checking-hive-position.patch} | 0 ...hunks-from-Hoppers-and-other-things.patch} | 0 ...timise-EntityGetter-getPlayerByUUID.patch} | 2 +- ...325-Fix-items-not-falling-correctly.patch} | 0 ...ize-call-to-getFluid-for-explosions.patch} | 0 ...-in-stack-not-having-effects-when-d.patch} | 0 ...=> 0328-Entity-Activation-Range-2.0.patch} | 0 ...ializing-mismatching-chunk-coordina.patch} | 0 ...ement-alternative-item-despawn-rate.patch} | 0 ...=> 0331-Tracking-Range-Improvements.patch} | 0 ...-items-vanishing-through-end-portal.patch} | 2 +- ...ment-optional-per-player-mob-spawns.patch} | 2 +- ...7-Anti-Xray.patch => 0334-Anti-Xray.patch} | 2 +- ...et-gravity-in-void.-Fixes-MC-167279.patch} | 0 ...36-Improve-Block-breakNaturally-API.patch} | 2 +- ...-getChunkAt-calls-for-loaded-chunks.patch} | 0 ...0338-Add-debug-for-sync-chunk-loads.patch} | 2 +- ... => 0339-Improve-java-version-check.patch} | 0 ...tch => 0340-Add-ThrownEggHatchEvent.patch} | 0 ...p-API.patch => 0341-Entity-Jump-API.patch} | 0 ...-to-nerf-pigmen-from-nether-portals.patch} | 0 ... => 0343-Make-the-GUI-graph-fancier.patch} | 0 ...44-add-hand-to-BlockMultiPlaceEvent.patch} | 2 +- ...ipwire-hook-placement-before-update.patch} | 0 ...o-allow-iron-golems-to-spawn-in-air.patch} | 0 ...chance-of-villager-zombie-infection.patch} | 0 ...tch => 0348-Optimise-Chunk-getFluid.patch} | 2 +- ...rbose-world-setting-to-false-by-def.patch} | 0 ...Add-tick-times-API-and-mspt-command.patch} | 2 +- ...51-Expose-MinecraftServer-isRunning.patch} | 2 +- ...dd-Raw-Byte-ItemStack-Serialization.patch} | 0 ...pawn-settings-and-per-player-option.patch} | 2 +- ...nections-shouldn-t-hold-up-shutdown.patch} | 2 +- ...ow-bees-to-load-chunks-for-beehives.patch} | 0 ...PlayerChunkMap-adds-crashing-server.patch} | 2 +- ...tch => 0357-Don-t-tick-dead-players.patch} | 2 +- ...-Player-s-shouldn-t-be-able-to-move.patch} | 0 ...timize-Collision-to-not-load-chunks.patch} | 4 +- ...ove-existing-players-to-world-spawn.patch} | 4 +- ...alSelector-Goal.Flag-Set-operations.patch} | 0 ...h => 0362-Improved-Watchdog-Support.patch} | 2 +- ....patch => 0363-Optimize-Pathfinding.patch} | 0 ...4-Reduce-Either-Optional-allocation.patch} | 0 ...-memory-footprint-of-NBTTagCompound.patch} | 0 ...ent-opening-inventories-when-frozen.patch} | 4 +- ...entity-collision-code-if-not-needed.patch} | 2 +- ...Implement-Player-Client-Options-API.patch} | 2 +- ...ayer-is-attempted-to-be-removed-fro.patch} | 0 ...-Broken-behavior-of-PlayerJoinEvent.patch} | 4 +- ...awn-point-if-spawn-in-unloaded-worl.patch} | 2 +- ...layerAttackEntityCooldownResetEvent.patch} | 2 +- ...-fire-BlockFade-on-worldgen-threads.patch} | 0 ...tom-creative-and-insomniac-controls.patch} | 0 ...-duplication-issues-and-teleport-is.patch} | 0 ...patch => 0376-Villager-Restocks-API.patch} | 0 ...ickItem-Packet-and-kick-for-invalid.patch} | 2 +- ...n.patch => 0378-Expose-game-version.patch} | 2 +- ...> 0379-Optimize-Voxel-Shape-Merging.patch} | 0 ...per-thread-native-byte-buffer-cache.patch} | 0 ....patch => 0381-misc-debugging-dumps.patch} | 4 +- ...2-Prevent-teleporting-dead-entities.patch} | 2 +- ...traces-in-log-messages-crash-report.patch} | 4 +- ...atch => 0384-Implement-Mob-Goal-API.patch} | 2 +- ...=> 0385-Add-villager-reputation-API.patch} | 0 ...maximum-exp-value-when-merging-orbs.patch} | 2 +- ...tch => 0387-ExperienceOrbMergeEvent.patch} | 2 +- ...-Fix-PotionEffect-ignores-icon-flag.patch} | 0 ...API.patch => 0389-Potential-bed-API.patch} | 2 +- ...ait-for-Async-Tasks-during-shutdown.patch} | 4 +- ...er-respects-game-and-entity-rules-f.patch} | 0 ...nd-End-Portal-Frames-from-being-des.patch} | 6 +- ...> 0393-Ensure-safe-gateway-teleport.patch} | 2 +- ...-for-console-having-all-permissions.patch} | 0 ...x-villager-trading-demand-MC-163962.patch} | 0 ... => 0396-Maps-shouldn-t-load-chunks.patch} | 0 ...okup-for-Treasure-Maps-Fixes-lag-fr.patch} | 0 ...r-runTaskTimerAsynchronously-Plugin.patch} | 0 ...ton-physics-inconsistency-MC-188840.patch} | 0 ...uping.patch => 0400-Fix-sand-duping.patch} | 0 ...sing-chunks-due-to-integer-overflow.patch} | 0 ...desync-in-playerconnection-causing-.patch} | 2 +- ...older-method-without-block-snapshot.patch} | 0 ...API.patch => 0404-Improve-Arrow-API.patch} | 0 ...mplement-PlayerRecipeBookClickEvent.patch} | 2 +- ...ance-map-to-optimise-entity-tracker.patch} | 0 ...-Hide-sync-chunk-writes-behind-flag.patch} | 0 ...8-Add-permission-for-command-blocks.patch} | 2 +- ...ure-Entity-AABB-s-are-never-invalid.patch} | 0 ...d-Difficulty-Remembering-Difficulty.patch} | 4 +- ...atch => 0411-Paper-dumpitem-command.patch} | 0 ...Legacy-Component-serialization-size.patch} | 0 ...Optimize-Bit-Operations-by-inlining.patch} | 2 +- ...Plugin-Tickets-to-API-Chunk-Methods.patch} | 2 +- ...incremental-chunk-and-player-saving.patch} | 4 +- ...416-Support-old-UUID-format-for-NBT.patch} | 0 ...vert-legacy-attributes-in-Item-Meta.patch} | 0 ...> 0418-Remove-streams-from-hot-code.patch} | 0 ...0419-Support-components-in-ItemMeta.patch} | 0 ...e-fix-EntityTargetLivingEntityEvent.patch} | 0 ...patch => 0421-Add-entity-liquid-API.patch} | 0 ...date-itemstack-legacy-name-and-lore.patch} | 0 ...atch => 0423-Add-PrepareResultEvent.patch} | 0 ...-for-portal-on-world-gen-entity-add.patch} | 0 ...x-arrows-never-despawning-MC-125757.patch} | 0 ...Vanilla-Command-permission-checking.patch} | 0 ...-5989.patch => 0427-Fix-SPIGOT-5989.patch} | 10 +- ...-Bukkit-world-container-is-not-used.patch} | 0 ...5885-Unable-to-disable-advancements.patch} | 0 ...taPlayer-leak-due-from-quitting-ear.patch} | 0 ...e-NetworkManager-Exception-Handling.patch} | 0 ...ix-some-rails-connecting-improperly.patch} | 0 ...stake-in-CB-NBT-int-deserialization.patch} | 0 ...support.patch => 0434-Brand-support.patch} | 0 ...PickupItemAnimation-to-LivingEntity.patch} | 0 ...h => 0436-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 0 ...PI.patch => 0438-Add-moon-phase-API.patch} | 0 ...rver-load-chunks-from-newer-version.patch} | 0 ...headless-pistons-from-being-created.patch} | 0 ...ent.patch => 0441-Add-BellRingEvent.patch} | 0 ...dd-zombie-targets-turtle-egg-config.patch} | 0 ...patch => 0443-Buffer-joins-to-world.patch} | 0 ...-Eigencraft-redstone-implementation.patch} | 0 ...s-not-working-in-some-kick-messages.patch} | 0 ...reateEvent-needs-to-know-its-entity.patch} | 0 ...I.patch => 0447-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0450-Cache-block-data-strings.patch} | 0 ...rtation-and-cancel-velocity-if-tele.patch} | 0 ...l-open-container-api-to-HumanEntity.patch} | 0 ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 0 ...-Counter-to-allow-plugins-to-use-va.patch} | 0 ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0457-Entity-isTicking.patch} | 0 ...non-whitelisted-player-when-white-l.patch} | 0 ...-Concurrency-issue-in-ShufflingList.patch} | 2 +- ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 0 ...-large-move-vectors-crashing-server.patch} | 0 ...atch => 0462-Optimise-getType-calls.patch} | 0 ....patch => 0463-Villager-resetOffers.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 0 ...lockpos-allocation-from-pathfinding.patch} | 0 ...em-locations-dropped-from-campfires.patch} | 0 ...67-Fixed-TileEntityBell-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 0 ...ch => 0470-Add-ignore-discounts-API.patch} | 0 ...Toggle-for-removing-existing-dragon.patch} | 0 ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0473-Item-no-age-no-player-pickup.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...475-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0476-Add-API-for-quit-reason.patch} | 2 +- ...ng-Trader-spawn-rate-config-options.patch} | 0 ...ch => 0478-Expose-world-spawn-angle.patch} | 4 +- ...patch => 0479-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 0 ...81-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0482-Add-PlayerItemCooldownEvent.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...PI.patch => 0484-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 0 ...-missing-default-perms-for-commands.patch} | 0 ...h => 0487-Add-PlayerShearBlockEvent.patch} | 0 ....patch => 0488-Limit-recipe-packets.patch} | 0 ...-CraftSound-backwards-compatibility.patch} | 0 ...490-Player-Chunk-Load-Unload-Events.patch} | 0 ...1-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 0 ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 0 ...-invalid-ingredient-lists-in-Villag.patch} | 0 ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 0 ...ch => 0496-Implement-TargetHitEvent.patch} | 0 ... 0497-MC-4-Fix-item-position-desync.patch} | 0 ...498-Additional-Block-Material-API-s.patch} | 0 ...tch => 0499-Fix-harming-potion-dupe.patch} | 0 ...get-Material-from-Boats-and-Minecar.patch} | 0 ....patch => 0501-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 0 ...ment-PlayerFlowerPotManipulateEvent.patch} | 0 ...ct-event-not-being-called-sometimes.patch} | 0 ...h => 0506-Zombie-API-breaking-doors.patch} | 0 ...507-Fix-nerfed-slime-when-splitting.patch} | 0 ...=> 0508-Add-EntityLoadCrossbowEvent.patch} | 0 ...0509-Added-WorldGameRuleChangeEvent.patch} | 0 ...-Added-ServerResourcesReloadedEvent.patch} | 0 ...d-settings-for-mobs-picking-up-loot.patch} | 0 ...mplemented-BlockFailedDispenseEvent.patch} | 0 ...-Added-PlayerLecternPageChangeEvent.patch} | 0 ...-Added-PlayerLoomPatternSelectEvent.patch} | 0 ...nfigurable-door-breaking-difficulty.patch} | 0 ...ty-commands-shall-not-be-dispatched.patch} | 0 ...OIs.patch => 0517-Remove-stale-POIs.patch} | 0 ...h => 0518-Fix-villager-boat-exploit.patch} | 2 +- ...I.patch => 0519-Add-sendOpLevel-API.patch} | 6 +- ...0520-TODO-Registry-Modification-API.patch} | 0 ...h => 0521-Add-StructuresLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 0 ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 0 ...525-Make-schedule-command-per-world.patch} | 0 ...526-Configurable-max-leash-distance.patch} | 0 ...527-Implement-BlockPreDispenseEvent.patch} | 0 ...ng-of-PlayerChangeBeaconEffectEvent.patch} | 0 ...e-for-always-placing-the-dragon-egg.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...eash-variable-to-EntityUnleashEvent.patch} | 0 ...shield-blocking-on-dimension-change.patch} | 0 ...atch => 0533-add-DragonEggFormEvent.patch} | 0 ...Event.patch => 0534-EntityMoveEvent.patch} | 0 ...isable-pathfinding-updates-on-block.patch} | 0 ... 0536-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 0 ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ...atch => 0542-Expose-Tracked-Players.patch} | 0 ...GUI.patch => 0543-Improve-ServerGUI.patch} | 0 ...544-fix-converting-txt-to-json-file.patch} | 2 +- ...atch => 0545-Add-worldborder-events.patch} | 0 ...=> 0546-added-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 0 ...h => 0548-Add-recipe-to-cook-events.patch} | 0 ...patch => 0549-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 0 ....patch => 0551-Expand-world-key-API.patch} | 0 ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0553-Item-Rarity-API.patch} | 0 ...d-item-when-player-has-disconnected.patch} | 2 +- ...elist-use-configurable-kick-message.patch} | 0 ...gnore-result-of-PlayerEditBookEvent.patch} | 0 ...tch => 0557-Expose-protocol-version.patch} | 0 ...ab-completions-for-brigadier-comman.patch} | 0 ...temConsumeEvent-cancelling-properly.patch} | 0 ...patch => 0560-Add-bypass-host-check.patch} | 0 ...0561-Set-area-affect-cloud-rotation.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 0 ... => 0567-Added-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0568-More-World-API.patch} | 0 ... 0569-Added-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 0 ...n-acting-as-a-bed-respawn-from-the-.patch} | 8 +- ...acon-activation-deactivation-events.patch} | 0 ...-RespawnFlags-to-PlayerRespawnEvent.patch} | 6 +- ...dd-Channel-initialization-listeners.patch} | 0 ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0576-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...78-Entity-load-save-limit-per-chunk.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...close.patch => 0580-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0582-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 0 ...itions-to-PlayerGameModeChangeEvent.patch} | 0 ... => 0585-ItemStack-repair-check-API.patch} | 0 ....patch => 0586-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 0 ...PI.patch => 0589-Add-Mob-lookAt-API.patch} | 0 ...0590-Add-Unix-domain-socket-support.patch} | 0 ... => 0591-Add-EntityInsideBlockEvent.patch} | 0 ...92-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0594-More-Lidded-Block-API.patch} | 0 ...95-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0596-Add-PlayerKickEvent-causes.patch} | 4 +- ...0597-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0601-Add-BellRevealRaiderEvent.patch} | 0 ... 0602-Fix-invulnerable-end-crystals.patch} | 0 ...03-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0604-Fix-dangerous-end-portal-logic.patch} | 0 ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...patch => 0607-Line-Of-Sight-Changes.patch} | 0 ... => 0608-add-per-world-spawn-limits.patch} | 0 ...h => 0609-Fix-potions-splash-events.patch} | 0 ... => 0610-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 0 ...PI.patch => 0612-Missing-Entity-API.patch} | 2 +- ...ect-for-book-edit-is-called-on-main.patch} | 0 ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 0 ...rom-signs-not-firing-command-events.patch} | 0 ...ch => 0617-Adds-PlayerArmSwingEvent.patch} | 0 ...-event-leave-message-not-being-sent.patch} | 2 +- ...-for-mobs-immune-to-default-effects.patch} | 0 ...-t-apply-cramming-damage-to-players.patch} | 0 ...d-timings-for-sensors-and-behaviors.patch} | 0 ...-bunch-of-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0623-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0625-Add-System.out-err-catcher.patch} | 0 ...-to-contain-the-source-jars-in-stac.patch} | 0 ...-Improve-boat-collision-performance.patch} | 0 ...AFK-kick-while-watching-end-credits.patch} | 0 ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0630-Add-PlayerSetSpawnEvent.patch} | 4 +- ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...=> 0634-Added-EntityDamageItemEvent.patch} | 0 ...timize-indirect-passenger-iteration.patch} | 0 ...em-frame-map-cursor-update-interval.patch} | 0 ...Make-EntityUnleashEvent-cancellable.patch} | 0 ...638-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0640-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0642-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0644-Add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 0 ... 0646-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0647-Left-handed-API.patch} | 0 ...ch => 0648-Add-more-advancement-API.patch} | 0 ...649-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0650-Add-critical-damage-API.patch} | 0 ...0651-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0653-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...5-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...56-Vanilla-command-permission-fixes.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 0 ...58-Fix-GameProfileCache-concurrency.patch} | 0 ...659-Improve-and-expand-AsyncCatcher.patch} | 0 ...per-mobcaps-and-paper-playermobcaps.patch} | 0 ...tize-ResourceLocation-error-logging.patch} | 0 ...=> 0662-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 0 ...our-chunk-data-off-disk-when-conver.patch} | 0 ...d-state-when-raytracing-skip-air-bl.patch} | 16 ++- ...atch => 0669-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...> 0671-Execute-chunk-tasks-mid-tick.patch} | 0 ...rimise-map-impl-for-tracked-players.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ...74-Do-not-run-raytrace-logic-for-AIR.patch | 22 ----- ... 0674-Optimise-random-block-ticking.patch} | 0 ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 0 ...hread-worker-count-for-low-core-cou.patch} | 0 ... 0679-Distance-manager-tick-timings.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 0 ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 0 ...h => 0683-Add-packet-limiter-config.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0685-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0690-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 0 ...unintended-light-block-manipulation.patch} | 0 ...0693-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0695-Configurable-feature-seeds.patch} | 0 ... 0696-Add-root-admin-user-detection.patch} | 0 ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 0 ...ive-velocity-through-repeated-crits.patch} | 0 ...e-code-using-deprecated-for-removal.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 0 ...e-unnecessary-itemmeta-from-clients.patch} | 0 ...=> 0704-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0706-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0707-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...tch => 0709-Collision-optimisations.patch} | 4 +- ...n-checking-in-player-move-packet-ha.patch} | 0 ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0712-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...14-Fix-tripwire-state-inconsistency.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 0 ... => 0716-Improve-scoreboard-entries.patch} | 0 ...ch => 0717-Entity-powdered-snow-API.patch} | 0 ...0718-Add-API-for-item-entity-health.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0724-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0725-Bucketable-API.patch} | 0 ...es.patch => 0726-Validate-usernames.patch} | 2 +- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...1-Multiple-Entries-with-Scoreboards.patch} | 0 ...732-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0734-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0736-Fix-NotePlayEvent.patch} | 0 ....patch => 0737-Freeze-Tick-Lock-API.patch} | 0 ...lphin-API.patch => 0738-Dolphin-API.patch} | 0 ...h => 0739-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0743-Implement-regenerateChunk.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 0 ...gs.patch => 0746-Add-GameEvent-tags.patch} | 0 ...ks-fairly-for-worlds-while-waiting-.patch} | 0 ...tch => 0748-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 0 ...-worldlist-before-initing-the-world.patch} | 0 ... => 0753-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0754-Custom-Potion-Mixes.patch} | 0 ...55-Force-close-world-loading-screen.patch} | 2 +- ...756-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0759-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0762-Implement-getComputedBiome-API.patch} | 0 ...> 0763-Make-some-itemstacks-nonnull.patch} | 0 ...764-Implement-enchantWithLevels-API.patch} | 0 ...h => 0765-Fix-saving-in-unloadWorld.patch} | 0 ...h => 0766-Buffer-OOB-setBlock-calls.patch} | 0 ... 0767-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 2 +- ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 0 ...rd-against-invalid-entity-positions.patch} | 0 ...s.patch => 0772-cache-resource-keys.patch} | 0 ...ange-the-podium-for-the-EnderDragon.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 4 +- ...-ServerLevel-for-gamerule-callbacks.patch} | 0 ...ing-amount-to-PlayerItemDamageEvent.patch} | 0 ...> 0780-WorldCreator-keepSpawnLoaded.patch} | 0 ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0786-Add-PlayerStopUsingItemEvent.patch} | 0 ...rs.patch => 0787-Don-t-tick-markers.patch} | 0 ...tch => 0788-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 0 ...0790-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0793-Sanitize-Sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 0 ...-on-world-create-while-being-ticked.patch} | 0 ...ate-Current-redstone-implementation.patch} | 0 ...98-Dont-resent-entity-on-art-update.patch} | 0 ... => 0799-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0802-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 0 ...pty-items-from-being-added-to-world.patch} | 0 ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0806-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 0 ...PE.patch => 0809-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 0 ...API.patch => 0811-More-Teleport-API.patch} | 0 ... => 0812-Add-EntityPortalReadyEvent.patch} | 0 ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 0 ...on-plugins-accessing-faraway-chunks.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0818-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0820-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 0 ...822-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 0 ...ok-changes-from-crashing-the-server.patch} | 0 ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0826-Missing-eating-regain-reason.patch} | 0 ....patch => 0827-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...0-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0831-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0833-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0835-Add-getDrops-to-BlockState.patch} | 0 ...=> 0836-Fix-a-bunch-of-vanilla-bugs.patch} | 20 +++- ...y-onTrackingStart-during-navigation.patch} | 0 ... 0838-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0839-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0842-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0844-Add-entity-knockback-API.patch} | 0 ....patch => 0845-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...47-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 0848-Add-EntityToggleSitEvent.patch} | 6 +- ... => 0849-Add-fire-tick-delay-option.patch} | 0 ...patch => 0850-Add-Moving-Piston-API.patch} | 0 ...> 0851-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 4 +- ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 0 ...0855-Add-PrePlayerAttackEntityEvent.patch} | 0 ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 0 ... 0858-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...-Prevent-compass-from-loading-chunks.patch | 19 ---- ...860-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 0 ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0863-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0864-Friction-API.patch} | 0 ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0866-Fix-player-kick-on-shutdown.patch} | 0 ... => 0867-Sync-offhand-slot-in-menus.patch} | 0 ... 0868-Player-Entity-Tracking-Events.patch} | 0 ...tch => 0869-Limit-pet-look-distance.patch} | 0 ...ch => 0870-Properly-resend-entities.patch} | 2 +- ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0872-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 11 +-- ...es-in-dispense-events-regarding-sta.patch} | 2 +- ...tch => 0875-Add-BlockLockCheckEvent.patch} | 0 ... 0876-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0877-Improve-logging-and-errors.patch} | 0 ....patch => 0878-Improve-PortalEvents.patch} | 2 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 0 ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0882-Flying-Fall-Damage.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...ion-moving-velocity-to-VehicleBlock.patch} | 2 +- ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 4 +- ...k-items-during-EntityResurrectEvent.patch} | 0 ...en-API.patch => 0888-Win-Screen-API.patch} | 2 +- ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0891-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 0 ...=> 0894-Add-EntityFertilizeEggEvent.patch} | 2 +- ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 0 ...899-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0901-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...pers.patch => 0903-Optimize-Hoppers.patch} | 0 ...ives-generating-from-using-bonemeal.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 2 +- ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 2 +- ...ts-being-fired-from-unloaded-chunks.patch} | 2 +- ...0910-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0913-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 2 +- ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...17-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ...ecalcBlockCounts-for-empty-sections.patch} | 0 ... => 0920-Expand-PlayerItemMendEvent.patch} | 4 +- ...sh-ProjectileSource-for-projectiles.patch} | 2 +- ... => 0922-Add-transient-modifier-API.patch} | 0 ...patch => 0923-Fix-block-place-logic.patch} | 0 ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 2 +- ...nhasbukkit-default-if-alias-block-e.patch} | 0 ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...yerChunkLoaderData-in-order-to-prep.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0932-Properly-cancel-usable-items.patch} | 0 ...3-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 0 ...937-Call-missing-BlockDispenseEvent.patch} | 4 +- ...-chunks-for-supporting-block-checks.patch} | 2 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...940-Add-Sign-getInteractableSideFor.patch} | 0 ...41-Array-backed-synched-entity-data.patch} | 0 ...2-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0943-Fix-BanList-API.patch} | 2 +- ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 2 +- ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0949-Add-whitelist-events.patch} | 0 ... 0950-Implement-PlayerFailMoveEvent.patch} | 2 +- ...olia-scheduler-and-owned-region-API.patch} | 4 +- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 2 +- ...tion-when-spawning-display-entities.patch} | 0 ...955-Only-capture-actual-tree-growth.patch} | 6 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 0 ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0960-Cache-map-ids-on-item-frames.patch} | 2 +- ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0962-Bandaid-fix-for-Effect.patch} | 2 +- ...tch => 0963-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 4 +- ...lace-methods-with-old-StructureType.patch} | 0 ...e-namespaced-commands-if-send-names.patch} | 2 +- ...-handle-BlockBreakEvent-isDropItems.patch} | 0 ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 2 +- ... => 0971-Add-Listing-API-for-Player.patch} | 2 +- ...figurable-Region-Compression-Format.patch} | 0 ...3-Add-BlockFace-to-BlockDamageEvent.patch} | 2 +- ...h => 0974-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0975-Expand-Pose-API.patch} | 2 +- ...patch => 0976-More-DragonBattle-API.patch} | 2 +- ... 0977-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0978-Add-PlayerPickItemEvent.patch} | 2 +- ...-Improve-performance-of-mass-crafts.patch} | 0 ...=> 0980-Allow-trident-custom-damage.patch} | 0 ...1-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 2 +- ....patch => 0984-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 4 +- ...86-Configure-sniffer-egg-hatch-time.patch} | 2 +- ...-proximity-check-before-entity-look.patch} | 2 +- ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 4 +- ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0993-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 2 +- ...entities-in-chunks-that-are-positio.patch} | 0 ...> 0996-Actually-optimise-explosions.patch} | 2 +- ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...atch => 0999-Fix-SuspiciousStewMeta.patch} | 0 ... 1000-Optimise-chunk-tick-iteration.patch} | 4 +- ...atch => 1001-Lag-compensation-ticks.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...05-Optimise-nearby-player-retrieval.patch} | 4 +- ...x-missing-map-initialize-event-call.patch} | 2 +- ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...10-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 1011-Add-player-idle-duration-API.patch} | 2 +- ...-if-we-can-see-non-visible-entities.patch} | 2 +- ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 2 +- ...Ints.patch => 1015-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 10 +- ...em-packets-with-collector-as-source.patch} | 0 ... => 1019-Expand-LingeringPotion-API.patch} | 0 ....patch => 1020-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 4 +- ...024-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 0 ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 8 +- ...tch => 1030-Add-Structure-check-API.patch} | 0 ...-Dont-resend-blocks-on-interactions.patch} | 0 ...evious-behavior-for-setResourcePack.patch} | 2 +- ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 1035-add-more-scoreboard-API.patch} | 0 ...stry.patch => 1036-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 0 ...h => 1038-Add-experience-points-API.patch} | 4 +- ...h => 1039-Add-missing-InventoryType.patch} | 0 ...h => 1040-Add-drops-to-shear-events.patch} | 2 +- ...> 1041-Add-PlayerShieldDisableEvent.patch} | 2 +- ... => 1042-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 2 +- ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 2 +- ...-experience-dropping-on-block-break.patch} | 4 +- ...> 1047-Fixup-NamespacedKey-handling.patch} | 0 837 files changed, 369 insertions(+), 439 deletions(-) rename patches/api/{0328-Move-VehicleCollisionEvent-HandlerList-up.patch => 0328-Extend-VehicleCollisionEvent-move-HandlerList-up.patch} (70%) delete mode 100644 patches/api/0400-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename patches/api/{0401-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch => 0400-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch} (100%) rename patches/api/{0402-Win-Screen-API.patch => 0401-Win-Screen-API.patch} (100%) rename patches/api/{0403-Add-Entity-Body-Yaw-API.patch => 0402-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/api/{0404-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch => 0403-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch} (100%) rename patches/api/{0405-Add-EntityFertilizeEggEvent.patch => 0404-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/api/{0406-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0405-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/api/{0407-Add-Shearable-API.patch => 0406-Add-Shearable-API.patch} (100%) rename patches/api/{0408-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0407-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/api/{0409-Add-Mob-Experience-reward-API.patch => 0408-Add-Mob-Experience-reward-API.patch} (100%) rename patches/api/{0410-Expand-PlayerItemMendEvent.patch => 0409-Expand-PlayerItemMendEvent.patch} (100%) rename patches/api/{0411-Add-transient-modifier-API.patch => 0410-Add-transient-modifier-API.patch} (100%) rename patches/api/{0412-Properly-remove-the-experimental-smithing-inventory-.patch => 0411-Properly-remove-the-experimental-smithing-inventory-.patch} (100%) rename patches/api/{0413-Add-method-to-remove-all-active-potion-effects.patch => 0412-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/api/{0414-Folia-scheduler-and-owned-region-API.patch => 0413-Folia-scheduler-and-owned-region-API.patch} (100%) rename patches/api/{0415-Add-event-for-player-editing-sign.patch => 0414-Add-event-for-player-editing-sign.patch} (100%) rename patches/api/{0416-Add-Sign-getInteractableSideFor.patch => 0415-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/api/{0417-Fix-BanList-API.patch => 0416-Fix-BanList-API.patch} (100%) rename patches/api/{0418-Add-whitelist-events.patch => 0417-Add-whitelist-events.patch} (100%) rename patches/api/{0419-API-for-updating-recipes-on-clients.patch => 0418-API-for-updating-recipes-on-clients.patch} (100%) rename patches/api/{0420-Add-PlayerFailMoveEvent.patch => 0419-Add-PlayerFailMoveEvent.patch} (100%) rename patches/api/{0421-Fix-custom-statistic-criteria-creation.patch => 0420-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/api/{0422-SculkCatalyst-bloom-API.patch => 0421-SculkCatalyst-bloom-API.patch} (100%) rename patches/api/{0423-API-for-an-entity-s-scoreboard-name.patch => 0422-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/api/{0424-Deprecate-and-replace-methods-with-old-StructureType.patch => 0423-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/api/{0425-Add-Listing-API-for-Player.patch => 0424-Add-Listing-API-for-Player.patch} (100%) rename patches/api/{0426-Expose-clicked-BlockFace-during-BlockDamageEvent.patch => 0425-Expose-clicked-BlockFace-during-BlockDamageEvent.patch} (100%) rename patches/api/{0427-Fix-NPE-on-Boat-getStatus.patch => 0426-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/api/{0428-Expand-Pose-API.patch => 0427-Expand-Pose-API.patch} (100%) rename patches/api/{0429-MerchantRecipe-add-copy-constructor.patch => 0428-MerchantRecipe-add-copy-constructor.patch} (100%) rename patches/api/{0430-More-DragonBattle-API.patch => 0429-More-DragonBattle-API.patch} (100%) rename patches/api/{0431-Add-PlayerPickItemEvent.patch => 0430-Add-PlayerPickItemEvent.patch} (100%) rename patches/api/{0432-Allow-trident-custom-damage.patch => 0431-Allow-trident-custom-damage.patch} (100%) rename patches/api/{0433-Expose-hand-during-BlockCanBuildEvent.patch => 0432-Expose-hand-during-BlockCanBuildEvent.patch} (100%) rename patches/api/{0434-Limit-setBurnTime-to-valid-short-values.patch => 0433-Limit-setBurnTime-to-valid-short-values.patch} (100%) rename patches/api/{0435-Add-OfflinePlayer-isConnected.patch => 0434-Add-OfflinePlayer-isConnected.patch} (100%) rename patches/api/{0436-Add-titleOverride-to-InventoryOpenEvent.patch => 0435-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/api/{0437-Allow-proper-checking-of-empty-item-stacks.patch => 0436-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/api/{0438-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch => 0437-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch} (100%) rename patches/api/{0439-Add-player-idle-duration-API.patch => 0438-Add-player-idle-duration-API.patch} (100%) rename patches/api/{0440-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0439-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/api/{0441-Add-predicate-for-blocks-when-raytracing.patch => 0440-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/api/{0442-Add-hand-to-fish-event-for-all-player-interactions.patch => 0441-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/api/{0443-Add-UUID-attribute-modifier-API.patch => 0442-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/api/{0444-Expand-LingeringPotion-API.patch => 0443-Expand-LingeringPotion-API.patch} (100%) rename patches/api/{0445-Remove-unnecessary-durability-check-in-ItemStack-isS.patch => 0444-Remove-unnecessary-durability-check-in-ItemStack-isS.patch} (100%) rename patches/api/{0446-Add-Structure-check-API.patch => 0445-Add-Structure-check-API.patch} (100%) rename patches/api/{0447-add-missing-Experimental-annotations.patch => 0446-add-missing-Experimental-annotations.patch} (100%) rename patches/api/{0448-Add-more-scoreboard-API.patch => 0447-Add-more-scoreboard-API.patch} (100%) rename patches/api/{0449-Improve-Registry.patch => 0448-Improve-Registry.patch} (100%) rename patches/api/{0450-Add-experience-points-API.patch => 0449-Add-experience-points-API.patch} (100%) rename patches/api/{0451-Add-missing-InventoryType.patch => 0450-Add-missing-InventoryType.patch} (100%) rename patches/api/{0452-Add-drops-to-shear-events.patch => 0451-Add-drops-to-shear-events.patch} (100%) rename patches/api/{0453-Add-HiddenPotionEffect-API.patch => 0452-Add-HiddenPotionEffect-API.patch} (100%) rename patches/api/{0454-Add-PlayerShieldDisableEvent.patch => 0453-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/api/{0455-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch => 0454-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch} (100%) delete mode 100644 patches/server/0254-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch create mode 100644 patches/server/0254-Prevent-various-interactions-from-causing-chunk-load.patch rename patches/server/{0279-Handle-Large-Packets-disconnecting-client.patch => 0278-Handle-Large-Packets-disconnecting-client.patch} (98%) delete mode 100644 patches/server/0278-Prevent-rayTrace-from-loading-chunks.patch rename patches/server/{0280-force-entity-dismount-during-teleportation.patch => 0279-force-entity-dismount-during-teleportation.patch} (100%) rename patches/server/{0281-Add-more-Zombie-API.patch => 0280-Add-more-Zombie-API.patch} (100%) rename patches/server/{0282-Book-Size-Limits.patch => 0281-Book-Size-Limits.patch} (96%) rename patches/server/{0283-Add-PlayerConnectionCloseEvent.patch => 0282-Add-PlayerConnectionCloseEvent.patch} (97%) rename patches/server/{0285-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch => 0283-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch} (96%) delete mode 100644 patches/server/0284-Prevent-Enderman-from-loading-chunks.patch rename patches/server/{0286-Workaround-for-vehicle-tracking-issue-on-disconnect.patch => 0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch} (91%) rename patches/server/{0287-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch => 0285-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch} (92%) rename patches/server/{0288-BlockDestroyEvent.patch => 0286-BlockDestroyEvent.patch} (96%) rename patches/server/{0289-Async-command-map-building.patch => 0287-Async-command-map-building.patch} (97%) rename patches/server/{0290-Implement-Brigadier-Mojang-API.patch => 0288-Implement-Brigadier-Mojang-API.patch} (97%) rename patches/server/{0291-Improve-exact-choice-recipe-ingredients.patch => 0289-Improve-exact-choice-recipe-ingredients.patch} (100%) rename patches/server/{0292-Limit-Client-Sign-length-more.patch => 0290-Limit-Client-Sign-length-more.patch} (96%) rename patches/server/{0293-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch => 0291-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch} (88%) rename patches/server/{0294-Handle-Oversized-Tile-Entities-in-chunks.patch => 0292-Handle-Oversized-Tile-Entities-in-chunks.patch} (100%) rename patches/server/{0295-Entity-getEntitySpawnReason.patch => 0293-Entity-getEntitySpawnReason.patch} (100%) rename patches/server/{0296-Optimize-Network-Manager-and-add-advanced-packet-sup.patch => 0294-Optimize-Network-Manager-and-add-advanced-packet-sup.patch} (100%) rename patches/server/{0297-Fire-event-on-GS4-query.patch => 0295-Fire-event-on-GS4-query.patch} (100%) rename patches/server/{0298-Implement-PlayerPostRespawnEvent.patch => 0296-Implement-PlayerPostRespawnEvent.patch} (95%) rename patches/server/{0299-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch => 0297-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch} (100%) rename patches/server/{0300-Server-Tick-Events.patch => 0298-Server-Tick-Events.patch} (100%) rename patches/server/{0301-PlayerDeathEvent-getItemsToKeep.patch => 0299-PlayerDeathEvent-getItemsToKeep.patch} (97%) rename patches/server/{0302-Optimize-Captured-TileEntity-Lookup.patch => 0300-Optimize-Captured-TileEntity-Lookup.patch} (94%) rename patches/server/{0303-Add-Heightmap-API.patch => 0301-Add-Heightmap-API.patch} (95%) rename patches/server/{0304-Mob-Spawner-API-Enhancements.patch => 0302-Mob-Spawner-API-Enhancements.patch} (100%) rename patches/server/{0305-Fix-CB-call-to-changed-postToMainThread-method.patch => 0303-Fix-CB-call-to-changed-postToMainThread-method.patch} (91%) rename patches/server/{0306-Fix-sounds-when-item-frames-are-modified-MC-123450.patch => 0304-Fix-sounds-when-item-frames-are-modified-MC-123450.patch} (100%) rename patches/server/{0307-Implement-CraftBlockSoundGroup.patch => 0305-Implement-CraftBlockSoundGroup.patch} (96%) rename patches/server/{0308-Configurable-Keep-Spawn-Loaded-range-per-world.patch => 0306-Configurable-Keep-Spawn-Loaded-range-per-world.patch} (97%) rename patches/server/{0309-Allow-Saving-of-Oversized-Chunks.patch => 0307-Allow-Saving-of-Oversized-Chunks.patch} (100%) rename patches/server/{0310-Expose-the-internal-current-tick.patch => 0308-Expose-the-internal-current-tick.patch} (90%) rename patches/server/{0311-Fix-World-isChunkGenerated-calls.patch => 0309-Fix-World-isChunkGenerated-calls.patch} (98%) rename patches/server/{0312-Show-blockstate-location-if-we-failed-to-read-it.patch => 0310-Show-blockstate-location-if-we-failed-to-read-it.patch} (100%) rename patches/server/{0313-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch => 0311-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch} (100%) rename patches/server/{0314-Configurable-projectile-relative-velocity.patch => 0312-Configurable-projectile-relative-velocity.patch} (100%) rename patches/server/{0315-offset-item-frame-ticking.patch => 0313-offset-item-frame-ticking.patch} (100%) rename patches/server/{0317-Prevent-consuming-the-wrong-itemstack.patch => 0314-Prevent-consuming-the-wrong-itemstack.patch} (96%) rename patches/server/{0318-Dont-send-unnecessary-sign-update.patch => 0315-Dont-send-unnecessary-sign-update.patch} (100%) rename patches/server/{0319-Add-option-to-disable-pillager-patrols.patch => 0316-Add-option-to-disable-pillager-patrols.patch} (100%) delete mode 100644 patches/server/0316-Fix-MC-158900.patch rename patches/server/{0320-Flat-bedrock-generator-settings.patch => 0317-Flat-bedrock-generator-settings.patch} (100%) rename patches/server/{0321-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch => 0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch} (100%) rename patches/server/{0322-MC-145656-Fix-Follow-Range-Initial-Target.patch => 0319-MC-145656-Fix-Follow-Range-Initial-Target.patch} (100%) rename patches/server/{0323-Duplicate-UUID-Resolve-Option.patch => 0320-Duplicate-UUID-Resolve-Option.patch} (100%) rename patches/server/{0324-PlayerDeathEvent-shouldDropExperience.patch => 0321-PlayerDeathEvent-shouldDropExperience.patch} (91%) rename patches/server/{0325-Prevent-bees-loading-chunks-checking-hive-position.patch => 0322-Prevent-bees-loading-chunks-checking-hive-position.patch} (100%) rename patches/server/{0326-Don-t-load-Chunks-from-Hoppers-and-other-things.patch => 0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch} (100%) rename patches/server/{0327-Optimise-EntityGetter-getPlayerByUUID.patch => 0324-Optimise-EntityGetter-getPlayerByUUID.patch} (94%) rename patches/server/{0328-Fix-items-not-falling-correctly.patch => 0325-Fix-items-not-falling-correctly.patch} (100%) rename patches/server/{0329-Optimize-call-to-getFluid-for-explosions.patch => 0326-Optimize-call-to-getFluid-for-explosions.patch} (100%) rename patches/server/{0330-Fix-last-firework-in-stack-not-having-effects-when-d.patch => 0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch} (100%) rename patches/server/{0331-Entity-Activation-Range-2.0.patch => 0328-Entity-Activation-Range-2.0.patch} (100%) rename patches/server/{0332-Guard-against-serializing-mismatching-chunk-coordina.patch => 0329-Guard-against-serializing-mismatching-chunk-coordina.patch} (100%) rename patches/server/{0333-Implement-alternative-item-despawn-rate.patch => 0330-Implement-alternative-item-despawn-rate.patch} (100%) rename patches/server/{0334-Tracking-Range-Improvements.patch => 0331-Tracking-Range-Improvements.patch} (100%) rename patches/server/{0335-Fix-items-vanishing-through-end-portal.patch => 0332-Fix-items-vanishing-through-end-portal.patch} (93%) rename patches/server/{0336-implement-optional-per-player-mob-spawns.patch => 0333-implement-optional-per-player-mob-spawns.patch} (99%) rename patches/server/{0337-Anti-Xray.patch => 0334-Anti-Xray.patch} (99%) rename patches/server/{0338-Bees-get-gravity-in-void.-Fixes-MC-167279.patch => 0335-Bees-get-gravity-in-void.-Fixes-MC-167279.patch} (100%) rename patches/server/{0339-Improve-Block-breakNaturally-API.patch => 0336-Improve-Block-breakNaturally-API.patch} (98%) rename patches/server/{0340-Optimise-getChunkAt-calls-for-loaded-chunks.patch => 0337-Optimise-getChunkAt-calls-for-loaded-chunks.patch} (100%) rename patches/server/{0341-Add-debug-for-sync-chunk-loads.patch => 0338-Add-debug-for-sync-chunk-loads.patch} (99%) rename patches/server/{0342-Improve-java-version-check.patch => 0339-Improve-java-version-check.patch} (100%) rename patches/server/{0343-Add-ThrownEggHatchEvent.patch => 0340-Add-ThrownEggHatchEvent.patch} (100%) rename patches/server/{0344-Entity-Jump-API.patch => 0341-Entity-Jump-API.patch} (100%) rename patches/server/{0345-Add-option-to-nerf-pigmen-from-nether-portals.patch => 0342-Add-option-to-nerf-pigmen-from-nether-portals.patch} (100%) rename patches/server/{0346-Make-the-GUI-graph-fancier.patch => 0343-Make-the-GUI-graph-fancier.patch} (100%) rename patches/server/{0347-add-hand-to-BlockMultiPlaceEvent.patch => 0344-add-hand-to-BlockMultiPlaceEvent.patch} (93%) rename patches/server/{0348-Validate-tripwire-hook-placement-before-update.patch => 0345-Validate-tripwire-hook-placement-before-update.patch} (100%) rename patches/server/{0349-Add-option-to-allow-iron-golems-to-spawn-in-air.patch => 0346-Add-option-to-allow-iron-golems-to-spawn-in-air.patch} (100%) rename patches/server/{0350-Configurable-chance-of-villager-zombie-infection.patch => 0347-Configurable-chance-of-villager-zombie-infection.patch} (100%) rename patches/server/{0351-Optimise-Chunk-getFluid.patch => 0348-Optimise-Chunk-getFluid.patch} (96%) rename patches/server/{0352-Set-spigots-verbose-world-setting-to-false-by-def.patch => 0349-Set-spigots-verbose-world-setting-to-false-by-def.patch} (100%) rename patches/server/{0353-Add-tick-times-API-and-mspt-command.patch => 0350-Add-tick-times-API-and-mspt-command.patch} (98%) rename patches/server/{0354-Expose-MinecraftServer-isRunning.patch => 0351-Expose-MinecraftServer-isRunning.patch} (90%) rename patches/server/{0355-Add-Raw-Byte-ItemStack-Serialization.patch => 0352-Add-Raw-Byte-ItemStack-Serialization.patch} (100%) rename patches/server/{0356-Pillager-patrol-spawn-settings-and-per-player-option.patch => 0353-Pillager-patrol-spawn-settings-and-per-player-option.patch} (98%) rename patches/server/{0357-Remote-Connections-shouldn-t-hold-up-shutdown.patch => 0354-Remote-Connections-shouldn-t-hold-up-shutdown.patch} (95%) rename patches/server/{0358-Do-not-allow-bees-to-load-chunks-for-beehives.patch => 0355-Do-not-allow-bees-to-load-chunks-for-beehives.patch} (100%) rename patches/server/{0359-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch => 0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch} (96%) rename patches/server/{0360-Don-t-tick-dead-players.patch => 0357-Don-t-tick-dead-players.patch} (91%) rename patches/server/{0361-Dead-Player-s-shouldn-t-be-able-to-move.patch => 0358-Dead-Player-s-shouldn-t-be-able-to-move.patch} (100%) rename patches/server/{0362-Optimize-Collision-to-not-load-chunks.patch => 0359-Optimize-Collision-to-not-load-chunks.patch} (97%) rename patches/server/{0363-Don-t-move-existing-players-to-world-spawn.patch => 0360-Don-t-move-existing-players-to-world-spawn.patch} (92%) rename patches/server/{0364-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => 0361-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (100%) rename patches/server/{0365-Improved-Watchdog-Support.patch => 0362-Improved-Watchdog-Support.patch} (99%) rename patches/server/{0366-Optimize-Pathfinding.patch => 0363-Optimize-Pathfinding.patch} (100%) rename patches/server/{0367-Reduce-Either-Optional-allocation.patch => 0364-Reduce-Either-Optional-allocation.patch} (100%) rename patches/server/{0368-Reduce-memory-footprint-of-NBTTagCompound.patch => 0365-Reduce-memory-footprint-of-NBTTagCompound.patch} (100%) rename patches/server/{0369-Prevent-opening-inventories-when-frozen.patch => 0366-Prevent-opening-inventories-when-frozen.patch} (95%) rename patches/server/{0370-Don-t-run-entity-collision-code-if-not-needed.patch => 0367-Don-t-run-entity-collision-code-if-not-needed.patch} (96%) rename patches/server/{0371-Implement-Player-Client-Options-API.patch => 0368-Implement-Player-Client-Options-API.patch} (99%) rename patches/server/{0372-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch => 0369-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch} (100%) rename patches/server/{0373-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch => 0370-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch} (96%) rename patches/server/{0374-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch => 0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch} (98%) rename patches/server/{0375-Add-PlayerAttackEntityCooldownResetEvent.patch => 0372-Add-PlayerAttackEntityCooldownResetEvent.patch} (95%) rename patches/server/{0376-Don-t-fire-BlockFade-on-worldgen-threads.patch => 0373-Don-t-fire-BlockFade-on-worldgen-threads.patch} (100%) rename patches/server/{0377-Add-phantom-creative-and-insomniac-controls.patch => 0374-Add-phantom-creative-and-insomniac-controls.patch} (100%) rename patches/server/{0378-Fix-numerous-item-duplication-issues-and-teleport-is.patch => 0375-Fix-numerous-item-duplication-issues-and-teleport-is.patch} (100%) rename patches/server/{0379-Villager-Restocks-API.patch => 0376-Villager-Restocks-API.patch} (100%) rename patches/server/{0380-Validate-PickItem-Packet-and-kick-for-invalid.patch => 0377-Validate-PickItem-Packet-and-kick-for-invalid.patch} (95%) rename patches/server/{0381-Expose-game-version.patch => 0378-Expose-game-version.patch} (89%) rename patches/server/{0382-Optimize-Voxel-Shape-Merging.patch => 0379-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/server/{0383-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch => 0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch} (100%) rename patches/server/{0384-misc-debugging-dumps.patch => 0381-misc-debugging-dumps.patch} (96%) rename patches/server/{0385-Prevent-teleporting-dead-entities.patch => 0382-Prevent-teleporting-dead-entities.patch} (92%) rename patches/server/{0386-Deobfuscate-stacktraces-in-log-messages-crash-report.patch => 0383-Deobfuscate-stacktraces-in-log-messages-crash-report.patch} (99%) rename patches/server/{0387-Implement-Mob-Goal-API.patch => 0384-Implement-Mob-Goal-API.patch} (99%) rename patches/server/{0388-Add-villager-reputation-API.patch => 0385-Add-villager-reputation-API.patch} (100%) rename patches/server/{0389-Option-for-maximum-exp-value-when-merging-orbs.patch => 0386-Option-for-maximum-exp-value-when-merging-orbs.patch} (96%) rename patches/server/{0390-ExperienceOrbMergeEvent.patch => 0387-ExperienceOrbMergeEvent.patch} (94%) rename patches/server/{0391-Fix-PotionEffect-ignores-icon-flag.patch => 0388-Fix-PotionEffect-ignores-icon-flag.patch} (100%) rename patches/server/{0392-Potential-bed-API.patch => 0389-Potential-bed-API.patch} (95%) rename patches/server/{0393-Wait-for-Async-Tasks-during-shutdown.patch => 0390-Wait-for-Async-Tasks-during-shutdown.patch} (93%) rename patches/server/{0394-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch => 0391-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch} (100%) rename patches/server/{0395-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 0392-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (97%) rename patches/server/{0396-Ensure-safe-gateway-teleport.patch => 0393-Ensure-safe-gateway-teleport.patch} (93%) rename patches/server/{0397-Add-option-for-console-having-all-permissions.patch => 0394-Add-option-for-console-having-all-permissions.patch} (100%) rename patches/server/{0398-Fix-villager-trading-demand-MC-163962.patch => 0395-Fix-villager-trading-demand-MC-163962.patch} (100%) rename patches/server/{0399-Maps-shouldn-t-load-chunks.patch => 0396-Maps-shouldn-t-load-chunks.patch} (100%) rename patches/server/{0400-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch => 0397-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch} (100%) rename patches/server/{0401-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch => 0398-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch} (100%) rename patches/server/{0402-Fix-piston-physics-inconsistency-MC-188840.patch => 0399-Fix-piston-physics-inconsistency-MC-188840.patch} (100%) rename patches/server/{0403-Fix-sand-duping.patch => 0400-Fix-sand-duping.patch} (100%) rename patches/server/{0404-Fix-missing-chunks-due-to-integer-overflow.patch => 0401-Fix-missing-chunks-due-to-integer-overflow.patch} (100%) rename patches/server/{0405-Prevent-position-desync-in-playerconnection-causing-.patch => 0402-Prevent-position-desync-in-playerconnection-causing-.patch} (94%) rename patches/server/{0406-Inventory-getHolder-method-without-block-snapshot.patch => 0403-Inventory-getHolder-method-without-block-snapshot.patch} (100%) rename patches/server/{0407-Improve-Arrow-API.patch => 0404-Improve-Arrow-API.patch} (100%) rename patches/server/{0408-Add-and-implement-PlayerRecipeBookClickEvent.patch => 0405-Add-and-implement-PlayerRecipeBookClickEvent.patch} (97%) rename patches/server/{0409-Use-distance-map-to-optimise-entity-tracker.patch => 0406-Use-distance-map-to-optimise-entity-tracker.patch} (100%) rename patches/server/{0410-Hide-sync-chunk-writes-behind-flag.patch => 0407-Hide-sync-chunk-writes-behind-flag.patch} (100%) rename patches/server/{0411-Add-permission-for-command-blocks.patch => 0408-Add-permission-for-command-blocks.patch} (98%) rename patches/server/{0412-Ensure-Entity-AABB-s-are-never-invalid.patch => 0409-Ensure-Entity-AABB-s-are-never-invalid.patch} (100%) rename patches/server/{0413-Fix-Per-World-Difficulty-Remembering-Difficulty.patch => 0410-Fix-Per-World-Difficulty-Remembering-Difficulty.patch} (97%) rename patches/server/{0414-Paper-dumpitem-command.patch => 0411-Paper-dumpitem-command.patch} (100%) rename patches/server/{0415-Improve-Legacy-Component-serialization-size.patch => 0412-Improve-Legacy-Component-serialization-size.patch} (100%) rename patches/server/{0416-Optimize-Bit-Operations-by-inlining.patch => 0413-Optimize-Bit-Operations-by-inlining.patch} (99%) rename patches/server/{0417-Add-Plugin-Tickets-to-API-Chunk-Methods.patch => 0414-Add-Plugin-Tickets-to-API-Chunk-Methods.patch} (98%) rename patches/server/{0418-incremental-chunk-and-player-saving.patch => 0415-incremental-chunk-and-player-saving.patch} (98%) rename patches/server/{0419-Support-old-UUID-format-for-NBT.patch => 0416-Support-old-UUID-format-for-NBT.patch} (100%) rename patches/server/{0420-Convert-legacy-attributes-in-Item-Meta.patch => 0417-Convert-legacy-attributes-in-Item-Meta.patch} (100%) rename patches/server/{0421-Remove-streams-from-hot-code.patch => 0418-Remove-streams-from-hot-code.patch} (100%) rename patches/server/{0422-Support-components-in-ItemMeta.patch => 0419-Support-components-in-ItemMeta.patch} (100%) rename patches/server/{0423-Improve-fix-EntityTargetLivingEntityEvent.patch => 0420-Improve-fix-EntityTargetLivingEntityEvent.patch} (100%) rename patches/server/{0424-Add-entity-liquid-API.patch => 0421-Add-entity-liquid-API.patch} (100%) rename patches/server/{0425-Update-itemstack-legacy-name-and-lore.patch => 0422-Update-itemstack-legacy-name-and-lore.patch} (100%) rename patches/server/{0426-Add-PrepareResultEvent.patch => 0423-Add-PrepareResultEvent.patch} (100%) rename patches/server/{0427-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch => 0424-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch} (100%) rename patches/server/{0428-Fix-arrows-never-despawning-MC-125757.patch => 0425-Fix-arrows-never-despawning-MC-125757.patch} (100%) rename patches/server/{0429-Thread-Safe-Vanilla-Command-permission-checking.patch => 0426-Thread-Safe-Vanilla-Command-permission-checking.patch} (100%) rename patches/server/{0430-Fix-SPIGOT-5989.patch => 0427-Fix-SPIGOT-5989.patch} (90%) rename patches/server/{0431-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0428-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (100%) rename patches/server/{0432-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0429-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (100%) rename patches/server/{0433-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0430-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (100%) rename patches/server/{0434-Optimize-NetworkManager-Exception-Handling.patch => 0431-Optimize-NetworkManager-Exception-Handling.patch} (100%) rename patches/server/{0435-Fix-some-rails-connecting-improperly.patch => 0432-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/server/{0436-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0433-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/server/{0437-Brand-support.patch => 0434-Brand-support.patch} (100%) rename patches/server/{0438-Add-playPickupItemAnimation-to-LivingEntity.patch => 0435-Add-playPickupItemAnimation-to-LivingEntity.patch} (100%) rename patches/server/{0439-Don-t-require-FACING-data.patch => 0436-Don-t-require-FACING-data.patch} (100%) rename patches/server/{0440-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (100%) rename patches/server/{0441-Add-moon-phase-API.patch => 0438-Add-moon-phase-API.patch} (100%) rename patches/server/{0442-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0439-Do-not-let-the-server-load-chunks-from-newer-version.patch} (100%) rename patches/server/{0443-Prevent-headless-pistons-from-being-created.patch => 0440-Prevent-headless-pistons-from-being-created.patch} (100%) rename patches/server/{0444-Add-BellRingEvent.patch => 0441-Add-BellRingEvent.patch} (100%) rename patches/server/{0445-Add-zombie-targets-turtle-egg-config.patch => 0442-Add-zombie-targets-turtle-egg-config.patch} (100%) rename patches/server/{0446-Buffer-joins-to-world.patch => 0443-Buffer-joins-to-world.patch} (100%) rename patches/server/{0447-Eigencraft-redstone-implementation.patch => 0444-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{0448-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0445-Fix-hex-colors-not-working-in-some-kick-messages.patch} (100%) rename patches/server/{0449-PortalCreateEvent-needs-to-know-its-entity.patch => 0446-PortalCreateEvent-needs-to-know-its-entity.patch} (100%) rename patches/server/{0450-Add-more-Evoker-API.patch => 0447-Add-more-Evoker-API.patch} (100%) rename patches/server/{0451-Add-methods-to-get-translation-keys.patch => 0448-Add-methods-to-get-translation-keys.patch} (100%) rename patches/server/{0452-Create-HoverEvent-from-ItemStack-Entity.patch => 0449-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0453-Cache-block-data-strings.patch => 0450-Cache-block-data-strings.patch} (100%) rename patches/server/{0454-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0451-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (100%) rename patches/server/{0455-Add-additional-open-container-api-to-HumanEntity.patch => 0452-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/server/{0456-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0453-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0457-Extend-block-drop-capture-to-capture-all-items-added.patch => 0454-Extend-block-drop-capture-to-capture-all-items-added.patch} (100%) rename patches/server/{0458-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (100%) rename patches/server/{0459-Lazily-track-plugin-scoreboards-by-default.patch => 0456-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0460-Entity-isTicking.patch => 0457-Entity-isTicking.patch} (100%) rename patches/server/{0461-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0458-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (100%) rename patches/server/{0462-Fix-Concurrency-issue-in-ShufflingList.patch => 0459-Fix-Concurrency-issue-in-ShufflingList.patch} (97%) rename patches/server/{0463-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0460-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (100%) rename patches/server/{0464-Fix-for-large-move-vectors-crashing-server.patch => 0461-Fix-for-large-move-vectors-crashing-server.patch} (100%) rename patches/server/{0465-Optimise-getType-calls.patch => 0462-Optimise-getType-calls.patch} (100%) rename patches/server/{0466-Villager-resetOffers.patch => 0463-Villager-resetOffers.patch} (100%) rename patches/server/{0467-Retain-block-place-order-when-capturing-blockstates.patch => 0464-Retain-block-place-order-when-capturing-blockstates.patch} (100%) rename patches/server/{0468-Reduce-blockpos-allocation-from-pathfinding.patch => 0465-Reduce-blockpos-allocation-from-pathfinding.patch} (100%) rename patches/server/{0469-Fix-item-locations-dropped-from-campfires.patch => 0466-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0470-Fixed-TileEntityBell-memory-leak.patch => 0467-Fixed-TileEntityBell-memory-leak.patch} (100%) rename patches/server/{0471-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0468-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0472-Add-getOfflinePlayerIfCached-String.patch => 0469-Add-getOfflinePlayerIfCached-String.patch} (100%) rename patches/server/{0473-Add-ignore-discounts-API.patch => 0470-Add-ignore-discounts-API.patch} (100%) rename patches/server/{0474-Toggle-for-removing-existing-dragon.patch => 0471-Toggle-for-removing-existing-dragon.patch} (100%) rename patches/server/{0475-Fix-client-lag-on-advancement-loading.patch => 0472-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/server/{0476-Item-no-age-no-player-pickup.patch => 0473-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0477-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{0478-Beacon-API-custom-effect-ranges.patch => 0475-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0479-Add-API-for-quit-reason.patch => 0476-Add-API-for-quit-reason.patch} (98%) rename patches/server/{0480-Add-Wandering-Trader-spawn-rate-config-options.patch => 0477-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/server/{0481-Expose-world-spawn-angle.patch => 0478-Expose-world-spawn-angle.patch} (87%) rename patches/server/{0482-Add-Destroy-Speed-API.patch => 0479-Add-Destroy-Speed-API.patch} (100%) rename patches/server/{0483-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0480-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (100%) rename patches/server/{0484-Add-LivingEntity-clearActiveItem.patch => 0481-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/server/{0485-Add-PlayerItemCooldownEvent.patch => 0482-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0486-Significantly-improve-performance-of-the-end-generat.patch => 0483-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0487-More-lightning-API.patch => 0484-More-lightning-API.patch} (100%) rename patches/server/{0488-Climbing-should-not-bypass-cramming-gamerule.patch => 0485-Climbing-should-not-bypass-cramming-gamerule.patch} (100%) rename patches/server/{0489-Added-missing-default-perms-for-commands.patch => 0486-Added-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0490-Add-PlayerShearBlockEvent.patch => 0487-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0491-Limit-recipe-packets.patch => 0488-Limit-recipe-packets.patch} (100%) rename patches/server/{0492-Fix-CraftSound-backwards-compatibility.patch => 0489-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0493-Player-Chunk-Load-Unload-Events.patch => 0490-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/server/{0494-Optimize-Dynamic-get-Missing-Keys.patch => 0491-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0495-Expose-LivingEntity-hurt-direction.patch => 0492-Expose-LivingEntity-hurt-direction.patch} (100%) rename patches/server/{0496-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0493-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (100%) rename patches/server/{0497-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch => 0494-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch} (100%) rename patches/server/{0498-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (100%) rename patches/server/{0499-Implement-TargetHitEvent.patch => 0496-Implement-TargetHitEvent.patch} (100%) rename patches/server/{0500-MC-4-Fix-item-position-desync.patch => 0497-MC-4-Fix-item-position-desync.patch} (100%) rename patches/server/{0501-Additional-Block-Material-API-s.patch => 0498-Additional-Block-Material-API-s.patch} (100%) rename patches/server/{0502-Fix-harming-potion-dupe.patch => 0499-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0503-Implement-API-to-get-Material-from-Boats-and-Minecar.patch => 0500-Implement-API-to-get-Material-from-Boats-and-Minecar.patch} (100%) rename patches/server/{0504-Cache-burn-durations.patch => 0501-Cache-burn-durations.patch} (100%) rename patches/server/{0505-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0502-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/server/{0506-Fix-Not-a-string-Map-Conversion-spam.patch => 0503-Fix-Not-a-string-Map-Conversion-spam.patch} (100%) rename patches/server/{0507-Implement-PlayerFlowerPotManipulateEvent.patch => 0504-Implement-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0508-Fix-interact-event-not-being-called-sometimes.patch => 0505-Fix-interact-event-not-being-called-sometimes.patch} (100%) rename patches/server/{0509-Zombie-API-breaking-doors.patch => 0506-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0510-Fix-nerfed-slime-when-splitting.patch => 0507-Fix-nerfed-slime-when-splitting.patch} (100%) rename patches/server/{0511-Add-EntityLoadCrossbowEvent.patch => 0508-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0512-Added-WorldGameRuleChangeEvent.patch => 0509-Added-WorldGameRuleChangeEvent.patch} (100%) rename patches/server/{0513-Added-ServerResourcesReloadedEvent.patch => 0510-Added-ServerResourcesReloadedEvent.patch} (100%) rename patches/server/{0514-Added-world-settings-for-mobs-picking-up-loot.patch => 0511-Added-world-settings-for-mobs-picking-up-loot.patch} (100%) rename patches/server/{0515-Implemented-BlockFailedDispenseEvent.patch => 0512-Implemented-BlockFailedDispenseEvent.patch} (100%) rename patches/server/{0516-Added-PlayerLecternPageChangeEvent.patch => 0513-Added-PlayerLecternPageChangeEvent.patch} (100%) rename patches/server/{0517-Added-PlayerLoomPatternSelectEvent.patch => 0514-Added-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/server/{0518-Configurable-door-breaking-difficulty.patch => 0515-Configurable-door-breaking-difficulty.patch} (100%) rename patches/server/{0519-Empty-commands-shall-not-be-dispatched.patch => 0516-Empty-commands-shall-not-be-dispatched.patch} (100%) rename patches/server/{0520-Remove-stale-POIs.patch => 0517-Remove-stale-POIs.patch} (100%) rename patches/server/{0521-Fix-villager-boat-exploit.patch => 0518-Fix-villager-boat-exploit.patch} (93%) rename patches/server/{0522-Add-sendOpLevel-API.patch => 0519-Add-sendOpLevel-API.patch} (91%) rename patches/server/{0523-TODO-Registry-Modification-API.patch => 0520-TODO-Registry-Modification-API.patch} (100%) rename patches/server/{0524-Add-StructuresLocateEvent.patch => 0521-Add-StructuresLocateEvent.patch} (100%) rename patches/server/{0525-Collision-option-for-requiring-a-player-participant.patch => 0522-Collision-option-for-requiring-a-player-participant.patch} (100%) rename patches/server/{0526-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0523-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0527-Return-chat-component-with-empty-text-instead-of-thr.patch => 0524-Return-chat-component-with-empty-text-instead-of-thr.patch} (100%) rename patches/server/{0528-Make-schedule-command-per-world.patch => 0525-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0529-Configurable-max-leash-distance.patch => 0526-Configurable-max-leash-distance.patch} (100%) rename patches/server/{0530-Implement-BlockPreDispenseEvent.patch => 0527-Implement-BlockPreDispenseEvent.patch} (100%) rename patches/server/{0531-Added-firing-of-PlayerChangeBeaconEffectEvent.patch => 0528-Added-firing-of-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/server/{0532-Add-toggle-for-always-placing-the-dragon-egg.patch => 0529-Add-toggle-for-always-placing-the-dragon-egg.patch} (100%) rename patches/server/{0533-Added-PlayerStonecutterRecipeSelectEvent.patch => 0530-Added-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/server/{0534-Add-dropLeash-variable-to-EntityUnleashEvent.patch => 0531-Add-dropLeash-variable-to-EntityUnleashEvent.patch} (100%) rename patches/server/{0535-Reset-shield-blocking-on-dimension-change.patch => 0532-Reset-shield-blocking-on-dimension-change.patch} (100%) rename patches/server/{0536-add-DragonEggFormEvent.patch => 0533-add-DragonEggFormEvent.patch} (100%) rename patches/server/{0537-EntityMoveEvent.patch => 0534-EntityMoveEvent.patch} (100%) rename patches/server/{0538-added-option-to-disable-pathfinding-updates-on-block.patch => 0535-added-option-to-disable-pathfinding-updates-on-block.patch} (100%) rename patches/server/{0539-Inline-shift-direction-fields.patch => 0536-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0540-Allow-adding-items-to-BlockDropItemEvent.patch => 0537-Allow-adding-items-to-BlockDropItemEvent.patch} (100%) rename patches/server/{0541-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0538-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0542-living-entity-allow-attribute-registration.patch => 0539-living-entity-allow-attribute-registration.patch} (100%) rename patches/server/{0543-fix-dead-slime-setSize-invincibility.patch => 0540-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0544-Merchant-getRecipes-should-return-an-immutable-list.patch => 0541-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0545-Expose-Tracked-Players.patch => 0542-Expose-Tracked-Players.patch} (100%) rename patches/server/{0546-Improve-ServerGUI.patch => 0543-Improve-ServerGUI.patch} (100%) rename patches/server/{0547-fix-converting-txt-to-json-file.patch => 0544-fix-converting-txt-to-json-file.patch} (97%) rename patches/server/{0548-Add-worldborder-events.patch => 0545-Add-worldborder-events.patch} (100%) rename patches/server/{0549-added-PlayerNameEntityEvent.patch => 0546-added-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0550-Prevent-grindstones-from-overstacking-items.patch => 0547-Prevent-grindstones-from-overstacking-items.patch} (100%) rename patches/server/{0551-Add-recipe-to-cook-events.patch => 0548-Add-recipe-to-cook-events.patch} (100%) rename patches/server/{0552-Add-Block-isValidTool.patch => 0549-Add-Block-isValidTool.patch} (100%) rename patches/server/{0553-Allow-using-signs-inside-spawn-protection.patch => 0550-Allow-using-signs-inside-spawn-protection.patch} (100%) rename patches/server/{0554-Expand-world-key-API.patch => 0551-Expand-world-key-API.patch} (100%) rename patches/server/{0555-Add-fast-alternative-constructor-for-Rotations.patch => 0552-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0556-Item-Rarity-API.patch => 0553-Item-Rarity-API.patch} (100%) rename patches/server/{0557-Drop-carried-item-when-player-has-disconnected.patch => 0554-Drop-carried-item-when-player-has-disconnected.patch} (92%) rename patches/server/{0558-forced-whitelist-use-configurable-kick-message.patch => 0555-forced-whitelist-use-configurable-kick-message.patch} (100%) rename patches/server/{0559-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0556-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (100%) rename patches/server/{0560-Expose-protocol-version.patch => 0557-Expose-protocol-version.patch} (100%) rename patches/server/{0561-Enhance-console-tab-completions-for-brigadier-comman.patch => 0558-Enhance-console-tab-completions-for-brigadier-comman.patch} (100%) rename patches/server/{0562-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0559-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (100%) rename patches/server/{0563-Add-bypass-host-check.patch => 0560-Add-bypass-host-check.patch} (100%) rename patches/server/{0564-Set-area-affect-cloud-rotation.patch => 0561-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0565-add-isDeeplySleeping-to-HumanEntity.patch => 0562-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/server/{0566-add-consumeFuel-to-FurnaceBurnEvent.patch => 0563-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0567-add-get-set-drop-chance-to-EntityEquipment.patch => 0564-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0568-fix-PigZombieAngerEvent-cancellation.patch => 0565-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0569-fix-PlayerItemHeldEvent-firing-twice.patch => 0566-fix-PlayerItemHeldEvent-firing-twice.patch} (100%) rename patches/server/{0570-Added-PlayerDeepSleepEvent.patch => 0567-Added-PlayerDeepSleepEvent.patch} (100%) rename patches/server/{0571-More-World-API.patch => 0568-More-World-API.patch} (100%) rename patches/server/{0572-Added-PlayerBedFailEnterEvent.patch => 0569-Added-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0573-Implement-methods-to-convert-between-Component-and-B.patch => 0570-Implement-methods-to-convert-between-Component-and-B.patch} (100%) rename patches/server/{0574-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch => 0571-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch} (87%) rename patches/server/{0575-Introduce-beacon-activation-deactivation-events.patch => 0572-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0576-add-RespawnFlags-to-PlayerRespawnEvent.patch => 0573-add-RespawnFlags-to-PlayerRespawnEvent.patch} (94%) rename patches/server/{0577-Add-Channel-initialization-listeners.patch => 0574-Add-Channel-initialization-listeners.patch} (100%) rename patches/server/{0578-Send-empty-commands-if-tab-completion-is-disabled.patch => 0575-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0579-Add-more-WanderingTrader-API.patch => 0576-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0580-Add-EntityBlockStorage-clearEntities.patch => 0577-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0581-Entity-load-save-limit-per-chunk.patch => 0578-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/server/{0582-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0579-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0583-Inventory-close.patch => 0580-Inventory-close.patch} (100%) rename patches/server/{0584-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0581-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0585-Add-basic-Datapack-API.patch => 0582-Add-basic-Datapack-API.patch} (100%) rename patches/server/{0586-Add-environment-variable-to-disable-server-gui.patch => 0583-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0587-additions-to-PlayerGameModeChangeEvent.patch => 0584-additions-to-PlayerGameModeChangeEvent.patch} (100%) rename patches/server/{0588-ItemStack-repair-check-API.patch => 0585-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0589-More-Enchantment-API.patch => 0586-More-Enchantment-API.patch} (100%) rename patches/server/{0590-Move-range-check-for-block-placing-up.patch => 0587-Move-range-check-for-block-placing-up.patch} (100%) rename patches/server/{0591-Fix-and-optimise-world-force-upgrading.patch => 0588-Fix-and-optimise-world-force-upgrading.patch} (100%) rename patches/server/{0592-Add-Mob-lookAt-API.patch => 0589-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0593-Add-Unix-domain-socket-support.patch => 0590-Add-Unix-domain-socket-support.patch} (100%) rename patches/server/{0594-Add-EntityInsideBlockEvent.patch => 0591-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0595-Attributes-API-for-item-defaults.patch => 0592-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0596-Add-cause-to-Weather-ThunderChangeEvents.patch => 0593-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/server/{0597-More-Lidded-Block-API.patch => 0594-More-Lidded-Block-API.patch} (100%) rename patches/server/{0598-Limit-item-frame-cursors-on-maps.patch => 0595-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0599-Add-PlayerKickEvent-causes.patch => 0596-Add-PlayerKickEvent-causes.patch} (99%) rename patches/server/{0600-Add-PufferFishStateChangeEvent.patch => 0597-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0601-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0598-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0602-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0599-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/server/{0603-Add-option-to-fix-items-merging-through-walls.patch => 0600-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0604-Add-BellRevealRaiderEvent.patch => 0601-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0605-Fix-invulnerable-end-crystals.patch => 0602-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0606-Add-ElderGuardianAppearanceEvent.patch => 0603-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0607-Fix-dangerous-end-portal-logic.patch => 0604-Fix-dangerous-end-portal-logic.patch} (100%) rename patches/server/{0608-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0605-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0609-Make-item-validations-configurable.patch => 0606-Make-item-validations-configurable.patch} (100%) rename patches/server/{0610-Line-Of-Sight-Changes.patch => 0607-Line-Of-Sight-Changes.patch} (100%) rename patches/server/{0611-add-per-world-spawn-limits.patch => 0608-add-per-world-spawn-limits.patch} (100%) rename patches/server/{0612-Fix-potions-splash-events.patch => 0609-Fix-potions-splash-events.patch} (100%) rename patches/server/{0613-Add-more-LimitedRegion-API.patch => 0610-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0614-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0611-Fix-PlayerDropItemEvent-using-wrong-item.patch} (100%) rename patches/server/{0615-Missing-Entity-API.patch => 0612-Missing-Entity-API.patch} (99%) rename patches/server/{0616-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0613-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (100%) rename patches/server/{0617-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0614-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0618-Use-getChunkIfLoadedImmediately-in-places.patch => 0615-Use-getChunkIfLoadedImmediately-in-places.patch} (100%) rename patches/server/{0619-Fix-commands-from-signs-not-firing-command-events.patch => 0616-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0620-Adds-PlayerArmSwingEvent.patch => 0617-Adds-PlayerArmSwingEvent.patch} (100%) rename patches/server/{0621-Fixes-kick-event-leave-message-not-being-sent.patch => 0618-Fixes-kick-event-leave-message-not-being-sent.patch} (98%) rename patches/server/{0622-Add-config-for-mobs-immune-to-default-effects.patch => 0619-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/server/{0623-Don-t-apply-cramming-damage-to-players.patch => 0620-Don-t-apply-cramming-damage-to-players.patch} (100%) rename patches/server/{0624-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0621-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0625-Add-a-bunch-of-missing-forceDrop-toggles.patch => 0622-Add-a-bunch-of-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0626-Stinger-API.patch => 0623-Stinger-API.patch} (100%) rename patches/server/{0627-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0624-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0628-Add-System.out-err-catcher.patch => 0625-Add-System.out-err-catcher.patch} (100%) rename patches/server/{0629-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0626-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0630-Improve-boat-collision-performance.patch => 0627-Improve-boat-collision-performance.patch} (100%) rename patches/server/{0631-Prevent-AFK-kick-while-watching-end-credits.patch => 0628-Prevent-AFK-kick-while-watching-end-credits.patch} (100%) rename patches/server/{0632-Allow-skipping-writing-of-comments-to-server.propert.patch => 0629-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0633-Add-PlayerSetSpawnEvent.patch => 0630-Add-PlayerSetSpawnEvent.patch} (98%) rename patches/server/{0634-Make-hoppers-respect-inventory-max-stack-size.patch => 0631-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0635-Optimize-entity-tracker-passenger-checks.patch => 0632-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0636-Config-option-for-Piglins-guarding-chests.patch => 0633-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0637-Added-EntityDamageItemEvent.patch => 0634-Added-EntityDamageItemEvent.patch} (100%) rename patches/server/{0638-Optimize-indirect-passenger-iteration.patch => 0635-Optimize-indirect-passenger-iteration.patch} (100%) rename patches/server/{0639-Configurable-item-frame-map-cursor-update-interval.patch => 0636-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0640-Make-EntityUnleashEvent-cancellable.patch => 0637-Make-EntityUnleashEvent-cancellable.patch} (100%) rename patches/server/{0641-Clear-bucket-NBT-after-dispense.patch => 0638-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0642-Change-EnderEye-target-without-changing-other-things.patch => 0639-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0643-Add-BlockBreakBlockEvent.patch => 0640-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0644-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0641-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0645-More-CommandBlock-API.patch => 0642-More-CommandBlock-API.patch} (100%) rename patches/server/{0646-Add-missing-team-sidebar-display-slots.patch => 0643-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0647-Add-back-EntityPortalExitEvent.patch => 0644-Add-back-EntityPortalExitEvent.patch} (100%) rename patches/server/{0648-Add-methods-to-find-targets-for-lightning-strikes.patch => 0645-Add-methods-to-find-targets-for-lightning-strikes.patch} (100%) rename patches/server/{0649-Get-entity-default-attributes.patch => 0646-Get-entity-default-attributes.patch} (100%) rename patches/server/{0650-Left-handed-API.patch => 0647-Left-handed-API.patch} (100%) rename patches/server/{0651-Add-more-advancement-API.patch => 0648-Add-more-advancement-API.patch} (100%) rename patches/server/{0652-Add-ItemFactory-getSpawnEgg-API.patch => 0649-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0653-Add-critical-damage-API.patch => 0650-Add-critical-damage-API.patch} (100%) rename patches/server/{0654-Fix-issues-with-mob-conversion.patch => 0651-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0655-Add-isCollidable-methods-to-various-places.patch => 0652-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0656-Goat-ram-API.patch => 0653-Goat-ram-API.patch} (100%) rename patches/server/{0657-Add-API-for-resetting-a-single-score.patch => 0654-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0658-Add-Raw-Byte-Entity-Serialization.patch => 0655-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/server/{0659-Vanilla-command-permission-fixes.patch => 0656-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0660-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0657-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (100%) rename patches/server/{0661-Fix-GameProfileCache-concurrency.patch => 0658-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0662-Improve-and-expand-AsyncCatcher.patch => 0659-Improve-and-expand-AsyncCatcher.patch} (100%) rename patches/server/{0663-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0660-Add-paper-mobcaps-and-paper-playermobcaps.patch} (100%) rename patches/server/{0664-Sanitize-ResourceLocation-error-logging.patch => 0661-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0665-Optimise-general-POI-access.patch => 0662-Optimise-general-POI-access.patch} (100%) rename patches/server/{0666-Custom-table-implementation-for-blockstate-state-loo.patch => 0663-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{0667-Manually-inline-methods-in-BlockPosition.patch => 0664-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0668-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0665-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0669-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0666-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (100%) rename patches/server/{0670-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0667-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0671-Don-t-lookup-fluid-state-when-raytracing.patch => 0668-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (60%) rename patches/server/{0672-Time-scoreboard-search.patch => 0669-Time-scoreboard-search.patch} (100%) rename patches/server/{0673-Send-full-pos-packets-for-hard-colliding-entities.patch => 0670-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{0675-Execute-chunk-tasks-mid-tick.patch => 0671-Execute-chunk-tasks-mid-tick.patch} (100%) rename patches/server/{0676-Oprimise-map-impl-for-tracked-players.patch => 0672-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/server/{0677-Optimise-BlockSoil-nearby-water-lookup.patch => 0673-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) delete mode 100644 patches/server/0674-Do-not-run-raytrace-logic-for-AIR.patch rename patches/server/{0678-Optimise-random-block-ticking.patch => 0674-Optimise-random-block-ticking.patch} (100%) rename patches/server/{0679-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 0675-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{0680-Use-Velocity-compression-and-cipher-natives.patch => 0676-Use-Velocity-compression-and-cipher-natives.patch} (100%) rename patches/server/{0681-Detail-more-information-in-watchdog-dumps.patch => 0677-Detail-more-information-in-watchdog-dumps.patch} (100%) rename patches/server/{0682-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch => 0678-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch} (100%) rename patches/server/{0683-Distance-manager-tick-timings.patch => 0679-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0684-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0680-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (100%) rename patches/server/{0685-Check-requirement-before-suggesting-root-nodes.patch => 0681-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0686-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0682-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/server/{0687-Add-packet-limiter-config.patch => 0683-Add-packet-limiter-config.patch} (100%) rename patches/server/{0688-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0684-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0689-Ensure-valid-vehicle-status.patch => 0685-Ensure-valid-vehicle-status.patch} (100%) rename patches/server/{0690-Prevent-softlocked-end-exit-portal-generation.patch => 0686-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0691-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0687-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0692-Don-t-log-debug-logging-being-disabled.patch => 0688-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0693-fix-various-menus-with-empty-level-accesses.patch => 0689-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0694-Preserve-overstacked-loot.patch => 0690-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0695-Update-head-rotation-in-missing-places.patch => 0691-Update-head-rotation-in-missing-places.patch} (100%) rename patches/server/{0696-prevent-unintended-light-block-manipulation.patch => 0692-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0697-Fix-CraftCriteria-defaults-map.patch => 0693-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0698-Fix-upstreams-block-state-factories.patch => 0694-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0699-Configurable-feature-seeds.patch => 0695-Configurable-feature-seeds.patch} (100%) rename patches/server/{0700-Add-root-admin-user-detection.patch => 0696-Add-root-admin-user-detection.patch} (100%) rename patches/server/{0701-Always-allow-item-changing-in-Fireball.patch => 0697-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0702-don-t-attempt-to-teleport-dead-entities.patch => 0698-don-t-attempt-to-teleport-dead-entities.patch} (100%) rename patches/server/{0703-Prevent-excessive-velocity-through-repeated-crits.patch => 0699-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/server/{0704-Remove-client-side-code-using-deprecated-for-removal.patch => 0700-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0705-Fix-removing-recipes-from-RecipeIterator.patch => 0701-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0706-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0702-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/server/{0707-Hide-unnecessary-itemmeta-from-clients.patch => 0703-Hide-unnecessary-itemmeta-from-clients.patch} (100%) rename patches/server/{0708-Fix-Spigot-growth-modifiers.patch => 0704-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0709-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0705-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0710-Add-PlayerItemFrameChangeEvent.patch => 0706-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0711-Optimize-HashMapPalette.patch => 0707-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0712-Allow-delegation-to-vanilla-chunk-gen.patch => 0708-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/server/{0713-Collision-optimisations.patch => 0709-Collision-optimisations.patch} (99%) rename patches/server/{0714-Optimise-collision-checking-in-player-move-packet-ha.patch => 0710-Optimise-collision-checking-in-player-move-packet-ha.patch} (100%) rename patches/server/{0715-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0711-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0716-Add-more-Campfire-API.patch => 0712-Add-more-Campfire-API.patch} (100%) rename patches/server/{0717-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0718-Fix-tripwire-state-inconsistency.patch => 0714-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{0719-Forward-CraftEntity-in-teleport-command.patch => 0715-Forward-CraftEntity-in-teleport-command.patch} (100%) rename patches/server/{0720-Improve-scoreboard-entries.patch => 0716-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0721-Entity-powdered-snow-API.patch => 0717-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0722-Add-API-for-item-entity-health.patch => 0718-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0723-Fix-entity-type-tags-suggestions-in-selectors.patch => 0719-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{0724-Configurable-max-block-light-for-monster-spawning.patch => 0720-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0725-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0721-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0726-Load-effect-amplifiers-greater-than-127-correctly.patch => 0722-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0727-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0723-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0728-Fix-bees-aging-inside-hives.patch => 0724-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0729-Bucketable-API.patch => 0725-Bucketable-API.patch} (100%) rename patches/server/{0730-Validate-usernames.patch => 0726-Validate-usernames.patch} (97%) rename patches/server/{0731-Make-water-animal-spawn-height-configurable.patch => 0727-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0732-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/server/{0733-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0729-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0734-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0730-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0735-Multiple-Entries-with-Scoreboards.patch => 0731-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0736-Reset-placed-block-on-exception.patch => 0732-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0737-Add-configurable-height-for-slime-spawn.patch => 0733-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0738-Fix-xp-reward-for-baby-zombies.patch => 0734-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0739-Multi-Block-Change-API-Implementation.patch => 0735-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0740-Fix-NotePlayEvent.patch => 0736-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0741-Freeze-Tick-Lock-API.patch => 0737-Freeze-Tick-Lock-API.patch} (100%) rename patches/server/{0742-Dolphin-API.patch => 0738-Dolphin-API.patch} (100%) rename patches/server/{0743-More-PotionEffectType-API.patch => 0739-More-PotionEffectType-API.patch} (100%) rename patches/server/{0744-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0740-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0745-API-for-creating-command-sender-which-forwards-feedb.patch => 0741-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/server/{0746-Add-missing-structure-set-seed-configs.patch => 0742-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0747-Implement-regenerateChunk.patch => 0743-Implement-regenerateChunk.patch} (100%) rename patches/server/{0748-Fix-cancelled-powdered-snow-bucket-placement.patch => 0744-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0749-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0745-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (100%) rename patches/server/{0750-Add-GameEvent-tags.patch => 0746-Add-GameEvent-tags.patch} (100%) rename patches/server/{0751-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0747-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (100%) rename patches/server/{0752-Furnace-RecipesUsed-API.patch => 0748-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0753-Configurable-sculk-sensor-listener-range.patch => 0749-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0754-Add-missing-block-data-mins-and-maxes.patch => 0750-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0755-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (100%) rename patches/server/{0756-Put-world-into-worldlist-before-initing-the-world.patch => 0752-Put-world-into-worldlist-before-initing-the-world.patch} (100%) rename patches/server/{0757-Fix-Entity-Position-Desync.patch => 0753-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0758-Custom-Potion-Mixes.patch => 0754-Custom-Potion-Mixes.patch} (100%) rename patches/server/{0759-Force-close-world-loading-screen.patch => 0755-Force-close-world-loading-screen.patch} (95%) rename patches/server/{0760-Fix-falling-block-spawn-methods.patch => 0756-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0761-Expose-furnace-minecart-push-values.patch => 0757-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0762-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0758-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0763-More-Projectile-API.patch => 0759-More-Projectile-API.patch} (100%) rename patches/server/{0764-Fix-swamp-hut-cat-generation-deadlock.patch => 0760-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0765-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/server/{0766-Implement-getComputedBiome-API.patch => 0762-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0767-Make-some-itemstacks-nonnull.patch => 0763-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0768-Implement-enchantWithLevels-API.patch => 0764-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0769-Fix-saving-in-unloadWorld.patch => 0765-Fix-saving-in-unloadWorld.patch} (100%) rename patches/server/{0770-Buffer-OOB-setBlock-calls.patch => 0766-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0771-Add-TameableDeathMessageEvent.patch => 0767-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0772-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (99%) rename patches/server/{0773-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0769-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/server/{0774-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0770-Ensure-entity-passenger-world-matches-ridden-entity.patch} (100%) rename patches/server/{0775-Guard-against-invalid-entity-positions.patch => 0771-Guard-against-invalid-entity-positions.patch} (100%) rename patches/server/{0776-cache-resource-keys.patch => 0772-cache-resource-keys.patch} (100%) rename patches/server/{0777-Allow-to-change-the-podium-for-the-EnderDragon.patch => 0773-Allow-to-change-the-podium-for-the-EnderDragon.patch} (100%) rename patches/server/{0778-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0779-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0775-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0780-Prevent-tile-entity-copies-loading-chunks.patch => 0776-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/server/{0781-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0777-Use-username-instead-of-display-name-in-PlayerList-g.patch} (87%) rename patches/server/{0782-Pass-ServerLevel-for-gamerule-callbacks.patch => 0778-Pass-ServerLevel-for-gamerule-callbacks.patch} (100%) rename patches/server/{0783-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch => 0779-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0784-WorldCreator-keepSpawnLoaded.patch => 0780-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/server/{0785-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0781-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0786-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0782-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0787-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0783-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0788-Fire-CauldronLevelChange-on-initial-fill.patch => 0784-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0789-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0785-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0790-Add-PlayerStopUsingItemEvent.patch => 0786-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/server/{0791-Don-t-tick-markers.patch => 0787-Don-t-tick-markers.patch} (100%) rename patches/server/{0792-Expand-FallingBlock-API.patch => 0788-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0793-Do-not-accept-invalid-client-settings.patch => 0789-Do-not-accept-invalid-client-settings.patch} (100%) rename patches/server/{0794-Add-support-for-Proxy-Protocol.patch => 0790-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0795-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0791-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0796-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0792-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0797-Sanitize-Sent-BlockEntity-NBT.patch => 0793-Sanitize-Sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0798-Disable-component-selector-resolving-in-books-by-def.patch => 0794-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0799-Prevent-entity-loading-causing-async-lookups.patch => 0795-Prevent-entity-loading-causing-async-lookups.patch} (100%) rename patches/server/{0800-Throw-exception-on-world-create-while-being-ticked.patch => 0796-Throw-exception-on-world-create-while-being-ticked.patch} (100%) rename patches/server/{0801-Add-Alternate-Current-redstone-implementation.patch => 0797-Add-Alternate-Current-redstone-implementation.patch} (100%) rename patches/server/{0802-Dont-resent-entity-on-art-update.patch => 0798-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0803-Add-WardenAngerChangeEvent.patch => 0799-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0804-Add-option-for-strict-advancement-dimension-checks.patch => 0800-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/server/{0805-Add-missing-important-BlockStateListPopulator-method.patch => 0801-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0806-Nameable-Banner-API.patch => 0802-Nameable-Banner-API.patch} (100%) rename patches/server/{0807-Don-t-broadcast-messages-to-command-blocks.patch => 0803-Don-t-broadcast-messages-to-command-blocks.patch} (100%) rename patches/server/{0808-Prevent-empty-items-from-being-added-to-world.patch => 0804-Prevent-empty-items-from-being-added-to-world.patch} (100%) rename patches/server/{0809-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0805-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0810-Add-Player-getFishHook.patch => 0806-Add-Player-getFishHook.patch} (100%) rename patches/server/{0811-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0807-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0812-Add-various-missing-EntityDropItemEvent-calls.patch => 0808-Add-various-missing-EntityDropItemEvent-calls.patch} (100%) rename patches/server/{0813-Fix-Bee-flower-NPE.patch => 0809-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0814-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0810-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (100%) rename patches/server/{0815-More-Teleport-API.patch => 0811-More-Teleport-API.patch} (100%) rename patches/server/{0816-Add-EntityPortalReadyEvent.patch => 0812-Add-EntityPortalReadyEvent.patch} (100%) rename patches/server/{0817-Don-t-use-level-random-in-entity-constructors.patch => 0813-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0818-Send-block-entities-after-destroy-prediction.patch => 0814-Send-block-entities-after-destroy-prediction.patch} (100%) rename patches/server/{0819-Warn-on-plugins-accessing-faraway-chunks.patch => 0815-Warn-on-plugins-accessing-faraway-chunks.patch} (100%) rename patches/server/{0820-Custom-Chat-Completion-Suggestions-API.patch => 0816-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0821-Add-and-fix-missing-BlockFadeEvents.patch => 0817-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0822-Collision-API.patch => 0818-Collision-API.patch} (100%) rename patches/server/{0823-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0819-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/server/{0824-Block-Ticking-API.patch => 0820-Block-Ticking-API.patch} (100%) rename patches/server/{0825-Add-Velocity-IP-Forwarding-Support.patch => 0821-Add-Velocity-IP-Forwarding-Support.patch} (100%) rename patches/server/{0826-Add-NamespacedKey-biome-methods.patch => 0822-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0827-Fix-plugin-loggers-on-server-shutdown.patch => 0823-Fix-plugin-loggers-on-server-shutdown.patch} (100%) rename patches/server/{0828-Stop-large-look-changes-from-crashing-the-server.patch => 0824-Stop-large-look-changes-from-crashing-the-server.patch} (100%) rename patches/server/{0829-Fire-EntityChangeBlockEvent-in-more-places.patch => 0825-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0830-Missing-eating-regain-reason.patch => 0826-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0831-Missing-effect-cause.patch => 0827-Missing-effect-cause.patch} (100%) rename patches/server/{0832-Added-byte-array-serialization-deserialization-for-P.patch => 0828-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0833-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0829-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0834-Call-BlockPhysicsEvent-more-often.patch => 0830-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0835-Configurable-chat-thread-limit.patch => 0831-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0836-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0832-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0837-fix-Jigsaw-block-kicking-user.patch => 0833-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0838-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0834-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0839-Add-getDrops-to-BlockState.patch => 0835-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0840-Fix-a-bunch-of-vanilla-bugs.patch => 0836-Fix-a-bunch-of-vanilla-bugs.patch} (95%) rename patches/server/{0841-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0837-Remove-unnecessary-onTrackingStart-during-navigation.patch} (100%) rename patches/server/{0842-Fix-custom-piglin-loved-items.patch => 0838-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0843-EntityPickupItemEvent-fixes.patch => 0839-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0844-Correctly-handle-interactions-with-items-on-cooldown.patch => 0840-Correctly-handle-interactions-with-items-on-cooldown.patch} (100%) rename patches/server/{0845-Add-PlayerInventorySlotChangeEvent.patch => 0841-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/server/{0846-Elder-Guardian-appearance-API.patch => 0842-Elder-Guardian-appearance-API.patch} (100%) rename patches/server/{0847-Allow-changing-bed-s-occupied-property.patch => 0843-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0848-Add-entity-knockback-API.patch => 0844-Add-entity-knockback-API.patch} (100%) rename patches/server/{0849-Detect-headless-JREs.patch => 0845-Detect-headless-JREs.patch} (100%) rename patches/server/{0850-fix-entity-vehicle-collision-event-not-called.patch => 0846-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0851-optimize-dirt-and-snow-spreading.patch => 0847-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{0852-Add-EntityToggleSitEvent.patch => 0848-Add-EntityToggleSitEvent.patch} (96%) rename patches/server/{0853-Add-fire-tick-delay-option.patch => 0849-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0854-Add-Moving-Piston-API.patch => 0850-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0855-Ignore-impossible-spawn-tick.patch => 0851-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0856-Track-projectile-source-for-fireworks-from-dispenser.patch => 0852-Track-projectile-source-for-fireworks-from-dispenser.patch} (88%) rename patches/server/{0857-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0853-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0858-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (100%) rename patches/server/{0860-Add-PrePlayerAttackEntityEvent.patch => 0855-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/server/{0861-ensure-reset-EnderDragon-boss-event-name.patch => 0856-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0862-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0857-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0863-Add-Player-Warden-Warning-API.patch => 0858-Add-Player-Warden-Warning-API.patch} (100%) rename patches/server/{0864-More-vanilla-friendly-methods-to-update-trades.patch => 0859-More-vanilla-friendly-methods-to-update-trades.patch} (100%) delete mode 100644 patches/server/0859-Prevent-compass-from-loading-chunks.patch rename patches/server/{0865-Add-paper-dumplisteners-command.patch => 0860-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0866-check-global-player-list-where-appropriate.patch => 0861-check-global-player-list-where-appropriate.patch} (100%) rename patches/server/{0867-Fix-async-entity-add-due-to-fungus-trees.patch => 0862-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0868-ItemStack-damage-API.patch => 0863-ItemStack-damage-API.patch} (100%) rename patches/server/{0869-Friction-API.patch => 0864-Friction-API.patch} (100%) rename patches/server/{0870-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0865-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0871-Fix-player-kick-on-shutdown.patch => 0866-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0872-Sync-offhand-slot-in-menus.patch => 0867-Sync-offhand-slot-in-menus.patch} (100%) rename patches/server/{0873-Player-Entity-Tracking-Events.patch => 0868-Player-Entity-Tracking-Events.patch} (100%) rename patches/server/{0874-Limit-pet-look-distance.patch => 0869-Limit-pet-look-distance.patch} (100%) rename patches/server/{0875-Properly-resend-entities.patch => 0870-Properly-resend-entities.patch} (99%) rename patches/server/{0876-Fixes-and-additions-to-the-SpawnReason-API.patch => 0871-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0877-fix-Instruments.patch => 0872-fix-Instruments.patch} (100%) rename patches/server/{0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0873-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (87%) rename patches/server/{0879-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0874-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (99%) rename patches/server/{0880-Add-BlockLockCheckEvent.patch => 0875-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0881-Add-Sneaking-API-for-Entities.patch => 0876-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/server/{0882-Improve-logging-and-errors.patch => 0877-Improve-logging-and-errors.patch} (100%) rename patches/server/{0883-Improve-PortalEvents.patch => 0878-Improve-PortalEvents.patch} (93%) rename patches/server/{0884-Add-config-option-for-spider-worldborder-climbing.patch => 0879-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0885-Add-missing-SpigotConfig-logCommands-check.patch => 0880-Add-missing-SpigotConfig-logCommands-check.patch} (100%) rename patches/server/{0886-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0881-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0887-Flying-Fall-Damage.patch => 0882-Flying-Fall-Damage.patch} (100%) rename patches/server/{0888-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0883-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/server/{0889-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (91%) rename patches/server/{0890-config-for-disabling-entity-tag-tags.patch => 0885-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0891-Use-single-player-info-update-packet-on-join.patch => 0886-Use-single-player-info-update-packet-on-join.patch} (94%) rename patches/server/{0892-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0887-Correctly-shrink-items-during-EntityResurrectEvent.patch} (100%) rename patches/server/{0893-Win-Screen-API.patch => 0888-Win-Screen-API.patch} (93%) rename patches/server/{0894-Remove-CraftItemStack-setAmount-null-assignment.patch => 0889-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0895-Fix-force-opening-enchantment-tables.patch => 0890-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0896-Add-Entity-Body-Yaw-API.patch => 0891-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0897-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0892-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0898-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0893-Update-the-flag-when-a-captured-block-state-is-outda.patch} (100%) rename patches/server/{0899-Add-EntityFertilizeEggEvent.patch => 0894-Add-EntityFertilizeEggEvent.patch} (98%) rename patches/server/{0900-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0895-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0901-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0896-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0902-Correctly-handle-ArmorStand-invisibility.patch => 0897-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0903-Fix-advancement-triggers-for-entity-damage.patch => 0898-Fix-advancement-triggers-for-entity-damage.patch} (100%) rename patches/server/{0904-Fix-text-display-error-on-spawn.patch => 0899-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0905-Fix-inventories-returning-null-Locations.patch => 0900-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0906-Add-Shearable-API.patch => 0901-Add-Shearable-API.patch} (100%) rename patches/server/{0907-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0902-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0908-Optimize-Hoppers.patch => 0903-Optimize-Hoppers.patch} (100%) rename patches/server/{0909-Fix-beehives-generating-from-using-bonemeal.patch => 0904-Fix-beehives-generating-from-using-bonemeal.patch} (100%) rename patches/server/{0910-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0905-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0911-Treat-sequence-violations-like-they-should-be.patch => 0906-Treat-sequence-violations-like-they-should-be.patch} (92%) rename patches/server/{0912-remove-duplicate-animate-packet-for-records.patch => 0907-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0913-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0908-Prevent-causing-expired-keys-from-impacting-new-join.patch} (97%) rename patches/server/{0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (91%) rename patches/server/{0915-Use-array-for-gamerule-storage.patch => 0910-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0916-Fix-a-couple-of-upstream-bed-issues.patch => 0911-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0917-Fix-demo-flag-not-enabling-demo-mode.patch => 0912-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0918-Add-Mob-Experience-reward-API.patch => 0913-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0919-Break-redstone-on-top-of-trap-doors-early.patch => 0914-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0920-Fix-DamageCause-for-Falling-Blocks.patch => 0915-Fix-DamageCause-for-Falling-Blocks.patch} (92%) rename patches/server/{0921-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0916-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0922-More-accurate-isInOpenWater-impl.patch => 0917-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0923-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0918-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0924-Optimise-recalcBlockCounts-for-empty-sections.patch => 0919-Optimise-recalcBlockCounts-for-empty-sections.patch} (100%) rename patches/server/{0925-Expand-PlayerItemMendEvent.patch => 0920-Expand-PlayerItemMendEvent.patch} (96%) rename patches/server/{0926-Refresh-ProjectileSource-for-projectiles.patch => 0921-Refresh-ProjectileSource-for-projectiles.patch} (97%) rename patches/server/{0927-Add-transient-modifier-API.patch => 0922-Add-transient-modifier-API.patch} (100%) rename patches/server/{0928-Fix-block-place-logic.patch => 0923-Fix-block-place-logic.patch} (100%) rename patches/server/{0929-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0930-Call-BlockGrowEvent-for-missing-blocks.patch => 0925-Call-BlockGrowEvent-for-missing-blocks.patch} (96%) rename patches/server/{0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (100%) rename patches/server/{0932-fix-MapLike-spam-for-missing-key-selector.patch => 0927-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0933-Fix-sniffer-removeExploredLocation.patch => 0928-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0934-Add-method-to-remove-all-active-potion-effects.patch => 0929-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0935-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch => 0930-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch} (100%) rename patches/server/{0936-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0931-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0937-Properly-cancel-usable-items.patch => 0932-Properly-cancel-usable-items.patch} (100%) rename patches/server/{0938-Add-event-for-player-editing-sign.patch => 0933-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0939-Only-tick-item-frames-if-players-can-see-it.patch => 0934-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0940-Fix-cmd-permission-levels-for-command-blocks.patch => 0935-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/server/{0941-Add-option-to-disable-block-updates.patch => 0936-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0942-Call-missing-BlockDispenseEvent.patch => 0937-Call-missing-BlockDispenseEvent.patch} (96%) rename patches/server/{0943-Don-t-load-chunks-for-supporting-block-checks.patch => 0938-Don-t-load-chunks-for-supporting-block-checks.patch} (90%) rename patches/server/{0944-Optimize-player-lookups-for-beacons.patch => 0939-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0945-Add-Sign-getInteractableSideFor.patch => 0940-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0946-Array-backed-synched-entity-data.patch => 0941-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0947-fix-item-meta-for-tadpole-buckets.patch => 0942-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0948-Fix-BanList-API.patch => 0943-Fix-BanList-API.patch} (99%) rename patches/server/{0949-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0944-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0950-Fix-possible-NPE-on-painting-creation.patch => 0945-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0951-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0946-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0952-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0947-ExperienceOrb-should-call-EntitySpawnEvent.patch} (93%) rename patches/server/{0953-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0948-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0954-Add-whitelist-events.patch => 0949-Add-whitelist-events.patch} (100%) rename patches/server/{0955-Implement-PlayerFailMoveEvent.patch => 0950-Implement-PlayerFailMoveEvent.patch} (98%) rename patches/server/{0956-Folia-scheduler-and-owned-region-API.patch => 0951-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0957-Only-erase-allay-memory-on-non-item-targets.patch => 0952-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0958-API-for-updating-recipes-on-clients.patch => 0953-API-for-updating-recipes-on-clients.patch} (97%) rename patches/server/{0959-Fix-rotation-when-spawning-display-entities.patch => 0954-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0960-Only-capture-actual-tree-growth.patch => 0955-Only-capture-actual-tree-growth.patch} (95%) rename patches/server/{0961-Use-correct-source-for-mushroom-block-spread-event.patch => 0956-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0962-Respect-randomizeData-on-more-entities-when-spawning.patch => 0957-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0963-Use-correct-seed-on-api-world-load.patch => 0958-Use-correct-seed-on-api-world-load.patch} (100%) rename patches/server/{0964-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0959-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0965-Cache-map-ids-on-item-frames.patch => 0960-Cache-map-ids-on-item-frames.patch} (96%) rename patches/server/{0966-Fix-custom-statistic-criteria-creation.patch => 0961-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0967-Bandaid-fix-for-Effect.patch => 0962-Bandaid-fix-for-Effect.patch} (98%) rename patches/server/{0968-SculkCatalyst-bloom-API.patch => 0963-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0969-API-for-an-entity-s-scoreboard-name.patch => 0964-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0970-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0965-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (96%) rename patches/server/{0971-Deprecate-and-replace-methods-with-old-StructureType.patch => 0966-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/server/{0972-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0967-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (95%) rename patches/server/{0973-Properly-handle-BlockBreakEvent-isDropItems.patch => 0968-Properly-handle-BlockBreakEvent-isDropItems.patch} (100%) rename patches/server/{0974-Fire-entity-death-event-for-ender-dragon.patch => 0969-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0975-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0970-Configurable-entity-tracking-range-by-Y-coordinate.patch} (94%) rename patches/server/{0976-Add-Listing-API-for-Player.patch => 0971-Add-Listing-API-for-Player.patch} (99%) rename patches/server/{0977-Configurable-Region-Compression-Format.patch => 0972-Configurable-Region-Compression-Format.patch} (100%) rename patches/server/{0978-Add-BlockFace-to-BlockDamageEvent.patch => 0973-Add-BlockFace-to-BlockDamageEvent.patch} (96%) rename patches/server/{0979-Fix-NPE-on-Boat-getStatus.patch => 0974-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0980-Expand-Pose-API.patch => 0975-Expand-Pose-API.patch} (95%) rename patches/server/{0981-More-DragonBattle-API.patch => 0976-More-DragonBattle-API.patch} (97%) rename patches/server/{0982-Deep-clone-unhandled-nbt-tags.patch => 0977-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0983-Add-PlayerPickItemEvent.patch => 0978-Add-PlayerPickItemEvent.patch} (96%) rename patches/server/{0984-Improve-performance-of-mass-crafts.patch => 0979-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{0985-Allow-trident-custom-damage.patch => 0980-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0986-Expose-hand-in-BlockCanBuildEvent.patch => 0981-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0987-Optimize-nearest-structure-border-iteration.patch => 0982-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0988-Implement-OfflinePlayer-isConnected.patch => 0983-Implement-OfflinePlayer-isConnected.patch} (94%) rename patches/server/{0989-Fix-inventory-desync.patch => 0984-Fix-inventory-desync.patch} (100%) rename patches/server/{0990-Add-titleOverride-to-InventoryOpenEvent.patch => 0985-Add-titleOverride-to-InventoryOpenEvent.patch} (97%) rename patches/server/{0991-Configure-sniffer-egg-hatch-time.patch => 0986-Configure-sniffer-egg-hatch-time.patch} (94%) rename patches/server/{0992-Do-crystal-portal-proximity-check-before-entity-look.patch => 0987-Do-crystal-portal-proximity-check-before-entity-look.patch} (97%) rename patches/server/{0993-Skip-POI-finding-if-stuck-in-vehicle.patch => 0988-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0994-Add-slot-sanity-checks-in-container-clicks.patch => 0989-Add-slot-sanity-checks-in-container-clicks.patch} (93%) rename patches/server/{0995-Call-BlockRedstoneEvents-for-lecterns.patch => 0990-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0996-Allow-proper-checking-of-empty-item-stacks.patch => 0991-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0997-Fix-silent-equipment-change-for-mobs.patch => 0992-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{0998-Fix-spigot-s-Forced-Stats.patch => 0993-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0999-Add-missing-InventoryHolders-to-inventories.patch => 0994-Add-missing-InventoryHolders-to-inventories.patch} (99%) rename patches/server/{1000-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0995-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{1001-Actually-optimise-explosions.patch => 0996-Actually-optimise-explosions.patch} (99%) rename patches/server/{1002-Add-missing-logs-for-log-ips-config-option.patch => 0997-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{1003-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0998-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{1004-Fix-SuspiciousStewMeta.patch => 0999-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{1005-Optimise-chunk-tick-iteration.patch => 1000-Optimise-chunk-tick-iteration.patch} (99%) rename patches/server/{1006-Lag-compensation-ticks.patch => 1001-Lag-compensation-ticks.patch} (100%) rename patches/server/{1007-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 1002-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{1008-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 1003-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{1009-Fix-team-sidebar-objectives-not-being-cleared.patch => 1004-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{1010-Optimise-nearby-player-retrieval.patch => 1005-Optimise-nearby-player-retrieval.patch} (98%) rename patches/server/{1011-Fix-missing-map-initialize-event-call.patch => 1006-Fix-missing-map-initialize-event-call.patch} (95%) rename patches/server/{1012-Update-entity-data-when-attaching-firework-to-entity.patch => 1007-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{1013-Use-correct-variable-for-initializing-CraftLootTable.patch => 1008-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{1014-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 1009-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{1015-Fix-UnsafeValues-loadAdvancement.patch => 1010-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{1016-Add-player-idle-duration-API.patch => 1011-Add-player-idle-duration-API.patch} (91%) rename patches/server/{1017-Don-t-check-if-we-can-see-non-visible-entities.patch => 1012-Don-t-check-if-we-can-see-non-visible-entities.patch} (91%) rename patches/server/{1018-Fix-NPE-in-SculkBloomEvent-world-access.patch => 1013-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 1014-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (90%) rename patches/server/{1020-Optimize-VarInts.patch => 1015-Optimize-VarInts.patch} (100%) rename patches/server/{1021-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 1016-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{1022-Add-predicate-for-blocks-when-raytracing.patch => 1017-Add-predicate-for-blocks-when-raytracing.patch} (95%) rename patches/server/{1023-Broadcast-take-item-packets-with-collector-as-source.patch => 1018-Broadcast-take-item-packets-with-collector-as-source.patch} (100%) rename patches/server/{1024-Expand-LingeringPotion-API.patch => 1019-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{1025-Add-MaterialTagsTest.patch => 1020-Add-MaterialTagsTest.patch} (100%) rename patches/server/{1026-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 1021-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/server/{1027-Add-hand-to-fish-event-for-all-player-interactions.patch => 1022-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{1028-Fix-several-issues-with-EntityBreedEvent.patch => 1023-Fix-several-issues-with-EntityBreedEvent.patch} (97%) rename patches/server/{1029-Add-UUID-attribute-modifier-API.patch => 1024-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{1030-Fix-missing-event-call-for-entity-teleport-API.patch => 1025-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{1031-Lazily-create-LootContext-for-criterions.patch => 1026-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{1032-Don-t-fire-sync-events-during-worldgen.patch => 1027-Don-t-fire-sync-events-during-worldgen.patch} (100%) rename patches/server/{1033-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 1028-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{1034-Restore-vanilla-entity-drops-behavior.patch => 1029-Restore-vanilla-entity-drops-behavior.patch} (97%) rename patches/server/{1035-Add-Structure-check-API.patch => 1030-Add-Structure-check-API.patch} (100%) rename patches/server/{1036-Dont-resend-blocks-on-interactions.patch => 1031-Dont-resend-blocks-on-interactions.patch} (100%) rename patches/server/{1037-Keep-previous-behavior-for-setResourcePack.patch => 1032-Keep-previous-behavior-for-setResourcePack.patch} (94%) rename patches/server/{1038-properly-read-and-store-sus-effect-duration.patch => 1033-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{1039-Use-correct-max-stack-size-in-crafter.patch => 1034-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{1040-add-more-scoreboard-API.patch => 1035-add-more-scoreboard-API.patch} (100%) rename patches/server/{1041-Improve-Registry.patch => 1036-Improve-Registry.patch} (100%) rename patches/server/{1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (100%) rename patches/server/{1043-Add-experience-points-API.patch => 1038-Add-experience-points-API.patch} (95%) rename patches/server/{1044-Add-missing-InventoryType.patch => 1039-Add-missing-InventoryType.patch} (100%) rename patches/server/{1045-Add-drops-to-shear-events.patch => 1040-Add-drops-to-shear-events.patch} (99%) rename patches/server/{1046-Add-PlayerShieldDisableEvent.patch => 1041-Add-PlayerShieldDisableEvent.patch} (97%) rename patches/server/{1047-Add-HiddenPotionEffect-API.patch => 1042-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1043-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (96%) rename patches/server/{1049-fix-ItemMeta-removing-CustomModelData.patch => 1044-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/server/{1050-Validate-ResourceLocation-in-NBT-reading.patch => 1045-Validate-ResourceLocation-in-NBT-reading.patch} (98%) rename patches/server/{1051-Properly-handle-experience-dropping-on-block-break.patch => 1046-Properly-handle-experience-dropping-on-block-break.patch} (97%) rename patches/server/{1052-Fixup-NamespacedKey-handling.patch => 1047-Fixup-NamespacedKey-handling.patch} (100%) diff --git a/patches/api/0009-Paper-Plugins.patch b/patches/api/0009-Paper-Plugins.patch index 4bf14b150947..caeceff81777 100644 --- a/patches/api/0009-Paper-Plugins.patch +++ b/patches/api/0009-Paper-Plugins.patch @@ -2097,7 +2097,7 @@ index 6d634b0ea813ccb19f1562a7d0e5a59cea4eab21..653135352c104a6ddeb74a1b6d4916c6 } diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -index 64a294aeb6fb548794708b38c3707f9dd882b2ff..74b6581a97a092c44a0876e7981ff8a8e6153100 100644 +index 64a294aeb6fb548794708b38c3707f9dd882b2ff..58d20eff7e0da2d7fcb1609d55e4284715355634 100644 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java @@ -31,7 +31,8 @@ import org.jetbrains.annotations.Nullable; @@ -2124,7 +2124,7 @@ index 64a294aeb6fb548794708b38c3707f9dd882b2ff..74b6581a97a092c44a0876e7981ff8a8 - PluginClassLoader(@NotNull final JavaPluginLoader loader, @Nullable final ClassLoader parent, @NotNull final PluginDescriptionFile description, @NotNull final File dataFolder, @NotNull final File file, @Nullable ClassLoader libraryLoader) throws IOException, InvalidPluginException, MalformedURLException { + @org.jetbrains.annotations.ApiStatus.Internal // Paper -+ public PluginClassLoader(@Nullable final ClassLoader parent, @NotNull final PluginDescriptionFile description, @NotNull final File dataFolder, @NotNull final File file, @Nullable ClassLoader libraryLoader, JarFile jarFile, io.papermc.paper.plugin.provider.entrypoint.DependencyContext dependencyContext) throws IOException, InvalidPluginException, MalformedURLException { // Paper // Paper - use JarFile provided by SpigotPluginProvider ++ public PluginClassLoader(@Nullable final ClassLoader parent, @NotNull final PluginDescriptionFile description, @NotNull final File dataFolder, @NotNull final File file, @Nullable ClassLoader libraryLoader, JarFile jarFile, io.papermc.paper.plugin.provider.entrypoint.DependencyContext dependencyContext) throws IOException, InvalidPluginException, MalformedURLException { // Paper - use JarFile provided by SpigotPluginProvider super(new URL[] {file.toURI().toURL()}, parent); - Preconditions.checkArgument(loader != null, "Loader cannot be null"); + this.loader = null; // Paper - pass null into loader field diff --git a/patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch index 0f7613148600..aefa20a2d9cf 100644 --- a/patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch +++ b/patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Rewrite LogEvents to contain the source jars in stack traces diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java -index d6d3e1332e51adc5611543b2a6689efa5921a9f2..877bfe10b858145278133acbc7049f700d2b4f8a 100644 +index 8c5597e02d71c8db66e9cd11f0a41776eb471c46..de017d10db19ca7ca7f73ff0ac08fe6e1773d7dc 100644 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java @@ -56,7 +56,7 @@ public final class PluginClassLoader extends URLClassLoader implements io.paperm @org.jetbrains.annotations.ApiStatus.Internal // Paper - public PluginClassLoader(@Nullable final ClassLoader parent, @NotNull final PluginDescriptionFile description, @NotNull final File dataFolder, @NotNull final File file, @Nullable ClassLoader libraryLoader, JarFile jarFile, io.papermc.paper.plugin.provider.entrypoint.DependencyContext dependencyContext) throws IOException, InvalidPluginException, MalformedURLException { // Paper // Paper - use JarFile provided by SpigotPluginProvider + public PluginClassLoader(@Nullable final ClassLoader parent, @NotNull final PluginDescriptionFile description, @NotNull final File dataFolder, @NotNull final File file, @Nullable ClassLoader libraryLoader, JarFile jarFile, io.papermc.paper.plugin.provider.entrypoint.DependencyContext dependencyContext) throws IOException, InvalidPluginException, MalformedURLException { // Paper - use JarFile provided by SpigotPluginProvider - super(new URL[] {file.toURI().toURL()}, parent); + super(file.getName(), new URL[] {file.toURI().toURL()}, parent); this.loader = null; // Paper - pass null into loader field diff --git a/patches/api/0328-Move-VehicleCollisionEvent-HandlerList-up.patch b/patches/api/0328-Extend-VehicleCollisionEvent-move-HandlerList-up.patch similarity index 70% rename from patches/api/0328-Move-VehicleCollisionEvent-HandlerList-up.patch rename to patches/api/0328-Extend-VehicleCollisionEvent-move-HandlerList-up.patch index 4be8907b4961..5f5a4f414001 100644 --- a/patches/api/0328-Move-VehicleCollisionEvent-HandlerList-up.patch +++ b/patches/api/0328-Extend-VehicleCollisionEvent-move-HandlerList-up.patch @@ -1,23 +1,48 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Mon, 13 Dec 2021 14:35:27 -0800 -Subject: [PATCH] Move VehicleCollisionEvent HandlerList up +Subject: [PATCH] Extend VehicleCollisionEvent, move HandlerList up +Co-authored-by: SoSeDiK diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java -index 316f625aa595d2ada16529b16d09f013fc4daeac..7ff9aec7ed341c01feddb8d71170b177e1fde47b 100644 +index 316f625aa595d2ada16529b16d09f013fc4daeac..d0a437bd8aeec18f800893f51ece06deb0c8972c 100644 --- a/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java +++ b/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java -@@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull; +@@ -9,13 +9,31 @@ import org.jetbrains.annotations.NotNull; * Raised when a vehicle collides with a block. */ public class VehicleBlockCollisionEvent extends VehicleCollisionEvent { - private static final HandlerList handlers = new HandlerList(); -+ // private static final HandlerList handlers = new HandlerList(); // Paper - move HandlerList to VehicleCollisionEvent private final Block block; ++ private final org.bukkit.util.Vector velocity; // Paper ++ // Paper start - Add pre-collision velocity ++ @Deprecated public VehicleBlockCollisionEvent(@NotNull final Vehicle vehicle, @NotNull final Block block) { -@@ -26,15 +26,4 @@ public class VehicleBlockCollisionEvent extends VehicleCollisionEvent { ++ this(vehicle, block, vehicle.getVelocity()); ++ } ++ ++ public VehicleBlockCollisionEvent(@NotNull final Vehicle vehicle, @NotNull final Block block, @NotNull final org.bukkit.util.Vector velocity) { // Paper - Added velocity + super(vehicle); + this.block = block; ++ this.velocity = velocity; ++ } ++ ++ /** ++ * Gets velocity at which the vehicle collided with the block ++ * ++ * @return pre-collision moving velocity ++ */ ++ @NotNull ++ public org.bukkit.util.Vector getVelocity() { ++ return velocity; + } ++ // Paper end + + /** + * Gets the block the vehicle collided with +@@ -26,15 +44,4 @@ public class VehicleBlockCollisionEvent extends VehicleCollisionEvent { public Block getBlock() { return block; } @@ -57,19 +82,18 @@ index 9d493c155ad5c26430c1e404fcf0db5f734679e4..aa1d74eade479195bde8095aafcc91a8 + // Paper end } diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java -index 50c762d777ac90a05772501a28cacff8fd3f5126..f7f8d6274d49895f0b7db92a84bc224d936022ba 100644 +index 50c762d777ac90a05772501a28cacff8fd3f5126..77fb04bdf5b1a6d94693a7374a750e020131dc3d 100644 --- a/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java +++ b/src/main/java/org/bukkit/event/vehicle/VehicleEntityCollisionEvent.java -@@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull; +@@ -10,7 +10,6 @@ import org.jetbrains.annotations.NotNull; * Raised when a vehicle collides with an entity. */ public class VehicleEntityCollisionEvent extends VehicleCollisionEvent implements Cancellable { - private static final HandlerList handlers = new HandlerList(); -+ // private static final HandlerList handlers = new HandlerList(); // Paper - move HandlerList to VehicleCollisionEvent private final Entity entity; private boolean cancelled = false; private boolean cancelledPickup = false; -@@ -55,15 +55,4 @@ public class VehicleEntityCollisionEvent extends VehicleCollisionEvent implement +@@ -55,15 +54,4 @@ public class VehicleEntityCollisionEvent extends VehicleCollisionEvent implement public void setCollisionCancelled(boolean cancel) { cancelledCollision = cancel; } diff --git a/patches/api/0400-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/api/0400-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch deleted file mode 100644 index 25fa280b26d4..000000000000 --- a/patches/api/0400-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: SoSeDiK -Date: Tue, 11 Oct 2022 23:30:32 +0300 -Subject: [PATCH] Expose pre-collision moving velocity to - VehicleBlockCollisionEvent - - -diff --git a/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java b/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java -index 7ff9aec7ed341c01feddb8d71170b177e1fde47b..d2b33f4105ae32a884e714a8936e3d91e23a00a0 100644 ---- a/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java -+++ b/src/main/java/org/bukkit/event/vehicle/VehicleBlockCollisionEvent.java -@@ -11,11 +11,20 @@ import org.jetbrains.annotations.NotNull; - public class VehicleBlockCollisionEvent extends VehicleCollisionEvent { - // private static final HandlerList handlers = new HandlerList(); // Paper - move HandlerList to VehicleCollisionEvent - private final Block block; -+ private final org.bukkit.util.Vector velocity; // Paper - -+ // Paper start - Add pre-collision velocity -+ @Deprecated - public VehicleBlockCollisionEvent(@NotNull final Vehicle vehicle, @NotNull final Block block) { -+ this(vehicle, block, vehicle.getVelocity()); -+ } -+ -+ public VehicleBlockCollisionEvent(@NotNull final Vehicle vehicle, @NotNull final Block block, @NotNull final org.bukkit.util.Vector velocity) { // Paper - Added velocity - super(vehicle); - this.block = block; -+ this.velocity = velocity; - } -+ // Paper end - - /** - * Gets the block the vehicle collided with -@@ -26,4 +35,16 @@ public class VehicleBlockCollisionEvent extends VehicleCollisionEvent { - public Block getBlock() { - return block; - } -+ -+ // Paper start -+ /** -+ * Gets velocity at which the vehicle collided with the block -+ * -+ * @return pre-collision moving velocity -+ */ -+ @NotNull -+ public org.bukkit.util.Vector getVelocity() { -+ return velocity; -+ } -+ // Paper end - } diff --git a/patches/api/0401-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/0400-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch similarity index 100% rename from patches/api/0401-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch rename to patches/api/0400-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch diff --git a/patches/api/0402-Win-Screen-API.patch b/patches/api/0401-Win-Screen-API.patch similarity index 100% rename from patches/api/0402-Win-Screen-API.patch rename to patches/api/0401-Win-Screen-API.patch diff --git a/patches/api/0403-Add-Entity-Body-Yaw-API.patch b/patches/api/0402-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/api/0403-Add-Entity-Body-Yaw-API.patch rename to patches/api/0402-Add-Entity-Body-Yaw-API.patch diff --git a/patches/api/0404-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0403-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch similarity index 100% rename from patches/api/0404-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch rename to patches/api/0403-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch diff --git a/patches/api/0405-Add-EntityFertilizeEggEvent.patch b/patches/api/0404-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/api/0405-Add-EntityFertilizeEggEvent.patch rename to patches/api/0404-Add-EntityFertilizeEggEvent.patch diff --git a/patches/api/0406-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/api/0405-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/api/0406-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/api/0405-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/api/0407-Add-Shearable-API.patch b/patches/api/0406-Add-Shearable-API.patch similarity index 100% rename from patches/api/0407-Add-Shearable-API.patch rename to patches/api/0406-Add-Shearable-API.patch diff --git a/patches/api/0408-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/api/0407-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/api/0408-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/api/0407-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/api/0409-Add-Mob-Experience-reward-API.patch b/patches/api/0408-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/api/0409-Add-Mob-Experience-reward-API.patch rename to patches/api/0408-Add-Mob-Experience-reward-API.patch diff --git a/patches/api/0410-Expand-PlayerItemMendEvent.patch b/patches/api/0409-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/api/0410-Expand-PlayerItemMendEvent.patch rename to patches/api/0409-Expand-PlayerItemMendEvent.patch diff --git a/patches/api/0411-Add-transient-modifier-API.patch b/patches/api/0410-Add-transient-modifier-API.patch similarity index 100% rename from patches/api/0411-Add-transient-modifier-API.patch rename to patches/api/0410-Add-transient-modifier-API.patch diff --git a/patches/api/0412-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/api/0411-Properly-remove-the-experimental-smithing-inventory-.patch similarity index 100% rename from patches/api/0412-Properly-remove-the-experimental-smithing-inventory-.patch rename to patches/api/0411-Properly-remove-the-experimental-smithing-inventory-.patch diff --git a/patches/api/0413-Add-method-to-remove-all-active-potion-effects.patch b/patches/api/0412-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/api/0413-Add-method-to-remove-all-active-potion-effects.patch rename to patches/api/0412-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/api/0414-Folia-scheduler-and-owned-region-API.patch b/patches/api/0413-Folia-scheduler-and-owned-region-API.patch similarity index 100% rename from patches/api/0414-Folia-scheduler-and-owned-region-API.patch rename to patches/api/0413-Folia-scheduler-and-owned-region-API.patch diff --git a/patches/api/0415-Add-event-for-player-editing-sign.patch b/patches/api/0414-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/api/0415-Add-event-for-player-editing-sign.patch rename to patches/api/0414-Add-event-for-player-editing-sign.patch diff --git a/patches/api/0416-Add-Sign-getInteractableSideFor.patch b/patches/api/0415-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/api/0416-Add-Sign-getInteractableSideFor.patch rename to patches/api/0415-Add-Sign-getInteractableSideFor.patch diff --git a/patches/api/0417-Fix-BanList-API.patch b/patches/api/0416-Fix-BanList-API.patch similarity index 100% rename from patches/api/0417-Fix-BanList-API.patch rename to patches/api/0416-Fix-BanList-API.patch diff --git a/patches/api/0418-Add-whitelist-events.patch b/patches/api/0417-Add-whitelist-events.patch similarity index 100% rename from patches/api/0418-Add-whitelist-events.patch rename to patches/api/0417-Add-whitelist-events.patch diff --git a/patches/api/0419-API-for-updating-recipes-on-clients.patch b/patches/api/0418-API-for-updating-recipes-on-clients.patch similarity index 100% rename from patches/api/0419-API-for-updating-recipes-on-clients.patch rename to patches/api/0418-API-for-updating-recipes-on-clients.patch diff --git a/patches/api/0420-Add-PlayerFailMoveEvent.patch b/patches/api/0419-Add-PlayerFailMoveEvent.patch similarity index 100% rename from patches/api/0420-Add-PlayerFailMoveEvent.patch rename to patches/api/0419-Add-PlayerFailMoveEvent.patch diff --git a/patches/api/0421-Fix-custom-statistic-criteria-creation.patch b/patches/api/0420-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/api/0421-Fix-custom-statistic-criteria-creation.patch rename to patches/api/0420-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/api/0422-SculkCatalyst-bloom-API.patch b/patches/api/0421-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/api/0422-SculkCatalyst-bloom-API.patch rename to patches/api/0421-SculkCatalyst-bloom-API.patch diff --git a/patches/api/0423-API-for-an-entity-s-scoreboard-name.patch b/patches/api/0422-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/api/0423-API-for-an-entity-s-scoreboard-name.patch rename to patches/api/0422-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/api/0424-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/api/0423-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/api/0424-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/api/0423-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/api/0425-Add-Listing-API-for-Player.patch b/patches/api/0424-Add-Listing-API-for-Player.patch similarity index 100% rename from patches/api/0425-Add-Listing-API-for-Player.patch rename to patches/api/0424-Add-Listing-API-for-Player.patch diff --git a/patches/api/0426-Expose-clicked-BlockFace-during-BlockDamageEvent.patch b/patches/api/0425-Expose-clicked-BlockFace-during-BlockDamageEvent.patch similarity index 100% rename from patches/api/0426-Expose-clicked-BlockFace-during-BlockDamageEvent.patch rename to patches/api/0425-Expose-clicked-BlockFace-during-BlockDamageEvent.patch diff --git a/patches/api/0427-Fix-NPE-on-Boat-getStatus.patch b/patches/api/0426-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/api/0427-Fix-NPE-on-Boat-getStatus.patch rename to patches/api/0426-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/api/0428-Expand-Pose-API.patch b/patches/api/0427-Expand-Pose-API.patch similarity index 100% rename from patches/api/0428-Expand-Pose-API.patch rename to patches/api/0427-Expand-Pose-API.patch diff --git a/patches/api/0429-MerchantRecipe-add-copy-constructor.patch b/patches/api/0428-MerchantRecipe-add-copy-constructor.patch similarity index 100% rename from patches/api/0429-MerchantRecipe-add-copy-constructor.patch rename to patches/api/0428-MerchantRecipe-add-copy-constructor.patch diff --git a/patches/api/0430-More-DragonBattle-API.patch b/patches/api/0429-More-DragonBattle-API.patch similarity index 100% rename from patches/api/0430-More-DragonBattle-API.patch rename to patches/api/0429-More-DragonBattle-API.patch diff --git a/patches/api/0431-Add-PlayerPickItemEvent.patch b/patches/api/0430-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/api/0431-Add-PlayerPickItemEvent.patch rename to patches/api/0430-Add-PlayerPickItemEvent.patch diff --git a/patches/api/0432-Allow-trident-custom-damage.patch b/patches/api/0431-Allow-trident-custom-damage.patch similarity index 100% rename from patches/api/0432-Allow-trident-custom-damage.patch rename to patches/api/0431-Allow-trident-custom-damage.patch diff --git a/patches/api/0433-Expose-hand-during-BlockCanBuildEvent.patch b/patches/api/0432-Expose-hand-during-BlockCanBuildEvent.patch similarity index 100% rename from patches/api/0433-Expose-hand-during-BlockCanBuildEvent.patch rename to patches/api/0432-Expose-hand-during-BlockCanBuildEvent.patch diff --git a/patches/api/0434-Limit-setBurnTime-to-valid-short-values.patch b/patches/api/0433-Limit-setBurnTime-to-valid-short-values.patch similarity index 100% rename from patches/api/0434-Limit-setBurnTime-to-valid-short-values.patch rename to patches/api/0433-Limit-setBurnTime-to-valid-short-values.patch diff --git a/patches/api/0435-Add-OfflinePlayer-isConnected.patch b/patches/api/0434-Add-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/api/0435-Add-OfflinePlayer-isConnected.patch rename to patches/api/0434-Add-OfflinePlayer-isConnected.patch diff --git a/patches/api/0436-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/api/0435-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 100% rename from patches/api/0436-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/api/0435-Add-titleOverride-to-InventoryOpenEvent.patch diff --git a/patches/api/0437-Allow-proper-checking-of-empty-item-stacks.patch b/patches/api/0436-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/api/0437-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/api/0436-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/api/0438-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch b/patches/api/0437-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch similarity index 100% rename from patches/api/0438-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch rename to patches/api/0437-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch diff --git a/patches/api/0439-Add-player-idle-duration-API.patch b/patches/api/0438-Add-player-idle-duration-API.patch similarity index 100% rename from patches/api/0439-Add-player-idle-duration-API.patch rename to patches/api/0438-Add-player-idle-duration-API.patch diff --git a/patches/api/0440-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/api/0439-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/api/0440-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/api/0439-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/api/0441-Add-predicate-for-blocks-when-raytracing.patch b/patches/api/0440-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/api/0441-Add-predicate-for-blocks-when-raytracing.patch rename to patches/api/0440-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/api/0442-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/api/0441-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/api/0442-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/api/0441-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/api/0443-Add-UUID-attribute-modifier-API.patch b/patches/api/0442-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/api/0443-Add-UUID-attribute-modifier-API.patch rename to patches/api/0442-Add-UUID-attribute-modifier-API.patch diff --git a/patches/api/0444-Expand-LingeringPotion-API.patch b/patches/api/0443-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/api/0444-Expand-LingeringPotion-API.patch rename to patches/api/0443-Expand-LingeringPotion-API.patch diff --git a/patches/api/0445-Remove-unnecessary-durability-check-in-ItemStack-isS.patch b/patches/api/0444-Remove-unnecessary-durability-check-in-ItemStack-isS.patch similarity index 100% rename from patches/api/0445-Remove-unnecessary-durability-check-in-ItemStack-isS.patch rename to patches/api/0444-Remove-unnecessary-durability-check-in-ItemStack-isS.patch diff --git a/patches/api/0446-Add-Structure-check-API.patch b/patches/api/0445-Add-Structure-check-API.patch similarity index 100% rename from patches/api/0446-Add-Structure-check-API.patch rename to patches/api/0445-Add-Structure-check-API.patch diff --git a/patches/api/0447-add-missing-Experimental-annotations.patch b/patches/api/0446-add-missing-Experimental-annotations.patch similarity index 100% rename from patches/api/0447-add-missing-Experimental-annotations.patch rename to patches/api/0446-add-missing-Experimental-annotations.patch diff --git a/patches/api/0448-Add-more-scoreboard-API.patch b/patches/api/0447-Add-more-scoreboard-API.patch similarity index 100% rename from patches/api/0448-Add-more-scoreboard-API.patch rename to patches/api/0447-Add-more-scoreboard-API.patch diff --git a/patches/api/0449-Improve-Registry.patch b/patches/api/0448-Improve-Registry.patch similarity index 100% rename from patches/api/0449-Improve-Registry.patch rename to patches/api/0448-Improve-Registry.patch diff --git a/patches/api/0450-Add-experience-points-API.patch b/patches/api/0449-Add-experience-points-API.patch similarity index 100% rename from patches/api/0450-Add-experience-points-API.patch rename to patches/api/0449-Add-experience-points-API.patch diff --git a/patches/api/0451-Add-missing-InventoryType.patch b/patches/api/0450-Add-missing-InventoryType.patch similarity index 100% rename from patches/api/0451-Add-missing-InventoryType.patch rename to patches/api/0450-Add-missing-InventoryType.patch diff --git a/patches/api/0452-Add-drops-to-shear-events.patch b/patches/api/0451-Add-drops-to-shear-events.patch similarity index 100% rename from patches/api/0452-Add-drops-to-shear-events.patch rename to patches/api/0451-Add-drops-to-shear-events.patch diff --git a/patches/api/0453-Add-HiddenPotionEffect-API.patch b/patches/api/0452-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/api/0453-Add-HiddenPotionEffect-API.patch rename to patches/api/0452-Add-HiddenPotionEffect-API.patch diff --git a/patches/api/0454-Add-PlayerShieldDisableEvent.patch b/patches/api/0453-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/api/0454-Add-PlayerShieldDisableEvent.patch rename to patches/api/0453-Add-PlayerShieldDisableEvent.patch diff --git a/patches/api/0455-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch b/patches/api/0454-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch similarity index 100% rename from patches/api/0455-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch rename to patches/api/0454-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch diff --git a/patches/removed/1.19.2-legacy-chunksystem/0845-Replace-ticket-level-propagator.patch b/patches/removed/1.19.2-legacy-chunksystem/0845-Replace-ticket-level-propagator.patch index 8959b46f3f62..8d248b38bcd3 100644 --- a/patches/removed/1.19.2-legacy-chunksystem/0845-Replace-ticket-level-propagator.patch +++ b/patches/removed/1.19.2-legacy-chunksystem/0845-Replace-ticket-level-propagator.patch @@ -234,7 +234,7 @@ index 06e4d3a02e0d1326b7029157856476db4ef3575e..f581a9f79b2357118d912a15344ff94d int newLevel = getTicketLevelAt(arraysetsorted); if (newLevel > oldLevel) { - this.ticketTracker.update(i, newLevel, false); -+ this.updateTicketLevel(i, newLevel); // Paper // Paper - replace ticket level propagator ++ this.updateTicketLevel(i, newLevel); // Paper - replace ticket level propagator } // Paper end return removed; // CraftBukkit diff --git a/patches/server/0254-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch b/patches/server/0254-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch deleted file mode 100644 index 398cfb379203..000000000000 --- a/patches/server/0254-Prevent-Mob-AI-Rules-from-Loading-Chunks.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Mon, 10 Sep 2018 23:56:36 -0400 -Subject: [PATCH] Prevent Mob AI Rules from Loading Chunks - - -diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java -index e3d070d46729c023d594699619a4b3f8658edbce..509317a26c79f453335df1c19dc4c9ec570046af 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java -+++ b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java -@@ -126,7 +126,9 @@ public class RemoveBlockGoal extends MoveToBlockGoal { - - @Nullable - private BlockPos getPosWithBlock(BlockPos pos, BlockGetter world) { -- if (world.getBlockState(pos).is(this.blockToRemove)) { -+ net.minecraft.world.level.block.state.BlockState block = world.getBlockStateIfLoaded(pos); // Paper -+ if (block == null) return null; // Paper -+ if (block.is(this.blockToRemove)) { // Paper - return pos; - } else { - BlockPos[] ablockposition = new BlockPos[]{pos.below(), pos.west(), pos.east(), pos.north(), pos.south(), pos.below().below()}; -@@ -136,7 +138,8 @@ public class RemoveBlockGoal extends MoveToBlockGoal { - for (int j = 0; j < i; ++j) { - BlockPos blockposition1 = ablockposition1[j]; - -- if (world.getBlockState(blockposition1).is(this.blockToRemove)) { -+ net.minecraft.world.level.block.state.BlockState block2 = world.getBlockStateIfLoaded(blockposition1); // Paper -+ if (block2 != null && block2.is(this.blockToRemove)) { // Paper - return blockposition1; - } - } -@@ -147,7 +150,7 @@ public class RemoveBlockGoal extends MoveToBlockGoal { - - @Override - protected boolean isValidTarget(LevelReader world, BlockPos pos) { -- ChunkAccess ichunkaccess = world.getChunk(SectionPos.blockToSectionCoord(pos.getX()), SectionPos.blockToSectionCoord(pos.getZ()), ChunkStatus.FULL, false); -+ ChunkAccess ichunkaccess = world.getChunkIfLoadedImmediately(pos.getX() >> 4, pos.getZ() >> 4); // Paper - - return ichunkaccess == null ? false : ichunkaccess.getBlockState(pos).is(this.blockToRemove) && ichunkaccess.getBlockState(pos.above()).isAir() && ichunkaccess.getBlockState(pos.above(2)).isAir(); - } diff --git a/patches/server/0254-Prevent-various-interactions-from-causing-chunk-load.patch b/patches/server/0254-Prevent-various-interactions-from-causing-chunk-load.patch new file mode 100644 index 000000000000..c56e635c3435 --- /dev/null +++ b/patches/server/0254-Prevent-various-interactions-from-causing-chunk-load.patch @@ -0,0 +1,99 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Mon, 10 Sep 2018 23:56:36 -0400 +Subject: [PATCH] Prevent various interactions from causing chunk loads + +Co-authored-by: Shane Freeder + +diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java +index e3d070d46729c023d594699619a4b3f8658edbce..5580a396a56c6e0f364a5368985ee99b9e2be0a8 100644 +--- a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java ++++ b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java +@@ -126,7 +126,9 @@ public class RemoveBlockGoal extends MoveToBlockGoal { + + @Nullable + private BlockPos getPosWithBlock(BlockPos pos, BlockGetter world) { +- if (world.getBlockState(pos).is(this.blockToRemove)) { ++ net.minecraft.world.level.block.state.BlockState block = world.getBlockStateIfLoaded(pos); // Paper - Prevent AI rules from loading chunks ++ if (block == null) return null; // Paper - Prevent AI rules from loading chunks ++ if (block.is(this.blockToRemove)) { // Paper - Prevent AI rules from loading chunks + return pos; + } else { + BlockPos[] ablockposition = new BlockPos[]{pos.below(), pos.west(), pos.east(), pos.north(), pos.south(), pos.below().below()}; +@@ -136,7 +138,8 @@ public class RemoveBlockGoal extends MoveToBlockGoal { + for (int j = 0; j < i; ++j) { + BlockPos blockposition1 = ablockposition1[j]; + +- if (world.getBlockState(blockposition1).is(this.blockToRemove)) { ++ net.minecraft.world.level.block.state.BlockState block2 = world.getBlockStateIfLoaded(blockposition1); // Paper - Prevent AI rules from loading chunks ++ if (block2 != null && block2.is(this.blockToRemove)) { // Paper - Prevent AI rules from loading chunks + return blockposition1; + } + } +@@ -147,7 +150,7 @@ public class RemoveBlockGoal extends MoveToBlockGoal { + + @Override + protected boolean isValidTarget(LevelReader world, BlockPos pos) { +- ChunkAccess ichunkaccess = world.getChunk(SectionPos.blockToSectionCoord(pos.getX()), SectionPos.blockToSectionCoord(pos.getZ()), ChunkStatus.FULL, false); ++ ChunkAccess ichunkaccess = world.getChunkIfLoadedImmediately(pos.getX() >> 4, pos.getZ() >> 4); // Paper - Prevent AI rules from loading chunks + + return ichunkaccess == null ? false : ichunkaccess.getBlockState(pos).is(this.blockToRemove) && ichunkaccess.getBlockState(pos.above()).isAir() && ichunkaccess.getBlockState(pos.above(2)).isAir(); + } +diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +index 5c620989acaff4fdb842944ea2d8ae331699a2b4..a859f02074c698c68713568ed99089e33f38ccca 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java ++++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +@@ -517,7 +517,8 @@ public class EnderMan extends Monster implements NeutralMob { + int j = Mth.floor(this.enderman.getY() + randomsource.nextDouble() * 2.0D); + int k = Mth.floor(this.enderman.getZ() - 1.0D + randomsource.nextDouble() * 2.0D); + BlockPos blockposition = new BlockPos(i, j, k); +- BlockState iblockdata = world.getBlockState(blockposition); ++ BlockState iblockdata = world.getBlockStateIfLoaded(blockposition); // Paper - Prevent endermen from loading chunks ++ if (iblockdata == null) return; // Paper - Prevent endermen from loading chunks + BlockPos blockposition1 = blockposition.below(); + BlockState iblockdata1 = world.getBlockState(blockposition1); + BlockState iblockdata2 = this.enderman.getCarriedBlock(); +@@ -561,7 +562,8 @@ public class EnderMan extends Monster implements NeutralMob { + int j = Mth.floor(this.enderman.getY() + randomsource.nextDouble() * 3.0D); + int k = Mth.floor(this.enderman.getZ() - 2.0D + randomsource.nextDouble() * 4.0D); + BlockPos blockposition = new BlockPos(i, j, k); +- BlockState iblockdata = world.getBlockState(blockposition); ++ BlockState iblockdata = world.getBlockStateIfLoaded(blockposition); // Paper - Prevent endermen from loading chunks ++ if (iblockdata == null) return; // Paper - Prevent endermen from loading chunks + Vec3 vec3d = new Vec3((double) this.enderman.getBlockX() + 0.5D, (double) j + 0.5D, (double) this.enderman.getBlockZ() + 0.5D); + Vec3 vec3d1 = new Vec3((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D); + BlockHitResult movingobjectpositionblock = world.clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, this.enderman)); +diff --git a/src/main/java/net/minecraft/world/item/CompassItem.java b/src/main/java/net/minecraft/world/item/CompassItem.java +index 5d3047a420efe59063e90bfc7b42392127e0ad7d..b3c67c954acf7e518d89d6af65a55d6f22dac059 100644 +--- a/src/main/java/net/minecraft/world/item/CompassItem.java ++++ b/src/main/java/net/minecraft/world/item/CompassItem.java +@@ -77,7 +77,7 @@ public class CompassItem extends Item implements Vanishable { + Optional> optional = getLodestoneDimension(compoundTag); + if (optional.isPresent() && optional.get() == world.dimension() && compoundTag.contains("LodestonePos")) { + BlockPos blockPos = NbtUtils.readBlockPos(compoundTag.getCompound("LodestonePos")); +- if (!world.isInWorldBounds(blockPos) || !((ServerLevel)world).getPoiManager().existsAtPosition(PoiTypes.LODESTONE, blockPos)) { ++ if (!world.isInWorldBounds(blockPos) || (world.hasChunkAt(blockPos) && !((ServerLevel)world).getPoiManager().existsAtPosition(PoiTypes.LODESTONE, blockPos))) { // Paper - Prevent compass from loading chunks + compoundTag.remove("LodestonePos"); + } + } +diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java +index 3b31a1927aaed7fffc1b4f4bcefc12120d66af3d..618d6a94d695a3bf114307f85f0f151ee24f1879 100644 +--- a/src/main/java/net/minecraft/world/level/BlockGetter.java ++++ b/src/main/java/net/minecraft/world/level/BlockGetter.java +@@ -83,7 +83,15 @@ public interface BlockGetter extends LevelHeightAccessor { + + // CraftBukkit start - moved block handling into separate method for use by Block#rayTrace + default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) { +- BlockState iblockdata = this.getBlockState(blockposition); ++ // Paper start - Prevent raytrace from loading chunks ++ BlockState iblockdata = this.getBlockStateIfLoaded(blockposition); ++ if (iblockdata == null) { ++ // copied the last function parameter (listed below) ++ Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo()); ++ ++ return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo())); ++ } ++ // Paper end - Prevent raytrace from loading chunks + FluidState fluid = this.getFluidState(blockposition); + Vec3 vec3d = raytrace1.getFrom(); + Vec3 vec3d1 = raytrace1.getTo(); diff --git a/patches/server/0279-Handle-Large-Packets-disconnecting-client.patch b/patches/server/0278-Handle-Large-Packets-disconnecting-client.patch similarity index 98% rename from patches/server/0279-Handle-Large-Packets-disconnecting-client.patch rename to patches/server/0278-Handle-Large-Packets-disconnecting-client.patch index 11027a5b3d4f..ecf37a62ee5e 100644 --- a/patches/server/0279-Handle-Large-Packets-disconnecting-client.patch +++ b/patches/server/0278-Handle-Large-Packets-disconnecting-client.patch @@ -34,7 +34,7 @@ index df5da9398c903d073485aaa0dce8e70947137cb9..6fcbf8205e1852d5193a42bfe1154f62 Connection.LOGGER.debug("Skipping packet due to errors", throwable.getCause()); } else { diff --git a/src/main/java/net/minecraft/network/PacketEncoder.java b/src/main/java/net/minecraft/network/PacketEncoder.java -index 3d359f80f52bff6f19fcb484f491a874f9dcff27..45b4f1c295eda2fcc5067a4b21de247218ef117f 100644 +index 7070d093c80033b61a9c8495bc56153d986b6b03..2907536f8f9b4b9dccb96f8b4f19d75fa3c5b864 100644 --- a/src/main/java/net/minecraft/network/PacketEncoder.java +++ b/src/main/java/net/minecraft/network/PacketEncoder.java @@ -41,7 +41,7 @@ public class PacketEncoder extends MessageToByteEncoder> { diff --git a/patches/server/0278-Prevent-rayTrace-from-loading-chunks.patch b/patches/server/0278-Prevent-rayTrace-from-loading-chunks.patch deleted file mode 100644 index 72d6ebc434a1..000000000000 --- a/patches/server/0278-Prevent-rayTrace-from-loading-chunks.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Mon, 26 Nov 2018 19:21:58 -0500 -Subject: [PATCH] Prevent rayTrace from loading chunks - -ray tracing into an unloaded chunk should be treated as a miss -this saves a ton of lag for when AI tries to raytrace near unloaded chunks. - -diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index 3b31a1927aaed7fffc1b4f4bcefc12120d66af3d..24073d4d7c45d501c2baec2d8c8b49f60fb76e65 100644 ---- a/src/main/java/net/minecraft/world/level/BlockGetter.java -+++ b/src/main/java/net/minecraft/world/level/BlockGetter.java -@@ -83,7 +83,15 @@ public interface BlockGetter extends LevelHeightAccessor { - - // CraftBukkit start - moved block handling into separate method for use by Block#rayTrace - default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) { -- BlockState iblockdata = this.getBlockState(blockposition); -+ // Paper start - Prevent raytrace from loading chunks -+ BlockState iblockdata = this.getBlockStateIfLoaded(blockposition); -+ if (iblockdata == null) { -+ // copied the last function parameter (listed below) -+ Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo()); -+ -+ return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo())); -+ } -+ // Paper end - FluidState fluid = this.getFluidState(blockposition); - Vec3 vec3d = raytrace1.getFrom(); - Vec3 vec3d1 = raytrace1.getTo(); diff --git a/patches/server/0280-force-entity-dismount-during-teleportation.patch b/patches/server/0279-force-entity-dismount-during-teleportation.patch similarity index 100% rename from patches/server/0280-force-entity-dismount-during-teleportation.patch rename to patches/server/0279-force-entity-dismount-during-teleportation.patch diff --git a/patches/server/0281-Add-more-Zombie-API.patch b/patches/server/0280-Add-more-Zombie-API.patch similarity index 100% rename from patches/server/0281-Add-more-Zombie-API.patch rename to patches/server/0280-Add-more-Zombie-API.patch diff --git a/patches/server/0282-Book-Size-Limits.patch b/patches/server/0281-Book-Size-Limits.patch similarity index 96% rename from patches/server/0282-Book-Size-Limits.patch rename to patches/server/0281-Book-Size-Limits.patch index 8c5efb3a7b53..281bf0ce7107 100644 --- a/patches/server/0282-Book-Size-Limits.patch +++ b/patches/server/0281-Book-Size-Limits.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Book Size Limits Puts some limits on the size of books. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 20b8fe97ee0b73e3b1a71b8366267d7c5de5da2e..f4c58330cc1f65231fa48a7dd4a199fbfc696f26 100644 +index e0954ab93e4b528595fc3be40a30e2e6775bc4a2..564cc26f8201bd864f5f58c740c9de942d384394 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1026,6 +1026,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0283-Add-PlayerConnectionCloseEvent.patch b/patches/server/0282-Add-PlayerConnectionCloseEvent.patch similarity index 97% rename from patches/server/0283-Add-PlayerConnectionCloseEvent.patch rename to patches/server/0282-Add-PlayerConnectionCloseEvent.patch index 9998c22dff43..a77f9f089f93 100644 --- a/patches/server/0283-Add-PlayerConnectionCloseEvent.patch +++ b/patches/server/0282-Add-PlayerConnectionCloseEvent.patch @@ -69,7 +69,7 @@ index 6fcbf8205e1852d5193a42bfe1154f62ab01e7ad..25881c890c643ce90bdcda6b094d912b } } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 96ae1fd95956f5e5a1542dcce3fbd9d4b83d49ba..615fb00e50f3c434809f8e1b201d457b9beae8fd 100644 +index dd4e97ff4c8fb2d2f251713271f5ac493574fcd9..e9d94abb77693a845ea6318b7045bd61a7a46feb 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -60,7 +60,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, diff --git a/patches/server/0285-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0283-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch similarity index 96% rename from patches/server/0285-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch rename to patches/server/0283-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch index bc0c395f441f..0abfb7274c9b 100644 --- a/patches/server/0285-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/server/0283-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch @@ -16,7 +16,7 @@ intent to remove) and replace it with two new methods, clearly named and documented as to their purpose. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 577035b401472d8b3c5966fe908ddf029ee54f46..ccde243c370ff670675b66b19d559461a0e9f111 100644 +index 54297045b5da66827426ae354883a9709d9cdefc..7a5977aa72a0a198144d7b490abe0685326de260 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -248,6 +248,7 @@ public class ServerPlayer extends Player { @@ -28,7 +28,7 @@ index 577035b401472d8b3c5966fe908ddf029ee54f46..ccde243c370ff670675b66b19d559461 public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 27bfddd847175717697fb589b820ec5a81e08578..4221a45fda5c3b40a1f6342aebe8d7b2e190fb9c 100644 +index 6a3961350030e63b27512261402f675c3cd78485..d3f57dfd5156a5df17a5a7a6e5fe51d8804fd38f 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 { @@ -106,7 +106,7 @@ index e8490a58dd4d9bc39a5bb2f9fc109526e031b971..5f590575f95eff8bf0cdcafde7dee0e3 public Location getLastDeathLocation() { if (this.getData().contains("LastDeathLocation", 10)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index baba4105ccd1fe769cbbbd222e9315277394f5c6..108229bb7e6487e84607a918b3ede335a955b869 100644 +index ce73a8c652cf95bae62808fc27db2ab852691fd8..9df9b465df75dd41eabd789e85ee841ed4be092c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -191,6 +191,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0284-Prevent-Enderman-from-loading-chunks.patch b/patches/server/0284-Prevent-Enderman-from-loading-chunks.patch deleted file mode 100644 index 29f11b20e39b..000000000000 --- a/patches/server/0284-Prevent-Enderman-from-loading-chunks.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Shane Freeder -Date: Tue, 18 Dec 2018 02:15:08 +0000 -Subject: [PATCH] Prevent Enderman from loading chunks - - -diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 5c620989acaff4fdb842944ea2d8ae331699a2b4..8e72958dec9d4eb35330b72e057733a268e83745 100644 ---- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -517,7 +517,8 @@ public class EnderMan extends Monster implements NeutralMob { - int j = Mth.floor(this.enderman.getY() + randomsource.nextDouble() * 2.0D); - int k = Mth.floor(this.enderman.getZ() - 1.0D + randomsource.nextDouble() * 2.0D); - BlockPos blockposition = new BlockPos(i, j, k); -- BlockState iblockdata = world.getBlockState(blockposition); -+ BlockState iblockdata = world.getBlockStateIfLoaded(blockposition); // Paper -+ if (iblockdata == null) return; // Paper - BlockPos blockposition1 = blockposition.below(); - BlockState iblockdata1 = world.getBlockState(blockposition1); - BlockState iblockdata2 = this.enderman.getCarriedBlock(); -@@ -561,7 +562,8 @@ public class EnderMan extends Monster implements NeutralMob { - int j = Mth.floor(this.enderman.getY() + randomsource.nextDouble() * 3.0D); - int k = Mth.floor(this.enderman.getZ() - 2.0D + randomsource.nextDouble() * 4.0D); - BlockPos blockposition = new BlockPos(i, j, k); -- BlockState iblockdata = world.getBlockState(blockposition); -+ BlockState iblockdata = world.getBlockStateIfLoaded(blockposition); // Paper -+ if (iblockdata == null) return; // Paper - Vec3 vec3d = new Vec3((double) this.enderman.getBlockX() + 0.5D, (double) j + 0.5D, (double) this.enderman.getBlockZ() + 0.5D); - Vec3 vec3d1 = new Vec3((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D); - BlockHitResult movingobjectpositionblock = world.clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, this.enderman)); diff --git a/patches/server/0286-Workaround-for-vehicle-tracking-issue-on-disconnect.patch b/patches/server/0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch similarity index 91% rename from patches/server/0286-Workaround-for-vehicle-tracking-issue-on-disconnect.patch rename to patches/server/0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch index 6f631fb1f975..303a80161118 100644 --- a/patches/server/0286-Workaround-for-vehicle-tracking-issue-on-disconnect.patch +++ b/patches/server/0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Workaround for vehicle tracking issue on disconnect diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index cf1d636660e0e1e8bfec915e0c82525822beba49..a99e06b7507b3490ac8869dd626bdb1cee5b1690 100644 +index 7a5977aa72a0a198144d7b490abe0685326de260..8cc33c1b14668c085dbad1f3feabf7b602812471 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1749,6 +1749,13 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0287-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch b/patches/server/0285-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch similarity index 92% rename from patches/server/0287-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch rename to patches/server/0285-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch index 2bb621ac7d9b..0227c4c45fc6 100644 --- a/patches/server/0287-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch +++ b/patches/server/0285-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch @@ -8,7 +8,7 @@ We just add a check to ensure that the CraftPlayer's handle is a ServerPlayer diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index bfa59fc123af9189306d8482bac1ae478babab0a..64380c3db88cf5a17a18d166d3869b9a75b1579f 100644 +index 9df9b465df75dd41eabd789e85ee841ed4be092c..9cae7d8a77af303cb509c23efd5541a5e04f54a6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -247,8 +247,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0288-BlockDestroyEvent.patch b/patches/server/0286-BlockDestroyEvent.patch similarity index 96% rename from patches/server/0288-BlockDestroyEvent.patch rename to patches/server/0286-BlockDestroyEvent.patch index 8d684e74d02d..526e9846573e 100644 --- a/patches/server/0288-BlockDestroyEvent.patch +++ b/patches/server/0286-BlockDestroyEvent.patch @@ -11,7 +11,7 @@ floating in the air. This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b4f7e73fa673006ad0f8ea5a8de5a825aa75e41c..41b8b7890919e2a7a349d701123422e3d27ddc37 100644 +index 14c963d507173dae6015a0c81e3a690768012bed..b10c93cbcf264a3e13d48f30a2c09ae5568a510e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -31,6 +31,7 @@ import net.minecraft.nbt.CompoundTag; diff --git a/patches/server/0289-Async-command-map-building.patch b/patches/server/0287-Async-command-map-building.patch similarity index 97% rename from patches/server/0289-Async-command-map-building.patch rename to patches/server/0287-Async-command-map-building.patch index e717f31d1dc9..6761f47086a2 100644 --- a/patches/server/0289-Async-command-map-building.patch +++ b/patches/server/0287-Async-command-map-building.patch @@ -53,7 +53,7 @@ index 5a1accff1a7dc2ab40224ec0952a287cd6099aee..2a88cf008c98284954108f2362f46ac1 event.getPlayer().getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ab6402fbe9da82c13d3eb56d22d82d10825105e6..fc0ab6d0436aa6f79b13e0b755d445403fb81330 100644 +index 420201b60be7d07fbbb75192f14e4222f4b386aa..ce370cb1ed9ef67044c5ab448c52367779e5105f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -926,6 +926,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop -Date: Tue, 13 Aug 2019 06:35:17 -0700 -Subject: [PATCH] Fix MC-158900 - -The problem was we were checking isExpired() on the entry, but if it -was expired at that point, then it would be null. - -diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index b6bebb1eee1ee552b18860c8414f4866897c2bbd..68935845e9041706c2e203ff436f50d92c190a8f 100644 ---- a/src/main/java/net/minecraft/server/players/PlayerList.java -+++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -627,8 +627,10 @@ public abstract class PlayerList { - Player player = entity.getBukkitEntity(); - PlayerLoginEvent event = new PlayerLoginEvent(player, loginlistener.connection.hostname, ((java.net.InetSocketAddress) socketaddress).getAddress(), ((java.net.InetSocketAddress) loginlistener.connection.channel.remoteAddress()).getAddress()); - -- if (this.getBans().isBanned(gameprofile) && !this.getBans().get(gameprofile).hasExpired()) { -- UserBanListEntry gameprofilebanentry = (UserBanListEntry) this.bans.get(gameprofile); -+ // Paper start - Fix MC-158900 -+ UserBanListEntry gameprofilebanentry; -+ if (getBans().isBanned(gameprofile) && (gameprofilebanentry = getBans().get(gameprofile)) != null) { -+ // Paper end - - ichatmutablecomponent = Component.translatable("multiplayer.disconnect.banned.reason", gameprofilebanentry.getReason()); - if (gameprofilebanentry.getExpires() != null) { diff --git a/patches/server/0320-Flat-bedrock-generator-settings.patch b/patches/server/0317-Flat-bedrock-generator-settings.patch similarity index 100% rename from patches/server/0320-Flat-bedrock-generator-settings.patch rename to patches/server/0317-Flat-bedrock-generator-settings.patch diff --git a/patches/server/0321-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch b/patches/server/0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch similarity index 100% rename from patches/server/0321-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch rename to patches/server/0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch diff --git a/patches/server/0322-MC-145656-Fix-Follow-Range-Initial-Target.patch b/patches/server/0319-MC-145656-Fix-Follow-Range-Initial-Target.patch similarity index 100% rename from patches/server/0322-MC-145656-Fix-Follow-Range-Initial-Target.patch rename to patches/server/0319-MC-145656-Fix-Follow-Range-Initial-Target.patch diff --git a/patches/server/0323-Duplicate-UUID-Resolve-Option.patch b/patches/server/0320-Duplicate-UUID-Resolve-Option.patch similarity index 100% rename from patches/server/0323-Duplicate-UUID-Resolve-Option.patch rename to patches/server/0320-Duplicate-UUID-Resolve-Option.patch diff --git a/patches/server/0324-PlayerDeathEvent-shouldDropExperience.patch b/patches/server/0321-PlayerDeathEvent-shouldDropExperience.patch similarity index 91% rename from patches/server/0324-PlayerDeathEvent-shouldDropExperience.patch rename to patches/server/0321-PlayerDeathEvent-shouldDropExperience.patch index 31696eecd0a6..873dc400c12d 100644 --- a/patches/server/0324-PlayerDeathEvent-shouldDropExperience.patch +++ b/patches/server/0321-PlayerDeathEvent-shouldDropExperience.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerDeathEvent#shouldDropExperience diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 602172f376edbecff94745f88d6a82aa8016c99d..d5b0fba5f38b099d84bb7952363cdc1455772684 100644 +index 91053c2b19751aa3ff219b615b595b730ffa134f..5aef108c5b78cfc02af5c73b9bc03004fba33ca7 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -978,7 +978,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0325-Prevent-bees-loading-chunks-checking-hive-position.patch b/patches/server/0322-Prevent-bees-loading-chunks-checking-hive-position.patch similarity index 100% rename from patches/server/0325-Prevent-bees-loading-chunks-checking-hive-position.patch rename to patches/server/0322-Prevent-bees-loading-chunks-checking-hive-position.patch diff --git a/patches/server/0326-Don-t-load-Chunks-from-Hoppers-and-other-things.patch b/patches/server/0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch similarity index 100% rename from patches/server/0326-Don-t-load-Chunks-from-Hoppers-and-other-things.patch rename to patches/server/0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch diff --git a/patches/server/0327-Optimise-EntityGetter-getPlayerByUUID.patch b/patches/server/0324-Optimise-EntityGetter-getPlayerByUUID.patch similarity index 94% rename from patches/server/0327-Optimise-EntityGetter-getPlayerByUUID.patch rename to patches/server/0324-Optimise-EntityGetter-getPlayerByUUID.patch index 5d8335858245..e5f5c8fc2d32 100644 --- a/patches/server/0327-Optimise-EntityGetter-getPlayerByUUID.patch +++ b/patches/server/0324-Optimise-EntityGetter-getPlayerByUUID.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimise EntityGetter#getPlayerByUUID Use the PlayerList map instead of iterating over all players diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5faaa29ea1e594c9e42e2a0c396ca0a40137119e..29a6c17103b443af83cf1506a0d1cfc328028270 100644 +index 978f0f20c3aceb1c6f967c2bec3d010e344aad0c..b10097cd28f0dc360cda9b31e8184ed3a7003780 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -558,6 +558,15 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0328-Fix-items-not-falling-correctly.patch b/patches/server/0325-Fix-items-not-falling-correctly.patch similarity index 100% rename from patches/server/0328-Fix-items-not-falling-correctly.patch rename to patches/server/0325-Fix-items-not-falling-correctly.patch diff --git a/patches/server/0329-Optimize-call-to-getFluid-for-explosions.patch b/patches/server/0326-Optimize-call-to-getFluid-for-explosions.patch similarity index 100% rename from patches/server/0329-Optimize-call-to-getFluid-for-explosions.patch rename to patches/server/0326-Optimize-call-to-getFluid-for-explosions.patch diff --git a/patches/server/0330-Fix-last-firework-in-stack-not-having-effects-when-d.patch b/patches/server/0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch similarity index 100% rename from patches/server/0330-Fix-last-firework-in-stack-not-having-effects-when-d.patch rename to patches/server/0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch diff --git a/patches/server/0331-Entity-Activation-Range-2.0.patch b/patches/server/0328-Entity-Activation-Range-2.0.patch similarity index 100% rename from patches/server/0331-Entity-Activation-Range-2.0.patch rename to patches/server/0328-Entity-Activation-Range-2.0.patch diff --git a/patches/server/0332-Guard-against-serializing-mismatching-chunk-coordina.patch b/patches/server/0329-Guard-against-serializing-mismatching-chunk-coordina.patch similarity index 100% rename from patches/server/0332-Guard-against-serializing-mismatching-chunk-coordina.patch rename to patches/server/0329-Guard-against-serializing-mismatching-chunk-coordina.patch diff --git a/patches/server/0333-Implement-alternative-item-despawn-rate.patch b/patches/server/0330-Implement-alternative-item-despawn-rate.patch similarity index 100% rename from patches/server/0333-Implement-alternative-item-despawn-rate.patch rename to patches/server/0330-Implement-alternative-item-despawn-rate.patch diff --git a/patches/server/0334-Tracking-Range-Improvements.patch b/patches/server/0331-Tracking-Range-Improvements.patch similarity index 100% rename from patches/server/0334-Tracking-Range-Improvements.patch rename to patches/server/0331-Tracking-Range-Improvements.patch diff --git a/patches/server/0335-Fix-items-vanishing-through-end-portal.patch b/patches/server/0332-Fix-items-vanishing-through-end-portal.patch similarity index 93% rename from patches/server/0335-Fix-items-vanishing-through-end-portal.patch rename to patches/server/0332-Fix-items-vanishing-through-end-portal.patch index 2033b877384f..6d10f0f8ffba 100644 --- a/patches/server/0335-Fix-items-vanishing-through-end-portal.patch +++ b/patches/server/0332-Fix-items-vanishing-through-end-portal.patch @@ -13,7 +13,7 @@ Quickly loading the exact world spawn chunk before searching the heightmap resolves the issue without having to load all spawn chunks. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b65c8b48c3a3dd71cb5945dca104cc67a1f2ce6d..cf3742d3d771f6e0c71917bafda7027bd69b1aff 100644 +index 26a611b8d75513690811fbbd15dc37e6f4a50dd4..21eac12dcc3571e647b07b313015d809cb0fbcea 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3411,6 +3411,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0336-implement-optional-per-player-mob-spawns.patch b/patches/server/0333-implement-optional-per-player-mob-spawns.patch similarity index 99% rename from patches/server/0336-implement-optional-per-player-mob-spawns.patch rename to patches/server/0333-implement-optional-per-player-mob-spawns.patch index 22cb38d2b07d..6b4cfb1bd63b 100644 --- a/patches/server/0336-implement-optional-per-player-mob-spawns.patch +++ b/patches/server/0333-implement-optional-per-player-mob-spawns.patch @@ -64,7 +64,7 @@ index 16028723b36c1ca3a3c5d1bf2a7c82d2b42a0be4..24d9a2c37db4bbf2585b33d06f5ea57e this.lastSpawnState = spawnercreature_d; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5ef970574ab728dcd118c4d567cb61f0f208b2d7..784be702cbde92a9c81f04fde34ff343056b8ee7 100644 +index 5aef108c5b78cfc02af5c73b9bc03004fba33ca7..26410f43c7bbb368d9ef7206d3b9759f86afba4b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -253,6 +253,10 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0337-Anti-Xray.patch b/patches/server/0334-Anti-Xray.patch similarity index 99% rename from patches/server/0337-Anti-Xray.patch rename to patches/server/0334-Anti-Xray.patch index df43b53dfc0c..227fc7d33079 100644 --- a/patches/server/0337-Anti-Xray.patch +++ b/patches/server/0334-Anti-Xray.patch @@ -1558,7 +1558,7 @@ index 545b14f02ac72dda30891d681eba585d19fd5e1d..6dc7e23e96aaffb912611a9dbd41459c private static final byte[] EMPTY_LIGHT = new byte[2048]; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4b57573660f5d806973edb5a66a0ac183c40c19e..0a9b61b3af57b098d17443d3f26237489fc11f0e 100644 +index 01fa200bc6911388ee3b0e700e82ad681e02fe4a..217fd2af254f7206cf4c1d7d7ad08384a38427d2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2373,7 +2373,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0338-Bees-get-gravity-in-void.-Fixes-MC-167279.patch b/patches/server/0335-Bees-get-gravity-in-void.-Fixes-MC-167279.patch similarity index 100% rename from patches/server/0338-Bees-get-gravity-in-void.-Fixes-MC-167279.patch rename to patches/server/0335-Bees-get-gravity-in-void.-Fixes-MC-167279.patch diff --git a/patches/server/0339-Improve-Block-breakNaturally-API.patch b/patches/server/0336-Improve-Block-breakNaturally-API.patch similarity index 98% rename from patches/server/0339-Improve-Block-breakNaturally-API.patch rename to patches/server/0336-Improve-Block-breakNaturally-API.patch index b5d4bf1b2ebf..d424ef61786b 100644 --- a/patches/server/0339-Improve-Block-breakNaturally-API.patch +++ b/patches/server/0336-Improve-Block-breakNaturally-API.patch @@ -34,7 +34,7 @@ index c919b5a382b1bfcafd938ff926d9146cc5cf0cdc..f05998e0af1e844f19bf86b74f652a99 if (world.dimensionType().ultraWarm()) { world.removeBlock(pos, false); diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 7f2e4fd1d81d6439475f30e62f0348f38bbc985d..d0b1a419c9bc73066d79459dc3e5998160f8038b 100644 +index d4e14ac1514e2d8b87b4667a91c90eded3ba6636..f041b5d80bff9c022b007e04ef1558e9116acc6b 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -452,6 +452,18 @@ public class CraftBlock implements Block { diff --git a/patches/server/0340-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/patches/server/0337-Optimise-getChunkAt-calls-for-loaded-chunks.patch similarity index 100% rename from patches/server/0340-Optimise-getChunkAt-calls-for-loaded-chunks.patch rename to patches/server/0337-Optimise-getChunkAt-calls-for-loaded-chunks.patch diff --git a/patches/server/0341-Add-debug-for-sync-chunk-loads.patch b/patches/server/0338-Add-debug-for-sync-chunk-loads.patch similarity index 99% rename from patches/server/0341-Add-debug-for-sync-chunk-loads.patch rename to patches/server/0338-Add-debug-for-sync-chunk-loads.patch index 008c6ebb0cd5..b190c41a641c 100644 --- a/patches/server/0341-Add-debug-for-sync-chunk-loads.patch +++ b/patches/server/0338-Add-debug-for-sync-chunk-loads.patch @@ -312,7 +312,7 @@ index 4039bd5a80bd2305082d21c0fe826f76d8beb4c4..974b4970be214ca36a801d39932abcc7 chunkproviderserver_b.managedBlock(completablefuture::isDone); io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - async chunk debug // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index bfbac715787bc75f77cfd3047f67613e56d7e64b..2480f05dd9ecb2d68ccf193354872ae8cb4009f3 100644 +index 6d6ad6a33f3f8e4b8bc39fea00506daf7b31275c..63437e0cd8ad76e05a3ae40de673d8ff6cae00c6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -651,6 +651,13 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0342-Improve-java-version-check.patch b/patches/server/0339-Improve-java-version-check.patch similarity index 100% rename from patches/server/0342-Improve-java-version-check.patch rename to patches/server/0339-Improve-java-version-check.patch diff --git a/patches/server/0343-Add-ThrownEggHatchEvent.patch b/patches/server/0340-Add-ThrownEggHatchEvent.patch similarity index 100% rename from patches/server/0343-Add-ThrownEggHatchEvent.patch rename to patches/server/0340-Add-ThrownEggHatchEvent.patch diff --git a/patches/server/0344-Entity-Jump-API.patch b/patches/server/0341-Entity-Jump-API.patch similarity index 100% rename from patches/server/0344-Entity-Jump-API.patch rename to patches/server/0341-Entity-Jump-API.patch diff --git a/patches/server/0345-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/server/0342-Add-option-to-nerf-pigmen-from-nether-portals.patch similarity index 100% rename from patches/server/0345-Add-option-to-nerf-pigmen-from-nether-portals.patch rename to patches/server/0342-Add-option-to-nerf-pigmen-from-nether-portals.patch diff --git a/patches/server/0346-Make-the-GUI-graph-fancier.patch b/patches/server/0343-Make-the-GUI-graph-fancier.patch similarity index 100% rename from patches/server/0346-Make-the-GUI-graph-fancier.patch rename to patches/server/0343-Make-the-GUI-graph-fancier.patch diff --git a/patches/server/0347-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0344-add-hand-to-BlockMultiPlaceEvent.patch similarity index 93% rename from patches/server/0347-add-hand-to-BlockMultiPlaceEvent.patch rename to patches/server/0344-add-hand-to-BlockMultiPlaceEvent.patch index 8e4f584cdaa3..e5078d1092b2 100644 --- a/patches/server/0347-add-hand-to-BlockMultiPlaceEvent.patch +++ b/patches/server/0344-add-hand-to-BlockMultiPlaceEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add hand to BlockMultiPlaceEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 18074dab4529f92b164671543dd11d2628ea0982..6e1cff5713e8e0ed8dc481f9c91071eb4b722a49 100644 +index 7c92f9e4b39310da2f112b9c3dac0b9d0c6bcf24..502196b8e97f3de3399f5542e76e6dbbd044d3fd 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -400,13 +400,18 @@ public class CraftEventFactory { diff --git a/patches/server/0348-Validate-tripwire-hook-placement-before-update.patch b/patches/server/0345-Validate-tripwire-hook-placement-before-update.patch similarity index 100% rename from patches/server/0348-Validate-tripwire-hook-placement-before-update.patch rename to patches/server/0345-Validate-tripwire-hook-placement-before-update.patch diff --git a/patches/server/0349-Add-option-to-allow-iron-golems-to-spawn-in-air.patch b/patches/server/0346-Add-option-to-allow-iron-golems-to-spawn-in-air.patch similarity index 100% rename from patches/server/0349-Add-option-to-allow-iron-golems-to-spawn-in-air.patch rename to patches/server/0346-Add-option-to-allow-iron-golems-to-spawn-in-air.patch diff --git a/patches/server/0350-Configurable-chance-of-villager-zombie-infection.patch b/patches/server/0347-Configurable-chance-of-villager-zombie-infection.patch similarity index 100% rename from patches/server/0350-Configurable-chance-of-villager-zombie-infection.patch rename to patches/server/0347-Configurable-chance-of-villager-zombie-infection.patch diff --git a/patches/server/0351-Optimise-Chunk-getFluid.patch b/patches/server/0348-Optimise-Chunk-getFluid.patch similarity index 96% rename from patches/server/0351-Optimise-Chunk-getFluid.patch rename to patches/server/0348-Optimise-Chunk-getFluid.patch index 22982d0790ed..57ab428da0d0 100644 --- a/patches/server/0351-Optimise-Chunk-getFluid.patch +++ b/patches/server/0348-Optimise-Chunk-getFluid.patch @@ -8,7 +8,7 @@ faster on its own, however removing the try catch makes it easier to inline due to code size diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 4a5491a79281b7cddf5ad5f060567f174b89d14b..12834995b2bab9e82a40feb01f038532961296cf 100644 +index e599bfb9a7b0b85bea2940f6bf55118305dd0ce8..3acef646275aa05100e13e149bc5ff6d1ccbbea8 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -377,18 +377,20 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0352-Set-spigots-verbose-world-setting-to-false-by-def.patch b/patches/server/0349-Set-spigots-verbose-world-setting-to-false-by-def.patch similarity index 100% rename from patches/server/0352-Set-spigots-verbose-world-setting-to-false-by-def.patch rename to patches/server/0349-Set-spigots-verbose-world-setting-to-false-by-def.patch diff --git a/patches/server/0353-Add-tick-times-API-and-mspt-command.patch b/patches/server/0350-Add-tick-times-API-and-mspt-command.patch similarity index 98% rename from patches/server/0353-Add-tick-times-API-and-mspt-command.patch rename to patches/server/0350-Add-tick-times-API-and-mspt-command.patch index 1e81ff988aaf..48271b685637 100644 --- a/patches/server/0353-Add-tick-times-API-and-mspt-command.patch +++ b/patches/server/0350-Add-tick-times-API-and-mspt-command.patch @@ -184,7 +184,7 @@ index 6024a9e0dca38b1c21332f5c131d824190a2be90..ce113cc2bc52c1135799190a22e0be21 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0a9b61b3af57b098d17443d3f26237489fc11f0e..1774a92b7772f02aad096ac98ff412373630905a 100644 +index 217fd2af254f7206cf4c1d7d7ad08384a38427d2..a74d346cd72d841be195f02801bba8cd00ac4097 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2628,6 +2628,16 @@ public final class CraftServer implements Server { diff --git a/patches/server/0354-Expose-MinecraftServer-isRunning.patch b/patches/server/0351-Expose-MinecraftServer-isRunning.patch similarity index 90% rename from patches/server/0354-Expose-MinecraftServer-isRunning.patch rename to patches/server/0351-Expose-MinecraftServer-isRunning.patch index e15d9c827b19..df99e66826d5 100644 --- a/patches/server/0354-Expose-MinecraftServer-isRunning.patch +++ b/patches/server/0351-Expose-MinecraftServer-isRunning.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose MinecraftServer#isRunning This allows for plugins to detect if the server is actually turning off in onDisable rather than just plugins reloading. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1774a92b7772f02aad096ac98ff412373630905a..f820cebd30f747596eb3b442965381850376f9f6 100644 +index a74d346cd72d841be195f02801bba8cd00ac4097..b501ed140902a0143553f338871e3b8b71a7f71e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2868,5 +2868,10 @@ public final class CraftServer implements Server { diff --git a/patches/server/0355-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/server/0352-Add-Raw-Byte-ItemStack-Serialization.patch similarity index 100% rename from patches/server/0355-Add-Raw-Byte-ItemStack-Serialization.patch rename to patches/server/0352-Add-Raw-Byte-ItemStack-Serialization.patch diff --git a/patches/server/0356-Pillager-patrol-spawn-settings-and-per-player-option.patch b/patches/server/0353-Pillager-patrol-spawn-settings-and-per-player-option.patch similarity index 98% rename from patches/server/0356-Pillager-patrol-spawn-settings-and-per-player-option.patch rename to patches/server/0353-Pillager-patrol-spawn-settings-and-per-player-option.patch index 05613934e089..5d503ec37ee7 100644 --- a/patches/server/0356-Pillager-patrol-spawn-settings-and-per-player-option.patch +++ b/patches/server/0353-Pillager-patrol-spawn-settings-and-per-player-option.patch @@ -10,7 +10,7 @@ When not per player it will use the Vanilla mechanic of one delay per world and the world age for the start day. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ad167cd343ec38f0263e634124036e741246c6b6..956c0090992a64860bed2c5f72991d86a528b7ba 100644 +index 26410f43c7bbb368d9ef7206d3b9759f86afba4b..4c17ed82554311d2a3c9eab7bf58c79044f71664 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -249,6 +249,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0357-Remote-Connections-shouldn-t-hold-up-shutdown.patch b/patches/server/0354-Remote-Connections-shouldn-t-hold-up-shutdown.patch similarity index 95% rename from patches/server/0357-Remote-Connections-shouldn-t-hold-up-shutdown.patch rename to patches/server/0354-Remote-Connections-shouldn-t-hold-up-shutdown.patch index 4d20a48ad718..4000b9b25443 100644 --- a/patches/server/0357-Remote-Connections-shouldn-t-hold-up-shutdown.patch +++ b/patches/server/0354-Remote-Connections-shouldn-t-hold-up-shutdown.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Remote Connections shouldn't hold up shutdown Bugs in the connection logic appears to leave stale connections even, preventing shutdown diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 90b261b23f6731f60a7d4f412a6bf4c6c6aa7095..109c7ff78d4c1f5496d294f52ecfd9df2070db1e 100644 +index 7bc90a4b0cbbb2251122038d374860ff02f5edee..5f4f993243f19f1e88b7f2bc5e40a6b2125fd819 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -390,11 +390,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0358-Do-not-allow-bees-to-load-chunks-for-beehives.patch b/patches/server/0355-Do-not-allow-bees-to-load-chunks-for-beehives.patch similarity index 100% rename from patches/server/0358-Do-not-allow-bees-to-load-chunks-for-beehives.patch rename to patches/server/0355-Do-not-allow-bees-to-load-chunks-for-beehives.patch diff --git a/patches/server/0359-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch similarity index 96% rename from patches/server/0359-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch rename to patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch index 25f1551ea618..e97ae2aba81d 100644 --- a/patches/server/0359-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch +++ b/patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch @@ -25,7 +25,7 @@ index 1f9efff4ddccf2569fdfe42e6cbc92792643d0ea..876200db872bce89976329c4d6c6fbe9 EntityType entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2480f05dd9ecb2d68ccf193354872ae8cb4009f3..bd40d4056fbf237f2a3f6c7178bed699f9bdf389 100644 +index 63437e0cd8ad76e05a3ae40de673d8ff6cae00c6..1c0d2aad70b3817913e93354ccc055b82ae321bc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2514,7 +2514,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0360-Don-t-tick-dead-players.patch b/patches/server/0357-Don-t-tick-dead-players.patch similarity index 91% rename from patches/server/0360-Don-t-tick-dead-players.patch rename to patches/server/0357-Don-t-tick-dead-players.patch index 7e658ff419a8..4f181785841f 100644 --- a/patches/server/0360-Don-t-tick-dead-players.patch +++ b/patches/server/0357-Don-t-tick-dead-players.patch @@ -7,7 +7,7 @@ Causes sync chunk loads and who knows what all else. This is safe because Spectators are skipped in unloaded chunks too in vanilla. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 956c0090992a64860bed2c5f72991d86a528b7ba..4c0968ee547fe606b340ab28dfd391716745bc3f 100644 +index 4c17ed82554311d2a3c9eab7bf58c79044f71664..daedb7b5ef086ccbf091274088170cf7eb331f91 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -732,7 +732,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0361-Dead-Player-s-shouldn-t-be-able-to-move.patch b/patches/server/0358-Dead-Player-s-shouldn-t-be-able-to-move.patch similarity index 100% rename from patches/server/0361-Dead-Player-s-shouldn-t-be-able-to-move.patch rename to patches/server/0358-Dead-Player-s-shouldn-t-be-able-to-move.patch diff --git a/patches/server/0362-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0359-Optimize-Collision-to-not-load-chunks.patch similarity index 97% rename from patches/server/0362-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/0359-Optimize-Collision-to-not-load-chunks.patch index 9865b06b9e4e..7674d900d923 100644 --- a/patches/server/0362-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/0359-Optimize-Collision-to-not-load-chunks.patch @@ -14,10 +14,10 @@ movement will load only the chunk the player enters anyways and avoids loading massive amounts of surrounding chunks due to large AABB lookups. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 77109036dccabe1af443956aa94123ec240b23ac..13fcc14905ade93494aa67fc53c952db7abcc7f7 100644 +index 109cefef2a39aaae50ca745d907729d066aa9033..d4ae0a201838dbc9c73f7c1a8a67072b344b71bc 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -822,6 +822,7 @@ public abstract class PlayerList { +@@ -820,6 +820,7 @@ public abstract class PlayerList { entityplayer1.setShiftKeyDown(false); entityplayer1.forceSetPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/patches/server/0363-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0360-Don-t-move-existing-players-to-world-spawn.patch similarity index 92% rename from patches/server/0363-Don-t-move-existing-players-to-world-spawn.patch rename to patches/server/0360-Don-t-move-existing-players-to-world-spawn.patch index 2134a7ae8d5c..e4f380afa586 100644 --- a/patches/server/0363-Don-t-move-existing-players-to-world-spawn.patch +++ b/patches/server/0360-Don-t-move-existing-players-to-world-spawn.patch @@ -13,7 +13,7 @@ By skipping this, we avoid potential for a large spike on server start. public net.minecraft.server.level.ServerPlayer fudgeSpawnLocation(Lnet/minecraft/server/level/ServerLevel;)V diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4c0968ee547fe606b340ab28dfd391716745bc3f..ff0191dd75b5014e224db8f1419dcec240cb1436 100644 +index daedb7b5ef086ccbf091274088170cf7eb331f91..3738680d935695930be19cdc18478c62ccb93d3a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -385,7 +385,7 @@ public class ServerPlayer extends Player { @@ -35,7 +35,7 @@ index 4c0968ee547fe606b340ab28dfd391716745bc3f..ff0191dd75b5014e224db8f1419dcec2 this.gameMode.setLevel((ServerLevel) world); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d4734253bb5f45b62a31aa5c260a414ce9979736..9036d9941b1597e14d3b25a5143d914248338800 100644 +index d4ae0a201838dbc9c73f7c1a8a67072b344b71bc..03f8e1775e05293665f995b6c3ee52ed11447e79 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -226,6 +226,7 @@ public abstract class PlayerList { diff --git a/patches/server/0364-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/0361-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 100% rename from patches/server/0364-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/server/0361-Optimize-GoalSelector-Goal.Flag-Set-operations.patch diff --git a/patches/server/0365-Improved-Watchdog-Support.patch b/patches/server/0362-Improved-Watchdog-Support.patch similarity index 99% rename from patches/server/0365-Improved-Watchdog-Support.patch rename to patches/server/0362-Improved-Watchdog-Support.patch index 1d1edf3f8224..7e569d476035 100644 --- a/patches/server/0365-Improved-Watchdog-Support.patch +++ b/patches/server/0362-Improved-Watchdog-Support.patch @@ -263,7 +263,7 @@ index 5f4f993243f19f1e88b7f2bc5e40a6b2125fd819..c9cca6ba3500791485bf19155156c38c } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c8a977f6dce36a254f729e97759c14e234ef6674..6d6cac755c45247e1d07e52550f6f4644536f220 100644 +index 03f8e1775e05293665f995b6c3ee52ed11447e79..8c9dcd895f73765327ac00d7cc706b6ae8b9d81f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -532,7 +532,7 @@ public abstract class PlayerList { diff --git a/patches/server/0366-Optimize-Pathfinding.patch b/patches/server/0363-Optimize-Pathfinding.patch similarity index 100% rename from patches/server/0366-Optimize-Pathfinding.patch rename to patches/server/0363-Optimize-Pathfinding.patch diff --git a/patches/server/0367-Reduce-Either-Optional-allocation.patch b/patches/server/0364-Reduce-Either-Optional-allocation.patch similarity index 100% rename from patches/server/0367-Reduce-Either-Optional-allocation.patch rename to patches/server/0364-Reduce-Either-Optional-allocation.patch diff --git a/patches/server/0368-Reduce-memory-footprint-of-NBTTagCompound.patch b/patches/server/0365-Reduce-memory-footprint-of-NBTTagCompound.patch similarity index 100% rename from patches/server/0368-Reduce-memory-footprint-of-NBTTagCompound.patch rename to patches/server/0365-Reduce-memory-footprint-of-NBTTagCompound.patch diff --git a/patches/server/0369-Prevent-opening-inventories-when-frozen.patch b/patches/server/0366-Prevent-opening-inventories-when-frozen.patch similarity index 95% rename from patches/server/0369-Prevent-opening-inventories-when-frozen.patch rename to patches/server/0366-Prevent-opening-inventories-when-frozen.patch index 84452e4fcb2d..f6702d49e475 100644 --- a/patches/server/0369-Prevent-opening-inventories-when-frozen.patch +++ b/patches/server/0366-Prevent-opening-inventories-when-frozen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent opening inventories when frozen diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 94360a83f72ba310da94f822d8aafd9d96e5121c..0caad3d6f66336cd0124b8b093af209b43ab9b25 100644 +index 3738680d935695930be19cdc18478c62ccb93d3a..f0dd4bd0fd71c90577a5b42a803007de8e97d344 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -701,7 +701,7 @@ public class ServerPlayer extends Player { @@ -27,7 +27,7 @@ index 94360a83f72ba310da94f822d8aafd9d96e5121c..0caad3d6f66336cd0124b8b093af209b this.initMenu(container); return OptionalInt.of(this.containerCounter); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 21e3070a9aab9b4d8d352655d0145c9921857c0e..5e40ef1370ea150ea19bd8afc4243e38d1d2ef74 100644 +index 0d07501bb9e8721771f5c3fd099f022e41a54337..fa585b6bf914362a7f9e55a20e78811519353608 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -325,7 +325,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0370-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0367-Don-t-run-entity-collision-code-if-not-needed.patch similarity index 96% rename from patches/server/0370-Don-t-run-entity-collision-code-if-not-needed.patch rename to patches/server/0367-Don-t-run-entity-collision-code-if-not-needed.patch index 37691c2cd282..36a11c3c1f20 100644 --- a/patches/server/0370-Don-t-run-entity-collision-code-if-not-needed.patch +++ b/patches/server/0367-Don-t-run-entity-collision-code-if-not-needed.patch @@ -12,7 +12,7 @@ The entity's current team collision rule causes them to NEVER collide. Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2d28d9a42e89b7efadd4e798c3da61565221a5bd..8577eb85cfe6d061e9e8b7e380db452a8c4ec858 100644 +index f9e2d3cba01fcf39bc29dc8b5b5879ddc3add0e5..0f364937ee7caa0496cfff1f9e5692d83a4dcd97 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3398,10 +3398,24 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0371-Implement-Player-Client-Options-API.patch b/patches/server/0368-Implement-Player-Client-Options-API.patch similarity index 99% rename from patches/server/0371-Implement-Player-Client-Options-API.patch rename to patches/server/0368-Implement-Player-Client-Options-API.patch index b019faebbad0..bad37099c083 100644 --- a/patches/server/0371-Implement-Player-Client-Options-API.patch +++ b/patches/server/0368-Implement-Player-Client-Options-API.patch @@ -87,7 +87,7 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0caad3d6f66336cd0124b8b093af209b43ab9b25..efe768142bbf37d4ba07257e37fa71d576464a31 100644 +index f0dd4bd0fd71c90577a5b42a803007de8e97d344..37af010c2af4b485d19bbf5fef978d6347054c83 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -386,7 +386,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0372-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/patches/server/0369-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch similarity index 100% rename from patches/server/0372-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch rename to patches/server/0369-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch diff --git a/patches/server/0373-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch b/patches/server/0370-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch similarity index 96% rename from patches/server/0373-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch rename to patches/server/0370-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch index ee3e9190ff8c..40f07de9715a 100644 --- a/patches/server/0373-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch +++ b/patches/server/0370-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch @@ -43,7 +43,7 @@ index 876200db872bce89976329c4d6c6fbe9fd155f24..2db3236bc9d676c86b0af38bd4bfaf9d if (!(entity instanceof EnderDragonPart)) { EntityType entitytypes = entity.getType(); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index fa323141f77923fc766bbf2e8587d7e8792b92ec..3dfbd1225b0c1ee6b6fb2e842efdb1a8ff2c26c6 100644 +index 37af010c2af4b485d19bbf5fef978d6347054c83..71068a285ff039b609f4551d522481f2dff8235e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -271,6 +271,7 @@ public class ServerPlayer extends Player { @@ -55,7 +55,7 @@ index fa323141f77923fc766bbf2e8587d7e8792b92ec..3dfbd1225b0c1ee6b6fb2e842efdb1a8 // CraftBukkit end public boolean isRealPlayer; // Paper diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f644c8b89e96d35fb9f2ac7941dcfcf9e8b66451..3986d49b0e3405248913a685c44b27d091c4152e 100644 +index 8c9dcd895f73765327ac00d7cc706b6ae8b9d81f..66a39d00c23bf6bced8ea9c177d84d1409cd2c11 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -295,6 +295,12 @@ public abstract class PlayerList { diff --git a/patches/server/0374-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch similarity index 98% rename from patches/server/0374-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch rename to patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch index 8fd7088476e3..a80ab4fdbf4e 100644 --- a/patches/server/0374-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch +++ b/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch @@ -10,7 +10,7 @@ Co-authored-by: Wyatt Childers Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 569fa7caeffcda00ae6bf824af8b44b1d6862835..cb173f30bf5abd7c709d2186dd489e50c178b3cc 100644 +index 66a39d00c23bf6bced8ea9c177d84d1409cd2c11..5c5d1e387ea00a17db99b3ef1f68eede01b09789 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -194,7 +194,7 @@ public abstract class PlayerList { diff --git a/patches/server/0375-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0372-Add-PlayerAttackEntityCooldownResetEvent.patch similarity index 95% rename from patches/server/0375-Add-PlayerAttackEntityCooldownResetEvent.patch rename to patches/server/0372-Add-PlayerAttackEntityCooldownResetEvent.patch index ae1d6667251a..63d51833e108 100644 --- a/patches/server/0375-Add-PlayerAttackEntityCooldownResetEvent.patch +++ b/patches/server/0372-Add-PlayerAttackEntityCooldownResetEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerAttackEntityCooldownResetEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8577eb85cfe6d061e9e8b7e380db452a8c4ec858..9eea89e4c3ec5f999ec7f5773f4c37209211c173 100644 +index 0f364937ee7caa0496cfff1f9e5692d83a4dcd97..a4b1066bbb36cce7505e5e6dc033b0266ce85974 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2190,7 +2190,16 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0376-Don-t-fire-BlockFade-on-worldgen-threads.patch b/patches/server/0373-Don-t-fire-BlockFade-on-worldgen-threads.patch similarity index 100% rename from patches/server/0376-Don-t-fire-BlockFade-on-worldgen-threads.patch rename to patches/server/0373-Don-t-fire-BlockFade-on-worldgen-threads.patch diff --git a/patches/server/0377-Add-phantom-creative-and-insomniac-controls.patch b/patches/server/0374-Add-phantom-creative-and-insomniac-controls.patch similarity index 100% rename from patches/server/0377-Add-phantom-creative-and-insomniac-controls.patch rename to patches/server/0374-Add-phantom-creative-and-insomniac-controls.patch diff --git a/patches/server/0378-Fix-numerous-item-duplication-issues-and-teleport-is.patch b/patches/server/0375-Fix-numerous-item-duplication-issues-and-teleport-is.patch similarity index 100% rename from patches/server/0378-Fix-numerous-item-duplication-issues-and-teleport-is.patch rename to patches/server/0375-Fix-numerous-item-duplication-issues-and-teleport-is.patch diff --git a/patches/server/0379-Villager-Restocks-API.patch b/patches/server/0376-Villager-Restocks-API.patch similarity index 100% rename from patches/server/0379-Villager-Restocks-API.patch rename to patches/server/0376-Villager-Restocks-API.patch diff --git a/patches/server/0380-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0377-Validate-PickItem-Packet-and-kick-for-invalid.patch similarity index 95% rename from patches/server/0380-Validate-PickItem-Packet-and-kick-for-invalid.patch rename to patches/server/0377-Validate-PickItem-Packet-and-kick-for-invalid.patch index e1911c6e8c0d..9010a829f854 100644 --- a/patches/server/0380-Validate-PickItem-Packet-and-kick-for-invalid.patch +++ b/patches/server/0377-Validate-PickItem-Packet-and-kick-for-invalid.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d8285ff999cfea9a7b62e9914a7a7dfdae2ede76..3b1127ac1e30c809d290192319f8bc5f9de30b46 100644 +index 00fa6126ca51b6ffdb46b59f07725ffdcca9f20a..a6d72d4ace089c76deb87ade48194ccd0517bee0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -867,7 +867,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0381-Expose-game-version.patch b/patches/server/0378-Expose-game-version.patch similarity index 89% rename from patches/server/0381-Expose-game-version.patch rename to patches/server/0378-Expose-game-version.patch index f8b42138bc79..d8b186722ec8 100644 --- a/patches/server/0381-Expose-game-version.patch +++ b/patches/server/0378-Expose-game-version.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose game version diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index cc08a752db71b7729f2474e129426153eb4fbc17..b805012214f1ff9526110e56b5ad9dde96c0468e 100644 +index b501ed140902a0143553f338871e3b8b71a7f71e..363d251c80b7d8585425cab456822fd6cde67f23 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -577,6 +577,13 @@ public final class CraftServer implements Server { diff --git a/patches/server/0382-Optimize-Voxel-Shape-Merging.patch b/patches/server/0379-Optimize-Voxel-Shape-Merging.patch similarity index 100% rename from patches/server/0382-Optimize-Voxel-Shape-Merging.patch rename to patches/server/0379-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/server/0383-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/patches/server/0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch similarity index 100% rename from patches/server/0383-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch rename to patches/server/0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch diff --git a/patches/server/0384-misc-debugging-dumps.patch b/patches/server/0381-misc-debugging-dumps.patch similarity index 96% rename from patches/server/0384-misc-debugging-dumps.patch rename to patches/server/0381-misc-debugging-dumps.patch index 48d3e6a4fb71..8fda4d258f2d 100644 --- a/patches/server/0384-misc-debugging-dumps.patch +++ b/patches/server/0381-misc-debugging-dumps.patch @@ -42,7 +42,7 @@ index b27256d251e5db5781197319f79f89cc7638c80b..337ff2b3e8ea6f106656cf4bef029d81 StackTraceElement[] astacktraceelement = exception.getStackTrace(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 08f7f287af32597d8a39f429013adec9266020bf..e230a6e3810929c2f9ac70a98c9fc41734ec06c2 100644 +index 9a25d351df1141e9218d37c0f90e2d67f9c8c3ef..eab8da0689dcb159cb54b418804e86b6364273fb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -918,6 +918,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements BehaviorControl diff --git a/patches/server/0463-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0460-Reset-Ender-Crystals-on-Dragon-Spawn.patch similarity index 100% rename from patches/server/0463-Reset-Ender-Crystals-on-Dragon-Spawn.patch rename to patches/server/0460-Reset-Ender-Crystals-on-Dragon-Spawn.patch diff --git a/patches/server/0464-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0461-Fix-for-large-move-vectors-crashing-server.patch similarity index 100% rename from patches/server/0464-Fix-for-large-move-vectors-crashing-server.patch rename to patches/server/0461-Fix-for-large-move-vectors-crashing-server.patch diff --git a/patches/server/0465-Optimise-getType-calls.patch b/patches/server/0462-Optimise-getType-calls.patch similarity index 100% rename from patches/server/0465-Optimise-getType-calls.patch rename to patches/server/0462-Optimise-getType-calls.patch diff --git a/patches/server/0466-Villager-resetOffers.patch b/patches/server/0463-Villager-resetOffers.patch similarity index 100% rename from patches/server/0466-Villager-resetOffers.patch rename to patches/server/0463-Villager-resetOffers.patch diff --git a/patches/server/0467-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0464-Retain-block-place-order-when-capturing-blockstates.patch similarity index 100% rename from patches/server/0467-Retain-block-place-order-when-capturing-blockstates.patch rename to patches/server/0464-Retain-block-place-order-when-capturing-blockstates.patch diff --git a/patches/server/0468-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0465-Reduce-blockpos-allocation-from-pathfinding.patch similarity index 100% rename from patches/server/0468-Reduce-blockpos-allocation-from-pathfinding.patch rename to patches/server/0465-Reduce-blockpos-allocation-from-pathfinding.patch diff --git a/patches/server/0469-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0466-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/server/0469-Fix-item-locations-dropped-from-campfires.patch rename to patches/server/0466-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/server/0470-Fixed-TileEntityBell-memory-leak.patch b/patches/server/0467-Fixed-TileEntityBell-memory-leak.patch similarity index 100% rename from patches/server/0470-Fixed-TileEntityBell-memory-leak.patch rename to patches/server/0467-Fixed-TileEntityBell-memory-leak.patch diff --git a/patches/server/0471-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0468-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/server/0471-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/server/0468-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/server/0472-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0469-Add-getOfflinePlayerIfCached-String.patch similarity index 100% rename from patches/server/0472-Add-getOfflinePlayerIfCached-String.patch rename to patches/server/0469-Add-getOfflinePlayerIfCached-String.patch diff --git a/patches/server/0473-Add-ignore-discounts-API.patch b/patches/server/0470-Add-ignore-discounts-API.patch similarity index 100% rename from patches/server/0473-Add-ignore-discounts-API.patch rename to patches/server/0470-Add-ignore-discounts-API.patch diff --git a/patches/server/0474-Toggle-for-removing-existing-dragon.patch b/patches/server/0471-Toggle-for-removing-existing-dragon.patch similarity index 100% rename from patches/server/0474-Toggle-for-removing-existing-dragon.patch rename to patches/server/0471-Toggle-for-removing-existing-dragon.patch diff --git a/patches/server/0475-Fix-client-lag-on-advancement-loading.patch b/patches/server/0472-Fix-client-lag-on-advancement-loading.patch similarity index 100% rename from patches/server/0475-Fix-client-lag-on-advancement-loading.patch rename to patches/server/0472-Fix-client-lag-on-advancement-loading.patch diff --git a/patches/server/0476-Item-no-age-no-player-pickup.patch b/patches/server/0473-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/server/0476-Item-no-age-no-player-pickup.patch rename to patches/server/0473-Item-no-age-no-player-pickup.patch diff --git a/patches/server/0477-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/server/0477-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/server/0478-Beacon-API-custom-effect-ranges.patch b/patches/server/0475-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/server/0478-Beacon-API-custom-effect-ranges.patch rename to patches/server/0475-Beacon-API-custom-effect-ranges.patch diff --git a/patches/server/0479-Add-API-for-quit-reason.patch b/patches/server/0476-Add-API-for-quit-reason.patch similarity index 98% rename from patches/server/0479-Add-API-for-quit-reason.patch rename to patches/server/0476-Add-API-for-quit-reason.patch index 16cb4b1757c5..ff5d7979f6b1 100644 --- a/patches/server/0479-Add-API-for-quit-reason.patch +++ b/patches/server/0476-Add-API-for-quit-reason.patch @@ -49,7 +49,7 @@ index f489b207cd3b62a33723f2e9ed0f46020d7f4fd1..0616a8e89931680602da2dbc64090670 this.connection.disconnect(ichatbasecomponent); })); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5f24db6b68b629812d90b7b5e2f06c21732ed098..e2669eb88b76460207f2283711b64e0d6fa8f942 100644 +index 29b535dae6eff1c6b47a5d2818fbf0653cd32b8f..ccdb911e723d8cf5ffbfc162778ab948eb4d1bc2 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -579,7 +579,7 @@ public abstract class PlayerList { diff --git a/patches/server/0480-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0477-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/server/0480-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0477-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/server/0481-Expose-world-spawn-angle.patch b/patches/server/0478-Expose-world-spawn-angle.patch similarity index 87% rename from patches/server/0481-Expose-world-spawn-angle.patch rename to patches/server/0478-Expose-world-spawn-angle.patch index cfa87b6cd4e0..a70c649155ba 100644 --- a/patches/server/0481-Expose-world-spawn-angle.patch +++ b/patches/server/0478-Expose-world-spawn-angle.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose world spawn angle diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e2669eb88b76460207f2283711b64e0d6fa8f942..8cbcbf358b978c85ade7efdefc4e138c09f634ab 100644 +index ccdb911e723d8cf5ffbfc162778ab948eb4d1bc2..d727e401b311eea832315cc681fa7d73886c3f99 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -851,7 +851,7 @@ public abstract class PlayerList { +@@ -849,7 +849,7 @@ public abstract class PlayerList { if (location == null) { worldserver1 = this.server.getLevel(Level.OVERWORLD); blockposition = entityplayer1.getSpawnPoint(worldserver1); diff --git a/patches/server/0482-Add-Destroy-Speed-API.patch b/patches/server/0479-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/server/0482-Add-Destroy-Speed-API.patch rename to patches/server/0479-Add-Destroy-Speed-API.patch diff --git a/patches/server/0483-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0480-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 100% rename from patches/server/0483-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0480-Fix-Player-spawnParticle-x-y-z-precision-loss.patch diff --git a/patches/server/0484-Add-LivingEntity-clearActiveItem.patch b/patches/server/0481-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/server/0484-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0481-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/server/0485-Add-PlayerItemCooldownEvent.patch b/patches/server/0482-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0485-Add-PlayerItemCooldownEvent.patch rename to patches/server/0482-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0486-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0483-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0486-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0483-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0487-More-lightning-API.patch b/patches/server/0484-More-lightning-API.patch similarity index 100% rename from patches/server/0487-More-lightning-API.patch rename to patches/server/0484-More-lightning-API.patch diff --git a/patches/server/0488-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 100% rename from patches/server/0488-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch diff --git a/patches/server/0489-Added-missing-default-perms-for-commands.patch b/patches/server/0486-Added-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0489-Added-missing-default-perms-for-commands.patch rename to patches/server/0486-Added-missing-default-perms-for-commands.patch diff --git a/patches/server/0490-Add-PlayerShearBlockEvent.patch b/patches/server/0487-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0490-Add-PlayerShearBlockEvent.patch rename to patches/server/0487-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0491-Limit-recipe-packets.patch b/patches/server/0488-Limit-recipe-packets.patch similarity index 100% rename from patches/server/0491-Limit-recipe-packets.patch rename to patches/server/0488-Limit-recipe-packets.patch diff --git a/patches/server/0492-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0489-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0492-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0489-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0493-Player-Chunk-Load-Unload-Events.patch b/patches/server/0490-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/server/0493-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0490-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/server/0494-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0491-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0494-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0491-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0495-Expose-LivingEntity-hurt-direction.patch b/patches/server/0492-Expose-LivingEntity-hurt-direction.patch similarity index 100% rename from patches/server/0495-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0492-Expose-LivingEntity-hurt-direction.patch diff --git a/patches/server/0496-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0493-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/server/0496-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0493-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/server/0497-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch b/patches/server/0494-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch similarity index 100% rename from patches/server/0497-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch rename to patches/server/0494-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch diff --git a/patches/server/0498-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch similarity index 100% rename from patches/server/0498-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch rename to patches/server/0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch diff --git a/patches/server/0499-Implement-TargetHitEvent.patch b/patches/server/0496-Implement-TargetHitEvent.patch similarity index 100% rename from patches/server/0499-Implement-TargetHitEvent.patch rename to patches/server/0496-Implement-TargetHitEvent.patch diff --git a/patches/server/0500-MC-4-Fix-item-position-desync.patch b/patches/server/0497-MC-4-Fix-item-position-desync.patch similarity index 100% rename from patches/server/0500-MC-4-Fix-item-position-desync.patch rename to patches/server/0497-MC-4-Fix-item-position-desync.patch diff --git a/patches/server/0501-Additional-Block-Material-API-s.patch b/patches/server/0498-Additional-Block-Material-API-s.patch similarity index 100% rename from patches/server/0501-Additional-Block-Material-API-s.patch rename to patches/server/0498-Additional-Block-Material-API-s.patch diff --git a/patches/server/0502-Fix-harming-potion-dupe.patch b/patches/server/0499-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0502-Fix-harming-potion-dupe.patch rename to patches/server/0499-Fix-harming-potion-dupe.patch diff --git a/patches/server/0503-Implement-API-to-get-Material-from-Boats-and-Minecar.patch b/patches/server/0500-Implement-API-to-get-Material-from-Boats-and-Minecar.patch similarity index 100% rename from patches/server/0503-Implement-API-to-get-Material-from-Boats-and-Minecar.patch rename to patches/server/0500-Implement-API-to-get-Material-from-Boats-and-Minecar.patch diff --git a/patches/server/0504-Cache-burn-durations.patch b/patches/server/0501-Cache-burn-durations.patch similarity index 100% rename from patches/server/0504-Cache-burn-durations.patch rename to patches/server/0501-Cache-burn-durations.patch diff --git a/patches/server/0505-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0502-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/server/0505-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0502-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/server/0506-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0503-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 100% rename from patches/server/0506-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/server/0503-Fix-Not-a-string-Map-Conversion-spam.patch diff --git a/patches/server/0507-Implement-PlayerFlowerPotManipulateEvent.patch b/patches/server/0504-Implement-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0507-Implement-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0504-Implement-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0508-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch similarity index 100% rename from patches/server/0508-Fix-interact-event-not-being-called-sometimes.patch rename to patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch diff --git a/patches/server/0509-Zombie-API-breaking-doors.patch b/patches/server/0506-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0509-Zombie-API-breaking-doors.patch rename to patches/server/0506-Zombie-API-breaking-doors.patch diff --git a/patches/server/0510-Fix-nerfed-slime-when-splitting.patch b/patches/server/0507-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/server/0510-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0507-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/server/0511-Add-EntityLoadCrossbowEvent.patch b/patches/server/0508-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0511-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0508-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0512-Added-WorldGameRuleChangeEvent.patch b/patches/server/0509-Added-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/server/0512-Added-WorldGameRuleChangeEvent.patch rename to patches/server/0509-Added-WorldGameRuleChangeEvent.patch diff --git a/patches/server/0513-Added-ServerResourcesReloadedEvent.patch b/patches/server/0510-Added-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/server/0513-Added-ServerResourcesReloadedEvent.patch rename to patches/server/0510-Added-ServerResourcesReloadedEvent.patch diff --git a/patches/server/0514-Added-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0511-Added-world-settings-for-mobs-picking-up-loot.patch similarity index 100% rename from patches/server/0514-Added-world-settings-for-mobs-picking-up-loot.patch rename to patches/server/0511-Added-world-settings-for-mobs-picking-up-loot.patch diff --git a/patches/server/0515-Implemented-BlockFailedDispenseEvent.patch b/patches/server/0512-Implemented-BlockFailedDispenseEvent.patch similarity index 100% rename from patches/server/0515-Implemented-BlockFailedDispenseEvent.patch rename to patches/server/0512-Implemented-BlockFailedDispenseEvent.patch diff --git a/patches/server/0516-Added-PlayerLecternPageChangeEvent.patch b/patches/server/0513-Added-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/server/0516-Added-PlayerLecternPageChangeEvent.patch rename to patches/server/0513-Added-PlayerLecternPageChangeEvent.patch diff --git a/patches/server/0517-Added-PlayerLoomPatternSelectEvent.patch b/patches/server/0514-Added-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/server/0517-Added-PlayerLoomPatternSelectEvent.patch rename to patches/server/0514-Added-PlayerLoomPatternSelectEvent.patch diff --git a/patches/server/0518-Configurable-door-breaking-difficulty.patch b/patches/server/0515-Configurable-door-breaking-difficulty.patch similarity index 100% rename from patches/server/0518-Configurable-door-breaking-difficulty.patch rename to patches/server/0515-Configurable-door-breaking-difficulty.patch diff --git a/patches/server/0519-Empty-commands-shall-not-be-dispatched.patch b/patches/server/0516-Empty-commands-shall-not-be-dispatched.patch similarity index 100% rename from patches/server/0519-Empty-commands-shall-not-be-dispatched.patch rename to patches/server/0516-Empty-commands-shall-not-be-dispatched.patch diff --git a/patches/server/0520-Remove-stale-POIs.patch b/patches/server/0517-Remove-stale-POIs.patch similarity index 100% rename from patches/server/0520-Remove-stale-POIs.patch rename to patches/server/0517-Remove-stale-POIs.patch diff --git a/patches/server/0521-Fix-villager-boat-exploit.patch b/patches/server/0518-Fix-villager-boat-exploit.patch similarity index 93% rename from patches/server/0521-Fix-villager-boat-exploit.patch rename to patches/server/0518-Fix-villager-boat-exploit.patch index 6aca9a61ef9e..f83f80d55a93 100644 --- a/patches/server/0521-Fix-villager-boat-exploit.patch +++ b/patches/server/0518-Fix-villager-boat-exploit.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix villager boat exploit diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8cbcbf358b978c85ade7efdefc4e138c09f634ab..8137afc62e5430666ee9e74460109f7408baeffd 100644 +index d727e401b311eea832315cc681fa7d73886c3f99..0c495698438e4dd29d4bcddb0c88978fc58db8f3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -604,6 +604,14 @@ public abstract class PlayerList { diff --git a/patches/server/0522-Add-sendOpLevel-API.patch b/patches/server/0519-Add-sendOpLevel-API.patch similarity index 91% rename from patches/server/0522-Add-sendOpLevel-API.patch rename to patches/server/0519-Add-sendOpLevel-API.patch index be2e48d0a32a..c7a574b1ac5c 100644 --- a/patches/server/0522-Add-sendOpLevel-API.patch +++ b/patches/server/0519-Add-sendOpLevel-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8137afc62e5430666ee9e74460109f7408baeffd..32f93ed20f5f2cec71850d7e0ce8a633fd5efc82 100644 +index 0c495698438e4dd29d4bcddb0c88978fc58db8f3..3aeaf4cb425b141d1a90a40cdee95bc98b2aeb56 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1105,6 +1105,11 @@ public abstract class PlayerList { +@@ -1103,6 +1103,11 @@ public abstract class PlayerList { } private void sendPlayerPermissionLevel(ServerPlayer player, int permissionLevel) { @@ -20,7 +20,7 @@ index 8137afc62e5430666ee9e74460109f7408baeffd..32f93ed20f5f2cec71850d7e0ce8a633 if (player.connection != null) { byte b0; -@@ -1119,8 +1124,10 @@ public abstract class PlayerList { +@@ -1117,8 +1122,10 @@ public abstract class PlayerList { player.connection.send(new ClientboundEntityEventPacket(player, b0)); } diff --git a/patches/server/0523-TODO-Registry-Modification-API.patch b/patches/server/0520-TODO-Registry-Modification-API.patch similarity index 100% rename from patches/server/0523-TODO-Registry-Modification-API.patch rename to patches/server/0520-TODO-Registry-Modification-API.patch diff --git a/patches/server/0524-Add-StructuresLocateEvent.patch b/patches/server/0521-Add-StructuresLocateEvent.patch similarity index 100% rename from patches/server/0524-Add-StructuresLocateEvent.patch rename to patches/server/0521-Add-StructuresLocateEvent.patch diff --git a/patches/server/0525-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0522-Collision-option-for-requiring-a-player-participant.patch similarity index 100% rename from patches/server/0525-Collision-option-for-requiring-a-player-participant.patch rename to patches/server/0522-Collision-option-for-requiring-a-player-participant.patch diff --git a/patches/server/0526-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0523-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch similarity index 100% rename from patches/server/0526-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch rename to patches/server/0523-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch diff --git a/patches/server/0527-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0524-Return-chat-component-with-empty-text-instead-of-thr.patch similarity index 100% rename from patches/server/0527-Return-chat-component-with-empty-text-instead-of-thr.patch rename to patches/server/0524-Return-chat-component-with-empty-text-instead-of-thr.patch diff --git a/patches/server/0528-Make-schedule-command-per-world.patch b/patches/server/0525-Make-schedule-command-per-world.patch similarity index 100% rename from patches/server/0528-Make-schedule-command-per-world.patch rename to patches/server/0525-Make-schedule-command-per-world.patch diff --git a/patches/server/0529-Configurable-max-leash-distance.patch b/patches/server/0526-Configurable-max-leash-distance.patch similarity index 100% rename from patches/server/0529-Configurable-max-leash-distance.patch rename to patches/server/0526-Configurable-max-leash-distance.patch diff --git a/patches/server/0530-Implement-BlockPreDispenseEvent.patch b/patches/server/0527-Implement-BlockPreDispenseEvent.patch similarity index 100% rename from patches/server/0530-Implement-BlockPreDispenseEvent.patch rename to patches/server/0527-Implement-BlockPreDispenseEvent.patch diff --git a/patches/server/0531-Added-firing-of-PlayerChangeBeaconEffectEvent.patch b/patches/server/0528-Added-firing-of-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/server/0531-Added-firing-of-PlayerChangeBeaconEffectEvent.patch rename to patches/server/0528-Added-firing-of-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/server/0532-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0529-Add-toggle-for-always-placing-the-dragon-egg.patch similarity index 100% rename from patches/server/0532-Add-toggle-for-always-placing-the-dragon-egg.patch rename to patches/server/0529-Add-toggle-for-always-placing-the-dragon-egg.patch diff --git a/patches/server/0533-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0530-Added-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/server/0533-Added-PlayerStonecutterRecipeSelectEvent.patch rename to patches/server/0530-Added-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/server/0534-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/server/0531-Add-dropLeash-variable-to-EntityUnleashEvent.patch similarity index 100% rename from patches/server/0534-Add-dropLeash-variable-to-EntityUnleashEvent.patch rename to patches/server/0531-Add-dropLeash-variable-to-EntityUnleashEvent.patch diff --git a/patches/server/0535-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0532-Reset-shield-blocking-on-dimension-change.patch similarity index 100% rename from patches/server/0535-Reset-shield-blocking-on-dimension-change.patch rename to patches/server/0532-Reset-shield-blocking-on-dimension-change.patch diff --git a/patches/server/0536-add-DragonEggFormEvent.patch b/patches/server/0533-add-DragonEggFormEvent.patch similarity index 100% rename from patches/server/0536-add-DragonEggFormEvent.patch rename to patches/server/0533-add-DragonEggFormEvent.patch diff --git a/patches/server/0537-EntityMoveEvent.patch b/patches/server/0534-EntityMoveEvent.patch similarity index 100% rename from patches/server/0537-EntityMoveEvent.patch rename to patches/server/0534-EntityMoveEvent.patch diff --git a/patches/server/0538-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 100% rename from patches/server/0538-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch diff --git a/patches/server/0539-Inline-shift-direction-fields.patch b/patches/server/0536-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0539-Inline-shift-direction-fields.patch rename to patches/server/0536-Inline-shift-direction-fields.patch diff --git a/patches/server/0540-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0537-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/server/0540-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0537-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/server/0541-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0538-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0541-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0538-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0542-living-entity-allow-attribute-registration.patch b/patches/server/0539-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/server/0542-living-entity-allow-attribute-registration.patch rename to patches/server/0539-living-entity-allow-attribute-registration.patch diff --git a/patches/server/0543-fix-dead-slime-setSize-invincibility.patch b/patches/server/0540-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0543-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0540-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0544-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0541-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0544-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0541-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0545-Expose-Tracked-Players.patch b/patches/server/0542-Expose-Tracked-Players.patch similarity index 100% rename from patches/server/0545-Expose-Tracked-Players.patch rename to patches/server/0542-Expose-Tracked-Players.patch diff --git a/patches/server/0546-Improve-ServerGUI.patch b/patches/server/0543-Improve-ServerGUI.patch similarity index 100% rename from patches/server/0546-Improve-ServerGUI.patch rename to patches/server/0543-Improve-ServerGUI.patch diff --git a/patches/server/0547-fix-converting-txt-to-json-file.patch b/patches/server/0544-fix-converting-txt-to-json-file.patch similarity index 97% rename from patches/server/0547-fix-converting-txt-to-json-file.patch rename to patches/server/0544-fix-converting-txt-to-json-file.patch index 250a6e2a2812..c8419ed7993b 100644 --- a/patches/server/0547-fix-converting-txt-to-json-file.patch +++ b/patches/server/0544-fix-converting-txt-to-json-file.patch @@ -48,7 +48,7 @@ index 2d5e8d624b153f55e28d8a4e008dce11853179cf..b5acccc3339e3e2b817116ecf2af228c if (!OldUsersConverter.serverReadyAfterUserconversion(this)) { return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 32f93ed20f5f2cec71850d7e0ce8a633fd5efc82..8a13160ff62a671a11740c456a2cbc3ccbac708f 100644 +index 3aeaf4cb425b141d1a90a40cdee95bc98b2aeb56..72b9c50024e82356491a3d35bf248223f3088b5c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -176,6 +176,7 @@ public abstract class PlayerList { diff --git a/patches/server/0548-Add-worldborder-events.patch b/patches/server/0545-Add-worldborder-events.patch similarity index 100% rename from patches/server/0548-Add-worldborder-events.patch rename to patches/server/0545-Add-worldborder-events.patch diff --git a/patches/server/0549-added-PlayerNameEntityEvent.patch b/patches/server/0546-added-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0549-added-PlayerNameEntityEvent.patch rename to patches/server/0546-added-PlayerNameEntityEvent.patch diff --git a/patches/server/0550-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0547-Prevent-grindstones-from-overstacking-items.patch similarity index 100% rename from patches/server/0550-Prevent-grindstones-from-overstacking-items.patch rename to patches/server/0547-Prevent-grindstones-from-overstacking-items.patch diff --git a/patches/server/0551-Add-recipe-to-cook-events.patch b/patches/server/0548-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/server/0551-Add-recipe-to-cook-events.patch rename to patches/server/0548-Add-recipe-to-cook-events.patch diff --git a/patches/server/0552-Add-Block-isValidTool.patch b/patches/server/0549-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0552-Add-Block-isValidTool.patch rename to patches/server/0549-Add-Block-isValidTool.patch diff --git a/patches/server/0553-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0550-Allow-using-signs-inside-spawn-protection.patch similarity index 100% rename from patches/server/0553-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0550-Allow-using-signs-inside-spawn-protection.patch diff --git a/patches/server/0554-Expand-world-key-API.patch b/patches/server/0551-Expand-world-key-API.patch similarity index 100% rename from patches/server/0554-Expand-world-key-API.patch rename to patches/server/0551-Expand-world-key-API.patch diff --git a/patches/server/0555-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0552-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0555-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0552-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0556-Item-Rarity-API.patch b/patches/server/0553-Item-Rarity-API.patch similarity index 100% rename from patches/server/0556-Item-Rarity-API.patch rename to patches/server/0553-Item-Rarity-API.patch diff --git a/patches/server/0557-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0554-Drop-carried-item-when-player-has-disconnected.patch similarity index 92% rename from patches/server/0557-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0554-Drop-carried-item-when-player-has-disconnected.patch index a7d48b393e64..c157596526d7 100644 --- a/patches/server/0557-Drop-carried-item-when-player-has-disconnected.patch +++ b/patches/server/0554-Drop-carried-item-when-player-has-disconnected.patch @@ -7,7 +7,7 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro Closes #5036 diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8a13160ff62a671a11740c456a2cbc3ccbac708f..d45b529c91e678a1f3b5b3d427eaf4019b8cc424 100644 +index 72b9c50024e82356491a3d35bf248223f3088b5c..dfaedfb4996d9edfb5c50851abf4f5a91f41527c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -597,6 +597,14 @@ public abstract class PlayerList { diff --git a/patches/server/0558-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0555-forced-whitelist-use-configurable-kick-message.patch similarity index 100% rename from patches/server/0558-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0555-forced-whitelist-use-configurable-kick-message.patch diff --git a/patches/server/0559-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0556-Don-t-ignore-result-of-PlayerEditBookEvent.patch similarity index 100% rename from patches/server/0559-Don-t-ignore-result-of-PlayerEditBookEvent.patch rename to patches/server/0556-Don-t-ignore-result-of-PlayerEditBookEvent.patch diff --git a/patches/server/0560-Expose-protocol-version.patch b/patches/server/0557-Expose-protocol-version.patch similarity index 100% rename from patches/server/0560-Expose-protocol-version.patch rename to patches/server/0557-Expose-protocol-version.patch diff --git a/patches/server/0561-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0558-Enhance-console-tab-completions-for-brigadier-comman.patch similarity index 100% rename from patches/server/0561-Enhance-console-tab-completions-for-brigadier-comman.patch rename to patches/server/0558-Enhance-console-tab-completions-for-brigadier-comman.patch diff --git a/patches/server/0562-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0559-Fix-PlayerItemConsumeEvent-cancelling-properly.patch similarity index 100% rename from patches/server/0562-Fix-PlayerItemConsumeEvent-cancelling-properly.patch rename to patches/server/0559-Fix-PlayerItemConsumeEvent-cancelling-properly.patch diff --git a/patches/server/0563-Add-bypass-host-check.patch b/patches/server/0560-Add-bypass-host-check.patch similarity index 100% rename from patches/server/0563-Add-bypass-host-check.patch rename to patches/server/0560-Add-bypass-host-check.patch diff --git a/patches/server/0564-Set-area-affect-cloud-rotation.patch b/patches/server/0561-Set-area-affect-cloud-rotation.patch similarity index 100% rename from patches/server/0564-Set-area-affect-cloud-rotation.patch rename to patches/server/0561-Set-area-affect-cloud-rotation.patch diff --git a/patches/server/0565-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0562-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/server/0565-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/server/0562-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/server/0566-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0563-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/server/0566-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/server/0563-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/server/0567-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0564-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/server/0567-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/server/0564-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/server/0568-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0565-fix-PigZombieAngerEvent-cancellation.patch similarity index 100% rename from patches/server/0568-fix-PigZombieAngerEvent-cancellation.patch rename to patches/server/0565-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/server/0569-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0566-fix-PlayerItemHeldEvent-firing-twice.patch similarity index 100% rename from patches/server/0569-fix-PlayerItemHeldEvent-firing-twice.patch rename to patches/server/0566-fix-PlayerItemHeldEvent-firing-twice.patch diff --git a/patches/server/0570-Added-PlayerDeepSleepEvent.patch b/patches/server/0567-Added-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/server/0570-Added-PlayerDeepSleepEvent.patch rename to patches/server/0567-Added-PlayerDeepSleepEvent.patch diff --git a/patches/server/0571-More-World-API.patch b/patches/server/0568-More-World-API.patch similarity index 100% rename from patches/server/0571-More-World-API.patch rename to patches/server/0568-More-World-API.patch diff --git a/patches/server/0572-Added-PlayerBedFailEnterEvent.patch b/patches/server/0569-Added-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/server/0572-Added-PlayerBedFailEnterEvent.patch rename to patches/server/0569-Added-PlayerBedFailEnterEvent.patch diff --git a/patches/server/0573-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0570-Implement-methods-to-convert-between-Component-and-B.patch similarity index 100% rename from patches/server/0573-Implement-methods-to-convert-between-Component-and-B.patch rename to patches/server/0570-Implement-methods-to-convert-between-Component-and-B.patch diff --git a/patches/server/0574-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch b/patches/server/0571-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch similarity index 87% rename from patches/server/0574-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch rename to patches/server/0571-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch index f58290b66d1c..b7084efce8da 100644 --- a/patches/server/0574-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch +++ b/patches/server/0571-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix anchor respawn acting as a bed respawn from the end diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d45b529c91e678a1f3b5b3d427eaf4019b8cc424..43e8cb83ec6cd18706dcba7022dd0f56cf24f33b 100644 +index dfaedfb4996d9edfb5c50851abf4f5a91f41527c..af1c4caa17e8b6ae597af123abe6b056bd8fd87d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -824,6 +824,7 @@ public abstract class PlayerList { +@@ -822,6 +822,7 @@ public abstract class PlayerList { // Paper start boolean isBedSpawn = false; @@ -17,7 +17,7 @@ index d45b529c91e678a1f3b5b3d427eaf4019b8cc424..43e8cb83ec6cd18706dcba7022dd0f56 boolean isRespawn = false; boolean isLocAltered = false; // Paper - Fix SPIGOT-5989 // Paper end -@@ -844,6 +845,7 @@ public abstract class PlayerList { +@@ -842,6 +843,7 @@ public abstract class PlayerList { if (optional.isPresent()) { BlockState iblockdata = worldserver1.getBlockState(blockposition); boolean flag3 = iblockdata.is(Blocks.RESPAWN_ANCHOR); @@ -25,7 +25,7 @@ index d45b529c91e678a1f3b5b3d427eaf4019b8cc424..43e8cb83ec6cd18706dcba7022dd0f56 Vec3 vec3d = (Vec3) optional.get(); float f1; -@@ -872,7 +874,7 @@ public abstract class PlayerList { +@@ -870,7 +872,7 @@ public abstract class PlayerList { } Player respawnPlayer = entityplayer1.getBukkitEntity(); diff --git a/patches/server/0575-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0572-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0575-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0572-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0576-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0573-add-RespawnFlags-to-PlayerRespawnEvent.patch similarity index 94% rename from patches/server/0576-add-RespawnFlags-to-PlayerRespawnEvent.patch rename to patches/server/0573-add-RespawnFlags-to-PlayerRespawnEvent.patch index 96e8ecd7a3d2..fd3a8af4c07c 100644 --- a/patches/server/0576-add-RespawnFlags-to-PlayerRespawnEvent.patch +++ b/patches/server/0573-add-RespawnFlags-to-PlayerRespawnEvent.patch @@ -18,10 +18,10 @@ index 91e1a5fb981dd8468bb13098424b54da1c90a998..206c0a1e783699ed272e3640a29fe349 } else { if (this.player.getHealth() > 0.0F) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 43e8cb83ec6cd18706dcba7022dd0f56cf24f33b..cf39405eddcc9e5b19c2ffae571921494e1857eb 100644 +index af1c4caa17e8b6ae597af123abe6b056bd8fd87d..c3e058cb24fc6cf3e7508ad689af9214d9a20f7d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -783,6 +783,12 @@ public abstract class PlayerList { +@@ -781,6 +781,12 @@ public abstract class PlayerList { } public ServerPlayer respawn(ServerPlayer entityplayer, ServerLevel worldserver, boolean flag, Location location, boolean avoidSuffocation, RespawnReason reason) { @@ -34,7 +34,7 @@ index 43e8cb83ec6cd18706dcba7022dd0f56cf24f33b..cf39405eddcc9e5b19c2ffae57192149 entityplayer.stopRiding(); // CraftBukkit this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot -@@ -874,7 +880,7 @@ public abstract class PlayerList { +@@ -872,7 +878,7 @@ public abstract class PlayerList { } Player respawnPlayer = entityplayer1.getBukkitEntity(); diff --git a/patches/server/0577-Add-Channel-initialization-listeners.patch b/patches/server/0574-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/server/0577-Add-Channel-initialization-listeners.patch rename to patches/server/0574-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0578-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0575-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0578-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0575-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0579-Add-more-WanderingTrader-API.patch b/patches/server/0576-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0579-Add-more-WanderingTrader-API.patch rename to patches/server/0576-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0580-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0577-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0580-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0577-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0581-Entity-load-save-limit-per-chunk.patch b/patches/server/0578-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/server/0581-Entity-load-save-limit-per-chunk.patch rename to patches/server/0578-Entity-load-save-limit-per-chunk.patch diff --git a/patches/server/0582-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0579-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0582-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0579-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0583-Inventory-close.patch b/patches/server/0580-Inventory-close.patch similarity index 100% rename from patches/server/0583-Inventory-close.patch rename to patches/server/0580-Inventory-close.patch diff --git a/patches/server/0584-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0581-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0584-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0581-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0585-Add-basic-Datapack-API.patch b/patches/server/0582-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0585-Add-basic-Datapack-API.patch rename to patches/server/0582-Add-basic-Datapack-API.patch diff --git a/patches/server/0586-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0583-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0586-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0583-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0587-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0584-additions-to-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/server/0587-additions-to-PlayerGameModeChangeEvent.patch rename to patches/server/0584-additions-to-PlayerGameModeChangeEvent.patch diff --git a/patches/server/0588-ItemStack-repair-check-API.patch b/patches/server/0585-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0588-ItemStack-repair-check-API.patch rename to patches/server/0585-ItemStack-repair-check-API.patch diff --git a/patches/server/0589-More-Enchantment-API.patch b/patches/server/0586-More-Enchantment-API.patch similarity index 100% rename from patches/server/0589-More-Enchantment-API.patch rename to patches/server/0586-More-Enchantment-API.patch diff --git a/patches/server/0590-Move-range-check-for-block-placing-up.patch b/patches/server/0587-Move-range-check-for-block-placing-up.patch similarity index 100% rename from patches/server/0590-Move-range-check-for-block-placing-up.patch rename to patches/server/0587-Move-range-check-for-block-placing-up.patch diff --git a/patches/server/0591-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0588-Fix-and-optimise-world-force-upgrading.patch similarity index 100% rename from patches/server/0591-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0588-Fix-and-optimise-world-force-upgrading.patch diff --git a/patches/server/0592-Add-Mob-lookAt-API.patch b/patches/server/0589-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0592-Add-Mob-lookAt-API.patch rename to patches/server/0589-Add-Mob-lookAt-API.patch diff --git a/patches/server/0593-Add-Unix-domain-socket-support.patch b/patches/server/0590-Add-Unix-domain-socket-support.patch similarity index 100% rename from patches/server/0593-Add-Unix-domain-socket-support.patch rename to patches/server/0590-Add-Unix-domain-socket-support.patch diff --git a/patches/server/0594-Add-EntityInsideBlockEvent.patch b/patches/server/0591-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0594-Add-EntityInsideBlockEvent.patch rename to patches/server/0591-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0595-Attributes-API-for-item-defaults.patch b/patches/server/0592-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0595-Attributes-API-for-item-defaults.patch rename to patches/server/0592-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0596-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0593-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/server/0596-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0593-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/server/0597-More-Lidded-Block-API.patch b/patches/server/0594-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0597-More-Lidded-Block-API.patch rename to patches/server/0594-More-Lidded-Block-API.patch diff --git a/patches/server/0598-Limit-item-frame-cursors-on-maps.patch b/patches/server/0595-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0598-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0595-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0599-Add-PlayerKickEvent-causes.patch b/patches/server/0596-Add-PlayerKickEvent-causes.patch similarity index 99% rename from patches/server/0599-Add-PlayerKickEvent-causes.patch rename to patches/server/0596-Add-PlayerKickEvent-causes.patch index d5911f643584..04d7f1f5ce4c 100644 --- a/patches/server/0599-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0596-Add-PlayerKickEvent-causes.patch @@ -437,7 +437,7 @@ index 4d23d019173d0921145338544e190bc34f9f45c2..1a85755ad62498c263783d1d54130d02 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index cf39405eddcc9e5b19c2ffae571921494e1857eb..891fdeaba2b0f287a0da87a20bb850ffcc9d66bf 100644 +index c3e058cb24fc6cf3e7508ad689af9214d9a20f7d..ff387a1b9ef7165dc755daf672df5d83315b6b7c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -684,7 +684,7 @@ public abstract class PlayerList { @@ -449,7 +449,7 @@ index cf39405eddcc9e5b19c2ffae571921494e1857eb..891fdeaba2b0f287a0da87a20bb850ff } // Instead of kicking then returning, we need to store the kick reason -@@ -1335,8 +1335,8 @@ public abstract class PlayerList { +@@ -1333,8 +1333,8 @@ public abstract class PlayerList { // Paper end // CraftBukkit start - disconnect safely for (ServerPlayer player : this.players) { diff --git a/patches/server/0600-Add-PufferFishStateChangeEvent.patch b/patches/server/0597-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0600-Add-PufferFishStateChangeEvent.patch rename to patches/server/0597-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0601-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0598-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0601-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0598-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0602-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0599-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/server/0602-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0599-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/server/0603-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0600-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0603-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0600-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0604-Add-BellRevealRaiderEvent.patch b/patches/server/0601-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0604-Add-BellRevealRaiderEvent.patch rename to patches/server/0601-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0605-Fix-invulnerable-end-crystals.patch b/patches/server/0602-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0605-Fix-invulnerable-end-crystals.patch rename to patches/server/0602-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0606-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0603-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0606-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0603-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0607-Fix-dangerous-end-portal-logic.patch b/patches/server/0604-Fix-dangerous-end-portal-logic.patch similarity index 100% rename from patches/server/0607-Fix-dangerous-end-portal-logic.patch rename to patches/server/0604-Fix-dangerous-end-portal-logic.patch diff --git a/patches/server/0608-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0605-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0608-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0605-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0609-Make-item-validations-configurable.patch b/patches/server/0606-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0609-Make-item-validations-configurable.patch rename to patches/server/0606-Make-item-validations-configurable.patch diff --git a/patches/server/0610-Line-Of-Sight-Changes.patch b/patches/server/0607-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/server/0610-Line-Of-Sight-Changes.patch rename to patches/server/0607-Line-Of-Sight-Changes.patch diff --git a/patches/server/0611-add-per-world-spawn-limits.patch b/patches/server/0608-add-per-world-spawn-limits.patch similarity index 100% rename from patches/server/0611-add-per-world-spawn-limits.patch rename to patches/server/0608-add-per-world-spawn-limits.patch diff --git a/patches/server/0612-Fix-potions-splash-events.patch b/patches/server/0609-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0612-Fix-potions-splash-events.patch rename to patches/server/0609-Fix-potions-splash-events.patch diff --git a/patches/server/0613-Add-more-LimitedRegion-API.patch b/patches/server/0610-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0613-Add-more-LimitedRegion-API.patch rename to patches/server/0610-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0614-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0611-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 100% rename from patches/server/0614-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0611-Fix-PlayerDropItemEvent-using-wrong-item.patch diff --git a/patches/server/0615-Missing-Entity-API.patch b/patches/server/0612-Missing-Entity-API.patch similarity index 99% rename from patches/server/0615-Missing-Entity-API.patch rename to patches/server/0612-Missing-Entity-API.patch index 4cbbbf5a031e..f6c3195d8e09 100644 --- a/patches/server/0615-Missing-Entity-API.patch +++ b/patches/server/0612-Missing-Entity-API.patch @@ -282,7 +282,7 @@ index 14b09adeb9222600c24f3fb846ea8aee467952e6..8241dbf7591b2f56b25cdc3ce9009c71 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 8e72958dec9d4eb35330b72e057733a268e83745..decd59f7104ba26145e2150c3b8e5e0404d31885 100644 +index a859f02074c698c68713568ed99089e33f38ccca..6d29fef4de10c4b75be591046ff1f8e3c24bb9bb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -457,6 +457,16 @@ public class EnderMan extends Monster implements NeutralMob { diff --git a/patches/server/0616-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0613-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 100% rename from patches/server/0616-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0613-Ensure-disconnect-for-book-edit-is-called-on-main.patch diff --git a/patches/server/0617-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0614-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0617-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0614-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0618-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0615-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 100% rename from patches/server/0618-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0615-Use-getChunkIfLoadedImmediately-in-places.patch diff --git a/patches/server/0619-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0616-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0619-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0616-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0620-Adds-PlayerArmSwingEvent.patch b/patches/server/0617-Adds-PlayerArmSwingEvent.patch similarity index 100% rename from patches/server/0620-Adds-PlayerArmSwingEvent.patch rename to patches/server/0617-Adds-PlayerArmSwingEvent.patch diff --git a/patches/server/0621-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0618-Fixes-kick-event-leave-message-not-being-sent.patch similarity index 98% rename from patches/server/0621-Fixes-kick-event-leave-message-not-being-sent.patch rename to patches/server/0618-Fixes-kick-event-leave-message-not-being-sent.patch index fdd06094ab49..630accdbb974 100644 --- a/patches/server/0621-Fixes-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0618-Fixes-kick-event-leave-message-not-being-sent.patch @@ -96,7 +96,7 @@ index da21fdec10a10e4dcec3b0cadb72fa82ef56e4b4..8ed347ad9e758a3d5df7110ea0b098a2 this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); // 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 891fdeaba2b0f287a0da87a20bb850ffcc9d66bf..6fdd1175f8d07fba7adf3a63d9c98dedd15e7774 100644 +index ff387a1b9ef7165dc755daf672df5d83315b6b7c..29ad37a8d449b5addfd48ef46dde9835f34a057a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -570,6 +570,11 @@ public abstract class PlayerList { diff --git a/patches/server/0622-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0619-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/0622-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0619-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0623-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0620-Don-t-apply-cramming-damage-to-players.patch similarity index 100% rename from patches/server/0623-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0620-Don-t-apply-cramming-damage-to-players.patch diff --git a/patches/server/0624-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0621-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0624-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0621-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0625-Add-a-bunch-of-missing-forceDrop-toggles.patch b/patches/server/0622-Add-a-bunch-of-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0625-Add-a-bunch-of-missing-forceDrop-toggles.patch rename to patches/server/0622-Add-a-bunch-of-missing-forceDrop-toggles.patch diff --git a/patches/server/0626-Stinger-API.patch b/patches/server/0623-Stinger-API.patch similarity index 100% rename from patches/server/0626-Stinger-API.patch rename to patches/server/0623-Stinger-API.patch diff --git a/patches/server/0627-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0624-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0627-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0624-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0628-Add-System.out-err-catcher.patch b/patches/server/0625-Add-System.out-err-catcher.patch similarity index 100% rename from patches/server/0628-Add-System.out-err-catcher.patch rename to patches/server/0625-Add-System.out-err-catcher.patch diff --git a/patches/server/0629-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0626-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0629-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0626-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0630-Improve-boat-collision-performance.patch b/patches/server/0627-Improve-boat-collision-performance.patch similarity index 100% rename from patches/server/0630-Improve-boat-collision-performance.patch rename to patches/server/0627-Improve-boat-collision-performance.patch diff --git a/patches/server/0631-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0628-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 100% rename from patches/server/0631-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0628-Prevent-AFK-kick-while-watching-end-credits.patch diff --git a/patches/server/0632-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0629-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0632-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0629-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0633-Add-PlayerSetSpawnEvent.patch b/patches/server/0630-Add-PlayerSetSpawnEvent.patch similarity index 98% rename from patches/server/0633-Add-PlayerSetSpawnEvent.patch rename to patches/server/0630-Add-PlayerSetSpawnEvent.patch index 4233f9c921a1..154380d73629 100644 --- a/patches/server/0633-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0630-Add-PlayerSetSpawnEvent.patch @@ -154,10 +154,10 @@ index b49b56848bdbbd07c49e44d85997fa36192332c5..9f7c149d3ad1175d55ec02e295ee43bc public SectionPos getLastSectionPos() { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6fdd1175f8d07fba7adf3a63d9c98dedd15e7774..159932e2807c8d51fbf141c2145a138a39ea8abe 100644 +index 29ad37a8d449b5addfd48ef46dde9835f34a057a..f7588787769902506e317bdb052483c5dc377693 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -874,7 +874,7 @@ public abstract class PlayerList { +@@ -872,7 +872,7 @@ public abstract class PlayerList { location = CraftLocation.toBukkit(vec3d, worldserver1.getWorld(), f1, 0.0F); } else if (blockposition != null) { entityplayer1.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F)); diff --git a/patches/server/0634-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0631-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0634-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0631-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0635-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0632-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0635-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0632-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0636-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0633-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0636-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0633-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0637-Added-EntityDamageItemEvent.patch b/patches/server/0634-Added-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0637-Added-EntityDamageItemEvent.patch rename to patches/server/0634-Added-EntityDamageItemEvent.patch diff --git a/patches/server/0638-Optimize-indirect-passenger-iteration.patch b/patches/server/0635-Optimize-indirect-passenger-iteration.patch similarity index 100% rename from patches/server/0638-Optimize-indirect-passenger-iteration.patch rename to patches/server/0635-Optimize-indirect-passenger-iteration.patch diff --git a/patches/server/0639-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0636-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0639-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0636-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0640-Make-EntityUnleashEvent-cancellable.patch b/patches/server/0637-Make-EntityUnleashEvent-cancellable.patch similarity index 100% rename from patches/server/0640-Make-EntityUnleashEvent-cancellable.patch rename to patches/server/0637-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/server/0641-Clear-bucket-NBT-after-dispense.patch b/patches/server/0638-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0641-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0638-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0642-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0639-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0642-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0639-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0643-Add-BlockBreakBlockEvent.patch b/patches/server/0640-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0643-Add-BlockBreakBlockEvent.patch rename to patches/server/0640-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0644-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0641-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0644-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0641-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0645-More-CommandBlock-API.patch b/patches/server/0642-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0645-More-CommandBlock-API.patch rename to patches/server/0642-More-CommandBlock-API.patch diff --git a/patches/server/0646-Add-missing-team-sidebar-display-slots.patch b/patches/server/0643-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0646-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0643-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0647-Add-back-EntityPortalExitEvent.patch b/patches/server/0644-Add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/server/0647-Add-back-EntityPortalExitEvent.patch rename to patches/server/0644-Add-back-EntityPortalExitEvent.patch diff --git a/patches/server/0648-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0645-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/server/0648-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0645-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/server/0649-Get-entity-default-attributes.patch b/patches/server/0646-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0649-Get-entity-default-attributes.patch rename to patches/server/0646-Get-entity-default-attributes.patch diff --git a/patches/server/0650-Left-handed-API.patch b/patches/server/0647-Left-handed-API.patch similarity index 100% rename from patches/server/0650-Left-handed-API.patch rename to patches/server/0647-Left-handed-API.patch diff --git a/patches/server/0651-Add-more-advancement-API.patch b/patches/server/0648-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0651-Add-more-advancement-API.patch rename to patches/server/0648-Add-more-advancement-API.patch diff --git a/patches/server/0652-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0649-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0652-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0649-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0653-Add-critical-damage-API.patch b/patches/server/0650-Add-critical-damage-API.patch similarity index 100% rename from patches/server/0653-Add-critical-damage-API.patch rename to patches/server/0650-Add-critical-damage-API.patch diff --git a/patches/server/0654-Fix-issues-with-mob-conversion.patch b/patches/server/0651-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0654-Fix-issues-with-mob-conversion.patch rename to patches/server/0651-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0655-Add-isCollidable-methods-to-various-places.patch b/patches/server/0652-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0655-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0652-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0656-Goat-ram-API.patch b/patches/server/0653-Goat-ram-API.patch similarity index 100% rename from patches/server/0656-Goat-ram-API.patch rename to patches/server/0653-Goat-ram-API.patch diff --git a/patches/server/0657-Add-API-for-resetting-a-single-score.patch b/patches/server/0654-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0657-Add-API-for-resetting-a-single-score.patch rename to patches/server/0654-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0658-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0655-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/server/0658-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0655-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/server/0659-Vanilla-command-permission-fixes.patch b/patches/server/0656-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0659-Vanilla-command-permission-fixes.patch rename to patches/server/0656-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0660-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0657-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 100% rename from patches/server/0660-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0657-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch diff --git a/patches/server/0661-Fix-GameProfileCache-concurrency.patch b/patches/server/0658-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0661-Fix-GameProfileCache-concurrency.patch rename to patches/server/0658-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0662-Improve-and-expand-AsyncCatcher.patch b/patches/server/0659-Improve-and-expand-AsyncCatcher.patch similarity index 100% rename from patches/server/0662-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0659-Improve-and-expand-AsyncCatcher.patch diff --git a/patches/server/0663-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0660-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 100% rename from patches/server/0663-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0660-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/server/0664-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0661-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0664-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0661-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0665-Optimise-general-POI-access.patch b/patches/server/0662-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/0665-Optimise-general-POI-access.patch rename to patches/server/0662-Optimise-general-POI-access.patch diff --git a/patches/server/0666-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/0663-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/0666-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/0663-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/0667-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0664-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0667-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0664-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0668-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0665-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0668-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0665-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0669-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0666-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 100% rename from patches/server/0669-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0666-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch diff --git a/patches/server/0670-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0667-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0670-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0667-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0671-Don-t-lookup-fluid-state-when-raytracing.patch b/patches/server/0668-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 60% rename from patches/server/0671-Don-t-lookup-fluid-state-when-raytracing.patch rename to patches/server/0668-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch index d931ef54fab6..20c27c4ea451 100644 --- a/patches/server/0671-Don-t-lookup-fluid-state-when-raytracing.patch +++ b/patches/server/0668-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch @@ -1,20 +1,26 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Fri, 28 Aug 2020 12:33:47 -0700 -Subject: [PATCH] Don't lookup fluid state when raytracing +Subject: [PATCH] Don't lookup fluid state when raytracing, skip air blocks Just use the iblockdata already retrieved, removes a getType call. +Also save approx. 5% for the raytrace call, as most (expensive) +raytracing tends to go through air and returning early is an +easy win. The remaining problems with this function +are mostly with the block getting itself. + diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index 24073d4d7c45d501c2baec2d8c8b49f60fb76e65..bd3eb39981c1d6028804f05c21eec6127389ca40 100644 +index 618d6a94d695a3bf114307f85f0f151ee24f1879..7df62a219d0bcffc793c1a8c55b6ed244fdeb199 100644 --- a/src/main/java/net/minecraft/world/level/BlockGetter.java +++ b/src/main/java/net/minecraft/world/level/BlockGetter.java -@@ -92,7 +92,7 @@ public interface BlockGetter extends LevelHeightAccessor { +@@ -92,7 +92,8 @@ public interface BlockGetter extends LevelHeightAccessor { return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo())); } - // Paper end + // Paper end - Prevent raytrace from loading chunks - FluidState fluid = this.getFluidState(blockposition); -+ FluidState fluid = iblockdata.getFluidState(); // Paper - don't need to go to world state again ++ if (iblockdata.isAir()) return null; // Paper - Perf: optimise air cases ++ FluidState fluid = iblockdata.getFluidState(); // Paper - Perf: don't need to go to world state again Vec3 vec3d = raytrace1.getFrom(); Vec3 vec3d1 = raytrace1.getTo(); VoxelShape voxelshape = raytrace1.getBlockShape(iblockdata, this, blockposition); diff --git a/patches/server/0672-Time-scoreboard-search.patch b/patches/server/0669-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0672-Time-scoreboard-search.patch rename to patches/server/0669-Time-scoreboard-search.patch diff --git a/patches/server/0673-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0670-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/0673-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/0670-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/0675-Execute-chunk-tasks-mid-tick.patch b/patches/server/0671-Execute-chunk-tasks-mid-tick.patch similarity index 100% rename from patches/server/0675-Execute-chunk-tasks-mid-tick.patch rename to patches/server/0671-Execute-chunk-tasks-mid-tick.patch diff --git a/patches/server/0676-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0672-Oprimise-map-impl-for-tracked-players.patch similarity index 100% rename from patches/server/0676-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0672-Oprimise-map-impl-for-tracked-players.patch diff --git a/patches/server/0677-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0673-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0677-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0673-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0674-Do-not-run-raytrace-logic-for-AIR.patch b/patches/server/0674-Do-not-run-raytrace-logic-for-AIR.patch deleted file mode 100644 index 75ece1bf8b77..000000000000 --- a/patches/server/0674-Do-not-run-raytrace-logic-for-AIR.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Spottedleaf -Date: Sun, 7 Mar 2021 13:15:04 -0800 -Subject: [PATCH] Do not run raytrace logic for AIR - -Saves approx. 5% for the raytrace call, as most (expensive) -raytracing tends to go through air and returning early is an -easy win. The remaining problems with this function -are mostly with the block getting itself. - -diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index bd3eb39981c1d6028804f05c21eec6127389ca40..799837c172a5f7856c78e6fe2595c575f3058a5e 100644 ---- a/src/main/java/net/minecraft/world/level/BlockGetter.java -+++ b/src/main/java/net/minecraft/world/level/BlockGetter.java -@@ -92,6 +92,7 @@ public interface BlockGetter extends LevelHeightAccessor { - return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo())); - } - // Paper end -+ if (iblockdata.isAir()) return null; // Paper - optimise air cases - FluidState fluid = iblockdata.getFluidState(); // Paper - don't need to go to world state again - Vec3 vec3d = raytrace1.getFrom(); - Vec3 vec3d1 = raytrace1.getTo(); diff --git a/patches/server/0678-Optimise-random-block-ticking.patch b/patches/server/0674-Optimise-random-block-ticking.patch similarity index 100% rename from patches/server/0678-Optimise-random-block-ticking.patch rename to patches/server/0674-Optimise-random-block-ticking.patch diff --git a/patches/server/0679-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0675-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/0679-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/0675-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/0680-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0676-Use-Velocity-compression-and-cipher-natives.patch similarity index 100% rename from patches/server/0680-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/0676-Use-Velocity-compression-and-cipher-natives.patch diff --git a/patches/server/0681-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0677-Detail-more-information-in-watchdog-dumps.patch similarity index 100% rename from patches/server/0681-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/0677-Detail-more-information-in-watchdog-dumps.patch diff --git a/patches/server/0682-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch b/patches/server/0678-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch similarity index 100% rename from patches/server/0682-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch rename to patches/server/0678-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch diff --git a/patches/server/0683-Distance-manager-tick-timings.patch b/patches/server/0679-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0683-Distance-manager-tick-timings.patch rename to patches/server/0679-Distance-manager-tick-timings.patch diff --git a/patches/server/0684-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0680-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 100% rename from patches/server/0684-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0680-Fix-merchant-inventory-not-closing-on-entity-removal.patch diff --git a/patches/server/0685-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0681-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0685-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0681-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0686-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0682-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 100% rename from patches/server/0686-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0682-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/server/0687-Add-packet-limiter-config.patch b/patches/server/0683-Add-packet-limiter-config.patch similarity index 100% rename from patches/server/0687-Add-packet-limiter-config.patch rename to patches/server/0683-Add-packet-limiter-config.patch diff --git a/patches/server/0688-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0684-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0688-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0684-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0689-Ensure-valid-vehicle-status.patch b/patches/server/0685-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/server/0689-Ensure-valid-vehicle-status.patch rename to patches/server/0685-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0690-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0686-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0690-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0686-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0691-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0687-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0691-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0687-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0692-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0688-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0692-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0688-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0693-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0689-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0693-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0689-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0694-Preserve-overstacked-loot.patch b/patches/server/0690-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0694-Preserve-overstacked-loot.patch rename to patches/server/0690-Preserve-overstacked-loot.patch diff --git a/patches/server/0695-Update-head-rotation-in-missing-places.patch b/patches/server/0691-Update-head-rotation-in-missing-places.patch similarity index 100% rename from patches/server/0695-Update-head-rotation-in-missing-places.patch rename to patches/server/0691-Update-head-rotation-in-missing-places.patch diff --git a/patches/server/0696-prevent-unintended-light-block-manipulation.patch b/patches/server/0692-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0696-prevent-unintended-light-block-manipulation.patch rename to patches/server/0692-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0697-Fix-CraftCriteria-defaults-map.patch b/patches/server/0693-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0697-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0693-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0698-Fix-upstreams-block-state-factories.patch b/patches/server/0694-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0698-Fix-upstreams-block-state-factories.patch rename to patches/server/0694-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0699-Configurable-feature-seeds.patch b/patches/server/0695-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0699-Configurable-feature-seeds.patch rename to patches/server/0695-Configurable-feature-seeds.patch diff --git a/patches/server/0700-Add-root-admin-user-detection.patch b/patches/server/0696-Add-root-admin-user-detection.patch similarity index 100% rename from patches/server/0700-Add-root-admin-user-detection.patch rename to patches/server/0696-Add-root-admin-user-detection.patch diff --git a/patches/server/0701-Always-allow-item-changing-in-Fireball.patch b/patches/server/0697-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0701-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0697-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0702-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0698-don-t-attempt-to-teleport-dead-entities.patch similarity index 100% rename from patches/server/0702-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0698-don-t-attempt-to-teleport-dead-entities.patch diff --git a/patches/server/0703-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0699-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/server/0703-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0699-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0704-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0700-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0704-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0700-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0705-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0701-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0705-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0701-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0706-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0702-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/server/0706-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0702-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0707-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0703-Hide-unnecessary-itemmeta-from-clients.patch similarity index 100% rename from patches/server/0707-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0703-Hide-unnecessary-itemmeta-from-clients.patch diff --git a/patches/server/0708-Fix-Spigot-growth-modifiers.patch b/patches/server/0704-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0708-Fix-Spigot-growth-modifiers.patch rename to patches/server/0704-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0709-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0705-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0709-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0705-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0710-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0706-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0710-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0706-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0711-Optimize-HashMapPalette.patch b/patches/server/0707-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0711-Optimize-HashMapPalette.patch rename to patches/server/0707-Optimize-HashMapPalette.patch diff --git a/patches/server/0712-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0708-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/server/0712-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0708-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/server/0713-Collision-optimisations.patch b/patches/server/0709-Collision-optimisations.patch similarity index 99% rename from patches/server/0713-Collision-optimisations.patch rename to patches/server/0709-Collision-optimisations.patch index 5a9ed29a4d6b..c2a0bb699df9 100644 --- a/patches/server/0713-Collision-optimisations.patch +++ b/patches/server/0709-Collision-optimisations.patch @@ -2201,10 +2201,10 @@ index 60164d8ff63bf536ddf46605a9dc7931ebc5b82a..7c8f5ae6bd83bd08403738dcd364b0af } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 159932e2807c8d51fbf141c2145a138a39ea8abe..41a5d509a398972db910d32babb70e9bd5fa41da 100644 +index f7588787769902506e317bdb052483c5dc377693..8f0d1e9e8a191a2049f3ad2d9b4ffdbd15c45d9f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -911,7 +911,7 @@ public abstract class PlayerList { +@@ -909,7 +909,7 @@ public abstract class PlayerList { entityplayer1.forceSetPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); worldserver1.getChunkSource().addRegionTicket(net.minecraft.server.level.TicketType.POST_TELEPORT, new net.minecraft.world.level.ChunkPos(location.getBlockX() >> 4, location.getBlockZ() >> 4), 1, entityplayer.getId()); // Paper diff --git a/patches/server/0714-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0710-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 100% rename from patches/server/0714-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/0710-Optimise-collision-checking-in-player-move-packet-ha.patch diff --git a/patches/server/0715-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0711-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0715-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0711-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0716-Add-more-Campfire-API.patch b/patches/server/0712-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0716-Add-more-Campfire-API.patch rename to patches/server/0712-Add-more-Campfire-API.patch diff --git a/patches/server/0717-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0717-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0718-Fix-tripwire-state-inconsistency.patch b/patches/server/0714-Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/server/0718-Fix-tripwire-state-inconsistency.patch rename to patches/server/0714-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/0719-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0715-Forward-CraftEntity-in-teleport-command.patch similarity index 100% rename from patches/server/0719-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0715-Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/server/0720-Improve-scoreboard-entries.patch b/patches/server/0716-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0720-Improve-scoreboard-entries.patch rename to patches/server/0716-Improve-scoreboard-entries.patch diff --git a/patches/server/0721-Entity-powdered-snow-API.patch b/patches/server/0717-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0721-Entity-powdered-snow-API.patch rename to patches/server/0717-Entity-powdered-snow-API.patch diff --git a/patches/server/0722-Add-API-for-item-entity-health.patch b/patches/server/0718-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0722-Add-API-for-item-entity-health.patch rename to patches/server/0718-Add-API-for-item-entity-health.patch diff --git a/patches/server/0723-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0719-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/0723-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/0719-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/0724-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0720-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0724-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0720-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0725-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0721-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0725-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0721-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0726-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0722-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0726-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0722-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0727-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0723-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0727-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0723-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0728-Fix-bees-aging-inside-hives.patch b/patches/server/0724-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0728-Fix-bees-aging-inside-hives.patch rename to patches/server/0724-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0729-Bucketable-API.patch b/patches/server/0725-Bucketable-API.patch similarity index 100% rename from patches/server/0729-Bucketable-API.patch rename to patches/server/0725-Bucketable-API.patch diff --git a/patches/server/0730-Validate-usernames.patch b/patches/server/0726-Validate-usernames.patch similarity index 97% rename from patches/server/0730-Validate-usernames.patch rename to patches/server/0726-Validate-usernames.patch index a3126a1fa56a..f683c7e5ed98 100644 --- a/patches/server/0730-Validate-usernames.patch +++ b/patches/server/0726-Validate-usernames.patch @@ -26,7 +26,7 @@ index 7a2f78ae76354e15afa5368c8fb2a571c15dc82d..6121a3879eeb1d13653e93da02ecdbbc GameProfile gameprofile = this.server.getSingleplayerProfile(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 41a5d509a398972db910d32babb70e9bd5fa41da..0bb3940da79733ccdfa75598b86ec0887a995933 100644 +index 8f0d1e9e8a191a2049f3ad2d9b4ffdbd15c45d9f..1038bdb761c4b413cb92e08aa7ef634b2e8237d4 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -679,7 +679,7 @@ public abstract class PlayerList { diff --git a/patches/server/0731-Make-water-animal-spawn-height-configurable.patch b/patches/server/0727-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0731-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0727-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0732-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/server/0732-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/server/0733-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0729-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/server/0733-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0729-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/server/0734-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0730-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/server/0734-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/server/0730-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/server/0735-Multiple-Entries-with-Scoreboards.patch b/patches/server/0731-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/server/0735-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0731-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/server/0736-Reset-placed-block-on-exception.patch b/patches/server/0732-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/server/0736-Reset-placed-block-on-exception.patch rename to patches/server/0732-Reset-placed-block-on-exception.patch diff --git a/patches/server/0737-Add-configurable-height-for-slime-spawn.patch b/patches/server/0733-Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/server/0737-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0733-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/server/0738-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0734-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/server/0738-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0734-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/server/0739-Multi-Block-Change-API-Implementation.patch b/patches/server/0735-Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/server/0739-Multi-Block-Change-API-Implementation.patch rename to patches/server/0735-Multi-Block-Change-API-Implementation.patch diff --git a/patches/server/0740-Fix-NotePlayEvent.patch b/patches/server/0736-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0740-Fix-NotePlayEvent.patch rename to patches/server/0736-Fix-NotePlayEvent.patch diff --git a/patches/server/0741-Freeze-Tick-Lock-API.patch b/patches/server/0737-Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/server/0741-Freeze-Tick-Lock-API.patch rename to patches/server/0737-Freeze-Tick-Lock-API.patch diff --git a/patches/server/0742-Dolphin-API.patch b/patches/server/0738-Dolphin-API.patch similarity index 100% rename from patches/server/0742-Dolphin-API.patch rename to patches/server/0738-Dolphin-API.patch diff --git a/patches/server/0743-More-PotionEffectType-API.patch b/patches/server/0739-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0743-More-PotionEffectType-API.patch rename to patches/server/0739-More-PotionEffectType-API.patch diff --git a/patches/server/0744-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0740-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0744-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0740-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0745-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0741-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/server/0745-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0741-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/server/0746-Add-missing-structure-set-seed-configs.patch b/patches/server/0742-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/server/0746-Add-missing-structure-set-seed-configs.patch rename to patches/server/0742-Add-missing-structure-set-seed-configs.patch diff --git a/patches/server/0747-Implement-regenerateChunk.patch b/patches/server/0743-Implement-regenerateChunk.patch similarity index 100% rename from patches/server/0747-Implement-regenerateChunk.patch rename to patches/server/0743-Implement-regenerateChunk.patch diff --git a/patches/server/0748-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0744-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0748-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0744-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0749-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0745-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/server/0749-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0745-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0750-Add-GameEvent-tags.patch b/patches/server/0746-Add-GameEvent-tags.patch similarity index 100% rename from patches/server/0750-Add-GameEvent-tags.patch rename to patches/server/0746-Add-GameEvent-tags.patch diff --git a/patches/server/0751-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0747-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/server/0751-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0747-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/server/0752-Furnace-RecipesUsed-API.patch b/patches/server/0748-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/server/0752-Furnace-RecipesUsed-API.patch rename to patches/server/0748-Furnace-RecipesUsed-API.patch diff --git a/patches/server/0753-Configurable-sculk-sensor-listener-range.patch b/patches/server/0749-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/server/0753-Configurable-sculk-sensor-listener-range.patch rename to patches/server/0749-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/server/0754-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0750-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/server/0754-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0750-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0755-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 100% rename from patches/server/0755-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch diff --git a/patches/server/0756-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0752-Put-world-into-worldlist-before-initing-the-world.patch similarity index 100% rename from patches/server/0756-Put-world-into-worldlist-before-initing-the-world.patch rename to patches/server/0752-Put-world-into-worldlist-before-initing-the-world.patch diff --git a/patches/server/0757-Fix-Entity-Position-Desync.patch b/patches/server/0753-Fix-Entity-Position-Desync.patch similarity index 100% rename from patches/server/0757-Fix-Entity-Position-Desync.patch rename to patches/server/0753-Fix-Entity-Position-Desync.patch diff --git a/patches/server/0758-Custom-Potion-Mixes.patch b/patches/server/0754-Custom-Potion-Mixes.patch similarity index 100% rename from patches/server/0758-Custom-Potion-Mixes.patch rename to patches/server/0754-Custom-Potion-Mixes.patch diff --git a/patches/server/0759-Force-close-world-loading-screen.patch b/patches/server/0755-Force-close-world-loading-screen.patch similarity index 95% rename from patches/server/0759-Force-close-world-loading-screen.patch rename to patches/server/0755-Force-close-world-loading-screen.patch index ef0f0822d8c1..e3165b65baac 100644 --- a/patches/server/0759-Force-close-world-loading-screen.patch +++ b/patches/server/0755-Force-close-world-loading-screen.patch @@ -10,7 +10,7 @@ so we do not need that. The client only needs the chunk it is currently in to be loaded to close the loading screen, so we just send an empty one. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0bb3940da79733ccdfa75598b86ec0887a995933..f6f845a1842cb7082e9e3132f91f4addcdaedd97 100644 +index 1038bdb761c4b413cb92e08aa7ef634b2e8237d4..e79748938395c79fcb6c2c164e35a191781b7c2f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -398,6 +398,16 @@ public abstract class PlayerList { diff --git a/patches/server/0760-Fix-falling-block-spawn-methods.patch b/patches/server/0756-Fix-falling-block-spawn-methods.patch similarity index 100% rename from patches/server/0760-Fix-falling-block-spawn-methods.patch rename to patches/server/0756-Fix-falling-block-spawn-methods.patch diff --git a/patches/server/0761-Expose-furnace-minecart-push-values.patch b/patches/server/0757-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0761-Expose-furnace-minecart-push-values.patch rename to patches/server/0757-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0762-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0758-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0762-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0758-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0763-More-Projectile-API.patch b/patches/server/0759-More-Projectile-API.patch similarity index 100% rename from patches/server/0763-More-Projectile-API.patch rename to patches/server/0759-More-Projectile-API.patch diff --git a/patches/server/0764-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0760-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0764-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0760-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0765-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 100% rename from patches/server/0765-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch diff --git a/patches/server/0766-Implement-getComputedBiome-API.patch b/patches/server/0762-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0766-Implement-getComputedBiome-API.patch rename to patches/server/0762-Implement-getComputedBiome-API.patch diff --git a/patches/server/0767-Make-some-itemstacks-nonnull.patch b/patches/server/0763-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0767-Make-some-itemstacks-nonnull.patch rename to patches/server/0763-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0768-Implement-enchantWithLevels-API.patch b/patches/server/0764-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0768-Implement-enchantWithLevels-API.patch rename to patches/server/0764-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0769-Fix-saving-in-unloadWorld.patch b/patches/server/0765-Fix-saving-in-unloadWorld.patch similarity index 100% rename from patches/server/0769-Fix-saving-in-unloadWorld.patch rename to patches/server/0765-Fix-saving-in-unloadWorld.patch diff --git a/patches/server/0770-Buffer-OOB-setBlock-calls.patch b/patches/server/0766-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0770-Buffer-OOB-setBlock-calls.patch rename to patches/server/0766-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0771-Add-TameableDeathMessageEvent.patch b/patches/server/0767-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0771-Add-TameableDeathMessageEvent.patch rename to patches/server/0767-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0772-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 99% rename from patches/server/0772-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch index c247f8a3e54b..34ba74f62d9d 100644 --- a/patches/server/0772-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -91,7 +91,7 @@ index 2beece01e1b2acc69eeb92810ce14db01a311f23..71bcd55d9d71fbd5bf3014c7e36d1456 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index decd59f7104ba26145e2150c3b8e5e0404d31885..bd5996eef2d946e9d7765b6b315bc5951158810e 100644 +index 6d29fef4de10c4b75be591046ff1f8e3c24bb9bb..30627f330536b5c89b52452981f0a960b61e4268 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -580,7 +580,7 @@ public class EnderMan extends Monster implements NeutralMob { diff --git a/patches/server/0773-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0769-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 100% rename from patches/server/0773-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0769-fix-player-loottables-running-when-mob-loot-gamerule.patch diff --git a/patches/server/0774-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0770-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 100% rename from patches/server/0774-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0770-Ensure-entity-passenger-world-matches-ridden-entity.patch diff --git a/patches/server/0775-Guard-against-invalid-entity-positions.patch b/patches/server/0771-Guard-against-invalid-entity-positions.patch similarity index 100% rename from patches/server/0775-Guard-against-invalid-entity-positions.patch rename to patches/server/0771-Guard-against-invalid-entity-positions.patch diff --git a/patches/server/0776-cache-resource-keys.patch b/patches/server/0772-cache-resource-keys.patch similarity index 100% rename from patches/server/0776-cache-resource-keys.patch rename to patches/server/0772-cache-resource-keys.patch diff --git a/patches/server/0777-Allow-to-change-the-podium-for-the-EnderDragon.patch b/patches/server/0773-Allow-to-change-the-podium-for-the-EnderDragon.patch similarity index 100% rename from patches/server/0777-Allow-to-change-the-podium-for-the-EnderDragon.patch rename to patches/server/0773-Allow-to-change-the-podium-for-the-EnderDragon.patch diff --git a/patches/server/0778-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0778-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0779-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0775-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 100% rename from patches/server/0779-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0775-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch diff --git a/patches/server/0780-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0776-Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/server/0780-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0776-Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/server/0781-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0777-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 87% rename from patches/server/0781-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0777-Use-username-instead-of-display-name-in-PlayerList-g.patch index 71c2ec984ef9..4044d5472628 100644 --- a/patches/server/0781-Use-username-instead-of-display-name-in-PlayerList-g.patch +++ b/patches/server/0777-Use-username-instead-of-display-name-in-PlayerList-g.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Use username instead of display name in diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f6f845a1842cb7082e9e3132f91f4addcdaedd97..6310d19a42f549fda7446569958019e8d75a0ca6 100644 +index e79748938395c79fcb6c2c164e35a191781b7c2f..cd527e612a8a84451f9ef1fa0fcc900e16f54da1 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1451,7 +1451,7 @@ public abstract class PlayerList { +@@ -1449,7 +1449,7 @@ public abstract class PlayerList { // CraftBukkit start public ServerStatsCounter getPlayerStats(ServerPlayer entityhuman) { ServerStatsCounter serverstatisticmanager = entityhuman.getStats(); diff --git a/patches/server/0782-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0778-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 100% rename from patches/server/0782-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0778-Pass-ServerLevel-for-gamerule-callbacks.patch diff --git a/patches/server/0783-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/server/0779-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch similarity index 100% rename from patches/server/0783-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch rename to patches/server/0779-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch diff --git a/patches/server/0784-WorldCreator-keepSpawnLoaded.patch b/patches/server/0780-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/server/0784-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0780-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/server/0785-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0781-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0785-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0781-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0786-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0782-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/server/0786-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0782-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/server/0787-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0783-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0787-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0783-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0788-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0784-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0788-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0784-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0789-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0785-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0789-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0785-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0790-Add-PlayerStopUsingItemEvent.patch b/patches/server/0786-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/server/0790-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0786-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/server/0791-Don-t-tick-markers.patch b/patches/server/0787-Don-t-tick-markers.patch similarity index 100% rename from patches/server/0791-Don-t-tick-markers.patch rename to patches/server/0787-Don-t-tick-markers.patch diff --git a/patches/server/0792-Expand-FallingBlock-API.patch b/patches/server/0788-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0792-Expand-FallingBlock-API.patch rename to patches/server/0788-Expand-FallingBlock-API.patch diff --git a/patches/server/0793-Do-not-accept-invalid-client-settings.patch b/patches/server/0789-Do-not-accept-invalid-client-settings.patch similarity index 100% rename from patches/server/0793-Do-not-accept-invalid-client-settings.patch rename to patches/server/0789-Do-not-accept-invalid-client-settings.patch diff --git a/patches/server/0794-Add-support-for-Proxy-Protocol.patch b/patches/server/0790-Add-support-for-Proxy-Protocol.patch similarity index 100% rename from patches/server/0794-Add-support-for-Proxy-Protocol.patch rename to patches/server/0790-Add-support-for-Proxy-Protocol.patch diff --git a/patches/server/0795-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0791-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0795-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0791-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0796-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0792-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0796-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0792-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0797-Sanitize-Sent-BlockEntity-NBT.patch b/patches/server/0793-Sanitize-Sent-BlockEntity-NBT.patch similarity index 100% rename from patches/server/0797-Sanitize-Sent-BlockEntity-NBT.patch rename to patches/server/0793-Sanitize-Sent-BlockEntity-NBT.patch diff --git a/patches/server/0798-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0794-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0798-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0794-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0799-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0795-Prevent-entity-loading-causing-async-lookups.patch similarity index 100% rename from patches/server/0799-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0795-Prevent-entity-loading-causing-async-lookups.patch diff --git a/patches/server/0800-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0796-Throw-exception-on-world-create-while-being-ticked.patch similarity index 100% rename from patches/server/0800-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0796-Throw-exception-on-world-create-while-being-ticked.patch diff --git a/patches/server/0801-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0797-Add-Alternate-Current-redstone-implementation.patch similarity index 100% rename from patches/server/0801-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/0797-Add-Alternate-Current-redstone-implementation.patch diff --git a/patches/server/0802-Dont-resent-entity-on-art-update.patch b/patches/server/0798-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/server/0802-Dont-resent-entity-on-art-update.patch rename to patches/server/0798-Dont-resent-entity-on-art-update.patch diff --git a/patches/server/0803-Add-WardenAngerChangeEvent.patch b/patches/server/0799-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/server/0803-Add-WardenAngerChangeEvent.patch rename to patches/server/0799-Add-WardenAngerChangeEvent.patch diff --git a/patches/server/0804-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0800-Add-option-for-strict-advancement-dimension-checks.patch similarity index 100% rename from patches/server/0804-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0800-Add-option-for-strict-advancement-dimension-checks.patch diff --git a/patches/server/0805-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0801-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/server/0805-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0801-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/0806-Nameable-Banner-API.patch b/patches/server/0802-Nameable-Banner-API.patch similarity index 100% rename from patches/server/0806-Nameable-Banner-API.patch rename to patches/server/0802-Nameable-Banner-API.patch diff --git a/patches/server/0807-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0803-Don-t-broadcast-messages-to-command-blocks.patch similarity index 100% rename from patches/server/0807-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0803-Don-t-broadcast-messages-to-command-blocks.patch diff --git a/patches/server/0808-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0804-Prevent-empty-items-from-being-added-to-world.patch similarity index 100% rename from patches/server/0808-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0804-Prevent-empty-items-from-being-added-to-world.patch diff --git a/patches/server/0809-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0805-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/server/0809-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0805-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/server/0810-Add-Player-getFishHook.patch b/patches/server/0806-Add-Player-getFishHook.patch similarity index 100% rename from patches/server/0810-Add-Player-getFishHook.patch rename to patches/server/0806-Add-Player-getFishHook.patch diff --git a/patches/server/0811-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0807-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/server/0811-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0807-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/server/0812-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0808-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 100% rename from patches/server/0812-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0808-Add-various-missing-EntityDropItemEvent-calls.patch diff --git a/patches/server/0813-Fix-Bee-flower-NPE.patch b/patches/server/0809-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/server/0813-Fix-Bee-flower-NPE.patch rename to patches/server/0809-Fix-Bee-flower-NPE.patch diff --git a/patches/server/0814-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0810-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 100% rename from patches/server/0814-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0810-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch diff --git a/patches/server/0815-More-Teleport-API.patch b/patches/server/0811-More-Teleport-API.patch similarity index 100% rename from patches/server/0815-More-Teleport-API.patch rename to patches/server/0811-More-Teleport-API.patch diff --git a/patches/server/0816-Add-EntityPortalReadyEvent.patch b/patches/server/0812-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/server/0816-Add-EntityPortalReadyEvent.patch rename to patches/server/0812-Add-EntityPortalReadyEvent.patch diff --git a/patches/server/0817-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0813-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/server/0817-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0813-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/server/0818-Send-block-entities-after-destroy-prediction.patch b/patches/server/0814-Send-block-entities-after-destroy-prediction.patch similarity index 100% rename from patches/server/0818-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0814-Send-block-entities-after-destroy-prediction.patch diff --git a/patches/server/0819-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0815-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 100% rename from patches/server/0819-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0815-Warn-on-plugins-accessing-faraway-chunks.patch diff --git a/patches/server/0820-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0816-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/server/0820-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0816-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/server/0821-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0817-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0821-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0817-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0822-Collision-API.patch b/patches/server/0818-Collision-API.patch similarity index 100% rename from patches/server/0822-Collision-API.patch rename to patches/server/0818-Collision-API.patch diff --git a/patches/server/0823-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0819-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 100% rename from patches/server/0823-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0819-Fix-suggest-command-message-for-brigadier-syntax-exc.patch diff --git a/patches/server/0824-Block-Ticking-API.patch b/patches/server/0820-Block-Ticking-API.patch similarity index 100% rename from patches/server/0824-Block-Ticking-API.patch rename to patches/server/0820-Block-Ticking-API.patch diff --git a/patches/server/0825-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0821-Add-Velocity-IP-Forwarding-Support.patch similarity index 100% rename from patches/server/0825-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0821-Add-Velocity-IP-Forwarding-Support.patch diff --git a/patches/server/0826-Add-NamespacedKey-biome-methods.patch b/patches/server/0822-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0826-Add-NamespacedKey-biome-methods.patch rename to patches/server/0822-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0827-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0823-Fix-plugin-loggers-on-server-shutdown.patch similarity index 100% rename from patches/server/0827-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0823-Fix-plugin-loggers-on-server-shutdown.patch diff --git a/patches/server/0828-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0824-Stop-large-look-changes-from-crashing-the-server.patch similarity index 100% rename from patches/server/0828-Stop-large-look-changes-from-crashing-the-server.patch rename to patches/server/0824-Stop-large-look-changes-from-crashing-the-server.patch diff --git a/patches/server/0829-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0825-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0829-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0825-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0830-Missing-eating-regain-reason.patch b/patches/server/0826-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0830-Missing-eating-regain-reason.patch rename to patches/server/0826-Missing-eating-regain-reason.patch diff --git a/patches/server/0831-Missing-effect-cause.patch b/patches/server/0827-Missing-effect-cause.patch similarity index 100% rename from patches/server/0831-Missing-effect-cause.patch rename to patches/server/0827-Missing-effect-cause.patch diff --git a/patches/server/0832-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0828-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0832-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0828-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0833-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0829-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0833-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0829-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0834-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0830-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0834-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0830-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0835-Configurable-chat-thread-limit.patch b/patches/server/0831-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0835-Configurable-chat-thread-limit.patch rename to patches/server/0831-Configurable-chat-thread-limit.patch diff --git a/patches/server/0836-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0832-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0836-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0832-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0837-fix-Jigsaw-block-kicking-user.patch b/patches/server/0833-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0837-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0833-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0838-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0834-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0838-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0834-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0839-Add-getDrops-to-BlockState.patch b/patches/server/0835-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0839-Add-getDrops-to-BlockState.patch rename to patches/server/0835-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0840-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch similarity index 95% rename from patches/server/0840-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch index fd7ad3339c9c..06879a4865d9 100644 --- a/patches/server/0840-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch @@ -41,11 +41,9 @@ https://bugs.mojang.com/browse/MC-263999 Fix mobs breaking doors not spawning block break particles https://bugs.mojang.com/browse/MC-210802 - by: BillyGalbreath Fixes sheep eating blocks outside of ticking range https://bugs.mojang.com/browse/MC-123848 - by: BillyGalbreath Fixes item frames dropping items above when pointing down https://bugs.mojang.com/browse/MC-84789 @@ -70,6 +68,7 @@ https://bugs.mojang.com/browse/MC-200092 public net/minecraft/world/entity/Mob leashInfoTag Co-authored-by: William Blake Galbreath +Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java index 9f220c99d7374ab3d9db222346694342d3e926c1..d9077127757886e5d5e8d63a46fe27f2bfba1420 100644 @@ -170,6 +169,23 @@ index 4e1ed252bf400ec991f95b02984f01a9689f2989..805c9b9b0e89002b97e1e11e1e6e2435 this.player.onUpdateAbilities(); this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); +diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java +index cd527e612a8a84451f9ef1fa0fcc900e16f54da1..e018cf9ca617adec197e7fa8e116287633002e62 100644 +--- a/src/main/java/net/minecraft/server/players/PlayerList.java ++++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -711,8 +711,10 @@ public abstract class PlayerList { + Player player = entity.getBukkitEntity(); + PlayerLoginEvent event = new PlayerLoginEvent(player, loginlistener.connection.hostname, ((java.net.InetSocketAddress) socketaddress).getAddress(), ((java.net.InetSocketAddress) loginlistener.connection.channel.remoteAddress()).getAddress()); + +- if (this.getBans().isBanned(gameprofile) && !this.getBans().get(gameprofile).hasExpired()) { +- UserBanListEntry gameprofilebanentry = (UserBanListEntry) this.bans.get(gameprofile); ++ // Paper start - Fix MC-158900 ++ UserBanListEntry gameprofilebanentry; ++ if (getBans().isBanned(gameprofile) && (gameprofilebanentry = getBans().get(gameprofile)) != null) { ++ // Paper end - Fix MC-158900 + + ichatmutablecomponent = Component.translatable("multiplayer.disconnect.banned.reason", gameprofilebanentry.getReason()); + if (gameprofilebanentry.getExpires() != null) { diff --git a/src/main/java/net/minecraft/world/entity/Saddleable.java b/src/main/java/net/minecraft/world/entity/Saddleable.java index effe4c4fb37fe13aece70cdef4966047d4719af9..7152674d3f3fb98198585cb5ece2bb88877345f9 100644 --- a/src/main/java/net/minecraft/world/entity/Saddleable.java diff --git a/patches/server/0841-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 100% rename from patches/server/0841-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch diff --git a/patches/server/0842-Fix-custom-piglin-loved-items.patch b/patches/server/0838-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0842-Fix-custom-piglin-loved-items.patch rename to patches/server/0838-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0843-EntityPickupItemEvent-fixes.patch b/patches/server/0839-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0843-EntityPickupItemEvent-fixes.patch rename to patches/server/0839-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0844-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 100% rename from patches/server/0844-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch diff --git a/patches/server/0845-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/server/0845-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/server/0846-Elder-Guardian-appearance-API.patch b/patches/server/0842-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/server/0846-Elder-Guardian-appearance-API.patch rename to patches/server/0842-Elder-Guardian-appearance-API.patch diff --git a/patches/server/0847-Allow-changing-bed-s-occupied-property.patch b/patches/server/0843-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0847-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0843-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0848-Add-entity-knockback-API.patch b/patches/server/0844-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0848-Add-entity-knockback-API.patch rename to patches/server/0844-Add-entity-knockback-API.patch diff --git a/patches/server/0849-Detect-headless-JREs.patch b/patches/server/0845-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0849-Detect-headless-JREs.patch rename to patches/server/0845-Detect-headless-JREs.patch diff --git a/patches/server/0850-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0846-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0850-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0846-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0851-optimize-dirt-and-snow-spreading.patch b/patches/server/0847-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/0851-optimize-dirt-and-snow-spreading.patch rename to patches/server/0847-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/0852-Add-EntityToggleSitEvent.patch b/patches/server/0848-Add-EntityToggleSitEvent.patch similarity index 96% rename from patches/server/0852-Add-EntityToggleSitEvent.patch rename to patches/server/0848-Add-EntityToggleSitEvent.patch index 3b46feb98725..7b27f726cdcb 100644 --- a/patches/server/0852-Add-EntityToggleSitEvent.patch +++ b/patches/server/0848-Add-EntityToggleSitEvent.patch @@ -31,7 +31,7 @@ index 1999cda5876bb12283d8c91a1b3e737c0d27bc38..4d32db04040014dba8935d1cb601e0da if (inSittingPose) { this.entityData.set(DATA_FLAGS_ID, (byte)(b | 1)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 96799179b0dd1886f0cdc386f04e152a19b3337d..a1c28f9590908df5dd9d850dd3f0cadbe83b05c6 100644 +index 96799179b0dd1886f0cdc386f04e152a19b3337d..3d771b137dc29579614aa4c15d12bd456cdc608a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -433,7 +433,7 @@ public class Fox extends Animal implements VariantHolder { @@ -47,12 +47,12 @@ index 96799179b0dd1886f0cdc386f04e152a19b3337d..a1c28f9590908df5dd9d850dd3f0cadb } public void setSitting(boolean sitting) { -+ // Paper start ++ // Paper start - Add EntityToggleSitEvent + this.setSitting(sitting, true); + } + public void setSitting(boolean sitting, boolean fireEvent) { + if (fireEvent && !new io.papermc.paper.event.entity.EntityToggleSitEvent(this.getBukkitEntity(), sitting).callEvent()) return; -+ // Paper end - Add EntityToggleSitEvent ++ // Paper end - Add EntityToggleSitEvent this.setFlag(1, sitting); } diff --git a/patches/server/0853-Add-fire-tick-delay-option.patch b/patches/server/0849-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0853-Add-fire-tick-delay-option.patch rename to patches/server/0849-Add-fire-tick-delay-option.patch diff --git a/patches/server/0854-Add-Moving-Piston-API.patch b/patches/server/0850-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0854-Add-Moving-Piston-API.patch rename to patches/server/0850-Add-Moving-Piston-API.patch diff --git a/patches/server/0855-Ignore-impossible-spawn-tick.patch b/patches/server/0851-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0855-Ignore-impossible-spawn-tick.patch rename to patches/server/0851-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0856-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0852-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 88% rename from patches/server/0856-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0852-Track-projectile-source-for-fireworks-from-dispenser.patch index 68209c4b2861..4cb8a0af3b4e 100644 --- a/patches/server/0856-Track-projectile-source-for-fireworks-from-dispenser.patch +++ b/patches/server/0852-Track-projectile-source-for-fireworks-from-dispenser.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Track projectile source for fireworks from dispensers diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index d9077127757886e5d5e8d63a46fe27f2bfba1420..764ba041a6be42202d0bcda07ef194ca6909f9d9 100644 +index d9077127757886e5d5e8d63a46fe27f2bfba1420..da3081ff803431288843deda87f90165e2bc73f9 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -517,6 +517,7 @@ public interface DispenseItemBehavior { itemstack1 = CraftItemStack.asNMSCopy(event.getItem()); Vec3 vec3d = DispenseItemBehavior.getEntityPokingOutOfBlockPos(pointer, EntityType.FIREWORK_ROCKET, enumdirection); FireworkRocketEntity entityfireworks = new FireworkRocketEntity(pointer.level(), itemstack1, vec3d.x(), vec3d.y(), vec3d.z(), true); // Paper - GH-2871 - fix last firework in stack having no effects when dispensed -+ entityfireworks.projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource(pointer.blockEntity()); // PaperTrack projectile source for fireworks from dispensers ++ entityfireworks.projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource(pointer.blockEntity()); // Paper - Track projectile source for fireworks from dispensers entityfireworks.shoot((double) enumdirection.getStepX(), (double) enumdirection.getStepY(), (double) enumdirection.getStepZ(), 0.5F, 1.0F); pointer.level().addFreshEntity(entityfireworks); diff --git a/patches/server/0857-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0853-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0857-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0853-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0858-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 100% rename from patches/server/0858-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch diff --git a/patches/server/0860-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0855-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/server/0860-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0855-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/server/0861-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0856-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0861-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0856-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0862-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0857-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0862-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0857-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0863-Add-Player-Warden-Warning-API.patch b/patches/server/0858-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/server/0863-Add-Player-Warden-Warning-API.patch rename to patches/server/0858-Add-Player-Warden-Warning-API.patch diff --git a/patches/server/0864-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0859-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0864-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0859-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0859-Prevent-compass-from-loading-chunks.patch b/patches/server/0859-Prevent-compass-from-loading-chunks.patch deleted file mode 100644 index fb597663ebf9..000000000000 --- a/patches/server/0859-Prevent-compass-from-loading-chunks.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Shane Freeder -Date: Sun, 6 Nov 2022 22:35:51 +0000 -Subject: [PATCH] Prevent compass from loading chunks - - -diff --git a/src/main/java/net/minecraft/world/item/CompassItem.java b/src/main/java/net/minecraft/world/item/CompassItem.java -index 5d3047a420efe59063e90bfc7b42392127e0ad7d..b3c67c954acf7e518d89d6af65a55d6f22dac059 100644 ---- a/src/main/java/net/minecraft/world/item/CompassItem.java -+++ b/src/main/java/net/minecraft/world/item/CompassItem.java -@@ -77,7 +77,7 @@ public class CompassItem extends Item implements Vanishable { - Optional> optional = getLodestoneDimension(compoundTag); - if (optional.isPresent() && optional.get() == world.dimension() && compoundTag.contains("LodestonePos")) { - BlockPos blockPos = NbtUtils.readBlockPos(compoundTag.getCompound("LodestonePos")); -- if (!world.isInWorldBounds(blockPos) || !((ServerLevel)world).getPoiManager().existsAtPosition(PoiTypes.LODESTONE, blockPos)) { -+ if (!world.isInWorldBounds(blockPos) || (world.hasChunkAt(blockPos) && !((ServerLevel)world).getPoiManager().existsAtPosition(PoiTypes.LODESTONE, blockPos))) { // Paper - Prevent compass from loading chunks - compoundTag.remove("LodestonePos"); - } - } diff --git a/patches/server/0865-Add-paper-dumplisteners-command.patch b/patches/server/0860-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0865-Add-paper-dumplisteners-command.patch rename to patches/server/0860-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0866-check-global-player-list-where-appropriate.patch b/patches/server/0861-check-global-player-list-where-appropriate.patch similarity index 100% rename from patches/server/0866-check-global-player-list-where-appropriate.patch rename to patches/server/0861-check-global-player-list-where-appropriate.patch diff --git a/patches/server/0867-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0862-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0867-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0862-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0868-ItemStack-damage-API.patch b/patches/server/0863-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0868-ItemStack-damage-API.patch rename to patches/server/0863-ItemStack-damage-API.patch diff --git a/patches/server/0869-Friction-API.patch b/patches/server/0864-Friction-API.patch similarity index 100% rename from patches/server/0869-Friction-API.patch rename to patches/server/0864-Friction-API.patch diff --git a/patches/server/0870-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0865-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0870-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0865-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0871-Fix-player-kick-on-shutdown.patch b/patches/server/0866-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0871-Fix-player-kick-on-shutdown.patch rename to patches/server/0866-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0872-Sync-offhand-slot-in-menus.patch b/patches/server/0867-Sync-offhand-slot-in-menus.patch similarity index 100% rename from patches/server/0872-Sync-offhand-slot-in-menus.patch rename to patches/server/0867-Sync-offhand-slot-in-menus.patch diff --git a/patches/server/0873-Player-Entity-Tracking-Events.patch b/patches/server/0868-Player-Entity-Tracking-Events.patch similarity index 100% rename from patches/server/0873-Player-Entity-Tracking-Events.patch rename to patches/server/0868-Player-Entity-Tracking-Events.patch diff --git a/patches/server/0874-Limit-pet-look-distance.patch b/patches/server/0869-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0874-Limit-pet-look-distance.patch rename to patches/server/0869-Limit-pet-look-distance.patch diff --git a/patches/server/0875-Properly-resend-entities.patch b/patches/server/0870-Properly-resend-entities.patch similarity index 99% rename from patches/server/0875-Properly-resend-entities.patch rename to patches/server/0870-Properly-resend-entities.patch index d9b427e4282b..1dc13b7d4d65 100644 --- a/patches/server/0875-Properly-resend-entities.patch +++ b/patches/server/0870-Properly-resend-entities.patch @@ -98,7 +98,7 @@ index 3f60f33c43dfcc4ea99a80c66a70222b2ea2f4a6..2fdc9fcc8f88d78fd4b06bfae947c5cb } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6310d19a42f549fda7446569958019e8d75a0ca6..85ed7d2134902e2b3455efdb0defbbc8627933bf 100644 +index e018cf9ca617adec197e7fa8e116287633002e62..70a1e695a037833c46749a3371ad866b1971037d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -376,7 +376,7 @@ public abstract class PlayerList { diff --git a/patches/server/0876-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0871-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0876-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0871-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0877-fix-Instruments.patch b/patches/server/0872-fix-Instruments.patch similarity index 100% rename from patches/server/0877-fix-Instruments.patch rename to patches/server/0872-fix-Instruments.patch diff --git a/patches/server/0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0873-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 87% rename from patches/server/0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0873-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch index 061b9b4433bf..097481e10fd1 100644 --- a/patches/server/0878-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch +++ b/patches/server/0873-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch @@ -52,23 +52,22 @@ index d91a82428a435a65bc55ad466ccebe91e0d905e0..88d7973e83ee828fa71d95924a913493 } diff --git a/src/main/java/net/minecraft/world/level/material/FluidState.java b/src/main/java/net/minecraft/world/level/material/FluidState.java -index ea2a04e5298832177fac93568656ac45784d5eb6..b4d4082c5488e7cb48166c8bf4443b4ffbbaa761 100644 +index ea2a04e5298832177fac93568656ac45784d5eb6..c5d1e4e293d15831f9b550b9964dc190763956b6 100644 --- a/src/main/java/net/minecraft/world/level/material/FluidState.java +++ b/src/main/java/net/minecraft/world/level/material/FluidState.java -@@ -26,8 +26,12 @@ public final class FluidState extends StateHolder { +@@ -25,9 +25,11 @@ public final class FluidState extends StateHolder { + public static final Codec CODEC = codec(BuiltInRegistries.FLUID.byNameCodec(), Fluid::defaultFluidState).stable(); public static final int AMOUNT_MAX = 9; public static final int AMOUNT_FULL = 8; ++ protected final boolean isEmpty; // Paper - Perf: moved from isEmpty() -+ // Paper start - Perf: moved from isEmpty() -+ protected final boolean isEmpty; -+ // Paper end - Perf: moved from isEmpty() public FluidState(Fluid fluid, ImmutableMap, Comparable> propertiesMap, MapCodec codec) { super(fluid, propertiesMap, codec); + this.isEmpty = fluid.isEmpty(); // Paper - Perf: moved from isEmpty() } public Fluid getType() { -@@ -43,7 +47,7 @@ public final class FluidState extends StateHolder { +@@ -43,7 +45,7 @@ public final class FluidState extends StateHolder { } public boolean isEmpty() { diff --git a/patches/server/0879-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0874-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 99% rename from patches/server/0879-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0874-Fix-inconsistencies-in-dispense-events-regarding-sta.patch index 964bd1a9df87..f07dc4776648 100644 --- a/patches/server/0879-Fix-inconsistencies-in-dispense-events-regarding-sta.patch +++ b/patches/server/0874-Fix-inconsistencies-in-dispense-events-regarding-sta.patch @@ -86,7 +86,7 @@ index 90e1914599b43c8bf813596b3b428d8be3bac1b5..6df0db8b4cdab23494ea34236949ece4 } diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index b65d0c2ac5b4f7eb3da85b693c354463c6f49694..415d387f8cfa3ae99b1c809233c86c18b76ad1e2 100644 +index da3081ff803431288843deda87f90165e2bc73f9..21bba99bf1f06a95cc6834de2886b03ebeb9562f 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -217,7 +217,7 @@ public interface DispenseItemBehavior { diff --git a/patches/server/0880-Add-BlockLockCheckEvent.patch b/patches/server/0875-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0880-Add-BlockLockCheckEvent.patch rename to patches/server/0875-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0881-Add-Sneaking-API-for-Entities.patch b/patches/server/0876-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/server/0881-Add-Sneaking-API-for-Entities.patch rename to patches/server/0876-Add-Sneaking-API-for-Entities.patch diff --git a/patches/server/0882-Improve-logging-and-errors.patch b/patches/server/0877-Improve-logging-and-errors.patch similarity index 100% rename from patches/server/0882-Improve-logging-and-errors.patch rename to patches/server/0877-Improve-logging-and-errors.patch diff --git a/patches/server/0883-Improve-PortalEvents.patch b/patches/server/0878-Improve-PortalEvents.patch similarity index 93% rename from patches/server/0883-Improve-PortalEvents.patch rename to patches/server/0878-Improve-PortalEvents.patch index 333ac5fa1125..871198c9006b 100644 --- a/patches/server/0883-Improve-PortalEvents.patch +++ b/patches/server/0878-Improve-PortalEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5968a555ce7cc4681f5c096bda7d007005e2a8bf..04ca1f84c68a73addd2177256268bb9b444f72da 100644 +index 1a44341de58519dff830afce72707c286ac51364..68730383d7ad770cf971e3ae27cff329580b9ea8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3765,7 +3765,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0884-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0879-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0884-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0879-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0885-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0880-Add-missing-SpigotConfig-logCommands-check.patch similarity index 100% rename from patches/server/0885-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0880-Add-missing-SpigotConfig-logCommands-check.patch diff --git a/patches/server/0886-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0881-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0886-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0881-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0887-Flying-Fall-Damage.patch b/patches/server/0882-Flying-Fall-Damage.patch similarity index 100% rename from patches/server/0887-Flying-Fall-Damage.patch rename to patches/server/0882-Flying-Fall-Damage.patch diff --git a/patches/server/0888-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0883-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/server/0888-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0883-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/server/0889-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 91% rename from patches/server/0889-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index a0328af938d6..b47d9f45509d 100644 --- a/patches/server/0889-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 04ca1f84c68a73addd2177256268bb9b444f72da..2d8223ff9e3f51e43946cfcc1bd638235c48ec11 100644 +index 68730383d7ad770cf971e3ae27cff329580b9ea8..25f611ea672ed8ea112a2e31444d0dbdb59f9945 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1162,7 +1162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0890-config-for-disabling-entity-tag-tags.patch b/patches/server/0885-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0890-config-for-disabling-entity-tag-tags.patch rename to patches/server/0885-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0891-Use-single-player-info-update-packet-on-join.patch b/patches/server/0886-Use-single-player-info-update-packet-on-join.patch similarity index 94% rename from patches/server/0891-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0886-Use-single-player-info-update-packet-on-join.patch index 79d2c8ce3280..2fd99efd5783 100644 --- a/patches/server/0891-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0886-Use-single-player-info-update-packet-on-join.patch @@ -18,7 +18,7 @@ index 6d8d07f30cc18357b2b3a6aa50c54deb1c52f2b7..19c1c398ca8e91faa23e8dc3736cd094 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 85ed7d2134902e2b3455efdb0defbbc8627933bf..a34377fb8774e3c43db9e460c88239e2a5b41f5d 100644 +index 70a1e695a037833c46749a3371ad866b1971037d..64635241bf3c1dd1e2f7e6756b34d497875aa6fa 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { @@ -39,7 +39,7 @@ index 85ed7d2134902e2b3455efdb0defbbc8627933bf..a34377fb8774e3c43db9e460c88239e2 } - player.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(entityplayer1))); -+ onlinePlayers.add(entityplayer1); // Pape - Use single player info update packet on join ++ onlinePlayers.add(entityplayer1); // Paper - Use single player info update packet on join } + // Paper start - Use single player info update packet on join + if (!onlinePlayers.isEmpty()) { diff --git a/patches/server/0892-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0887-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 100% rename from patches/server/0892-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0887-Correctly-shrink-items-during-EntityResurrectEvent.patch diff --git a/patches/server/0893-Win-Screen-API.patch b/patches/server/0888-Win-Screen-API.patch similarity index 93% rename from patches/server/0893-Win-Screen-API.patch rename to patches/server/0888-Win-Screen-API.patch index a1212185b000..3ebb9a80e9bf 100644 --- a/patches/server/0893-Win-Screen-API.patch +++ b/patches/server/0888-Win-Screen-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API public net.minecraft.server.level.ServerPlayer seenCredits diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b8b23105d37ac2d461d87d0c8e3c83c6fd09c960..b1d12c30dd23e092531c0d4d3af367262ccb5402 100644 +index a917c616043f7e17144a52ff4cfe0cc0217087b8..351f6667b76cd4943159fc9c130ff8595f7e3a6b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1226,6 +1226,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0894-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0889-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0894-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0889-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0895-Fix-force-opening-enchantment-tables.patch b/patches/server/0890-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0895-Fix-force-opening-enchantment-tables.patch rename to patches/server/0890-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0896-Add-Entity-Body-Yaw-API.patch b/patches/server/0891-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0896-Add-Entity-Body-Yaw-API.patch rename to patches/server/0891-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0897-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0892-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0897-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0892-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0898-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0893-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 100% rename from patches/server/0898-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0893-Update-the-flag-when-a-captured-block-state-is-outda.patch diff --git a/patches/server/0899-Add-EntityFertilizeEggEvent.patch b/patches/server/0894-Add-EntityFertilizeEggEvent.patch similarity index 98% rename from patches/server/0899-Add-EntityFertilizeEggEvent.patch rename to patches/server/0894-Add-EntityFertilizeEggEvent.patch index e24d72836134..bef1395d19fe 100644 --- a/patches/server/0899-Add-EntityFertilizeEggEvent.patch +++ b/patches/server/0894-Add-EntityFertilizeEggEvent.patch @@ -69,7 +69,7 @@ index 36b3945832733b5ad66d25aa3a31335234d2acff..47a5125e44cea1ece84657cdb874807f this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F); } // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ef7d6f898c2c94d0697e38230564e110948b0460..dfab64b21eedfbdd129c881b7c862ad962c78f3d 100644 +index f5a1ff50e8943d7ea75f8b8534b17f7788d094e2..5b95d95c89b962315dd07afb2a426c01c77fc4ab 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -2092,4 +2092,29 @@ public class CraftEventFactory { diff --git a/patches/server/0900-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0895-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0900-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0895-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0901-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0896-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0901-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0896-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0902-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0897-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0902-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0897-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0903-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0898-Fix-advancement-triggers-for-entity-damage.patch similarity index 100% rename from patches/server/0903-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0898-Fix-advancement-triggers-for-entity-damage.patch diff --git a/patches/server/0904-Fix-text-display-error-on-spawn.patch b/patches/server/0899-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0904-Fix-text-display-error-on-spawn.patch rename to patches/server/0899-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0905-Fix-inventories-returning-null-Locations.patch b/patches/server/0900-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0905-Fix-inventories-returning-null-Locations.patch rename to patches/server/0900-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0906-Add-Shearable-API.patch b/patches/server/0901-Add-Shearable-API.patch similarity index 100% rename from patches/server/0906-Add-Shearable-API.patch rename to patches/server/0901-Add-Shearable-API.patch diff --git a/patches/server/0907-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0902-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0907-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0902-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0908-Optimize-Hoppers.patch b/patches/server/0903-Optimize-Hoppers.patch similarity index 100% rename from patches/server/0908-Optimize-Hoppers.patch rename to patches/server/0903-Optimize-Hoppers.patch diff --git a/patches/server/0909-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0904-Fix-beehives-generating-from-using-bonemeal.patch similarity index 100% rename from patches/server/0909-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0904-Fix-beehives-generating-from-using-bonemeal.patch diff --git a/patches/server/0910-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0905-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0910-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0905-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0911-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0906-Treat-sequence-violations-like-they-should-be.patch similarity index 92% rename from patches/server/0911-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0906-Treat-sequence-violations-like-they-should-be.patch index 1300b8f449d2..f0ef8afa4a04 100644 --- a/patches/server/0911-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0906-Treat-sequence-violations-like-they-should-be.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ab5b354b0fb42535e8d176a219876e23f08c1f3d..b55af3bceba3d78110bc9eac6ea136b43d90cd5d 100644 +index 19c1c398ca8e91faa23e8dc3736cd0945a540419..8a907853a81480f2b1bcb9d82b62d9d595dcbd35 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2043,6 +2043,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0912-remove-duplicate-animate-packet-for-records.patch b/patches/server/0907-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0912-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0907-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0913-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0908-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 97% rename from patches/server/0913-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0908-Prevent-causing-expired-keys-from-impacting-new-join.patch index d79d1c3697a0..be1254f5fdd2 100644 --- a/patches/server/0913-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0908-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -24,7 +24,7 @@ index 0e54e8faa48751a651b953bec72543a94edf74bc..d43106eb89b14667e85cd6e8fa047d64 UPDATE_GAME_MODE((serialized, buf) -> { serialized.gameMode = GameType.byId(buf.readVarInt()); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b55af3bceba3d78110bc9eac6ea136b43d90cd5d..48bae46261f592923c8c6f1d56c92ce6a121f1b8 100644 +index 8a907853a81480f2b1bcb9d82b62d9d595dcbd35..caa9fd305c90fe84b2eebca0f244c818800021ca 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -287,6 +287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 91% rename from patches/server/0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index 05d48a9e06b5..012562f39ddb 100644 --- a/patches/server/0914-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4e8e1f4562b3edb7041e299b6719e965df975636..dae52be48e9789db2fbbff699f3e0c44086c864f 100644 +index 0bf8cf88a3385f21ffc00096a4af5ce76070614e..eff2a7e25a7b99613c1e208058c316f1e3586995 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1724,6 +1724,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0915-Use-array-for-gamerule-storage.patch b/patches/server/0910-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0915-Use-array-for-gamerule-storage.patch rename to patches/server/0910-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0916-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0911-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0916-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0911-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0917-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0912-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0917-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0912-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0918-Add-Mob-Experience-reward-API.patch b/patches/server/0913-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0918-Add-Mob-Experience-reward-API.patch rename to patches/server/0913-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0919-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0914-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0919-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0914-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0920-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0915-Fix-DamageCause-for-Falling-Blocks.patch similarity index 92% rename from patches/server/0920-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0915-Fix-DamageCause-for-Falling-Blocks.patch index 7a7127e5a307..0bfd342e6f54 100644 --- a/patches/server/0920-Fix-DamageCause-for-Falling-Blocks.patch +++ b/patches/server/0915-Fix-DamageCause-for-Falling-Blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index dfab64b21eedfbdd129c881b7c862ad962c78f3d..c4745b8151f41ab55abe01ac30a5c5e54f1fbf7e 100644 +index 5b95d95c89b962315dd07afb2a426c01c77fc4ab..afa9b967aec163eea0359910bb682395401feaa4 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1085,6 +1085,11 @@ public class CraftEventFactory { diff --git a/patches/server/0921-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0916-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0921-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0916-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0922-More-accurate-isInOpenWater-impl.patch b/patches/server/0917-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0922-More-accurate-isInOpenWater-impl.patch rename to patches/server/0917-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0923-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0918-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0923-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0918-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0924-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0919-Optimise-recalcBlockCounts-for-empty-sections.patch similarity index 100% rename from patches/server/0924-Optimise-recalcBlockCounts-for-empty-sections.patch rename to patches/server/0919-Optimise-recalcBlockCounts-for-empty-sections.patch diff --git a/patches/server/0925-Expand-PlayerItemMendEvent.patch b/patches/server/0920-Expand-PlayerItemMendEvent.patch similarity index 96% rename from patches/server/0925-Expand-PlayerItemMendEvent.patch rename to patches/server/0920-Expand-PlayerItemMendEvent.patch index 6147d4eabf06..5b1f473acbf8 100644 --- a/patches/server/0925-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0920-Expand-PlayerItemMendEvent.patch @@ -33,7 +33,7 @@ index 5685951b71a8b81c7a71fd93b099b276d535b401..b37e13c5de1a0a22a3713d04b203afc6 return k > 0 ? this.repairPlayerItems(player, k) : 0; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b1d12c30dd23e092531c0d4d3af367262ccb5402..cc0824b3a8e4cb0bbefd53f91faf3942c097a004 100644 +index 351f6667b76cd4943159fc9c130ff8595f7e3a6b..09cbd4dadfc2c2984fc5f50152e1c3a0f1d5a5b6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1754,11 +1754,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -51,7 +51,7 @@ index b1d12c30dd23e092531c0d4d3af367262ccb5402..cc0824b3a8e4cb0bbefd53f91faf3942 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index c4745b8151f41ab55abe01ac30a5c5e54f1fbf7e..99befdda75711c815f974d7260d8b979ce4e8694 100644 +index afa9b967aec163eea0359910bb682395401feaa4..8e3799f0c778ae15169fadced83a84e6553a7bc0 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1321,10 +1321,10 @@ public class CraftEventFactory { diff --git a/patches/server/0926-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0921-Refresh-ProjectileSource-for-projectiles.patch similarity index 97% rename from patches/server/0926-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0921-Refresh-ProjectileSource-for-projectiles.patch index e6f66bc8426f..d1d793bb085d 100644 --- a/patches/server/0926-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0921-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2d8223ff9e3f51e43946cfcc1bd638235c48ec11..3ef46f1a9859c5ba9ea2fcda3b65816679cfc519 100644 +index 25f611ea672ed8ea112a2e31444d0dbdb59f9945..55e53e6e947107fc27ef8322963a877e2deeb741 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -386,6 +386,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0927-Add-transient-modifier-API.patch b/patches/server/0922-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0927-Add-transient-modifier-API.patch rename to patches/server/0922-Add-transient-modifier-API.patch diff --git a/patches/server/0928-Fix-block-place-logic.patch b/patches/server/0923-Fix-block-place-logic.patch similarity index 100% rename from patches/server/0928-Fix-block-place-logic.patch rename to patches/server/0923-Fix-block-place-logic.patch diff --git a/patches/server/0929-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0929-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0930-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0925-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 96% rename from patches/server/0930-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0925-Call-BlockGrowEvent-for-missing-blocks.patch index a3c48d3fff78..16cfb6da5050 100644 --- a/patches/server/0930-Call-BlockGrowEvent-for-missing-blocks.patch +++ b/patches/server/0925-Call-BlockGrowEvent-for-missing-blocks.patch @@ -19,7 +19,7 @@ index ba94ff948ccaddc16d3452306722759c115bb90a..acaa13f195467c3ebe70677b8440a883 world.setBlock(pos.above(), blockState.setValue(HALF, DoubleBlockHalf.UPPER), 3); } diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 6c025c0fac9bd6373b99e374b773ca626d47ee6d..02939518ead6463e677ecf5b045ec89aae154e8c 100644 +index 4d3dc58750f80d4aacb46c98a8ffc66acb4a2edc..77952da3134d782609c66e93f5d52ec5c10d499d 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java @@ -72,8 +72,13 @@ public class SnifferEggBlock extends Block { diff --git a/patches/server/0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 100% rename from patches/server/0931-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch diff --git a/patches/server/0932-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0927-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0932-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0927-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0933-Fix-sniffer-removeExploredLocation.patch b/patches/server/0928-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0933-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0928-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0934-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0929-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0934-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0929-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0935-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0930-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch similarity index 100% rename from patches/server/0935-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename to patches/server/0930-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch diff --git a/patches/server/0936-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0931-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0936-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0931-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0937-Properly-cancel-usable-items.patch b/patches/server/0932-Properly-cancel-usable-items.patch similarity index 100% rename from patches/server/0937-Properly-cancel-usable-items.patch rename to patches/server/0932-Properly-cancel-usable-items.patch diff --git a/patches/server/0938-Add-event-for-player-editing-sign.patch b/patches/server/0933-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0938-Add-event-for-player-editing-sign.patch rename to patches/server/0933-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0939-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0934-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0939-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0934-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0940-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0935-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0940-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0935-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0941-Add-option-to-disable-block-updates.patch b/patches/server/0936-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0941-Add-option-to-disable-block-updates.patch rename to patches/server/0936-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0942-Call-missing-BlockDispenseEvent.patch b/patches/server/0937-Call-missing-BlockDispenseEvent.patch similarity index 96% rename from patches/server/0942-Call-missing-BlockDispenseEvent.patch rename to patches/server/0937-Call-missing-BlockDispenseEvent.patch index 09aac68d23f0..87c9052b3c97 100644 --- a/patches/server/0942-Call-missing-BlockDispenseEvent.patch +++ b/patches/server/0937-Call-missing-BlockDispenseEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Call missing BlockDispenseEvent diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 415d387f8cfa3ae99b1c809233c86c18b76ad1e2..5165651f1ddcda78f2551d02ca5a4a5ea97ac91a 100644 +index 21bba99bf1f06a95cc6834de2886b03ebeb9562f..97cff1d1c92f3c06897c7ef5da612eca0ee49b2f 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -1106,6 +1106,13 @@ public interface DispenseItemBehavior { @@ -50,7 +50,7 @@ index 415d387f8cfa3ae99b1c809233c86c18b76ad1e2..5165651f1ddcda78f2551d02ca5a4a5e for (int k = 0; k < 5; ++k) { worldserver.sendParticles(ParticleTypes.SPLASH, (double) blockposition.getX() + worldserver.random.nextDouble(), (double) (blockposition.getY() + 1), (double) blockposition.getZ() + worldserver.random.nextDouble(), 1, 0.0D, 0.0D, 0.0D, 1.0D); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 99befdda75711c815f974d7260d8b979ce4e8694..ba7f9ac6068bae43c628015fa07b32794fea9369 100644 +index 8e3799f0c778ae15169fadced83a84e6553a7bc0..3f8195475fbad4d517d5417ece9555831377d1cc 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -2098,6 +2098,32 @@ public class CraftEventFactory { diff --git a/patches/server/0943-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0938-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 90% rename from patches/server/0943-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0938-Don-t-load-chunks-for-supporting-block-checks.patch index b9ac71bda76a..6ecacbc82819 100644 --- a/patches/server/0943-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0938-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3ef46f1a9859c5ba9ea2fcda3b65816679cfc519..d3ec25371478e5f4bfb3886f4765f6eaf54a39ce 100644 +index 55e53e6e947107fc27ef8322963a877e2deeb741..148f146da8f5887deaa52991a8e484d54918f2b9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1362,7 +1362,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0944-Optimize-player-lookups-for-beacons.patch b/patches/server/0939-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0944-Optimize-player-lookups-for-beacons.patch rename to patches/server/0939-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0945-Add-Sign-getInteractableSideFor.patch b/patches/server/0940-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0945-Add-Sign-getInteractableSideFor.patch rename to patches/server/0940-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0946-Array-backed-synched-entity-data.patch b/patches/server/0941-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0946-Array-backed-synched-entity-data.patch rename to patches/server/0941-Array-backed-synched-entity-data.patch diff --git a/patches/server/0947-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0942-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0947-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0942-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0948-Fix-BanList-API.patch b/patches/server/0943-Fix-BanList-API.patch similarity index 99% rename from patches/server/0948-Fix-BanList-API.patch rename to patches/server/0943-Fix-BanList-API.patch index f61cc30d0c04..f7a8267da4b5 100644 --- a/patches/server/0948-Fix-BanList-API.patch +++ b/patches/server/0943-Fix-BanList-API.patch @@ -208,7 +208,7 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index cc0824b3a8e4cb0bbefd53f91faf3942c097a004..4c5ad6275f12a656d5d02ba1c0736fed55ac561e 100644 +index 09cbd4dadfc2c2984fc5f50152e1c3a0f1d5a5b6..28d1c112a0526162c9886cabb54c4be93e16fbb6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1652,23 +1652,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0949-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0944-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0949-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0944-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0950-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0945-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0950-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0945-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0951-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0946-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0951-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0946-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0952-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0947-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 93% rename from patches/server/0952-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0947-ExperienceOrb-should-call-EntitySpawnEvent.patch index 0a5366e668ee..afca54d6a630 100644 --- a/patches/server/0952-ExperienceOrb-should-call-EntitySpawnEvent.patch +++ b/patches/server/0947-ExperienceOrb-should-call-EntitySpawnEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] ExperienceOrb should call EntitySpawnEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ba7f9ac6068bae43c628015fa07b32794fea9369..ab576ca90606d3c9dabf08ae9f37a339cf1c3f5a 100644 +index 3f8195475fbad4d517d5417ece9555831377d1cc..cf4e32d5199b15bd8d72e412982dfbecde183f91 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -734,7 +734,10 @@ public class CraftEventFactory { diff --git a/patches/server/0953-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0948-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0953-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0948-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0954-Add-whitelist-events.patch b/patches/server/0949-Add-whitelist-events.patch similarity index 100% rename from patches/server/0954-Add-whitelist-events.patch rename to patches/server/0949-Add-whitelist-events.patch diff --git a/patches/server/0955-Implement-PlayerFailMoveEvent.patch b/patches/server/0950-Implement-PlayerFailMoveEvent.patch similarity index 98% rename from patches/server/0955-Implement-PlayerFailMoveEvent.patch rename to patches/server/0950-Implement-PlayerFailMoveEvent.patch index 807a4fa81e4d..a961551be479 100644 --- a/patches/server/0955-Implement-PlayerFailMoveEvent.patch +++ b/patches/server/0950-Implement-PlayerFailMoveEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerFailMoveEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 589662812bc6f6fb09d50d8793c7ed4cb1140af8..12d714fe819fedd358921c1a146372087e5fb9d1 100644 +index 3f9106eb34db5df10961a44f56f2110fec8bd3c6..e400efa2219fca219ee52021c664409907bc839d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1316,8 +1316,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0956-Folia-scheduler-and-owned-region-API.patch b/patches/server/0951-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0956-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0951-Folia-scheduler-and-owned-region-API.patch index 22f55be902e0..ca07db017c56 100644 --- a/patches/server/0956-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0951-Folia-scheduler-and-owned-region-API.patch @@ -1173,7 +1173,7 @@ index 45f7e7efa8cf407cae2db657074478565590bd12..d34f0d5abd93ed1729a00405d78a34a1 this.profiler.push("commandFunctions"); MinecraftTimings.commandFunctionsTimer.startTiming(); // Spigot // Paper diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a9cc3d7213f51a2a2cdc915fd9ab3cf97767b698..69e75aec30e8c25f621c8e7d024abe672395a0ef 100644 +index 64635241bf3c1dd1e2f7e6756b34d497875aa6fa..a23b05d49e900287314fb93ae0355daed81b16a8 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -649,6 +649,7 @@ public abstract class PlayerList { @@ -1185,7 +1185,7 @@ index a9cc3d7213f51a2a2cdc915fd9ab3cf97767b698..69e75aec30e8c25f621c8e7d024abe67 this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d3ec25371478e5f4bfb3886f4765f6eaf54a39ce..9cf6c04878520bb4f490b13dcdc113e64d2af8af 100644 +index 148f146da8f5887deaa52991a8e484d54918f2b9..acf14c919150f12ddc5ec87bc06e93a8eca6232a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -249,11 +249,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0957-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0952-Only-erase-allay-memory-on-non-item-targets.patch similarity index 100% rename from patches/server/0957-Only-erase-allay-memory-on-non-item-targets.patch rename to patches/server/0952-Only-erase-allay-memory-on-non-item-targets.patch diff --git a/patches/server/0958-API-for-updating-recipes-on-clients.patch b/patches/server/0953-API-for-updating-recipes-on-clients.patch similarity index 97% rename from patches/server/0958-API-for-updating-recipes-on-clients.patch rename to patches/server/0953-API-for-updating-recipes-on-clients.patch index 3daf8af5d67f..09d95fb6d736 100644 --- a/patches/server/0958-API-for-updating-recipes-on-clients.patch +++ b/patches/server/0953-API-for-updating-recipes-on-clients.patch @@ -5,7 +5,7 @@ Subject: [PATCH] API for updating recipes on clients diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 69e75aec30e8c25f621c8e7d024abe672395a0ef..b33f6f3ceb279eb5a36df7d37d56bfce951c3de7 100644 +index a23b05d49e900287314fb93ae0355daed81b16a8..80777d7fb68b8eac7c00df256ba614772163f49f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1545,6 +1545,13 @@ public abstract class PlayerList { diff --git a/patches/server/0959-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0954-Fix-rotation-when-spawning-display-entities.patch similarity index 100% rename from patches/server/0959-Fix-rotation-when-spawning-display-entities.patch rename to patches/server/0954-Fix-rotation-when-spawning-display-entities.patch diff --git a/patches/server/0960-Only-capture-actual-tree-growth.patch b/patches/server/0955-Only-capture-actual-tree-growth.patch similarity index 95% rename from patches/server/0960-Only-capture-actual-tree-growth.patch rename to patches/server/0955-Only-capture-actual-tree-growth.patch index 1144b348a53b..7baa74d7a458 100644 --- a/patches/server/0960-Only-capture-actual-tree-growth.patch +++ b/patches/server/0955-Only-capture-actual-tree-growth.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Only capture actual tree growth diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 5165651f1ddcda78f2551d02ca5a4a5ea97ac91a..6b7d8b7b6665aa87af4bd8aa00f75fb2c9dd4b6b 100644 +index 97cff1d1c92f3c06897c7ef5da612eca0ee49b2f..6e19de21b6bb643961afc1d5eced3e0d0d98a027 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -862,6 +862,7 @@ public interface DispenseItemBehavior { @@ -29,7 +29,7 @@ index 244fcdcb153b1f4d842405302261afe1cce67daa..32a3729b9f1caca789af8176737fc510 } entityhuman.awardStat(Stats.ITEM_USED.get(item)); // SPIGOT-7236 - award stat diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 28e56e61ff5c14683f55780ed83e593f6b06503c..2c2189a31c608c99abe6a9c0a78bdcb717b51aba 100644 +index 28e56e61ff5c14683f55780ed83e593f6b06503c..a8d22b48bd7108ca22faae178fcf82cb158ee7bb 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1898,4 +1898,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -41,7 +41,7 @@ index 28e56e61ff5c14683f55780ed83e593f6b06503c..2c2189a31c608c99abe6a9c0a78bdcb7 + // notify observers if the block state is the same and the Y level equals the original y level (for mega trees) + // blocks at the same Y level with the same state can be assumed to be saplings which trigger observers regardless of if the + // tree grew or not -+ if (craftBlockState.getPosition().getY() == pos.getY() && this.getBlockState(craftBlockState.getPosition()) == craftBlockState.getHandle()) { // Paper - Fix silent equipment change ++ if (craftBlockState.getPosition().getY() == pos.getY() && this.getBlockState(craftBlockState.getPosition()) == craftBlockState.getHandle()) { + this.notifyAndUpdatePhysics(craftBlockState.getPosition(), null, craftBlockState.getHandle(), craftBlockState.getHandle(), craftBlockState.getHandle(), craftBlockState.getFlag(), 512); + } + } diff --git a/patches/server/0961-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0956-Use-correct-source-for-mushroom-block-spread-event.patch similarity index 100% rename from patches/server/0961-Use-correct-source-for-mushroom-block-spread-event.patch rename to patches/server/0956-Use-correct-source-for-mushroom-block-spread-event.patch diff --git a/patches/server/0962-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0957-Respect-randomizeData-on-more-entities-when-spawning.patch similarity index 100% rename from patches/server/0962-Respect-randomizeData-on-more-entities-when-spawning.patch rename to patches/server/0957-Respect-randomizeData-on-more-entities-when-spawning.patch diff --git a/patches/server/0963-Use-correct-seed-on-api-world-load.patch b/patches/server/0958-Use-correct-seed-on-api-world-load.patch similarity index 100% rename from patches/server/0963-Use-correct-seed-on-api-world-load.patch rename to patches/server/0958-Use-correct-seed-on-api-world-load.patch diff --git a/patches/server/0964-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0959-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch similarity index 100% rename from patches/server/0964-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch rename to patches/server/0959-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch diff --git a/patches/server/0965-Cache-map-ids-on-item-frames.patch b/patches/server/0960-Cache-map-ids-on-item-frames.patch similarity index 96% rename from patches/server/0965-Cache-map-ids-on-item-frames.patch rename to patches/server/0960-Cache-map-ids-on-item-frames.patch index daee952d39e0..2d3d641bd8e8 100644 --- a/patches/server/0965-Cache-map-ids-on-item-frames.patch +++ b/patches/server/0960-Cache-map-ids-on-item-frames.patch @@ -18,7 +18,7 @@ index 4eee77a14c941b637ec9e9dc844e67c5e933bfe7..148a6a2739dee63147c5244376892a24 if (worldmap != null) { diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index 9c11d0af958ec47408d238d34d30750d29ecdd88..8994385e95df467166985083fbdaa89dc1949f91 100644 +index 1ef8bbade35c3e18f53808a9955ba69750b7d30f..c5ec729470aa2b17c6963605cd10b8f53bae5e59 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java @@ -50,6 +50,7 @@ public class ItemFrame extends HangingEntity { diff --git a/patches/server/0966-Fix-custom-statistic-criteria-creation.patch b/patches/server/0961-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/server/0966-Fix-custom-statistic-criteria-creation.patch rename to patches/server/0961-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/server/0967-Bandaid-fix-for-Effect.patch b/patches/server/0962-Bandaid-fix-for-Effect.patch similarity index 98% rename from patches/server/0967-Bandaid-fix-for-Effect.patch rename to patches/server/0962-Bandaid-fix-for-Effect.patch index 7ded4e834269..68d8c369e1c6 100644 --- a/patches/server/0967-Bandaid-fix-for-Effect.patch +++ b/patches/server/0962-Bandaid-fix-for-Effect.patch @@ -73,7 +73,7 @@ index e3a1a1ed5f165d7d37a4f760e5ab7ecbea993a0e..6bd86a7183042f9023b9e8cf6423e0a1 // Special case: the axis is optional for ELECTRIC_SPARK Preconditions.checkArgument(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for the %s effect", effect); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4c5ad6275f12a656d5d02ba1c0736fed55ac561e..b9431260c928c264eac9b4d64f5692945a5a0b1b 100644 +index 28d1c112a0526162c9886cabb54c4be93e16fbb6..8bc528408164427380277f3805d5275ebd7c7bb4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -873,7 +873,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0968-SculkCatalyst-bloom-API.patch b/patches/server/0963-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/server/0968-SculkCatalyst-bloom-API.patch rename to patches/server/0963-SculkCatalyst-bloom-API.patch diff --git a/patches/server/0969-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0964-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/server/0969-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0964-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/server/0970-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0965-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 96% rename from patches/server/0970-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/0965-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch index 88e0ced5584c..c58acbd21b3a 100644 --- a/patches/server/0970-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch +++ b/patches/server/0965-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve cancelling PreCreatureSpawnEvent with per player mob diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 526b52bbf7c5d82645d26710f05e62b781e3cb0e..4af505a8b6074c49f2d16a6447eeaf038c7804e6 100644 +index a9c94645a4bf3837bce5622b76f0d24a5a4ef065..cc1b903111730d4042fdbf4d2dae88ae72ac4bc8 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -386,8 +386,26 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -61,7 +61,7 @@ index 1483007b79e18107e41037c279e048f04f666d1d..5152979bf81345fc365e7b16028c7d97 spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true); } else { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index de27b8d578d429564038e01cef5f46d4d3d7e81c..42c42d599d5b4827693cfe3f6cf9a32e67f2e16c 100644 +index 2c3a6cee9519f44c40227c5d9cbd63cc483d2d60..8659402aa75a8e2dd26b11c309852164edb6a799 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -260,6 +260,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0971-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0966-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/server/0971-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0966-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/server/0972-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0967-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 95% rename from patches/server/0972-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0967-Don-t-tab-complete-namespaced-commands-if-send-names.patch index dade7b8eda11..20d19d27c2b8 100644 --- a/patches/server/0972-Don-t-tab-complete-namespaced-commands-if-send-names.patch +++ b/patches/server/0967-Don-t-tab-complete-namespaced-commands-if-send-names.patch @@ -11,7 +11,7 @@ This patch prevents server from sending namespaced commands when player requests tab-complete only commands. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 12d714fe819fedd358921c1a146372087e5fb9d1..7f26b1e279eb750476fe6200e8c17416467c92d9 100644 +index e400efa2219fca219ee52021c664409907bc839d..17d5efa7ee85b50201c117dc4583e3153c84765f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -807,6 +807,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0973-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0968-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 100% rename from patches/server/0973-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0968-Properly-handle-BlockBreakEvent-isDropItems.patch diff --git a/patches/server/0974-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0969-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/server/0974-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0969-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/server/0975-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0970-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 94% rename from patches/server/0975-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0970-Configurable-entity-tracking-range-by-Y-coordinate.patch index 39e103219645..64db2f97e39c 100644 --- a/patches/server/0975-Configurable-entity-tracking-range-by-Y-coordinate.patch +++ b/patches/server/0970-Configurable-entity-tracking-range-by-Y-coordinate.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable entity tracking range by Y coordinate Options to configure entity tracking by Y coordinate, also for each entity category. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 4af505a8b6074c49f2d16a6447eeaf038c7804e6..00a98841d88e8b13501116caa7a03534e1025159 100644 +index cc1b903111730d4042fdbf4d2dae88ae72ac4bc8..3ba98e9bf7db37567d38d62eef6825eba57afdc6 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1419,6 +1419,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0976-Add-Listing-API-for-Player.patch b/patches/server/0971-Add-Listing-API-for-Player.patch similarity index 99% rename from patches/server/0976-Add-Listing-API-for-Player.patch rename to patches/server/0971-Add-Listing-API-for-Player.patch index a637d367e43e..91f51e73e9b9 100644 --- a/patches/server/0976-Add-Listing-API-for-Player.patch +++ b/patches/server/0971-Add-Listing-API-for-Player.patch @@ -74,7 +74,7 @@ index d43106eb89b14667e85cd6e8fa047d64f2e8ec87..56eddd28429cf42c02d88b8bf79f8b61 static class EntryBuilder { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 359fb75e1ea580bfd5c1b9400000c0c4c8fa08c8..77f585edf113033dc3d7de874d388f4de209fd3b 100644 +index 80777d7fb68b8eac7c00df256ba614772163f49f..ed11fec21b0c3a60fe8c14e699eb3a3823044d66 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -356,14 +356,22 @@ public abstract class PlayerList { diff --git a/patches/server/0977-Configurable-Region-Compression-Format.patch b/patches/server/0972-Configurable-Region-Compression-Format.patch similarity index 100% rename from patches/server/0977-Configurable-Region-Compression-Format.patch rename to patches/server/0972-Configurable-Region-Compression-Format.patch diff --git a/patches/server/0978-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0973-Add-BlockFace-to-BlockDamageEvent.patch similarity index 96% rename from patches/server/0978-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/server/0973-Add-BlockFace-to-BlockDamageEvent.patch index 23778beed4a5..9b16eb255acb 100644 --- a/patches/server/0978-Add-BlockFace-to-BlockDamageEvent.patch +++ b/patches/server/0973-Add-BlockFace-to-BlockDamageEvent.patch @@ -18,7 +18,7 @@ index 1a50a5195043e5e6d6e367c387687480829a3471..8bfd31ce3b4f88f0b32adb242c53771d if (blockEvent.isCancelled()) { // Let the client know the block still exists diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ab576ca90606d3c9dabf08ae9f37a339cf1c3f5a..f5369658f26ccdd9311686bd0f309b9f849cb0b6 100644 +index cf4e32d5199b15bd8d72e412982dfbecde183f91..92584ad04d35c021e1f16ca2338eafe9b07e8ff7 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -649,13 +649,13 @@ public class CraftEventFactory { diff --git a/patches/server/0979-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0974-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/server/0979-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0974-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/server/0980-Expand-Pose-API.patch b/patches/server/0975-Expand-Pose-API.patch similarity index 95% rename from patches/server/0980-Expand-Pose-API.patch rename to patches/server/0975-Expand-Pose-API.patch index 8117e562a8c8..8b0e076d9742 100644 --- a/patches/server/0980-Expand-Pose-API.patch +++ b/patches/server/0975-Expand-Pose-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9cf6c04878520bb4f490b13dcdc113e64d2af8af..aef714923ff1e9d476aacd9bfaa80f85dc84890b 100644 +index acf14c919150f12ddc5ec87bc06e93a8eca6232a..47857a43753e86d1c7c535e69ed07b31d753ad99 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0981-More-DragonBattle-API.patch b/patches/server/0976-More-DragonBattle-API.patch similarity index 97% rename from patches/server/0981-More-DragonBattle-API.patch rename to patches/server/0976-More-DragonBattle-API.patch index ccbfe560ab93..62707b07e23d 100644 --- a/patches/server/0981-More-DragonBattle-API.patch +++ b/patches/server/0976-More-DragonBattle-API.patch @@ -10,7 +10,7 @@ public net.minecraft.world.level.dimension.end.EndDragonFight respawnCrystals public net.minecraft.world.level.dimension.end.EndDragonFight spawnNewGateway(Lnet/minecraft/core/BlockPos;)V diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 390542c42fe957e8e2d21c879c1c8908c8970b44..36b0912fa2fd64b83a163112df478e67408e089b 100644 +index 1469ad613e71bcf0fa8fb9b3389eb830dbd72ca0..e0f11a4ec60a72c510af8fa4297eee3727c791bc 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -439,6 +439,24 @@ public class EndDragonFight { diff --git a/patches/server/0982-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0977-Deep-clone-unhandled-nbt-tags.patch similarity index 100% rename from patches/server/0982-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0977-Deep-clone-unhandled-nbt-tags.patch diff --git a/patches/server/0983-Add-PlayerPickItemEvent.patch b/patches/server/0978-Add-PlayerPickItemEvent.patch similarity index 96% rename from patches/server/0983-Add-PlayerPickItemEvent.patch rename to patches/server/0978-Add-PlayerPickItemEvent.patch index 1ecd26fcc0aa..0b39b25b31cf 100644 --- a/patches/server/0983-Add-PlayerPickItemEvent.patch +++ b/patches/server/0978-Add-PlayerPickItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerPickItemEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7f26b1e279eb750476fe6200e8c17416467c92d9..84741f5a9d63b1dbe9e4ab1cfe4179cc3f3ff3c1 100644 +index 17d5efa7ee85b50201c117dc4583e3153c84765f..8efcbf7eee4eecfc7ee256fc07f5cae216b073a3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -944,8 +944,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0984-Improve-performance-of-mass-crafts.patch b/patches/server/0979-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/0984-Improve-performance-of-mass-crafts.patch rename to patches/server/0979-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/0985-Allow-trident-custom-damage.patch b/patches/server/0980-Allow-trident-custom-damage.patch similarity index 100% rename from patches/server/0985-Allow-trident-custom-damage.patch rename to patches/server/0980-Allow-trident-custom-damage.patch diff --git a/patches/server/0986-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0981-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/server/0986-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/server/0981-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/server/0987-Optimize-nearest-structure-border-iteration.patch b/patches/server/0982-Optimize-nearest-structure-border-iteration.patch similarity index 100% rename from patches/server/0987-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0982-Optimize-nearest-structure-border-iteration.patch diff --git a/patches/server/0988-Implement-OfflinePlayer-isConnected.patch b/patches/server/0983-Implement-OfflinePlayer-isConnected.patch similarity index 94% rename from patches/server/0988-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0983-Implement-OfflinePlayer-isConnected.patch index 1a7a2582e959..7c630654e432 100644 --- a/patches/server/0988-Implement-OfflinePlayer-isConnected.patch +++ b/patches/server/0983-Implement-OfflinePlayer-isConnected.patch @@ -23,7 +23,7 @@ index 9daec0782774ab51ea8091cb8ed9d0a106e34cfa..2bbc39c257965ad91ee360cdfcd3538a public String getName() { Player player = this.getPlayer(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d9a0ee62892a2f8044d874d262125ea03ee60057..85983812ac86ead64bdf3789a49c46302a9566ef 100644 +index 5c3a9c7d6b2d9a810edbb356fb3cdde40b3194b1..874036b417471d4eeb14e0ab387f219c7b3e7975 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -279,6 +279,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0989-Fix-inventory-desync.patch b/patches/server/0984-Fix-inventory-desync.patch similarity index 100% rename from patches/server/0989-Fix-inventory-desync.patch rename to patches/server/0984-Fix-inventory-desync.patch diff --git a/patches/server/0990-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0985-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 97% rename from patches/server/0990-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0985-Add-titleOverride-to-InventoryOpenEvent.patch index 294280641321..40db91caa706 100644 --- a/patches/server/0990-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/0985-Add-titleOverride-to-InventoryOpenEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 42c42d599d5b4827693cfe3f6cf9a32e67f2e16c..2eb320dc136712aac3896a5aacf8800dc2c121ba 100644 +index 8659402aa75a8e2dd26b11c309852164edb6a799..66c43cb293d4fef727c6d3e7c09cab874bb3eef6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1573,12 +1573,17 @@ public class ServerPlayer extends Player { @@ -79,7 +79,7 @@ index 897e693492bdf9293154535d5772929bc2b1a523..827fe201a7b74f485abb46b127a28bf0 if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper player.containerMenu = container; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index f5369658f26ccdd9311686bd0f309b9f849cb0b6..57b11760b420f09111899a7e19f0d555785b425f 100644 +index 92584ad04d35c021e1f16ca2338eafe9b07e8ff7..6e3d13d6c60491b7147f8bb3d60354b01d047cc7 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1440,10 +1440,21 @@ public class CraftEventFactory { diff --git a/patches/server/0991-Configure-sniffer-egg-hatch-time.patch b/patches/server/0986-Configure-sniffer-egg-hatch-time.patch similarity index 94% rename from patches/server/0991-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0986-Configure-sniffer-egg-hatch-time.patch index dd9b57737ffe..0899af12fe43 100644 --- a/patches/server/0991-Configure-sniffer-egg-hatch-time.patch +++ b/patches/server/0986-Configure-sniffer-egg-hatch-time.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configure sniffer egg hatch time diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 02939518ead6463e677ecf5b045ec89aae154e8c..a18b85769d5d46efa43b0cd2face958b3250571a 100644 +index 77952da3134d782609c66e93f5d52ec5c10d499d..f11f52c76dea7acb30bf6cc314c533f1dc0f3f0d 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java @@ -63,7 +63,7 @@ public class SnifferEggBlock extends Block { diff --git a/patches/server/0992-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0987-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 97% rename from patches/server/0992-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0987-Do-crystal-portal-proximity-check-before-entity-look.patch index 2ae71ff13790..c5c4ed65cabc 100644 --- a/patches/server/0992-Do-crystal-portal-proximity-check-before-entity-look.patch +++ b/patches/server/0987-Do-crystal-portal-proximity-check-before-entity-look.patch @@ -34,7 +34,7 @@ index ca1edc083847b47bb450b291723aca778a5912dc..e1696f6b77df4c8fceaece64701d4db7 } diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 36b0912fa2fd64b83a163112df478e67408e089b..e1604fd1fb5f779b5fb96f98c94918e4db88918a 100644 +index e0f11a4ec60a72c510af8fa4297eee3727c791bc..6046dc009c59ac3472eca6a8cfb759eacbfbc70a 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -558,6 +558,12 @@ public class EndDragonFight { diff --git a/patches/server/0993-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0988-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0993-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0988-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0994-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0989-Add-slot-sanity-checks-in-container-clicks.patch similarity index 93% rename from patches/server/0994-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0989-Add-slot-sanity-checks-in-container-clicks.patch index 779817084e25..c8db5d7d1ab1 100644 --- a/patches/server/0994-Add-slot-sanity-checks-in-container-clicks.patch +++ b/patches/server/0989-Add-slot-sanity-checks-in-container-clicks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add slot sanity checks in container clicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 84741f5a9d63b1dbe9e4ab1cfe4179cc3f3ff3c1..75a763afecd63ab1b4c020460da58c8364e950b7 100644 +index 8efcbf7eee4eecfc7ee256fc07f5cae216b073a3..8568de90c39838e1627f286c5c3ca4b0f19002cb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2992,6 +2992,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -22,7 +22,7 @@ index 84741f5a9d63b1dbe9e4ab1cfe4179cc3f3ff3c1..75a763afecd63ab1b4c020460da58c83 Slot clickedSlot = this.player.containerMenu.getSlot(packet.getSlotNum()); if (clickedSlot.mayPickup(this.player)) { diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 9ee3c2e0dcfaa4280be4973479c6490ded33809c..924e2d510752aa332129d79574ce85c5a4d5f0a4 100644 +index cd82b7e83f79e813d9d87d074bbccad4d2712d60..b50d04415539f84ce0b7c24c1f97be24b21e7f14 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -423,6 +423,7 @@ public abstract class AbstractContainerMenu { diff --git a/patches/server/0995-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0990-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0995-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0990-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0996-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0991-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0996-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0991-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0997-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0992-Fix-silent-equipment-change-for-mobs.patch similarity index 100% rename from patches/server/0997-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0992-Fix-silent-equipment-change-for-mobs.patch diff --git a/patches/server/0998-Fix-spigot-s-Forced-Stats.patch b/patches/server/0993-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0998-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0993-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0999-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0994-Add-missing-InventoryHolders-to-inventories.patch similarity index 99% rename from patches/server/0999-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0994-Add-missing-InventoryHolders-to-inventories.patch index f0f3ef98aaca..eb31184f55c2 100644 --- a/patches/server/0999-Add-missing-InventoryHolders-to-inventories.patch +++ b/patches/server/0994-Add-missing-InventoryHolders-to-inventories.patch @@ -57,7 +57,7 @@ index ff1aba1e69cfde633fd01724f1a8d0af7f59437f..9546d93f90ca34b4d35bd98df847bf89 public SimpleContainer(int i, org.bukkit.inventory.InventoryHolder owner) { this.bukkitOwner = owner; diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 924e2d510752aa332129d79574ce85c5a4d5f0a4..eb8155e29821d5622320d69041c5a1a6406afbbc 100644 +index b50d04415539f84ce0b7c24c1f97be24b21e7f14..47a3c18401e2df4c89908691348f2411d3ef6fda 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -1029,4 +1029,15 @@ public abstract class AbstractContainerMenu { diff --git a/patches/server/1000-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0995-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/server/1000-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0995-Do-not-read-tile-entities-in-chunks-that-are-positio.patch diff --git a/patches/server/1001-Actually-optimise-explosions.patch b/patches/server/0996-Actually-optimise-explosions.patch similarity index 99% rename from patches/server/1001-Actually-optimise-explosions.patch rename to patches/server/0996-Actually-optimise-explosions.patch index 879be2c3325a..4010a9587534 100644 --- a/patches/server/1001-Actually-optimise-explosions.patch +++ b/patches/server/0996-Actually-optimise-explosions.patch @@ -34,7 +34,7 @@ The results indicate that this logic is 5 times faster than Vanilla and 2.3 times faster than Lithium. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index dbe679bb81a903668262cdf629469e971b49e088..9442f58dff89ec843c321533965fbee2727d02f8 100644 +index 7bb8dc1f4697960cdc6bac0daec4b7a06a2dd7c4..210b6d71207b99e66ba014b176b2c1445053b1d1 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -111,6 +111,271 @@ public class Explosion { diff --git a/patches/server/1002-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0997-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/1002-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0997-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/1003-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0998-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 100% rename from patches/server/1003-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/0998-Remove-Spigot-Bug-Fix-for-MC-109346.patch diff --git a/patches/server/1004-Fix-SuspiciousStewMeta.patch b/patches/server/0999-Fix-SuspiciousStewMeta.patch similarity index 100% rename from patches/server/1004-Fix-SuspiciousStewMeta.patch rename to patches/server/0999-Fix-SuspiciousStewMeta.patch diff --git a/patches/server/1005-Optimise-chunk-tick-iteration.patch b/patches/server/1000-Optimise-chunk-tick-iteration.patch similarity index 99% rename from patches/server/1005-Optimise-chunk-tick-iteration.patch rename to patches/server/1000-Optimise-chunk-tick-iteration.patch index 335327b20a12..8897e12ee3c6 100644 --- a/patches/server/1005-Optimise-chunk-tick-iteration.patch +++ b/patches/server/1000-Optimise-chunk-tick-iteration.patch @@ -108,7 +108,7 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754 List list; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 00a98841d88e8b13501116caa7a03534e1025159..abe94c37513f41dce1ec924d00205a752d3195aa 100644 +index 3ba98e9bf7db37567d38d62eef6825eba57afdc6..e7cb1eb0740dcf8184a609172031f45fbf92957b 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -365,7 +365,7 @@ index 5152979bf81345fc365e7b16028c7d970d2f5856..44ada45d9bf2d9b48e5de1c3cb1a8559 gameprofilerfiller.pop(); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 2eb320dc136712aac3896a5aacf8800dc2c121ba..67a4c0a436cb1a0b5b9fc7c80dc501b1fb546f8f 100644 +index 66c43cb293d4fef727c6d3e7c09cab874bb3eef6..daa42371a100928c399d3684e101707386198f72 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -325,6 +325,9 @@ public class ServerPlayer extends Player { diff --git a/patches/server/1006-Lag-compensation-ticks.patch b/patches/server/1001-Lag-compensation-ticks.patch similarity index 100% rename from patches/server/1006-Lag-compensation-ticks.patch rename to patches/server/1001-Lag-compensation-ticks.patch diff --git a/patches/server/1007-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/1002-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/1007-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/1002-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/1008-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/1003-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/1008-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/1003-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/1009-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/1004-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/1009-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/1004-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/1010-Optimise-nearby-player-retrieval.patch b/patches/server/1005-Optimise-nearby-player-retrieval.patch similarity index 98% rename from patches/server/1010-Optimise-nearby-player-retrieval.patch rename to patches/server/1005-Optimise-nearby-player-retrieval.patch index 764647638f15..e170ab23cb91 100644 --- a/patches/server/1010-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1005-Optimise-nearby-player-retrieval.patch @@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2e293fb94024d21769faf0e60e79e91efac79007..9f1ba9240b6a8ea0ca19344a49e93a63e3132729 100644 +index 973a9deba3b11399cafb3482f4c56c9c648c4d5f..dcd3b58165df89fa57e37df532dad263cd124f6a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -581,6 +581,115 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -208,7 +208,7 @@ index 58422f00c7d64dbd1cf6d7211c9838875cbe7778..c157309ac78e7af084d3acb6e8b2bcd4 private boolean testInvisible = true; @Nullable diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index b3293a722fb5c5262a777402140c764c03367800..bb685325e6cb2ac5ddccfca8602013e38b4a4891 100644 +index a3d15f30eaab29d85cb6b3d693df9980a880f686..ff0b7b9e4ae3aa0c170d05bc51fd7ff26e7531ee 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java @@ -230,9 +230,13 @@ public interface EntityGetter { diff --git a/patches/server/1011-Fix-missing-map-initialize-event-call.patch b/patches/server/1006-Fix-missing-map-initialize-event-call.patch similarity index 95% rename from patches/server/1011-Fix-missing-map-initialize-event-call.patch rename to patches/server/1006-Fix-missing-map-initialize-event-call.patch index 8e3ae3895742..c04e5b3249e4 100644 --- a/patches/server/1011-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/1006-Fix-missing-map-initialize-event-call.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9f1ba9240b6a8ea0ca19344a49e93a63e3132729..ad4a987c1de4265f9f0d6a8769aaed95d0a66786 100644 +index dcd3b58165df89fa57e37df532dad263cd124f6a..01c7b3623314bb0e6fa0a135de3db7c42ca5e373 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2133,13 +2133,25 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1012-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/1007-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/1012-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/1007-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/1013-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/1008-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/1013-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/1008-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/1014-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/1009-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/1014-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/1009-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/1015-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/1010-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/1015-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/1010-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/1016-Add-player-idle-duration-API.patch b/patches/server/1011-Add-player-idle-duration-API.patch similarity index 91% rename from patches/server/1016-Add-player-idle-duration-API.patch rename to patches/server/1011-Add-player-idle-duration-API.patch index a3b91651f548..d57581e5399a 100644 --- a/patches/server/1016-Add-player-idle-duration-API.patch +++ b/patches/server/1011-Add-player-idle-duration-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 85983812ac86ead64bdf3789a49c46302a9566ef..2a639bc8d3edca5eb7bfca2cc117b56587e5e525 100644 +index 874036b417471d4eeb14e0ab387f219c7b3e7975..8e7d4c52b95a85e97152c810dd93fe0575c063a5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3311,6 +3311,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1017-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/1012-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 91% rename from patches/server/1017-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/1012-Don-t-check-if-we-can-see-non-visible-entities.patch index 5bfab6e4e082..19ba45812238 100644 --- a/patches/server/1017-Don-t-check-if-we-can-see-non-visible-entities.patch +++ b/patches/server/1012-Don-t-check-if-we-can-see-non-visible-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't check if we can see non-visible entities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index abe94c37513f41dce1ec924d00205a752d3195aa..4a473f75c1c14549acd134c20adbe0c52663405f 100644 +index e7cb1eb0740dcf8184a609172031f45fbf92957b..4160fff108cc83bc0a1f0a0389ab22f722d483b4 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1435,7 +1435,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/1018-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/1013-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/1018-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/1013-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/1014-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 90% rename from patches/server/1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/1014-Allow-null-itemstack-for-Player-sendEquipmentChange.patch index 9267ffa134fb..90d3ad7a7554 100644 --- a/patches/server/1019-Allow-null-itemstack-for-Player-sendEquipmentChange.patch +++ b/patches/server/1014-Allow-null-itemstack-for-Player-sendEquipmentChange.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 2a639bc8d3edca5eb7bfca2cc117b56587e5e525..132692091fdec45f0330c8bc668cc16873db2976 100644 +index 8e7d4c52b95a85e97152c810dd93fe0575c063a5..0b9a29c0e36d18282e8a65aa8b05523334fffe74 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1083,7 +1083,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1020-Optimize-VarInts.patch b/patches/server/1015-Optimize-VarInts.patch similarity index 100% rename from patches/server/1020-Optimize-VarInts.patch rename to patches/server/1015-Optimize-VarInts.patch diff --git a/patches/server/1021-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/1016-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/1021-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/1016-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/1022-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/1017-Add-predicate-for-blocks-when-raytracing.patch similarity index 95% rename from patches/server/1022-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/1017-Add-predicate-for-blocks-when-raytracing.patch index a2bf2131a925..750db7206c9f 100644 --- a/patches/server/1022-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/server/1017-Add-predicate-for-blocks-when-raytracing.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add predicate for blocks when raytracing diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index 799837c172a5f7856c78e6fe2595c575f3058a5e..0abbe9be08cf7450f5d2d17deed590053c77a528 100644 +index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..4b7ea18a34675702c5b17c4819f7977807c1c935 100644 --- a/src/main/java/net/minecraft/world/level/BlockGetter.java +++ b/src/main/java/net/minecraft/world/level/BlockGetter.java @@ -83,6 +83,12 @@ public interface BlockGetter extends LevelHeightAccessor { @@ -24,10 +24,10 @@ index 799837c172a5f7856c78e6fe2595c575f3058a5e..0abbe9be08cf7450f5d2d17deed59005 @@ -92,7 +98,7 @@ public interface BlockGetter extends LevelHeightAccessor { return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo())); } - // Paper end -- if (iblockdata.isAir()) return null; // Paper - optimise air cases -+ if (iblockdata.isAir() || (canCollide != null && this instanceof LevelAccessor levelAccessor && !canCollide.test(org.bukkit.craftbukkit.block.CraftBlock.at(levelAccessor, blockposition)))) return null; // Paper - optimise air cases and check canCollide predicate - FluidState fluid = iblockdata.getFluidState(); // Paper - don't need to go to world state again + // Paper end - Prevent raytrace from loading chunks +- if (iblockdata.isAir()) return null; // Paper - Perf: optimise air cases ++ if (iblockdata.isAir() || (canCollide != null && this instanceof LevelAccessor levelAccessor && !canCollide.test(org.bukkit.craftbukkit.block.CraftBlock.at(levelAccessor, blockposition)))) return null; // Paper - Perf: optimise air cases &g check canCollide predicate + FluidState fluid = iblockdata.getFluidState(); // Paper - Perf: don't need to go to world state again Vec3 vec3d = raytrace1.getFrom(); Vec3 vec3d1 = raytrace1.getTo(); @@ -108,8 +114,14 @@ public interface BlockGetter extends LevelHeightAccessor { diff --git a/patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/1018-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 100% rename from patches/server/1023-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/1018-Broadcast-take-item-packets-with-collector-as-source.patch diff --git a/patches/server/1024-Expand-LingeringPotion-API.patch b/patches/server/1019-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/1024-Expand-LingeringPotion-API.patch rename to patches/server/1019-Expand-LingeringPotion-API.patch diff --git a/patches/server/1025-Add-MaterialTagsTest.patch b/patches/server/1020-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/1025-Add-MaterialTagsTest.patch rename to patches/server/1020-Add-MaterialTagsTest.patch diff --git a/patches/server/1026-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/1021-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 100% rename from patches/server/1026-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/1021-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch diff --git a/patches/server/1027-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/1022-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/1027-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/1022-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/1028-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/1023-Fix-several-issues-with-EntityBreedEvent.patch similarity index 97% rename from patches/server/1028-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/1023-Fix-several-issues-with-EntityBreedEvent.patch index 22f13f1ab2be..7ed4b6988154 100644 --- a/patches/server/1028-Fix-several-issues-with-EntityBreedEvent.patch +++ b/patches/server/1023-Fix-several-issues-with-EntityBreedEvent.patch @@ -54,7 +54,7 @@ index 907ed82fea71254d6624eda878e2668cd26422a7..081d1e38b7b1f286e138b0981aaa760e this.level().broadcastEntityEvent(this, (byte) 18); } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 683cc5f9f066d554383fcd30e3654ac06ec76510..089328028b9f82be3ddbfab42b6d0f015c4b71b5 100644 +index 25a7602670b9f736b3b9ff4523bc867e65c0998a..ead5060ae2840a0519c5bf8b4b84aa12cc41b02a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -649,8 +649,9 @@ public class Panda extends Animal { @@ -69,7 +69,7 @@ index 683cc5f9f066d554383fcd30e3654ac06ec76510..089328028b9f82be3ddbfab42b6d0f01 if (this.level().isClientSide || this.isSitting() || this.isInWater()) { return InteractionResult.PASS; diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index 1d9427da270edb447a2c8e031c4f05fe5d39603b..01b07320d8c94907e41283d5bc8943da2bbc6c6e 100644 +index 17cff1a4657f688ed704404f76f6ceead3be3be1..abd913079c00f335944c8eb590fd08bd518b1a10 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -389,7 +389,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl diff --git a/patches/server/1029-Add-UUID-attribute-modifier-API.patch b/patches/server/1024-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/1029-Add-UUID-attribute-modifier-API.patch rename to patches/server/1024-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/1030-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/1025-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/server/1030-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/1025-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/1031-Lazily-create-LootContext-for-criterions.patch b/patches/server/1026-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/1031-Lazily-create-LootContext-for-criterions.patch rename to patches/server/1026-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1027-Don-t-fire-sync-events-during-worldgen.patch similarity index 100% rename from patches/server/1032-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/1027-Don-t-fire-sync-events-during-worldgen.patch diff --git a/patches/server/1033-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/1028-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/1033-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/1028-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/1034-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch similarity index 97% rename from patches/server/1034-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/1029-Restore-vanilla-entity-drops-behavior.patch index 3f6577f1b1fd..e6e08469f853 100644 --- a/patches/server/1034-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 67a4c0a436cb1a0b5b9fc7c80dc501b1fb546f8f..d8bea03eb39b393751a69c4cfc8c004215ebd3d3 100644 +index daa42371a100928c399d3684e101707386198f72..0a1977905de97522cf3311f59a2cdc6c0a5f98f9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -944,22 +944,20 @@ public class ServerPlayer extends Player { @@ -50,7 +50,7 @@ index 67a4c0a436cb1a0b5b9fc7c80dc501b1fb546f8f..d8bea03eb39b393751a69c4cfc8c0042 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d77faa799de1b7cc23adb91d82a45a05532532f1..29853426230ef7e95c7060cf1a44870d369d5f68 100644 +index b240dc6a1e45b534a017806b41ddb76423691ee7..14fbaef2215f7de4acb5303ad6f677b348f855d8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -104,7 +104,7 @@ index d77faa799de1b7cc23adb91d82a45a05532532f1..29853426230ef7e95c7060cf1a44870d return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7204fc4d535fb7cf5579aa51148e6a1262f3124d..3b7459226ae022c9e1de6dbf775046a767b409c9 100644 +index a42023793805b294dc167ec2cd5445f32b0c51eb..38793c3ab6db7e311866de88ba272b8e98178a4b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -165,7 +165,7 @@ index ab708b256183fc54fe8e13f341d8a38acf611739..a9c1f99ba2461333bd154ac16e812031 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 57b11760b420f09111899a7e19f0d555785b425f..b648d1960280d6aa235e511edf30848ee20bb693 100644 +index 6e3d13d6c60491b7147f8bb3d60354b01d047cc7..24917c3996d06677e9da72ab53902c9868e00d86 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -939,17 +939,21 @@ public class CraftEventFactory { diff --git a/patches/server/1035-Add-Structure-check-API.patch b/patches/server/1030-Add-Structure-check-API.patch similarity index 100% rename from patches/server/1035-Add-Structure-check-API.patch rename to patches/server/1030-Add-Structure-check-API.patch diff --git a/patches/server/1036-Dont-resend-blocks-on-interactions.patch b/patches/server/1031-Dont-resend-blocks-on-interactions.patch similarity index 100% rename from patches/server/1036-Dont-resend-blocks-on-interactions.patch rename to patches/server/1031-Dont-resend-blocks-on-interactions.patch diff --git a/patches/server/1037-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/1032-Keep-previous-behavior-for-setResourcePack.patch similarity index 94% rename from patches/server/1037-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/1032-Keep-previous-behavior-for-setResourcePack.patch index a3de6ac33072..7281666cd543 100644 --- a/patches/server/1037-Keep-previous-behavior-for-setResourcePack.patch +++ b/patches/server/1032-Keep-previous-behavior-for-setResourcePack.patch @@ -10,7 +10,7 @@ packs before sending the new pack. Other API exists for adding a new pack to the existing packs on a client. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 132692091fdec45f0330c8bc668cc16873db2976..a257e7a998b79f33662cc96c8f5e6329910bdec6 100644 +index 0b9a29c0e36d18282e8a65aa8b05523334fffe74..3d9f54b10b274815b8d7a0d770153a34f28a6742 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2351,8 +2351,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1038-properly-read-and-store-sus-effect-duration.patch b/patches/server/1033-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/1038-properly-read-and-store-sus-effect-duration.patch rename to patches/server/1033-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/1039-Use-correct-max-stack-size-in-crafter.patch b/patches/server/1034-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/1039-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/1034-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/1040-add-more-scoreboard-API.patch b/patches/server/1035-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/1040-add-more-scoreboard-API.patch rename to patches/server/1035-add-more-scoreboard-API.patch diff --git a/patches/server/1041-Improve-Registry.patch b/patches/server/1036-Improve-Registry.patch similarity index 100% rename from patches/server/1041-Improve-Registry.patch rename to patches/server/1036-Improve-Registry.patch diff --git a/patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 100% rename from patches/server/1042-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch diff --git a/patches/server/1043-Add-experience-points-API.patch b/patches/server/1038-Add-experience-points-API.patch similarity index 95% rename from patches/server/1043-Add-experience-points-API.patch rename to patches/server/1038-Add-experience-points-API.patch index 67e0c99c8096..ce9d3a7e8975 100644 --- a/patches/server/1043-Add-experience-points-API.patch +++ b/patches/server/1038-Add-experience-points-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 7f3466340891b4409d1399ebeb2ca865d77841cd..0a9ee8aee52b34566f1613229951e33e53394f29 100644 +index 9851d5803caa33cbf740f1ef91d71255d9c3b018..d6b502308f22c92d2221bd2d03cde4cb78e82fbc 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1833,7 +1833,7 @@ public abstract class Player extends LivingEntity { @@ -18,7 +18,7 @@ index 7f3466340891b4409d1399ebeb2ca865d77841cd..0a9ee8aee52b34566f1613229951e33e // Paper start - send SoundEffect to everyone who can see fromEntity private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a257e7a998b79f33662cc96c8f5e6329910bdec6..1359db54d76c1eb81ef65a6dc6f56b3ffad4bb62 100644 +index 3d9f54b10b274815b8d7a0d770153a34f28a6742..99830dfacc0d4ff78f43f970b2d1486710c83ef3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1821,6 +1821,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1044-Add-missing-InventoryType.patch b/patches/server/1039-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/1044-Add-missing-InventoryType.patch rename to patches/server/1039-Add-missing-InventoryType.patch diff --git a/patches/server/1045-Add-drops-to-shear-events.patch b/patches/server/1040-Add-drops-to-shear-events.patch similarity index 99% rename from patches/server/1045-Add-drops-to-shear-events.patch rename to patches/server/1040-Add-drops-to-shear-events.patch index df6f2b963b27..d65d09d7d022 100644 --- a/patches/server/1045-Add-drops-to-shear-events.patch +++ b/patches/server/1040-Add-drops-to-shear-events.patch @@ -233,7 +233,7 @@ index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..b5d6857eaf2bed14adcb5f5e80d91b44 } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index b648d1960280d6aa235e511edf30848ee20bb693..417e63d99216edd23d784ac5733432c541baf452 100644 +index 24917c3996d06677e9da72ab53902c9868e00d86..55c26840957f69860816c917c16f59d02074b388 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1718,20 +1718,20 @@ public class CraftEventFactory { diff --git a/patches/server/1046-Add-PlayerShieldDisableEvent.patch b/patches/server/1041-Add-PlayerShieldDisableEvent.patch similarity index 97% rename from patches/server/1046-Add-PlayerShieldDisableEvent.patch rename to patches/server/1041-Add-PlayerShieldDisableEvent.patch index c8ae6cd6622e..8bdf29b42d75 100644 --- a/patches/server/1046-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/1041-Add-PlayerShieldDisableEvent.patch @@ -33,7 +33,7 @@ index c81c72bf1027fcbaac67808fbcf6e0af112176bc..42e2be9286b75a1d34845f303ffc65e9 } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 0a9ee8aee52b34566f1613229951e33e53394f29..5fffd5fde567affa51b3cf4bcc58249134a95e20 100644 +index d6b502308f22c92d2221bd2d03cde4cb78e82fbc..2668c3b6f752d5d8bc45f4e6e52c20cc6a36a957 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -979,7 +979,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/1047-Add-HiddenPotionEffect-API.patch b/patches/server/1042-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1047-Add-HiddenPotionEffect-API.patch rename to patches/server/1042-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1043-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 96% rename from patches/server/1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/1043-Correctly-check-if-bucket-dispenses-will-succeed-for.patch index 28d8d3e49934..e6214b88bb27 100644 --- a/patches/server/1048-Correctly-check-if-bucket-dispenses-will-succeed-for.patch +++ b/patches/server/1043-Correctly-check-if-bucket-dispenses-will-succeed-for.patch @@ -8,7 +8,7 @@ in order to fire the BlockDispenseEvent. This patch corrects that. diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 6b7d8b7b6665aa87af4bd8aa00f75fb2c9dd4b6b..409d6415162d87d611694795a3864693f9ec6432 100644 +index 6e19de21b6bb643961afc1d5eced3e0d0d98a027..8e13c661a06aa2f7b5f558d39fb9e989a8145904 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -628,7 +628,13 @@ public interface DispenseItemBehavior { diff --git a/patches/server/1049-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1044-fix-ItemMeta-removing-CustomModelData.patch similarity index 100% rename from patches/server/1049-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/1044-fix-ItemMeta-removing-CustomModelData.patch diff --git a/patches/server/1050-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1045-Validate-ResourceLocation-in-NBT-reading.patch similarity index 98% rename from patches/server/1050-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/1045-Validate-ResourceLocation-in-NBT-reading.patch index 4f9fa600b703..5860eeb99def 100644 --- a/patches/server/1050-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1045-Validate-ResourceLocation-in-NBT-reading.patch @@ -40,7 +40,7 @@ index 38e2a8cec48bc779b8154d6d719031f457a2403e..4379090b74d156b62b88163a234c22e7 this.path = path; } diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index abb2a02e0fc1deedb0ad76aec64f74ce355129cc..4bede2ca556a3bbcfbde9709c8415c9ea94383de 100644 +index d362a06d0600003d40f632eac602ff552cafb9da..081937597a8984b52a1e92d4c6032c04c942116e 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -618,7 +618,7 @@ public class EntityType implements FeatureElement, EntityTypeT diff --git a/patches/server/1051-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1046-Properly-handle-experience-dropping-on-block-break.patch similarity index 97% rename from patches/server/1051-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/1046-Properly-handle-experience-dropping-on-block-break.patch index fe8724fbc251..904409a2181f 100644 --- a/patches/server/1051-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1046-Properly-handle-experience-dropping-on-block-break.patch @@ -7,7 +7,7 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2c2189a31c608c99abe6a9c0a78bdcb717b51aba..00ff7de3fe0feb166a792c61aa81a1e201d7e928 100644 +index a8d22b48bd7108ca22faae178fcf82cb158ee7bb..b05e11e6b091c7616df5a9bbef867b06cafe3dc3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1103,7 +1103,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -68,7 +68,7 @@ index 8ac67dd1b06eee08787150abdfc74a8cccec94fc..3f2fdf73e2e520838c7b59fe994e67ab } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 17d2b90441d7513d7907b988610be8604ac05282..f03fd4bc44fb95cc17cae69dbe3fd684ed562d6f 100644 +index 88d7973e83ee828fa71d95924a9134935e80954d..7a29d43d06de9138c8db5d3f4af29d6b5dc60efc 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -1286,6 +1286,7 @@ public abstract class BlockBehaviour implements FeatureElement { diff --git a/patches/server/1052-Fixup-NamespacedKey-handling.patch b/patches/server/1047-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1052-Fixup-NamespacedKey-handling.patch rename to patches/server/1047-Fixup-NamespacedKey-handling.patch From 5e73c555bc9d0d6debc14c947efcd33c80ade2af Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Thu, 18 Jan 2024 15:56:25 +0100 Subject: [PATCH 18/45] [ci skip] Add more identifying patch comments --- CONTRIBUTING.md | 3 +- ...-strict-advancement-dimension-checks.patch | 10 ++--- ...broadcast-messages-to-command-blocks.patch | 8 ++-- ...-chunk-for-dynamic-game-event-listen.patch | 4 +- ...us-missing-EntityDropItemEvent-calls.patch | 26 +++++------ patches/server/0811-More-Teleport-API.patch | 6 +-- .../0812-Add-EntityPortalReadyEvent.patch | 8 ++-- ...-level-random-in-entity-constructors.patch | 10 ++--- ...ck-entities-after-destroy-prediction.patch | 24 +++++----- ...-on-plugins-accessing-faraway-chunks.patch | 4 +- ...-Add-and-fix-missing-BlockFadeEvents.patch | 12 ++--- ...1-Add-Velocity-IP-Forwarding-Support.patch | 45 ++++++++++++------- ...ix-plugin-loggers-on-server-shutdown.patch | 6 +-- ...ntityChangeBlockEvent-in-more-places.patch | 10 ++--- .../0826-Missing-eating-regain-reason.patch | 12 ++--- .../server/0827-Missing-effect-cause.patch | 12 ++--- ...30-Call-BlockPhysicsEvent-more-often.patch | 6 +-- .../0833-fix-Jigsaw-block-kicking-user.patch | 4 +- ...rmEvent-for-mud-converting-into-clay.patch | 6 +-- .../0836-Fix-a-bunch-of-vanilla-bugs.patch | 12 +++-- ...ry-onTrackingStart-during-navigation.patch | 6 +-- .../0839-EntityPickupItemEvent-fixes.patch | 18 ++++---- ...-interactions-with-items-on-cooldown.patch | 4 +- ...1-Add-PlayerInventorySlotChangeEvent.patch | 16 +++---- .../server/0845-Detect-headless-JREs.patch | 6 +-- .../0894-Add-EntityFertilizeEggEvent.patch | 6 +-- ...986-Configure-sniffer-egg-hatch-time.patch | 4 +- ...estore-vanilla-entity-drops-behavior.patch | 6 +-- ...1-Dont-resend-blocks-on-interactions.patch | 6 +-- 29 files changed, 159 insertions(+), 141 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b845f7dd0d0c..a2fa410d3c72 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -204,7 +204,8 @@ when making and submitting changes. ## Formatting -All modifications to non-Paper files should be marked. +All modifications to non-Paper files should be marked. The one exception to this is +when modifying javadoc comments, which should not have these markers. - You need to add a comment with a short and identifiable description of the patch: `// Paper start - ` diff --git a/patches/server/0800-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0800-Add-option-for-strict-advancement-dimension-checks.patch index d2cc269314ca..9a0bae0fffb4 100644 --- a/patches/server/0800-Add-option-for-strict-advancement-dimension-checks.patch +++ b/patches/server/0800-Add-option-for-strict-advancement-dimension-checks.patch @@ -11,7 +11,7 @@ distance trigger. This adds a config option to ignore that and use the exact dimension key of the worlds involved. diff --git a/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java b/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java -index 5f9cb2c7a2874e423087d04d3360af0364692b5c..f81aa5adf9a499cef6dc45bf3f9de2df3dc61460 100644 +index 5f9cb2c7a2874e423087d04d3360af0364692b5c..428e0afef2cac9f2a19d8cfe8f2504ddd8e50887 100644 --- a/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java +++ b/src/main/java/net/minecraft/advancements/critereon/LocationPredicate.java @@ -25,7 +25,7 @@ public record LocationPredicate(Optional po @@ -19,24 +19,24 @@ index 5f9cb2c7a2874e423087d04d3360af0364692b5c..f81aa5adf9a499cef6dc45bf3f9de2df if (this.position.isPresent() && !this.position.get().matches(x, y, z)) { return false; - } else if (this.dimension.isPresent() && this.dimension.get() != world.dimension()) { -+ } else if (this.dimension.isPresent() && this.dimension.get() != (io.papermc.paper.configuration.GlobalConfiguration.get().misc.strictAdvancementDimensionCheck ? world.dimension() : org.bukkit.craftbukkit.util.CraftDimensionUtil.getMainDimensionKey(world))) { // Paper ++ } else if (this.dimension.isPresent() && this.dimension.get() != (io.papermc.paper.configuration.GlobalConfiguration.get().misc.strictAdvancementDimensionCheck ? world.dimension() : org.bukkit.craftbukkit.util.CraftDimensionUtil.getMainDimensionKey(world))) { // Paper - Add option for strict advancement dimension checks return false; } else { BlockPos blockPos = BlockPos.containing(x, y, z); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1f7b13806ffbcf81df67a02129aa2c07dfc7b8f5..08acf8c6e6c624016ca97eef15da29d338433411 100644 +index 1f7b13806ffbcf81df67a02129aa2c07dfc7b8f5..f2677922cb97c9aa34f2e80769ac9cccc3dc8089 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1321,6 +1321,12 @@ public class ServerPlayer extends Player { ResourceKey maindimensionkey = CraftDimensionUtil.getMainDimensionKey(origin); ResourceKey maindimensionkey1 = CraftDimensionUtil.getMainDimensionKey(this.level()); -+ // Paper start - config for strict advancement checks for dimensions ++ // Paper start - Add option for strict advancement dimension checks + if (io.papermc.paper.configuration.GlobalConfiguration.get().misc.strictAdvancementDimensionCheck) { + maindimensionkey = resourcekey; + maindimensionkey1 = resourcekey1; + } -+ // Paper end ++ // Paper end - Add option for strict advancement dimension checks CriteriaTriggers.CHANGED_DIMENSION.trigger(this, maindimensionkey, maindimensionkey1); if (maindimensionkey != resourcekey || maindimensionkey1 != resourcekey1) { CriteriaTriggers.CHANGED_DIMENSION.trigger(this, resourcekey, resourcekey1); diff --git a/patches/server/0803-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0803-Don-t-broadcast-messages-to-command-blocks.patch index 34bc1d83ab76..3b911c23d5e8 100644 --- a/patches/server/0803-Don-t-broadcast-messages-to-command-blocks.patch +++ b/patches/server/0803-Don-t-broadcast-messages-to-command-blocks.patch @@ -8,19 +8,19 @@ in command blocks, and if called asynchronously, would throw an error diff --git a/src/main/java/net/minecraft/world/level/BaseCommandBlock.java b/src/main/java/net/minecraft/world/level/BaseCommandBlock.java -index c56f5173fda6b38c2dcaea196217f2f5a7d7c641..d4ff8c6b7801e33be4ff69b8bae13c09f4872c4b 100644 +index c56f5173fda6b38c2dcaea196217f2f5a7d7c641..524b0f1086c01888fe0b76e180c40915d16a1eb9 100644 --- a/src/main/java/net/minecraft/world/level/BaseCommandBlock.java +++ b/src/main/java/net/minecraft/world/level/BaseCommandBlock.java @@ -172,6 +172,7 @@ public abstract class BaseCommandBlock implements CommandSource { @Override public void sendSystemMessage(Component message) { if (this.trackOutput) { -+ org.spigotmc.AsyncCatcher.catchOp("sendSystemMessage to a command block"); // Paper ++ org.spigotmc.AsyncCatcher.catchOp("sendSystemMessage to a command block"); // Paper - Don't broadcast messages to command blocks SimpleDateFormat simpledateformat = BaseCommandBlock.TIME_FORMAT; Date date = new Date(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 398a89a1f695f1e99b30ca0d5ebb192c8f465748..84d6b1b3ec3972281218cbe5e72c9d4ce6419c59 100644 +index 398a89a1f695f1e99b30ca0d5ebb192c8f465748..7749d9740c965baf901512b242426f9a15aca24f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1873,7 +1873,7 @@ public final class CraftServer implements Server { @@ -28,7 +28,7 @@ index 398a89a1f695f1e99b30ca0d5ebb192c8f465748..84d6b1b3ec3972281218cbe5e72c9d4c Set recipients = new HashSet<>(); for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) { - if (permissible instanceof CommandSender && permissible.hasPermission(permission)) { -+ if (permissible instanceof CommandSender && !(permissible instanceof org.bukkit.command.BlockCommandSender) && permissible.hasPermission(permission)) { // Paper - don't broadcast to BlockCommandSender (specifically Command Blocks) ++ if (permissible instanceof CommandSender && !(permissible instanceof org.bukkit.command.BlockCommandSender) && permissible.hasPermission(permission)) { // Paper - Don't broadcast messages to command blocks recipients.add((CommandSender) permissible); } } diff --git a/patches/server/0807-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0807-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch index 3956916b04ad..8b8d15552fe0 100644 --- a/patches/server/0807-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch +++ b/patches/server/0807-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch @@ -15,7 +15,7 @@ to account for the case where the chunk is _not_ currently loaded and then later loaded. diff --git a/src/main/java/net/minecraft/world/level/gameevent/DynamicGameEventListener.java b/src/main/java/net/minecraft/world/level/gameevent/DynamicGameEventListener.java -index e64435c1dfbaf182d2292a1123701033f817ec38..d368ba29fec49a989be1cacd2422599d6d613c29 100644 +index e64435c1dfbaf182d2292a1123701033f817ec38..47647d3db7ce36226a817df640a0b25574fb9b02 100644 --- a/src/main/java/net/minecraft/world/level/gameevent/DynamicGameEventListener.java +++ b/src/main/java/net/minecraft/world/level/gameevent/DynamicGameEventListener.java @@ -48,7 +48,7 @@ public class DynamicGameEventListener { @@ -23,7 +23,7 @@ index e64435c1dfbaf182d2292a1123701033f817ec38..d368ba29fec49a989be1cacd2422599d private static void ifChunkExists(LevelReader world, @Nullable SectionPos sectionPos, Consumer dispatcherConsumer) { if (sectionPos != null) { - ChunkAccess chunkAccess = world.getChunk(sectionPos.x(), sectionPos.z(), ChunkStatus.FULL, false); -+ ChunkAccess chunkAccess = world.getChunkIfLoadedImmediately(sectionPos.getX(), sectionPos.getZ()); // Paper - can cause sync loads while completing a chunk, resulting in deadlock ++ ChunkAccess chunkAccess = world.getChunkIfLoadedImmediately(sectionPos.getX(), sectionPos.getZ()); // Paper - Perf: can cause sync loads while completing a chunk, resulting in deadlock if (chunkAccess != null) { dispatcherConsumer.accept(chunkAccess.getListenerRegistry(sectionPos.y())); } diff --git a/patches/server/0808-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0808-Add-various-missing-EntityDropItemEvent-calls.patch index dc07be1c2330..5b3463d2dbbe 100644 --- a/patches/server/0808-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0808-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,26 +5,26 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index edea89eebb9a99e41dc2bcbabc94b6775f5470df..b0a7c41372609de260298d40490781bb63b0fa1d 100644 +index edea89eebb9a99e41dc2bcbabc94b6775f5470df..053dbed42a74a5721cfe9f6d70cd965ede3ef1f3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2699,6 +2699,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S stack.setCount(0); // Paper - destroy this item - if this ever leaks due to game bugs, ensure it doesn't dupe entityitem.setDefaultPickUpDelay(); -+ // Paper start ++ // Paper start - Call EntityDropItemEvent + return this.spawnAtLocation(entityitem); + } + } + @Nullable + public ItemEntity spawnAtLocation(ItemEntity entityitem) { + { -+ // Paper end ++ // Paper end - Call EntityDropItemEvent // CraftBukkit start EntityDropItemEvent event = new EntityDropItemEvent(this.getBukkitEntity(), (org.bukkit.entity.Item) entityitem.getBukkitEntity()); Bukkit.getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -index fb5e200499a1a73fd40c8b7c81185f48381f49e4..e555fd8ca61e1ce7a52ecd475cc3ea11dedcab08 100644 +index fb5e200499a1a73fd40c8b7c81185f48381f49e4..178e1e75fcd0e60a1dd2729a894df08cf4129526 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java @@ -592,7 +592,7 @@ public class Dolphin extends WaterAnimal { @@ -32,12 +32,12 @@ index fb5e200499a1a73fd40c8b7c81185f48381f49e4..e555fd8ca61e1ce7a52ecd475cc3ea11 entityitem.setDeltaMovement((double) (0.3F * -Mth.sin(Dolphin.this.getYRot() * 0.017453292F) * Mth.cos(Dolphin.this.getXRot() * 0.017453292F) + Mth.cos(f1) * f2), (double) (0.3F * Mth.sin(Dolphin.this.getXRot() * 0.017453292F) * 1.5F), (double) (0.3F * Mth.cos(Dolphin.this.getYRot() * 0.017453292F) * Mth.cos(Dolphin.this.getXRot() * 0.017453292F) + Mth.sin(f1) * f2)); - Dolphin.this.level().addFreshEntity(entityitem); -+ Dolphin.this.spawnAtLocation(entityitem); // Paper - call EntityDropItemEvent ++ Dolphin.this.spawnAtLocation(entityitem); // Paper - Call EntityDropItemEvent } } } diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 6124209f50300eeaab45b66c2f1a5b2944119450..96799179b0dd1886f0cdc386f04e152a19b3337d 100644 +index 6124209f50300eeaab45b66c2f1a5b2944119450..94bb69a7f5795e0fbee171433632b5c3bca3b902 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -509,14 +509,14 @@ public class Fox extends Animal implements VariantHolder { @@ -45,7 +45,7 @@ index 6124209f50300eeaab45b66c2f1a5b2944119450..96799179b0dd1886f0cdc386f04e152a entityitem.setThrower(this); this.playSound(SoundEvents.FOX_SPIT, 1.0F, 1.0F); - this.level().addFreshEntity(entityitem); -+ this.spawnAtLocation(entityitem); // Paper - call EntityDropItemEvent ++ this.spawnAtLocation(entityitem); // Paper - Call EntityDropItemEvent } } @@ -53,12 +53,12 @@ index 6124209f50300eeaab45b66c2f1a5b2944119450..96799179b0dd1886f0cdc386f04e152a ItemEntity entityitem = new ItemEntity(this.level(), this.getX(), this.getY(), this.getZ(), stack); - this.level().addFreshEntity(entityitem); -+ this.spawnAtLocation(entityitem); // Paper - call EntityDropItemEvent ++ this.spawnAtLocation(entityitem); // Paper - Call EntityDropItemEvent } @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 3ec2f590dfe9410f1a9d2afb530eebfcce917798..363892e0c26bab89d2abaa44d8736e2fd84d292f 100644 +index 3ec2f590dfe9410f1a9d2afb530eebfcce917798..cafea947d49b729268c0fce98ce7fcf4b0c69478 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -357,8 +357,7 @@ public class Goat extends Animal { @@ -67,22 +67,22 @@ index 3ec2f590dfe9410f1a9d2afb530eebfcce917798..363892e0c26bab89d2abaa44d8736e2f - this.level().addFreshEntity(entityitem); - return true; -+ return this.spawnAtLocation(entityitem) != null; // Paper - call EntityDropItemEvent by calling spawnAtLocation. ++ return this.spawnAtLocation(entityitem) != null; // Paper - Call EntityDropItemEvent } } diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index 1d9913cbc7fd0c6e29278b02c38703b52af1245b..36b3945832733b5ad66d25aa3a31335234d2acff 100644 +index 1d9913cbc7fd0c6e29278b02c38703b52af1245b..0e85e3ab58d848b119212fa7d2eb4f92d3efe29b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -352,8 +352,9 @@ public class Sniffer extends Animal { entityitem.setDefaultPickUpDelay(); this.finalizeSpawnChildFromBreeding(world, other, (AgeableMob) null); -+ if (this.spawnAtLocation(entityitem) != null) { // Paper - call EntityDropItemEvent ++ if (this.spawnAtLocation(entityitem) != null) { // Paper - Call EntityDropItemEvent this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F); - world.addFreshEntity(entityitem); -+ } // Paper ++ } // Paper - Call EntityDropItemEvent } @Override diff --git a/patches/server/0811-More-Teleport-API.patch b/patches/server/0811-More-Teleport-API.patch index bf438f289045..b8e1cf1e0b61 100644 --- a/patches/server/0811-More-Teleport-API.patch +++ b/patches/server/0811-More-Teleport-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] More Teleport API diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index be9584daa1da322855524386acf7718d825a7034..94ea292ea1754c5b0b0776a2dcce034194fb0290 100644 +index be9584daa1da322855524386acf7718d825a7034..6498ce505226d35f30062bc3aa52388b739c13fe 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1637,11 +1637,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -19,12 +19,12 @@ index be9584daa1da322855524386acf7718d825a7034..94ea292ea1754c5b0b0776a2dcce0341 + relativeFlags.add(org.bukkit.craftbukkit.entity.CraftPlayer.toApiRelativeFlag(relativeArgument)); + } + PlayerTeleportEvent event = new PlayerTeleportEvent(player, from.clone(), to.clone(), cause, java.util.Set.copyOf(relativeFlags)); -+ // Paper end ++ // Paper end - Teleport API this.cserver.getPluginManager().callEvent(event); if (event.isCancelled() || !to.equals(event.getTo())) { - set.clear(); // Can't relative teleport -+ // set.clear(); // Can't relative teleport // Paper - Teleport API: Now you can! ++ // set.clear(); // Can't relative teleport // Paper - Teleport API; Now you can! to = event.isCancelled() ? event.getFrom() : event.getTo(); d0 = to.getX(); d1 = to.getY(); diff --git a/patches/server/0812-Add-EntityPortalReadyEvent.patch b/patches/server/0812-Add-EntityPortalReadyEvent.patch index 3354641f4f32..eb9b6b6956b6 100644 --- a/patches/server/0812-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0812-Add-EntityPortalReadyEvent.patch @@ -5,20 +5,20 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b0a7c41372609de260298d40490781bb63b0fa1d..fcef36f5314107f416953fbd0f891da7348c2243 100644 +index 053dbed42a74a5721cfe9f6d70cd965ede3ef1f3..5a57fe0dacd4baf3fea9b64f6325acc34b946036 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3099,6 +3099,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit this.level().getProfiler().push("portal"); this.portalTime = i; -+ // Paper start ++ // Paper start - Add EntityPortalReadyEvent + io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER); + if (!event.callEvent()) { + this.portalTime = 0; + } else { + worldserver1 = event.getTargetWorld() == null ? null : ((CraftWorld) event.getTargetWorld()).getHandle(); -+ // Paper end ++ // Paper end - Add EntityPortalReadyEvent this.setPortalCooldown(); // CraftBukkit start if (this instanceof ServerPlayer) { @@ -26,7 +26,7 @@ index b0a7c41372609de260298d40490781bb63b0fa1d..fcef36f5314107f416953fbd0f891da7 } else { this.changeDimension(worldserver1); } -+ } // Paper ++ } // Paper - Add EntityPortalReadyEvent // CraftBukkit end this.level().getProfiler().pop(); } diff --git a/patches/server/0813-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0813-Don-t-use-level-random-in-entity-constructors.patch index d895b4283c3b..d587e0e603f3 100644 --- a/patches/server/0813-Don-t-use-level-random-in-entity-constructors.patch +++ b/patches/server/0813-Don-t-use-level-random-in-entity-constructors.patch @@ -9,7 +9,7 @@ should be supported. Some entities (for whatever reason) use the level's random in some places. diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index fc14a2eb464675f8fb0bff916992687adb4e3d25..6b18f23b57c7000dce9726df98a509ee9477f6d2 100644 +index fc14a2eb464675f8fb0bff916992687adb4e3d25..e19a0f1fac3dd04927f73f3d11a921ffc4608388 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -66,7 +66,12 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -17,17 +17,17 @@ index fc14a2eb464675f8fb0bff916992687adb4e3d25..6b18f23b57c7000dce9726df98a509ee public ItemEntity(Level world, double x, double y, double z, ItemStack stack) { - this(world, x, y, z, stack, world.random.nextDouble() * 0.2D - 0.1D, 0.2D, world.random.nextDouble() * 0.2D - 0.1D); -+ // Paper start - don't use world random in entity constructor ++ // Paper start - Don't use level random in entity constructors (to make them thread-safe) + this(EntityType.ITEM, world); + this.setPos(x, y, z); + this.setDeltaMovement(this.random.nextDouble() * 0.2D - 0.1D, 0.2D, this.random.nextDouble() * 0.2D - 0.1D); + this.setItem(stack); -+ // Paper end ++ // Paper end - Don't use level random in entity constructors } public ItemEntity(Level world, double x, double y, double z, ItemStack stack, double velocityX, double velocityY, double velocityZ) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index d9ed22e9853eebdf6c517b41787a27a1a56a0871..c3e47426382296d650fa00ce0bc1a82bf23c7877 100644 +index d9ed22e9853eebdf6c517b41787a27a1a56a0871..2274541c9386e4f1bbae489a1f123d502ccbf9cc 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -43,7 +43,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { @@ -35,7 +35,7 @@ index d9ed22e9853eebdf6c517b41787a27a1a56a0871..c3e47426382296d650fa00ce0bc1a82b this(EntityType.TNT, world); this.setPos(x, y, z); - double d3 = world.random.nextDouble() * 6.2831854820251465D; -+ double d3 = this.random.nextDouble() * 6.2831854820251465D; // Paper - don't use world random in entity constructor ++ double d3 = this.random.nextDouble() * 6.2831854820251465D; // Paper - Don't use level random in entity constructors this.setDeltaMovement(-Math.sin(d3) * 0.02D, 0.20000000298023224D, -Math.cos(d3) * 0.02D); this.setFuse(80); diff --git a/patches/server/0814-Send-block-entities-after-destroy-prediction.patch b/patches/server/0814-Send-block-entities-after-destroy-prediction.patch index bdd6c9524697..47702f4d3e59 100644 --- a/patches/server/0814-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0814-Send-block-entities-after-destroy-prediction.patch @@ -7,15 +7,15 @@ Minecraft's prediction system does not handle block entities, so if we are manua block breaking we need to set it after the prediction is finished. This fixes block entities not showing when cancelling the BlockBreakEvent. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index bf9b185e3defb496022c20ec60a84a4f6f99d5be..4e1ed252bf400ec991f95b02984f01a9689f2989 100644 +index bf9b185e3defb496022c20ec60a84a4f6f99d5be..c29ac2fd8dd08fe0c87abc3efb92e539dfdfd739 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -62,6 +62,8 @@ public class ServerPlayerGameMode { private BlockPos delayedDestroyPos; private int delayedTickStart; private int lastSentState; -+ public boolean captureSentBlockEntities = false; // Paper -+ public boolean capturedBlockEntity = false; // Paper ++ public boolean captureSentBlockEntities = false; // Paper - Send block entities after destroy prediction ++ public boolean capturedBlockEntity = false; // Paper - Send block entities after destroy prediction public ServerPlayerGameMode(ServerPlayer player) { this.gameModeForPlayer = GameType.DEFAULT_MODE; @@ -27,7 +27,7 @@ index bf9b185e3defb496022c20ec60a84a4f6f99d5be..4e1ed252bf400ec991f95b02984f01a9 - if (tileentity != null) { - this.player.connection.send(tileentity.getUpdatePacket()); - } -+ capturedBlockEntity = true; // Paper - send block entity after predicting ++ capturedBlockEntity = true; // Paper - Send block entities after destroy prediction // CraftBukkit end return; } @@ -39,7 +39,7 @@ index bf9b185e3defb496022c20ec60a84a4f6f99d5be..4e1ed252bf400ec991f95b02984f01a9 - if (tileentity != null) { - this.player.connection.send(tileentity.getUpdatePacket()); - } -+ capturedBlockEntity = true; // Paper - send block entity after predicting ++ capturedBlockEntity = true; // Paper - Send block entities after destroy prediction return; } // CraftBukkit end @@ -47,30 +47,30 @@ index bf9b185e3defb496022c20ec60a84a4f6f99d5be..4e1ed252bf400ec991f95b02984f01a9 } // Update any tile entity data for this block -+ if (!captureSentBlockEntities) { // Paper - Toggle this location for capturing as this is used for api ++ if (!captureSentBlockEntities) { // Paper - Send block entities after destroy prediction BlockEntity tileentity = this.level.getBlockEntity(pos); if (tileentity != null) { this.player.connection.send(tileentity.getUpdatePacket()); } -+ } else {capturedBlockEntity = true;} // Paper end ++ } else {capturedBlockEntity = true;} // Paper - Send block entities after destroy prediction return false; } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 94ea292ea1754c5b0b0776a2dcce034194fb0290..3f60f33c43dfcc4ea99a80c66a70222b2ea2f4a6 100644 +index 6498ce505226d35f30062bc3aa52388b739c13fe..e6bb211374b7fba2e275dd43604ab5a171c833d7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1783,8 +1783,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return; } // Paper end - Don't allow digging in unloaded chunks -+ // Paper start - send block entities after prediction ++ // Paper start - Send block entities after destroy prediction + this.player.gameMode.capturedBlockEntity = false; + this.player.gameMode.captureSentBlockEntities = true; -+ // Paper end - send block entities after prediction ++ // Paper end - Send block entities after destroy prediction this.player.gameMode.handleBlockBreakAction(blockposition, packetplayinblockdig_enumplayerdigtype, packet.getDirection(), this.player.level().getMaxBuildHeight(), packet.getSequence()); this.player.connection.ackBlockChangesUpTo(packet.getSequence()); -+ // Paper start - send block entities after prediction ++ // Paper start - Send block entities after destroy prediction + this.player.gameMode.captureSentBlockEntities = false; + // If a block entity was modified speedup the block change ack to avoid the block entity + // being overriden. @@ -85,7 +85,7 @@ index 94ea292ea1754c5b0b0776a2dcce034194fb0290..3f60f33c43dfcc4ea99a80c66a70222b + this.player.connection.send(tileentity.getUpdatePacket()); + } + } -+ // Paper end - send block entities after prediction ++ // Paper end - Send block entities after destroy prediction return; default: throw new IllegalArgumentException("Invalid player action"); diff --git a/patches/server/0815-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0815-Warn-on-plugins-accessing-faraway-chunks.patch index aa1e889ad2b0..dede36329442 100644 --- a/patches/server/0815-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0815-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8200844b73dc7181d5867aafa83087e09ff2df76..28ed2605bc3f4d657f6f58729134aeb81a98dac4 100644 +index 8200844b73dc7181d5867aafa83087e09ff2df76..e853c9fdc8ebde6a653aacbb1db6679ce4d9d50b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -813,7 +813,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -13,7 +13,7 @@ index 8200844b73dc7181d5867aafa83087e09ff2df76..28ed2605bc3f4d657f6f58729134aeb8 private static boolean isInWorldBoundsHorizontal(BlockPos pos) { - return pos.getX() >= -30000000 && pos.getZ() >= -30000000 && pos.getX() < 30000000 && pos.getZ() < 30000000; -+ return pos.getX() >= -30000000 && pos.getZ() >= -30000000 && pos.getX() < 30000000 && pos.getZ() < 30000000; // Dif on change ++ return pos.getX() >= -30000000 && pos.getZ() >= -30000000 && pos.getX() < 30000000 && pos.getZ() < 30000000; // Diff on change warnUnsafeChunk() } private static boolean isOutsideSpawnableHeight(int y) { diff --git a/patches/server/0817-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0817-Add-and-fix-missing-BlockFadeEvents.patch index 45acbcd56f1f..e43c29d3d8fb 100644 --- a/patches/server/0817-Add-and-fix-missing-BlockFadeEvents.patch +++ b/patches/server/0817-Add-and-fix-missing-BlockFadeEvents.patch @@ -10,7 +10,7 @@ potentially waterlogged block states fading. Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index a4ca58384ae2a39ec568b153cc1a4f7704136108..0a2de99c22cfcc96a664dc2afe7379987ea815db 100644 +index a4ca58384ae2a39ec568b153cc1a4f7704136108..3777e60d0b81e242b1a6e9b0be3e2f21a1642335 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java @@ -92,6 +92,11 @@ public class FrogspawnBlock extends Block { @@ -21,7 +21,7 @@ index a4ca58384ae2a39ec568b153cc1a4f7704136108..0a2de99c22cfcc96a664dc2afe737998 + if (org.bukkit.craftbukkit.event.CraftEventFactory.callBlockFadeEvent(world, pos, Blocks.AIR.defaultBlockState()).isCancelled()) { + return; + } -+ // Paper end ++ // Paper end - Call BlockFadeEvent this.destroyBlock(world, pos); world.playSound((Player)null, pos, SoundEvents.FROGSPAWN_HATCH, SoundSource.BLOCKS, 1.0F, 1.0F); this.spawnTadpoles(world, pos, random); @@ -39,20 +39,20 @@ index f660e58badfcc2a90e6dd618428a21bf5ad34969..13ee09f93ec325e416a2b29e3608e870 FallingBlockEntity.fall(world, pos, iblockdata1); } else { diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 615ee22b4948d6a4869dc8b2111f48056969dd79..3cedc349e79665d3d471c92b5dca25c9e66ca0bf 100644 +index 615ee22b4948d6a4869dc8b2111f48056969dd79..8782b05575e4a8d5e5c667c43808442b81c13f6b 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java @@ -61,12 +61,26 @@ public class SnifferEggBlock extends Block { return this.getHatchLevel(state) == 2; } -+ // Paper start ++ // Paper start - Call BlockFadeEvent + private void rescheduleTick(ServerLevel world, BlockPos pos) { + int baseDelay = hatchBoost(world, pos) ? BOOSTED_HATCH_TIME_TICKS : REGULAR_HATCH_TIME_TICKS; + world.scheduleTick(pos, this, (baseDelay / 3) + world.random.nextInt(RANDOM_HATCH_OFFSET_TICKS)); + // reschedule to avoid being stuck here and behave like the other calls (see #onPlace) + } -+ // Paper end ++ // Paper end - Call BlockFadeEvent + @Override public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { @@ -65,7 +65,7 @@ index 615ee22b4948d6a4869dc8b2111f48056969dd79..3cedc349e79665d3d471c92b5dca25c9 + rescheduleTick(world, pos); + return; + } -+ // Paper end ++ // Paper end - Call BlockFadeEvent world.playSound((Player)null, pos, SoundEvents.SNIFFER_EGG_HATCH, SoundSource.BLOCKS, 0.7F, 0.9F + random.nextFloat() * 0.2F); world.destroyBlock(pos, false); Sniffer sniffer = EntityType.SNIFFER.create(world); diff --git a/patches/server/0821-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0821-Add-Velocity-IP-Forwarding-Support.patch index 3f8870171a1e..967c9f9a73d5 100644 --- a/patches/server/0821-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0821-Add-Velocity-IP-Forwarding-Support.patch @@ -15,10 +15,10 @@ login plugin message packet. diff --git a/src/main/java/com/destroystokyo/paper/proxy/VelocityProxy.java b/src/main/java/com/destroystokyo/paper/proxy/VelocityProxy.java new file mode 100644 -index 0000000000000000000000000000000000000000..a34381122de53123169927e181df662814df4816 +index 0000000000000000000000000000000000000000..3c31ff3330c2e925e205c0c9ff4f0b832682b576 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/proxy/VelocityProxy.java -@@ -0,0 +1,75 @@ +@@ -0,0 +1,86 @@ +package com.destroystokyo.paper.proxy; + +import io.papermc.paper.configuration.GlobalConfiguration; @@ -37,6 +37,17 @@ index 0000000000000000000000000000000000000000..a34381122de53123169927e181df6628 +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.ProfilePublicKey; + ++/** ++ * While Velocity supports BungeeCord-style IP forwarding, it is not secure. Users ++ * have a lot of problems setting up firewalls or setting up plugins like IPWhitelist. ++ * Further, the BungeeCord IP forwarding protocol still retains essentially its original ++ * form, when there is brand-new support for custom login plugin messages in 1.13. ++ *

++ * Velocity's modern IP forwarding uses an HMAC-SHA256 code to ensure authenticity ++ * of messages, is packed into a binary format that is smaller than BungeeCord's ++ * forwarding, and is integrated into the Minecraft login process by using the 1.13 ++ * login plugin message packet. ++ */ +public class VelocityProxy { + private static final int SUPPORTED_FORWARDING_VERSION = 1; + public static final int MODERN_FORWARDING_WITH_KEY = 2; @@ -95,18 +106,18 @@ index 0000000000000000000000000000000000000000..a34381122de53123169927e181df6628 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 4d7124ae7cefcc8c65bf74ac9d3c103fe6817c42..9d7e1b306f8c96883dbe1adbf7e77825da4cbc21 100644 +index 4d7124ae7cefcc8c65bf74ac9d3c103fe6817c42..bbe9ad20a664bcd3952f3a4643add957d20fce20 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -274,13 +274,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface this.server.enablePlugins(org.bukkit.plugin.PluginLoadOrder.STARTUP); // CraftBukkit end -+ // Paper start ++ // Paper start - Add Velocity IP Forwarding Support + boolean usingProxy = org.spigotmc.SpigotConfig.bungee || io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled; + String proxyFlavor = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "Velocity" : "BungeeCord"; + String proxyLink = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "https://docs.papermc.io/velocity/security" : "http://www.spigotmc.org/wiki/firewall-guide/"; -+ // Paper end ++ // Paper end - Add Velocity IP Forwarding Support if (!this.usesAuthentication()) { DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware."); @@ -114,23 +125,23 @@ index 4d7124ae7cefcc8c65bf74ac9d3c103fe6817c42..9d7e1b306f8c96883dbe1adbf7e77825 - if (org.spigotmc.SpigotConfig.bungee) { - DedicatedServer.LOGGER.warn("Whilst this makes it possible to use BungeeCord, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose."); - DedicatedServer.LOGGER.warn("Please see http://www.spigotmc.org/wiki/firewall-guide/ for further information."); -+ // Paper start ++ // Paper start - Add Velocity IP Forwarding Support + if (usingProxy) { + DedicatedServer.LOGGER.warn("Whilst this makes it possible to use " + proxyFlavor + ", unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose."); + DedicatedServer.LOGGER.warn("Please see " + proxyLink + " for further information."); -+ // Paper end ++ // Paper end - Add Velocity IP Forwarding Support } else { DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..b9117be53b8b8b37af54621f54480f275546f0fd 100644 +index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..a9f5af48c1f97b2e635727b48f4383502b17d82f 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -64,6 +64,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, private final String serverId; private ServerPlayer player; // CraftBukkit public boolean iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation = false; // Paper - username validation overriding -+ private int velocityLoginMessageId = -1; // Paper - Velocity support ++ private int velocityLoginMessageId = -1; // Paper - Add Velocity IP Forwarding Support public ServerLoginPacketListenerImpl(MinecraftServer server, Connection connection) { this.state = ServerLoginPacketListenerImpl.State.HELLO; @@ -138,7 +149,7 @@ index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..b9117be53b8b8b37af54621f54480f27 this.state = ServerLoginPacketListenerImpl.State.KEY; this.connection.send(new ClientboundHelloPacket("", this.server.getKeyPair().getPublic().getEncoded(), this.challenge)); } else { -+ // Paper start - Velocity support ++ // Paper start - Add Velocity IP Forwarding Support + if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) { + this.velocityLoginMessageId = java.util.concurrent.ThreadLocalRandom.current().nextInt(); + net.minecraft.network.FriendlyByteBuf buf = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.buffer()); @@ -147,7 +158,7 @@ index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..b9117be53b8b8b37af54621f54480f27 + this.connection.send(packet1); + return; + } -+ // Paper end ++ // Paper end - Add Velocity IP Forwarding Support // CraftBukkit start // Paper start - Cache authenticator threads authenticatorPool.execute(new Runnable() { @@ -155,12 +166,12 @@ index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..b9117be53b8b8b37af54621f54480f27 // CraftBukkit start private GameProfile callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception { // Paper - Add more fields to AsyncPlayerPreLoginEvent -+ // Paper start - Velocity support ++ // Paper start - Add Velocity IP Forwarding Support + if (ServerLoginPacketListenerImpl.this.velocityLoginMessageId == -1 && io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) { + disconnect("This server requires you to connect with Velocity."); + return gameprofile; + } -+ // Paper end - Velocity support ++ // Paper end - Add Velocity IP Forwarding Support String playerName = gameprofile.getName(); java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress(); java.util.UUID uniqueId = gameprofile.getId(); @@ -168,7 +179,7 @@ index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..b9117be53b8b8b37af54621f54480f27 @Override public void handleCustomQueryPacket(ServerboundCustomQueryAnswerPacket packet) { -+ // Paper start - Velocity support ++ // Paper start - Add Velocity IP Forwarding Support + if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled && packet.transactionId() == this.velocityLoginMessageId) { + ServerboundCustomQueryAnswerPacket.QueryAnswerPayload payload = (ServerboundCustomQueryAnswerPacket.QueryAnswerPayload)packet.payload(); + if (payload == null) { @@ -212,12 +223,12 @@ index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..b9117be53b8b8b37af54621f54480f27 + }); + return; + } -+ // Paper end ++ // Paper end - Add Velocity IP Forwarding Support this.disconnect(ServerLoginPacketListenerImpl.DISCONNECT_UNEXPECTED_QUERY); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 84d6b1b3ec3972281218cbe5e72c9d4ce6419c59..56e5dff13323068ad2911649e6285aa915d787bd 100644 +index 7749d9740c965baf901512b242426f9a15aca24f..7f238c76a57c9d26c0bafa3f7b4f0436c0a1b93b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -803,7 +803,7 @@ public final class CraftServer implements Server { @@ -225,7 +236,7 @@ index 84d6b1b3ec3972281218cbe5e72c9d4ce6419c59..56e5dff13323068ad2911649e6285aa9 public long getConnectionThrottle() { // Spigot Start - Automatically set connection throttle for bungee configurations - if (org.spigotmc.SpigotConfig.bungee) { -+ if (org.spigotmc.SpigotConfig.bungee || io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) { // Paper - Velocity support ++ if (org.spigotmc.SpigotConfig.bungee || io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) { // Paper - Add Velocity IP Forwarding Support return -1; } else { return this.configuration.getInt("settings.connection-throttle"); diff --git a/patches/server/0823-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0823-Fix-plugin-loggers-on-server-shutdown.patch index ba6d4a0a8dd8..47134d792ee9 100644 --- a/patches/server/0823-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0823-Fix-plugin-loggers-on-server-shutdown.patch @@ -49,18 +49,18 @@ index 002511a54565aab9eb4552fecdf974fe0eab9122..7c9f7aefc59ae1a785b261f80f25d330 // Paper end - move final shutdown items here } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 37faa5ce82ae9ca2893250d86cc2eb21c00cc81f..aca49044899f65d7e91e5762fb58dbaffbfbd4c9 100644 +index 37faa5ce82ae9ca2893250d86cc2eb21c00cc81f..39f361e2d3b31dc2587042df225132884a9156c0 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -18,6 +18,12 @@ public class Main { public static boolean useJline = true; public static boolean useConsole = true; -+ // Paper start - Hijack log manager to ensure logging on shutdown ++ // Paper start - Reset loggers after shutdown + static { + System.setProperty("java.util.logging.manager", "io.papermc.paper.log.CustomLogManager"); + } -+ // Paper end ++ // Paper end - Reset loggers after shutdown + public static void main(String[] args) { // Paper start diff --git a/patches/server/0825-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0825-Fire-EntityChangeBlockEvent-in-more-places.patch index dacb1abbfc32..e44a02f1dab6 100644 --- a/patches/server/0825-Fire-EntityChangeBlockEvent-in-more-places.patch +++ b/patches/server/0825-Fire-EntityChangeBlockEvent-in-more-places.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fire EntityChangeBlockEvent in more places Co-authored-by: ChristopheG <61288881+chrisgdt@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/LightningBolt.java b/src/main/java/net/minecraft/world/entity/LightningBolt.java -index 09c981e2573305bd7f5c3cbcc8f240fa8705a9f2..17f664f75aaaea042477e4b467c17c17d1024e3d 100644 +index 09c981e2573305bd7f5c3cbcc8f240fa8705a9f2..0db0d67f9ac15372becc1166c37f7f0aede4a4da 100644 --- a/src/main/java/net/minecraft/world/entity/LightningBolt.java +++ b/src/main/java/net/minecraft/world/entity/LightningBolt.java @@ -97,7 +97,7 @@ public class LightningBolt extends Entity { @@ -14,7 +14,7 @@ index 09c981e2573305bd7f5c3cbcc8f240fa8705a9f2..17f664f75aaaea042477e4b467c17c17 this.powerLightningRod(); - LightningBolt.clearCopperOnLightningStrike(this.level(), this.getStrikePosition()); -+ LightningBolt.clearCopperOnLightningStrike(this.level(), this.getStrikePosition(), this); // Paper - transmit LightningBolt instance to call EntityChangeBlockEvent ++ LightningBolt.clearCopperOnLightningStrike(this.level(), this.getStrikePosition(), this); // Paper - Call EntityChangeBlockEvent this.gameEvent(GameEvent.LIGHTNING_STRIKE); } } @@ -23,7 +23,7 @@ index 09c981e2573305bd7f5c3cbcc8f240fa8705a9f2..17f664f75aaaea042477e4b467c17c17 } - private static void clearCopperOnLightningStrike(Level world, BlockPos pos) { -+ private static void clearCopperOnLightningStrike(Level world, BlockPos pos, Entity lightning) { // Paper - transmit LightningBolt instance to call EntityChangeBlockEvent ++ private static void clearCopperOnLightningStrike(Level world, BlockPos pos, Entity lightning) { // Paper - Call EntityChangeBlockEvent BlockState iblockdata = world.getBlockState(pos); BlockPos blockposition1; BlockState iblockdata1; @@ -32,12 +32,12 @@ index 09c981e2573305bd7f5c3cbcc8f240fa8705a9f2..17f664f75aaaea042477e4b467c17c17 if (iblockdata1.getBlock() instanceof WeatheringCopper) { - world.setBlockAndUpdate(blockposition1, WeatheringCopper.getFirst(world.getBlockState(blockposition1))); -+ // Paper start - call EntityChangeBlockEvent ++ // Paper start - Call EntityChangeBlockEvent + BlockState newBlock = WeatheringCopper.getFirst(world.getBlockState(blockposition1)); + if (CraftEventFactory.callEntityChangeBlockEvent(lightning, blockposition1, newBlock)) { + world.setBlockAndUpdate(blockposition1, newBlock); + } -+ // Paper end ++ // Paper end - Call EntityChangeBlockEvent BlockPos.MutableBlockPos blockposition_mutableblockposition = pos.mutable(); int i = world.random.nextInt(3) + 3; diff --git a/patches/server/0826-Missing-eating-regain-reason.patch b/patches/server/0826-Missing-eating-regain-reason.patch index e04644ebf160..ce4cdd6f86cb 100644 --- a/patches/server/0826-Missing-eating-regain-reason.patch +++ b/patches/server/0826-Missing-eating-regain-reason.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Missing eating regain reason diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index 40af8405c6f3ecc5a8168bb62607eb79862cefa6..de51ce9875e12961e6e549e87d76f492d2f19787 100644 +index 40af8405c6f3ecc5a8168bb62607eb79862cefa6..ff32fb9e2302cf34f6ddd5647706d37980342657 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -387,7 +387,7 @@ public class Cat extends TamableAnimal implements VariantHolder { @@ -13,12 +13,12 @@ index 40af8405c6f3ecc5a8168bb62607eb79862cefa6..de51ce9875e12961e6e549e87d76f492 if (item.isEdible() && this.isFood(itemstack) && this.getHealth() < this.getMaxHealth()) { this.usePlayerItem(player, hand, itemstack); - this.heal((float) item.getFoodProperties().getNutrition()); -+ this.heal((float) item.getFoodProperties().getNutrition(), org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.EATING); // Paper ++ this.heal((float) item.getFoodProperties().getNutrition(), org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.EATING); // Paper - Add missing regain reason return InteractionResult.CONSUME; } diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index 3aa98f7c282cb4884589cb83b1546b924e66f096..faf3e31f23d71bbc345bf98d4240490ac4677843 100644 +index 3aa98f7c282cb4884589cb83b1546b924e66f096..570b39592e7e3a24828c233ec2a2f113b9ef5868 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -384,7 +384,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -26,12 +26,12 @@ index 3aa98f7c282cb4884589cb83b1546b924e66f096..faf3e31f23d71bbc345bf98d4240490a boolean bl = this.getHealth() < this.getMaxHealth(); if (bl) { - this.heal(2.0F); -+ this.heal(2.0F, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.EATING); // Paper ++ this.heal(2.0F, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.EATING); // Paper - Add missing regain reason } boolean bl2 = this.isTamed() && this.getAge() == 0 && this.canFallInLove(); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 91fb62807b3c5600c83d4dc8d3fadf36e94e2133..5f61c97478f005aaaaad1b027118079db7275cf7 100644 +index 91fb62807b3c5600c83d4dc8d3fadf36e94e2133..9b5b894d43f25566ab9c3698705e978ab823a0d2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java @@ -196,7 +196,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder 0.0F) { - this.heal(f); -+ this.heal(f, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.EATING); // Paper ++ this.heal(f, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.EATING); // Paper - Add missing regain reason flag = true; } diff --git a/patches/server/0827-Missing-effect-cause.patch b/patches/server/0827-Missing-effect-cause.patch index 2e4ef13ae73c..6710474f4be2 100644 --- a/patches/server/0827-Missing-effect-cause.patch +++ b/patches/server/0827-Missing-effect-cause.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Missing effect cause diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index af5db5da4e5b2fd90a5cf0ca3c92e87ba82d4779..387006271c246362b0df1bfcadca7b7096660003 100644 +index af5db5da4e5b2fd90a5cf0ca3c92e87ba82d4779..b21e180641d17438997a80e5bcb0ec7998d24a2e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -419,7 +419,7 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder { - user.addEffect(effect.createEffectInstance()); -+ user.addEffect(effect.createEffectInstance(), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.FOOD); // Paper ++ user.addEffect(effect.createEffectInstance(), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.FOOD); // Paper - Add missing effect cause }); return user instanceof Player && ((Player)user).getAbilities().instabuild ? itemStack : new ItemStack(Items.BOWL); } diff --git a/patches/server/0830-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0830-Call-BlockPhysicsEvent-more-often.patch index ea04c3e24989..0adcc7e1fbe3 100644 --- a/patches/server/0830-Call-BlockPhysicsEvent-more-often.patch +++ b/patches/server/0830-Call-BlockPhysicsEvent-more-often.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Call BlockPhysicsEvent more often diff --git a/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java b/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java -index 7d54abc2553f4b319df4d533a0b689c1807b6102..598dc0d3a2b9387e76d7e4e19e54c4573a24bc54 100644 +index 7d54abc2553f4b319df4d533a0b689c1807b6102..395bb163fb1d62dd2e6949e1146c337c0bbc626f 100644 --- a/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java +++ b/src/main/java/net/minecraft/world/level/redstone/CollectingNeighborUpdater.java @@ -119,7 +119,27 @@ public class CollectingNeighborUpdater implements NeighborUpdater { @@ -13,7 +13,7 @@ index 7d54abc2553f4b319df4d533a0b689c1807b6102..598dc0d3a2b9387e76d7e4e19e54c457 BlockPos blockPos = this.sourcePos.relative(NeighborUpdater.UPDATE_ORDER[this.idx++]); BlockState blockState = world.getBlockState(blockPos); - NeighborUpdater.executeUpdate(world, blockState, blockPos, this.sourceBlock, this.sourcePos, false); -+ // Paper start ++ // Paper start - Call BlockPhysicsEvent + try { + boolean cancelled = false; + org.bukkit.craftbukkit.CraftWorld cworld = world.getWorld(); @@ -33,7 +33,7 @@ index 7d54abc2553f4b319df4d533a0b689c1807b6102..598dc0d3a2b9387e76d7e4e19e54c457 + } catch (StackOverflowError ex) { + world.lastPhysicsProblem = new BlockPos(blockPos); + } -+ // Paper end ++ // Paper end - Call BlockPhysicsEvent if (this.idx < NeighborUpdater.UPDATE_ORDER.length && NeighborUpdater.UPDATE_ORDER[this.idx] == this.skipDirection) { ++this.idx; } diff --git a/patches/server/0833-fix-Jigsaw-block-kicking-user.patch b/patches/server/0833-fix-Jigsaw-block-kicking-user.patch index 2972f2f48c1e..3c04241bd644 100644 --- a/patches/server/0833-fix-Jigsaw-block-kicking-user.patch +++ b/patches/server/0833-fix-Jigsaw-block-kicking-user.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix Jigsaw block kicking user diff --git a/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java -index 72d89e8999825b43a36ed9ee8f4545bde3927690..3a210e138b6ae065fd32e1b1e0e49999e20c4667 100644 +index 72d89e8999825b43a36ed9ee8f4545bde3927690..e2e31d6383c7de4f2eede46987d51978a5692639 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/JigsawBlockEntity.java @@ -133,7 +133,12 @@ public class JigsawBlockEntity extends BlockEntity { @@ -18,7 +18,7 @@ index 72d89e8999825b43a36ed9ee8f4545bde3927690..3a210e138b6ae065fd32e1b1e0e49999 + if (holder == null) { + return; + } -+ // Paper end ++ // Paper end - Replace getHolderOrThrow with a null check JigsawPlacement.generateJigsaw(world, holder, this.target, maxDepth, blockPos, keepJigsaws); } diff --git a/patches/server/0834-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0834-use-BlockFormEvent-for-mud-converting-into-clay.patch index 443d960dbbf4..5d836bf94830 100644 --- a/patches/server/0834-use-BlockFormEvent-for-mud-converting-into-clay.patch +++ b/patches/server/0834-use-BlockFormEvent-for-mud-converting-into-clay.patch @@ -5,7 +5,7 @@ Subject: [PATCH] use BlockFormEvent for mud converting into clay diff --git a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java -index e59f9b83606da83f15924477ea2a2c4b74e7d892..bd22d3fdecbc992b11073a74d854b7d1b43c3f6a 100644 +index e59f9b83606da83f15924477ea2a2c4b74e7d892..e310abaca79615caaa75d92183a57242734266a3 100644 --- a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java @@ -220,10 +220,13 @@ public class PointedDripstoneBlock extends Block implements Fallable, SimpleWate @@ -13,13 +13,13 @@ index e59f9b83606da83f15924477ea2a2c4b74e7d892..bd22d3fdecbc992b11073a74d854b7d1 BlockState iblockdata1 = Blocks.CLAY.defaultBlockState(); - world.setBlockAndUpdate(((PointedDripstoneBlock.FluidInfo) optional.get()).pos, iblockdata1); -+ // Paper start ++ // Paper start - Call BlockFormEvent + if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(world, ((PointedDripstoneBlock.FluidInfo) optional.get()).pos, iblockdata1)) { Block.pushEntitiesUp(((PointedDripstoneBlock.FluidInfo) optional.get()).sourceState, iblockdata1, world, ((PointedDripstoneBlock.FluidInfo) optional.get()).pos); world.gameEvent(GameEvent.BLOCK_CHANGE, ((PointedDripstoneBlock.FluidInfo) optional.get()).pos, GameEvent.Context.of(iblockdata1)); world.levelEvent(1504, blockposition1, 0); + } -+ //Paper end ++ // Paper end - Call BlockFormEvent } else { BlockPos blockposition2 = PointedDripstoneBlock.findFillableCauldronBelowStalactiteTip(world, blockposition1, fluidtype); diff --git a/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch index 06879a4865d9..9fc9bbec8d16 100644 --- a/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch @@ -64,6 +64,12 @@ https://bugs.mojang.com/browse/MC-153086 https://bugs.mojang.com/browse/MC-200092 Fix yaw being ignored for a player's first spawn pos +https://bugs.mojang.com/browse/MC-158900 + Fix error when joining after tempban expired + +https://bugs.mojang.com/browse/MC-259571 + Fix last gamemode not being saved on death or reload + == AT == public net/minecraft/world/entity/Mob leashInfoTag @@ -136,7 +142,7 @@ index 2bfa9d1abf7a777b588314d314d06be3b4d2c6a5..0a4586d1b847de49d9e6faa16dba6de4 if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 08acf8c6e6c624016ca97eef15da29d338433411..e6b6dcdb08e71fbcb27757413816c1329510eadc 100644 +index f2677922cb97c9aa34f2e80769ac9cccc3dc8089..958b013cc4805704cec9a87835f3541e7d3c7faa 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -468,14 +468,14 @@ public class ServerPlayer extends Player { @@ -157,7 +163,7 @@ index 08acf8c6e6c624016ca97eef15da29d338433411..e6b6dcdb08e71fbcb27757413816c132 while (!world.noCollision(this, this.getBoundingBox(), true) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { // Paper - make sure this loads chunks, we default to NOT loading now this.setPos(this.getX(), this.getY() + 1.0D, this.getZ()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 4e1ed252bf400ec991f95b02984f01a9689f2989..805c9b9b0e89002b97e1e11e1e6e2435315b8f2c 100644 +index c29ac2fd8dd08fe0c87abc3efb92e539dfdfd739..08a013310970c8223b2e942992a0df2e99fb419b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -92,7 +92,7 @@ public class ServerPlayerGameMode { @@ -279,7 +285,7 @@ index 19540fd4a7f992888fadb6501d0c8a5a7e71fcf6..e241ae250f4f04a17ef2c583d00b065a public void start() { this.creeper.getNavigation().stop(); diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 363892e0c26bab89d2abaa44d8736e2fd84d292f..111a244087e24f25ba8524a46a228da10cd9498a 100644 +index cafea947d49b729268c0fce98ce7fcf4b0c69478..2e631060d1b46c4cfeb8a64b879e995e7109fee8 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -239,9 +239,10 @@ public class Goat extends Animal { diff --git a/patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch index d47a8217254f..aece2cd81823 100644 --- a/patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0a4586d1b847de49d9e6faa16dba6de4a6a7cca6..c3ee52f2ad47c6f92b0e8cb284a14a3376fabba7 100644 +index 0a4586d1b847de49d9e6faa16dba6de4a6a7cca6..a1411657b226c3eb3fb68bbf7f7afe8524fd96b2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2641,7 +2641,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -13,7 +13,7 @@ index 0a4586d1b847de49d9e6faa16dba6de4a6a7cca6..c3ee52f2ad47c6f92b0e8cb284a14a33 Mob entityinsentient = (Mob) entity; - if (ServerLevel.this.isUpdatingNavigations) { -+ if (false && ServerLevel.this.isUpdatingNavigations) { // Paper ++ if (false && ServerLevel.this.isUpdatingNavigations) { // Paper - Remove unnecessary onTrackingStart during navigation warning String s = "onTrackingStart called during navigation iteration"; Util.logAndPauseIfInIde("onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration")); @@ -22,7 +22,7 @@ index 0a4586d1b847de49d9e6faa16dba6de4a6a7cca6..c3ee52f2ad47c6f92b0e8cb284a14a33 Mob entityinsentient = (Mob) entity; - if (ServerLevel.this.isUpdatingNavigations) { -+ if (false && ServerLevel.this.isUpdatingNavigations) { // Paper ++ if (false && ServerLevel.this.isUpdatingNavigations) { // Paper - Remove unnecessary onTrackingStart during navigation warning String s = "onTrackingStart called during navigation iteration"; Util.logAndPauseIfInIde("onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration")); diff --git a/patches/server/0839-EntityPickupItemEvent-fixes.patch b/patches/server/0839-EntityPickupItemEvent-fixes.patch index ac3383dceda5..a4941926952b 100644 --- a/patches/server/0839-EntityPickupItemEvent-fixes.patch +++ b/patches/server/0839-EntityPickupItemEvent-fixes.patch @@ -12,7 +12,7 @@ Fires the event when a Raider tries to pick up a raid banner to become raid leader. diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 1c42425b9211bea7cb189e967e566ad80fd278c2..6407ddef8442fce4f310ac4babf3e3de0dd5fc9a 100644 +index 1c42425b9211bea7cb189e967e566ad80fd278c2..7c1715c9f29eda23b9b517769fdd338c94ecbf8d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -424,7 +424,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -20,12 +20,12 @@ index 1c42425b9211bea7cb189e967e566ad80fd278c2..6407ddef8442fce4f310ac4babf3e3de @Override protected void pickUpItem(ItemEntity item) { - this.onItemPickup(item); -+ // this.onItemPickup(item); // Paper - call in PiglinAi#pickUpItem after EntityPickupItemEvent is fired ++ // this.onItemPickup(item); // Paper - EntityPickupItemEvent fixes; call in PiglinAi#pickUpItem after EntityPickupItemEvent is fired PiglinAi.pickUpItem(this, item); } diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java -index f0059bd69705ecc7964867b103c93e1df9985803..372d084609216d5437b92ee60810a9efbb0b6f31 100644 +index f0059bd69705ecc7964867b103c93e1df9985803..abf3d76c3f50536ba9b4e0acdc6f654bba7dd5e8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java @@ -241,11 +241,16 @@ public class PiglinAi { @@ -33,32 +33,32 @@ index f0059bd69705ecc7964867b103c93e1df9985803..372d084609216d5437b92ee60810a9ef // CraftBukkit start - if (drop.getItem().is(Items.GOLD_NUGGET) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(piglin, drop, 0, false).isCancelled()) { -+ // Paper start - fix event firing twice ++ // Paper start - EntityPickupItemEvent fixes; fix event firing twice + if (drop.getItem().is(Items.GOLD_NUGGET) /* && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(piglin, drop, 0, false).isCancelled() */) { + if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(piglin, drop, 0, false).isCancelled()) return; + piglin.onItemPickup(drop); // Paper - moved from Piglin#pickUpItem - call prior to item entity modification -+ // Paper end ++ // Paper end - EntityPickupItemEvent fixes piglin.take(drop, drop.getItem().getCount()); itemstack = drop.getItem(); drop.discard(); } else if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(piglin, drop, drop.getItem().getCount() - 1, false).isCancelled()) { -+ piglin.onItemPickup(drop); // Paper - moved from Piglin#pickUpItem - call prior to item entity modification ++ piglin.onItemPickup(drop); // Paper - EntityPickupItemEvent fixes; moved from Piglin#pickUpItem - call prior to item entity modification piglin.take(drop, 1); itemstack = PiglinAi.removeOneItemFromItemEntity(drop); } else { diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java -index 5538f7a9024d8708b70de836aa78a4015656a828..cdbc925ef61b8b439415f0a89368227890bcecb2 100644 +index 5538f7a9024d8708b70de836aa78a4015656a828..0df80ba3af983c0947aca64e6940df1e584f14db 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raider.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java @@ -245,6 +245,11 @@ public abstract class Raider extends PatrollingMonster { boolean flag = this.hasActiveRaid() && this.getCurrentRaid().getLeader(this.getWave()) != null; if (this.hasActiveRaid() && !flag && ItemStack.matches(itemstack, Raid.getLeaderBannerInstance())) { -+ // Paper start ++ // Paper start - EntityPickupItemEvent fixes + if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(this, item, 0, false).isCancelled()) { + return; + } -+ // Paper end ++ // Paper end - EntityPickupItemEvent fixes EquipmentSlot enumitemslot = EquipmentSlot.HEAD; ItemStack itemstack1 = this.getItemBySlot(enumitemslot); double d0 = (double) this.getEquipmentDropChance(enumitemslot); diff --git a/patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch index 07f3a66780c9..63247467d126 100644 --- a/patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch +++ b/patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Correctly handle interactions with items on cooldown diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 805c9b9b0e89002b97e1e11e1e6e2435315b8f2c..f58386e952d29a16d160b628a23efbe102791277 100644 +index 08a013310970c8223b2e942992a0df2e99fb419b..9fcac4412d7af04b233e34bd4b5501bcb61855e2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -516,6 +516,7 @@ public class ServerPlayerGameMode { @@ -25,7 +25,7 @@ index 805c9b9b0e89002b97e1e11e1e6e2435315b8f2c..f58386e952d29a16d160b628a23efbe1 } - PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(player, Action.RIGHT_CLICK_BLOCK, blockposition, hitResult.getDirection(), stack, cancelledBlock, hand, hitResult.getLocation()); -+ PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(player, Action.RIGHT_CLICK_BLOCK, blockposition, hitResult.getDirection(), stack, cancelledBlock, cancelledItem, hand, hitResult.getLocation()); // Paper ++ PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(player, Action.RIGHT_CLICK_BLOCK, blockposition, hitResult.getDirection(), stack, cancelledBlock, cancelledItem, hand, hitResult.getLocation()); // Paper - correctly handle items on cooldown this.firedInteract = true; this.interactResult = event.useItemInHand() == Event.Result.DENY; this.interactPosition = blockposition.immutable(); diff --git a/patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch index 131b4d994dca..836d117e18a2 100644 --- a/patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e6b6dcdb08e71fbcb27757413816c1329510eadc..24e6808e325bd80a55c94309aeab835804b03973 100644 +index 958b013cc4805704cec9a87835f3541e7d3c7faa..8c7356f06e4e7fcaac6fd04fbfd7b471e3bbeaef 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -379,6 +379,25 @@ public class ServerPlayer extends Player { } } -+ // Paper start ++ // Paper start - Add PlayerInventorySlotChangeEvent + @Override + public void slotChanged(AbstractContainerMenu handler, int slotId, ItemStack oldStack, ItemStack stack) { + Slot slot = handler.getSlot(slotId); @@ -30,12 +30,12 @@ index e6b6dcdb08e71fbcb27757413816c1329510eadc..24e6808e325bd80a55c94309aeab8358 + } + } + } -+ // Paper end ++ // Paper end - Add PlayerInventorySlotChangeEvent @Override public void dataChanged(AbstractContainerMenu handler, int property, int value) {} diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index b22cf4636108794092d8e289368b72a10a16d3cd..c18348f4ea79b15b081cf7ba3bd9d77212aa086e 100644 +index b22cf4636108794092d8e289368b72a10a16d3cd..2a73cdc6b347aa31a74c2372b0bdc7b00706004a 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -302,7 +302,7 @@ public abstract class AbstractContainerMenu { @@ -43,23 +43,23 @@ index b22cf4636108794092d8e289368b72a10a16d3cd..c18348f4ea79b15b081cf7ba3bd9d772 ContainerListener icrafting = (ContainerListener) iterator.next(); - icrafting.slotChanged(this, slot, itemstack2); -+ icrafting.slotChanged(this, slot, itemstack1, itemstack2); // Paper ++ icrafting.slotChanged(this, slot, itemstack1, itemstack2); // Paper - Add PlayerInventorySlotChangeEvent } } diff --git a/src/main/java/net/minecraft/world/inventory/ContainerListener.java b/src/main/java/net/minecraft/world/inventory/ContainerListener.java -index 0e19cc55646625bf32a354d3df2dc2d6bcff96f4..8ca9c14310b1e809662dd4ca6d35668992c2fc8d 100644 +index 0e19cc55646625bf32a354d3df2dc2d6bcff96f4..eba024c9aadef8902aacccea1584ffbee6c04e44 100644 --- a/src/main/java/net/minecraft/world/inventory/ContainerListener.java +++ b/src/main/java/net/minecraft/world/inventory/ContainerListener.java @@ -5,5 +5,11 @@ import net.minecraft.world.item.ItemStack; public interface ContainerListener { void slotChanged(AbstractContainerMenu handler, int slotId, ItemStack stack); -+ // Paper start ++ // Paper start - Add PlayerInventorySlotChangeEvent + default void slotChanged(AbstractContainerMenu handler, int slotId, ItemStack oldStack, ItemStack stack) { + slotChanged(handler, slotId, stack); + } -+ // Paper end ++ // Paper end - Add PlayerInventorySlotChangeEvent + void dataChanged(AbstractContainerMenu handler, int property, int value); } diff --git a/patches/server/0845-Detect-headless-JREs.patch b/patches/server/0845-Detect-headless-JREs.patch index 6a917dbfee89..1d987d6dd8aa 100644 --- a/patches/server/0845-Detect-headless-JREs.patch +++ b/patches/server/0845-Detect-headless-JREs.patch @@ -27,14 +27,14 @@ index 6bd0afddbcc461149dfe9a5c7a86fff6ea13a5f1..148d233f4f5278ff39eacdaa0f4f0e7d + } } diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 9b0bbaf23b90a04b6e6f6c97d9174fe31af557ce..786104fb12f02f493619dfc0d81ab98140d70912 100644 +index 9b0bbaf23b90a04b6e6f6c97d9174fe31af557ce..a2d7ed6c68729d1d46b1ac949b7e98cd6badedba 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -175,6 +175,18 @@ public class Main { return; } -+ // Paper start - Warn on headless ++ // Paper start - Detect headless JRE + String awtException = io.papermc.paper.util.ServerEnvironment.awtDependencyCheck(); + if (awtException != null) { + Main.LOGGER.error("You are using a headless JRE distribution."); @@ -44,7 +44,7 @@ index 9b0bbaf23b90a04b6e6f6c97d9174fe31af557ce..786104fb12f02f493619dfc0d81ab981 + Main.LOGGER.error(awtException); + return; + } -+ // Paper end ++ // Paper end - Detect headless JRE + org.spigotmc.SpigotConfig.disabledAdvancements = spigotConfiguration.getStringList("advancements.disabled"); // Paper - fix SPIGOT-5885, must be set early in init // Paper start - fix SPIGOT-5824 diff --git a/patches/server/0894-Add-EntityFertilizeEggEvent.patch b/patches/server/0894-Add-EntityFertilizeEggEvent.patch index bef1395d19fe..61a69b1a3f45 100644 --- a/patches/server/0894-Add-EntityFertilizeEggEvent.patch +++ b/patches/server/0894-Add-EntityFertilizeEggEvent.patch @@ -47,7 +47,7 @@ index 90e4e0ec0c7b0ece23c4b53f5f12b1f24e1c18ad..295769d039f2a1e4f48912a60f9dbe26 } diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index 36b3945832733b5ad66d25aa3a31335234d2acff..47a5125e44cea1ece84657cdb874807f13ee824f 100644 +index 0e85e3ab58d848b119212fa7d2eb4f92d3efe29b..0a5b953bd8c0c7f181da4090b950e9e6524b6d61 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -347,11 +347,16 @@ public class Sniffer extends Animal { @@ -65,9 +65,9 @@ index 36b3945832733b5ad66d25aa3a31335234d2acff..47a5125e44cea1ece84657cdb874807f entityitem.setDefaultPickUpDelay(); - this.finalizeSpawnChildFromBreeding(world, other, (AgeableMob) null); + this.finalizeSpawnChildFromBreeding(world, other, (AgeableMob) null, result.getExperience()); // Paper - Add EntityFertilizeEggEvent event - if (this.spawnAtLocation(entityitem) != null) { // Paper - call EntityDropItemEvent + if (this.spawnAtLocation(entityitem) != null) { // Paper - Call EntityDropItemEvent this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F); - } // Paper + } // Paper - Call EntityDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index f5a1ff50e8943d7ea75f8b8534b17f7788d094e2..5b95d95c89b962315dd07afb2a426c01c77fc4ab 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/patches/server/0986-Configure-sniffer-egg-hatch-time.patch b/patches/server/0986-Configure-sniffer-egg-hatch-time.patch index 0899af12fe43..b42c26e59c1a 100644 --- a/patches/server/0986-Configure-sniffer-egg-hatch-time.patch +++ b/patches/server/0986-Configure-sniffer-egg-hatch-time.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Configure sniffer egg hatch time diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 77952da3134d782609c66e93f5d52ec5c10d499d..f11f52c76dea7acb30bf6cc314c533f1dc0f3f0d 100644 +index 7be4e32a4409b539839a480ef83750ed4b5359a6..03da13d1fdf22b425addf0b1b7a82803f6a35b60 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java @@ -63,7 +63,7 @@ public class SnifferEggBlock extends Block { - // Paper start + // Paper start - Call BlockFadeEvent private void rescheduleTick(ServerLevel world, BlockPos pos) { - int baseDelay = hatchBoost(world, pos) ? BOOSTED_HATCH_TIME_TICKS : REGULAR_HATCH_TIME_TICKS; + int baseDelay = hatchBoost(world, pos) ? world.paperConfig().entities.sniffer.boostedHatchTime.or(BOOSTED_HATCH_TIME_TICKS) : world.paperConfig().entities.sniffer.hatchTime.or(REGULAR_HATCH_TIME_TICKS); // Paper - Configure sniffer egg hatch time diff --git a/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch index e6e08469f853..f67401b44a82 100644 --- a/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index daa42371a100928c399d3684e101707386198f72..0a1977905de97522cf3311f59a2cdc6c0a5f98f9 100644 +index ab8129da3d41c9e64897f66d0f6de24dc6d697d1..d186a46f9195d45aa91e3a2712e583ba024487f4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -944,22 +944,20 @@ public class ServerPlayer extends Player { @@ -50,7 +50,7 @@ index daa42371a100928c399d3684e101707386198f72..0a1977905de97522cf3311f59a2cdc6c if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b240dc6a1e45b534a017806b41ddb76423691ee7..14fbaef2215f7de4acb5303ad6f677b348f855d8 100644 +index 8a7fc07a8500c25b427c13d38da005b56f0892c0..36e94a6afef269007384938aa0a2c25af212ec7c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -100,7 +100,7 @@ index b240dc6a1e45b534a017806b41ddb76423691ee7..14fbaef2215f7de4acb5303ad6f677b3 - entityitem.setDefaultPickUpDelay(); + entityitem.setDefaultPickUpDelay(); // Paper - diff on change (in dropConsumer) - // Paper start + // Paper start - Call EntityDropItemEvent return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/patches/server/1031-Dont-resend-blocks-on-interactions.patch b/patches/server/1031-Dont-resend-blocks-on-interactions.patch index 69edfadb3442..cc93facb91b5 100644 --- a/patches/server/1031-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1031-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 921d9d8bc6265631073d105fb8de68562f902778..3c567a9ea921a6ae36f4dc5e16a8394ab62460a8 100644 +index be74f1360170c529b13979d865d7016f7f3ae5e8..8172449e198094d959d46d262c1136ec7e25a6da 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { @@ -18,7 +18,7 @@ index 921d9d8bc6265631073d105fb8de68562f902778..3c567a9ea921a6ae36f4dc5e16a8394a - this.player.connection.send(new ClientboundBlockUpdatePacket(this.level, pos)); + // this.player.connection.send(new ClientboundBlockUpdatePacket(this.level, pos)); // Paper - Don't resync blocks // Update any tile entity data for this block - capturedBlockEntity = true; // Paper - send block entity after predicting + capturedBlockEntity = true; // Paper - Send block entities after destroy prediction return; @@ -214,7 +214,7 @@ public class ServerPlayerGameMode { // Spigot start - handle debug stick left click for non-creative @@ -102,7 +102,7 @@ index 921d9d8bc6265631073d105fb8de68562f902778..3c567a9ea921a6ae36f4dc5e16a8394a + // Paper end - Don't resync blocks // Update any tile entity data for this block - if (!captureSentBlockEntities) { // Paper - Toggle this location for capturing as this is used for api + if (!captureSentBlockEntities) { // Paper - Send block entities after destroy prediction @@ -539,16 +543,18 @@ public class ServerPlayerGameMode { if (event.useInteractedBlock() == Event.Result.DENY) { // If we denied a door from opening, we need to send a correcting update to the client, as it already opened the door. From 3e20d3a275fe585ff317b020a0de5272c94c368a Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Thu, 18 Jan 2024 18:52:00 +0100 Subject: [PATCH 19/45] [ci skip] Add more identifying patch comments --- ...efault-CustomSpawners-in-custom-worl.patch | 4 +- ...o-worldlist-before-initing-the-world.patch | 12 ++--- .../0753-Fix-Entity-Position-Desync.patch | 4 +- patches/server/0754-Custom-Potion-Mixes.patch | 36 +++++++------- ...755-Force-close-world-loading-screen.patch | 4 +- ...0756-Fix-falling-block-spawn-methods.patch | 6 +-- ...rojectileHitEvent-for-piercing-arrow.patch | 6 +-- patches/server/0759-More-Projectile-API.patch | 14 +++--- ...ix-swamp-hut-cat-generation-deadlock.patch | 16 +++---- ...cle-movement-from-players-while-tele.patch | 6 +-- .../0765-Fix-saving-in-unloadWorld.patch | 4 +- .../0766-Buffer-OOB-setBlock-calls.patch | 8 ++-- .../0767-Add-TameableDeathMessageEvent.patch | 6 +-- ...lock-data-for-EntityChangeBlockEvent.patch | 2 +- ...ables-running-when-mob-loot-gamerule.patch | 6 +-- ...assenger-world-matches-ridden-entity.patch | 4 +- ...ard-against-invalid-entity-positions.patch | 2 +- ...low-changing-the-EnderDragon-podium.patch} | 42 ++++++++-------- ...verriding-a-block-entity-during-worl.patch | 6 +-- ...nt-tile-entity-copies-loading-chunks.patch | 6 +-- ...tead-of-display-name-in-PlayerList-g.patch | 2 +- ...s-ServerLevel-for-gamerule-callbacks.patch | 48 +++++++++---------- ...> 0779-Expand-PlayerItemDamageEvent.patch} | 8 ++-- .../0780-WorldCreator-keepSpawnLoaded.patch | 4 +- ..._destroyed-trigger-in-the-correct-pl.patch | 18 +++---- ...eEvent-and-CollarColorable-interface.patch | 12 ++--- ...-CauldronLevelChange-on-initial-fill.patch | 36 +++++++------- ...-snow-cauldrons-not-turning-to-water.patch | 8 ++-- .../0786-Add-PlayerStopUsingItemEvent.patch | 4 +- patches/server/0787-Don-t-tick-markers.patch | 12 ++--- .../server/0788-Expand-FallingBlock-API.patch | 22 ++++----- ...o-not-accept-invalid-client-settings.patch | 2 +- .../0790-Add-support-for-Proxy-Protocol.patch | 8 ++-- ...ntory-for-smokers-and-blast-furnaces.patch | 4 +- ... 0793-Sanitize-sent-BlockEntity-NBT.patch} | 11 ++--- ...t-selector-resolving-in-books-by-def.patch | 4 +- ...entity-loading-causing-async-lookups.patch | 15 +++--- ...n-on-world-create-while-being-ticked.patch | 14 +++--- ...nate-Current-redstone-implementation.patch | 12 ++--- .../0799-Add-WardenAngerChangeEvent.patch | 10 ++-- ...-strict-advancement-dimension-checks.patch | 2 +- ...broadcast-messages-to-command-blocks.patch | 2 +- ...mpty-items-from-being-added-to-world.patch | 2 +- ...us-missing-EntityDropItemEvent-calls.patch | 2 +- ...g-not-using-commands.spam-exclusions.patch | 2 +- patches/server/0811-More-Teleport-API.patch | 2 +- .../0812-Add-EntityPortalReadyEvent.patch | 2 +- ...ck-entities-after-destroy-prediction.patch | 4 +- ...-on-plugins-accessing-faraway-chunks.patch | 2 +- ...1-Add-Velocity-IP-Forwarding-Support.patch | 4 +- ...ix-plugin-loggers-on-server-shutdown.patch | 2 +- ...ook-changes-from-crashing-the-server.patch | 2 +- .../0826-Missing-eating-regain-reason.patch | 2 +- .../0836-Fix-a-bunch-of-vanilla-bugs.patch | 10 ++-- ...ry-onTrackingStart-during-navigation.patch | 2 +- ...-interactions-with-items-on-cooldown.patch | 2 +- ...1-Add-PlayerInventorySlotChangeEvent.patch | 2 +- .../0848-Add-EntityToggleSitEvent.patch | 6 +-- ...tEvent-cancellation-cant-fully-preve.patch | 2 +- ...global-player-list-where-appropriate.patch | 4 +- ...async-entity-add-due-to-fungus-trees.patch | 2 +- patches/server/0864-Friction-API.patch | 4 +- .../0867-Sync-offhand-slot-in-menus.patch | 4 +- .../0868-Player-Entity-Tracking-Events.patch | 2 +- .../0870-Properly-resend-entities.patch | 4 +- ...and-additions-to-the-SpawnReason-API.patch | 4 +- .../0877-Improve-logging-and-errors.patch | 2 +- .../server/0878-Improve-PortalEvents.patch | 2 +- ...ssing-SpigotConfig-logCommands-check.patch | 2 +- ...sion-moving-velocity-to-VehicleBlock.patch | 2 +- ...le-player-info-update-packet-on-join.patch | 4 +- ...nk-items-during-EntityResurrectEvent.patch | 2 +- ...when-a-captured-block-state-is-outda.patch | 2 +- ...vancement-triggers-for-entity-damage.patch | 2 +- patches/server/0903-Optimize-Hoppers.patch | 6 +-- ...hives-generating-from-using-bonemeal.patch | 2 +- ...uence-violations-like-they-should-be.patch | 2 +- ...expired-keys-from-impacting-new-join.patch | 2 +- ...nts-being-fired-from-unloaded-chunks.patch | 2 +- .../0910-Use-array-for-gamerule-storage.patch | 2 +- ...Fix-demo-flag-not-enabling-demo-mode.patch | 2 +- ...esh-ProjectileSource-for-projectiles.patch | 4 +- .../server/0923-Fix-block-place-logic.patch | 4 +- ...und-playing-for-BlockItem-ItemStacks.patch | 2 +- ...ll-BlockGrowEvent-for-missing-blocks.patch | 2 +- ...anhasbukkit-default-if-alias-block-e.patch | 2 +- ...ayerChunkLoaderData-in-order-to-prep.patch | 2 +- .../0932-Properly-cancel-usable-items.patch | 6 +-- ...33-Add-event-for-player-editing-sign.patch | 2 +- ...ck-item-frames-if-players-can-see-it.patch | 2 +- ...d-chunks-for-supporting-block-checks.patch | 2 +- .../0950-Implement-PlayerFailMoveEvent.patch | 2 +- ...Folia-scheduler-and-owned-region-API.patch | 10 ++-- ...-API-for-updating-recipes-on-clients.patch | 4 +- ...0955-Only-capture-actual-tree-growth.patch | 4 +- ...8-Use-correct-seed-on-api-world-load.patch | 2 +- .../0960-Cache-map-ids-on-item-frames.patch | 2 +- .../server/0962-Bandaid-fix-for-Effect.patch | 2 +- ...ng-PreCreatureSpawnEvent-with-per-pl.patch | 2 +- ...place-methods-with-old-StructureType.patch | 2 +- ...te-namespaced-commands-if-send-names.patch | 2 +- ...y-handle-BlockBreakEvent-isDropItems.patch | 6 +-- ...-entity-death-event-for-ender-dragon.patch | 2 +- .../0971-Add-Listing-API-for-Player.patch | 2 +- ...73-Add-BlockFace-to-BlockDamageEvent.patch | 2 +- patches/server/0975-Expand-Pose-API.patch | 2 +- .../server/0978-Add-PlayerPickItemEvent.patch | 2 +- ...-titleOverride-to-InventoryOpenEvent.patch | 2 +- ...ot-sanity-checks-in-container-clicks.patch | 4 +- ...sing-InventoryHolders-to-inventories.patch | 2 +- ...-Remove-Spigot-Bug-Fix-for-MC-109346.patch | 2 +- .../1000-Optimise-chunk-tick-iteration.patch | 2 +- .../server/1001-Lag-compensation-ticks.patch | 12 ++--- ...005-Optimise-nearby-player-retrieval.patch | 2 +- ...ix-missing-map-initialize-event-call.patch | 2 +- ...predicate-for-blocks-when-raytracing.patch | 2 +- ...tem-packets-with-collector-as-source.patch | 2 +- .../1019-Expand-LingeringPotion-API.patch | 2 +- ...ingEffect-powers-lightning-rods-and-.patch | 4 +- ...several-issues-with-EntityBreedEvent.patch | 4 +- ...n-t-fire-sync-events-during-worldgen.patch | 8 ++-- ...estore-vanilla-entity-drops-behavior.patch | 10 ++-- .../server/1030-Add-Structure-check-API.patch | 2 +- ...1-Dont-resend-blocks-on-interactions.patch | 4 +- ...-on-null-loc-for-EntityTeleportEvent.patch | 2 +- ...date-ResourceLocation-in-NBT-reading.patch | 2 +- ...e-experience-dropping-on-block-break.patch | 2 +- 127 files changed, 355 insertions(+), 355 deletions(-) rename patches/server/{0773-Allow-to-change-the-podium-for-the-EnderDragon.patch => 0773-Allow-changing-the-EnderDragon-podium.patch} (86%) rename patches/server/{0779-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch => 0779-Expand-PlayerItemDamageEvent.patch} (78%) rename patches/server/{0793-Sanitize-Sent-BlockEntity-NBT.patch => 0793-Sanitize-sent-BlockEntity-NBT.patch} (91%) diff --git a/patches/server/0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch index e48a11568928..f2c1454094fc 100644 --- a/patches/server/0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch +++ b/patches/server/0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch @@ -10,7 +10,7 @@ just looking at the LevelStem key, look at the DimensionType key which is one level below that. Defaults to off to keep vanilla behavior. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 396cbd1a0a94e913475bad65faf8e871b7105895..67bda174adb74e6176e81f986382b3bbbfe6b95f 100644 +index 396cbd1a0a94e913475bad65faf8e871b7105895..41fae37f785191fa3314fcc5724c9b31ef953816 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -623,7 +623,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 || this.entity instanceof AbstractArrow) { -+ if (!(this.entity instanceof net.minecraft.world.entity.decoration.HangingEntity) || this.tickCount > 0 || this.entity instanceof AbstractArrow) { // Paper - Always update position ++ if (!(this.entity instanceof net.minecraft.world.entity.decoration.HangingEntity) || this.tickCount > 0 || this.entity instanceof AbstractArrow) { // Paper - Always update position to fix first-tick teleports long k = this.positionCodec.encodeX(vec3d); long l = this.positionCodec.encodeY(vec3d); long i1 = this.positionCodec.encodeZ(vec3d); diff --git a/patches/server/0754-Custom-Potion-Mixes.patch b/patches/server/0754-Custom-Potion-Mixes.patch index c6c5fb576018..27fa51fef050 100644 --- a/patches/server/0754-Custom-Potion-Mixes.patch +++ b/patches/server/0754-Custom-Potion-Mixes.patch @@ -32,19 +32,19 @@ index 0000000000000000000000000000000000000000..7ea357ac2f3a93db4ebdf24b5072be7d + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4f43e306d70bc733ceba2b375c8732f330abc0e4..d8eb1dbc1601c1f76183ddd78b88d0ee6df68bed 100644 +index 15828a88b8b31f4b622a1395eda5cc195d616479..e5dccd330cbf3301a60b65453e87a4005f954716 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2213,6 +2213,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> POTION_MIXES = Lists.newArrayList(); private static final List> CONTAINER_MIXES = Lists.newArrayList(); -+ private static final it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap CUSTOM_MIXES = new it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap<>(); // Paper ++ private static final it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap CUSTOM_MIXES = new it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap<>(); // Paper - Custom Potion Mixes private static final List ALLOWED_CONTAINERS = Lists.newArrayList(); private static final Predicate ALLOWED_CONTAINER = (stack) -> { for(Ingredient ingredient : ALLOWED_CONTAINERS) { @@ -73,7 +73,7 @@ index 25e909b90293855321b8f05ab3488bad8c064853..ef798adc296ae1595cfcd33fed5aa71b public static boolean isIngredient(ItemStack stack) { - return isContainerIngredient(stack) || isPotionIngredient(stack); -+ return isContainerIngredient(stack) || isPotionIngredient(stack) || isCustomIngredient(stack); // Paper ++ return isContainerIngredient(stack) || isPotionIngredient(stack) || isCustomIngredient(stack); // Paper - Custom Potion Mixes } protected static boolean isContainerIngredient(ItemStack stack) { @@ -81,11 +81,11 @@ index 25e909b90293855321b8f05ab3488bad8c064853..ef798adc296ae1595cfcd33fed5aa71b } public static boolean hasMix(ItemStack input, ItemStack ingredient) { -+ // Paper start ++ // Paper start - Custom Potion Mixes + if (hasCustomMix(input, ingredient)) { + return true; + } -+ // Paper end ++ // Paper end - Custom Potion Mixes if (!ALLOWED_CONTAINER.test(input)) { return false; } else { @@ -93,13 +93,13 @@ index 25e909b90293855321b8f05ab3488bad8c064853..ef798adc296ae1595cfcd33fed5aa71b public static ItemStack mix(ItemStack ingredient, ItemStack input) { if (!input.isEmpty()) { -+ // Paper start ++ // Paper start - Custom Potion Mixes + for (var mix : CUSTOM_MIXES.values()) { + if (mix.input().test(input) && mix.ingredient().test(ingredient)) { + return mix.result().copy(); + } + } -+ // Paper end ++ // Paper end - Custom Potion Mixes Potion potion = PotionUtils.getPotion(input); Item item = input.getItem(); @@ -107,7 +107,7 @@ index 25e909b90293855321b8f05ab3488bad8c064853..ef798adc296ae1595cfcd33fed5aa71b return input; } -+ // Paper start ++ // Paper start - Custom Potion Mixes + public static boolean isCustomIngredient(ItemStack stack) { + for (var mix : CUSTOM_MIXES.values()) { + if (mix.ingredient().test(stack)) { @@ -153,13 +153,13 @@ index 25e909b90293855321b8f05ab3488bad8c064853..ef798adc296ae1595cfcd33fed5aa71b + CUSTOM_MIXES.clear(); + bootStrap(); + } -+ // Paper end ++ // Paper end - Custom Potion Mixes + public static void bootStrap() { addContainer(Items.POTION); addContainer(Items.SPLASH_POTION); diff --git a/src/main/java/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java -index 424406d2692856cfd82b6f3b7b6228fa3bd20c2f..c57efcb9a79337ec791e4e8f6671612f0a82b441 100644 +index 424406d2692856cfd82b6f3b7b6228fa3bd20c2f..bc01481ac5990ad1cfd1def5a16dd0ed2f9de8c9 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java @@ -341,7 +341,7 @@ public class BrewingStandBlockEntity extends BaseContainerBlockEntity implements @@ -167,19 +167,19 @@ index 424406d2692856cfd82b6f3b7b6228fa3bd20c2f..c57efcb9a79337ec791e4e8f6671612f @Override public boolean canPlaceItem(int slot, ItemStack stack) { - return slot == 3 ? PotionBrewing.isIngredient(stack) : (slot == 4 ? stack.is(Items.BLAZE_POWDER) : (stack.is(Items.POTION) || stack.is(Items.SPLASH_POTION) || stack.is(Items.LINGERING_POTION) || stack.is(Items.GLASS_BOTTLE)) && this.getItem(slot).isEmpty()); -+ return slot == 3 ? PotionBrewing.isIngredient(stack) : (slot == 4 ? stack.is(Items.BLAZE_POWDER) : (stack.is(Items.POTION) || stack.is(Items.SPLASH_POTION) || stack.is(Items.LINGERING_POTION) || stack.is(Items.GLASS_BOTTLE) || PotionBrewing.isCustomInput(stack)) && this.getItem(slot).isEmpty()); // Paper ++ return slot == 3 ? PotionBrewing.isIngredient(stack) : (slot == 4 ? stack.is(Items.BLAZE_POWDER) : (stack.is(Items.POTION) || stack.is(Items.SPLASH_POTION) || stack.is(Items.LINGERING_POTION) || stack.is(Items.GLASS_BOTTLE) || PotionBrewing.isCustomInput(stack)) && this.getItem(slot).isEmpty()); // Paper - Custom Potion Mixes } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 316a901f5d943209d94ba6631cfaa9be43fdae3b..536057656dfb7af96977b692b854e5a4fff98dd9 100644 +index 546b510e8ed683007c1dbcc1ab66374ce0944e70..ead1161020064ceea6d04857de5bdbce460fd59e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -304,6 +304,7 @@ public final class CraftServer implements Server { private final io.papermc.paper.datapack.PaperDatapackManager datapackManager; // Paper public static Exception excessiveVelEx; // Paper - Velocity warnings private final io.papermc.paper.logging.SysoutCatcher sysoutCatcher = new io.papermc.paper.logging.SysoutCatcher(); // Paper -+ private final CraftPotionBrewer potionBrewer = new CraftPotionBrewer(); // Paper ++ private final CraftPotionBrewer potionBrewer = new CraftPotionBrewer(); // Paper - Custom Potion Mixes static { ConfigurationSerialization.registerClass(CraftOfflinePlayer.class); @@ -188,7 +188,7 @@ index 316a901f5d943209d94ba6631cfaa9be43fdae3b..536057656dfb7af96977b692b854e5a4 CraftRegistry.setMinecraftRegistry(console.registryAccess()); - Potion.setPotionBrewer(new CraftPotionBrewer()); -+ Potion.setPotionBrewer(potionBrewer); // Paper ++ Potion.setPotionBrewer(potionBrewer); // Paper - Custom Potion Mixes // Ugly hack :( if (!Main.useConsole) { diff --git a/patches/server/0755-Force-close-world-loading-screen.patch b/patches/server/0755-Force-close-world-loading-screen.patch index e3165b65baac..caf53da81bd3 100644 --- a/patches/server/0755-Force-close-world-loading-screen.patch +++ b/patches/server/0755-Force-close-world-loading-screen.patch @@ -10,7 +10,7 @@ so we do not need that. The client only needs the chunk it is currently in to be loaded to close the loading screen, so we just send an empty one. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 1038bdb761c4b413cb92e08aa7ef634b2e8237d4..e79748938395c79fcb6c2c164e35a191781b7c2f 100644 +index 1038bdb761c4b413cb92e08aa7ef634b2e8237d4..8bf39ebc7c04e54fc46ca267af06a3a84b240fbb 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -398,6 +398,16 @@ public abstract class PlayerList { @@ -26,7 +26,7 @@ index 1038bdb761c4b413cb92e08aa7ef634b2e8237d4..e79748938395c79fcb6c2c164e35a191 + worldserver1.getLightEngine(), (java.util.BitSet)null, (java.util.BitSet) null, false) + ); + } -+ // Paper end ++ // Paper end - Send empty chunk } private void mountSavedVehicle(ServerPlayer player, ServerLevel worldserver1, CompoundTag nbttagcompound) { // Paper end diff --git a/patches/server/0756-Fix-falling-block-spawn-methods.patch b/patches/server/0756-Fix-falling-block-spawn-methods.patch index 61dad3fbfeee..8d1712a5cb63 100644 --- a/patches/server/0756-Fix-falling-block-spawn-methods.patch +++ b/patches/server/0756-Fix-falling-block-spawn-methods.patch @@ -11,7 +11,7 @@ Restores the API behavior from previous versions of the server public net.minecraft.world.entity.item.FallingBlockEntity (Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d41cd3075a5f59f271ddee7009a3ed26a34d3041..719d2ac5907b4c96828460daae9f254c2cd3e840 100644 +index d41cd3075a5f59f271ddee7009a3ed26a34d3041..3cf9aafb3ce75c0340605fa29c2a55ff237b843b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1453,7 +1453,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -24,7 +24,7 @@ index d41cd3075a5f59f271ddee7009a3ed26a34d3041..719d2ac5907b4c96828460daae9f254c + entity.time = 1; + + this.world.addFreshEntity(entity, SpawnReason.CUSTOM); -+ // Paper end ++ // Paper end - restore API behavior for spawning falling blocks return (FallingBlock) entity.getBukkitEntity(); } @@ -38,7 +38,7 @@ index d41cd3075a5f59f271ddee7009a3ed26a34d3041..719d2ac5907b4c96828460daae9f254c + entity.time = 1; + + this.world.addFreshEntity(entity, SpawnReason.CUSTOM); -+ // Paper end ++ // Paper end - restore API behavior for spawning falling blocks return (FallingBlock) entity.getBukkitEntity(); } diff --git a/patches/server/0758-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0758-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch index 88269890569b..03471ecb7fc3 100644 --- a/patches/server/0758-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch +++ b/patches/server/0758-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch @@ -15,14 +15,14 @@ piercing arrows to avoid duplicate damage being applied. protected net.minecraft.world.entity.projectile.Projectile hitCancelled diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index ae4319c2532855315bc45995a39d7eb98961b939..6272b0e1e332789b983a486ee25226e2a1c9fdda 100644 +index ae4319c2532855315bc45995a39d7eb98961b939..2b2ff2a187410ef9431b0396c05935ffd17fd108 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -297,6 +297,19 @@ public abstract class AbstractArrow extends Projectile { } } -+ // Paper start ++ // Paper start - Fix cancelling ProjectileHitEvent for piercing arrows + @Override + public void preOnHit(HitResult hitResult) { + super.preOnHit(hitResult); @@ -33,7 +33,7 @@ index ae4319c2532855315bc45995a39d7eb98961b939..6272b0e1e332789b983a486ee25226e2 + this.piercingIgnoreEntityIds.add(entityHitResult.getEntity().getId()); + } + } -+ // Paper end ++ // Paper end - Fix cancelling ProjectileHitEvent for piercing arrows + private boolean shouldFall() { return this.inGround && this.level().noCollision((new AABB(this.position(), this.position())).inflate(0.06D)); diff --git a/patches/server/0759-More-Projectile-API.patch b/patches/server/0759-More-Projectile-API.patch index 923c8570a835..1bbc5e7a9881 100644 --- a/patches/server/0759-More-Projectile-API.patch +++ b/patches/server/0759-More-Projectile-API.patch @@ -20,7 +20,7 @@ public net.minecraft.world.entity.projectile.Projectile canHitEntity(Lnet/minecr Co-authored-by: Nassim Jahnke diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index 40307233e5bc67d538f580bc514a033c64d1316a..2886f4437d8361cde39922b87e9cc8e5d386e0ad 100644 +index 40307233e5bc67d538f580bc514a033c64d1316a..3f256b87cb4d5ecb745a949e6714682be805e72f 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java @@ -100,6 +100,11 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie @@ -40,7 +40,7 @@ index 40307233e5bc67d538f580bc514a033c64d1316a..2886f4437d8361cde39922b87e9cc8e5 showParticles = this.makeAreaOfEffectCloud(itemstack, potionregistry, hitResult); // CraftBukkit - Pass MovingObjectPosition // Paper } else { - showParticles = this.applySplash(list, hitResult.getType() == HitResult.Type.ENTITY ? ((EntityHitResult) hitResult).getEntity() : null, hitResult); // CraftBukkit - Pass MovingObjectPosition // Paper -+ showParticles = this.applySplash(list, hitResult != null && hitResult.getType() == HitResult.Type.ENTITY ? ((EntityHitResult) hitResult).getEntity() : null, hitResult); // CraftBukkit - Pass MovingObjectPosition // Paper - nullable hitResult ++ showParticles = this.applySplash(list, hitResult != null && hitResult.getType() == HitResult.Type.ENTITY ? ((EntityHitResult) hitResult).getEntity() : null, hitResult); // CraftBukkit - Pass MovingObjectPosition // Paper - More projectile API } } @@ -49,7 +49,7 @@ index 40307233e5bc67d538f580bc514a033c64d1316a..2886f4437d8361cde39922b87e9cc8e5 } - private boolean applySplash(List list, @Nullable Entity entity, HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - return boolean -+ private boolean applySplash(List list, @Nullable Entity entity, @Nullable HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - return boolean & nullable hitResult ++ private boolean applySplash(List list, @Nullable Entity entity, @Nullable HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - return boolean & More projectile API AABB axisalignedbb = this.getBoundingBox().inflate(4.0D, 2.0D, 4.0D); List list1 = this.level().getEntitiesOfClass(net.minecraft.world.entity.LivingEntity.class, axisalignedbb); Map affected = new HashMap(); // CraftBukkit @@ -58,19 +58,19 @@ index 40307233e5bc67d538f580bc514a033c64d1316a..2886f4437d8361cde39922b87e9cc8e5 } - private boolean makeAreaOfEffectCloud(ItemStack itemstack, Potion potionregistry, HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - return boolean -+ private boolean makeAreaOfEffectCloud(ItemStack itemstack, Potion potionregistry, @Nullable HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - return boolean & nullable hitResult ++ private boolean makeAreaOfEffectCloud(ItemStack itemstack, Potion potionregistry, @Nullable HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - return boolean & More projectile API AreaEffectCloud entityareaeffectcloud = new AreaEffectCloud(this.level(), this.getX(), this.getY(), this.getZ()); Entity entity = this.getOwner(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java b/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java -index 91c2d0b40d3fca86938cd454e1415a4eea3df7c7..2c376687349825833e6d9a5ca92ce6afb98c36a3 100644 +index 91c2d0b40d3fca86938cd454e1415a4eea3df7c7..c1c52f4fc5f900fac4098e5e37c52dfc4e82b8bb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java @@ -17,4 +17,65 @@ public abstract class AbstractProjectile extends CraftEntity implements Projecti @Override public void setBounce(boolean doesBounce) {} -+ // Paper start ++ // Paper start - More projectile API + @Override + public boolean hasLeftShooter() { + return this.getHandle().leftOwner; @@ -130,7 +130,7 @@ index 91c2d0b40d3fca86938cd454e1415a4eea3df7c7..2c376687349825833e6d9a5ca92ce6af + public java.util.UUID getOwnerUniqueId() { + return this.getHandle().ownerUUID; + } -+ // Paper end ++ // Paper end - More projectile API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java index 762c395e45a681a11f3fe9d10e7f0ba310786e80..6d2fe30742f8b41d53dd2cbff120fcc042ea0e0c 100644 diff --git a/patches/server/0760-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0760-Fix-swamp-hut-cat-generation-deadlock.patch index b2499e69ccde..bac78b77ff5d 100644 --- a/patches/server/0760-Fix-swamp-hut-cat-generation-deadlock.patch +++ b/patches/server/0760-Fix-swamp-hut-cat-generation-deadlock.patch @@ -10,7 +10,7 @@ indefinitely. Instead of using the world state, we use the already supplied ServerLevelAccessor which will always have the chunk available. diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index 534630b0161c8d869e49e7a59572193550be0671..a744cb70ac719eae376fb2ab2271e4f8ac7b12f2 100644 +index 534630b0161c8d869e49e7a59572193550be0671..7dfd2b17e82a80683af28779d0bd8f64a909c3b6 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -364,7 +364,7 @@ public class Cat extends TamableAnimal implements VariantHolder { @@ -18,12 +18,12 @@ index 534630b0161c8d869e49e7a59572193550be0671..a744cb70ac719eae376fb2ab2271e4f8 ServerLevel worldserver = world.getLevel(); - if (worldserver.structureManager().getStructureWithPieceAt(this.blockPosition(), StructureTags.CATS_SPAWN_AS_BLACK).isValid()) { -+ if (worldserver.structureManager().getStructureWithPieceAt(this.blockPosition(), StructureTags.CATS_SPAWN_AS_BLACK, world).isValid()) { // Paper - fix deadlock ++ if (worldserver.structureManager().getStructureWithPieceAt(this.blockPosition(), StructureTags.CATS_SPAWN_AS_BLACK, world).isValid()) { // Paper - Fix swamp hut cat generation deadlock this.setVariant((CatVariant) BuiltInRegistries.CAT_VARIANT.getOrThrow(CatVariant.ALL_BLACK)); this.setPersistenceRequired(); } diff --git a/src/main/java/net/minecraft/world/level/StructureManager.java b/src/main/java/net/minecraft/world/level/StructureManager.java -index b33a015b834873f279bf33a64974ef440a37df79..09c85ed428b8eaf51f8b3c6e45cce925f05ab354 100644 +index b33a015b834873f279bf33a64974ef440a37df79..b59581b92aed0bc1b09008c695b0b112c3e65743 100644 --- a/src/main/java/net/minecraft/world/level/StructureManager.java +++ b/src/main/java/net/minecraft/world/level/StructureManager.java @@ -44,7 +44,12 @@ public class StructureManager { @@ -31,12 +31,12 @@ index b33a015b834873f279bf33a64974ef440a37df79..09c85ed428b8eaf51f8b3c6e45cce925 public List startsForStructure(ChunkPos pos, Predicate predicate) { - Map map = this.level.getChunk(pos.x, pos.z, ChunkStatus.STRUCTURE_REFERENCES).getAllReferences(); -+ // Paper start ++ // Paper start - Fix swamp hut cat generation deadlock + return this.startsForStructure(pos, predicate, null); + } + public List startsForStructure(ChunkPos pos, Predicate predicate, @Nullable ServerLevelAccessor levelAccessor) { + Map map = (levelAccessor == null ? this.level : levelAccessor).getChunk(pos.x, pos.z, ChunkStatus.STRUCTURE_REFERENCES).getAllReferences(); -+ // Paper end ++ // Paper end - Fix swamp hut cat generation deadlock ImmutableList.Builder builder = ImmutableList.builder(); for(Map.Entry entry : map.entrySet()) { @@ -44,11 +44,11 @@ index b33a015b834873f279bf33a64974ef440a37df79..09c85ed428b8eaf51f8b3c6e45cce925 } public StructureStart getStructureWithPieceAt(BlockPos pos, TagKey structureTag) { -+ // Paper start ++ // Paper start - Fix swamp hut cat generation deadlock + return this.getStructureWithPieceAt(pos, structureTag, null); + } + public StructureStart getStructureWithPieceAt(BlockPos pos, TagKey structureTag, @Nullable ServerLevelAccessor levelAccessor) { -+ // Paper end ++ // Paper end - Fix swamp hut cat generation deadlock Registry registry = this.registryAccess().registryOrThrow(Registries.STRUCTURE); for(StructureStart structureStart : this.startsForStructure(new ChunkPos(pos), (structure) -> { @@ -56,7 +56,7 @@ index b33a015b834873f279bf33a64974ef440a37df79..09c85ed428b8eaf51f8b3c6e45cce925 return reference.is(structureTag); }).orElse(false); - })) { -+ }, levelAccessor)) { // Paper ++ }, levelAccessor)) { // Paper - Fix swamp hut cat generation deadlock if (this.structureHasPieceAt(pos, structureStart)) { return structureStart; } diff --git a/patches/server/0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch index 3d739ee7ff03..4a00876bf832 100644 --- a/patches/server/0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch +++ b/patches/server/0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch @@ -7,18 +7,18 @@ Bring the vehicle move packet behavior in line with the regular player move packet. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 554b0cd2f61005b57e1b0f68730354a8753fb0b7..ab64ffed96e0f8a3293254105d63b934133407e8 100644 +index 554b0cd2f61005b57e1b0f68730354a8753fb0b7..33356ffc634549560adc24c40e58152e5482949d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -465,6 +465,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.disconnect(Component.translatable("multiplayer.disconnect.invalid_vehicle_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_VEHICLE_MOVEMENT); // Paper - kick event cause } else { Entity entity = this.player.getRootVehicle(); -+ // Paper start ++ // Paper start - Don't allow vehicle movement from players while teleporting + if (this.awaitingPositionFromClient != null || this.player.isImmobile() || entity.isRemoved()) { + return; + } -+ // Paper end ++ // Paper end - Don't allow vehicle movement from players while teleporting if (entity != this.player && entity.getControllingPassenger() == this.player && entity == this.lastVehicle) { ServerLevel worldserver = this.player.serverLevel(); diff --git a/patches/server/0765-Fix-saving-in-unloadWorld.patch b/patches/server/0765-Fix-saving-in-unloadWorld.patch index 0110c67e8828..af839d74d62c 100644 --- a/patches/server/0765-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0765-Fix-saving-in-unloadWorld.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix saving in unloadWorld Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 536057656dfb7af96977b692b854e5a4fff98dd9..f9b994a024be198a26d0213b9c98fc46987549a4 100644 +index ead1161020064ceea6d04857de5bdbce460fd59e..8802d28c71d3ebc74690ad5c53c7dd77436e1a9f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1336,7 +1336,7 @@ public final class CraftServer implements Server { @@ -14,7 +14,7 @@ index 536057656dfb7af96977b692b854e5a4fff98dd9..f9b994a024be198a26d0213b9c98fc46 try { if (save) { - handle.save(null, true, true); -+ handle.save(null, true, false); // Paper - don't disable saving ++ handle.save(null, true, false); // Paper - Fix saving in unloadWorld } handle.getChunkSource().close(save); diff --git a/patches/server/0766-Buffer-OOB-setBlock-calls.patch b/patches/server/0766-Buffer-OOB-setBlock-calls.patch index c3098333e9fe..51a5d1943e13 100644 --- a/patches/server/0766-Buffer-OOB-setBlock-calls.patch +++ b/patches/server/0766-Buffer-OOB-setBlock-calls.patch @@ -13,14 +13,14 @@ we'll also only gen a trace for the first one, I see no real pressing need to generate more, given that that would *massively* negate this patch otherwise diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 3f5ba2b2f01d8cc07c4200a60b1b08cb584b170e..49c7825156afd053df1b7721a63070b51427aff2 100644 +index 3f5ba2b2f01d8cc07c4200a60b1b08cb584b170e..1c2ec978f923521322aaec59b4e88d26d656b6cd 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java @@ -296,6 +296,7 @@ public class WorldGenRegion implements WorldGenLevel { } } -+ private boolean hasSetFarWarned = false; // Paper ++ private boolean hasSetFarWarned = false; // Paper - Buffer OOB setBlock calls @Override public boolean ensureCanWrite(BlockPos pos) { int i = SectionPos.blockToSectionCoord(pos.getX()); @@ -28,7 +28,7 @@ index 3f5ba2b2f01d8cc07c4200a60b1b08cb584b170e..49c7825156afd053df1b7721a63070b5 return true; } else { -+ // Paper start ++ // Paper start - Buffer OOB setBlock calls + if (!hasSetFarWarned) { Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + pos + ", status: " + this.generatingStatus + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get())); + hasSetFarWarned = true; @@ -36,7 +36,7 @@ index 3f5ba2b2f01d8cc07c4200a60b1b08cb584b170e..49c7825156afd053df1b7721a63070b5 + io.papermc.paper.util.TraceUtil.dumpTraceForThread("far setBlock call"); + } + } -+ // Paper end ++ // Paper end - Buffer OOB setBlock calls return false; } } diff --git a/patches/server/0767-Add-TameableDeathMessageEvent.patch b/patches/server/0767-Add-TameableDeathMessageEvent.patch index 53da18382c28..58ea5cd5d1dc 100644 --- a/patches/server/0767-Add-TameableDeathMessageEvent.patch +++ b/patches/server/0767-Add-TameableDeathMessageEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add TameableDeathMessageEvent diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -index 8f085654f3b9c540346fe4e56c71d572da7a897c..1999cda5876bb12283d8c91a1b3e737c0d27bc38 100644 +index 8f085654f3b9c540346fe4e56c71d572da7a897c..4d893c445af2b6dc74d5ad731b69eb5a488817b4 100644 --- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java +++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java @@ -197,7 +197,12 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { @@ -13,12 +13,12 @@ index 8f085654f3b9c540346fe4e56c71d572da7a897c..1999cda5876bb12283d8c91a1b3e737c public void die(DamageSource damageSource) { if (!this.level().isClientSide && this.level().getGameRules().getBoolean(GameRules.RULE_SHOWDEATHMESSAGES) && this.getOwner() instanceof ServerPlayer) { - this.getOwner().sendSystemMessage(this.getCombatTracker().getDeathMessage()); -+ // Paper start - TameableDeathMessageEvent ++ // Paper start - Add TameableDeathMessageEvent + io.papermc.paper.event.entity.TameableDeathMessageEvent event = new io.papermc.paper.event.entity.TameableDeathMessageEvent((org.bukkit.entity.Tameable) getBukkitEntity(), io.papermc.paper.adventure.PaperAdventure.asAdventure(this.getCombatTracker().getDeathMessage())); + if (event.callEvent()) { + this.getOwner().sendSystemMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.deathMessage())); + } -+ // Paper end - TameableDeathMessageEvent ++ // Paper end - Add TameableDeathMessageEvent } super.die(damageSource); diff --git a/patches/server/0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch index 34ba74f62d9d..c6786496e55a 100644 --- a/patches/server/0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -131,7 +131,7 @@ index 6f452605e9dc9ebd9980eae9fdeea34417a37a88..2c60a3765d22909e73b660492410ab84 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index 2886f4437d8361cde39922b87e9cc8e5d386e0ad..2f80d484ad523860322483cebe92cf7cd8cfad22 100644 +index 3f256b87cb4d5ecb745a949e6714682be805e72f..d945c0a7b8ba87301e12b49f859e6fbe65de04f3 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java @@ -306,7 +306,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie diff --git a/patches/server/0769-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0769-fix-player-loottables-running-when-mob-loot-gamerule.patch index bfb472a6aef8..dd3d2ae37b5f 100644 --- a/patches/server/0769-fix-player-loottables-running-when-mob-loot-gamerule.patch +++ b/patches/server/0769-fix-player-loottables-running-when-mob-loot-gamerule.patch @@ -5,21 +5,21 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7c8f5ae6bd83bd08403738dcd364b0af06fb1a9b..1f7b13806ffbcf81df67a02129aa2c07dfc7b8f5 100644 +index 7c8f5ae6bd83bd08403738dcd364b0af06fb1a9b..1695e7d3e456bb3539fb37d943e8cf45489f0762 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -924,12 +924,14 @@ public class ServerPlayer extends Player { } } } -+ if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { // Paper - preserve this check from vanilla ++ if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { // Paper - fix player loottables running when mob loot gamerule is false // SPIGOT-5071: manually add player loot tables (SPIGOT-5195 - ignores keepInventory rule) this.dropFromLootTable(damageSource, this.lastHurtByPlayerTime > 0); for (org.bukkit.inventory.ItemStack item : this.drops) { loot.add(item); } this.drops.clear(); // SPIGOT-5188: make sure to clear -+ } // Paper ++ } // Paper - fix player loottables running when mob loot gamerule is false Component defaultMessage = this.getCombatTracker().getDeathMessage(); diff --git a/patches/server/0770-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0770-Ensure-entity-passenger-world-matches-ridden-entity.patch index 8bc434041efa..0bbddb289cab 100644 --- a/patches/server/0770-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0770-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2f0c5e1b4b2dfb8006447c296170e80a97b36562..8284b150bbca66fc536418ec66bf93fb205cdcc5 100644 +index 2f0c5e1b4b2dfb8006447c296170e80a97b36562..cc90b96ae9709c7f3997dc1524bcf0feeb00c864 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2847,7 +2847,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -14,7 +14,7 @@ index 2f0c5e1b4b2dfb8006447c296170e80a97b36562..8284b150bbca66fc536418ec66bf93fb public boolean startRiding(Entity entity, boolean force) { - if (entity == this.vehicle) { -+ if (entity == this.vehicle || entity.level != this.level) { // Paper - check level ++ if (entity == this.vehicle || entity.level != this.level) { // Paper - Ensure entity passenger world matches ridden entity (bad plugins) return false; } else if (!entity.couldAcceptPassenger()) { return false; diff --git a/patches/server/0771-Guard-against-invalid-entity-positions.patch b/patches/server/0771-Guard-against-invalid-entity-positions.patch index 15d3e47294cc..7549ffa9b585 100644 --- a/patches/server/0771-Guard-against-invalid-entity-positions.patch +++ b/patches/server/0771-Guard-against-invalid-entity-positions.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Guard against invalid entity positions Anything not finite should be blocked and logged diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8284b150bbca66fc536418ec66bf93fb205cdcc5..2c3193fdfb0e4b4a47cceb2da8b3fe85bd1e6848 100644 +index cc90b96ae9709c7f3997dc1524bcf0feeb00c864..ab409aae677a5ed4ca50113e88397c4543373df8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4539,11 +4539,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0773-Allow-to-change-the-podium-for-the-EnderDragon.patch b/patches/server/0773-Allow-changing-the-EnderDragon-podium.patch similarity index 86% rename from patches/server/0773-Allow-to-change-the-podium-for-the-EnderDragon.patch rename to patches/server/0773-Allow-changing-the-EnderDragon-podium.patch index 8db49ef839f1..b85821e44724 100644 --- a/patches/server/0773-Allow-to-change-the-podium-for-the-EnderDragon.patch +++ b/patches/server/0773-Allow-changing-the-EnderDragon-podium.patch @@ -1,21 +1,21 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Doc Date: Sun, 3 Apr 2022 11:31:42 -0400 -Subject: [PATCH] Allow to change the podium for the EnderDragon +Subject: [PATCH] Allow changing the EnderDragon podium diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 2ede6678a5fe6e1280ee4918b69302f483cc50ff..4bcbfe3f95efd5d8ec2d2d7c66c4c355cdf510b2 100644 +index 2ede6678a5fe6e1280ee4918b69302f483cc50ff..36893dac635f676ca447133a1bce32429347e4a5 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -103,6 +103,10 @@ public class EnderDragon extends Mob implements Enemy { private final int[] nodeAdjacency; private final BinaryHeap openSet; private final Explosion explosionSource; // CraftBukkit - reusable source for CraftTNTPrimed.getSource() -+ // Paper start - add var for save custom podium ++ // Paper start - Allow changing the EnderDragon podium + @Nullable + private BlockPos podium; -+ // Paper end ++ // Paper end - Allow changing the EnderDragon podium public EnderDragon(EntityType entitytypes, Level world) { super(EntityType.ENDER_DRAGON, world); @@ -23,7 +23,7 @@ index 2ede6678a5fe6e1280ee4918b69302f483cc50ff..4bcbfe3f95efd5d8ec2d2d7c66c4c355 return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D); } -+ // Paper start ++ // Paper start - Allow changing the EnderDragon podium + public BlockPos getPodium() { + if (this.podium == null) { + return EndPodiumFeature.getLocation(this.getFightOrigin()); @@ -34,7 +34,7 @@ index 2ede6678a5fe6e1280ee4918b69302f483cc50ff..4bcbfe3f95efd5d8ec2d2d7c66c4c355 + public void setPodium(@Nullable BlockPos blockPos) { + this.podium = blockPos; + } -+ // Paper end ++ // Paper end - Allow changing the EnderDragon podium + @Override public boolean isFlapping() { @@ -44,7 +44,7 @@ index 2ede6678a5fe6e1280ee4918b69302f483cc50ff..4bcbfe3f95efd5d8ec2d2d7c66c4c355 } } else { - BlockPos blockposition = this.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.fightOrigin)); -+ BlockPos blockposition = this.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.getPodium()); // Paper - use custom podium ++ BlockPos blockposition = this.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.getPodium()); // Paper - Allow changing the EnderDragon podium double d1 = Math.max(Math.sqrt(blockposition.distToCenterSqr(this.position())) / 4.0D, 1.0D); d0 = (double) segmentOffset / d1; @@ -53,12 +53,12 @@ index 2ede6678a5fe6e1280ee4918b69302f483cc50ff..4bcbfe3f95efd5d8ec2d2d7c66c4c355 } } else { - BlockPos blockposition = this.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.fightOrigin)); -+ BlockPos blockposition = this.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.getPodium()); // Paper - use custom podium ++ BlockPos blockposition = this.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.getPodium()); // Paper - Allow changing the EnderDragon podium f1 = Math.max((float) Math.sqrt(blockposition.distToCenterSqr(this.position())) / 4.0F, 1.0F); float f3 = 6.0F / f1; diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java -index f4028b6890fd094360a33403728588380111204d..0fddefff4a6ab46920fbc6f86c17c6c51027dc02 100644 +index f4028b6890fd094360a33403728588380111204d..d6ec0583dbaca95eb6a6444923cc1311a9753825 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonDeathPhase.java @@ -32,7 +32,7 @@ public class DragonDeathPhase extends AbstractDragonPhaseInstance { @@ -66,12 +66,12 @@ index f4028b6890fd094360a33403728588380111204d..0fddefff4a6ab46920fbc6f86c17c6c5 ++this.time; if (this.targetLocation == null) { - BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())); -+ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, this.dragon.getPodium()); // Paper - use custom podium ++ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium this.targetLocation = Vec3.atBottomCenterOf(blockPos); } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java -index 00228e49c07eeed13b726192d5f9b8f2fc55bb75..b8c928b8fd30ebe923785d7b03b2cab3b44e488f 100644 +index 00228e49c07eeed13b726192d5f9b8f2fc55bb75..bd7be8a5a24f1328dde28ae4a66823c12110fa02 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonHoldingPatternPhase.java @@ -54,7 +54,7 @@ public class DragonHoldingPatternPhase extends AbstractDragonPhaseInstance { @@ -79,12 +79,12 @@ index 00228e49c07eeed13b726192d5f9b8f2fc55bb75..b8c928b8fd30ebe923785d7b03b2cab3 private void findNewTarget() { if (this.currentPath != null && this.currentPath.isDone()) { - BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, new BlockPos(EndPodiumFeature.getLocation(this.dragon.getFightOrigin()))); -+ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - use custom podium ++ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium int i = this.dragon.getDragonFight() == null ? 0 : this.dragon.getDragonFight().getCrystalsAlive(); if (this.dragon.getRandom().nextInt(i + 3) == 0) { this.dragon.getPhaseManager().setPhase(EnderDragonPhase.LANDING_APPROACH); diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java -index 80647b1f5192e6f2b660a31413db1fa45fb92f2c..a9f184cbed518561b1534f4fe9bc731a134d9152 100644 +index 80647b1f5192e6f2b660a31413db1fa45fb92f2c..e161bfb06beeada4987272d01a0f140069b37951 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingApproachPhase.java @@ -52,7 +52,7 @@ public class DragonLandingApproachPhase extends AbstractDragonPhaseInstance { @@ -92,12 +92,12 @@ index 80647b1f5192e6f2b660a31413db1fa45fb92f2c..a9f184cbed518561b1534f4fe9bc731a if (this.currentPath == null || this.currentPath.isDone()) { int i = this.dragon.findClosestNode(); - BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())); -+ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - use custom podium ++ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium Player player = this.dragon.level().getNearestPlayer(NEAR_EGG_TARGETING, this.dragon, (double)blockPos.getX(), (double)blockPos.getY(), (double)blockPos.getZ()); int j; if (player != null) { diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java -index 48ebc2ab8ebbdc2292af10b955384bf7d722ade2..c1c71ff254ecb4a0cef3b8d7cc12f6cb34cad6d7 100644 +index 48ebc2ab8ebbdc2292af10b955384bf7d722ade2..24db7fafd31277eb1b82eac4a97b2f979c1d3816 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonLandingPhase.java @@ -39,7 +39,7 @@ public class DragonLandingPhase extends AbstractDragonPhaseInstance { @@ -105,12 +105,12 @@ index 48ebc2ab8ebbdc2292af10b955384bf7d722ade2..c1c71ff254ecb4a0cef3b8d7cc12f6cb public void doServerTick() { if (this.targetLocation == null) { - this.targetLocation = Vec3.atBottomCenterOf(this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.dragon.getFightOrigin()))); -+ this.targetLocation = Vec3.atBottomCenterOf(this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium())); // Paper - use custom podium ++ this.targetLocation = Vec3.atBottomCenterOf(this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium())); // Paper - Allow changing the EnderDragon podium } if (this.targetLocation.distanceToSqr(this.dragon.getX(), this.dragon.getY(), this.dragon.getZ()) < 1.0D) { diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java -index 1290090f855840bf64bf3a7ba93e3cb036630dcc..98fb6422df0ceadff5aaf4b2965eb1b095a3370b 100644 +index 1290090f855840bf64bf3a7ba93e3cb036630dcc..792ff77090fa582a7ffcb7b8c394badfa7586126 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonTakeoffPhase.java @@ -24,7 +24,7 @@ public class DragonTakeoffPhase extends AbstractDragonPhaseInstance { @@ -118,12 +118,12 @@ index 1290090f855840bf64bf3a7ba93e3cb036630dcc..98fb6422df0ceadff5aaf4b2965eb1b0 public void doServerTick() { if (!this.firstTick && this.currentPath != null) { - BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.getLocation(this.dragon.getFightOrigin())); -+ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - use custom podium ++ BlockPos blockPos = this.dragon.level().getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, this.dragon.getPodium()); // Paper - Allow changing the EnderDragon podium if (!blockPos.closerToCenterThan(this.dragon.position(), 10.0D)) { this.dragon.getPhaseManager().setPhase(EnderDragonPhase.HOLDING_PATTERN); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java -index 25b3d889a1742c347e60725df8d6f6c1cee264c7..6eae6efa35a1ccc224e2f311e25ecf13e8647ec8 100644 +index 25b3d889a1742c347e60725df8d6f6c1cee264c7..7b7b89e67d53ed70efae714192c5fa32977f3d9c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java @@ -73,4 +73,22 @@ public class CraftEnderDragon extends CraftMob implements EnderDragon, CraftEnem @@ -131,7 +131,7 @@ index 25b3d889a1742c347e60725df8d6f6c1cee264c7..6eae6efa35a1ccc224e2f311e25ecf13 return this.getHandle().dragonDeathTime; } + -+ // Paper start ++ // Paper start - Allow changing the EnderDragon podium + @Override + public org.bukkit.Location getPodium() { + net.minecraft.core.BlockPos blockPosOrigin = this.getHandle().getPodium(); @@ -147,5 +147,5 @@ index 25b3d889a1742c347e60725df8d6f6c1cee264c7..6eae6efa35a1ccc224e2f311e25ecf13 + this.getHandle().setPodium(io.papermc.paper.util.MCUtil.toBlockPos(location)); + } + } -+ // Paper end ++ // Paper end - Allow changing the EnderDragon podium } diff --git a/patches/server/0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch index 57d912648dfe..07010b5d6382 100644 --- a/patches/server/0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch +++ b/patches/server/0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch @@ -9,7 +9,7 @@ is not a WorldGenRegion, we can bypass the deadlock entirely. See https://bugs.mojang.com/browse/MC-246262 diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java -index b2139e5f7a051cdea2a7ed6e98ba8be7ce1113cc..52c389472e013e658344496218689465350bf8a3 100644 +index b2139e5f7a051cdea2a7ed6e98ba8be7ce1113cc..0540929bd362b266295ea6770ce2fb351b614463 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java @@ -279,7 +279,11 @@ public class StructureTemplate { @@ -21,7 +21,7 @@ index b2139e5f7a051cdea2a7ed6e98ba8be7ce1113cc..52c389472e013e658344496218689465 + if (!(world instanceof net.minecraft.world.level.WorldGenLevel)) { + Clearable.tryClear(tileentity); + } -+ // Paper end ++ // Paper end - Fix NBT pieces overriding a block entity during worldgen deadlock world.setBlock(blockposition2, Blocks.BARRIER.defaultBlockState(), 20); } // CraftBukkit start @@ -34,7 +34,7 @@ index b2139e5f7a051cdea2a7ed6e98ba8be7ce1113cc..52c389472e013e658344496218689465 + if (!(world instanceof net.minecraft.world.level.WorldGenLevel)) { + tileentity.setChanged(); + } -+ // Paper end ++ // Paper end - Fix NBT pieces overriding a block entity during worldgen deadlock } } } diff --git a/patches/server/0776-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0776-Prevent-tile-entity-copies-loading-chunks.patch index ad6effe2023c..6cd473f04743 100644 --- a/patches/server/0776-Prevent-tile-entity-copies-loading-chunks.patch +++ b/patches/server/0776-Prevent-tile-entity-copies-loading-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent tile entity copies loading chunks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ab64ffed96e0f8a3293254105d63b934133407e8..15198891975856e54bb9fcf1eb8a2838bc107da5 100644 +index 33356ffc634549560adc24c40e58152e5482949d..5a2f8806366e3a423e77e882dbc9068ad64ff538 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3197,7 +3197,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -13,12 +13,12 @@ index ab64ffed96e0f8a3293254105d63b934133407e8..15198891975856e54bb9fcf1eb8a2838 if (this.player.level().isLoaded(blockposition)) { - BlockEntity tileentity = this.player.level().getBlockEntity(blockposition); -+ // Paper start ++ // Paper start - Prevent tile entity copies loading chunks + BlockEntity tileentity = null; + if (this.player.distanceToSqr(blockposition.getX(), blockposition.getY(), blockposition.getZ()) < 32 * 32 && this.player.serverLevel().isLoadedAndInBounds(blockposition)) { + tileentity = this.player.level().getBlockEntity(blockposition); + } -+ // Paper end ++ // Paper end - Prevent tile entity copies loading chunks if (tileentity != null) { tileentity.saveToItem(itemstack); diff --git a/patches/server/0777-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0777-Use-username-instead-of-display-name-in-PlayerList-g.patch index 4044d5472628..181baff8f412 100644 --- a/patches/server/0777-Use-username-instead-of-display-name-in-PlayerList-g.patch +++ b/patches/server/0777-Use-username-instead-of-display-name-in-PlayerList-g.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use username instead of display name in diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e79748938395c79fcb6c2c164e35a191781b7c2f..cd527e612a8a84451f9ef1fa0fcc900e16f54da1 100644 +index 8bf39ebc7c04e54fc46ca267af06a3a84b240fbb..57fa7cdcb2feb959cb413d4675fca11544236628 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1449,7 +1449,7 @@ public abstract class PlayerList { diff --git a/patches/server/0778-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0778-Pass-ServerLevel-for-gamerule-callbacks.patch index 5a24996368b4..a223a694572e 100644 --- a/patches/server/0778-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0778-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Pass ServerLevel for gamerule callbacks diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index e69a0121c8644d831cbb8bc1c95d9219d1c343da..4d7124ae7cefcc8c65bf74ac9d3c103fe6817c42 100644 +index e69a0121c8644d831cbb8bc1c95d9219d1c343da..7d33ce8d68ca55e0fd37d2d4e3c78a436f17f229 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -304,7 +304,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -13,12 +13,12 @@ index e69a0121c8644d831cbb8bc1c95d9219d1c343da..4d7124ae7cefcc8c65bf74ac9d3c103f //DedicatedServer.LOGGER.info("Done ({})! For help, type \"help\"", s); // Paper moved to after init if (dedicatedserverproperties.announcePlayerAchievements != null) { - ((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, this); -+ ((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, null); // Paper ++ ((GameRules.BooleanValue) this.getGameRules().getRule(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)).set(dedicatedserverproperties.announcePlayerAchievements, null); // Paper - Pass ServerLevel for gamerule callbacks } if (dedicatedserverproperties.enableQuery) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 15198891975856e54bb9fcf1eb8a2838bc107da5..52efebcc440253e84640be3c24c2dcd76c2a5b9a 100644 +index 5a2f8806366e3a423e77e882dbc9068ad64ff538..9ce9390291988e3110e228e83e0754e5529de800 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2761,7 +2761,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -26,12 +26,12 @@ index 15198891975856e54bb9fcf1eb8a2838bc107da5..52efebcc440253e84640be3c24c2dcd7 if (this.server.isHardcore()) { this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper - ((GameRules.BooleanValue) this.player.level().getGameRules().getRule(GameRules.RULE_SPECTATORSGENERATECHUNKS)).set(false, this.server); -+ ((GameRules.BooleanValue) this.player.level().getGameRules().getRule(GameRules.RULE_SPECTATORSGENERATECHUNKS)).set(false, this.player.serverLevel()); // Paper ++ ((GameRules.BooleanValue) this.player.level().getGameRules().getRule(GameRules.RULE_SPECTATORSGENERATECHUNKS)).set(false, this.player.serverLevel()); // Paper - Pass ServerLevel for gamerule callbacks } } break; diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f2297147a 100644 +index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..dd03426943dd380cefe12afe3e63c3180a22ec4f 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java @@ -52,7 +52,7 @@ public class GameRules { @@ -39,7 +39,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f public static final GameRules.Key RULE_REDUCEDDEBUGINFO = GameRules.register("reducedDebugInfo", GameRules.Category.MISC, GameRules.BooleanValue.create(false, (minecraftserver, gamerules_gameruleboolean) -> { int i = gamerules_gameruleboolean.get() ? 22 : 23; - Iterator iterator = minecraftserver.getPlayerList().getPlayers().iterator(); -+ Iterator iterator = minecraftserver.players().iterator(); // Paper ++ Iterator iterator = minecraftserver.players().iterator(); // Paper - Pass ServerLevel for gamerule callbacks while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); @@ -48,7 +48,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f public static final GameRules.Key RULE_WEATHER_CYCLE = GameRules.register("doWeatherCycle", GameRules.Category.UPDATES, GameRules.BooleanValue.create(true)); public static final GameRules.Key RULE_LIMITED_CRAFTING = GameRules.register("doLimitedCrafting", GameRules.Category.PLAYER, GameRules.BooleanValue.create(false, (minecraftserver, gamerules_gameruleboolean) -> { - Iterator iterator = minecraftserver.getPlayerList().getPlayers().iterator(); -+ Iterator iterator = minecraftserver.players().iterator(); // Paper ++ Iterator iterator = minecraftserver.players().iterator(); // Paper - Pass ServerLevel for gamerule callbacks while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); @@ -57,7 +57,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f public static final GameRules.Key RULE_DOINSOMNIA = GameRules.register("doInsomnia", GameRules.Category.SPAWNING, GameRules.BooleanValue.create(true)); public static final GameRules.Key RULE_DO_IMMEDIATE_RESPAWN = GameRules.register("doImmediateRespawn", GameRules.Category.PLAYER, GameRules.BooleanValue.create(false, (minecraftserver, gamerules_gameruleboolean) -> { - Iterator iterator = minecraftserver.getPlayerList().getPlayers().iterator(); -+ Iterator iterator = minecraftserver.players().iterator(); // Paper ++ Iterator iterator = minecraftserver.players().iterator(); // Paper - Pass ServerLevel for gamerule callbacks while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); @@ -66,14 +66,14 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f } - public void assignFrom(GameRules rules, @Nullable MinecraftServer server) { -+ public void assignFrom(GameRules rules, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper ++ public void assignFrom(GameRules rules, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper - Pass ServerLevel for gamerule callbacks rules.rules.keySet().forEach((gamerules_gamerulekey) -> { this.assignCap(gamerules_gamerulekey, rules, server); }); } - private > void assignCap(GameRules.Key key, GameRules rules, @Nullable MinecraftServer server) { -+ private > void assignCap(GameRules.Key key, GameRules rules, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper ++ private > void assignCap(GameRules.Key key, GameRules rules, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper - Pass ServerLevel for gamerule callbacks T t0 = rules.getRule(key); this.getRule(key).setFrom(t0, server); @@ -82,11 +82,11 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f private final Supplier> argument; private final Function, T> constructor; - final BiConsumer callback; -+ final BiConsumer callback; // Paper ++ final BiConsumer callback; // Paper - Pass ServerLevel for gamerule callbacks private final GameRules.VisitorCaller visitorCaller; - Type(Supplier> argumentType, Function, T> ruleFactory, BiConsumer changeCallback, GameRules.VisitorCaller ruleAcceptor) { -+ Type(Supplier> argumentType, Function, T> ruleFactory, BiConsumer changeCallback, GameRules.VisitorCaller ruleAcceptor) { // Paper ++ Type(Supplier> argumentType, Function, T> ruleFactory, BiConsumer changeCallback, GameRules.VisitorCaller ruleAcceptor) { // Paper - Pass ServerLevel for gamerule callbacks this.argument = argumentType; this.constructor = ruleFactory; this.callback = changeCallback; @@ -95,11 +95,11 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f public void setFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey) { // Paper this.updateFromArgument(context, name, gameRuleKey); // Paper - this.onChanged(((CommandSourceStack) context.getSource()).getServer()); -+ this.onChanged(((CommandSourceStack) context.getSource()).getLevel()); // Paper ++ this.onChanged(((CommandSourceStack) context.getSource()).getLevel()); // Paper - Pass ServerLevel for gamerule callbacks } - public void onChanged(@Nullable MinecraftServer server) { -+ public void onChanged(@Nullable net.minecraft.server.level.ServerLevel server) { // Paper ++ public void onChanged(@Nullable net.minecraft.server.level.ServerLevel server) { // Paper - Pass ServerLevel for gamerule callbacks if (server != null) { this.type.callback.accept(server, this.getSelf()); } @@ -108,7 +108,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f protected abstract T copy(); - public abstract void setFrom(T rule, @Nullable MinecraftServer server); -+ public abstract void setFrom(T rule, @Nullable net.minecraft.server.level.ServerLevel level); // Paper ++ public abstract void setFrom(T rule, @Nullable net.minecraft.server.level.ServerLevel level); // Paper - Pass ServerLevel for gamerule callbacks } public interface GameRuleTypeVisitor { @@ -117,7 +117,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f private boolean value; - static GameRules.Type create(boolean initialValue, BiConsumer changeCallback) { -+ static GameRules.Type create(boolean initialValue, BiConsumer changeCallback) { // Paper ++ static GameRules.Type create(boolean initialValue, BiConsumer changeCallback) { // Paper - Pass ServerLevel for gamerule callbacks return new GameRules.Type<>(BoolArgumentType::bool, (gamerules_gameruledefinition) -> { return new GameRules.BooleanValue(gamerules_gameruledefinition, initialValue); }, changeCallback, GameRules.GameRuleTypeVisitor::visitBoolean); @@ -126,7 +126,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f } - public void set(boolean value, @Nullable MinecraftServer server) { -+ public void set(boolean value, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper ++ public void set(boolean value, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper - Pass ServerLevel for gamerule callbacks this.value = value; this.onChanged(server); } @@ -135,7 +135,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f } - public void setFrom(GameRules.BooleanValue rule, @Nullable MinecraftServer server) { -+ public void setFrom(GameRules.BooleanValue rule, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper ++ public void setFrom(GameRules.BooleanValue rule, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper - Pass ServerLevel for gamerule callbacks this.value = rule.value; this.onChanged(server); } @@ -144,7 +144,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f private int value; - private static GameRules.Type create(int initialValue, BiConsumer changeCallback) { -+ private static GameRules.Type create(int initialValue, BiConsumer changeCallback) { // Paper ++ private static GameRules.Type create(int initialValue, BiConsumer changeCallback) { // Paper - Pass ServerLevel for gamerule callbacks return new GameRules.Type<>(IntegerArgumentType::integer, (gamerules_gameruledefinition) -> { return new GameRules.IntegerValue(gamerules_gameruledefinition, initialValue); }, changeCallback, GameRules.GameRuleTypeVisitor::visitInteger); @@ -153,7 +153,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f } - public void set(int value, @Nullable MinecraftServer server) { -+ public void set(int value, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper ++ public void set(int value, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper - Pass ServerLevel for gamerule callbacks this.value = value; this.onChanged(server); } @@ -162,12 +162,12 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..6c1af24f2f02ef5fe1be135b4071362f } - public void setFrom(GameRules.IntegerValue rule, @Nullable MinecraftServer server) { -+ public void setFrom(GameRules.IntegerValue rule, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper ++ public void setFrom(GameRules.IntegerValue rule, @Nullable net.minecraft.server.level.ServerLevel server) { // Paper - Pass ServerLevel for gamerule callbacks this.value = rule.value; this.onChanged(server); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 719d2ac5907b4c96828460daae9f254c2cd3e840..388ce676487dc094cf78ce7bd3c50942b3ec5e29 100644 +index 3cf9aafb3ce75c0340605fa29c2a55ff237b843b..c517d8e2daac5675425783a50ae04b5d2a07e37a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2038,7 +2038,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -175,7 +175,7 @@ index 719d2ac5907b4c96828460daae9f254c2cd3e840..388ce676487dc094cf78ce7bd3c50942 GameRules.Value handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule)); handle.deserialize(event.getValue()); // Paper - handle.onChanged(this.getHandle().getServer()); -+ handle.onChanged(this.getHandle()); // Paper ++ handle.onChanged(this.getHandle()); // Paper - Pass ServerLevel for gamerule callbacks return true; } @@ -184,7 +184,7 @@ index 719d2ac5907b4c96828460daae9f254c2cd3e840..388ce676487dc094cf78ce7bd3c50942 GameRules.Value handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule.getName())); handle.deserialize(event.getValue()); // Paper - handle.onChanged(this.getHandle().getServer()); -+ handle.onChanged(this.getHandle()); // Paper ++ handle.onChanged(this.getHandle()); // Paper - Pass ServerLevel for gamerule callbacks return true; } diff --git a/patches/server/0779-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/server/0779-Expand-PlayerItemDamageEvent.patch similarity index 78% rename from patches/server/0779-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch rename to patches/server/0779-Expand-PlayerItemDamageEvent.patch index 93bdb73d1c5b..bf237c94c31e 100644 --- a/patches/server/0779-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch +++ b/patches/server/0779-Expand-PlayerItemDamageEvent.patch @@ -1,23 +1,23 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: HexedHero <6012891+HexedHero@users.noreply.github.com> Date: Sun, 10 Apr 2022 06:26:32 +0100 -Subject: [PATCH] Add pre-unbreaking amount to PlayerItemDamageEvent +Subject: [PATCH] Expand PlayerItemDamageEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 8cf7d514803fd953e068d3436bfd4e50fb4b0da0..80682ce58d0b0ce0409d162f447b585163c36753 100644 +index 8cf7d514803fd953e068d3436bfd4e50fb4b0da0..6b38e515a77df7fb06b41fbedaa1090b1cac78fb 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -638,10 +638,11 @@ public final class ItemStack { } } -+ int originalDamage = amount; // Paper ++ int originalDamage = amount; // Paper - Expand PlayerItemDamageEvent amount -= k; // CraftBukkit start if (player instanceof ServerPlayer serverPlayer) { // Paper - PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount); // Paper -+ PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount, originalDamage); // Paper ++ PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount, originalDamage); // Paper - Expand PlayerItemDamageEvent event.getPlayer().getServer().getPluginManager().callEvent(event); if (amount != event.getDamage() || event.isCancelled()) { diff --git a/patches/server/0780-WorldCreator-keepSpawnLoaded.patch b/patches/server/0780-WorldCreator-keepSpawnLoaded.patch index 74001a685da2..efa63d431ed8 100644 --- a/patches/server/0780-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0780-WorldCreator-keepSpawnLoaded.patch @@ -5,7 +5,7 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f9b994a024be198a26d0213b9c98fc46987549a4..08eb6f115fe5fb2414a35010faa91d6fab7db0e2 100644 +index 8802d28c71d3ebc74690ad5c53c7dd77436e1a9f..170da30329f2a0d65a05c0d5c7a4170405df6aef 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1283,7 +1283,7 @@ public final class CraftServer implements Server { @@ -19,7 +19,7 @@ index f9b994a024be198a26d0213b9c98fc46987549a4..08eb6f115fe5fb2414a35010faa91d6f return null; @@ -1295,6 +1295,7 @@ public final class CraftServer implements Server { internal.setSpawnSettings(true, true); - // Paper - move up + // Paper - Put world into worldlist before initing the world; move up + internal.keepSpawnInMemory = creator.keepSpawnLoaded().toBooleanOrElse(internal.getWorld().getKeepSpawnInMemory()); // Paper this.getServer().prepareLevels(internal.getChunkSource().chunkMap.progressListener, internal); diff --git a/patches/server/0782-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0782-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch index 893840fdd53a..d77d4323a79e 100644 --- a/patches/server/0782-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch +++ b/patches/server/0782-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch @@ -5,23 +5,23 @@ Subject: [PATCH] Trigger bee_nest_destroyed trigger in the correct place diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 236dabc1d4ae9dc9a2a2c07a4a27fc0bfae72f66..bf9b185e3defb496022c20ec60a84a4f6f99d5be 100644 +index 236dabc1d4ae9dc9a2a2c07a4a27fc0bfae72f66..a7c0db6aebef3aec931513c726447091088cc546 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -423,12 +423,16 @@ public class ServerPlayerGameMode { block.destroy(this.level, pos, iblockdata1); } -+ ItemStack mainHandStack = null; // Paper -+ boolean isCorrectTool = false; // Paper ++ ItemStack mainHandStack = null; // Paper - Trigger bee_nest_destroyed trigger in the correct place ++ boolean isCorrectTool = false; // Paper - Trigger bee_nest_destroyed trigger in the correct place if (this.isCreative()) { // return true; // CraftBukkit } else { ItemStack itemstack = this.player.getMainHandItem(); ItemStack itemstack1 = itemstack.copy(); boolean flag1 = this.player.hasCorrectToolForDrops(iblockdata1); -+ mainHandStack = itemstack1; // Paper -+ isCorrectTool = flag1; // Paper ++ mainHandStack = itemstack1; // Paper - Trigger bee_nest_destroyed trigger in the correct place ++ isCorrectTool = flag1; // Paper - Trigger bee_nest_destroyed trigger in the correct place itemstack.mineBlock(this.level, iblockdata1, pos, this.player); if (flag && flag1 && event.isDropItems()) { // CraftBukkit - Check if block should drop items @@ -29,18 +29,18 @@ index 236dabc1d4ae9dc9a2a2c07a4a27fc0bfae72f66..bf9b185e3defb496022c20ec60a84a4f if (flag && event != null) { iblockdata.getBlock().popExperience(this.level, pos, event.getExpToDrop(), this.player); // Paper } -+ // Paper start - trigger after items are dropped (check impls of block#playerDestroy) ++ // Paper start - Trigger bee_nest_destroyed trigger in the correct place (check impls of block#playerDestroy) + if (mainHandStack != null) { + if (flag && isCorrectTool && event.isDropItems() && block instanceof net.minecraft.world.level.block.BeehiveBlock && tileentity instanceof net.minecraft.world.level.block.entity.BeehiveBlockEntity beehiveBlockEntity) { // simulates the guard on block#playerDestroy above + CriteriaTriggers.BEE_NEST_DESTROYED.trigger(player, iblockdata, mainHandStack, beehiveBlockEntity.getOccupantCount()); + } + } -+ // Paper end ++ // Paper end - Trigger bee_nest_destroyed trigger in the correct place return true; // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java -index f82cd3677da96d3cf051c983d08a8ff302400b18..6e7a9f68aa3a5084c8eea9fd8721272260734289 100644 +index f82cd3677da96d3cf051c983d08a8ff302400b18..ed87664f513cf82c7bf8439672a656d0a57c1991 100644 --- a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java @@ -95,7 +95,7 @@ public class BeehiveBlock extends BaseEntityBlock { @@ -48,7 +48,7 @@ index f82cd3677da96d3cf051c983d08a8ff302400b18..6e7a9f68aa3a5084c8eea9fd87212722 } - CriteriaTriggers.BEE_NEST_DESTROYED.trigger((ServerPlayer) player, state, tool, tileentitybeehive.getOccupantCount()); -+ // CriteriaTriggers.BEE_NEST_DESTROYED.trigger((ServerPlayer) player, state, tool, tileentitybeehive.getOccupantCount()); // Paper - moved until after items are dropped ++ // CriteriaTriggers.BEE_NEST_DESTROYED.trigger((ServerPlayer) player, state, tool, tileentitybeehive.getOccupantCount()); // Paper - Trigger bee_nest_destroyed trigger in the correct place; moved until after items are dropped } } diff --git a/patches/server/0783-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0783-Add-EntityDyeEvent-and-CollarColorable-interface.patch index 76380e425bf0..758be4b481e8 100644 --- a/patches/server/0783-Add-EntityDyeEvent-and-CollarColorable-interface.patch +++ b/patches/server/0783-Add-EntityDyeEvent-and-CollarColorable-interface.patch @@ -5,38 +5,38 @@ Subject: [PATCH] Add EntityDyeEvent and CollarColorable interface diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index a744cb70ac719eae376fb2ab2271e4f8ac7b12f2..40af8405c6f3ecc5a8168bb62607eb79862cefa6 100644 +index 7dfd2b17e82a80683af28779d0bd8f64a909c3b6..1d0c424be2b67cad0f8bca85070a9c46a6b283da 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -402,6 +402,13 @@ public class Cat extends TamableAnimal implements VariantHolder { DyeColor enumcolor = ((DyeItem) item).getDyeColor(); if (enumcolor != this.getCollarColor()) { -+ // Paper start ++ // Paper start - Add EntityDyeEvent and CollarColorable interface + final io.papermc.paper.event.entity.EntityDyeEvent event = new io.papermc.paper.event.entity.EntityDyeEvent(this.getBukkitEntity(), org.bukkit.DyeColor.getByWoolData((byte) enumcolor.getId()), ((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity()); + if (!event.callEvent()) { + return InteractionResult.FAIL; + } + enumcolor = DyeColor.byId(event.getColor().getWoolData()); -+ // Paper end ++ // Paper end - Add EntityDyeEvent and CollarColorable interface this.setCollarColor(enumcolor); if (!player.getAbilities().instabuild) { itemstack.shrink(1); diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 9ebb994b62b58352525da21385f02803e8414687..eecb7511582e5e316b71fa4a4734881424be5ca7 100644 +index 9ebb994b62b58352525da21385f02803e8414687..2d20b2c1f58beb1ad8c9012d8124e476899e6be6 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -369,6 +369,14 @@ public class Wolf extends TamableAnimal implements NeutralMob { DyeColor enumcolor = itemdye.getDyeColor(); if (enumcolor != this.getCollarColor()) { -+ // Paper start ++ // Paper start - Add EntityDyeEvent and CollarColorable interface + final io.papermc.paper.event.entity.EntityDyeEvent event = new io.papermc.paper.event.entity.EntityDyeEvent(this.getBukkitEntity(), org.bukkit.DyeColor.getByWoolData((byte) enumcolor.getId()), ((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity()); + if (!event.callEvent()) { + return InteractionResult.FAIL; + } + enumcolor = DyeColor.byId(event.getColor().getWoolData()); -+ // Paper end ++ // Paper end - Add EntityDyeEvent and CollarColorable interface + this.setCollarColor(enumcolor); if (!player.getAbilities().instabuild) { diff --git a/patches/server/0784-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0784-Fire-CauldronLevelChange-on-initial-fill.patch index bfc20b160222..2f02c180d2ca 100644 --- a/patches/server/0784-Fire-CauldronLevelChange-on-initial-fill.patch +++ b/patches/server/0784-Fire-CauldronLevelChange-on-initial-fill.patch @@ -7,7 +7,7 @@ Also don't fire level events or game events if stalactite drip is cancelled diff --git a/src/main/java/net/minecraft/core/cauldron/CauldronInteraction.java b/src/main/java/net/minecraft/core/cauldron/CauldronInteraction.java -index 4c9334dde0734a3550a810845cee53f474e9c96b..ef7f1a871144f4a6897769f2459a4dd5eeffa5b4 100644 +index 4c9334dde0734a3550a810845cee53f474e9c96b..dc1d20691ae5bd9026143e143a9bfdc1b6cfd6eb 100644 --- a/src/main/java/net/minecraft/core/cauldron/CauldronInteraction.java +++ b/src/main/java/net/minecraft/core/cauldron/CauldronInteraction.java @@ -80,7 +80,7 @@ public interface CauldronInteraction { @@ -15,7 +15,7 @@ index 4c9334dde0734a3550a810845cee53f474e9c96b..ef7f1a871144f4a6897769f2459a4dd5 if (!world.isClientSide) { // CraftBukkit start - if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, Blocks.WATER_CAULDRON.defaultBlockState(), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY)) { -+ if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, Blocks.WATER_CAULDRON.defaultBlockState(), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY, false)) { // Paper ++ if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, Blocks.WATER_CAULDRON.defaultBlockState(), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY, false)) { // Paper - Call CauldronLevelChange return InteractionResult.SUCCESS; } // CraftBukkit end @@ -24,7 +24,7 @@ index 4c9334dde0734a3550a810845cee53f474e9c96b..ef7f1a871144f4a6897769f2459a4dd5 if (!world.isClientSide) { // CraftBukkit start - if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, iblockdata.cycle(LayeredCauldronBlock.LEVEL), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY)) { -+ if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, iblockdata.cycle(LayeredCauldronBlock.LEVEL), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY, false)) { // Paper ++ if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, iblockdata.cycle(LayeredCauldronBlock.LEVEL), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY, false)) { // Paper - Call CauldronLevelChange return InteractionResult.SUCCESS; } // CraftBukkit end @@ -33,7 +33,7 @@ index 4c9334dde0734a3550a810845cee53f474e9c96b..ef7f1a871144f4a6897769f2459a4dd5 if (!world.isClientSide) { // CraftBukkit start - if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.CAULDRON.defaultBlockState(), player, CauldronLevelChangeEvent.ChangeReason.BUCKET_FILL)) { -+ if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.CAULDRON.defaultBlockState(), player, CauldronLevelChangeEvent.ChangeReason.BUCKET_FILL, false)) { // Paper ++ if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.CAULDRON.defaultBlockState(), player, CauldronLevelChangeEvent.ChangeReason.BUCKET_FILL, false)) { // Paper - Call CauldronLevelChange return InteractionResult.SUCCESS; } // CraftBukkit end @@ -42,12 +42,12 @@ index 4c9334dde0734a3550a810845cee53f474e9c96b..ef7f1a871144f4a6897769f2459a4dd5 if (!world.isClientSide) { // CraftBukkit start - if (!LayeredCauldronBlock.changeLevel(state, world, pos, state, player, CauldronLevelChangeEvent.ChangeReason.BUCKET_EMPTY)) { -+ if (!LayeredCauldronBlock.changeLevel(state, world, pos, state, player, CauldronLevelChangeEvent.ChangeReason.BUCKET_EMPTY, false)) { // Paper ++ if (!LayeredCauldronBlock.changeLevel(state, world, pos, state, player, CauldronLevelChangeEvent.ChangeReason.BUCKET_EMPTY, false)) { // Paper - Call CauldronLevelChange return InteractionResult.SUCCESS; } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/CauldronBlock.java b/src/main/java/net/minecraft/world/level/block/CauldronBlock.java -index 588b3e911d9b22dad2928ea9e32e8a8a3a8e9b96..a821a981adbebdcf22997731b9bbea3d033cd2b1 100644 +index 588b3e911d9b22dad2928ea9e32e8a8a3a8e9b96..274dc56a71fb05060de42169df34dfd8097f2b62 100644 --- a/src/main/java/net/minecraft/world/level/block/CauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CauldronBlock.java @@ -43,10 +43,18 @@ public class CauldronBlock extends AbstractCauldronBlock { @@ -55,19 +55,19 @@ index 588b3e911d9b22dad2928ea9e32e8a8a3a8e9b96..a821a981adbebdcf22997731b9bbea3d if (CauldronBlock.shouldHandlePrecipitation(world, precipitation)) { if (precipitation == Biome.Precipitation.RAIN) { - world.setBlockAndUpdate(pos, Blocks.WATER_CAULDRON.defaultBlockState()); -+ // Paper start - call event for initial fill ++ // Paper start - Call CauldronLevelChange + if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.WATER_CAULDRON.defaultBlockState(), null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL, false)) { // avoid duplicate game event + return; + } -+ // Paper end ++ // Paper end - Call CauldronLevelChange world.gameEvent((Entity) null, GameEvent.BLOCK_CHANGE, pos); } else if (precipitation == Biome.Precipitation.SNOW) { - world.setBlockAndUpdate(pos, Blocks.POWDER_SNOW_CAULDRON.defaultBlockState()); -+ // Paper start - call event for initial fill ++ // Paper start - Call CauldronLevelChange + if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.POWDER_SNOW_CAULDRON.defaultBlockState(), null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL, false)) { // avoid duplicate game event + return; + } -+ // Paper end ++ // Paper end - Call CauldronLevelChange world.gameEvent((Entity) null, GameEvent.BLOCK_CHANGE, pos); } @@ -76,25 +76,25 @@ index 588b3e911d9b22dad2928ea9e32e8a8a3a8e9b96..a821a981adbebdcf22997731b9bbea3d if (fluid == Fluids.WATER) { iblockdata1 = Blocks.WATER_CAULDRON.defaultBlockState(); - LayeredCauldronBlock.changeLevel(state, world, pos, iblockdata1, null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL); // CraftBukkit -+ // Paper start - don't send level event or game event if cancelled ++ // Paper start - Call CauldronLevelChange; don't send level event or game event if cancelled + if (!LayeredCauldronBlock.changeLevel(state, world, pos, iblockdata1, null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL)) { // CraftBukkit + return; + } -+ // Paper end ++ // Paper end - Call CauldronLevelChange world.levelEvent(1047, pos, 0); } else if (fluid == Fluids.LAVA) { iblockdata1 = Blocks.LAVA_CAULDRON.defaultBlockState(); - LayeredCauldronBlock.changeLevel(state, world, pos, iblockdata1, null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL); // CraftBukkit -+ // Paper start - don't send level event or game event if cancelled ++ // Paper start - Call CauldronLevelChange; don't send level event or game event if cancelled + if (!LayeredCauldronBlock.changeLevel(state, world, pos, iblockdata1, null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL)) { // CraftBukkit + return; + } -+ // Paper end ++ // Paper end - Call CauldronLevelChange world.levelEvent(1046, pos, 0); } diff --git a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java -index a8b2c49ebf531d730d681ca3bceb4dc74b433fdb..7daf2ec30fd31023d326a6149661f38bfc1d646b 100644 +index a8b2c49ebf531d730d681ca3bceb4dc74b433fdb..b9383a9992e940fc3442d52344744cfe2fadfb74 100644 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java @@ -101,7 +101,13 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock { @@ -102,13 +102,13 @@ index a8b2c49ebf531d730d681ca3bceb4dc74b433fdb..7daf2ec30fd31023d326a6149661f38b // CraftBukkit start - public static boolean changeLevel(BlockState iblockdata, Level world, BlockPos blockposition, BlockState newBlock, Entity entity, CauldronLevelChangeEvent.ChangeReason reason) { -+ // Paper start ++ // Paper start - Call CauldronLevelChange + public static boolean changeLevel(BlockState iblockdata, Level world, BlockPos blockposition, BlockState newBlock, @javax.annotation.Nullable Entity entity, CauldronLevelChangeEvent.ChangeReason reason) { // Paper - entity is nullable + return changeLevel(iblockdata, world, blockposition, newBlock, entity, reason, true); + } + + public static boolean changeLevel(BlockState iblockdata, Level world, BlockPos blockposition, BlockState newBlock, @javax.annotation.Nullable Entity entity, CauldronLevelChangeEvent.ChangeReason reason, boolean sendGameEvent) { // Paper - entity is nullable -+ // Paper end ++ // Paper end - Call CauldronLevelChange CraftBlockState newState = CraftBlockStates.getBlockState(world, blockposition); newState.setData(newBlock); @@ -117,7 +117,7 @@ index a8b2c49ebf531d730d681ca3bceb4dc74b433fdb..7daf2ec30fd31023d326a6149661f38b } newState.update(true); - world.gameEvent(GameEvent.BLOCK_CHANGE, blockposition, GameEvent.Context.of(newBlock)); -+ if (sendGameEvent) world.gameEvent(GameEvent.BLOCK_CHANGE, blockposition, GameEvent.Context.of(newBlock)); // Paper ++ if (sendGameEvent) world.gameEvent(GameEvent.BLOCK_CHANGE, blockposition, GameEvent.Context.of(newBlock)); // Paper - Call CauldronLevelChange return true; } // CraftBukkit end diff --git a/patches/server/0785-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0785-fix-powder-snow-cauldrons-not-turning-to-water.patch index 26317d1b0b4a..f60f04609d5c 100644 --- a/patches/server/0785-fix-powder-snow-cauldrons-not-turning-to-water.patch +++ b/patches/server/0785-fix-powder-snow-cauldrons-not-turning-to-water.patch @@ -7,7 +7,7 @@ Powder snow cauldrons should turn to water when extinguishing an entity diff --git a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java -index 7daf2ec30fd31023d326a6149661f38bfc1d646b..93f5e583635a2addeabf2adff9374dcec0b66ee4 100644 +index b9383a9992e940fc3442d52344744cfe2fadfb74..db8d2157df0b276313493af224be343ae0de0917 100644 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java @@ -69,7 +69,7 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock { @@ -23,7 +23,7 @@ index 7daf2ec30fd31023d326a6149661f38bfc1d646b..93f5e583635a2addeabf2adff9374dce } -+ @Deprecated // Paper - use #handleEntityOnFireInsideWithEvent ++ @Deprecated // Paper - fix powdered snow cauldron extinguishing entities; use #handleEntityOnFireInsideWithEvent private void handleEntityOnFireInside(BlockState state, Level world, BlockPos pos) { if (this.precipitationType == Biome.Precipitation.SNOW) { LayeredCauldronBlock.lowerFillLevel((BlockState) Blocks.WATER_CAULDRON.defaultBlockState().setValue(LayeredCauldronBlock.LEVEL, (Integer) state.getValue(LayeredCauldronBlock.LEVEL)), world, pos); @@ -31,7 +31,7 @@ index 7daf2ec30fd31023d326a6149661f38bfc1d646b..93f5e583635a2addeabf2adff9374dce } } -+ // Paper start ++ // Paper start - fix powdered snow cauldron extinguishing entities + protected boolean handleEntityOnFireInsideWithEvent(BlockState state, Level world, BlockPos pos, Entity entity) { + if (this.precipitationType == Biome.Precipitation.SNOW) { + return LayeredCauldronBlock.lowerFillLevel((BlockState) Blocks.WATER_CAULDRON.defaultBlockState().setValue(LayeredCauldronBlock.LEVEL, (Integer) state.getValue(LayeredCauldronBlock.LEVEL)), world, pos, entity, CauldronLevelChangeEvent.ChangeReason.EXTINGUISH); @@ -39,7 +39,7 @@ index 7daf2ec30fd31023d326a6149661f38bfc1d646b..93f5e583635a2addeabf2adff9374dce + return LayeredCauldronBlock.lowerFillLevel(state, world, pos, entity, CauldronLevelChangeEvent.ChangeReason.EXTINGUISH); + } + } -+ // Paper end ++ // Paper end - fix powdered snow cauldron extinguishing entities public static void lowerFillLevel(BlockState state, Level world, BlockPos pos) { // CraftBukkit start diff --git a/patches/server/0786-Add-PlayerStopUsingItemEvent.patch b/patches/server/0786-Add-PlayerStopUsingItemEvent.patch index 566a7a01fd31..d434d58cbaa7 100644 --- a/patches/server/0786-Add-PlayerStopUsingItemEvent.patch +++ b/patches/server/0786-Add-PlayerStopUsingItemEvent.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e27b19cf56b269c426cb6ddf81513497b70c676f..36ecdf1d0171286893b267b4591d298eefe40587 100644 +index e27b19cf56b269c426cb6ddf81513497b70c676f..546777ad955d0d317d129882cfeab68935708228 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4025,6 +4025,7 @@ public abstract class LivingEntity extends Entity implements Attackable { public void releaseUsingItem() { if (!this.useItem.isEmpty()) { -+ if (this instanceof ServerPlayer) new io.papermc.paper.event.player.PlayerStopUsingItemEvent((Player) getBukkitEntity(), useItem.asBukkitMirror(), getTicksUsingItem()).callEvent(); // Paper ++ if (this instanceof ServerPlayer) new io.papermc.paper.event.player.PlayerStopUsingItemEvent((Player) getBukkitEntity(), useItem.asBukkitMirror(), getTicksUsingItem()).callEvent(); // Paper - Add PlayerStopUsingItemEvent this.useItem.releaseUsing(this.level(), this, this.getUseItemRemainingTicks()); if (this.useItem.useOnRelease()) { this.updatingUsingItem(); diff --git a/patches/server/0787-Don-t-tick-markers.patch b/patches/server/0787-Don-t-tick-markers.patch index b24d4569b24a..1346990dc8ab 100644 --- a/patches/server/0787-Don-t-tick-markers.patch +++ b/patches/server/0787-Don-t-tick-markers.patch @@ -10,7 +10,7 @@ list is only used in the tick and tickPassenger methods, so we can safely not ad markers to it. When the config option is set to true, markers are ticked as normal. diff --git a/src/main/java/io/papermc/paper/command/subcommands/EntityCommand.java b/src/main/java/io/papermc/paper/command/subcommands/EntityCommand.java -index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5f43aedc6596e2b1ac7af9711515714752c262e3 100644 +index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5e5a018433414af76eaa1e781f61612ddc305b07 100644 --- a/src/main/java/io/papermc/paper/command/subcommands/EntityCommand.java +++ b/src/main/java/io/papermc/paper/command/subcommands/EntityCommand.java @@ -109,7 +109,7 @@ public final class EntityCommand implements PaperSubcommand { @@ -18,7 +18,7 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5f43aedc6596e2b1ac7af97115157147 info.left++; info.right.put(chunk, info.right.getOrDefault(chunk, 0) + 1); - if (!chunkProviderServer.isPositionTicking(e)) { -+ if (!chunkProviderServer.isPositionTicking(e) || (e instanceof net.minecraft.world.entity.Marker && !world.paperConfig().entities.markers.tick)) { // Configurable marker ticking ++ if (!chunkProviderServer.isPositionTicking(e) || (e instanceof net.minecraft.world.entity.Marker && !world.paperConfig().entities.markers.tick)) { // Paper - Configurable marker ticking nonEntityTicking.merge(key, 1, Integer::sum); } }); @@ -35,21 +35,21 @@ index cae00701c5dbf40be07ea5c2d01ea8929f4fa216..646fb7e4a83e9f9a1b78d8c70f3518b9 } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 3495981419a75efe42bce45a89a32378dd6b8372..2d31752478636bd21bbff5b430e5acb76b5d91c2 100644 +index 3495981419a75efe42bce45a89a32378dd6b8372..fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -213,8 +213,14 @@ public class ActivationRange // Paper start java.util.List entities = world.getEntities((Entity)null, ActivationRange.maxBB, null); -+ boolean tickMarkers = world.paperConfig().entities.markers.tick; // Paper - configurable marker ticking ++ boolean tickMarkers = world.paperConfig().entities.markers.tick; // Paper - Configurable marker ticking for (int i = 0; i < entities.size(); i++) { Entity entity = entities.get(i); -+ // Paper start - configurable marker ticking ++ // Paper start - Configurable marker ticking + if (!tickMarkers && entity instanceof net.minecraft.world.entity.Marker) { + continue; + } -+ // Paper end - configurable marker ticking ++ // Paper end - Configurable marker ticking ActivationRange.activateEntity(entity); } // Paper end diff --git a/patches/server/0788-Expand-FallingBlock-API.patch b/patches/server/0788-Expand-FallingBlock-API.patch index 2a31126860d6..61bcc91c7626 100644 --- a/patches/server/0788-Expand-FallingBlock-API.patch +++ b/patches/server/0788-Expand-FallingBlock-API.patch @@ -13,14 +13,14 @@ public net.minecraft.world.entity.item.FallingBlockEntity blockState Co-authored-by: Lukas Planz diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index fc33d05cf1a3cceb220dab1ee1da33ffe37834db..45c07733f03b5c11f6d8e820f65dc950c70d9a67 100644 +index fc33d05cf1a3cceb220dab1ee1da33ffe37834db..21a4669b01e9c57100224e20500bc23f8e101434 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -66,6 +66,7 @@ public class FallingBlockEntity extends Entity { @Nullable public CompoundTag blockData; protected static final EntityDataAccessor DATA_START_POS = SynchedEntityData.defineId(FallingBlockEntity.class, EntityDataSerializers.BLOCK_POS); -+ public boolean autoExpire = true; // Paper - Auto expire setting ++ public boolean autoExpire = true; // Paper - Expand FallingBlock API public FallingBlockEntity(EntityType type, Level world) { super(type, world); @@ -29,7 +29,7 @@ index fc33d05cf1a3cceb220dab1ee1da33ffe37834db..45c07733f03b5c11f6d8e820f65dc950 if (!this.onGround() && !flag1) { - if (!this.level().isClientSide && (this.time > 100 && (blockposition.getY() <= this.level().getMinBuildHeight() || blockposition.getY() > this.level().getMaxBuildHeight()) || this.time > 600)) { -+ if (!this.level().isClientSide && ((this.time > 100 && autoExpire) && (blockposition.getY() <= this.level().getMinBuildHeight() || blockposition.getY() > this.level().getMaxBuildHeight()) || (this.time > 600 && autoExpire))) { // Paper - Auto expire setting ++ if (!this.level().isClientSide && ((this.time > 100 && autoExpire) && (blockposition.getY() <= this.level().getMinBuildHeight() || blockposition.getY() > this.level().getMaxBuildHeight()) || (this.time > 600 && autoExpire))) { // Paper - Expand FallingBlock API if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { this.spawnAtLocation((ItemLike) block); } @@ -37,7 +37,7 @@ index fc33d05cf1a3cceb220dab1ee1da33ffe37834db..45c07733f03b5c11f6d8e820f65dc950 } nbt.putBoolean("CancelDrop", this.cancelDrop); -+ if (!autoExpire) {nbt.putBoolean("Paper.AutoExpire", false);} // Paper - AutoExpire setting ++ if (!autoExpire) {nbt.putBoolean("Paper.AutoExpire", false);} // Paper - Expand FallingBlock API } @Override @@ -45,23 +45,23 @@ index fc33d05cf1a3cceb220dab1ee1da33ffe37834db..45c07733f03b5c11f6d8e820f65dc950 this.setOrigin(new org.bukkit.Location(this.level().getWorld(), srcX, srcY, srcZ)); } // Paper end -+ // Paper start ++ // Paper start - Expand FallingBlock API + if (nbt.contains("Paper.AutoExpire")) { + this.autoExpire = nbt.getBoolean("Paper.AutoExpire"); + } -+ // Paper end ++ // Paper end - Expand FallingBlock API } public void setHurtsEntities(float fallHurtAmount, int fallHurtMax) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java -index a7a3f74b846112d752fe04162b30805961457b11..73911b81f4e927026657953a0c68ddda9a8f93c1 100644 +index a7a3f74b846112d752fe04162b30805961457b11..2ba8f461d32a7c517a93461bf6f8f5cd4defdef4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java @@ -33,6 +33,31 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock { public BlockData getBlockData() { return CraftBlockData.fromData(this.getHandle().getBlockState()); } -+ // Paper start ++ // Paper start - Expand FallingBlock API + @Override + public void setBlockData(final BlockData blockData) { + Preconditions.checkArgument(blockData != null, "blockData"); @@ -85,7 +85,7 @@ index a7a3f74b846112d752fe04162b30805961457b11..73911b81f4e927026657953a0c68ddda + this.setBlockData(blockState.getBlockData()); + if (blockState instanceof final org.bukkit.craftbukkit.block.CraftBlockEntityState tileEntity) this.getHandle().blockData = tileEntity.getSnapshotNBT(); + } -+ // Paper end ++ // Paper end - Expand FallingBlock API @Override public boolean getDropItem() { @@ -93,7 +93,7 @@ index a7a3f74b846112d752fe04162b30805961457b11..73911b81f4e927026657953a0c68ddda this.setHurtEntities(true); } } -+ // Paper Start - Auto expire setting ++ // Paper Start - Expand FallingBlock API + @Override + public boolean doesAutoExpire() { + return this.getHandle().autoExpire; @@ -103,5 +103,5 @@ index a7a3f74b846112d752fe04162b30805961457b11..73911b81f4e927026657953a0c68ddda + public void shouldAutoExpire(boolean autoExpires) { + this.getHandle().autoExpire = autoExpires; + } -+ // Paper End - Auto expire setting ++ // Paper End - Expand FallingBlock API } diff --git a/patches/server/0789-Do-not-accept-invalid-client-settings.patch b/patches/server/0789-Do-not-accept-invalid-client-settings.patch index 2d9a6d6bf20c..03d00dc89bfc 100644 --- a/patches/server/0789-Do-not-accept-invalid-client-settings.patch +++ b/patches/server/0789-Do-not-accept-invalid-client-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Do not accept invalid client settings diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 52efebcc440253e84640be3c24c2dcd76c2a5b9a..c63dd80b23df877cb900e608406f747b87e3cae7 100644 +index 9ce9390291988e3110e228e83e0754e5529de800..aba06bae97f021d9f62441eb662539a0bbc815ef 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3321,6 +3321,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0790-Add-support-for-Proxy-Protocol.patch b/patches/server/0790-Add-support-for-Proxy-Protocol.patch index 6fd4cd5598c8..17373a6c1975 100644 --- a/patches/server/0790-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0790-Add-support-for-Proxy-Protocol.patch @@ -17,18 +17,18 @@ index 517920023bc28fea04eeb709364d5a7292adcc5e..444ff797c70b0e285d4272ea2ce3d724 implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion implementation("org.ow2.asm:asm-commons:9.5") diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 54c7f34ba3dc8466223e589702d0c93af8cf52a0..79326308f6126f84a3cbb3d5a33302de048d8a50 100644 +index 54c7f34ba3dc8466223e589702d0c93af8cf52a0..1df438ce6604981d459a6bc0b351be6d7c1bc050 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -111,6 +111,12 @@ public class ServerConnectionListener { ServerConnectionListener.LOGGER.info("Paper: Using " + com.velocitypowered.natives.util.Natives.cipher.getLoadedVariant() + " cipher from Velocity."); // Paper end -+ // Paper start - indicate Proxy Protocol usage ++ // Paper start - Add support for proxy protocol + if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.proxyProtocol) { + ServerConnectionListener.LOGGER.info("Paper: Using Proxy Protocol"); + } -+ // Paper end ++ // Paper end - Add support for proxy protocol + this.channels.add(((ServerBootstrap) ((ServerBootstrap) (new ServerBootstrap()).channel(oclass)).childHandler(new ChannelInitializer() { protected void initChannel(Channel channel) { @@ -59,7 +59,7 @@ index 54c7f34ba3dc8466223e589702d0c93af8cf52a0..79326308f6126f84a3cbb3d5a33302de + } + }); + } -+ // Paper end ++ // Paper end - Add support for proxy protocol pending.add(object); // Paper ((Connection) object).configurePacketHandler(channelpipeline); ((Connection) object).setListenerForServerboundHandshake(new ServerHandshakePacketListenerImpl(ServerConnectionListener.this.server, (Connection) object)); diff --git a/patches/server/0792-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0792-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch index 6fdd1fd27183..ef7517367b46 100644 --- a/patches/server/0792-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch +++ b/patches/server/0792-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix FurnaceInventory for smokers and blast furnaces diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/util/CraftTileInventoryConverter.java b/src/main/java/org/bukkit/craftbukkit/inventory/util/CraftTileInventoryConverter.java -index 8d3f71689087d687e6400e2ea9750a6fb3535bf1..f59a972cb4516623f9715e4a5a3a9fa3bfd8f989 100644 +index 8d3f71689087d687e6400e2ea9750a6fb3535bf1..149683821a248fbbd93d0417085f0cb0e86a1398 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/util/CraftTileInventoryConverter.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/util/CraftTileInventoryConverter.java @@ -65,7 +65,7 @@ public abstract class CraftTileInventoryConverter implements CraftInventoryCreat @@ -25,7 +25,7 @@ index 8d3f71689087d687e6400e2ea9750a6fb3535bf1..f59a972cb4516623f9715e4a5a3a9fa3 + } + + public static abstract class AbstractFurnaceInventoryConverter extends CraftTileInventoryConverter { -+ // Paper end ++ // Paper end - abstract furnace converter to apply to all 3 furnaces // Paper start @Override public Inventory createInventory(InventoryHolder owner, InventoryType type, net.kyori.adventure.text.Component title) { diff --git a/patches/server/0793-Sanitize-Sent-BlockEntity-NBT.patch b/patches/server/0793-Sanitize-sent-BlockEntity-NBT.patch similarity index 91% rename from patches/server/0793-Sanitize-Sent-BlockEntity-NBT.patch rename to patches/server/0793-Sanitize-sent-BlockEntity-NBT.patch index b3404362f952..c6db48137368 100644 --- a/patches/server/0793-Sanitize-Sent-BlockEntity-NBT.patch +++ b/patches/server/0793-Sanitize-sent-BlockEntity-NBT.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> Date: Fri, 3 Dec 2021 16:55:50 -0500 -Subject: [PATCH] Sanitize Sent BlockEntity NBT +Subject: [PATCH] Sanitize sent BlockEntity NBT diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java @@ -30,19 +30,18 @@ index bf6cdc08367fc26716e7904162a21e63fecab3ed..51e24105facfe71ce9f2757c6c881a21 } } diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index e3557f4c8cee7c88b3e352cd246078da7762effc..5bdad1866386908b9fef74d15862eb107fabe68f 100644 +index e3557f4c8cee7c88b3e352cd246078da7762effc..0fdf74317a20a250b474978c9e50a6c533abfbe6 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -@@ -253,4 +253,12 @@ public abstract class BlockEntity { +@@ -253,4 +253,11 @@ public abstract class BlockEntity { return null; } // CraftBukkit end -+ // Paper start ++ // Paper start - Sanitize sent data + public CompoundTag sanitizeSentNbt(CompoundTag tag) { + tag.remove("PublicBukkitValues"); + + return tag; + } -+ // Paper end -+ ++ // Paper end - Sanitize sent data } diff --git a/patches/server/0794-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0794-Disable-component-selector-resolving-in-books-by-def.patch index 72862c20c59c..33fd8e47d087 100644 --- a/patches/server/0794-Disable-component-selector-resolving-in-books-by-def.patch +++ b/patches/server/0794-Disable-component-selector-resolving-in-books-by-def.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Disable component selector resolving in books by default diff --git a/src/main/java/net/minecraft/world/item/WrittenBookItem.java b/src/main/java/net/minecraft/world/item/WrittenBookItem.java -index a324df312d9bb87d9e0962f8028d900933e70c07..31911c09fe15753ae32fa39417bdc9e9de552a88 100644 +index a324df312d9bb87d9e0962f8028d900933e70c07..258a636a59203c4e5415a89002c6a607338f9514 100644 --- a/src/main/java/net/minecraft/world/item/WrittenBookItem.java +++ b/src/main/java/net/minecraft/world/item/WrittenBookItem.java @@ -111,7 +111,7 @@ public class WrittenBookItem extends Item { @@ -13,7 +13,7 @@ index a324df312d9bb87d9e0962f8028d900933e70c07..31911c09fe15753ae32fa39417bdc9e9 public static boolean resolveBookComponents(ItemStack book, @Nullable CommandSourceStack commandSource, @Nullable Player player) { CompoundTag compoundTag = book.getTag(); - if (compoundTag != null && !compoundTag.getBoolean("resolved")) { -+ if (io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.resolveSelectorsInBooks && compoundTag != null && !compoundTag.getBoolean("resolved")) { // Paper ++ if (io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.resolveSelectorsInBooks && compoundTag != null && !compoundTag.getBoolean("resolved")) { // Paper - Disable component selector resolving in books by default compoundTag.putBoolean("resolved", true); if (!makeSureTagIsValid(compoundTag)) { return false; diff --git a/patches/server/0795-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0795-Prevent-entity-loading-causing-async-lookups.patch index 2db3ffafcf66..3b6df7cf92bd 100644 --- a/patches/server/0795-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0795-Prevent-entity-loading-causing-async-lookups.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2c3193fdfb0e4b4a47cceb2da8b3fe85bd1e6848..edea89eebb9a99e41dc2bcbabc94b6775f5470df 100644 +index ab409aae677a5ed4ca50113e88397c4543373df8..e5f4388d531910c238fcd809a1c5d92267858c53 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -803,6 +803,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void baseTick() { this.level().getProfiler().push("entityBaseTick"); -+ if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking ++ if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Prevent entity loading causing async lookups this.feetBlockState = null; if (this.isPassenger() && this.getVehicle().isRemoved()) { this.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/NeutralMob.java b/src/main/java/net/minecraft/world/entity/NeutralMob.java -index fa64c7baa7587f2cfe80b78ed83be011239618cf..55defe4f42bea4600a4e2b93c88e90231e61f6ef 100644 +index fa64c7baa7587f2cfe80b78ed83be011239618cf..47d5a0928f3c86d71f851738bfe7beedc98cfbb3 100644 --- a/src/main/java/net/minecraft/world/entity/NeutralMob.java +++ b/src/main/java/net/minecraft/world/entity/NeutralMob.java @@ -42,18 +42,11 @@ public interface NeutralMob { @@ -36,7 +36,7 @@ index fa64c7baa7587f2cfe80b78ed83be011239618cf..55defe4f42bea4600a4e2b93c88e9023 - } - - } -+ // Paper - Moved diff to separate method ++ // Paper - Prevent entity loading causing async lookups; Moved diff to separate method + // If this entity already survived its first tick, e.g. is loaded and ticked in sync, actively + // tick the initial persistent anger. + // If not, let the first tick on the baseTick call the method later down the line. @@ -44,12 +44,13 @@ index fa64c7baa7587f2cfe80b78ed83be011239618cf..55defe4f42bea4600a4e2b93c88e9023 } } } -@@ -127,4 +120,26 @@ public interface NeutralMob { +@@ -127,4 +120,27 @@ public interface NeutralMob { @Nullable LivingEntity getTarget(); + -+ // Paper start - Update last hurt when ticking ++ // Paper start - Prevent entity loading causing async lookups ++ // Update last hurt when ticking + default void tickInitialPersistentAnger(Level level) { + UUID target = getPersistentAngerTarget(); + if (target == null) { @@ -69,5 +70,5 @@ index fa64c7baa7587f2cfe80b78ed83be011239618cf..55defe4f42bea4600a4e2b93c88e9023 + + } + } -+ // Paper end ++ // Paper end - Prevent entity loading causing async lookups } diff --git a/patches/server/0796-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0796-Throw-exception-on-world-create-while-being-ticked.patch index 7b59f847f336..1a5562e13cbb 100644 --- a/patches/server/0796-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0796-Throw-exception-on-world-create-while-being-ticked.patch @@ -7,14 +7,14 @@ There are no plans to support creating worlds while worlds are being ticked themselvess. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d8eb1dbc1601c1f76183ddd78b88d0ee6df68bed..002511a54565aab9eb4552fecdf974fe0eab9122 100644 +index e5dccd330cbf3301a60b65453e87a4005f954716..b9df0b37b5568758c04ee41e258395c3a2d493c1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -310,6 +310,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); @@ -23,7 +23,7 @@ index d8eb1dbc1601c1f76183ddd78b88d0ee6df68bed..002511a54565aab9eb4552fecdf974fe MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot // Paper this.profiler.popPush("levels"); - Iterator iterator = this.getAllLevels().iterator(); -+ //Iterator iterator = this.getAllLevels().iterator(); // Paper - moved down ++ //Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; moved down // CraftBukkit start // Run tasks that are waiting on processing @@ -31,8 +31,8 @@ index d8eb1dbc1601c1f76183ddd78b88d0ee6df68bed..002511a54565aab9eb4552fecdf974fe // Paper end MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper -+ this.isIteratingOverLevels = true; // Paper -+ Iterator iterator = this.getAllLevels().iterator(); // Paper - move down ++ this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked ++ Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; move down while (iterator.hasNext()) { ServerLevel worldserver = (ServerLevel) iterator.next(); worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper @@ -40,12 +40,12 @@ index d8eb1dbc1601c1f76183ddd78b88d0ee6df68bed..002511a54565aab9eb4552fecdf974fe this.profiler.pop(); worldserver.explosionDensityCache.clear(); // Paper - Optimize explosions } -+ this.isIteratingOverLevels = false; // Paper ++ this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked this.profiler.popPush("connection"); MinecraftTimings.connectionTimer.startTiming(); // Spigot // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 08eb6f115fe5fb2414a35010faa91d6fab7db0e2..398a89a1f695f1e99b30ca0d5ebb192c8f465748 100644 +index 170da30329f2a0d65a05c0d5c7a4170405df6aef..e549dc84ac05a8b5f4dc602689904eb92445c687 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -874,6 +874,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0797-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0797-Add-Alternate-Current-redstone-implementation.patch index d3a755d55ec7..8fb3cccdf2f3 100644 --- a/patches/server/0797-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/0797-Add-Alternate-Current-redstone-implementation.patch @@ -2008,7 +2008,7 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 646fb7e4a83e9f9a1b78d8c70f3518b977572fde..43893ea7ff9bda6130b5b74340cdd27bf5f809c5 100644 +index 646fb7e4a83e9f9a1b78d8c70f3518b977572fde..2af4d65fc0c761bcf58e94d4ce0cc918afa47c10 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2028,7 +2028,7 @@ index 646fb7e4a83e9f9a1b78d8c70f3518b977572fde..43893ea7ff9bda6130b5b74340cdd27b + public alternate.current.wire.WireHandler getWireHandler() { + return wireHandler; + } -+ // Paper end ++ // Paper end - optimize redstone (Alternate Current) + private final class EntityCallbacks implements LevelCallback { @@ -2054,7 +2054,7 @@ index 2287987d5bb0e6c4cb6153f04c420fe5ec7c8089..8200844b73dc7181d5867aafa83087e0 + // Paper end - optimize redstone (Alternate Current) } diff --git a/src/main/java/net/minecraft/world/level/block/RedStoneWireBlock.java b/src/main/java/net/minecraft/world/level/block/RedStoneWireBlock.java -index 5ffb1453bf332e8035abacc97ab36d78e1248484..507be06ad51b7a212e28d3ca6680e0e4b00f4233 100644 +index 5ffb1453bf332e8035abacc97ab36d78e1248484..7339795addfeaedc3c8a7db03f73546fb5fba06b 100644 --- a/src/main/java/net/minecraft/world/level/block/RedStoneWireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/RedStoneWireBlock.java @@ -259,7 +259,7 @@ public class RedStoneWireBlock extends Block { @@ -2077,7 +2077,7 @@ index 5ffb1453bf332e8035abacc97ab36d78e1248484..507be06ad51b7a212e28d3ca6680e0e4 + } else { + this.updateSurroundingRedstone(world, pos, state, null); // vanilla/Eigencraft + } -+ // Paper end ++ // Paper end - optimize redstone Iterator iterator = Direction.Plane.VERTICAL.iterator(); while (iterator.hasNext()) { @@ -2092,7 +2092,7 @@ index 5ffb1453bf332e8035abacc97ab36d78e1248484..507be06ad51b7a212e28d3ca6680e0e4 + } else { + this.updateSurroundingRedstone(world, pos, state, null); // vanilla/Eigencraft + } -+ // Paper end ++ // Paper end - optimize redstone this.updateNeighborsOfNeighboringWires(world, pos); } } @@ -2105,7 +2105,7 @@ index 5ffb1453bf332e8035abacc97ab36d78e1248484..507be06ad51b7a212e28d3ca6680e0e4 + if (world.paperConfig().misc.redstoneImplementation == io.papermc.paper.configuration.WorldConfiguration.Misc.RedstoneImplementation.ALTERNATE_CURRENT) { + world.getWireHandler().onWireUpdated(pos); + } else -+ // Paper end ++ // Paper end - optimize redstone (Alternate Current) if (state.canSurvive(world, pos)) { - this.updateSurroundingRedstone(world, pos, state, sourcePos); // Paper - Optimize redstone + this.updateSurroundingRedstone(world, pos, state, sourcePos); // Paper - Optimize redstone (Eigencraft) diff --git a/patches/server/0799-Add-WardenAngerChangeEvent.patch b/patches/server/0799-Add-WardenAngerChangeEvent.patch index 8e13bfe2f578..9344bd47cfbc 100644 --- a/patches/server/0799-Add-WardenAngerChangeEvent.patch +++ b/patches/server/0799-Add-WardenAngerChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add WardenAngerChangeEvent diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/AngerManagement.java b/src/main/java/net/minecraft/world/entity/monster/warden/AngerManagement.java -index 02abc5f387d781094bd2f39233444add3a470be1..ece82743df21f0b776382821ad75dee96d0a0748 100644 +index 02abc5f387d781094bd2f39233444add3a470be1..1017c294b48bf0bbf733e1f41d580d1e6c927834 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/AngerManagement.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/AngerManagement.java @@ -146,7 +146,7 @@ public class AngerManagement { @@ -13,19 +13,19 @@ index 02abc5f387d781094bd2f39233444add3a470be1..ece82743df21f0b776382821ad75dee9 boolean bl = !this.angerBySuspect.containsKey(entity); int i = this.angerBySuspect.computeInt(entity, (suspect, anger) -> { - return Math.min(150, (anger == null ? 0 : anger) + amount); -+ return Math.min(150, (anger == null ? 0 : anger) + amount); // Paper - diff on change ++ return Math.min(150, (anger == null ? 0 : anger) + amount); // Paper - diff on change (Warden#increaseAngerAt WardenAngerChangeEvent) }); if (bl) { int j = this.angerByUuid.removeInt(entity.getUUID()); diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -index b5185fcb635fbf5e5ed9d6cc9cc517cb46ada5aa..9f1b7c629644931074293151ed58a523ca6d488c 100644 +index b5185fcb635fbf5e5ed9d6cc9cc517cb46ada5aa..937f81a859953498abe73bea560c86e6560e1c33 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java @@ -488,6 +488,15 @@ public class Warden extends Monster implements VibrationSystem { @VisibleForTesting public void increaseAngerAt(@Nullable Entity entity, int amount, boolean listening) { if (!this.isNoAi() && this.canTargetEntity(entity)) { -+ // Paper start ++ // Paper start - Add WardenAngerChangeEvent + int activeAnger = this.angerManagement.getActiveAnger(entity); + io.papermc.paper.event.entity.WardenAngerChangeEvent event = new io.papermc.paper.event.entity.WardenAngerChangeEvent((org.bukkit.entity.Warden) this.getBukkitEntity(), entity.getBukkitEntity(), activeAnger, Math.min(150, activeAnger + amount)); + this.level().getCraftServer().getPluginManager().callEvent(event); @@ -33,7 +33,7 @@ index b5185fcb635fbf5e5ed9d6cc9cc517cb46ada5aa..9f1b7c629644931074293151ed58a523 + return; + } + amount = event.getNewAnger() - activeAnger; -+ // Paper end ++ // Paper end - Add WardenAngerChangeEvent WardenAi.setDigCooldown(this); boolean flag1 = !(this.getBrain().getMemory(MemoryModuleType.ATTACK_TARGET).orElse(null) instanceof Player); // CraftBukkit - decompile error int j = this.angerManagement.increaseAnger(entity, amount); diff --git a/patches/server/0800-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0800-Add-option-for-strict-advancement-dimension-checks.patch index 9a0bae0fffb4..36774662512b 100644 --- a/patches/server/0800-Add-option-for-strict-advancement-dimension-checks.patch +++ b/patches/server/0800-Add-option-for-strict-advancement-dimension-checks.patch @@ -24,7 +24,7 @@ index 5f9cb2c7a2874e423087d04d3360af0364692b5c..428e0afef2cac9f2a19d8cfe8f2504dd } else { BlockPos blockPos = BlockPos.containing(x, y, z); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1f7b13806ffbcf81df67a02129aa2c07dfc7b8f5..f2677922cb97c9aa34f2e80769ac9cccc3dc8089 100644 +index 1695e7d3e456bb3539fb37d943e8cf45489f0762..d3fdb56f1e62a241d8edbde4faa1296de36de246 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1321,6 +1321,12 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0803-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0803-Don-t-broadcast-messages-to-command-blocks.patch index 3b911c23d5e8..e921c929d79c 100644 --- a/patches/server/0803-Don-t-broadcast-messages-to-command-blocks.patch +++ b/patches/server/0803-Don-t-broadcast-messages-to-command-blocks.patch @@ -20,7 +20,7 @@ index c56f5173fda6b38c2dcaea196217f2f5a7d7c641..524b0f1086c01888fe0b76e180c40915 Date date = new Date(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 398a89a1f695f1e99b30ca0d5ebb192c8f465748..7749d9740c965baf901512b242426f9a15aca24f 100644 +index e549dc84ac05a8b5f4dc602689904eb92445c687..3aae0cce193777cd64124a87f43645207c5f6743 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1873,7 +1873,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0804-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0804-Prevent-empty-items-from-being-added-to-world.patch index e2c89a285cb7..90dd35e0aea8 100644 --- a/patches/server/0804-Prevent-empty-items-from-being-added-to-world.patch +++ b/patches/server/0804-Prevent-empty-items-from-being-added-to-world.patch @@ -7,7 +7,7 @@ The previous solution caused a bunch of bandaid fixes inorder to resolve edge ca Just simply prevent them from being added to the world instead. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 43893ea7ff9bda6130b5b74340cdd27bf5f809c5..2bfa9d1abf7a777b588314d314d06be3b4d2c6a5 100644 +index 2af4d65fc0c761bcf58e94d4ce0cc918afa47c10..d6bf1580787a4d5a2ac9ebde5efe236be3f15a1a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1587,6 +1587,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0808-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0808-Add-various-missing-EntityDropItemEvent-calls.patch index 5b3463d2dbbe..9815dccf044e 100644 --- a/patches/server/0808-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0808-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index edea89eebb9a99e41dc2bcbabc94b6775f5470df..053dbed42a74a5721cfe9f6d70cd965ede3ef1f3 100644 +index e5f4388d531910c238fcd809a1c5d92267858c53..549a0144e3c6ef267afeb665059bce0f6eac360e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2699,6 +2699,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0810-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0810-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch index f61b1c4124da..b1e3d1d4308f 100644 --- a/patches/server/0810-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch +++ b/patches/server/0810-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix Spigot Config not using commands.spam-exclusions diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c63dd80b23df877cb900e608406f747b87e3cae7..be9584daa1da322855524386acf7718d825a7034 100644 +index aba06bae97f021d9f62441eb662539a0bbc815ef..bc632d1772dd6d9103674ec15408797cc12f2bc0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2378,7 +2378,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0811-More-Teleport-API.patch b/patches/server/0811-More-Teleport-API.patch index b8e1cf1e0b61..2ce3e50e8046 100644 --- a/patches/server/0811-More-Teleport-API.patch +++ b/patches/server/0811-More-Teleport-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] More Teleport API diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index be9584daa1da322855524386acf7718d825a7034..6498ce505226d35f30062bc3aa52388b739c13fe 100644 +index bc632d1772dd6d9103674ec15408797cc12f2bc0..d8f77bbf533b45e3964c8b0920396b9bed4b3b99 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1637,11 +1637,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0812-Add-EntityPortalReadyEvent.patch b/patches/server/0812-Add-EntityPortalReadyEvent.patch index eb9b6b6956b6..bbcf1d877f28 100644 --- a/patches/server/0812-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0812-Add-EntityPortalReadyEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 053dbed42a74a5721cfe9f6d70cd965ede3ef1f3..5a57fe0dacd4baf3fea9b64f6325acc34b946036 100644 +index 549a0144e3c6ef267afeb665059bce0f6eac360e..2de97b71c16094c39a0d1eb2880d1b036b44b710 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3099,6 +3099,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0814-Send-block-entities-after-destroy-prediction.patch b/patches/server/0814-Send-block-entities-after-destroy-prediction.patch index 47702f4d3e59..53567a113765 100644 --- a/patches/server/0814-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0814-Send-block-entities-after-destroy-prediction.patch @@ -7,7 +7,7 @@ Minecraft's prediction system does not handle block entities, so if we are manua block breaking we need to set it after the prediction is finished. This fixes block entities not showing when cancelling the BlockBreakEvent. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index bf9b185e3defb496022c20ec60a84a4f6f99d5be..c29ac2fd8dd08fe0c87abc3efb92e539dfdfd739 100644 +index a7c0db6aebef3aec931513c726447091088cc546..5333488e606f2966271e1d25bacfa4196ca5145b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -62,6 +62,8 @@ public class ServerPlayerGameMode { @@ -57,7 +57,7 @@ index bf9b185e3defb496022c20ec60a84a4f6f99d5be..c29ac2fd8dd08fe0c87abc3efb92e539 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6498ce505226d35f30062bc3aa52388b739c13fe..e6bb211374b7fba2e275dd43604ab5a171c833d7 100644 +index d8f77bbf533b45e3964c8b0920396b9bed4b3b99..5cb69d9fbff2ee1e647c21e40a17b7244815f213 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1783,8 +1783,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0815-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0815-Warn-on-plugins-accessing-faraway-chunks.patch index dede36329442..71f64b7f0abe 100644 --- a/patches/server/0815-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0815-Warn-on-plugins-accessing-faraway-chunks.patch @@ -18,7 +18,7 @@ index 8200844b73dc7181d5867aafa83087e09ff2df76..e853c9fdc8ebde6a653aacbb1db6679c private static boolean isOutsideSpawnableHeight(int y) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 388ce676487dc094cf78ce7bd3c50942b3ec5e29..e3a1a1ed5f165d7d37a4f760e5ab7ecbea993a0e 100644 +index c517d8e2daac5675425783a50ae04b5d2a07e37a..a4912e7df109e3648200814e31e81a26262a832a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -312,9 +312,24 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0821-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0821-Add-Velocity-IP-Forwarding-Support.patch index 967c9f9a73d5..23bcea59ae6d 100644 --- a/patches/server/0821-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0821-Add-Velocity-IP-Forwarding-Support.patch @@ -106,7 +106,7 @@ index 0000000000000000000000000000000000000000..3c31ff3330c2e925e205c0c9ff4f0b83 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 4d7124ae7cefcc8c65bf74ac9d3c103fe6817c42..bbe9ad20a664bcd3952f3a4643add957d20fce20 100644 +index 7d33ce8d68ca55e0fd37d2d4e3c78a436f17f229..cb7fe116a29916761299a808572f76547d143971 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -274,13 +274,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -228,7 +228,7 @@ index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..a9f5af48c1f97b2e635727b48f438350 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7749d9740c965baf901512b242426f9a15aca24f..7f238c76a57c9d26c0bafa3f7b4f0436c0a1b93b 100644 +index 3aae0cce193777cd64124a87f43645207c5f6743..f428bff49d109d2045634505ddcab90f89771a81 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -803,7 +803,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0823-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0823-Fix-plugin-loggers-on-server-shutdown.patch index 47134d792ee9..6f72aa24cc05 100644 --- a/patches/server/0823-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0823-Fix-plugin-loggers-on-server-shutdown.patch @@ -37,7 +37,7 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 002511a54565aab9eb4552fecdf974fe0eab9122..7c9f7aefc59ae1a785b261f80f25d3304f3bdd22 100644 +index b9df0b37b5568758c04ee41e258395c3a2d493c1..5981171f4960b61a448014ccaa5336bdc556ae81 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1026,6 +1026,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 36ecdf1d0171286893b267b4591d298eefe40587..0d0299482be6c906575626dc352cd13ae8be4569 100644 +index 546777ad955d0d317d129882cfeab68935708228..cc774a2803051a5d981ecece2e9a992f09850ecf 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3056,37 +3056,15 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0826-Missing-eating-regain-reason.patch b/patches/server/0826-Missing-eating-regain-reason.patch index ce4cdd6f86cb..cbd8900d95ff 100644 --- a/patches/server/0826-Missing-eating-regain-reason.patch +++ b/patches/server/0826-Missing-eating-regain-reason.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Missing eating regain reason diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index 40af8405c6f3ecc5a8168bb62607eb79862cefa6..ff32fb9e2302cf34f6ddd5647706d37980342657 100644 +index 1d0c424be2b67cad0f8bca85070a9c46a6b283da..f760ce7d9df79ef58f8963de3e901cba3e12fcaa 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -387,7 +387,7 @@ public class Cat extends TamableAnimal implements VariantHolder { diff --git a/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch index 9fc9bbec8d16..b3138f3a622b 100644 --- a/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch @@ -129,7 +129,7 @@ index a0603e567deeede8b4cd2ba57ded44f29239d78d..982750fd4f3f474514194df9b7638831 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2bfa9d1abf7a777b588314d314d06be3b4d2c6a5..0a4586d1b847de49d9e6faa16dba6de4a6a7cca6 100644 +index d6bf1580787a4d5a2ac9ebde5efe236be3f15a1a..675bc8df01ad9e338541e16575c9ec8e538787e2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1032,7 +1032,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -142,7 +142,7 @@ index 2bfa9d1abf7a777b588314d314d06be3b4d2c6a5..0a4586d1b847de49d9e6faa16dba6de4 if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f2677922cb97c9aa34f2e80769ac9cccc3dc8089..958b013cc4805704cec9a87835f3541e7d3c7faa 100644 +index d3fdb56f1e62a241d8edbde4faa1296de36de246..482cf5cf164ee33691a5581c6acafb5959705c83 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -468,14 +468,14 @@ public class ServerPlayer extends Player { @@ -163,7 +163,7 @@ index f2677922cb97c9aa34f2e80769ac9cccc3dc8089..958b013cc4805704cec9a87835f3541e while (!world.noCollision(this, this.getBoundingBox(), true) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { // Paper - make sure this loads chunks, we default to NOT loading now this.setPos(this.getX(), this.getY() + 1.0D, this.getZ()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index c29ac2fd8dd08fe0c87abc3efb92e539dfdfd739..08a013310970c8223b2e942992a0df2e99fb419b 100644 +index 5333488e606f2966271e1d25bacfa4196ca5145b..9a68d910b0629c0dc7dce482f81752de7900304c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -92,7 +92,7 @@ public class ServerPlayerGameMode { @@ -176,7 +176,7 @@ index c29ac2fd8dd08fe0c87abc3efb92e539dfdfd739..08a013310970c8223b2e942992a0df2e this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index cd527e612a8a84451f9ef1fa0fcc900e16f54da1..e018cf9ca617adec197e7fa8e116287633002e62 100644 +index 57fa7cdcb2feb959cb413d4675fca11544236628..423aa9b56c9e9152bba00f47a71ae41612bebdbd 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -711,8 +711,10 @@ public abstract class PlayerList { @@ -442,7 +442,7 @@ index 6e45582f8ea7dd2a46f58369c5581764538bff0d..3ecc92439fc85d224ff52f41c5e34079 + // Paper end } diff --git a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java -index 93f5e583635a2addeabf2adff9374dcec0b66ee4..843926beb1edd897724b512ad915894fa4a2da6c 100644 +index db8d2157df0b276313493af224be343ae0de0917..b53d27965d91ee19722f0325f6e0ba3a08684ea5 100644 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java @@ -68,7 +68,7 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock { diff --git a/patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch index aece2cd81823..4c638e8ea73c 100644 --- a/patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0a4586d1b847de49d9e6faa16dba6de4a6a7cca6..a1411657b226c3eb3fb68bbf7f7afe8524fd96b2 100644 +index 675bc8df01ad9e338541e16575c9ec8e538787e2..c71a844064f15bdcc2f4fab14b7ace80d95269c0 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2641,7 +2641,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch index 63247467d126..bf1b2c07c754 100644 --- a/patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch +++ b/patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Correctly handle interactions with items on cooldown diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 08a013310970c8223b2e942992a0df2e99fb419b..9fcac4412d7af04b233e34bd4b5501bcb61855e2 100644 +index 9a68d910b0629c0dc7dce482f81752de7900304c..a4058e8ce468ef515236813b034f1a08d5d9589f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -516,6 +516,7 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch index 836d117e18a2..996866eed83d 100644 --- a/patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 958b013cc4805704cec9a87835f3541e7d3c7faa..8c7356f06e4e7fcaac6fd04fbfd7b471e3bbeaef 100644 +index 482cf5cf164ee33691a5581c6acafb5959705c83..78e0c0b1eb659733d555d17dbeca8f186572b777 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -379,6 +379,25 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0848-Add-EntityToggleSitEvent.patch b/patches/server/0848-Add-EntityToggleSitEvent.patch index 7b27f726cdcb..f7035ccd1ed2 100644 --- a/patches/server/0848-Add-EntityToggleSitEvent.patch +++ b/patches/server/0848-Add-EntityToggleSitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityToggleSitEvent diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java -index 1999cda5876bb12283d8c91a1b3e737c0d27bc38..4d32db04040014dba8935d1cb601e0da1a5d5b02 100644 +index 4d893c445af2b6dc74d5ad731b69eb5a488817b4..e4550d3ac8d93e0dd9a54e41fbbbef2ef9d4f55e 100644 --- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java +++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java @@ -67,7 +67,7 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity { @@ -31,7 +31,7 @@ index 1999cda5876bb12283d8c91a1b3e737c0d27bc38..4d32db04040014dba8935d1cb601e0da if (inSittingPose) { this.entityData.set(DATA_FLAGS_ID, (byte)(b | 1)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 96799179b0dd1886f0cdc386f04e152a19b3337d..3d771b137dc29579614aa4c15d12bd456cdc608a 100644 +index 94bb69a7f5795e0fbee171433632b5c3bca3b902..287e52dc844c2a64dac74dad117b775f46631157 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -433,7 +433,7 @@ public class Fox extends Animal implements VariantHolder { @@ -69,7 +69,7 @@ index 130761afcaa6723e0a9d9a518f1b526c344484b4..25a7602670b9f736b3b9ff4523bc867e } diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index faf3e31f23d71bbc345bf98d4240490ac4677843..17cff1a4657f688ed704404f76f6ceead3be3be1 100644 +index 570b39592e7e3a24828c233ec2a2f113b9ef5868..e89f454fe178483a7db381591a4a345ac24db2b8 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -556,7 +556,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl diff --git a/patches/server/0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index bf94351fb2c8..acec1447d5d8 100644 --- a/patches/server/0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fcef36f5314107f416953fbd0f891da7348c2243..f46640f3e3305b133bd49271377cedae4fe31ab5 100644 +index 2de97b71c16094c39a0d1eb2880d1b036b44b710..9634ff08d14500216835423376dbc86f3b0ffd35 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3378,6 +3378,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0861-check-global-player-list-where-appropriate.patch b/patches/server/0861-check-global-player-list-where-appropriate.patch index c890ca3a301c..f165c37f7f0c 100644 --- a/patches/server/0861-check-global-player-list-where-appropriate.patch +++ b/patches/server/0861-check-global-player-list-where-appropriate.patch @@ -7,7 +7,7 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c3ee52f2ad47c6f92b0e8cb284a14a3376fabba7..0bf8cf88a3385f21ffc00096a4af5ce76070614e 100644 +index c71a844064f15bdcc2f4fab14b7ace80d95269c0..77199a85df9559eeb83b6410ab0e1793020fd0c1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2764,4 +2764,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -24,7 +24,7 @@ index c3ee52f2ad47c6f92b0e8cb284a14a3376fabba7..0bf8cf88a3385f21ffc00096a4af5ce7 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0d0299482be6c906575626dc352cd13ae8be4569..f3d201cba18be448a52304a43ec05b109010bb98 100644 +index cc774a2803051a5d981ecece2e9a992f09850ecf..10b838b486fa857645bb12ea2043727996b4aadf 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0862-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0862-Fix-async-entity-add-due-to-fungus-trees.patch index c995b596719a..a3e5226fad0f 100644 --- a/patches/server/0862-Fix-async-entity-add-due-to-fungus-trees.patch +++ b/patches/server/0862-Fix-async-entity-add-due-to-fungus-trees.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix async entity add due to fungus trees diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 49c7825156afd053df1b7721a63070b51427aff2..277c8e429481ca9763ddac9e700735d25aba78e9 100644 +index 1c2ec978f923521322aaec59b4e88d26d656b6cd..5ece375eaf6bcc61864997a389bb5e24625e4505 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java @@ -249,6 +249,7 @@ public class WorldGenRegion implements WorldGenLevel { diff --git a/patches/server/0864-Friction-API.patch b/patches/server/0864-Friction-API.patch index 443e360cd347..c91e0ac630c6 100644 --- a/patches/server/0864-Friction-API.patch +++ b/patches/server/0864-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f3d201cba18be448a52304a43ec05b109010bb98..38d0def27625f5b7918cc2cebad0d9db2596ff3b 100644 +index 10b838b486fa857645bb12ea2043727996b4aadf..40e1caa2c070f11d7195a707ec628f40bccdeef7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -55,7 +55,7 @@ index f3d201cba18be448a52304a43ec05b109010bb98..38d0def27625f5b7918cc2cebad0d9db if (nbt.contains("Attributes", 9) && this.level() != null && !this.level().isClientSide) { this.getAttributes().load(nbt.getList("Attributes", 10)); diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 6b18f23b57c7000dce9726df98a509ee9477f6d2..c34c698d389da29c9cfaa56cb8023e30416a14ba 100644 +index e19a0f1fac3dd04927f73f3d11a921ffc4608388..491a521f0e5e272fbad7870fa3adefdea22e179f 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -57,6 +57,7 @@ public class ItemEntity extends Entity implements TraceableEntity { diff --git a/patches/server/0867-Sync-offhand-slot-in-menus.patch b/patches/server/0867-Sync-offhand-slot-in-menus.patch index 0b118ff9456b..a71c9631543d 100644 --- a/patches/server/0867-Sync-offhand-slot-in-menus.patch +++ b/patches/server/0867-Sync-offhand-slot-in-menus.patch @@ -8,7 +8,7 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th by pressing the offhand swap item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 24e6808e325bd80a55c94309aeab835804b03973..2c3a6cee9519f44c40227c5d9cbd63cc483d2d60 100644 +index 78e0c0b1eb659733d555d17dbeca8f186572b777..6bf33688882e3dca8868590454a9d25567a6a780 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -348,6 +348,13 @@ public class ServerPlayer extends Player { @@ -26,7 +26,7 @@ index 24e6808e325bd80a55c94309aeab835804b03973..2c3a6cee9519f44c40227c5d9cbd63cc public void sendSlotChange(AbstractContainerMenu handler, int slot, ItemStack stack) { ServerPlayer.this.connection.send(new ClientboundContainerSetSlotPacket(handler.containerId, handler.incrementStateId(), slot, stack)); diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index c18348f4ea79b15b081cf7ba3bd9d77212aa086e..cd82b7e83f79e813d9d87d074bbccad4d2712d60 100644 +index 2a73cdc6b347aa31a74c2372b0bdc7b00706004a..9eef711958443726249a75e6b4fac70a1714397e 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -200,6 +200,7 @@ public abstract class AbstractContainerMenu { diff --git a/patches/server/0868-Player-Entity-Tracking-Events.patch b/patches/server/0868-Player-Entity-Tracking-Events.patch index 3488a71fe226..a52a97fb5f3d 100644 --- a/patches/server/0868-Player-Entity-Tracking-Events.patch +++ b/patches/server/0868-Player-Entity-Tracking-Events.patch @@ -21,7 +21,7 @@ index 982750fd4f3f474514194df9b76388311c052b29..a9c94645a4bf3837bce5622b76f0d24a } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f46640f3e3305b133bd49271377cedae4fe31ab5..1a44341de58519dff830afce72707c286ac51364 100644 +index 9634ff08d14500216835423376dbc86f3b0ffd35..09fa4c28d43c8fddc84056f5cf19dedc6ffe2077 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4107,7 +4107,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0870-Properly-resend-entities.patch b/patches/server/0870-Properly-resend-entities.patch index 1dc13b7d4d65..4eec16fa3ef1 100644 --- a/patches/server/0870-Properly-resend-entities.patch +++ b/patches/server/0870-Properly-resend-entities.patch @@ -85,7 +85,7 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0d public static class DataItem { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3f60f33c43dfcc4ea99a80c66a70222b2ea2f4a6..2fdc9fcc8f88d78fd4b06bfae947c5cb28f8eea7 100644 +index 5cb69d9fbff2ee1e647c21e40a17b7244815f213..e12f9616a3ef7663bafdb986a73cff858beb3a52 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2658,7 +2658,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -98,7 +98,7 @@ index 3f60f33c43dfcc4ea99a80c66a70222b2ea2f4a6..2fdc9fcc8f88d78fd4b06bfae947c5cb } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e018cf9ca617adec197e7fa8e116287633002e62..70a1e695a037833c46749a3371ad866b1971037d 100644 +index 423aa9b56c9e9152bba00f47a71ae41612bebdbd..0223b11df825964f205193268e5c96d7e2d13b6c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -376,7 +376,7 @@ public abstract class PlayerList { diff --git a/patches/server/0871-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0871-Fixes-and-additions-to-the-SpawnReason-API.patch index 9224cb2a3ce9..021c52f13275 100644 --- a/patches/server/0871-Fixes-and-additions-to-the-SpawnReason-API.patch +++ b/patches/server/0871-Fixes-and-additions-to-the-SpawnReason-API.patch @@ -34,7 +34,7 @@ index 9652e3385ad10e5d825dd141f6be3522c596916d..baea154a24d1b888af18b9b792db9ede this.discard(); } diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index 0a2de99c22cfcc96a664dc2afe7379987ea815db..452b3070e68dda1a4c7ba99cbefcaab5c5958bdd 100644 +index 3777e60d0b81e242b1a6e9b0be3e2f21a1642335..bb45605e1ef3e6cfa1976cf9e449456b19cc7c9c 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java @@ -117,7 +117,7 @@ public class FrogspawnBlock extends Block { @@ -47,7 +47,7 @@ index 0a2de99c22cfcc96a664dc2afe7379987ea815db..452b3070e68dda1a4c7ba99cbefcaab5 } diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 3cedc349e79665d3d471c92b5dca25c9e66ca0bf..4d3dc58750f80d4aacb46c98a8ffc66acb4a2edc 100644 +index 8782b05575e4a8d5e5c667c43808442b81c13f6b..6d073e82daf41e35b63703ab9bce8c576862eb3e 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java @@ -88,7 +88,7 @@ public class SnifferEggBlock extends Block { diff --git a/patches/server/0877-Improve-logging-and-errors.patch b/patches/server/0877-Improve-logging-and-errors.patch index c6ee1aa1768f..395a7b5e067b 100644 --- a/patches/server/0877-Improve-logging-and-errors.patch +++ b/patches/server/0877-Improve-logging-and-errors.patch @@ -40,7 +40,7 @@ index 536f0c496ce36ca3248fc6eeac9bbd77214a36f9..31718823250a1490b783f426fff65bf5 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2fdc9fcc8f88d78fd4b06bfae947c5cb28f8eea7..c64cbcd11362ad3e4cf63d769732a5158d616c4c 100644 +index e12f9616a3ef7663bafdb986a73cff858beb3a52..087f26d52536ec1f196f21e2df1a7159a4a63c1a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3395,7 +3395,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0878-Improve-PortalEvents.patch b/patches/server/0878-Improve-PortalEvents.patch index 871198c9006b..615937481d3d 100644 --- a/patches/server/0878-Improve-PortalEvents.patch +++ b/patches/server/0878-Improve-PortalEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1a44341de58519dff830afce72707c286ac51364..68730383d7ad770cf971e3ae27cff329580b9ea8 100644 +index 09fa4c28d43c8fddc84056f5cf19dedc6ffe2077..4ea43e3fdc2b8b85c9524f9404fe3535adacc65d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3765,7 +3765,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0880-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0880-Add-missing-SpigotConfig-logCommands-check.patch index fcf0ee0222bd..2f3fa4732ce8 100644 --- a/patches/server/0880-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0880-Add-missing-SpigotConfig-logCommands-check.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c64cbcd11362ad3e4cf63d769732a5158d616c4c..6d8d07f30cc18357b2b3a6aa50c54deb1c52f2b7 100644 +index 087f26d52536ec1f196f21e2df1a7159a4a63c1a..5e6632e3557cf43b4d71ad457d64f3be3518187e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2139,7 +2139,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index b47d9f45509d..3fb38b64f291 100644 --- a/patches/server/0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 68730383d7ad770cf971e3ae27cff329580b9ea8..25f611ea672ed8ea112a2e31444d0dbdb59f9945 100644 +index 4ea43e3fdc2b8b85c9524f9404fe3535adacc65d..ee5dfa18049bb36aa6403e6342aa56fb1bebf172 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1162,7 +1162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0886-Use-single-player-info-update-packet-on-join.patch b/patches/server/0886-Use-single-player-info-update-packet-on-join.patch index 2fd99efd5783..29689c763936 100644 --- a/patches/server/0886-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0886-Use-single-player-info-update-packet-on-join.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6d8d07f30cc18357b2b3a6aa50c54deb1c52f2b7..19c1c398ca8e91faa23e8dc3736cd0945a540419 100644 +index 5e6632e3557cf43b4d71ad457d64f3be3518187e..3fe70d0c82e30b3893e24119f792d308e2f37112 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3425,7 +3425,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -18,7 +18,7 @@ index 6d8d07f30cc18357b2b3a6aa50c54deb1c52f2b7..19c1c398ca8e91faa23e8dc3736cd094 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 70a1e695a037833c46749a3371ad866b1971037d..64635241bf3c1dd1e2f7e6756b34d497875aa6fa 100644 +index 0223b11df825964f205193268e5c96d7e2d13b6c..8d8cc5463f261334d0aabf4fd31854a2af862acc 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { diff --git a/patches/server/0887-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0887-Correctly-shrink-items-during-EntityResurrectEvent.patch index bb2e2a0779a6..87f04dba1dbb 100644 --- a/patches/server/0887-Correctly-shrink-items-during-EntityResurrectEvent.patch +++ b/patches/server/0887-Correctly-shrink-items-during-EntityResurrectEvent.patch @@ -22,7 +22,7 @@ This patch corrects this behaviour by only shrinking the item if a totem of undying was found and the event was called uncancelled. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 38d0def27625f5b7918cc2cebad0d9db2596ff3b..4b6858596f03233bf432329c1cdfe306cd0781ac 100644 +index 40e1caa2c070f11d7195a707ec628f40bccdeef7..15ebd6c287d90af9d4acb3529c2fb1b9394d3caf 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1611,7 +1611,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0893-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0893-Update-the-flag-when-a-captured-block-state-is-outda.patch index 82ed0eb32566..122e19307c56 100644 --- a/patches/server/0893-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0893-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 28ed2605bc3f4d657f6f58729134aeb81a98dac4..c7eb97008b8096f69602678722506fddbeac3148 100644 +index e853c9fdc8ebde6a653aacbb1db6679ce4d9d50b..8d887a07bd2ef11667ccb34872d629656859fb6c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -923,6 +923,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0898-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0898-Fix-advancement-triggers-for-entity-damage.patch index aaf912275d31..a1dddb27c478 100644 --- a/patches/server/0898-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0898-Fix-advancement-triggers-for-entity-damage.patch @@ -23,7 +23,7 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4b6858596f03233bf432329c1cdfe306cd0781ac..a89b49052556cb26accc1957aaef2aea63f6f583 100644 +index 15ebd6c287d90af9d4acb3529c2fb1b9394d3caf..da89e72040e2d109eebf2d1ca0089d695394f959 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2302,7 +2302,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0903-Optimize-Hoppers.patch b/patches/server/0903-Optimize-Hoppers.patch index da2c0e69cf16..17c49474dc1a 100644 --- a/patches/server/0903-Optimize-Hoppers.patch +++ b/patches/server/0903-Optimize-Hoppers.patch @@ -50,7 +50,7 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7c9f7aefc59ae1a785b261f80f25d3304f3bdd22..45f7e7efa8cf407cae2db657074478565590bd12 100644 +index 5981171f4960b61a448014ccaa5336bdc556ae81..cf94634cc11e368cea60a9005d11c7f7aa64fbae 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1672,6 +1672,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 80682ce58d0b0ce0409d162f447b585163c36753..9f1dfb6c7c44d0525792d3517bfdad6479fb12a7 100644 +index 6b38e515a77df7fb06b41fbedaa1090b1cac78fb..a01a7abcbfa95d75191cc7fbdad6cbebfe06d3f9 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -749,10 +749,16 @@ public final class ItemStack { @@ -85,7 +85,7 @@ index 80682ce58d0b0ce0409d162f447b585163c36753..9f1dfb6c7c44d0525792d3517bfdad64 itemstack.setPopTime(this.getPopTime()); if (this.tag != null) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index 5bdad1866386908b9fef74d15862eb107fabe68f..a6f47fa9f6065ed669414996b447e2daf34b3495 100644 +index 0fdf74317a20a250b474978c9e50a6c533abfbe6..4ce7a7947fa727e64556148f923508ce76c128c4 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java @@ -26,6 +26,7 @@ import co.aikar.timings.MinecraftTimings; // Paper diff --git a/patches/server/0904-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0904-Fix-beehives-generating-from-using-bonemeal.patch index e0c9d13bb896..78d80cb19417 100644 --- a/patches/server/0904-Fix-beehives-generating-from-using-bonemeal.patch +++ b/patches/server/0904-Fix-beehives-generating-from-using-bonemeal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix beehives generating from using bonemeal diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 9f1dfb6c7c44d0525792d3517bfdad6479fb12a7..8d051e23e16cef71e54fef2955720f604c306221 100644 +index a01a7abcbfa95d75191cc7fbdad6cbebfe06d3f9..ae39d5f386b3f307ba85b359d552a8885d232f7f 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -422,6 +422,7 @@ public final class ItemStack { diff --git a/patches/server/0906-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0906-Treat-sequence-violations-like-they-should-be.patch index f0ef8afa4a04..552d683368e4 100644 --- a/patches/server/0906-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0906-Treat-sequence-violations-like-they-should-be.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 19c1c398ca8e91faa23e8dc3736cd0945a540419..8a907853a81480f2b1bcb9d82b62d9d595dcbd35 100644 +index 3fe70d0c82e30b3893e24119f792d308e2f37112..2cdae57a255305a16fae6ccf431aea78e2c84429 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2043,6 +2043,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0908-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0908-Prevent-causing-expired-keys-from-impacting-new-join.patch index be1254f5fdd2..69077990795f 100644 --- a/patches/server/0908-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0908-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -24,7 +24,7 @@ index 0e54e8faa48751a651b953bec72543a94edf74bc..d43106eb89b14667e85cd6e8fa047d64 UPDATE_GAME_MODE((serialized, buf) -> { serialized.gameMode = GameType.byId(buf.readVarInt()); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8a907853a81480f2b1bcb9d82b62d9d595dcbd35..caa9fd305c90fe84b2eebca0f244c818800021ca 100644 +index 2cdae57a255305a16fae6ccf431aea78e2c84429..533d637c634af9bf086cf3d480f219f7c2d3f34a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -287,6 +287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index 012562f39ddb..0b5c35b7d0ae 100644 --- a/patches/server/0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0bf8cf88a3385f21ffc00096a4af5ce76070614e..eff2a7e25a7b99613c1e208058c316f1e3586995 100644 +index 77199a85df9559eeb83b6410ab0e1793020fd0c1..799ffd47bca76dd9a8c19ab5d37d09e82b477717 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1724,6 +1724,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0910-Use-array-for-gamerule-storage.patch b/patches/server/0910-Use-array-for-gamerule-storage.patch index 41d8673025f7..37b97e470a0e 100644 --- a/patches/server/0910-Use-array-for-gamerule-storage.patch +++ b/patches/server/0910-Use-array-for-gamerule-storage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use array for gamerule storage diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index 6c1af24f2f02ef5fe1be135b4071362f2297147a..a9be16e53a9df34af3495048aa9af7b1a3efea4a 100644 +index dd03426943dd380cefe12afe3e63c3180a22ec4f..afe91d02363bf7385d34447dda8960980ec48443 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java @@ -114,6 +114,7 @@ public class GameRules { diff --git a/patches/server/0912-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0912-Fix-demo-flag-not-enabling-demo-mode.patch index 01bdc03d01d8..eb7ea6ae109e 100644 --- a/patches/server/0912-Fix-demo-flag-not-enabling-demo-mode.patch +++ b/patches/server/0912-Fix-demo-flag-not-enabling-demo-mode.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix demo flag not enabling demo mode https://github.com/PaperMC/Paper/issues/9046 diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 786104fb12f02f493619dfc0d81ab98140d70912..2568272a10c0d92bc49c0c244b10791db7bfae2b 100644 +index a2d7ed6c68729d1d46b1ac949b7e98cd6badedba..a5e6b99b95e8408136f4c665aec070c5adc448da 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -333,7 +333,9 @@ public class Main { diff --git a/patches/server/0921-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0921-Refresh-ProjectileSource-for-projectiles.patch index d1d793bb085d..054250373f96 100644 --- a/patches/server/0921-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0921-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 25f611ea672ed8ea112a2e31444d0dbdb59f9945..55e53e6e947107fc27ef8322963a877e2deeb741 100644 +index ee5dfa18049bb36aa6403e6342aa56fb1bebf172..92fe1b4eb9d23031476c6545f653cee37745bbf8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -386,6 +386,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -72,7 +72,7 @@ index 270dd1db56b187bffaedba9f2b86b3e46dda3152..5b6d5c799cc8e601a01b6967917e15ba } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java b/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java -index 2c376687349825833e6d9a5ca92ce6afb98c36a3..856984601a59f51544b741f5f2137028b53c9439 100644 +index c1c52f4fc5f900fac4098e5e37c52dfc4e82b8bb..236f94348ff8da661e23e3e17b7fc1b143680da9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/AbstractProjectile.java @@ -60,6 +60,7 @@ public abstract class AbstractProjectile extends CraftEntity implements Projecti diff --git a/patches/server/0923-Fix-block-place-logic.patch b/patches/server/0923-Fix-block-place-logic.patch index 227c84be9e5d..ac9628a9541d 100644 --- a/patches/server/0923-Fix-block-place-logic.patch +++ b/patches/server/0923-Fix-block-place-logic.patch @@ -22,7 +22,7 @@ index e581dc10f3c805f7f8b6e4c842092609e7e1a0f8..b6b5abba349fecfecd8f3a3c23769360 if ((entityhuman == null || !entityhuman.getAbilities().instabuild) && itemstack != ItemStack.EMPTY) { // CraftBukkit itemstack.shrink(1); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 8d051e23e16cef71e54fef2955720f604c306221..9ac862354c7026845287344bbc2a94c958f65a59 100644 +index ae39d5f386b3f307ba85b359d552a8885d232f7f..037e09bc8990036b76f75bca9bf14969ede6d6ad 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -493,13 +493,7 @@ public final class ItemStack { @@ -41,7 +41,7 @@ index 8d051e23e16cef71e54fef2955720f604c306221..9ac862354c7026845287344bbc2a94c9 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c7eb97008b8096f69602678722506fddbeac3148..28e56e61ff5c14683f55780ed83e593f6b06503c 100644 +index 8d887a07bd2ef11667ccb34872d629656859fb6c..7311a9a3b8c4b62b232ea54568c4090a8e121f26 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1038,17 +1038,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch index 65daee2e55d4..89d9eaec62a2 100644 --- a/patches/server/0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch +++ b/patches/server/0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 9ac862354c7026845287344bbc2a94c958f65a59..b7e30d0a3c3c945addfa22c805af9608d68284b5 100644 +index 037e09bc8990036b76f75bca9bf14969ede6d6ad..f5cc647054148c1e170ca3f49128d4ea4acaf4dc 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -544,7 +544,11 @@ public final class ItemStack { diff --git a/patches/server/0925-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0925-Call-BlockGrowEvent-for-missing-blocks.patch index 16cfb6da5050..d2a9eadeb982 100644 --- a/patches/server/0925-Call-BlockGrowEvent-for-missing-blocks.patch +++ b/patches/server/0925-Call-BlockGrowEvent-for-missing-blocks.patch @@ -19,7 +19,7 @@ index ba94ff948ccaddc16d3452306722759c115bb90a..acaa13f195467c3ebe70677b8440a883 world.setBlock(pos.above(), blockState.setValue(HALF, DoubleBlockHalf.UPPER), 3); } diff --git a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java -index 4d3dc58750f80d4aacb46c98a8ffc66acb4a2edc..77952da3134d782609c66e93f5d52ec5c10d499d 100644 +index 6d073e82daf41e35b63703ab9bce8c576862eb3e..7be4e32a4409b539839a480ef83750ed4b5359a6 100644 --- a/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnifferEggBlock.java @@ -72,8 +72,13 @@ public class SnifferEggBlock extends Block { diff --git a/patches/server/0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index bedbcb956adc..73688ac4a326 100644 --- a/patches/server/0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 56e5dff13323068ad2911649e6285aa915d787bd..15dfa910d91ac49f4d264d0289b891a47beabe25 100644 +index f428bff49d109d2045634505ddcab90f89771a81..a6dff659356ca8ce8cf24eca8c6c1e9cb00a3979 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -352,7 +352,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0930-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0930-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch index 4ff44ca179b7..d14b29086f76 100644 --- a/patches/server/0930-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch +++ b/patches/server/0930-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Temp: Pre-init PlayerChunkLoaderData in order to prepopulate diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index aca49044899f65d7e91e5762fb58dbaffbfbd4c9..ef8bbef6e4143b9432ee2ae2fb79e2aa2a9b84df 100644 +index 39f361e2d3b31dc2587042df225132884a9156c0..16e73128115ef92adefbd7818fef3a4b9bcebad2 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -368,6 +368,7 @@ public class Main { diff --git a/patches/server/0932-Properly-cancel-usable-items.patch b/patches/server/0932-Properly-cancel-usable-items.patch index d0ca00be320b..6ac4390ff0ac 100644 --- a/patches/server/0932-Properly-cancel-usable-items.patch +++ b/patches/server/0932-Properly-cancel-usable-items.patch @@ -10,7 +10,7 @@ The underlying issue of this is that the client modifies their synced data value them in order for the client to reset their using item state. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index f58386e952d29a16d160b628a23efbe102791277..d0404f7f103b4f98f9d76cf2a5cddec0dfa47b6f 100644 +index a4058e8ce468ef515236813b034f1a08d5d9589f..0357e190f6cc0724223ed705b19651d865bf853b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -557,6 +557,7 @@ public class ServerPlayerGameMode { @@ -34,7 +34,7 @@ index f58386e952d29a16d160b628a23efbe102791277..d0404f7f103b4f98f9d76cf2a5cddec0 return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index caa9fd305c90fe84b2eebca0f244c818800021ca..3f9106eb34db5df10961a44f56f2110fec8bd3c6 100644 +index 533d637c634af9bf086cf3d480f219f7c2d3f34a..eaa63c02fcb49f0c99842d5448ef883d37c578db 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1955,6 +1955,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -46,7 +46,7 @@ index caa9fd305c90fe84b2eebca0f244c818800021ca..3f9106eb34db5df10961a44f56f2110f return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a89b49052556cb26accc1957aaef2aea63f6f583..fe5c46c9bb6130a29ec9cbb65e9e7142a79a157e 100644 +index da89e72040e2d109eebf2d1ca0089d695394f959..24d68144d4ae2d34cff2b1378b352e2989cd4b76 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3814,6 +3814,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0933-Add-event-for-player-editing-sign.patch b/patches/server/0933-Add-event-for-player-editing-sign.patch index 236c286da9ac..7d6fd88d535a 100644 --- a/patches/server/0933-Add-event-for-player-editing-sign.patch +++ b/patches/server/0933-Add-event-for-player-editing-sign.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add event for player editing sign diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index b7e30d0a3c3c945addfa22c805af9608d68284b5..244fcdcb153b1f4d842405302261afe1cce67daa 100644 +index f5cc647054148c1e170ca3f49128d4ea4acaf4dc..734672b38bd9be4ff63d61febc141278f14d7065 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -523,7 +523,7 @@ public final class ItemStack { diff --git a/patches/server/0934-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0934-Only-tick-item-frames-if-players-can-see-it.patch index 704c5443df32..6b0591c84a6e 100644 --- a/patches/server/0934-Only-tick-item-frames-if-players-can-see-it.patch +++ b/patches/server/0934-Only-tick-item-frames-if-players-can-see-it.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Only tick item frames if players can see it In the event that an item frame cannot be seen by any players, ticking the item frame every tick is unnecessary. This can be a very hot section of the entity tracker when lots of item frames are present on a server, so this reduces the logic which speeds it up. diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 9d5d32705f9d8aadb51019f17b4db76a9bc6a04b..4eee77a14c941b637ec9e9dc844e67c5e933bfe7 100644 +index ff57dbd34874e020edd7074c71cfa635eab0287b..62ee13247a12723e43f114323a2ec1917835920e 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -111,7 +111,7 @@ public class ServerEntity { diff --git a/patches/server/0938-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0938-Don-t-load-chunks-for-supporting-block-checks.patch index 6ecacbc82819..87f6a4dd07ce 100644 --- a/patches/server/0938-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0938-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 55e53e6e947107fc27ef8322963a877e2deeb741..148f146da8f5887deaa52991a8e484d54918f2b9 100644 +index 92fe1b4eb9d23031476c6545f653cee37745bbf8..2a6c5af6a3d281436ba39a891015f5852ad31444 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1362,7 +1362,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0950-Implement-PlayerFailMoveEvent.patch b/patches/server/0950-Implement-PlayerFailMoveEvent.patch index a961551be479..e072d3d72d6b 100644 --- a/patches/server/0950-Implement-PlayerFailMoveEvent.patch +++ b/patches/server/0950-Implement-PlayerFailMoveEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerFailMoveEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3f9106eb34db5df10961a44f56f2110fec8bd3c6..e400efa2219fca219ee52021c664409907bc839d 100644 +index eaa63c02fcb49f0c99842d5448ef883d37c578db..40fb76d2fadbe82515311d65418c90fbfb4a9ab9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1316,8 +1316,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0951-Folia-scheduler-and-owned-region-API.patch b/patches/server/0951-Folia-scheduler-and-owned-region-API.patch index ca07db017c56..4c056e0d2b9d 100644 --- a/patches/server/0951-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0951-Folia-scheduler-and-owned-region-API.patch @@ -1148,7 +1148,7 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 45f7e7efa8cf407cae2db657074478565590bd12..d34f0d5abd93ed1729a00405d78a34a1873ba086 100644 +index cf94634cc11e368cea60a9005d11c7f7aa64fbae..a8a8935d29564cc1deb4cac95fc8f9bb76848099 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1629,6 +1629,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); @@ -1685,6 +1688,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index eff2a7e25a7b99613c1e208058c316f1e3586995..973a9deba3b11399cafb3482f4c56c9c648c4d5f 100644 +index 799ffd47bca76dd9a8c19ab5d37d09e82b477717..8a7de73ce83966c81c456d4744b04fd0f886646d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -52,7 +52,7 @@ index eff2a7e25a7b99613c1e208058c316f1e3586995..973a9deba3b11399cafb3482f4c56c9c // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 8bfd31ce3b4f88f0b32adb242c53771d9930b855..921d9d8bc6265631073d105fb8de68562f902778 100644 +index 9024cd25faabb4d5aed3681d4389baad6ad7b964..82aabd5234102c3763891ebe3009e75f243e539b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -124,7 +124,7 @@ public class ServerPlayerGameMode { @@ -65,7 +65,7 @@ index 8bfd31ce3b4f88f0b32adb242c53771d9930b855..921d9d8bc6265631073d105fb8de6856 if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index fe5c46c9bb6130a29ec9cbb65e9e7142a79a157e..484609925cc8cbed7b31d3c7780b6d30f6ad454c 100644 +index 24d68144d4ae2d34cff2b1378b352e2989cd4b76..d9019131e16e401ea057df14f095990e5c42adf4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3819,6 +3819,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1005-Optimise-nearby-player-retrieval.patch b/patches/server/1005-Optimise-nearby-player-retrieval.patch index e170ab23cb91..902b9ab5fb1d 100644 --- a/patches/server/1005-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1005-Optimise-nearby-player-retrieval.patch @@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 973a9deba3b11399cafb3482f4c56c9c648c4d5f..dcd3b58165df89fa57e37df532dad263cd124f6a 100644 +index 8a7de73ce83966c81c456d4744b04fd0f886646d..e57d86b0f66f5ca6e494c693128d67eedbb8ed0d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -581,6 +581,115 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1006-Fix-missing-map-initialize-event-call.patch b/patches/server/1006-Fix-missing-map-initialize-event-call.patch index c04e5b3249e4..f3b3bbca542c 100644 --- a/patches/server/1006-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/1006-Fix-missing-map-initialize-event-call.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index dcd3b58165df89fa57e37df532dad263cd124f6a..01c7b3623314bb0e6fa0a135de3db7c42ca5e373 100644 +index e57d86b0f66f5ca6e494c693128d67eedbb8ed0d..51f14e0c22dd66d8e33c132974139922fcadf095 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2133,13 +2133,25 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1017-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/1017-Add-predicate-for-blocks-when-raytracing.patch index 750db7206c9f..c5b19df963cf 100644 --- a/patches/server/1017-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/server/1017-Add-predicate-for-blocks-when-raytracing.patch @@ -47,7 +47,7 @@ index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..4b7ea18a34675702c5b17c4819f79778 Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo()); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 6bd86a7183042f9023b9e8cf6423e0a1cbfde97a..ed2a02514b7a6b67d45890fedb9bb9f4b10846d3 100644 +index eff91dcea1646ef3745d0576a656f25a37783dae..2794b85c36f22969cf6e4cfec60bc3911a7e4f38 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1125,9 +1125,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1018-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/1018-Broadcast-take-item-packets-with-collector-as-source.patch index c028ab2ffcfc..62cbb0b50949 100644 --- a/patches/server/1018-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/1018-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 484609925cc8cbed7b31d3c7780b6d30f6ad454c..03ca9ae4a195a6caacf2424e069a9644357e7e06 100644 +index d9019131e16e401ea057df14f095990e5c42adf4..6f7e05c6d73999613ae5980ec70b841299d021b1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3704,7 +3704,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1019-Expand-LingeringPotion-API.patch b/patches/server/1019-Expand-LingeringPotion-API.patch index 9939920a049c..1a12487d606b 100644 --- a/patches/server/1019-Expand-LingeringPotion-API.patch +++ b/patches/server/1019-Expand-LingeringPotion-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand LingeringPotion API diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index 2f80d484ad523860322483cebe92cf7cd8cfad22..b34dbb083ecc3a6ead7721391a79e7061e098498 100644 +index d945c0a7b8ba87301e12b49f859e6fbe65de04f3..4f6e0161694c2f51642fffcf1ce1cb0ed45b194d 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java @@ -288,7 +288,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie diff --git a/patches/server/1021-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/1021-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch index 7fb5a2b316ce..5c40b1b6f7c5 100644 --- a/patches/server/1021-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch +++ b/patches/server/1021-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix strikeLightningEffect powers lightning rods and clears diff --git a/src/main/java/net/minecraft/world/entity/LightningBolt.java b/src/main/java/net/minecraft/world/entity/LightningBolt.java -index 17f664f75aaaea042477e4b467c17c17d1024e3d..da4297f756e389deacda6c06afeb39f1ee204aab 100644 +index 0db0d67f9ac15372becc1166c37f7f0aede4a4da..a9e70484b01fc082ea25d43d1d42833499b5e41d 100644 --- a/src/main/java/net/minecraft/world/entity/LightningBolt.java +++ b/src/main/java/net/minecraft/world/entity/LightningBolt.java @@ -45,6 +45,7 @@ public class LightningBolt extends Entity { @@ -45,7 +45,7 @@ index 17f664f75aaaea042477e4b467c17c17d1024e3d..da4297f756e389deacda6c06afeb39f1 BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index ed2a02514b7a6b67d45890fedb9bb9f4b10846d3..e7d503366c58e567c392b040e46a14457d86ad8d 100644 +index 2794b85c36f22969cf6e4cfec60bc3911a7e4f38..1e71506e079616028b4eaf577a5ca410ee38d5a8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -773,7 +773,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1023-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/1023-Fix-several-issues-with-EntityBreedEvent.patch index 7ed4b6988154..1b42ca075fc5 100644 --- a/patches/server/1023-Fix-several-issues-with-EntityBreedEvent.patch +++ b/patches/server/1023-Fix-several-issues-with-EntityBreedEvent.patch @@ -69,7 +69,7 @@ index 25a7602670b9f736b3b9ff4523bc867e65c0998a..ead5060ae2840a0519c5bf8b4b84aa12 if (this.level().isClientSide || this.isSitting() || this.isInWater()) { return InteractionResult.PASS; diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java -index 17cff1a4657f688ed704404f76f6ceead3be3be1..abd913079c00f335944c8eb590fd08bd518b1a10 100644 +index e89f454fe178483a7db381591a4a345ac24db2b8..f693d4d6a6a3c3d31c2d85ceb5b5b01366c970a1 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -389,7 +389,7 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl @@ -104,7 +104,7 @@ index 8fe5a4ccf474c094b8081828c93e8973cdabb6ed..d9539f5275c4cb63910ba79aa522d956 } diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 5f61c97478f005aaaaad1b027118079db7275cf7..4863586b1c54192e0228342a0c36561348ebb3fb 100644 +index 9b5b894d43f25566ab9c3698705e978ab823a0d2..6623674136b0f865d5b3d7a10d3bf05793b82f87 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java @@ -191,7 +191,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 03ca9ae4a195a6caacf2424e069a9644357e7e06..a42023793805b294dc167ec2cd5445f32b0c51eb 100644 +index 6f7e05c6d73999613ae5980ec70b841299d021b1..8713ee8ff8a2b269c6d138e7f483a80fa2521793 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -120,7 +120,7 @@ index 5a9f4a022c8e7a0804543335bfe91e1328d040e6..8094c133f9e934c98eee09738220bacd } diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java -index 52c389472e013e658344496218689465350bf8a3..8c4d434bffa640a17d6870080f79cd0e492c7537 100644 +index 0540929bd362b266295ea6770ce2fb351b614463..4aacb6675e8fe577749fa83ad471eb6e6cf930df 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java @@ -518,7 +518,7 @@ public class StructureTemplate { diff --git a/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch index f67401b44a82..422b7f4acf56 100644 --- a/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ab8129da3d41c9e64897f66d0f6de24dc6d697d1..d186a46f9195d45aa91e3a2712e583ba024487f4 100644 +index f4f8c60a24664b6fb33361ae830987701a0e9394..3506cd1c5960b58fe2805d9cc7ea6758f45d4e2a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -944,22 +944,20 @@ public class ServerPlayer extends Player { @@ -28,7 +28,7 @@ index ab8129da3d41c9e64897f66d0f6de24dc6d697d1..d186a46f9195d45aa91e3a2712e583ba } } } - if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { // Paper - preserve this check from vanilla + if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { // Paper - fix player loottables running when mob loot gamerule is false // SPIGOT-5071: manually add player loot tables (SPIGOT-5195 - ignores keepInventory rule) this.dropFromLootTable(damageSource, this.lastHurtByPlayerTime > 0); - for (org.bukkit.inventory.ItemStack item : this.drops) { @@ -36,7 +36,7 @@ index ab8129da3d41c9e64897f66d0f6de24dc6d697d1..d186a46f9195d45aa91e3a2712e583ba - } + loot.addAll(this.drops); // Paper this.drops.clear(); // SPIGOT-5188: make sure to clear - } // Paper + } // Paper - fix player loottables running when mob loot gamerule is false @@ -2442,8 +2440,8 @@ public class ServerPlayer extends Player { } @@ -50,7 +50,7 @@ index ab8129da3d41c9e64897f66d0f6de24dc6d697d1..d186a46f9195d45aa91e3a2712e583ba if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8a7fc07a8500c25b427c13d38da005b56f0892c0..36e94a6afef269007384938aa0a2c25af212ec7c 100644 +index 96d2fa0278ada7fb706a39ca2a93f5259239229c..6f45f2fff258fa712c2637c8901453b13b34ee0b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -104,7 +104,7 @@ index 8a7fc07a8500c25b427c13d38da005b56f0892c0..36e94a6afef269007384938aa0a2c25a return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a42023793805b294dc167ec2cd5445f32b0c51eb..38793c3ab6db7e311866de88ba272b8e98178a4b 100644 +index 8713ee8ff8a2b269c6d138e7f483a80fa2521793..102fa2c9ed1a749503aa22f57666a9f28940f4a8 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1030-Add-Structure-check-API.patch b/patches/server/1030-Add-Structure-check-API.patch index 8785db4ed14a..3ec45efbcd35 100644 --- a/patches/server/1030-Add-Structure-check-API.patch +++ b/patches/server/1030-Add-Structure-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e7d503366c58e567c392b040e46a14457d86ad8d..f785e7b366175a32c834e1ebb56166a6fdcca3da 100644 +index 1e71506e079616028b4eaf577a5ca410ee38d5a8..44949a5a9351d8fcbae2987df77a61ec7de8d198 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -230,6 +230,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1031-Dont-resend-blocks-on-interactions.patch b/patches/server/1031-Dont-resend-blocks-on-interactions.patch index cc93facb91b5..e09ac843114c 100644 --- a/patches/server/1031-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1031-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index be74f1360170c529b13979d865d7016f7f3ae5e8..8172449e198094d959d46d262c1136ec7e25a6da 100644 +index 82aabd5234102c3763891ebe3009e75f243e539b..f8fd44500fb2a5b8273d317dbb1789fae24252fd 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { @@ -149,7 +149,7 @@ index 277555a26e8281dd1a626e572794b08cf51d00c5..aa0f09a18ea781e027ea70928b30d3e9 return false; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 32a3729b9f1caca789af8176737fc510761ee960..5caf48c84b8dd46903dbdacaa3a5e13272374e0e 100644 +index 74fb996f54783948ee1351f3d437666b4d462cba..94921512e50b7a4556101772e72d822897a04165 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -457,10 +457,12 @@ public final class ItemStack { diff --git a/patches/server/1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index e22cda937cf0..b81e257b7194 100644 --- a/patches/server/1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,7 +26,7 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 38793c3ab6db7e311866de88ba272b8e98178a4b..4cbb1f5d904191e59395df0177e76e94faae764c 100644 +index 102fa2c9ed1a749503aa22f57666a9f28940f4a8..ff2e6351e49dfdaab9639c28d34a6435e4a03047 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4205,7 +4205,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1045-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1045-Validate-ResourceLocation-in-NBT-reading.patch index 5860eeb99def..0a0ac3af7be0 100644 --- a/patches/server/1045-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1045-Validate-ResourceLocation-in-NBT-reading.patch @@ -66,7 +66,7 @@ index 42e2be9286b75a1d34845f303ffc65e96fdd5416..0b5334004b9d0489e8465824870662b4 } diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 6272b0e1e332789b983a486ee25226e2a1c9fdda..505fe5496044f090ce6f7d541b8c3e13c567b16d 100644 +index 2b2ff2a187410ef9431b0396c05935ffd17fd108..5a2144417783f859729fc93281edd9d577c59ca2 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -560,7 +560,7 @@ public abstract class AbstractArrow extends Projectile { diff --git a/patches/server/1046-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1046-Properly-handle-experience-dropping-on-block-break.patch index 904409a2181f..27f3eb631ec1 100644 --- a/patches/server/1046-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1046-Properly-handle-experience-dropping-on-block-break.patch @@ -7,7 +7,7 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a8d22b48bd7108ca22faae178fcf82cb158ee7bb..b05e11e6b091c7616df5a9bbef867b06cafe3dc3 100644 +index 03c43220425411e0a135e7d63df276c4571d23d0..1496b870eaf99d4c3b6dd01159d7c2893fd9366b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1103,7 +1103,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { From f61ebdce91885c7cd4fc5c5d13174e02e22da2ee Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Thu, 18 Jan 2024 19:35:56 +0000 Subject: [PATCH 20/45] Fix issue with kick event causes being passed improperly --- patches/server/0596-Add-PlayerKickEvent-causes.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/patches/server/0596-Add-PlayerKickEvent-causes.patch b/patches/server/0596-Add-PlayerKickEvent-causes.patch index 04d7f1f5ce4c..e9ccf585d74c 100644 --- a/patches/server/0596-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0596-Add-PlayerKickEvent-causes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerKickEvent causes diff --git a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java -index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..85a8a687b1568a56e3e646b37ef78b562c1b8a82 100644 +index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..22ead092ae984d1eaa052fe97981ce3c49b521d8 100644 --- a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java +++ b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java @@ -35,16 +35,16 @@ public class SignedMessageChain { @@ -16,10 +16,10 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..85a8a687b1568a56e3e646b37ef78b56 + throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.chain_broken"), false); // Paper - diff on change (if disconnects, need a new kick event cause) } else if (playerPublicKey.data().hasExpired()) { - throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.expiredProfileKey"), false); -+ throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.expiredProfileKey", org.bukkit.event.player.PlayerKickEvent.Cause.EXPIRED_PROFILE_PUBLIC_KEY), false); // Paper - kick event causes ++ throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.expiredProfileKey"), false, org.bukkit.event.player.PlayerKickEvent.Cause.EXPIRED_PROFILE_PUBLIC_KEY); // Paper - kick event causes } else if (body.timeStamp().isBefore(this.lastTimeStamp)) { - throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.out_of_order_chat"), true); -+ throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.out_of_order_chat", org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT), true); // Paper - kick event causes ++ throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.out_of_order_chat"), true, org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event causes } else { this.lastTimeStamp = body.timeStamp(); PlayerChatMessage playerChatMessage = new PlayerChatMessage(signedMessageLink, signature, body, (Component)null, FilterMask.PASS_THROUGH); From 106c67a811a857293b934c453752e73579c6ed8c Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Thu, 18 Jan 2024 22:00:40 +0100 Subject: [PATCH 21/45] [ci skip] Add more identifying patch comments --- patches/server/0612-Missing-Entity-API.patch | 41 +++++++++++ ...de-code-using-deprecated-for-removal.patch | 4 +- ...removing-recipes-from-RecipeIterator.patch | 16 ++--- ...oversized-item-data-in-equipment-and.patch | 10 +-- ...de-unnecessary-itemmeta-from-clients.patch | 22 +++--- .../0704-Fix-Spigot-growth-modifiers.patch | 31 +++++---- ...rOpenersCounter-openCount-from-going.patch | 4 +- .../0706-Add-PlayerItemFrameChangeEvent.patch | 16 ++--- .../server/0707-Optimize-HashMapPalette.patch | 8 +-- ...llow-delegation-to-vanilla-chunk-gen.patch | 16 ++--- ...t-isSectionEmpty-int-and-optimize-Pa.patch | 14 ++-- .../server/0712-Add-more-Campfire-API.patch | 18 ++--- ...-data-to-disk-if-it-serializes-witho.patch | 12 ++-- ...714-Fix-tripwire-state-inconsistency.patch | 22 +++--- ...ward-CraftEntity-in-teleport-command.patch | 8 +-- ...y-type-tags-suggestions-in-selectors.patch | 32 ++++----- ...max-block-light-for-monster-spawning.patch | 4 +- ...-pistons-and-BlockPistonRetractEvent.patch | 12 ++-- .../0724-Fix-bees-aging-inside-hives.patch | 12 ++-- patches/server/0726-Validate-usernames.patch | 6 +- ...ter-animal-spawn-height-configurable.patch | 6 +- ...vanilla-BiomeProvider-from-WorldInfo.patch | 8 +-- ...31-Multiple-Entries-with-Scoreboards.patch | 26 +++---- ...0732-Reset-placed-block-on-exception.patch | 8 +-- ...-configurable-height-for-slime-spawn.patch | 6 +- .../0734-Fix-xp-reward-for-baby-zombies.patch | 6 +- ...ulti-Block-Change-API-Implementation.patch | 6 +- patches/server/0736-Fix-NotePlayEvent.patch | 10 +-- patches/server/0738-Dolphin-API.patch | 47 ------------- ...h => 0738-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 4 +- ...command-sender-which-forwards-feedb.patch} | 2 +- ...-missing-structure-set-seed-configs.patch} | 68 +++++++++---------- ...h => 0742-Implement-regenerateChunk.patch} | 4 +- ...lled-powdered-snow-bucket-placement.patch} | 6 +- ...ate-calls-to-CraftServer-getSpawnLi.patch} | 2 +- ...gs.patch => 0745-Add-GameEvent-tags.patch} | 4 +- ...ks-fairly-for-worlds-while-waiting-.patch} | 2 +- ...tch => 0747-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 26 +++---- ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 2 +- ...-worldlist-before-initing-the-world.patch} | 4 +- ... => 0752-Fix-Entity-Position-Desync.patch} | 2 +- ...s.patch => 0753-Custom-Potion-Mixes.patch} | 4 +- ...54-Force-close-world-loading-screen.patch} | 0 ...755-Fix-falling-block-spawn-methods.patch} | 2 +- ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0758-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 2 +- ...0761-Implement-getComputedBiome-API.patch} | 0 ...> 0762-Make-some-itemstacks-nonnull.patch} | 0 ...763-Implement-enchantWithLevels-API.patch} | 0 ...h => 0764-Fix-saving-in-unloadWorld.patch} | 2 +- ...h => 0765-Buffer-OOB-setBlock-calls.patch} | 0 ... 0766-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 2 +- ...rd-against-invalid-entity-positions.patch} | 2 +- ...s.patch => 0771-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 2 +- ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 2 +- ...ead-of-display-name-in-PlayerList-g.patch} | 0 ...-ServerLevel-for-gamerule-callbacks.patch} | 4 +- ...> 0778-Expand-PlayerItemDamageEvent.patch} | 2 +- ...> 0779-WorldCreator-keepSpawnLoaded.patch} | 2 +- ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0785-Add-PlayerStopUsingItemEvent.patch} | 2 +- ...rs.patch => 0786-Don-t-tick-markers.patch} | 0 ...tch => 0787-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 2 +- ...0789-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0792-Sanitize-sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 2 +- ...-on-world-create-while-being-ticked.patch} | 4 +- ...ate-Current-redstone-implementation.patch} | 0 ...97-Dont-resent-entity-on-art-update.patch} | 0 ... => 0798-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0801-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 2 +- ...pty-items-from-being-added-to-world.patch} | 0 ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0805-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 2 +- ...PE.patch => 0808-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 2 +- ...API.patch => 0810-More-Teleport-API.patch} | 2 +- ... => 0811-Add-EntityPortalReadyEvent.patch} | 2 +- ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 2 +- ...on-plugins-accessing-faraway-chunks.patch} | 2 +- ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0817-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0819-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 2 +- ...821-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 2 +- ...ok-changes-from-crashing-the-server.patch} | 2 +- ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0825-Missing-eating-regain-reason.patch} | 0 ....patch => 0826-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...9-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0830-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0832-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0834-Add-getDrops-to-BlockState.patch} | 0 ...=> 0835-Fix-a-bunch-of-vanilla-bugs.patch} | 2 +- ...y-onTrackingStart-during-navigation.patch} | 0 ... 0837-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0838-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0841-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0843-Add-entity-knockback-API.patch} | 0 ....patch => 0844-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...46-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 0847-Add-EntityToggleSitEvent.patch} | 0 ... => 0848-Add-fire-tick-delay-option.patch} | 0 ...patch => 0849-Add-Moving-Piston-API.patch} | 0 ...> 0850-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 6 +- ...Event-cancellation-cant-fully-preve.patch} | 2 +- ...0854-Add-PrePlayerAttackEntityEvent.patch} | 2 +- ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 2 +- ... 0857-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...859-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 2 +- ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0862-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0863-Friction-API.patch} | 2 +- ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0865-Fix-player-kick-on-shutdown.patch} | 0 ... => 0866-Sync-offhand-slot-in-menus.patch} | 0 ... 0867-Player-Entity-Tracking-Events.patch} | 2 +- ...tch => 0868-Limit-pet-look-distance.patch} | 0 ...ch => 0869-Properly-resend-entities.patch} | 2 +- ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0871-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 0 ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0874-Add-BlockLockCheckEvent.patch} | 0 ... 0875-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0876-Improve-logging-and-errors.patch} | 2 +- ....patch => 0877-Improve-PortalEvents.patch} | 2 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 2 +- ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0881-Flying-Fall-Damage.patch} | 2 +- ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...ion-moving-velocity-to-VehicleBlock.patch} | 2 +- ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 2 +- ...k-items-during-EntityResurrectEvent.patch} | 2 +- ...en-API.patch => 0887-Win-Screen-API.patch} | 0 ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0890-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 0 ...=> 0893-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 2 +- ...898-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0900-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...pers.patch => 0902-Optimize-Hoppers.patch} | 4 +- ...ives-generating-from-using-bonemeal.patch} | 2 +- ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 2 +- ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 2 +- ...ts-being-fired-from-unloaded-chunks.patch} | 0 ...0909-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0912-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...16-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ...ecalcBlockCounts-for-empty-sections.patch} | 0 ... => 0919-Expand-PlayerItemMendEvent.patch} | 0 ...sh-ProjectileSource-for-projectiles.patch} | 2 +- ... => 0921-Add-transient-modifier-API.patch} | 0 ...patch => 0922-Fix-block-place-logic.patch} | 4 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 2 +- ...l-BlockGrowEvent-for-missing-blocks.patch} | 2 +- ...nhasbukkit-default-if-alias-block-e.patch} | 2 +- ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...yerChunkLoaderData-in-order-to-prep.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0931-Properly-cancel-usable-items.patch} | 4 +- ...2-Add-event-for-player-editing-sign.patch} | 2 +- ...k-item-frames-if-players-can-see-it.patch} | 2 +- ...ermission-levels-for-command-blocks.patch} | 2 +- ...Add-option-to-disable-block-updates.patch} | 8 +-- ...936-Call-missing-BlockDispenseEvent.patch} | 0 ...-chunks-for-supporting-block-checks.patch} | 2 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...939-Add-Sign-getInteractableSideFor.patch} | 0 ...40-Array-backed-synched-entity-data.patch} | 0 ...1-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0942-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 0 ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0948-Add-whitelist-events.patch} | 0 ... 0949-Implement-PlayerFailMoveEvent.patch} | 2 +- ...olia-scheduler-and-owned-region-API.patch} | 6 +- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 2 +- ...tion-when-spawning-display-entities.patch} | 0 ...954-Only-capture-actual-tree-growth.patch} | 2 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 2 +- ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0959-Cache-map-ids-on-item-frames.patch} | 4 +- ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0961-Bandaid-fix-for-Effect.patch} | 2 +- ...tch => 0962-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 0 ...lace-methods-with-old-StructureType.patch} | 2 +- ...e-namespaced-commands-if-send-names.patch} | 2 +- ...-handle-BlockBreakEvent-isDropItems.patch} | 0 ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 0 ... => 0970-Add-Listing-API-for-Player.patch} | 0 ...figurable-Region-Compression-Format.patch} | 2 +- ...2-Add-BlockFace-to-BlockDamageEvent.patch} | 0 ...h => 0973-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0974-Expand-Pose-API.patch} | 2 +- ...patch => 0975-More-DragonBattle-API.patch} | 0 ... 0976-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0977-Add-PlayerPickItemEvent.patch} | 2 +- ...-Improve-performance-of-mass-crafts.patch} | 0 ...=> 0979-Allow-trident-custom-damage.patch} | 0 ...0-Expose-hand-in-BlockCanBuildEvent.patch} | 2 +- ...-nearest-structure-border-iteration.patch} | 2 +- ...Implement-OfflinePlayer-isConnected.patch} | 0 ....patch => 0983-Fix-inventory-desync.patch} | 2 +- ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...85-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 2 +- ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0992-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 0 ...> 0995-Actually-optimise-explosions.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 2 +- ...atch => 0998-Fix-SuspiciousStewMeta.patch} | 0 ... 0999-Optimise-chunk-tick-iteration.patch} | 0 ...atch => 1000-Lag-compensation-ticks.patch} | 4 +- ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...04-Optimise-nearby-player-retrieval.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 0 ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...09-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 1010-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 0 ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 1014-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 2 +- ...em-packets-with-collector-as-source.patch} | 2 +- ... => 1018-Expand-LingeringPotion-API.patch} | 0 ....patch => 1019-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 2 +- ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...023-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 6 +- ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 4 +- ...tch => 1029-Add-Structure-check-API.patch} | 2 +- ...-Dont-resend-blocks-on-interactions.patch} | 2 +- ...evious-behavior-for-setResourcePack.patch} | 0 ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 1034-add-more-scoreboard-API.patch} | 0 ...stry.patch => 1035-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 2 +- ...h => 1037-Add-experience-points-API.patch} | 2 +- ...h => 1038-Add-missing-InventoryType.patch} | 0 ...h => 1039-Add-drops-to-shear-events.patch} | 0 ...> 1040-Add-PlayerShieldDisableEvent.patch} | 2 +- ... => 1041-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 0 ...-experience-dropping-on-block-break.patch} | 0 ...> 1046-Fixup-NamespacedKey-handling.patch} | 0 338 files changed, 379 insertions(+), 384 deletions(-) delete mode 100644 patches/server/0738-Dolphin-API.patch rename patches/server/{0739-More-PotionEffectType-API.patch => 0738-More-PotionEffectType-API.patch} (100%) rename patches/server/{0740-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0739-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (84%) rename patches/server/{0741-API-for-creating-command-sender-which-forwards-feedb.patch => 0740-API-for-creating-command-sender-which-forwards-feedb.patch} (98%) rename patches/server/{0742-Add-missing-structure-set-seed-configs.patch => 0741-Add-missing-structure-set-seed-configs.patch} (88%) rename patches/server/{0743-Implement-regenerateChunk.patch => 0742-Implement-regenerateChunk.patch} (97%) rename patches/server/{0744-Fix-cancelled-powdered-snow-bucket-placement.patch => 0743-Fix-cancelled-powdered-snow-bucket-placement.patch} (86%) rename patches/server/{0745-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0744-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (92%) rename patches/server/{0746-Add-GameEvent-tags.patch => 0745-Add-GameEvent-tags.patch} (97%) rename patches/server/{0747-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0746-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (94%) rename patches/server/{0748-Furnace-RecipesUsed-API.patch => 0747-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0749-Configurable-sculk-sensor-listener-range.patch => 0748-Configurable-sculk-sensor-listener-range.patch} (82%) rename patches/server/{0750-Add-missing-block-data-mins-and-maxes.patch => 0749-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0750-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (96%) rename patches/server/{0752-Put-world-into-worldlist-before-initing-the-world.patch => 0751-Put-world-into-worldlist-before-initing-the-world.patch} (92%) rename patches/server/{0753-Fix-Entity-Position-Desync.patch => 0752-Fix-Entity-Position-Desync.patch} (93%) rename patches/server/{0754-Custom-Potion-Mixes.patch => 0753-Custom-Potion-Mixes.patch} (98%) rename patches/server/{0755-Force-close-world-loading-screen.patch => 0754-Force-close-world-loading-screen.patch} (100%) rename patches/server/{0756-Fix-falling-block-spawn-methods.patch => 0755-Fix-falling-block-spawn-methods.patch} (97%) rename patches/server/{0757-Expose-furnace-minecart-push-values.patch => 0756-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0758-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0757-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0759-More-Projectile-API.patch => 0758-More-Projectile-API.patch} (100%) rename patches/server/{0760-Fix-swamp-hut-cat-generation-deadlock.patch => 0759-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0760-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (94%) rename patches/server/{0762-Implement-getComputedBiome-API.patch => 0761-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0763-Make-some-itemstacks-nonnull.patch => 0762-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0764-Implement-enchantWithLevels-API.patch => 0763-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0765-Fix-saving-in-unloadWorld.patch => 0764-Fix-saving-in-unloadWorld.patch} (90%) rename patches/server/{0766-Buffer-OOB-setBlock-calls.patch => 0765-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0767-Add-TameableDeathMessageEvent.patch => 0766-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0767-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (100%) rename patches/server/{0769-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0768-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/server/{0770-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0769-Ensure-entity-passenger-world-matches-ridden-entity.patch} (91%) rename patches/server/{0771-Guard-against-invalid-entity-positions.patch => 0770-Guard-against-invalid-entity-positions.patch} (95%) rename patches/server/{0772-cache-resource-keys.patch => 0771-cache-resource-keys.patch} (100%) rename patches/server/{0773-Allow-changing-the-EnderDragon-podium.patch => 0772-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/server/{0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0773-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (96%) rename patches/server/{0775-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0774-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0776-Prevent-tile-entity-copies-loading-chunks.patch => 0775-Prevent-tile-entity-copies-loading-chunks.patch} (94%) rename patches/server/{0777-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0776-Use-username-instead-of-display-name-in-PlayerList-g.patch} (100%) rename patches/server/{0778-Pass-ServerLevel-for-gamerule-callbacks.patch => 0777-Pass-ServerLevel-for-gamerule-callbacks.patch} (98%) rename patches/server/{0779-Expand-PlayerItemDamageEvent.patch => 0778-Expand-PlayerItemDamageEvent.patch} (93%) rename patches/server/{0780-WorldCreator-keepSpawnLoaded.patch => 0779-WorldCreator-keepSpawnLoaded.patch} (94%) rename patches/server/{0781-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0780-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0782-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0781-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0783-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0782-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0784-Fire-CauldronLevelChange-on-initial-fill.patch => 0783-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0785-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0784-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0786-Add-PlayerStopUsingItemEvent.patch => 0785-Add-PlayerStopUsingItemEvent.patch} (91%) rename patches/server/{0787-Don-t-tick-markers.patch => 0786-Don-t-tick-markers.patch} (100%) rename patches/server/{0788-Expand-FallingBlock-API.patch => 0787-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0789-Do-not-accept-invalid-client-settings.patch => 0788-Do-not-accept-invalid-client-settings.patch} (94%) rename patches/server/{0790-Add-support-for-Proxy-Protocol.patch => 0789-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0791-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0790-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0792-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0791-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0793-Sanitize-sent-BlockEntity-NBT.patch => 0792-Sanitize-sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0794-Disable-component-selector-resolving-in-books-by-def.patch => 0793-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0795-Prevent-entity-loading-causing-async-lookups.patch => 0794-Prevent-entity-loading-causing-async-lookups.patch} (97%) rename patches/server/{0796-Throw-exception-on-world-create-while-being-ticked.patch => 0795-Throw-exception-on-world-create-while-being-ticked.patch} (95%) rename patches/server/{0797-Add-Alternate-Current-redstone-implementation.patch => 0796-Add-Alternate-Current-redstone-implementation.patch} (100%) rename patches/server/{0798-Dont-resent-entity-on-art-update.patch => 0797-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0799-Add-WardenAngerChangeEvent.patch => 0798-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0800-Add-option-for-strict-advancement-dimension-checks.patch => 0799-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/server/{0801-Add-missing-important-BlockStateListPopulator-method.patch => 0800-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0802-Nameable-Banner-API.patch => 0801-Nameable-Banner-API.patch} (100%) rename patches/server/{0803-Don-t-broadcast-messages-to-command-blocks.patch => 0802-Don-t-broadcast-messages-to-command-blocks.patch} (95%) rename patches/server/{0804-Prevent-empty-items-from-being-added-to-world.patch => 0803-Prevent-empty-items-from-being-added-to-world.patch} (100%) rename patches/server/{0805-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0804-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0806-Add-Player-getFishHook.patch => 0805-Add-Player-getFishHook.patch} (100%) rename patches/server/{0807-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0806-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0808-Add-various-missing-EntityDropItemEvent-calls.patch => 0807-Add-various-missing-EntityDropItemEvent-calls.patch} (98%) rename patches/server/{0809-Fix-Bee-flower-NPE.patch => 0808-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0810-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0809-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (92%) rename patches/server/{0811-More-Teleport-API.patch => 0810-More-Teleport-API.patch} (99%) rename patches/server/{0812-Add-EntityPortalReadyEvent.patch => 0811-Add-EntityPortalReadyEvent.patch} (95%) rename patches/server/{0813-Don-t-use-level-random-in-entity-constructors.patch => 0812-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0814-Send-block-entities-after-destroy-prediction.patch => 0813-Send-block-entities-after-destroy-prediction.patch} (98%) rename patches/server/{0815-Warn-on-plugins-accessing-faraway-chunks.patch => 0814-Warn-on-plugins-accessing-faraway-chunks.patch} (98%) rename patches/server/{0816-Custom-Chat-Completion-Suggestions-API.patch => 0815-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0817-Add-and-fix-missing-BlockFadeEvents.patch => 0816-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0818-Collision-API.patch => 0817-Collision-API.patch} (100%) rename patches/server/{0819-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0818-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/server/{0820-Block-Ticking-API.patch => 0819-Block-Ticking-API.patch} (100%) rename patches/server/{0821-Add-Velocity-IP-Forwarding-Support.patch => 0820-Add-Velocity-IP-Forwarding-Support.patch} (99%) rename patches/server/{0822-Add-NamespacedKey-biome-methods.patch => 0821-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0823-Fix-plugin-loggers-on-server-shutdown.patch => 0822-Fix-plugin-loggers-on-server-shutdown.patch} (96%) rename patches/server/{0824-Stop-large-look-changes-from-crashing-the-server.patch => 0823-Stop-large-look-changes-from-crashing-the-server.patch} (96%) rename patches/server/{0825-Fire-EntityChangeBlockEvent-in-more-places.patch => 0824-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0826-Missing-eating-regain-reason.patch => 0825-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0827-Missing-effect-cause.patch => 0826-Missing-effect-cause.patch} (100%) rename patches/server/{0828-Added-byte-array-serialization-deserialization-for-P.patch => 0827-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0829-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0828-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0830-Call-BlockPhysicsEvent-more-often.patch => 0829-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0831-Configurable-chat-thread-limit.patch => 0830-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0832-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0831-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0833-fix-Jigsaw-block-kicking-user.patch => 0832-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0834-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0833-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0835-Add-getDrops-to-BlockState.patch => 0834-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0836-Fix-a-bunch-of-vanilla-bugs.patch => 0835-Fix-a-bunch-of-vanilla-bugs.patch} (99%) rename patches/server/{0837-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0836-Remove-unnecessary-onTrackingStart-during-navigation.patch} (100%) rename patches/server/{0838-Fix-custom-piglin-loved-items.patch => 0837-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0839-EntityPickupItemEvent-fixes.patch => 0838-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0840-Correctly-handle-interactions-with-items-on-cooldown.patch => 0839-Correctly-handle-interactions-with-items-on-cooldown.patch} (100%) rename patches/server/{0841-Add-PlayerInventorySlotChangeEvent.patch => 0840-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/server/{0842-Elder-Guardian-appearance-API.patch => 0841-Elder-Guardian-appearance-API.patch} (100%) rename patches/server/{0843-Allow-changing-bed-s-occupied-property.patch => 0842-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0844-Add-entity-knockback-API.patch => 0843-Add-entity-knockback-API.patch} (100%) rename patches/server/{0845-Detect-headless-JREs.patch => 0844-Detect-headless-JREs.patch} (100%) rename patches/server/{0846-fix-entity-vehicle-collision-event-not-called.patch => 0845-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0847-optimize-dirt-and-snow-spreading.patch => 0846-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{0848-Add-EntityToggleSitEvent.patch => 0847-Add-EntityToggleSitEvent.patch} (100%) rename patches/server/{0849-Add-fire-tick-delay-option.patch => 0848-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0850-Add-Moving-Piston-API.patch => 0849-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0851-Ignore-impossible-spawn-tick.patch => 0850-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0852-Track-projectile-source-for-fireworks-from-dispenser.patch => 0851-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0853-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0852-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (84%) rename patches/server/{0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0853-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (95%) rename patches/server/{0855-Add-PrePlayerAttackEntityEvent.patch => 0854-Add-PrePlayerAttackEntityEvent.patch} (93%) rename patches/server/{0856-ensure-reset-EnderDragon-boss-event-name.patch => 0855-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0857-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0856-fix-MC-252817-green-map-markers-do-not-disappear.patch} (94%) rename patches/server/{0858-Add-Player-Warden-Warning-API.patch => 0857-Add-Player-Warden-Warning-API.patch} (100%) rename patches/server/{0859-More-vanilla-friendly-methods-to-update-trades.patch => 0858-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0860-Add-paper-dumplisteners-command.patch => 0859-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0861-check-global-player-list-where-appropriate.patch => 0860-check-global-player-list-where-appropriate.patch} (98%) rename patches/server/{0862-Fix-async-entity-add-due-to-fungus-trees.patch => 0861-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0863-ItemStack-damage-API.patch => 0862-ItemStack-damage-API.patch} (100%) rename patches/server/{0864-Friction-API.patch => 0863-Friction-API.patch} (98%) rename patches/server/{0865-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0864-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0866-Fix-player-kick-on-shutdown.patch => 0865-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0867-Sync-offhand-slot-in-menus.patch => 0866-Sync-offhand-slot-in-menus.patch} (100%) rename patches/server/{0868-Player-Entity-Tracking-Events.patch => 0867-Player-Entity-Tracking-Events.patch} (96%) rename patches/server/{0869-Limit-pet-look-distance.patch => 0868-Limit-pet-look-distance.patch} (100%) rename patches/server/{0870-Properly-resend-entities.patch => 0869-Properly-resend-entities.patch} (99%) rename patches/server/{0871-Fixes-and-additions-to-the-SpawnReason-API.patch => 0870-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0872-fix-Instruments.patch => 0871-fix-Instruments.patch} (100%) rename patches/server/{0873-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0872-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (100%) rename patches/server/{0874-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0873-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0875-Add-BlockLockCheckEvent.patch => 0874-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0876-Add-Sneaking-API-for-Entities.patch => 0875-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/server/{0877-Improve-logging-and-errors.patch => 0876-Improve-logging-and-errors.patch} (98%) rename patches/server/{0878-Improve-PortalEvents.patch => 0877-Improve-PortalEvents.patch} (93%) rename patches/server/{0879-Add-config-option-for-spider-worldborder-climbing.patch => 0878-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0880-Add-missing-SpigotConfig-logCommands-check.patch => 0879-Add-missing-SpigotConfig-logCommands-check.patch} (93%) rename patches/server/{0881-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0880-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0882-Flying-Fall-Damage.patch => 0881-Flying-Fall-Damage.patch} (96%) rename patches/server/{0883-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0882-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/server/{0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0883-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (91%) rename patches/server/{0885-config-for-disabling-entity-tag-tags.patch => 0884-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0886-Use-single-player-info-update-packet-on-join.patch => 0885-Use-single-player-info-update-packet-on-join.patch} (97%) rename patches/server/{0887-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0886-Correctly-shrink-items-during-EntityResurrectEvent.patch} (95%) rename patches/server/{0888-Win-Screen-API.patch => 0887-Win-Screen-API.patch} (100%) rename patches/server/{0889-Remove-CraftItemStack-setAmount-null-assignment.patch => 0888-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0890-Fix-force-opening-enchantment-tables.patch => 0889-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0891-Add-Entity-Body-Yaw-API.patch => 0890-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0892-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0891-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0893-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0892-Update-the-flag-when-a-captured-block-state-is-outda.patch} (100%) rename patches/server/{0894-Add-EntityFertilizeEggEvent.patch => 0893-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/server/{0895-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0894-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0896-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0895-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0897-Correctly-handle-ArmorStand-invisibility.patch => 0896-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0898-Fix-advancement-triggers-for-entity-damage.patch => 0897-Fix-advancement-triggers-for-entity-damage.patch} (97%) rename patches/server/{0899-Fix-text-display-error-on-spawn.patch => 0898-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0900-Fix-inventories-returning-null-Locations.patch => 0899-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0901-Add-Shearable-API.patch => 0900-Add-Shearable-API.patch} (100%) rename patches/server/{0902-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0901-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0903-Optimize-Hoppers.patch => 0902-Optimize-Hoppers.patch} (99%) rename patches/server/{0904-Fix-beehives-generating-from-using-bonemeal.patch => 0903-Fix-beehives-generating-from-using-bonemeal.patch} (96%) rename patches/server/{0905-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0904-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0906-Treat-sequence-violations-like-they-should-be.patch => 0905-Treat-sequence-violations-like-they-should-be.patch} (92%) rename patches/server/{0907-remove-duplicate-animate-packet-for-records.patch => 0906-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0908-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0907-Prevent-causing-expired-keys-from-impacting-new-join.patch} (97%) rename patches/server/{0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0908-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (100%) rename patches/server/{0910-Use-array-for-gamerule-storage.patch => 0909-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0911-Fix-a-couple-of-upstream-bed-issues.patch => 0910-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0912-Fix-demo-flag-not-enabling-demo-mode.patch => 0911-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0913-Add-Mob-Experience-reward-API.patch => 0912-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0914-Break-redstone-on-top-of-trap-doors-early.patch => 0913-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0915-Fix-DamageCause-for-Falling-Blocks.patch => 0914-Fix-DamageCause-for-Falling-Blocks.patch} (100%) rename patches/server/{0916-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0915-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0917-More-accurate-isInOpenWater-impl.patch => 0916-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0918-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0917-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0919-Optimise-recalcBlockCounts-for-empty-sections.patch => 0918-Optimise-recalcBlockCounts-for-empty-sections.patch} (100%) rename patches/server/{0920-Expand-PlayerItemMendEvent.patch => 0919-Expand-PlayerItemMendEvent.patch} (100%) rename patches/server/{0921-Refresh-ProjectileSource-for-projectiles.patch => 0920-Refresh-ProjectileSource-for-projectiles.patch} (97%) rename patches/server/{0922-Add-transient-modifier-API.patch => 0921-Add-transient-modifier-API.patch} (100%) rename patches/server/{0923-Fix-block-place-logic.patch => 0922-Fix-block-place-logic.patch} (95%) rename patches/server/{0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0923-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (94%) rename patches/server/{0925-Call-BlockGrowEvent-for-missing-blocks.patch => 0924-Call-BlockGrowEvent-for-missing-blocks.patch} (96%) rename patches/server/{0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0925-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (94%) rename patches/server/{0927-fix-MapLike-spam-for-missing-key-selector.patch => 0926-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0928-Fix-sniffer-removeExploredLocation.patch => 0927-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0929-Add-method-to-remove-all-active-potion-effects.patch => 0928-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0930-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch => 0929-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch} (100%) rename patches/server/{0931-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0930-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0932-Properly-cancel-usable-items.patch => 0931-Properly-cancel-usable-items.patch} (95%) rename patches/server/{0933-Add-event-for-player-editing-sign.patch => 0932-Add-event-for-player-editing-sign.patch} (98%) rename patches/server/{0934-Only-tick-item-frames-if-players-can-see-it.patch => 0933-Only-tick-item-frames-if-players-can-see-it.patch} (92%) rename patches/server/{0935-Fix-cmd-permission-levels-for-command-blocks.patch => 0934-Fix-cmd-permission-levels-for-command-blocks.patch} (98%) rename patches/server/{0936-Add-option-to-disable-block-updates.patch => 0935-Add-option-to-disable-block-updates.patch} (97%) rename patches/server/{0937-Call-missing-BlockDispenseEvent.patch => 0936-Call-missing-BlockDispenseEvent.patch} (100%) rename patches/server/{0938-Don-t-load-chunks-for-supporting-block-checks.patch => 0937-Don-t-load-chunks-for-supporting-block-checks.patch} (90%) rename patches/server/{0939-Optimize-player-lookups-for-beacons.patch => 0938-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0940-Add-Sign-getInteractableSideFor.patch => 0939-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0941-Array-backed-synched-entity-data.patch => 0940-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0942-fix-item-meta-for-tadpole-buckets.patch => 0941-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0943-Fix-BanList-API.patch => 0942-Fix-BanList-API.patch} (100%) rename patches/server/{0944-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0943-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0945-Fix-possible-NPE-on-painting-creation.patch => 0944-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0946-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0945-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0947-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0946-ExperienceOrb-should-call-EntitySpawnEvent.patch} (100%) rename patches/server/{0948-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0947-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0949-Add-whitelist-events.patch => 0948-Add-whitelist-events.patch} (100%) rename patches/server/{0950-Implement-PlayerFailMoveEvent.patch => 0949-Implement-PlayerFailMoveEvent.patch} (98%) rename patches/server/{0951-Folia-scheduler-and-owned-region-API.patch => 0950-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0952-Only-erase-allay-memory-on-non-item-targets.patch => 0951-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0953-API-for-updating-recipes-on-clients.patch => 0952-API-for-updating-recipes-on-clients.patch} (97%) rename patches/server/{0954-Fix-rotation-when-spawning-display-entities.patch => 0953-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0955-Only-capture-actual-tree-growth.patch => 0954-Only-capture-actual-tree-growth.patch} (98%) rename patches/server/{0956-Use-correct-source-for-mushroom-block-spread-event.patch => 0955-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0957-Respect-randomizeData-on-more-entities-when-spawning.patch => 0956-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0958-Use-correct-seed-on-api-world-load.patch => 0957-Use-correct-seed-on-api-world-load.patch} (90%) rename patches/server/{0959-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0958-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0960-Cache-map-ids-on-item-frames.patch => 0959-Cache-map-ids-on-item-frames.patch} (92%) rename patches/server/{0961-Fix-custom-statistic-criteria-creation.patch => 0960-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0962-Bandaid-fix-for-Effect.patch => 0961-Bandaid-fix-for-Effect.patch} (98%) rename patches/server/{0963-SculkCatalyst-bloom-API.patch => 0962-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0964-API-for-an-entity-s-scoreboard-name.patch => 0963-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0965-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0964-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (100%) rename patches/server/{0966-Deprecate-and-replace-methods-with-old-StructureType.patch => 0965-Deprecate-and-replace-methods-with-old-StructureType.patch} (96%) rename patches/server/{0967-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0966-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (95%) rename patches/server/{0968-Properly-handle-BlockBreakEvent-isDropItems.patch => 0967-Properly-handle-BlockBreakEvent-isDropItems.patch} (100%) rename patches/server/{0969-Fire-entity-death-event-for-ender-dragon.patch => 0968-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0970-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0969-Configurable-entity-tracking-range-by-Y-coordinate.patch} (100%) rename patches/server/{0971-Add-Listing-API-for-Player.patch => 0970-Add-Listing-API-for-Player.patch} (100%) rename patches/server/{0972-Configurable-Region-Compression-Format.patch => 0971-Configurable-Region-Compression-Format.patch} (96%) rename patches/server/{0973-Add-BlockFace-to-BlockDamageEvent.patch => 0972-Add-BlockFace-to-BlockDamageEvent.patch} (100%) rename patches/server/{0974-Fix-NPE-on-Boat-getStatus.patch => 0973-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0975-Expand-Pose-API.patch => 0974-Expand-Pose-API.patch} (95%) rename patches/server/{0976-More-DragonBattle-API.patch => 0975-More-DragonBattle-API.patch} (100%) rename patches/server/{0977-Deep-clone-unhandled-nbt-tags.patch => 0976-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0978-Add-PlayerPickItemEvent.patch => 0977-Add-PlayerPickItemEvent.patch} (96%) rename patches/server/{0979-Improve-performance-of-mass-crafts.patch => 0978-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{0980-Allow-trident-custom-damage.patch => 0979-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0981-Expose-hand-in-BlockCanBuildEvent.patch => 0980-Expose-hand-in-BlockCanBuildEvent.patch} (96%) rename patches/server/{0982-Optimize-nearest-structure-border-iteration.patch => 0981-Optimize-nearest-structure-border-iteration.patch} (95%) rename patches/server/{0983-Implement-OfflinePlayer-isConnected.patch => 0982-Implement-OfflinePlayer-isConnected.patch} (100%) rename patches/server/{0984-Fix-inventory-desync.patch => 0983-Fix-inventory-desync.patch} (91%) rename patches/server/{0985-Add-titleOverride-to-InventoryOpenEvent.patch => 0984-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/server/{0986-Configure-sniffer-egg-hatch-time.patch => 0985-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0987-Do-crystal-portal-proximity-check-before-entity-look.patch => 0986-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0988-Skip-POI-finding-if-stuck-in-vehicle.patch => 0987-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0989-Add-slot-sanity-checks-in-container-clicks.patch => 0988-Add-slot-sanity-checks-in-container-clicks.patch} (96%) rename patches/server/{0990-Call-BlockRedstoneEvents-for-lecterns.patch => 0989-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0991-Allow-proper-checking-of-empty-item-stacks.patch => 0990-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0992-Fix-silent-equipment-change-for-mobs.patch => 0991-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{0993-Fix-spigot-s-Forced-Stats.patch => 0992-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0994-Add-missing-InventoryHolders-to-inventories.patch => 0993-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/server/{0995-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0994-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{0996-Actually-optimise-explosions.patch => 0995-Actually-optimise-explosions.patch} (100%) rename patches/server/{0997-Add-missing-logs-for-log-ips-config-option.patch => 0996-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0998-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0997-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (92%) rename patches/server/{0999-Fix-SuspiciousStewMeta.patch => 0998-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{1000-Optimise-chunk-tick-iteration.patch => 0999-Optimise-chunk-tick-iteration.patch} (100%) rename patches/server/{1001-Lag-compensation-ticks.patch => 1000-Lag-compensation-ticks.patch} (97%) rename patches/server/{1002-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 1001-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{1003-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 1002-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{1004-Fix-team-sidebar-objectives-not-being-cleared.patch => 1003-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{1005-Optimise-nearby-player-retrieval.patch => 1004-Optimise-nearby-player-retrieval.patch} (100%) rename patches/server/{1006-Fix-missing-map-initialize-event-call.patch => 1005-Fix-missing-map-initialize-event-call.patch} (100%) rename patches/server/{1007-Update-entity-data-when-attaching-firework-to-entity.patch => 1006-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{1008-Use-correct-variable-for-initializing-CraftLootTable.patch => 1007-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{1009-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 1008-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{1010-Fix-UnsafeValues-loadAdvancement.patch => 1009-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{1011-Add-player-idle-duration-API.patch => 1010-Add-player-idle-duration-API.patch} (100%) rename patches/server/{1012-Don-t-check-if-we-can-see-non-visible-entities.patch => 1011-Don-t-check-if-we-can-see-non-visible-entities.patch} (100%) rename patches/server/{1013-Fix-NPE-in-SculkBloomEvent-world-access.patch => 1012-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{1014-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 1013-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/server/{1015-Optimize-VarInts.patch => 1014-Optimize-VarInts.patch} (100%) rename patches/server/{1016-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 1015-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{1017-Add-predicate-for-blocks-when-raytracing.patch => 1016-Add-predicate-for-blocks-when-raytracing.patch} (98%) rename patches/server/{1018-Broadcast-take-item-packets-with-collector-as-source.patch => 1017-Broadcast-take-item-packets-with-collector-as-source.patch} (92%) rename patches/server/{1019-Expand-LingeringPotion-API.patch => 1018-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{1020-Add-MaterialTagsTest.patch => 1019-Add-MaterialTagsTest.patch} (100%) rename patches/server/{1021-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 1020-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (97%) rename patches/server/{1022-Add-hand-to-fish-event-for-all-player-interactions.patch => 1021-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{1023-Fix-several-issues-with-EntityBreedEvent.patch => 1022-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{1024-Add-UUID-attribute-modifier-API.patch => 1023-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{1025-Fix-missing-event-call-for-entity-teleport-API.patch => 1024-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{1026-Lazily-create-LootContext-for-criterions.patch => 1025-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{1027-Don-t-fire-sync-events-during-worldgen.patch => 1026-Don-t-fire-sync-events-during-worldgen.patch} (97%) rename patches/server/{1028-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 1027-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{1029-Restore-vanilla-entity-drops-behavior.patch => 1028-Restore-vanilla-entity-drops-behavior.patch} (98%) rename patches/server/{1030-Add-Structure-check-API.patch => 1029-Add-Structure-check-API.patch} (91%) rename patches/server/{1031-Dont-resend-blocks-on-interactions.patch => 1030-Dont-resend-blocks-on-interactions.patch} (99%) rename patches/server/{1032-Keep-previous-behavior-for-setResourcePack.patch => 1031-Keep-previous-behavior-for-setResourcePack.patch} (100%) rename patches/server/{1033-properly-read-and-store-sus-effect-duration.patch => 1032-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{1034-Use-correct-max-stack-size-in-crafter.patch => 1033-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{1035-add-more-scoreboard-API.patch => 1034-add-more-scoreboard-API.patch} (100%) rename patches/server/{1036-Improve-Registry.patch => 1035-Improve-Registry.patch} (100%) rename patches/server/{1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 1036-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (97%) rename patches/server/{1038-Add-experience-points-API.patch => 1037-Add-experience-points-API.patch} (97%) rename patches/server/{1039-Add-missing-InventoryType.patch => 1038-Add-missing-InventoryType.patch} (100%) rename patches/server/{1040-Add-drops-to-shear-events.patch => 1039-Add-drops-to-shear-events.patch} (100%) rename patches/server/{1041-Add-PlayerShieldDisableEvent.patch => 1040-Add-PlayerShieldDisableEvent.patch} (97%) rename patches/server/{1042-Add-HiddenPotionEffect-API.patch => 1041-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1043-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1042-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{1044-fix-ItemMeta-removing-CustomModelData.patch => 1043-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/server/{1045-Validate-ResourceLocation-in-NBT-reading.patch => 1044-Validate-ResourceLocation-in-NBT-reading.patch} (100%) rename patches/server/{1046-Properly-handle-experience-dropping-on-block-break.patch => 1045-Properly-handle-experience-dropping-on-block-break.patch} (100%) rename patches/server/{1047-Fixup-NamespacedKey-handling.patch => 1046-Fixup-NamespacedKey-handling.patch} (100%) diff --git a/patches/server/0612-Missing-Entity-API.patch b/patches/server/0612-Missing-Entity-API.patch index f6c3195d8e09..41f60f26112b 100644 --- a/patches/server/0612-Missing-Entity-API.patch +++ b/patches/server/0612-Missing-Entity-API.patch @@ -585,6 +585,47 @@ index fa0bf7db880063427ba12df1df1c72240fff93e9..63e6b07e3b159c74d9ef17be20b5ab43 public CraftCod(CraftServer server, net.minecraft.world.entity.animal.Cod entity) { super(server, entity); +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java +index af432f9a1d255a56c31c3b97aeb4457d17f37e3e..f93f8f6509b12eb9b1e07c829278bb0822dd7988 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java +@@ -18,4 +18,36 @@ public class CraftDolphin extends CraftWaterMob implements Dolphin { + public String toString() { + return "CraftDolphin"; + } ++ ++ // Paper start - Missing Dolphin API ++ @Override ++ public int getMoistness() { ++ return this.getHandle().getMoistnessLevel(); ++ } ++ ++ @Override ++ public void setMoistness(int moistness) { ++ this.getHandle().setMoisntessLevel(moistness); ++ } ++ ++ @Override ++ public void setHasFish(boolean hasFish) { ++ this.getHandle().setGotFish(hasFish); ++ } ++ ++ @Override ++ public boolean hasFish() { ++ return this.getHandle().gotFish(); ++ } ++ ++ @Override ++ public org.bukkit.Location getTreasureLocation() { ++ return io.papermc.paper.util.MCUtil.toLocation(this.getHandle().level(), this.getHandle().getTreasurePos()); ++ } ++ ++ @Override ++ public void setTreasureLocation(org.bukkit.Location location) { ++ this.getHandle().setTreasurePos(io.papermc.paper.util.MCUtil.toBlockPosition(location)); ++ } ++ // Paper end - Missing Dolphin API + } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java index 21dc209e6f98b6306833b41e2763e746047d5a94..983b9d6ddb58eff297e96e5c8b28ec427efa267d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java diff --git a/patches/server/0700-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0700-Remove-client-side-code-using-deprecated-for-removal.patch index 41ae87a8e9a0..c9d518a9bb16 100644 --- a/patches/server/0700-Remove-client-side-code-using-deprecated-for-removal.patch +++ b/patches/server/0700-Remove-client-side-code-using-deprecated-for-removal.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Remove client-side code using deprecated for removal Fixes warnings on build diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 7be16ce8c8582d8587c4d1cb4c099fa6fe5f1324..22dfe70df68b35e313f94b17a87e4121392b17b4 100644 +index 7be16ce8c8582d8587c4d1cb4c099fa6fe5f1324..646afa849148cdd5bc9812a1ebd9cb5d15c39311 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -955,17 +955,7 @@ public class Util { @@ -25,7 +25,7 @@ index 7be16ce8c8582d8587c4d1cb4c099fa6fe5f1324..22dfe70df68b35e313f94b17a87e4121 - Util.LOGGER.error("Couldn't open url '{}'", url, var3); - } - -+ throw new IllegalStateException("This method is not useful on dedicated servers."); // Paper ++ throw new IllegalStateException("This method is not useful on dedicated servers."); // Paper - Fix warnings on build by removing client-only code } public void openUri(URI uri) { diff --git a/patches/server/0701-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0701-Fix-removing-recipes-from-RecipeIterator.patch index c57379be37bd..fb78c572eb28 100644 --- a/patches/server/0701-Fix-removing-recipes-from-RecipeIterator.patch +++ b/patches/server/0701-Fix-removing-recipes-from-RecipeIterator.patch @@ -7,14 +7,14 @@ Subject: [PATCH] Fix removing recipes from RecipeIterator public net.minecraft.world.item.crafting.RecipeManager byName diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java b/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java -index 65b12eaab871019def074bf17257772ff7f09806..692d9abd715988c96934888b492b93efa64ecce4 100644 +index 65b12eaab871019def074bf17257772ff7f09806..5217e9f7e78e5d4d5751bba51554ff46666b77dd 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/RecipeIterator.java @@ -13,6 +13,7 @@ import org.bukkit.inventory.Recipe; public class RecipeIterator implements Iterator { private final Iterator, Object2ObjectLinkedOpenHashMap>>> recipes; private Iterator> current; -+ private Recipe currentRecipe; // Paper - fix removing recipes ++ private Recipe currentRecipe; // Paper - fix removing recipes from RecipeIterator public RecipeIterator() { this.recipes = MinecraftServer.getServer().getRecipeManager().recipes.entrySet().iterator(); @@ -23,28 +23,28 @@ index 65b12eaab871019def074bf17257772ff7f09806..692d9abd715988c96934888b492b93ef if (this.current == null || !this.current.hasNext()) { this.current = this.recipes.next().getValue().values().iterator(); - return this.next(); -+ // Paper start - fix removing recipes ++ // Paper start - fix removing recipes from RecipeIterator + this.currentRecipe = this.next(); + return this.currentRecipe; -+ // Paper end ++ // Paper end - fix removing recipes from RecipeIterator } - return this.current.next().toBukkitRecipe(); -+ // Paper start - fix removing recipes ++ // Paper start - fix removing recipes from RecipeIterator + this.currentRecipe = this.current.next().toBukkitRecipe(); + return this.currentRecipe; -+ // Paper end ++ // Paper end - fix removing recipes from RecipeIterator } @Override public void remove() { Preconditions.checkState(this.current != null, "next() not yet called"); + -+ // Paper start - fix removing recipes ++ // Paper start - fix removing recipes from RecipeIterator + if (this.currentRecipe instanceof org.bukkit.Keyed keyed) { + MinecraftServer.getServer().getRecipeManager().byName.remove(org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(keyed.getKey())); + } -+ // Paper end ++ // Paper end - fix removing recipes from RecipeIterator this.current.remove(); } } diff --git a/patches/server/0702-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0702-Prevent-sending-oversized-item-data-in-equipment-and.patch index 9258abcc591f..74dfc70c8589 100644 --- a/patches/server/0702-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0702-Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -18,7 +18,7 @@ index f9e15908143f4453c2a5817b412e8a13554553f0..06498788c169133bd563c5a87192b718 @Override diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index e0802f1cb73a80b08482832c2b269ac8485d5c1a..8d2870c780c4c253f6570c7ef73f6e7c2ccc46ad 100644 +index e0802f1cb73a80b08482832c2b269ac8485d5c1a..945a0317e9e49a159a1f42882a0a267a2141e86d 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -335,7 +335,10 @@ public class ServerEntity { @@ -29,12 +29,12 @@ index e0802f1cb73a80b08482832c2b269ac8485d5c1a..8d2870c780c4c253f6570c7ef73f6e7c + // Paper start - prevent oversized data + final ItemStack sanitized = LivingEntity.sanitizeItemStack(itemstack.copy(), false); + list.add(Pair.of(enumitemslot, sanitized)); -+ // Paper end ++ // Paper end - prevent oversized data } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ffc999a3a398bc73fffa7a68805baa1da7504750..3de3e938195c79c65b7e11438ca92585aaccf529 100644 +index ffc999a3a398bc73fffa7a68805baa1da7504750..d1210e8cd501f0f3be92189d129f1d354ddb00cb 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3188,7 +3188,10 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -45,7 +45,7 @@ index ffc999a3a398bc73fffa7a68805baa1da7504750..3de3e938195c79c65b7e11438ca92585 + // Paper start - prevent oversized data + ItemStack toSend = sanitizeItemStack(itemstack1, true); + list.add(Pair.of(enumitemslot, toSend)); -+ // Paper end ++ // Paper end - prevent oversized data switch (enumitemslot.getType()) { case HAND: this.setLastHandItem(enumitemslot, itemstack1); @@ -79,7 +79,7 @@ index ffc999a3a398bc73fffa7a68805baa1da7504750..3de3e938195c79c65b7e11438ca92585 + } + return copy; + } -+ // Paper end ++ // Paper end - prevent oversized data + private ItemStack getLastArmorItem(EquipmentSlot slot) { return (ItemStack) this.lastArmorItemStacks.get(slot.getIndex()); diff --git a/patches/server/0703-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0703-Hide-unnecessary-itemmeta-from-clients.patch index 2279e3103348..633b91c07dcb 100644 --- a/patches/server/0703-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0703-Hide-unnecessary-itemmeta-from-clients.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Hide unnecessary itemmeta from clients diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 8d2870c780c4c253f6570c7ef73f6e7c2ccc46ad..0cbb5dd17c5b37ad90ce11a31b64470722026d06 100644 +index 945a0317e9e49a159a1f42882a0a267a2141e86d..e9fd9590e90e58fd4c31985a704a4511b2663096 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -337,7 +337,7 @@ public class ServerEntity { @@ -13,12 +13,12 @@ index 8d2870c780c4c253f6570c7ef73f6e7c2ccc46ad..0cbb5dd17c5b37ad90ce11a31b644707 // Paper start - prevent oversized data final ItemStack sanitized = LivingEntity.sanitizeItemStack(itemstack.copy(), false); - list.add(Pair.of(enumitemslot, sanitized)); -+ list.add(Pair.of(enumitemslot, ((LivingEntity) this.entity).stripMeta(sanitized, false))); // Paper - remove unnecessary item meta - // Paper end ++ list.add(Pair.of(enumitemslot, ((LivingEntity) this.entity).stripMeta(sanitized, false))); // Paper - Hide unnecessary item meta + // Paper end - prevent oversized data } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 648530ce3183362ed71cbd2de534471da65ab787..1e519cdd673a4d4beb53ae84822e7b85c25a5e97 100644 +index 648530ce3183362ed71cbd2de534471da65ab787..bfbbb0f6e73e9d59e73944b77e08802132f2a739 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2566,8 +2566,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -27,13 +27,13 @@ index 648530ce3183362ed71cbd2de534471da65ab787..1e519cdd673a4d4beb53ae84822e7b85 // SPIGOT-7136 - Allays - if (entity instanceof Allay) { - ServerGamePacketListenerImpl.this.send(new ClientboundSetEquipmentPacket(entity.getId(), Arrays.stream(net.minecraft.world.entity.EquipmentSlot.values()).map((slot) -> Pair.of(slot, ((LivingEntity) entity).getItemBySlot(slot).copy())).collect(Collectors.toList()))); -+ if (entity instanceof Allay allay) { // Paper -+ ServerGamePacketListenerImpl.this.send(new ClientboundSetEquipmentPacket(entity.getId(), Arrays.stream(net.minecraft.world.entity.EquipmentSlot.values()).map((slot) -> Pair.of(slot, allay.stripMeta(allay.getItemBySlot(slot), true))).collect(Collectors.toList()))); // Paper - remove unnecessary item meta ++ if (entity instanceof Allay allay) { // Paper - Hide unnecessary item meta ++ ServerGamePacketListenerImpl.this.send(new ClientboundSetEquipmentPacket(entity.getId(), Arrays.stream(net.minecraft.world.entity.EquipmentSlot.values()).map((slot) -> Pair.of(slot, allay.stripMeta(allay.getItemBySlot(slot), true))).collect(Collectors.toList()))); // Paper - Hide unnecessary item meta ServerGamePacketListenerImpl.this.player.containerMenu.sendAllDataToRemote(); } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3de3e938195c79c65b7e11438ca92585aaccf529..cf91a4b9d2aab2ed32d7d53e5d3bd97838b7a8a4 100644 +index d1210e8cd501f0f3be92189d129f1d354ddb00cb..1a16dc3ac00c2756f1ea7154c38345393f3d5a96 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3190,7 +3190,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -41,15 +41,15 @@ index 3de3e938195c79c65b7e11438ca92585aaccf529..cf91a4b9d2aab2ed32d7d53e5d3bd978 // Paper start - prevent oversized data ItemStack toSend = sanitizeItemStack(itemstack1, true); - list.add(Pair.of(enumitemslot, toSend)); -+ list.add(Pair.of(enumitemslot, stripMeta(toSend, toSend == itemstack1))); // Paper - hide unnecessary item meta - // Paper end ++ list.add(Pair.of(enumitemslot, stripMeta(toSend, toSend == itemstack1))); // Paper - Hide unnecessary item meta + // Paper end - prevent oversized data switch (enumitemslot.getType()) { case HAND: @@ -3204,6 +3204,77 @@ public abstract class LivingEntity extends Entity implements Attackable { ((ServerLevel) this.level()).getChunkSource().broadcast(this, new ClientboundSetEquipmentPacket(this.getId(), list)); } -+ // Paper start - hide unnecessary item meta ++ // Paper start - Hide unnecessary item meta + public ItemStack stripMeta(final ItemStack itemStack, final boolean copyItemStack) { + if (itemStack.isEmpty() || (!itemStack.hasTag() && itemStack.getCount() < 2)) { + return itemStack; @@ -118,7 +118,7 @@ index 3de3e938195c79c65b7e11438ca92585aaccf529..cf91a4b9d2aab2ed32d7d53e5d3bd978 + + return copy; + } -+ // Paper end ++ // Paper end - Hide unnecessary item meta + // Paper start - prevent oversized data public static ItemStack sanitizeItemStack(final ItemStack itemStack, final boolean copyItemStack) { diff --git a/patches/server/0704-Fix-Spigot-growth-modifiers.patch b/patches/server/0704-Fix-Spigot-growth-modifiers.patch index 08d422637911..9add019b720c 100644 --- a/patches/server/0704-Fix-Spigot-growth-modifiers.patch +++ b/patches/server/0704-Fix-Spigot-growth-modifiers.patch @@ -13,45 +13,46 @@ Co-authored-by: Noah van der Aa Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java -index 95f897b9ef73c880aff1cfe35fe490683badfd44..54916c80720f219bf747250a2ff9a875f180c7a2 100644 +index 95f897b9ef73c880aff1cfe35fe490683badfd44..788d8a04398482fdfd0fe89e519b2a6c57410ec3 100644 --- a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java -@@ -51,9 +51,17 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl +@@ -51,9 +51,18 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl return to.setValue(BERRIES, from.getValue(BERRIES)); } ++ // Paper start - Fix Spigot growth modifiers + @Override + protected BlockState getGrowIntoState(BlockState state, RandomSource random, @javax.annotation.Nullable Level level) { + final boolean value = random.nextFloat() < (level != null ? (0.11F * (level.spigotConfig.glowBerryModifier / 100.0F)) : 0.11F); + return (BlockState) super.getGrowIntoState(state, random).setValue(CaveVinesBlock.BERRIES, value); + } -+ // Paper end ++ // Paper end - Fix Spigot growth modifiers + @Override protected BlockState getGrowIntoState(BlockState state, RandomSource random) { - return super.getGrowIntoState(state, random).setValue(BERRIES, Boolean.valueOf(random.nextFloat() < 0.11F)); -+ // Paper start ++ // Paper start - Fix Spigot growth modifiers + return this.getGrowIntoState(state, random, null); } @Override diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java -index 76c12b34aac276fc9375135dac1c2018fdd7d756..9550ce8588c6aa3ba4cbbbb86912eae2b452eb01 100644 +index 76c12b34aac276fc9375135dac1c2018fdd7d756..a0b48e5270e2523fa7c7237d5cfef5a13a45a430 100644 --- a/src/main/java/net/minecraft/world/level/block/CropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java @@ -91,6 +91,10 @@ public class CropBlock extends BushBlock implements BonemealableBlock { modifier = world.spigotConfig.carrotModifier; } else if (this == Blocks.POTATOES) { modifier = world.spigotConfig.potatoModifier; -+ // Paper start ++ // Paper start - Fix Spigot growth modifiers + } else if (this == Blocks.TORCHFLOWER_CROP) { + modifier = world.spigotConfig.torchFlowerModifier; -+ // Paper end ++ // Paper end - Fix Spigot growth modifiers } else { modifier = world.spigotConfig.wheatModifier; } diff --git a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java -index b74e61064926a7c7fb03286651ea52c150f86107..4ebdc4918131a15a1c91b45e8ceb1392bca20a81 100644 +index b74e61064926a7c7fb03286651ea52c150f86107..30300ef3ec839dfa944c992ab50db4d3859bb02e 100644 --- a/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java +++ b/src/main/java/net/minecraft/world/level/block/GrowingPlantHeadBlock.java @@ -60,12 +60,18 @@ public abstract class GrowingPlantHeadBlock extends GrowingPlantBlock implements @@ -59,23 +60,23 @@ index b74e61064926a7c7fb03286651ea52c150f86107..4ebdc4918131a15a1c91b45e8ceb1392 if (this.canGrowInto(world.getBlockState(blockposition1))) { - org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition1, this.getGrowIntoState(state, world.random)); // CraftBukkit -+ org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition1, this.getGrowIntoState(state, world.random, world)); // CraftBukkit // Paper ++ org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition1, this.getGrowIntoState(state, world.random, world)); // CraftBukkit // Paper - Fix Spigot growth modifiers } } } -+ // Paper start ++ // Paper start - Fix Spigot growth modifiers + protected BlockState getGrowIntoState(BlockState state, RandomSource random, @javax.annotation.Nullable Level level) { + return this.getGrowIntoState(state, random); + } -+ // Paper end ++ // Paper end - Fix Spigot growth modifiers + protected BlockState getGrowIntoState(BlockState state, RandomSource random) { return (BlockState) state.cycle(GrowingPlantHeadBlock.AGE); } diff --git a/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java b/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java -index 3c0b0732cdea6c98c58c9639be3a6971575df85b..7ee8832820dd3f0c97fc68cab40d23f58ed21c31 100644 +index 3c0b0732cdea6c98c58c9639be3a6971575df85b..d5257272ac8b0cf36e9f92e32a4a4ae6782f770c 100644 --- a/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java +++ b/src/main/java/net/minecraft/world/level/block/MangrovePropaguleBlock.java @@ -100,7 +100,7 @@ public class MangrovePropaguleBlock extends SaplingBlock implements SimpleWaterl @@ -83,12 +84,12 @@ index 3c0b0732cdea6c98c58c9639be3a6971575df85b..7ee8832820dd3f0c97fc68cab40d23f5 public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { if (!isHanging(state)) { - if (random.nextInt(7) == 0) { -+ if (random.nextFloat() < (world.spigotConfig.saplingModifier / (100.0F * 7))) { // Paper ++ if (random.nextFloat() < (world.spigotConfig.saplingModifier / (100.0F * 7))) { // Paper - Fix Spigot growth modifiers this.advanceTree(world, pos, state, random); } diff --git a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -index c80a3ee02f3af146926a3611779fd0af298a8ac1..ba94ff948ccaddc16d3452306722759c115bb90a 100644 +index c80a3ee02f3af146926a3611779fd0af298a8ac1..73d9ad9e24727a81c5ff1645316aee003600c0cc 100644 --- a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java @@ -119,7 +119,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl @@ -96,7 +97,7 @@ index c80a3ee02f3af146926a3611779fd0af298a8ac1..ba94ff948ccaddc16d3452306722759c public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { float f = CropBlock.getGrowthSpeed(this, world, pos); - boolean bl = random.nextInt((int)(25.0F / f) + 1) == 0; -+ boolean bl = random.nextFloat() < (world.spigotConfig.pitcherPlantModifier / (100.0F * (Math.floor(25.0F / f) + 1))); // Paper ++ boolean bl = random.nextFloat() < (world.spigotConfig.pitcherPlantModifier / (100.0F * (Math.floor(25.0F / f) + 1))); // Paper - Fix Spigot growth modifiers if (bl) { this.grow(world, state, pos, 1); } diff --git a/patches/server/0705-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0705-Prevent-ContainerOpenersCounter-openCount-from-going.patch index 62a65ff13067..9dbace63bded 100644 --- a/patches/server/0705-Prevent-ContainerOpenersCounter-openCount-from-going.patch +++ b/patches/server/0705-Prevent-ContainerOpenersCounter-openCount-from-going.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Prevent ContainerOpenersCounter openCount from going negative diff --git a/src/main/java/net/minecraft/world/level/block/entity/ContainerOpenersCounter.java b/src/main/java/net/minecraft/world/level/block/entity/ContainerOpenersCounter.java -index ba06184bad7e8ae55cb2d55f6196e8f990d2811d..3e4b3eecc788c564f81b7929bfab7d2fdb6e307d 100644 +index ba06184bad7e8ae55cb2d55f6196e8f990d2811d..7eccacb978f047a4774e58b11bc3f9ab3959b049 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/ContainerOpenersCounter.java +++ b/src/main/java/net/minecraft/world/level/block/entity/ContainerOpenersCounter.java @@ -64,6 +64,7 @@ public abstract class ContainerOpenersCounter { public void decrementOpeners(Player player, Level world, BlockPos pos, BlockState state) { int oldPower = Math.max(0, Math.min(15, this.openCount)); // CraftBukkit - Get power before new viewer is added -+ if (this.openCount == 0) return; // Paper ++ if (this.openCount == 0) return; // Paper - Prevent ContainerOpenersCounter openCount from going negative int i = this.openCount--; // CraftBukkit start - Call redstone event diff --git a/patches/server/0706-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0706-Add-PlayerItemFrameChangeEvent.patch index c1cf489efdac..e46cc3be4c2b 100644 --- a/patches/server/0706-Add-PlayerItemFrameChangeEvent.patch +++ b/patches/server/0706-Add-PlayerItemFrameChangeEvent.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add PlayerItemFrameChangeEvent diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index 8289ea080aa297f75cdbc8d591d6efa6a0def0ea..63ef00eb6f93a471de1e9c2355099d9dd3a71dd9 100644 +index 8289ea080aa297f75cdbc8d591d6efa6a0def0ea..3ff1ae5ae705cd8d5c8529e1dcdd5ccaed908830 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java @@ -3,6 +3,7 @@ package net.minecraft.world.entity.decoration; import com.mojang.logging.LogUtils; import java.util.OptionalInt; import javax.annotation.Nullable; -+import io.papermc.paper.event.player.PlayerItemFrameChangeEvent; // Paper ++import io.papermc.paper.event.player.PlayerItemFrameChangeEvent; // Paper - Add PlayerItemFrameChangeEvent import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -20,13 +20,13 @@ index 8289ea080aa297f75cdbc8d591d6efa6a0def0ea..63ef00eb6f93a471de1e9c2355099d9d return true; } // CraftBukkit end -+ // Paper start - call PlayerItemFrameChangeEvent ++ // Paper start - Add PlayerItemFrameChangeEvent + if (source.getEntity() instanceof Player player) { + var event = new PlayerItemFrameChangeEvent((org.bukkit.entity.Player) player.getBukkitEntity(), (org.bukkit.entity.ItemFrame) this.getBukkitEntity(), this.getItem().asBukkitCopy(), PlayerItemFrameChangeEvent.ItemFrameChangeAction.REMOVE); + if (!event.callEvent()) return true; // return true here because you aren't cancelling the damage, just the change + this.setItem(ItemStack.fromBukkitCopy(event.getItemStack()), false); + } -+ // Paper end ++ // Paper end - Add PlayerItemFrameChangeEvent this.dropItem(source.getEntity(), false); this.gameEvent(GameEvent.BLOCK_CHANGE, source.getEntity()); this.playSound(this.getRemoveItemSound(), 1.0F, 1.0F); @@ -35,26 +35,26 @@ index 8289ea080aa297f75cdbc8d591d6efa6a0def0ea..63ef00eb6f93a471de1e9c2355099d9d } - this.setItem(itemstack); -+ // Paper start - call PlayerItemFrameChangeEvent ++ // Paper start - Add PlayerItemFrameChangeEvent + PlayerItemFrameChangeEvent event = new PlayerItemFrameChangeEvent((org.bukkit.entity.Player) player.getBukkitEntity(), (org.bukkit.entity.ItemFrame) this.getBukkitEntity(), itemstack.asBukkitCopy(), PlayerItemFrameChangeEvent.ItemFrameChangeAction.PLACE); + if (!event.callEvent()) { + return InteractionResult.FAIL; + } + this.setItem(ItemStack.fromBukkitCopy(event.getItemStack())); -+ // Paper end ++ // Paper end - Add PlayerItemFrameChangeEvent this.gameEvent(GameEvent.BLOCK_CHANGE, player); if (!player.getAbilities().instabuild) { itemstack.shrink(1); } } } else { -+ // Paper start - call PlayerItemFrameChangeEvent ++ // Paper start - Add PlayerItemFrameChangeEvent + PlayerItemFrameChangeEvent event = new PlayerItemFrameChangeEvent((org.bukkit.entity.Player) player.getBukkitEntity(), (org.bukkit.entity.ItemFrame) this.getBukkitEntity(), this.getItem().asBukkitCopy(), PlayerItemFrameChangeEvent.ItemFrameChangeAction.ROTATE); + if (!event.callEvent()) { + return InteractionResult.FAIL; + } + setItem(ItemStack.fromBukkitCopy(event.getItemStack()), false, false); -+ // Paper end ++ // Paper end - Add PlayerItemFrameChangeEvent this.playSound(this.getRotateItemSound(), 1.0F, 1.0F); this.setRotation(this.getRotation() + 1); this.gameEvent(GameEvent.BLOCK_CHANGE, player); diff --git a/patches/server/0707-Optimize-HashMapPalette.patch b/patches/server/0707-Optimize-HashMapPalette.patch index 9e2b26701e58..a8cf001da1f5 100644 --- a/patches/server/0707-Optimize-HashMapPalette.patch +++ b/patches/server/0707-Optimize-HashMapPalette.patch @@ -24,7 +24,7 @@ to corrupted data. This is also something that Anti-Xray is currently relying on. diff --git a/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java b/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java -index 26e093243c70313b777483d9555fb1557443c9b8..7b7b614e5c3a30be89eeea2d25112fc9bcb3052c 100644 +index 26e093243c70313b777483d9555fb1557443c9b8..92c360f02ef6be77c6c8eee3226947468194ec23 100644 --- a/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java +++ b/src/main/java/net/minecraft/world/level/chunk/HashMapPalette.java @@ -20,7 +20,7 @@ public class HashMapPalette implements Palette { @@ -32,7 +32,7 @@ index 26e093243c70313b777483d9555fb1557443c9b8..7b7b614e5c3a30be89eeea2d25112fc9 public HashMapPalette(IdMap idList, int indexBits, PaletteResize listener) { - this(idList, indexBits, listener, CrudeIncrementalIntIdentityHashBiMap.create(1 << indexBits)); -+ this(idList, indexBits, listener, CrudeIncrementalIntIdentityHashBiMap.create((1 << indexBits) + 1)); // Paper - Avoid unnecessary resize operation in CrudeIncrementalIntIdentityHashBiMap ++ this(idList, indexBits, listener, CrudeIncrementalIntIdentityHashBiMap.create((1 << indexBits) + 1)); // Paper - Perf: Avoid unnecessary resize operation in CrudeIncrementalIntIdentityHashBiMap } private HashMapPalette(IdMap idList, int indexBits, PaletteResize listener, CrudeIncrementalIntIdentityHashBiMap map) { @@ -42,7 +42,7 @@ index 26e093243c70313b777483d9555fb1557443c9b8..7b7b614e5c3a30be89eeea2d25112fc9 if (i == -1) { - i = this.values.add(object); - if (i >= 1 << this.bits) { -+ // Paper start - Avoid unnecessary resize operation in CrudeIncrementalIntIdentityHashBiMap and optimize ++ // Paper start - Perf: Avoid unnecessary resize operation in CrudeIncrementalIntIdentityHashBiMap and optimize + // We use size() instead of the result from add(K) + // This avoids adding another object unnecessarily + // Without this change, + 2 would be required in the constructor @@ -51,7 +51,7 @@ index 26e093243c70313b777483d9555fb1557443c9b8..7b7b614e5c3a30be89eeea2d25112fc9 + } else { + i = this.values.add(object); } -+ // Paper end ++ // Paper end - Perf: Avoid unnecessary resize operation in CrudeIncrementalIntIdentityHashBiMap and optimize } return i; diff --git a/patches/server/0708-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0708-Allow-delegation-to-vanilla-chunk-gen.patch index d83e71ed4425..474a8bb6f3c5 100644 --- a/patches/server/0708-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0708-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8f61efe32500ebe47e13d96fd96df646adb3dd5b..36a620d44140edac72e20b83a2cee2860e09deec 100644 +index 8f61efe32500ebe47e13d96fd96df646adb3dd5b..9f9492f0f5bc9c39f4c0021956e3240a466f3085 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2459,6 +2459,88 @@ public final class CraftServer implements Server { return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters } -+ // Paper start ++ // Paper start - Allow delegation to vanilla chunk gen + private static final List VANILLA_GEN_STATUSES = List.of( + net.minecraft.world.level.chunk.ChunkStatus.EMPTY, + net.minecraft.world.level.chunk.ChunkStatus.STRUCTURE_STARTS, @@ -92,13 +92,13 @@ index 8f61efe32500ebe47e13d96fd96df646adb3dd5b..36a620d44140edac72e20b83a2cee286 + // hooray! + return data; + } -+ // Paper end ++ // Paper end - Allow delegation to vanilla chunk gen + @Override public BossBar createBossBar(String title, BarColor color, BarStyle style, BarFlag... flags) { return new CraftBossBar(title, color, style, flags); diff --git a/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java -index 03eb35d5c67f125c44cf46595c93d124ac7892b8..f9f5fd5087a2e335384aa18b226b1f8d8a6748ee 100644 +index 03eb35d5c67f125c44cf46595c93d124ac7892b8..44a010590e830fd238cf6fdda443e28b72022e66 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java @@ -23,7 +23,7 @@ import org.bukkit.material.MaterialData; @@ -106,7 +106,7 @@ index 03eb35d5c67f125c44cf46595c93d124ac7892b8..f9f5fd5087a2e335384aa18b226b1f8d private final int minHeight; private final int maxHeight; - private final LevelChunkSection[] sections; -+ private LevelChunkSection[] sections; // Paper ++ private LevelChunkSection[] sections; // Paper - Allow delegation to vanilla chunk gen private final Registry biomes; private Set tiles; private final Set lights = new HashSet<>(); @@ -115,13 +115,13 @@ index 03eb35d5c67f125c44cf46595c93d124ac7892b8..f9f5fd5087a2e335384aa18b226b1f8d } - Set getLights() { -+ public Set getLights() { // Paper ++ public Set getLights() { // Paper - Allow delegation to vanilla chunk gen return this.lights; } + -+ // Paper start ++ // Paper start - Allow delegation to vanilla chunk gen + public void setRawChunkData(LevelChunkSection[] sections) { + this.sections = sections; + } -+ // Paper end ++ // Paper end - Allow delegation to vanilla chunk gen } diff --git a/patches/server/0711-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0711-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch index c92ed9b70915..e5b19cc588cb 100644 --- a/patches/server/0711-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch +++ b/patches/server/0711-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix ChunkSnapshot#isSectionEmpty(int) and optimize diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index 6dc7e23e96aaffb912611a9dbd41459cb8489056..b6716f2b0037d12fb9956d7d1d0fab9b86cf4433 100644 +index 6dc7e23e96aaffb912611a9dbd41459cb8489056..fd702027e62eb38d51fb7c46ef268e9bb94e1e92 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java @@ -291,13 +291,17 @@ public class CraftChunk implements Chunk { @@ -20,14 +20,14 @@ index 6dc7e23e96aaffb912611a9dbd41459cb8489056..b6716f2b0037d12fb9956d7d1d0fab9b - data.put("block_states", ChunkSerializer.BLOCK_STATE_CODEC.encodeStart(NbtOps.INSTANCE, cs[i].getStates()).get().left().get()); - sectionBlockIDs[i] = ChunkSerializer.BLOCK_STATE_CODEC.parse(NbtOps.INSTANCE, data.getCompound("block_states")).get().left().get(); -+ // Paper start -+ sectionEmpty[i] = cs[i].hasOnlyAir(); // Paper - fix sectionEmpty array not being filled ++ // Paper start - Fix ChunkSnapshot#isSectionEmpty(int); and remove codec usage ++ sectionEmpty[i] = cs[i].hasOnlyAir(); // fix sectionEmpty array not being filled + if (!sectionEmpty[i]) { -+ sectionBlockIDs[i] = cs[i].getStates().copy(); // Paper - use copy instead of round tripping with codecs ++ sectionBlockIDs[i] = cs[i].getStates().copy(); // use copy instead of round tripping with codecs + } else { -+ sectionBlockIDs[i] = CraftChunk.emptyBlockIDs; // Paper - use cached instance for empty block sections ++ sectionBlockIDs[i] = CraftChunk.emptyBlockIDs; // use cached instance for empty block sections + } -+ // Paper end ++ // Paper end - Fix ChunkSnapshot#isSectionEmpty(int) LevelLightEngine lightengine = this.worldServer.getLightEngine(); DataLayer skyLightArray = lightengine.getLayerListener(LightLayer.SKY).getDataLayerData(SectionPos.of(this.x, chunk.getSectionYFromSectionIndex(i), this.z)); // SPIGOT-7498: Convert section index @@ -37,7 +37,7 @@ index 6dc7e23e96aaffb912611a9dbd41459cb8489056..b6716f2b0037d12fb9956d7d1d0fab9b if (biome != null) { - data.put("biomes", biomeCodec.encodeStart(NbtOps.INSTANCE, cs[i].getBiomes()).get().left().get()); - biome[i] = biomeCodec.parse(NbtOps.INSTANCE, data.getCompound("biomes")).get().left().get(); -+ biome[i] = ((PalettedContainer>) cs[i].getBiomes()).copy(); // Paper - use copy instead of round tripping with codecs ++ biome[i] = ((PalettedContainer>) cs[i].getBiomes()).copy(); // Paper - Perf: use copy instead of round tripping with codecs } } diff --git a/patches/server/0712-Add-more-Campfire-API.patch b/patches/server/0712-Add-more-Campfire-API.patch index 537d2a264f3f..c211e5932fc1 100644 --- a/patches/server/0712-Add-more-Campfire-API.patch +++ b/patches/server/0712-Add-more-Campfire-API.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add more Campfire API diff --git a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java -index f776289eea00bd741ad55bb9bc338dd2c05c8b39..18d3cb828f85e17ec27dbb5b33c6f17fff178a1d 100644 +index f776289eea00bd741ad55bb9bc338dd2c05c8b39..423550424e82ed74e0b38cbafd89649539cc1012 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java @@ -42,6 +42,7 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { public final int[] cookingProgress; public final int[] cookingTime; private final RecipeManager.CachedCheck quickCheck; -+ public final boolean[] stopCooking; // Paper ++ public final boolean[] stopCooking; // Paper - Add more Campfire API public CampfireBlockEntity(BlockPos pos, BlockState state) { super(BlockEntityType.CAMPFIRE, pos, state); @@ -20,7 +20,7 @@ index f776289eea00bd741ad55bb9bc338dd2c05c8b39..18d3cb828f85e17ec27dbb5b33c6f17f this.cookingProgress = new int[4]; this.cookingTime = new int[4]; this.quickCheck = RecipeManager.createCheck(RecipeType.CAMPFIRE_COOKING); -+ this.stopCooking = new boolean[4]; // Paper ++ this.stopCooking = new boolean[4]; // Paper - Add more Campfire API } public static void cookTick(Level world, BlockPos pos, BlockState state, CampfireBlockEntity campfire) { @@ -28,9 +28,9 @@ index f776289eea00bd741ad55bb9bc338dd2c05c8b39..18d3cb828f85e17ec27dbb5b33c6f17f if (!itemstack.isEmpty()) { flag = true; -+ if (!campfire.stopCooking[i]) { // Paper ++ if (!campfire.stopCooking[i]) { // Paper - Add more Campfire API int j = campfire.cookingProgress[i]++; -+ } // Paper ++ } // Paper - Add more Campfire API if (campfire.cookingProgress[i] >= campfire.cookingTime[i]) { SimpleContainer inventorysubcontainer = new SimpleContainer(new ItemStack[]{itemstack}); @@ -38,7 +38,7 @@ index f776289eea00bd741ad55bb9bc338dd2c05c8b39..18d3cb828f85e17ec27dbb5b33c6f17f System.arraycopy(aint, 0, this.cookingTime, 0, Math.min(this.cookingTime.length, aint.length)); } -+ // Paper start ++ // Paper start - Add more Campfire API + if (nbt.contains("Paper.StopCooking", org.bukkit.craftbukkit.util.CraftMagicNumbers.NBT.TAG_BYTE_ARRAY)) { + byte[] abyte = nbt.getByteArray("Paper.StopCooking"); + boolean[] cookingState = new boolean[4]; @@ -47,7 +47,7 @@ index f776289eea00bd741ad55bb9bc338dd2c05c8b39..18d3cb828f85e17ec27dbb5b33c6f17f + } + System.arraycopy(cookingState, 0, this.stopCooking, 0, Math.min(this.stopCooking.length, abyte.length)); + } -+ // Paper end ++ // Paper end - Add more Campfire API } @Override @@ -55,13 +55,13 @@ index f776289eea00bd741ad55bb9bc338dd2c05c8b39..18d3cb828f85e17ec27dbb5b33c6f17f ContainerHelper.saveAllItems(nbt, this.items, true); nbt.putIntArray("CookingTimes", this.cookingProgress); nbt.putIntArray("CookingTotalTimes", this.cookingTime); -+ // Paper start ++ // Paper start - Add more Campfire API + byte[] cookingState = new byte[4]; + for (int index = 0; index < cookingState.length; index++) { + cookingState[index] = (byte) (this.stopCooking[index] ? 1 : 0); + } + nbt.putByteArray("Paper.StopCooking", cookingState); -+ // Paper end ++ // Paper end - Add more Campfire API } @Override diff --git a/patches/server/0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch index e81396928387..118bc88750fe 100644 --- a/patches/server/0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch +++ b/patches/server/0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch @@ -8,7 +8,7 @@ This ensures at least a valid version of the chunk exists on disk, even if outdated 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 98c8b676fc5b2add44d6ddf5d32f85bc07ea22cb..84b2fd9db39e0cdf3e1cbe6444579f7ca839bc45 100644 +index 98c8b676fc5b2add44d6ddf5d32f85bc07ea22cb..83966430240d375e7618e13c75676d510a222c37 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 @@ -1003,6 +1003,9 @@ public class RegionFile implements AutoCloseable { @@ -41,13 +41,13 @@ index 98c8b676fc5b2add44d6ddf5d32f85bc07ea22cb..84b2fd9db39e0cdf3e1cbe6444579f7c + } + super.write(b, off, len); + } -+ // Paper end ++ // Paper end - don't write garbage data to disk if writing serialization fails + public void close() throws IOException { ByteBuffer bytebuffer = ByteBuffer.wrap(this.buf, 0, this.count); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index a2794ec3d846136da64b6888d846587499a5f635..6eaeb2db0da59611501f2b1a63b5b48816a0ba48 100644 +index a2794ec3d846136da64b6888d846587499a5f635..6bec4549fbcfb68a053300451e25babf8ff38e99 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -342,10 +342,17 @@ public class RegionFileStorage implements AutoCloseable { @@ -77,7 +77,7 @@ index a2794ec3d846136da64b6888d846587499a5f635..6eaeb2db0da59611501f2b1a63b5b488 - if (dataoutputstream != null) { - dataoutputstream.close(); - } -+ // Paper - move into try block to only write if successfully serialized ++ // Paper - don't write garbage data to disk if writing serialization fails; move into try block to only write if successfully serialized } // Paper start return; @@ -86,12 +86,12 @@ index a2794ec3d846136da64b6888d846587499a5f635..6eaeb2db0da59611501f2b1a63b5b488 } + -+ // Paper start ++ // Paper start - don't write garbage data to disk if writing serialization fails + public static final class RegionFileSizeException extends RuntimeException { + + public RegionFileSizeException(String message) { + super(message); + } + } -+ // Paper end ++ // Paper end - don't write garbage data to disk if writing serialization fails } diff --git a/patches/server/0714-Fix-tripwire-state-inconsistency.patch b/patches/server/0714-Fix-tripwire-state-inconsistency.patch index 4433ab45c4d7..93bece80f76b 100644 --- a/patches/server/0714-Fix-tripwire-state-inconsistency.patch +++ b/patches/server/0714-Fix-tripwire-state-inconsistency.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix tripwire state inconsistency This patch prevents updating and re-setting the tripwire when being removed in certain conditions diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java -index bbb7d1b03c78758d608e89129aacec151242831c..1a0c5fb62e80681604110e95c1ae7b3684c21946 100644 +index bbb7d1b03c78758d608e89129aacec151242831c..634a8d25fede36f848cf621bdada71eb4b32c67e 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java @@ -87,7 +87,7 @@ public class TripWireBlock extends Block { @@ -14,7 +14,7 @@ index bbb7d1b03c78758d608e89129aacec151242831c..1a0c5fb62e80681604110e95c1ae7b36 public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean moved) { if (!moved && !state.is(newState.getBlock())) { - this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true)); -+ this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix state inconsistency ++ this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix tripwire state inconsistency } } @@ -22,12 +22,12 @@ index bbb7d1b03c78758d608e89129aacec151242831c..1a0c5fb62e80681604110e95c1ae7b36 } private void updateSource(Level world, BlockPos pos, BlockState state) { -+ // Paper start - fix state inconsistency ++ // Paper start - fix tripwire state inconsistency + this.updateSource(world, pos, state, false); + } + + private void updateSource(Level world, BlockPos pos, BlockState state, boolean beingRemoved) { -+ // Paper end ++ // Paper end - fix tripwire state inconsistency Direction[] aenumdirection = new Direction[]{Direction.SOUTH, Direction.WEST}; int i = aenumdirection.length; int j = 0; @@ -36,12 +36,12 @@ index bbb7d1b03c78758d608e89129aacec151242831c..1a0c5fb62e80681604110e95c1ae7b36 if (iblockdata1.is(this.hook)) { if (iblockdata1.getValue(TripWireHookBlock.FACING) == enumdirection.getOpposite()) { - TripWireHookBlock.calculateState(world, blockposition1, iblockdata1, false, true, k, state); -+ TripWireHookBlock.calculateState(world, blockposition1, iblockdata1, false, true, k, state, beingRemoved); // Paper - fix state inconsistency ++ TripWireHookBlock.calculateState(world, blockposition1, iblockdata1, false, true, k, state, beingRemoved); // Paper - fix tripwire state inconsistency } } else if (iblockdata1.is((Block) this)) { ++k; diff --git a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java -index 02b62ac13d4968f80cb0ae3702755d0f1d95e692..a3cef4ac925d09ad8789a59b46df134cf25c282a 100644 +index 02b62ac13d4968f80cb0ae3702755d0f1d95e692..0f6ea0adb4b99d934e1a3fcb92562dffb2a45f63 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java @@ -118,7 +118,13 @@ public class TripWireHookBlock extends Block { @@ -50,12 +50,12 @@ index 02b62ac13d4968f80cb0ae3702755d0f1d95e692..a3cef4ac925d09ad8789a59b46df134c - public static void calculateState(Level world, BlockPos pos, BlockState state, boolean flag, boolean flag1, int i, @Nullable BlockState iblockdata1) { + public static void calculateState(Level world, BlockPos pos, BlockState state, boolean beingRemoved, boolean flag1, int i, @Nullable BlockState iblockdata1) { -+ // Paper start - fix tripwire inconsistency ++ // Paper start - fix tripwire state inconsistency + calculateState(world, pos, state, beingRemoved, flag1, i, iblockdata1, false); + } + + public static void calculateState(Level world, BlockPos pos, BlockState state, boolean beingRemoved, boolean flag1, int i, @Nullable BlockState iblockdata1, boolean tripWireBeingRemoved) { -+ // Paper end ++ // Paper end - fix tripwire state inconsistency Optional optional = state.getOptionalValue(TripWireHookBlock.FACING); if (optional.isPresent()) { @@ -64,7 +64,7 @@ index 02b62ac13d4968f80cb0ae3702755d0f1d95e692..a3cef4ac925d09ad8789a59b46df134c boolean flag3 = (Boolean) state.getOptionalValue(TripWireHookBlock.POWERED).orElse(false); Block block = state.getBlock(); - boolean flag4 = !flag; -+ boolean flag4 = !beingRemoved; // Paper ++ boolean flag4 = !beingRemoved; // Paper - fix tripwire state inconsistency boolean flag5 = false; int j = 0; BlockState[] aiblockdata = new BlockState[42]; @@ -72,7 +72,7 @@ index 02b62ac13d4968f80cb0ae3702755d0f1d95e692..a3cef4ac925d09ad8789a59b46df134c boolean flag7 = (Boolean) iblockdata2.getValue(TripWireBlock.POWERED); flag5 |= flag6 && flag7; -+ if (k != i || !tripWireBeingRemoved || !flag6) // Paper - don't update the tripwire again if being removed and not disarmed ++ if (k != i || !tripWireBeingRemoved || !flag6) // Paper - fix tripwire state inconsistency; don't update the tripwire again if being removed and not disarmed aiblockdata[k] = iblockdata2; if (k == i) { world.scheduleTick(pos, block, 10); @@ -81,7 +81,7 @@ index 02b62ac13d4968f80cb0ae3702755d0f1d95e692..a3cef4ac925d09ad8789a59b46df134c TripWireHookBlock.emitState(world, pos, flag4, flag5, flag2, flag3); - if (!flag) { -+ if (!beingRemoved) { // Paper ++ if (!beingRemoved) { // Paper - fix tripwire state inconsistency if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - validate world.setBlock(pos, (BlockState) iblockdata3.setValue(TripWireHookBlock.FACING, enumdirection), 3); if (flag1) { diff --git a/patches/server/0715-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0715-Forward-CraftEntity-in-teleport-command.patch index 0133abe04edf..ca6fe40d4194 100644 --- a/patches/server/0715-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0715-Forward-CraftEntity-in-teleport-command.patch @@ -5,20 +5,20 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 519e3f0e376198fb399819f4587ccf935b93ea1a..4ffd551e6ea540cff14eaba0e95ed2c7c0bca513 100644 +index 519e3f0e376198fb399819f4587ccf935b93ea1a..449601d6a8e89ae4f225407d7e00efedbe6eb6c9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3531,6 +3531,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void restoreFrom(Entity original) { -+ // Paper start ++ // Paper start - Forward CraftEntity in teleport command + CraftEntity bukkitEntity = original.bukkitEntity; + if (bukkitEntity != null) { + bukkitEntity.setHandle(this); + this.bukkitEntity = bukkitEntity; + } -+ // Paper end ++ // Paper end - Forward CraftEntity in teleport command CompoundTag nbttagcompound = original.saveWithoutId(new CompoundTag()); nbttagcompound.remove("Dimension"); @@ -30,7 +30,7 @@ index 519e3f0e376198fb399819f4587ccf935b93ea1a..4ffd551e6ea540cff14eaba0e95ed2c7 - this.getBukkitEntity().setHandle(entity); - entity.bukkitEntity = this.getBukkitEntity(); - // CraftBukkit end -+ // // CraftBukkit start - Forward the CraftEntity to the new entity // Paper - moved to Entity#restoreFrom ++ // // CraftBukkit start - Forward the CraftEntity to the new entity // Paper - Forward CraftEntity in teleport command; moved to Entity#restoreFrom + // this.getBukkitEntity().setHandle(entity); + // entity.bukkitEntity = this.getBukkitEntity(); + // // CraftBukkit end diff --git a/patches/server/0719-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0719-Fix-entity-type-tags-suggestions-in-selectors.patch index 225dce154f7c..5c935836f811 100644 --- a/patches/server/0719-Fix-entity-type-tags-suggestions-in-selectors.patch +++ b/patches/server/0719-Fix-entity-type-tags-suggestions-in-selectors.patch @@ -10,14 +10,14 @@ when if this was fixed on the client, that wouldn't be needed. Mojira Issue: https://bugs.mojang.com/browse/MC-235045 diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 79732086bc4cdbca8364d78eb60d68c758055966..82ca6267bca684a8f04ca37d40816686677a852a 100644 +index 79732086bc4cdbca8364d78eb60d68c758055966..e65d7980b7ebed60786bc31e2f8156fda3b59556 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -447,4 +447,20 @@ public class CommandSourceStack implements ExecutionCommandSource getSelectedEntities() { + if (io.papermc.paper.configuration.GlobalConfiguration.get().commands.fixTargetSelectorTagCompletion && this.source instanceof ServerPlayer player) { @@ -32,7 +32,7 @@ index 79732086bc4cdbca8364d78eb60d68c758055966..82ca6267bca684a8f04ca37d40816686 + } + return SharedSuggestionProvider.super.getSelectedEntities(); + } -+ // Paper end ++ // Paper end - tell clients to ask server for suggestions for EntityArguments } diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java index bc0f9bf88de8f79f8e2aa2261d5a8bdc9dd1f53a..c2bd7eea15437f3526da37ce1c8642084a26406b 100644 @@ -60,7 +60,7 @@ index bc0f9bf88de8f79f8e2aa2261d5a8bdc9dd1f53a..c2bd7eea15437f3526da37ce1c864208 } diff --git a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java -index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..a71726cee91fb406875a4540c9fb7c0ecf757294 100644 +index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..d93698fd814683d451a3c8e8bcbb9cd475c79515 100644 --- a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java @@ -128,7 +128,7 @@ public class EntityArgument implements ArgumentType { @@ -68,7 +68,7 @@ index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..a71726cee91fb406875a4540c9fb7c0e stringreader.setCursor(suggestionsbuilder.getStart()); - EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2)); -+ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2), true); // Paper ++ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2), true); // Paper - tell clients to ask server for suggestions for EntityArguments try { argumentparserselector.parse(); @@ -77,7 +77,7 @@ index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..a71726cee91fb406875a4540c9fb7c0e return argumentparserselector.fillSuggestions(suggestionsbuilder, (suggestionsbuilder1) -> { - Collection collection = icompletionprovider.getOnlinePlayerNames(); -+ // Paper start ++ // Paper start - tell clients to ask server for suggestions for EntityArguments + final Collection collection; + if (icompletionprovider instanceof CommandSourceStack commandSourceStack && commandSourceStack.getEntity() instanceof ServerPlayer sourcePlayer) { + collection = new java.util.ArrayList<>(); @@ -89,43 +89,43 @@ index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..a71726cee91fb406875a4540c9fb7c0e + } else { + collection = icompletionprovider.getOnlinePlayerNames(); + } -+ // Paper end ++ // Paper end - tell clients to ask server for suggestions for EntityArguments Iterable iterable = this.playersOnly ? collection : Iterables.concat(collection, icompletionprovider.getSelectedEntities()); SharedSuggestionProvider.suggest((Iterable) iterable, suggestionsbuilder1); diff --git a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java -index 3d897ec6920eff6176ddac9f0442a997b9ef14fd..489b2ba7d4ef9c52a60db0c7e3fdd36226f5672d 100644 +index 3d897ec6920eff6176ddac9f0442a997b9ef14fd..abaf1ea340c69c8bee80e64567b44b5ce66d5fa3 100644 --- a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java +++ b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java @@ -113,12 +113,19 @@ public class EntitySelectorParser { private boolean hasScores; private boolean hasAdvancements; private boolean usesSelectors; -+ public boolean parsingEntityArgumentSuggestions; // Paper - track when parsing EntityArgument suggestions ++ public boolean parsingEntityArgumentSuggestions; // Paper - tell clients to ask server for suggestions for EntityArguments public EntitySelectorParser(StringReader reader) { this(reader, true); } public EntitySelectorParser(StringReader reader, boolean atAllowed) { -+ // Paper start ++ // Paper start - tell clients to ask server for suggestions for EntityArguments + this(reader, atAllowed, false); + } + public EntitySelectorParser(StringReader reader, boolean atAllowed, boolean parsingEntityArgumentSuggestions) { + this.parsingEntityArgumentSuggestions = parsingEntityArgumentSuggestions; -+ // Paper end ++ // Paper end - tell clients to ask server for suggestions for EntityArguments this.distance = MinMaxBounds.Doubles.ANY; this.level = MinMaxBounds.Ints.ANY; this.rotX = WrappedMinMaxBounds.ANY; diff --git a/src/main/java/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java b/src/main/java/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java -index 7863833c9a761a2b9364ff572ec909ec5a4538c3..0b36bd0a02082e8ec0ebef537656547ee3f1d748 100644 +index 7863833c9a761a2b9364ff572ec909ec5a4538c3..36e26929306c04af7a44012fd7fc9902027e9ea2 100644 --- a/src/main/java/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java +++ b/src/main/java/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java @@ -69,6 +69,19 @@ public class EntitySelectorOptions { public static final DynamicCommandExceptionType ERROR_ENTITY_TYPE_INVALID = new DynamicCommandExceptionType((entity) -> { return Component.translatableEscape("argument.entity.options.type.invalid", entity); }); -+ // Paper start ++ // Paper start - tell clients to ask server for suggestions for EntityArguments + public static final DynamicCommandExceptionType ERROR_ENTITY_TAG_INVALID = new DynamicCommandExceptionType((object) -> { + return io.papermc.paper.adventure.PaperAdventure + .asVanilla(net.kyori.adventure.text.Component @@ -137,7 +137,7 @@ index 7863833c9a761a2b9364ff572ec909ec5a4538c3..0b36bd0a02082e8ec0ebef537656547e + ) + ); + }); -+ // Paper end ++ // Paper end - tell clients to ask server for suggestions for EntityArguments private static void register(String id, EntitySelectorOptions.Modifier handler, Predicate condition, Component description) { OPTIONS.put(id, new EntitySelectorOptions.Option(handler, condition, description)); @@ -145,12 +145,12 @@ index 7863833c9a761a2b9364ff572ec909ec5a4538c3..0b36bd0a02082e8ec0ebef537656547e if (reader.isTag()) { TagKey> tagKey = TagKey.create(Registries.ENTITY_TYPE, ResourceLocation.read(reader.getReader())); -+ // Paper start - throw error if invalid entity tag (only on suggestions to keep cmd success behavior) ++ // Paper start - tell clients to ask server for suggestions for EntityArguments; throw error if invalid entity tag (only on suggestions to keep cmd success behavior) + if (reader.parsingEntityArgumentSuggestions && io.papermc.paper.configuration.GlobalConfiguration.get().commands.fixTargetSelectorTagCompletion && net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.getTag(tagKey).isEmpty()) { + reader.getReader().setCursor(i); + throw ERROR_ENTITY_TAG_INVALID.createWithContext(reader.getReader(), tagKey); + } -+ // Paper end ++ // Paper end - tell clients to ask server for suggestions for EntityArguments reader.addPredicate((entity) -> { return entity.getType().is(tagKey) != bl; }); diff --git a/patches/server/0720-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0720-Configurable-max-block-light-for-monster-spawning.patch index c7f4c136fdce..deae03d87c9d 100644 --- a/patches/server/0720-Configurable-max-block-light-for-monster-spawning.patch +++ b/patches/server/0720-Configurable-max-block-light-for-monster-spawning.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable max block light for monster spawning diff --git a/src/main/java/net/minecraft/world/entity/monster/Monster.java b/src/main/java/net/minecraft/world/entity/monster/Monster.java -index 036d79baf372f4900681fee366bcd91c99474e5f..127a344f35e194fc7b1a0783c75291fab929fe19 100644 +index 036d79baf372f4900681fee366bcd91c99474e5f..fbca4d6bc84e8be359b989ef089469838f896910 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Monster.java +++ b/src/main/java/net/minecraft/world/entity/monster/Monster.java @@ -93,7 +93,7 @@ public abstract class Monster extends PathfinderMob implements Enemy { @@ -13,7 +13,7 @@ index 036d79baf372f4900681fee366bcd91c99474e5f..127a344f35e194fc7b1a0783c75291fa } else { DimensionType dimensionType = world.dimensionType(); - int i = dimensionType.monsterSpawnBlockLightLimit(); -+ int i = world.getLevel().paperConfig().entities.spawning.monsterSpawnMaxLightLevel.or(dimensionType.monsterSpawnBlockLightLimit()); // Paper ++ int i = world.getLevel().paperConfig().entities.spawning.monsterSpawnMaxLightLevel.or(dimensionType.monsterSpawnBlockLightLimit()); // Paper - Configurable max block light for monster spawning if (i < 15 && world.getBrightness(LightLayer.BLOCK, pos) > i) { return false; } else { diff --git a/patches/server/0721-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0721-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch index 8e2d63bd62a7..b1fd3d50795e 100644 --- a/patches/server/0721-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch +++ b/patches/server/0721-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch @@ -27,7 +27,7 @@ Co-authored-by: Zach Brown Co-authored-by: Madeline Miller diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -index cda90023ad662e8875365eac98ec69f476dcb42d..b9025fcc6a4db9533cdc42034c9e77323d0785fa 100644 +index cda90023ad662e8875365eac98ec69f476dcb42d..470495903a9f0f8b925ddc4fb3d8213c556fccd9 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java @@ -159,15 +159,15 @@ public class PistonBaseBlock extends DirectionalBlock { @@ -43,7 +43,7 @@ index cda90023ad662e8875365eac98ec69f476dcb42d..b9025fcc6a4db9533cdc42034c9e7732 - return; - } - } -+ // if (!this.isSticky) { // Paper - Move further down ++ // if (!this.isSticky) { // Paper - Fix sticky pistons and BlockPistonRetractEvent; Move further down + // org.bukkit.block.Block block = world.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ()); + // BlockPistonRetractEvent event = new BlockPistonRetractEvent(block, ImmutableList.of(), CraftBlock.notchToBlockFace(enumdirection)); + // world.getCraftServer().getPluginManager().callEvent(event); @@ -59,13 +59,13 @@ index cda90023ad662e8875365eac98ec69f476dcb42d..b9025fcc6a4db9533cdc42034c9e7732 BlockState iblockdata2 = (BlockState) ((BlockState) Blocks.MOVING_PISTON.defaultBlockState().setValue(MovingPistonBlock.FACING, enumdirection)).setValue(MovingPistonBlock.TYPE, this.isSticky ? PistonType.STICKY : PistonType.DEFAULT); -+ // Paper start - Move empty piston retract call to fix multiple event fires ++ // Paper start - Fix sticky pistons and BlockPistonRetractEvent; Move empty piston retract call to fix multiple event fires + if (!this.isSticky) { + if (!new BlockPistonRetractEvent(CraftBlock.at(world, pos), java.util.Collections.emptyList(), CraftBlock.notchToBlockFace(enumdirection)).callEvent()) { + return false; + } + } -+ // Paper end ++ // Paper end - Fix sticky pistons and BlockPistonRetractEvent world.setBlock(pos, iblockdata2, 20); world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); // Paper - diff on change world.blockUpdated(pos, iblockdata2.getBlock()); @@ -73,13 +73,13 @@ index cda90023ad662e8875365eac98ec69f476dcb42d..b9025fcc6a4db9533cdc42034c9e7732 if (type == 1 && !iblockdata3.isAir() && PistonBaseBlock.isPushable(iblockdata3, world, blockposition1, enumdirection.getOpposite(), false, enumdirection) && (iblockdata3.getPistonPushReaction() == PushReaction.NORMAL || iblockdata3.is(Blocks.PISTON) || iblockdata3.is(Blocks.STICKY_PISTON))) { this.moveBlocks(world, pos, enumdirection, false); } else { -+ // Paper start - fire BlockPistonRetractEvent for sticky pistons retracting nothing (air) ++ // Paper start - Fix sticky pistons and BlockPistonRetractEvent; fire BlockPistonRetractEvent for sticky pistons retracting nothing (air) + if (type == TRIGGER_CONTRACT && iblockdata2.isAir()) { + if (!new BlockPistonRetractEvent(CraftBlock.at(world, pos), java.util.Collections.emptyList(), CraftBlock.notchToBlockFace(enumdirection)).callEvent()) { + return false; + } + } -+ // Paper end ++ // Paper end - Fix sticky pistons and BlockPistonRetractEvent world.removeBlock(pos.relative(enumdirection), false); } } diff --git a/patches/server/0724-Fix-bees-aging-inside-hives.patch b/patches/server/0724-Fix-bees-aging-inside-hives.patch index 6adfc7fc049e..275679e1773b 100644 --- a/patches/server/0724-Fix-bees-aging-inside-hives.patch +++ b/patches/server/0724-Fix-bees-aging-inside-hives.patch @@ -7,7 +7,7 @@ Fixes bees incorrectly being aged up due to upstream's resetting the ticks inside hive on a failed release diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index 8c4fba5369e5e25f144291c43e086b7417b013aa..dfd364ac4b7551a13c4c6c100b5e62c0dfb10595 100644 +index 8c4fba5369e5e25f144291c43e086b7417b013aa..3ba04d615fae9748c144b3dc7e7442be2e5a659f 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java @@ -328,7 +328,7 @@ public class BeehiveBlockEntity extends BlockEntity { @@ -15,7 +15,7 @@ index 8c4fba5369e5e25f144291c43e086b7417b013aa..dfd364ac4b7551a13c4c6c100b5e62c0 for (Iterator iterator = bees.iterator(); iterator.hasNext(); ++tileentitybeehive_hivebee.ticksInHive) { tileentitybeehive_hivebee = (BeehiveBlockEntity.BeeData) iterator.next(); - if (tileentitybeehive_hivebee.ticksInHive > tileentitybeehive_hivebee.minOccupationTicks) { -+ if (tileentitybeehive_hivebee.exitTickCounter > tileentitybeehive_hivebee.minOccupationTicks) { // Paper - use exitTickCounter ++ if (tileentitybeehive_hivebee.exitTickCounter > tileentitybeehive_hivebee.minOccupationTicks) { // Paper - Fix bees aging inside hives; use exitTickCounter BeehiveBlockEntity.BeeReleaseStatus tileentitybeehive_releasestatus = tileentitybeehive_hivebee.entityData.getBoolean("HasNectar") ? BeehiveBlockEntity.BeeReleaseStatus.HONEY_DELIVERED : BeehiveBlockEntity.BeeReleaseStatus.BEE_RELEASED; if (BeehiveBlockEntity.releaseOccupant(world, pos, state, tileentitybeehive_hivebee, (List) null, tileentitybeehive_releasestatus, flowerPos)) { @@ -24,11 +24,11 @@ index 8c4fba5369e5e25f144291c43e086b7417b013aa..dfd364ac4b7551a13c4c6c100b5e62c0 // CraftBukkit start } else { - tileentitybeehive_hivebee.ticksInHive = tileentitybeehive_hivebee.minOccupationTicks / 2; // Not strictly Vanilla behaviour in cases where bees cannot spawn but still reasonable -+ tileentitybeehive_hivebee.exitTickCounter = tileentitybeehive_hivebee.minOccupationTicks / 2; // Not strictly Vanilla behaviour in cases where bees cannot spawn but still reasonable // Paper - use exitTickCounter to keep actual bee life ++ tileentitybeehive_hivebee.exitTickCounter = tileentitybeehive_hivebee.minOccupationTicks / 2; // Not strictly Vanilla behaviour in cases where bees cannot spawn but still reasonable // Paper - Fix bees aging inside hives; use exitTickCounter to keep actual bee life // CraftBukkit end } } -+ tileentitybeehive_hivebee.exitTickCounter++; // Paper ++ tileentitybeehive_hivebee.exitTickCounter++; // Paper - Fix bees aging inside hives } if (flag) { @@ -36,14 +36,14 @@ index 8c4fba5369e5e25f144291c43e086b7417b013aa..dfd364ac4b7551a13c4c6c100b5e62c0 final CompoundTag entityData; int ticksInHive; -+ int exitTickCounter; // Paper - separate counter for checking if bee should exit to reduce exit attempts ++ int exitTickCounter; // Paper - Fix bees aging inside hives; separate counter for checking if bee should exit to reduce exit attempts final int minOccupationTicks; BeeData(CompoundTag entityData, int ticksInHive, int minOccupationTicks) { BeehiveBlockEntity.removeIgnoredBeeTags(entityData); this.entityData = entityData; this.ticksInHive = ticksInHive; -+ this.exitTickCounter = ticksInHive; // Paper ++ this.exitTickCounter = ticksInHive; // Paper - Fix bees aging inside hives this.minOccupationTicks = minOccupationTicks; } } diff --git a/patches/server/0726-Validate-usernames.patch b/patches/server/0726-Validate-usernames.patch index f683c7e5ed98..0c5d204b6198 100644 --- a/patches/server/0726-Validate-usernames.patch +++ b/patches/server/0726-Validate-usernames.patch @@ -39,7 +39,7 @@ index 8f0d1e9e8a191a2049f3ad2d9b4ffdbd15c45d9f..1038bdb761c4b413cb92e08aa7ef634b } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index bce494bb7bc1ce20809ac7d355f04aa7aad78308..7a984f531d3ebb6e055f07227b2ef8247fb3a842 100644 +index bce494bb7bc1ce20809ac7d355f04aa7aad78308..6ab0c3116a4238a4c5369cc33452fed594149ea4 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -2340,9 +2340,23 @@ public abstract class Player extends LivingEntity { @@ -49,7 +49,7 @@ index bce494bb7bc1ce20809ac7d355f04aa7aad78308..7a984f531d3ebb6e055f07227b2ef824 - return name.length() > 16 ? false : name.chars().filter((i) -> { - return i <= 32 || i >= 127; - }).findAny().isEmpty(); -+ // Paper start ++ // Paper start - username validation overriding + if (name == null || name.isEmpty() || name.length() > 16) { + return false; + } @@ -65,7 +65,7 @@ index bce494bb7bc1ce20809ac7d355f04aa7aad78308..7a984f531d3ebb6e055f07227b2ef824 + } + + return true; -+ // Paper end ++ // Paper end - username validation overriding } public static float getPickRange(boolean creative) { diff --git a/patches/server/0727-Make-water-animal-spawn-height-configurable.patch b/patches/server/0727-Make-water-animal-spawn-height-configurable.patch index 697ffe061ed7..e523ed36f4e1 100644 --- a/patches/server/0727-Make-water-animal-spawn-height-configurable.patch +++ b/patches/server/0727-Make-water-animal-spawn-height-configurable.patch @@ -5,17 +5,17 @@ Subject: [PATCH] Make water animal spawn height configurable diff --git a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java -index 27624b080e025d943b9c99627568f7dd66165548..827912174ee08cd19249797d351887149b25c880 100644 +index 27624b080e025d943b9c99627568f7dd66165548..9b897cf53f4bb5d366e6ac88dbed93c59d8fe541 100644 --- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java +++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java @@ -73,6 +73,10 @@ public abstract class WaterAnimal extends PathfinderMob { public static boolean checkSurfaceWaterAnimalSpawnRules(EntityType type, LevelAccessor world, MobSpawnType reason, BlockPos pos, RandomSource random) { int i = world.getSeaLevel(); int j = i - 13; -+ // Paper start ++ // Paper start - Make water animal spawn height configurable + i = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.maximum.or(i); + j = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.minimum.or(j); -+ // Paper end ++ // Paper end - Make water animal spawn height configurable return pos.getY() >= j && pos.getY() <= i && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER); } } diff --git a/patches/server/0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index eba87186840c..32e655a2aee8 100644 --- a/patches/server/0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6873036e7d24a2b8e85ab7ae270eec63bd7e7b5b..ac4d96345c985284a1306055b164a74a483cb444 100644 +index 6873036e7d24a2b8e85ab7ae270eec63bd7e7b5b..70adb35d0f267666e44c61ac0578a12f107f65b7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -596,7 +596,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop players, ClientboundSetPlayerTeamPacket.Action operation) { + return new ClientboundSetPlayerTeamPacket(team.getName(), operation == ClientboundSetPlayerTeamPacket.Action.ADD ? 3 : 4, Optional.empty(), players); + } -+ // Paper end ++ // Paper end - Multiple Entries with Scoreboards + public ClientboundSetPlayerTeamPacket(FriendlyByteBuf buf) { this.name = buf.readUtf(); this.method = buf.readByte(); diff --git a/src/main/java/net/minecraft/server/ServerScoreboard.java b/src/main/java/net/minecraft/server/ServerScoreboard.java -index c4904b358fc2f493e6a9572a84b8110a927da208..5cc8173e845bf8d3414ac3347d25e1f6d0c65ce9 100644 +index c4904b358fc2f493e6a9572a84b8110a927da208..76d67d01388ecc1af6b43212e018edc678e84d72 100644 --- a/src/main/java/net/minecraft/server/ServerScoreboard.java +++ b/src/main/java/net/minecraft/server/ServerScoreboard.java @@ -104,6 +104,25 @@ public class ServerScoreboard extends Scoreboard { } } -+ // Paper start ++ // Paper start - Multiple Entries with Scoreboards + public boolean addPlayersToTeam(java.util.Collection players, PlayerTeam team) { + boolean anyAdded = false; + for (String playerName : players) { @@ -46,7 +46,7 @@ index c4904b358fc2f493e6a9572a84b8110a927da208..5cc8173e845bf8d3414ac3347d25e1f6 + return false; + } + } -+ // Paper end ++ // Paper end - Multiple Entries with Scoreboards + @Override public void removePlayerFromTeam(String scoreHolderName, PlayerTeam team) { @@ -55,7 +55,7 @@ index c4904b358fc2f493e6a9572a84b8110a927da208..5cc8173e845bf8d3414ac3347d25e1f6 this.setDirty(); } -+ // Paper start ++ // Paper start - Multiple Entries with Scoreboards + public void removePlayersFromTeam(java.util.Collection players, PlayerTeam team) { + for (String playerName : players) { + super.removePlayerFromTeam(playerName, team); @@ -64,20 +64,20 @@ index c4904b358fc2f493e6a9572a84b8110a927da208..5cc8173e845bf8d3414ac3347d25e1f6 + this.broadcastAll(ClientboundSetPlayerTeamPacket.createMultiplePlayerPacket(team, players, ClientboundSetPlayerTeamPacket.Action.REMOVE)); + this.setDirty(); + } -+ // Paper end ++ // Paper end - Multiple Entries with Scoreboards + @Override public void onObjectiveAdded(Objective objective) { super.onObjectiveAdded(objective); diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java -index 27219bf2f16aed64c78623d44c3cc84aa9f47065..fd86c1d43cccd036f60cb270b56fd33f95707720 100644 +index 27219bf2f16aed64c78623d44c3cc84aa9f47065..2b335c750ce5f9ccc2651a8701497ca9b8f46704 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java @@ -229,6 +229,21 @@ final class CraftTeam extends CraftScoreboardComponent implements Team { scoreboard.board.addPlayerToTeam(entry, this.team); } -+ // Paper start ++ // Paper start - Multiple Entries with Scoreboards + @Override + public void addEntities(java.util.Collection entities) throws IllegalStateException, IllegalArgumentException { + this.addEntries(entities.stream().map(entity -> ((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName()).toList()); @@ -90,7 +90,7 @@ index 27219bf2f16aed64c78623d44c3cc84aa9f47065..fd86c1d43cccd036f60cb270b56fd33f + + ((net.minecraft.server.ServerScoreboard) scoreboard.board).addPlayersToTeam(entries, this.team); + } -+ // Paper end ++ // Paper end - Multiple Entries with Scoreboards + @Override public boolean removePlayer(OfflinePlayer player) { @@ -99,7 +99,7 @@ index 27219bf2f16aed64c78623d44c3cc84aa9f47065..fd86c1d43cccd036f60cb270b56fd33f return true; } -+ // Paper start ++ // Paper start - Multiple Entries with Scoreboards + @Override + public boolean removeEntities(java.util.Collection entities) throws IllegalStateException, IllegalArgumentException { + return this.removeEntries(entities.stream().map(entity -> ((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle().getScoreboardName()).toList()); @@ -119,7 +119,7 @@ index 27219bf2f16aed64c78623d44c3cc84aa9f47065..fd86c1d43cccd036f60cb270b56fd33f + + return false; + } -+ // Paper end ++ // Paper end - Multiple Entries with Scoreboards + @Override public boolean hasPlayer(OfflinePlayer player) throws IllegalArgumentException, IllegalStateException { diff --git a/patches/server/0732-Reset-placed-block-on-exception.patch b/patches/server/0732-Reset-placed-block-on-exception.patch index 308089d693a4..cfe724425fad 100644 --- a/patches/server/0732-Reset-placed-block-on-exception.patch +++ b/patches/server/0732-Reset-placed-block-on-exception.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Reset placed block on exception diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index e68b7a1b03783e4f9de24c5ae8773fc359bd2d37..e581dc10f3c805f7f8b6e4c842092609e7e1a0f8 100644 +index e68b7a1b03783e4f9de24c5ae8773fc359bd2d37..daf093518f1daf598c858cfaf48357255a1fb0cf 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java @@ -80,6 +80,7 @@ public class BlockItem extends Item { if (this instanceof PlaceOnWaterBlockItem || this instanceof SolidBucketItem) { blockstate = org.bukkit.craftbukkit.block.CraftBlockStates.getBlockState(blockactioncontext1.getLevel(), blockactioncontext1.getClickedPos()); } -+ final org.bukkit.block.BlockState oldBlockstate = blockstate != null ? blockstate : org.bukkit.craftbukkit.block.CraftBlockStates.getBlockState(blockactioncontext1.getLevel(), blockactioncontext1.getClickedPos()); // Paper ++ final org.bukkit.block.BlockState oldBlockstate = blockstate != null ? blockstate : org.bukkit.craftbukkit.block.CraftBlockStates.getBlockState(blockactioncontext1.getLevel(), blockactioncontext1.getClickedPos()); // Paper - Reset placed block on exception // CraftBukkit end if (iblockdata == null) { @@ -20,7 +20,7 @@ index e68b7a1b03783e4f9de24c5ae8773fc359bd2d37..e581dc10f3c805f7f8b6e4c842092609 if (iblockdata1.is(iblockdata.getBlock())) { iblockdata1 = this.updateBlockStateFromTag(blockposition, world, itemstack, iblockdata1); -+ // Paper start - reset block on exception ++ // Paper start - Reset placed block on exception + try { this.updateCustomBlockEntityTag(blockposition, world, entityhuman, itemstack, iblockdata1); + } catch (Exception e) { @@ -32,7 +32,7 @@ index e68b7a1b03783e4f9de24c5ae8773fc359bd2d37..e581dc10f3c805f7f8b6e4c842092609 + } + throw e; // Rethrow exception if not placed by a player + } -+ // Paper end ++ // Paper end - Reset placed block on exception iblockdata1.getBlock().setPlacedBy(world, blockposition, iblockdata1, entityhuman, itemstack); // CraftBukkit start if (blockstate != null) { diff --git a/patches/server/0733-Add-configurable-height-for-slime-spawn.patch b/patches/server/0733-Add-configurable-height-for-slime-spawn.patch index c105ef61b0fa..0f64c618613a 100644 --- a/patches/server/0733-Add-configurable-height-for-slime-spawn.patch +++ b/patches/server/0733-Add-configurable-height-for-slime-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add configurable height for slime spawn diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index 37724831ba9db2d0fb2e7756816e0355bc760815..cd964e5cded6a74cb9dcf27b4134f944764062cd 100644 +index 37724831ba9db2d0fb2e7756816e0355bc760815..0ce75b221241b412fe7d8873bdc4a49370b6410b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java @@ -336,7 +336,11 @@ public class Slime extends Mob implements Enemy { @@ -17,7 +17,7 @@ index 37724831ba9db2d0fb2e7756816e0355bc760815..cd964e5cded6a74cb9dcf27b4134f944 + final double maxHeightSwamp = world.getMinecraftWorld().paperConfig().entities.spawning.slimeSpawnHeight.surfaceBiome.maximum; + final double minHeightSwamp = world.getMinecraftWorld().paperConfig().entities.spawning.slimeSpawnHeight.surfaceBiome.minimum; + if (world.getBiome(pos).is(BiomeTags.ALLOWS_SURFACE_SLIME_SPAWNS) && pos.getY() > minHeightSwamp && pos.getY() < maxHeightSwamp && random.nextFloat() < 0.5F && random.nextFloat() < world.getMoonBrightness() && world.getMaxLocalRawBrightness(pos) <= random.nextInt(8)) { -+ // Paper end ++ // Paper end - Replace rules for Height in Swamp Biome return checkMobSpawnRules(type, world, spawnReason, pos, random); } @@ -29,7 +29,7 @@ index 37724831ba9db2d0fb2e7756816e0355bc760815..cd964e5cded6a74cb9dcf27b4134f944 + // Paper start - Replace rules for Height in Slime Chunks + final double maxHeightSlimeChunk = world.getMinecraftWorld().paperConfig().entities.spawning.slimeSpawnHeight.slimeChunk.maximum; + if (random.nextInt(10) == 0 && flag && pos.getY() < maxHeightSlimeChunk) { -+ // Paper end ++ // Paper end - Replace rules for Height in Swamp Biome return checkMobSpawnRules(type, world, spawnReason, pos, random); } } diff --git a/patches/server/0734-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0734-Fix-xp-reward-for-baby-zombies.patch index ed685b8f6bbd..0ff008ba0ce7 100644 --- a/patches/server/0734-Fix-xp-reward-for-baby-zombies.patch +++ b/patches/server/0734-Fix-xp-reward-for-baby-zombies.patch @@ -9,7 +9,7 @@ so this resets it after each call to Zombie#getExperienceReward diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index b31f6b267693c409d58eee688a3b79a1cf14e391..753defa8f8b48d004a2a53b2fc322fd9c083d95e 100644 +index b31f6b267693c409d58eee688a3b79a1cf14e391..ab41bd0f1810207a83ed506d6d1aa0289508d09a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -175,11 +175,16 @@ public class Zombie extends Monster { @@ -22,11 +22,11 @@ index b31f6b267693c409d58eee688a3b79a1cf14e391..753defa8f8b48d004a2a53b2fc322fd9 } - return super.getExperienceReward(); -+ // Paper start - only change the XP reward for the calculations in the super method ++ // Paper start - store previous value to reset after calculating XP reward + int reward = super.getExperienceReward(); + this.xpReward = previousReward; + return reward; -+ // Paper end ++ // Paper end - store previous value to reset after calculating XP reward } @Override diff --git a/patches/server/0735-Multi-Block-Change-API-Implementation.patch b/patches/server/0735-Multi-Block-Change-API-Implementation.patch index 59ce227273bc..61988ad9d038 100644 --- a/patches/server/0735-Multi-Block-Change-API-Implementation.patch +++ b/patches/server/0735-Multi-Block-Change-API-Implementation.patch @@ -5,20 +5,20 @@ Subject: [PATCH] Multi Block Change API Implementation diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java -index f96d61bdeb556665d6e6e5023f9d77fd82204e89..e3f355c85eb7cc8c1683e3009502c10a5ed32daa 100644 +index f96d61bdeb556665d6e6e5023f9d77fd82204e89..ccdc2345465313991f065e1176b58fb7d5e8722f 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java @@ -59,6 +59,14 @@ public class ClientboundSectionBlocksUpdatePacket implements Packet blockChanges) { + this.sectionPos = sectionPos; + this.positions = blockChanges.keySet().toShortArray(); + this.states = blockChanges.values().toArray(new BlockState[0]); + } -+ // Paper end ++ // Paper end - Multi Block Change API + @Override public void write(FriendlyByteBuf buf) { diff --git a/patches/server/0736-Fix-NotePlayEvent.patch b/patches/server/0736-Fix-NotePlayEvent.patch index 5385ce97b22d..85437cdf1775 100644 --- a/patches/server/0736-Fix-NotePlayEvent.patch +++ b/patches/server/0736-Fix-NotePlayEvent.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix NotePlayEvent public org.bukkit.craftbukkit.block.data.CraftBlockData toNMS(Ljava/lang/Enum;Ljava/lang/Class;)Ljava/lang/Enum; diff --git a/src/main/java/net/minecraft/world/level/block/NoteBlock.java b/src/main/java/net/minecraft/world/level/block/NoteBlock.java -index 43fbdca9422b679c210bc556e2d48ad37babbe8b..f32334f9e0f13a227bef8ffb135dda82b2ec39f2 100644 +index 43fbdca9422b679c210bc556e2d48ad37babbe8b..92a24cf02f15f3ab893eb9a793770d9819e4f600 100644 --- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NoteBlock.java @@ -93,11 +93,12 @@ public class NoteBlock extends Block { @@ -23,7 +23,7 @@ index 43fbdca9422b679c210bc556e2d48ad37babbe8b..f32334f9e0f13a227bef8ffb135dda82 + // return; + // } // CraftBukkit end -+ // Paper - TODO any way to cancel the game event? ++ // Paper - move NotePlayEvent call to fix instrument/note changes; TODO any way to cancel the game event? world.blockEvent(pos, this, 0, 0); world.gameEvent(entity, GameEvent.NOTE_BLOCK_PLAY, pos); } @@ -34,12 +34,12 @@ index 43fbdca9422b679c210bc556e2d48ad37babbe8b..f32334f9e0f13a227bef8ffb135dda82 + // Paper start - move NotePlayEvent call to fix instrument/note changes + org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, pos, blockpropertyinstrument, state.getValue(NOTE)); + if (event.isCancelled()) return false; -+ // Paper end ++ // Paper end - move NotePlayEvent call to fix instrument/note changes float f; if (blockpropertyinstrument.isTunable()) { - int k = (Integer) state.getValue(NoteBlock.NOTE); -+ int k = event.getNote().getId(); // Paper ++ int k = event.getNote().getId(); // Paper - move NotePlayEvent call to fix instrument/note changes f = NoteBlock.getPitchFromNote(k); world.addParticle(ParticleTypes.NOTE, (double) pos.getX() + 0.5D, (double) pos.getY() + 1.2D, (double) pos.getZ() + 0.5D, (double) k / 24.0D, 0.0D, 0.0D); @@ -48,7 +48,7 @@ index 43fbdca9422b679c210bc556e2d48ad37babbe8b..f32334f9e0f13a227bef8ffb135dda82 holder = Holder.direct(SoundEvent.createVariableRangeEvent(minecraftkey)); } else { - holder = blockpropertyinstrument.getSoundEvent(); -+ holder = org.bukkit.craftbukkit.block.data.CraftBlockData.toNMS(event.getInstrument(), NoteBlockInstrument.class).getSoundEvent(); // Paper ++ holder = org.bukkit.craftbukkit.block.data.CraftBlockData.toNMS(event.getInstrument(), NoteBlockInstrument.class).getSoundEvent(); // Paper - move NotePlayEvent call to fix instrument/note changes } world.playSeededSound((Player) null, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, holder, SoundSource.RECORDS, 3.0F, f, world.random.nextLong()); diff --git a/patches/server/0738-Dolphin-API.patch b/patches/server/0738-Dolphin-API.patch deleted file mode 100644 index e971f873228a..000000000000 --- a/patches/server/0738-Dolphin-API.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> -Date: Tue, 7 Dec 2021 19:34:23 -0500 -Subject: [PATCH] Dolphin API - - -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java -index af432f9a1d255a56c31c3b97aeb4457d17f37e3e..f93f8f6509b12eb9b1e07c829278bb0822dd7988 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java -@@ -18,4 +18,36 @@ public class CraftDolphin extends CraftWaterMob implements Dolphin { - public String toString() { - return "CraftDolphin"; - } -+ -+ // Paper start - Missing Dolphin API -+ @Override -+ public int getMoistness() { -+ return this.getHandle().getMoistnessLevel(); -+ } -+ -+ @Override -+ public void setMoistness(int moistness) { -+ this.getHandle().setMoisntessLevel(moistness); -+ } -+ -+ @Override -+ public void setHasFish(boolean hasFish) { -+ this.getHandle().setGotFish(hasFish); -+ } -+ -+ @Override -+ public boolean hasFish() { -+ return this.getHandle().gotFish(); -+ } -+ -+ @Override -+ public org.bukkit.Location getTreasureLocation() { -+ return io.papermc.paper.util.MCUtil.toLocation(this.getHandle().level(), this.getHandle().getTreasurePos()); -+ } -+ -+ @Override -+ public void setTreasureLocation(org.bukkit.Location location) { -+ this.getHandle().setTreasurePos(io.papermc.paper.util.MCUtil.toBlockPosition(location)); -+ } -+ // Paper end - Missing Dolphin API - } diff --git a/patches/server/0739-More-PotionEffectType-API.patch b/patches/server/0738-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0739-More-PotionEffectType-API.patch rename to patches/server/0738-More-PotionEffectType-API.patch diff --git a/patches/server/0740-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0739-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 84% rename from patches/server/0740-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0739-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch index 42598199e143..1b86e32b63fe 100644 --- a/patches/server/0740-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch +++ b/patches/server/0739-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use a CHM for StructureTemplate.Pallete cache fixes a CME due to this collection being shared across threads diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java -index 75ba5a7fe002b5834f12e3a1159c15e6166c9c28..b2139e5f7a051cdea2a7ed6e98ba8be7ce1113cc 100644 +index 75ba5a7fe002b5834f12e3a1159c15e6166c9c28..be8aab51a1b92a3a0cc94976975fc3aabc46f0b4 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java @@ -852,7 +852,7 @@ public class StructureTemplate { @@ -14,7 +14,7 @@ index 75ba5a7fe002b5834f12e3a1159c15e6166c9c28..b2139e5f7a051cdea2a7ed6e98ba8be7 private final List blocks; - private final Map> cache = Maps.newHashMap(); -+ private final Map> cache = Maps.newConcurrentMap(); // Paper ++ private final Map> cache = Maps.newConcurrentMap(); // Paper - Fix CME due to this collection being shared across threads Palette(List infos) { this.blocks = infos; diff --git a/patches/server/0741-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0740-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 98% rename from patches/server/0741-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0740-API-for-creating-command-sender-which-forwards-feedb.patch index f0732e3393d5..f7945e579521 100644 --- a/patches/server/0741-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/server/0740-API-for-creating-command-sender-which-forwards-feedb.patch @@ -122,7 +122,7 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e2308ca7bd457ada1e5c0535d10e97affef65612..3aa82952cfd0415288b434a6462123504e4dab99 100644 +index 6e1ebb33413018d0cd2275eb76a7bdfbf8542da1..d53abb73ab61151a14baef8ce5cdf40ff8709238 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2110,6 +2110,13 @@ public final class CraftServer implements Server { diff --git a/patches/server/0742-Add-missing-structure-set-seed-configs.patch b/patches/server/0741-Add-missing-structure-set-seed-configs.patch similarity index 88% rename from patches/server/0742-Add-missing-structure-set-seed-configs.patch rename to patches/server/0741-Add-missing-structure-set-seed-configs.patch index ec96884a3b95..9df945ead5c2 100644 --- a/patches/server/0742-Add-missing-structure-set-seed-configs.patch +++ b/patches/server/0741-Add-missing-structure-set-seed-configs.patch @@ -20,7 +20,7 @@ seeds/salts to the frequency reducer which has a similar effect. Co-authored-by: William Blake Galbreath diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 996a49e1ccf827edf28ca92e947014517b7dad6e..e9239f90e59d1429fc7a2618e0fd3b8a57633b87 100644 +index 996a49e1ccf827edf28ca92e947014517b7dad6e..65db282b32dfec041579812f9b7275d8c0b99a0d 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -568,7 +568,7 @@ public abstract class ChunkGenerator { @@ -28,19 +28,19 @@ index 996a49e1ccf827edf28ca92e947014517b7dad6e..e9239f90e59d1429fc7a2618e0fd3b8a } - if (structureplacement.isStructureChunk(placementCalculator, chunkcoordintpair.x, chunkcoordintpair.z)) { -+ if (structureplacement.isStructureChunk(placementCalculator, chunkcoordintpair.x, chunkcoordintpair.z, structureplacement instanceof net.minecraft.world.level.chunk.ChunkGeneratorStructureState.KeyedRandomSpreadStructurePlacement keyed ? keyed.key : null)) { // Paper - add missing structure set configs ++ if (structureplacement.isStructureChunk(placementCalculator, chunkcoordintpair.x, chunkcoordintpair.z, structureplacement instanceof net.minecraft.world.level.chunk.ChunkGeneratorStructureState.KeyedRandomSpreadStructurePlacement keyed ? keyed.key : null)) { // Paper - Add missing structure set seed configs if (list.size() == 1) { this.tryGenerateStructure((StructureSet.StructureSelectionEntry) list.get(0), structureAccessor, registryManager, randomstate, structureTemplateManager, placementCalculator.getLevelSeed(), chunk, chunkcoordintpair, sectionposition); } else { diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java -index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..5d3d9164a05efbecc59ace6175f449f34d8d3ccd 100644 +index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..798e22fb4d685b5845ebf687e8004e94f13a9751 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java @@ -50,13 +50,14 @@ public class ChunkGeneratorStructureState { private final Map>> ringPositions = new Object2ObjectArrayMap(); private boolean hasGeneratedPositions; private final List> possibleStructureSets; -+ public final SpigotWorldConfig conf; // Paper ++ public final SpigotWorldConfig conf; // Paper - Add missing structure set seed configs public static ChunkGeneratorStructureState createForFlat(RandomState randomstate, long i, BiomeSource worldchunkmanager, Stream> stream, SpigotWorldConfig conf) { // Spigot List> list = stream.filter((holder) -> { @@ -59,7 +59,7 @@ index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..5d3d9164a05efbecc59ace6175f449f3 - return new ChunkGeneratorStructureState(randomstate, worldchunkmanager, i, i, ChunkGeneratorStructureState.injectSpigot(list, conf)); // Spigot + return new ChunkGeneratorStructureState(randomstate, worldchunkmanager, i, i, ChunkGeneratorStructureState.injectSpigot(list, conf), conf); // Spigot } -+ // Paper start - horrible hack because spigot creates a ton of direct Holders which lose track of the identifying key ++ // Paper start - Add missing structure set seed configs; horrible hack because spigot creates a ton of direct Holders which lose track of the identifying key + public static final class KeyedRandomSpreadStructurePlacement extends RandomSpreadStructurePlacement { + public final net.minecraft.resources.ResourceKey key; + public KeyedRandomSpreadStructurePlacement(net.minecraft.resources.ResourceKey key, net.minecraft.core.Vec3i locateOffset, FrequencyReductionMethod frequencyReductionMethod, float frequency, int salt, java.util.Optional exclusionZone, int spacing, int separation, net.minecraft.world.level.levelgen.structure.placement.RandomSpreadType spreadType) { @@ -67,15 +67,15 @@ index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..5d3d9164a05efbecc59ace6175f449f3 + this.key = key; + } + } -+ // Paper end ++ // Paper end - Add missing structure set seed configs // Spigot start private static List> injectSpigot(List> list, SpigotWorldConfig conf) { return list.stream().map((holder) -> { StructureSet structureset = holder.value(); - if (structureset.placement() instanceof RandomSpreadStructurePlacement randomConfig) { -+ final Holder newHolder; // Paper -+ if (structureset.placement() instanceof RandomSpreadStructurePlacement randomConfig && holder.unwrapKey().orElseThrow().location().getNamespace().equals(net.minecraft.resources.ResourceLocation.DEFAULT_NAMESPACE)) { // Paper - check namespace cause datapacks could add structure sets with the same path ++ final Holder newHolder; // Paper - Add missing structure set seed configs ++ if (structureset.placement() instanceof RandomSpreadStructurePlacement randomConfig && holder.unwrapKey().orElseThrow().location().getNamespace().equals(net.minecraft.resources.ResourceLocation.DEFAULT_NAMESPACE)) { // Paper - Add missing structure set seed configs; check namespace cause datapacks could add structure sets with the same path String name = holder.unwrapKey().orElseThrow().location().getPath(); int seed = randomConfig.salt; @@ -83,7 +83,7 @@ index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..5d3d9164a05efbecc59ace6175f449f3 case "villages": seed = conf.villageSeed; break; -+ // Paper start ++ // Paper start - Add missing structure set seed configs + case "ancient_cities": + seed = conf.ancientCitySeed; + break; @@ -93,11 +93,11 @@ index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..5d3d9164a05efbecc59ace6175f449f3 + case "trial_chambers": + seed = conf.trialChambersSeed; + break; -+ // Paper end ++ // Paper end - Add missing structure set seed configs } - structureset = new StructureSet(structureset.structures(), new RandomSpreadStructurePlacement(randomConfig.locateOffset, randomConfig.frequencyReductionMethod, randomConfig.frequency, seed, randomConfig.exclusionZone, randomConfig.spacing(), randomConfig.separation(), randomConfig.spreadType())); -+ // Paper start ++ // Paper start - Add missing structure set seed configs + structureset = new StructureSet(structureset.structures(), new KeyedRandomSpreadStructurePlacement(holder.unwrapKey().orElseThrow(), randomConfig.locateOffset, randomConfig.frequencyReductionMethod, randomConfig.frequency, seed, randomConfig.exclusionZone, randomConfig.spacing(), randomConfig.separation(), randomConfig.spreadType())); + newHolder = Holder.direct(structureset); // I really wish we didn't have to do this here + } else { @@ -105,7 +105,7 @@ index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..5d3d9164a05efbecc59ace6175f449f3 } - return Holder.direct(structureset); + return newHolder; -+ // Paper end ++ // Paper end - Add missing structure set seed configs }).collect(Collectors.toUnmodifiableList()); } // Spigot end @@ -114,13 +114,13 @@ index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..5d3d9164a05efbecc59ace6175f449f3 } - private ChunkGeneratorStructureState(RandomState noiseConfig, BiomeSource biomeSource, long structureSeed, long concentricRingSeed, List> structureSets) { -+ private ChunkGeneratorStructureState(RandomState noiseConfig, BiomeSource biomeSource, long structureSeed, long concentricRingSeed, List> structureSets, SpigotWorldConfig conf) { // Paper ++ private ChunkGeneratorStructureState(RandomState noiseConfig, BiomeSource biomeSource, long structureSeed, long concentricRingSeed, List> structureSets, SpigotWorldConfig conf) { // Paper - Add missing structure set seed configs this.randomState = noiseConfig; this.levelSeed = structureSeed; this.biomeSource = biomeSource; this.concentricRingsSeed = concentricRingSeed; this.possibleStructureSets = structureSets; -+ this.conf = conf; // Paper ++ this.conf = conf; // Paper - Add missing structure set seed configs } public List> possibleStructureSets() { @@ -128,13 +128,13 @@ index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..5d3d9164a05efbecc59ace6175f449f3 HolderSet holderset = placement.preferredBiomes(); RandomSource randomsource = RandomSource.create(); -+ // Paper start ++ // Paper start - Add missing structure set seed configs + if (this.conf.strongholdSeed != null && structureSetEntry.is(net.minecraft.world.level.levelgen.structure.BuiltinStructureSets.STRONGHOLDS)) { + randomsource.setSeed(this.conf.strongholdSeed); + } else { -+ // Paper end ++ // Paper end - Add missing structure set seed configs randomsource.setSeed(this.concentricRingsSeed); -+ } // Paper ++ } // Paper - Add missing structure set seed configs double d0 = randomsource.nextDouble() * 3.141592653589793D * 2.0D; int l = 0; int i1 = 0; @@ -143,21 +143,21 @@ index a310bfbf0d08187375ea17f4b04b276a0b7d0b9f..5d3d9164a05efbecc59ace6175f449f3 for (int l = centerChunkX - chunkCount; l <= centerChunkX + chunkCount; ++l) { for (int i1 = centerChunkZ - chunkCount; i1 <= centerChunkZ + chunkCount; ++i1) { - if (structureplacement.isStructureChunk(this, l, i1)) { -+ if (structureplacement.isStructureChunk(this, l, i1, structureplacement instanceof KeyedRandomSpreadStructurePlacement keyed ? keyed.key : null)) { // Paper - add missing structure set configs ++ if (structureplacement.isStructureChunk(this, l, i1, structureplacement instanceof KeyedRandomSpreadStructurePlacement keyed ? keyed.key : null)) { // Paper - Add missing structure set seed configs return true; } } diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java b/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java -index 65dcb14241baadb2c9f8f16919d7b562198ad9c3..594a2dd3b1d4c29c969d1992b8e93795da00e682 100644 +index 65dcb14241baadb2c9f8f16919d7b562198ad9c3..02e58161a0f5915084230831ee03050d762b67d2 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/placement/StructurePlacement.java @@ -59,10 +59,24 @@ public abstract class StructurePlacement { return this.exclusionZone; } -+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper ++ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - Add missing structure set seed configs public boolean isStructureChunk(ChunkGeneratorStructureState calculator, int chunkX, int chunkZ) { -+ // Paper start - add missing structure set configs ++ // Paper start - Add missing structure set seed configs + return this.isStructureChunk(calculator, chunkX, chunkZ, null); + } + public boolean isStructureChunk(ChunkGeneratorStructureState calculator, int chunkX, int chunkZ, @org.jetbrains.annotations.Nullable net.minecraft.resources.ResourceKey structureSetKey) { @@ -169,11 +169,11 @@ index 65dcb14241baadb2c9f8f16919d7b562198ad9c3..594a2dd3b1d4c29c969d1992b8e93795 + saltOverride = calculator.conf.buriedTreasureSeed; + } + } -+ // Paper end ++ // Paper end - Add missing structure set seed configs if (!this.isPlacementChunk(calculator, chunkX, chunkZ)) { return false; - } else if (this.frequency < 1.0F && !this.frequencyReductionMethod.shouldGenerate(calculator.getLevelSeed(), this.salt, chunkX, chunkZ, this.frequency)) { -+ } else if (this.frequency < 1.0F && !this.frequencyReductionMethod.shouldGenerate(calculator.getLevelSeed(), this.salt, chunkX, chunkZ, this.frequency, saltOverride)) { // Paper ++ } else if (this.frequency < 1.0F && !this.frequencyReductionMethod.shouldGenerate(calculator.getLevelSeed(), this.salt, chunkX, chunkZ, this.frequency, saltOverride)) { // Paper - Add missing structure set seed configs return false; } else { return !this.exclusionZone.isPresent() || !this.exclusionZone.get().isPlacementForbidden(calculator, chunkX, chunkZ); @@ -182,35 +182,35 @@ index 65dcb14241baadb2c9f8f16919d7b562198ad9c3..594a2dd3b1d4c29c969d1992b8e93795 public abstract StructurePlacementType type(); - private static boolean probabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency) { -+ private static boolean probabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - ignore here ++ private static boolean probabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - Add missing structure set seed configs; ignore here WorldgenRandom worldgenRandom = new WorldgenRandom(new LegacyRandomSource(0L)); worldgenRandom.setLargeFeatureWithSalt(seed, salt, chunkX, chunkZ); return worldgenRandom.nextFloat() < frequency; } - private static boolean legacyProbabilityReducerWithDouble(long seed, int salt, int chunkX, int chunkZ, float frequency) { -+ private static boolean legacyProbabilityReducerWithDouble(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper ++ private static boolean legacyProbabilityReducerWithDouble(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - Add missing structure set seed configs WorldgenRandom worldgenRandom = new WorldgenRandom(new LegacyRandomSource(0L)); -+ if (saltOverride == null) { // Paper ++ if (saltOverride == null) { // Paper - Add missing structure set seed configs worldgenRandom.setLargeFeatureSeed(seed, chunkX, chunkZ); -+ // Paper start ++ // Paper start - Add missing structure set seed configs + } else { + worldgenRandom.setLargeFeatureWithSalt(seed, chunkX, chunkZ, saltOverride); + } -+ // Paper end ++ // Paper end - Add missing structure set seed configs return worldgenRandom.nextDouble() < (double)frequency; } - private static boolean legacyArbitrarySaltProbabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency) { -+ private static boolean legacyArbitrarySaltProbabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper ++ private static boolean legacyArbitrarySaltProbabilityReducer(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - Add missing structure set seed configs WorldgenRandom worldgenRandom = new WorldgenRandom(new LegacyRandomSource(0L)); - worldgenRandom.setLargeFeatureWithSalt(seed, chunkX, chunkZ, 10387320); -+ worldgenRandom.setLargeFeatureWithSalt(seed, chunkX, chunkZ, saltOverride != null ? saltOverride : HIGHLY_ARBITRARY_RANDOM_SALT); // Paper ++ worldgenRandom.setLargeFeatureWithSalt(seed, chunkX, chunkZ, saltOverride != null ? saltOverride : HIGHLY_ARBITRARY_RANDOM_SALT); // Paper - Add missing structure set seed configs return worldgenRandom.nextFloat() < frequency; } - private static boolean legacyPillagerOutpostReducer(long seed, int salt, int chunkX, int chunkZ, float frequency) { -+ private static boolean legacyPillagerOutpostReducer(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - ignore here ++ private static boolean legacyPillagerOutpostReducer(long seed, int salt, int chunkX, int chunkZ, float frequency, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - Add missing structure set seed configs; ignore here int i = chunkX >> 4; int j = chunkZ >> 4; WorldgenRandom worldgenRandom = new WorldgenRandom(new LegacyRandomSource(0L)); @@ -219,7 +219,7 @@ index 65dcb14241baadb2c9f8f16919d7b562198ad9c3..594a2dd3b1d4c29c969d1992b8e93795 @FunctionalInterface public interface FrequencyReducer { - boolean shouldGenerate(long seed, int salt, int chunkX, int chunkZ, float chance); -+ boolean shouldGenerate(long seed, int salt, int chunkX, int chunkZ, float chance, @org.jetbrains.annotations.Nullable Integer saltOverride); // Paper ++ boolean shouldGenerate(long seed, int salt, int chunkX, int chunkZ, float chance, @org.jetbrains.annotations.Nullable Integer saltOverride); // Paper - Add missing structure set seed configs } public static enum FrequencyReductionMethod implements StringRepresentable { @@ -229,8 +229,8 @@ index 65dcb14241baadb2c9f8f16919d7b562198ad9c3..594a2dd3b1d4c29c969d1992b8e93795 - public boolean shouldGenerate(long seed, int salt, int chunkX, int chunkZ, float chance) { - return this.reducer.shouldGenerate(seed, salt, chunkX, chunkZ, chance); -+ public boolean shouldGenerate(long seed, int salt, int chunkX, int chunkZ, float chance, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper -+ return this.reducer.shouldGenerate(seed, salt, chunkX, chunkZ, chance, saltOverride); // Paper ++ public boolean shouldGenerate(long seed, int salt, int chunkX, int chunkZ, float chance, @org.jetbrains.annotations.Nullable Integer saltOverride) { // Paper - Add missing structure set seed configs ++ return this.reducer.shouldGenerate(seed, salt, chunkX, chunkZ, chance, saltOverride); // Paper - Add missing structure set seed configs } @Override diff --git a/patches/server/0743-Implement-regenerateChunk.patch b/patches/server/0742-Implement-regenerateChunk.patch similarity index 97% rename from patches/server/0743-Implement-regenerateChunk.patch rename to patches/server/0742-Implement-regenerateChunk.patch index 18db0bc2db5b..d8d6665de1bc 100644 --- a/patches/server/0743-Implement-regenerateChunk.patch +++ b/patches/server/0742-Implement-regenerateChunk.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement regenerateChunk Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 999602a6c11257b05083bcc2d36b6e30b2b129f4..d41cd3075a5f59f271ddee7009a3ed26a34d3041 100644 +index 999602a6c11257b05083bcc2d36b6e30b2b129f4..cf43f2e7bfc465c1c804daa5d86a6ce1808d8041 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -144,6 +144,7 @@ import org.jetbrains.annotations.NotNull; @@ -91,7 +91,7 @@ index 999602a6c11257b05083bcc2d36b6e30b2b129f4..d41cd3075a5f59f271ddee7009a3ed26 + } + serverChunkCache.getLightEngine().relight(chunksToRelight, pos -> {}, relit -> {}); + return true; -+ // Paper end ++ // Paper end - implement regenerate chunk method } @Override diff --git a/patches/server/0744-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0743-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 86% rename from patches/server/0744-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0743-Fix-cancelled-powdered-snow-bucket-placement.patch index 1a1186ac1ae0..6e39a914869c 100644 --- a/patches/server/0744-Fix-cancelled-powdered-snow-bucket-placement.patch +++ b/patches/server/0743-Fix-cancelled-powdered-snow-bucket-placement.patch @@ -8,7 +8,7 @@ snow bucket didn't revert grass that became snowy because of the placement. diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index fdcec8496abda362e611b42ef054ea730f47f408..8cf7d514803fd953e068d3436bfd4e50fb4b0da0 100644 +index fdcec8496abda362e611b42ef054ea730f47f408..8c839dc64b0a0271d7b19ee03a8144cf6224d4b2 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -379,7 +379,7 @@ public final class ItemStack { @@ -16,7 +16,7 @@ index fdcec8496abda362e611b42ef054ea730f47f408..8cf7d514803fd953e068d3436bfd4e50 ServerLevel world = (ServerLevel) context.getLevel(); - if (!(item instanceof BucketItem || item instanceof SolidBucketItem)) { // if not bucket -+ if (!(item instanceof BucketItem/* || item instanceof SolidBucketItem*/)) { // if not bucket // Paper - capture block states for snow buckets ++ if (!(item instanceof BucketItem/* || item instanceof SolidBucketItem*/)) { // if not bucket // Paper - Fix cancelled powdered snow bucket placement world.captureBlockStates = true; // special case bonemeal if (item == Items.BONE_MEAL) { @@ -25,7 +25,7 @@ index fdcec8496abda362e611b42ef054ea730f47f408..8cf7d514803fd953e068d3436bfd4e50 if (blocks.size() > 1) { placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockMultiPlaceEvent(world, entityhuman, enumhand, blocks, blockposition.getX(), blockposition.getY(), blockposition.getZ()); - } else if (blocks.size() == 1) { -+ } else if (blocks.size() == 1 && item != Items.POWDER_SNOW_BUCKET) { // Paper - don't call event twice for snow buckets ++ } else if (blocks.size() == 1 && item != Items.POWDER_SNOW_BUCKET) { // Paper - Fix cancelled powdered snow bucket placement placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(world, entityhuman, enumhand, blocks.get(0), blockposition.getX(), blockposition.getY(), blockposition.getZ()); } diff --git a/patches/server/0745-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0744-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 92% rename from patches/server/0745-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0744-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 16d4dac83030..37d1c7f45556 100644 --- a/patches/server/0745-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0744-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 3aa82952cfd0415288b434a6462123504e4dab99..64224332b7e037330e87d96445a56afebb1e81a2 100644 +index d53abb73ab61151a14baef8ce5cdf40ff8709238..bafdb900286c9015840aa74e8a84493bdaf8eaa2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2287,6 +2287,8 @@ public final class CraftServer implements Server { diff --git a/patches/server/0746-Add-GameEvent-tags.patch b/patches/server/0745-Add-GameEvent-tags.patch similarity index 97% rename from patches/server/0746-Add-GameEvent-tags.patch rename to patches/server/0745-Add-GameEvent-tags.patch index 40a6ea8d4ac6..1f3ec77e51ce 100644 --- a/patches/server/0746-Add-GameEvent-tags.patch +++ b/patches/server/0745-Add-GameEvent-tags.patch @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 64224332b7e037330e87d96445a56afebb1e81a2..a3eaa58625d96df5beb00b69b0c7c902f63865db 100644 +index bafdb900286c9015840aa74e8a84493bdaf8eaa2..d96450c5b83bf785cdb24ca1c2653e642be9302d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2708,6 +2708,15 @@ public final class CraftServer implements Server { @@ -74,8 +74,8 @@ index 64224332b7e037330e87d96445a56afebb1e81a2..a3eaa58625d96df5beb00b69b0c7c902 + Preconditions.checkArgument(clazz == org.bukkit.GameEvent.class); + net.minecraft.core.Registry gameEvents = net.minecraft.core.registries.BuiltInRegistries.GAME_EVENT; + return gameEvents.getTags().map(pair -> (org.bukkit.Tag) new io.papermc.paper.CraftGameEventTag(gameEvents, pair.getFirst())).collect(ImmutableList.toImmutableList()); -+ // Paper end + } ++ // Paper end default -> throw new IllegalArgumentException(); } } diff --git a/patches/server/0747-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0746-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 94% rename from patches/server/0747-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0746-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index 17138e0a469d..eeec58006bb5 100644 --- a/patches/server/0747-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0746-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,7 +9,7 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ac4d96345c985284a1306055b164a74a483cb444..396cbd1a0a94e913475bad65faf8e871b7105895 100644 +index 70adb35d0f267666e44c61ac0578a12f107f65b7..5799fd10f6dc95057f0ac9bf69931ee56ff62d90 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1416,6 +1416,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, BlockPos pos, BlockState state) { super(type, pos, state); @@ -47,17 +47,17 @@ index a6c226da995eecc323d69a3eff1f8d202410e069..5d3740875de337e24fdba28305f61e96 this.vibrationData = listener; }); } -+ // Paper start ++ // Paper start - Configurable sculk sensor listener range + if (nbt.contains(PAPER_LISTENER_RANGE_NBT_KEY)) { + this.rangeOverride = nbt.getInt(PAPER_LISTENER_RANGE_NBT_KEY); + } else { + this.rangeOverride = null; + } -+ // Paper end ++ // Paper end - Configurable sculk sensor listener range } -+ protected static final String PAPER_LISTENER_RANGE_NBT_KEY = "Paper.ListenerRange"; // Paper ++ protected static final String PAPER_LISTENER_RANGE_NBT_KEY = "Paper.ListenerRange"; // Paper - Configurable sculk sensor listener range @Override protected void saveAdditional(CompoundTag nbt) { super.saveAdditional(nbt); @@ -65,13 +65,13 @@ index a6c226da995eecc323d69a3eff1f8d202410e069..5d3740875de337e24fdba28305f61e96 VibrationSystem.Data.CODEC.encodeStart(NbtOps.INSTANCE, this.vibrationData).resultOrPartial(LOGGER::error).ifPresent((listenerNbt) -> { nbt.put("listener", listenerNbt); }); -+ this.saveRangeOverride(nbt); // Paper ++ this.saveRangeOverride(nbt); // Paper - Configurable sculk sensor listener range + } -+ // Paper start ++ // Paper start - Configurable sculk sensor listener range + protected void saveRangeOverride(CompoundTag nbt) { + if (this.rangeOverride != null && this.rangeOverride != VibrationUser.LISTENER_RANGE) nbt.putInt(PAPER_LISTENER_RANGE_NBT_KEY, this.rangeOverride); // only save if it's different from the default } -+ // Paper end ++ // Paper end - Configurable sculk sensor listener range @Override public VibrationSystem.Data getVibrationData() { @@ -79,7 +79,7 @@ index a6c226da995eecc323d69a3eff1f8d202410e069..5d3740875de337e24fdba28305f61e96 @Override public int getListenerRadius() { -+ if (SculkSensorBlockEntity.this.rangeOverride != null) return SculkSensorBlockEntity.this.rangeOverride; // Paper ++ if (SculkSensorBlockEntity.this.rangeOverride != null) return SculkSensorBlockEntity.this.rangeOverride; // Paper - Configurable sculk sensor listener range return 8; } diff --git a/patches/server/0750-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0749-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/server/0750-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0749-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0750-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 96% rename from patches/server/0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0750-Option-to-have-default-CustomSpawners-in-custom-worl.patch index f2c1454094fc..b3629f58b95e 100644 --- a/patches/server/0751-Option-to-have-default-CustomSpawners-in-custom-worl.patch +++ b/patches/server/0750-Option-to-have-default-CustomSpawners-in-custom-worl.patch @@ -10,7 +10,7 @@ just looking at the LevelStem key, look at the DimensionType key which is one level below that. Defaults to off to keep vanilla behavior. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 396cbd1a0a94e913475bad65faf8e871b7105895..41fae37f785191fa3314fcc5724c9b31ef953816 100644 +index 5799fd10f6dc95057f0ac9bf69931ee56ff62d90..27ef9e114f2951c0874e853ba866c6e27fc531cc 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -623,7 +623,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d41cd3075a5f59f271ddee7009a3ed26a34d3041..3cf9aafb3ce75c0340605fa29c2a55ff237b843b 100644 +index cf43f2e7bfc465c1c804daa5d86a6ce1808d8041..5e31aa4383113b586b9ce440f121cb65045bf70a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1453,7 +1453,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0757-Expose-furnace-minecart-push-values.patch b/patches/server/0756-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0757-Expose-furnace-minecart-push-values.patch rename to patches/server/0756-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0758-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0757-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0758-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0757-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0759-More-Projectile-API.patch b/patches/server/0758-More-Projectile-API.patch similarity index 100% rename from patches/server/0759-More-Projectile-API.patch rename to patches/server/0758-More-Projectile-API.patch diff --git a/patches/server/0760-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0759-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0760-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0759-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0760-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 94% rename from patches/server/0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0760-Don-t-allow-vehicle-movement-from-players-while-tele.patch index 4a00876bf832..cfd207604f3e 100644 --- a/patches/server/0761-Don-t-allow-vehicle-movement-from-players-while-tele.patch +++ b/patches/server/0760-Don-t-allow-vehicle-movement-from-players-while-tele.patch @@ -7,7 +7,7 @@ Bring the vehicle move packet behavior in line with the regular player move packet. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 554b0cd2f61005b57e1b0f68730354a8753fb0b7..33356ffc634549560adc24c40e58152e5482949d 100644 +index 027bc0d89b7ade602565ed3717e87c56de7265e1..a7e02f7b294795d7cac6df3a95658cf63f2fdb38 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -465,6 +465,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0762-Implement-getComputedBiome-API.patch b/patches/server/0761-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0762-Implement-getComputedBiome-API.patch rename to patches/server/0761-Implement-getComputedBiome-API.patch diff --git a/patches/server/0763-Make-some-itemstacks-nonnull.patch b/patches/server/0762-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0763-Make-some-itemstacks-nonnull.patch rename to patches/server/0762-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0764-Implement-enchantWithLevels-API.patch b/patches/server/0763-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0764-Implement-enchantWithLevels-API.patch rename to patches/server/0763-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0765-Fix-saving-in-unloadWorld.patch b/patches/server/0764-Fix-saving-in-unloadWorld.patch similarity index 90% rename from patches/server/0765-Fix-saving-in-unloadWorld.patch rename to patches/server/0764-Fix-saving-in-unloadWorld.patch index af839d74d62c..a3f7632753ab 100644 --- a/patches/server/0765-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0764-Fix-saving-in-unloadWorld.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix saving in unloadWorld Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ead1161020064ceea6d04857de5bdbce460fd59e..8802d28c71d3ebc74690ad5c53c7dd77436e1a9f 100644 +index 21c9bfd9d9fd76e2a1b41001ea0f726d7b784309..7da2853b86a1e3cd7d1e3c985448727e04542f4f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1336,7 +1336,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0766-Buffer-OOB-setBlock-calls.patch b/patches/server/0765-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0766-Buffer-OOB-setBlock-calls.patch rename to patches/server/0765-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0767-Add-TameableDeathMessageEvent.patch b/patches/server/0766-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0767-Add-TameableDeathMessageEvent.patch rename to patches/server/0766-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0767-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 100% rename from patches/server/0768-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0767-Fix-new-block-data-for-EntityChangeBlockEvent.patch diff --git a/patches/server/0769-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0768-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 100% rename from patches/server/0769-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0768-fix-player-loottables-running-when-mob-loot-gamerule.patch diff --git a/patches/server/0770-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0769-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 91% rename from patches/server/0770-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0769-Ensure-entity-passenger-world-matches-ridden-entity.patch index 0bbddb289cab..ab2ce748ed92 100644 --- a/patches/server/0770-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0769-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2f0c5e1b4b2dfb8006447c296170e80a97b36562..cc90b96ae9709c7f3997dc1524bcf0feeb00c864 100644 +index e10b08802cb170a0af8a3cfc01e730e32e6ca0f3..ca145fee91adb669665c881f150a339a773b28cb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2847,7 +2847,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0771-Guard-against-invalid-entity-positions.patch b/patches/server/0770-Guard-against-invalid-entity-positions.patch similarity index 95% rename from patches/server/0771-Guard-against-invalid-entity-positions.patch rename to patches/server/0770-Guard-against-invalid-entity-positions.patch index 7549ffa9b585..d108dbce734e 100644 --- a/patches/server/0771-Guard-against-invalid-entity-positions.patch +++ b/patches/server/0770-Guard-against-invalid-entity-positions.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Guard against invalid entity positions Anything not finite should be blocked and logged diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cc90b96ae9709c7f3997dc1524bcf0feeb00c864..ab409aae677a5ed4ca50113e88397c4543373df8 100644 +index ca145fee91adb669665c881f150a339a773b28cb..64a1dc13690568baba60dddc6f66a1700f618e51 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4539,11 +4539,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0772-cache-resource-keys.patch b/patches/server/0771-cache-resource-keys.patch similarity index 100% rename from patches/server/0772-cache-resource-keys.patch rename to patches/server/0771-cache-resource-keys.patch diff --git a/patches/server/0773-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0772-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/server/0773-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0772-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/server/0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0773-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 96% rename from patches/server/0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0773-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch index 07010b5d6382..aa5772fe8a9e 100644 --- a/patches/server/0774-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch +++ b/patches/server/0773-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch @@ -9,7 +9,7 @@ is not a WorldGenRegion, we can bypass the deadlock entirely. See https://bugs.mojang.com/browse/MC-246262 diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java -index b2139e5f7a051cdea2a7ed6e98ba8be7ce1113cc..0540929bd362b266295ea6770ce2fb351b614463 100644 +index be8aab51a1b92a3a0cc94976975fc3aabc46f0b4..ae8a42261337bf736d0cc1bbe18da2b773417ca4 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java @@ -279,7 +279,11 @@ public class StructureTemplate { diff --git a/patches/server/0775-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0774-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 100% rename from patches/server/0775-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0774-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch diff --git a/patches/server/0776-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0775-Prevent-tile-entity-copies-loading-chunks.patch similarity index 94% rename from patches/server/0776-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0775-Prevent-tile-entity-copies-loading-chunks.patch index 6cd473f04743..9c908631e8bb 100644 --- a/patches/server/0776-Prevent-tile-entity-copies-loading-chunks.patch +++ b/patches/server/0775-Prevent-tile-entity-copies-loading-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent tile entity copies loading chunks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 33356ffc634549560adc24c40e58152e5482949d..5a2f8806366e3a423e77e882dbc9068ad64ff538 100644 +index a7e02f7b294795d7cac6df3a95658cf63f2fdb38..ecd3ce99d01bc2367ffadaab41f237c4f3516a28 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3197,7 +3197,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0777-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0776-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 100% rename from patches/server/0777-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0776-Use-username-instead-of-display-name-in-PlayerList-g.patch diff --git a/patches/server/0778-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0777-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 98% rename from patches/server/0778-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0777-Pass-ServerLevel-for-gamerule-callbacks.patch index a223a694572e..451e4e5624d6 100644 --- a/patches/server/0778-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0777-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -18,7 +18,7 @@ index e69a0121c8644d831cbb8bc1c95d9219d1c343da..7d33ce8d68ca55e0fd37d2d4e3c78a43 if (dedicatedserverproperties.enableQuery) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5a2f8806366e3a423e77e882dbc9068ad64ff538..9ce9390291988e3110e228e83e0754e5529de800 100644 +index ecd3ce99d01bc2367ffadaab41f237c4f3516a28..93ac02c915455f688062f9ef721f2cea7f91a09d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2761,7 +2761,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -167,7 +167,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..dd03426943dd380cefe12afe3e63c318 this.onChanged(server); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 3cf9aafb3ce75c0340605fa29c2a55ff237b843b..c517d8e2daac5675425783a50ae04b5d2a07e37a 100644 +index 5e31aa4383113b586b9ce440f121cb65045bf70a..b504bdd02041f4fe7a7ed4ed9d8563cd9b338125 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2038,7 +2038,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0779-Expand-PlayerItemDamageEvent.patch b/patches/server/0778-Expand-PlayerItemDamageEvent.patch similarity index 93% rename from patches/server/0779-Expand-PlayerItemDamageEvent.patch rename to patches/server/0778-Expand-PlayerItemDamageEvent.patch index bf237c94c31e..8074d7b6ff44 100644 --- a/patches/server/0779-Expand-PlayerItemDamageEvent.patch +++ b/patches/server/0778-Expand-PlayerItemDamageEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand PlayerItemDamageEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 8cf7d514803fd953e068d3436bfd4e50fb4b0da0..6b38e515a77df7fb06b41fbedaa1090b1cac78fb 100644 +index 8c839dc64b0a0271d7b19ee03a8144cf6224d4b2..66bb955bb338e4d1689daace28ebe295b6884554 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -638,10 +638,11 @@ public final class ItemStack { diff --git a/patches/server/0780-WorldCreator-keepSpawnLoaded.patch b/patches/server/0779-WorldCreator-keepSpawnLoaded.patch similarity index 94% rename from patches/server/0780-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0779-WorldCreator-keepSpawnLoaded.patch index efa63d431ed8..07e956fd9e28 100644 --- a/patches/server/0780-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0779-WorldCreator-keepSpawnLoaded.patch @@ -5,7 +5,7 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8802d28c71d3ebc74690ad5c53c7dd77436e1a9f..170da30329f2a0d65a05c0d5c7a4170405df6aef 100644 +index 7da2853b86a1e3cd7d1e3c985448727e04542f4f..b76bb0142cbe64064f7835807974414c879f57a5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1283,7 +1283,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0781-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0780-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0781-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0780-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0782-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0781-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/server/0782-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0781-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/server/0783-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0782-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0783-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0782-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0784-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0783-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0784-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0783-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0785-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0784-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0785-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0784-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0786-Add-PlayerStopUsingItemEvent.patch b/patches/server/0785-Add-PlayerStopUsingItemEvent.patch similarity index 91% rename from patches/server/0786-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0785-Add-PlayerStopUsingItemEvent.patch index d434d58cbaa7..24390d47ae28 100644 --- a/patches/server/0786-Add-PlayerStopUsingItemEvent.patch +++ b/patches/server/0785-Add-PlayerStopUsingItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e27b19cf56b269c426cb6ddf81513497b70c676f..546777ad955d0d317d129882cfeab68935708228 100644 +index 31ee19d5740d74418cb4d42d0ce78a0a7cb51e0a..e94084b1f0fb04625cb94ca07825b8f78c0c9012 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4025,6 +4025,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0787-Don-t-tick-markers.patch b/patches/server/0786-Don-t-tick-markers.patch similarity index 100% rename from patches/server/0787-Don-t-tick-markers.patch rename to patches/server/0786-Don-t-tick-markers.patch diff --git a/patches/server/0788-Expand-FallingBlock-API.patch b/patches/server/0787-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0788-Expand-FallingBlock-API.patch rename to patches/server/0787-Expand-FallingBlock-API.patch diff --git a/patches/server/0789-Do-not-accept-invalid-client-settings.patch b/patches/server/0788-Do-not-accept-invalid-client-settings.patch similarity index 94% rename from patches/server/0789-Do-not-accept-invalid-client-settings.patch rename to patches/server/0788-Do-not-accept-invalid-client-settings.patch index 03d00dc89bfc..9f9a9c534cd9 100644 --- a/patches/server/0789-Do-not-accept-invalid-client-settings.patch +++ b/patches/server/0788-Do-not-accept-invalid-client-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Do not accept invalid client settings diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9ce9390291988e3110e228e83e0754e5529de800..aba06bae97f021d9f62441eb662539a0bbc815ef 100644 +index 93ac02c915455f688062f9ef721f2cea7f91a09d..b97394a20d1308f254252adfd10eff018c594d6e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3321,6 +3321,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0790-Add-support-for-Proxy-Protocol.patch b/patches/server/0789-Add-support-for-Proxy-Protocol.patch similarity index 100% rename from patches/server/0790-Add-support-for-Proxy-Protocol.patch rename to patches/server/0789-Add-support-for-Proxy-Protocol.patch diff --git a/patches/server/0791-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0790-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0791-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0790-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0792-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0791-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0792-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0791-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0793-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0792-Sanitize-sent-BlockEntity-NBT.patch similarity index 100% rename from patches/server/0793-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0792-Sanitize-sent-BlockEntity-NBT.patch diff --git a/patches/server/0794-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0793-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0794-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0793-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0795-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0794-Prevent-entity-loading-causing-async-lookups.patch similarity index 97% rename from patches/server/0795-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0794-Prevent-entity-loading-causing-async-lookups.patch index 3b6df7cf92bd..76c416d51850 100644 --- a/patches/server/0795-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0794-Prevent-entity-loading-causing-async-lookups.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ab409aae677a5ed4ca50113e88397c4543373df8..e5f4388d531910c238fcd809a1c5d92267858c53 100644 +index 64a1dc13690568baba60dddc6f66a1700f618e51..d5cc94219976e3832617210e0aa3b773f3eca432 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -803,6 +803,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0796-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0795-Throw-exception-on-world-create-while-being-ticked.patch similarity index 95% rename from patches/server/0796-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0795-Throw-exception-on-world-create-while-being-ticked.patch index 1a5562e13cbb..bcb16c777ca6 100644 --- a/patches/server/0796-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0795-Throw-exception-on-world-create-while-being-ticked.patch @@ -7,7 +7,7 @@ There are no plans to support creating worlds while worlds are being ticked themselvess. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e5dccd330cbf3301a60b65453e87a4005f954716..b9df0b37b5568758c04ee41e258395c3a2d493c1 100644 +index c1ef4dd08b39adf3ab8dbfe286c6378f3efbf54e..4d4617635c9dc0d011cf8fc57ece6e2300573bad 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -310,6 +310,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 546777ad955d0d317d129882cfeab68935708228..cc774a2803051a5d981ecece2e9a992f09850ecf 100644 +index e94084b1f0fb04625cb94ca07825b8f78c0c9012..bbe594f57b7d11d6947b6b313901020c06324bdc 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3056,37 +3056,15 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0825-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0824-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0825-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0824-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0826-Missing-eating-regain-reason.patch b/patches/server/0825-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0826-Missing-eating-regain-reason.patch rename to patches/server/0825-Missing-eating-regain-reason.patch diff --git a/patches/server/0827-Missing-effect-cause.patch b/patches/server/0826-Missing-effect-cause.patch similarity index 100% rename from patches/server/0827-Missing-effect-cause.patch rename to patches/server/0826-Missing-effect-cause.patch diff --git a/patches/server/0828-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0827-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0828-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0827-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0829-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0828-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0829-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0828-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0830-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0829-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0830-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0829-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0831-Configurable-chat-thread-limit.patch b/patches/server/0830-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0831-Configurable-chat-thread-limit.patch rename to patches/server/0830-Configurable-chat-thread-limit.patch diff --git a/patches/server/0832-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0831-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0832-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0831-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0833-fix-Jigsaw-block-kicking-user.patch b/patches/server/0832-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0833-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0832-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0834-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0833-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0834-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0833-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0835-Add-getDrops-to-BlockState.patch b/patches/server/0834-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0835-Add-getDrops-to-BlockState.patch rename to patches/server/0834-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0835-Fix-a-bunch-of-vanilla-bugs.patch similarity index 99% rename from patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0835-Fix-a-bunch-of-vanilla-bugs.patch index b3138f3a622b..52b5ed123b39 100644 --- a/patches/server/0836-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0835-Fix-a-bunch-of-vanilla-bugs.patch @@ -320,7 +320,7 @@ index bd0165d9ca52665a52fbd9678ed895bf4bed2fe7..8fe5a4ccf474c094b8081828c93e8973 public void equipArmor(Player player, ItemStack stack) { diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index 63ef00eb6f93a471de1e9c2355099d9dd3a71dd9..6849429c3577f36eb699083375824ae5633f8d06 100644 +index 3ff1ae5ae705cd8d5c8529e1dcdd5ccaed908830..0c952bfc01b367a297e81768cab436c5474830f1 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java @@ -282,6 +282,14 @@ public class ItemFrame extends HangingEntity { diff --git a/patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0836-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 100% rename from patches/server/0837-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0836-Remove-unnecessary-onTrackingStart-during-navigation.patch diff --git a/patches/server/0838-Fix-custom-piglin-loved-items.patch b/patches/server/0837-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0838-Fix-custom-piglin-loved-items.patch rename to patches/server/0837-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0839-EntityPickupItemEvent-fixes.patch b/patches/server/0838-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0839-EntityPickupItemEvent-fixes.patch rename to patches/server/0838-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0839-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 100% rename from patches/server/0840-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0839-Correctly-handle-interactions-with-items-on-cooldown.patch diff --git a/patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0840-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/server/0841-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0840-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/server/0842-Elder-Guardian-appearance-API.patch b/patches/server/0841-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/server/0842-Elder-Guardian-appearance-API.patch rename to patches/server/0841-Elder-Guardian-appearance-API.patch diff --git a/patches/server/0843-Allow-changing-bed-s-occupied-property.patch b/patches/server/0842-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0843-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0842-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0844-Add-entity-knockback-API.patch b/patches/server/0843-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0844-Add-entity-knockback-API.patch rename to patches/server/0843-Add-entity-knockback-API.patch diff --git a/patches/server/0845-Detect-headless-JREs.patch b/patches/server/0844-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0845-Detect-headless-JREs.patch rename to patches/server/0844-Detect-headless-JREs.patch diff --git a/patches/server/0846-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0845-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0846-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0845-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0847-optimize-dirt-and-snow-spreading.patch b/patches/server/0846-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/0847-optimize-dirt-and-snow-spreading.patch rename to patches/server/0846-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/0848-Add-EntityToggleSitEvent.patch b/patches/server/0847-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0848-Add-EntityToggleSitEvent.patch rename to patches/server/0847-Add-EntityToggleSitEvent.patch diff --git a/patches/server/0849-Add-fire-tick-delay-option.patch b/patches/server/0848-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0849-Add-fire-tick-delay-option.patch rename to patches/server/0848-Add-fire-tick-delay-option.patch diff --git a/patches/server/0850-Add-Moving-Piston-API.patch b/patches/server/0849-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0850-Add-Moving-Piston-API.patch rename to patches/server/0849-Add-Moving-Piston-API.patch diff --git a/patches/server/0851-Ignore-impossible-spawn-tick.patch b/patches/server/0850-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0851-Ignore-impossible-spawn-tick.patch rename to patches/server/0850-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0852-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0851-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0852-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0851-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0853-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0852-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 84% rename from patches/server/0853-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0852-Fix-EntityArgument-suggestion-permissions-to-align-w.patch index eaa1ba226b72..e8c896203a87 100644 --- a/patches/server/0853-Fix-EntityArgument-suggestion-permissions-to-align-w.patch +++ b/patches/server/0852-Fix-EntityArgument-suggestion-permissions-to-align-w.patch @@ -9,19 +9,19 @@ suggestions, which especially matters when we force suggestions to the server for this type diff --git a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java -index a71726cee91fb406875a4540c9fb7c0ecf757294..21dfc4812414f6a75fdae7082c0fce788ebe095b 100644 +index d93698fd814683d451a3c8e8bcbb9cd475c79515..8d79cfa371546996ef65f94232c1d344e7c590ec 100644 --- a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java @@ -128,7 +128,12 @@ public class EntityArgument implements ArgumentType { StringReader stringreader = new StringReader(suggestionsbuilder.getInput()); stringreader.setCursor(suggestionsbuilder.getStart()); -- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2), true); // Paper +- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2), true); // Paper - tell clients to ask server for suggestions for EntityArguments + // Paper start - Fix EntityArgument suggestion permissions + final boolean permission = object instanceof CommandSourceStack stack + ? stack.bypassSelectorPermissions || stack.hasPermission(2, "minecraft.command.selector") + : icompletionprovider.hasPermission(2); -+ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission, true); // Paper ++ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission, true); // Paper - tell clients to ask server for suggestions for EntityArguments + // Paper end - Fix EntityArgument suggestion permissions try { diff --git a/patches/server/0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0853-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 95% rename from patches/server/0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0853-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index acec1447d5d8..2964a3d3c61c 100644 --- a/patches/server/0854-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0853-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2de97b71c16094c39a0d1eb2880d1b036b44b710..9634ff08d14500216835423376dbc86f3b0ffd35 100644 +index 3f9954e1bae36c8dedfb99a5b753d873ce521226..e83604aa0ae5760ba7335dac53b340406f4ffddf 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3378,6 +3378,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0855-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0854-Add-PrePlayerAttackEntityEvent.patch similarity index 93% rename from patches/server/0855-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0854-Add-PrePlayerAttackEntityEvent.patch index e6a55af2d204..50dfe7026fd4 100644 --- a/patches/server/0855-Add-PrePlayerAttackEntityEvent.patch +++ b/patches/server/0854-Add-PrePlayerAttackEntityEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PrePlayerAttackEntityEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 7a984f531d3ebb6e055f07227b2ef8247fb3a842..13a443d942aee77f18e91669b207d8ec54bbaf65 100644 +index 6ab0c3116a4238a4c5369cc33452fed594149ea4..26930e84a4b089ffdf504ae244701f9c039234d4 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1240,8 +1240,17 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0856-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0855-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0856-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0855-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0857-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0856-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 94% rename from patches/server/0857-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0856-fix-MC-252817-green-map-markers-do-not-disappear.patch index daccd2b9ff99..6f61c8836249 100644 --- a/patches/server/0857-fix-MC-252817-green-map-markers-do-not-disappear.patch +++ b/patches/server/0856-fix-MC-252817-green-map-markers-do-not-disappear.patch @@ -6,7 +6,7 @@ Subject: [PATCH] fix MC-252817 (green map markers do not disappear). this bug is caused by the fact that the itemframe's item is set to empty before the green marker is requested to be removed. this is fixed by getting the mapid from this method's parameter, rather than the air block now stored by the item frame. diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index 6849429c3577f36eb699083375824ae5633f8d06..1ef8bbade35c3e18f53808a9955ba69750b7d30f 100644 +index 0c952bfc01b367a297e81768cab436c5474830f1..0cd57021cf308984415ca670f727ae61ac343fe7 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java @@ -291,7 +291,9 @@ public class ItemFrame extends HangingEntity { diff --git a/patches/server/0858-Add-Player-Warden-Warning-API.patch b/patches/server/0857-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/server/0858-Add-Player-Warden-Warning-API.patch rename to patches/server/0857-Add-Player-Warden-Warning-API.patch diff --git a/patches/server/0859-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0858-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0859-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0858-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0860-Add-paper-dumplisteners-command.patch b/patches/server/0859-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0860-Add-paper-dumplisteners-command.patch rename to patches/server/0859-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0861-check-global-player-list-where-appropriate.patch b/patches/server/0860-check-global-player-list-where-appropriate.patch similarity index 98% rename from patches/server/0861-check-global-player-list-where-appropriate.patch rename to patches/server/0860-check-global-player-list-where-appropriate.patch index f165c37f7f0c..1ac6e75a5090 100644 --- a/patches/server/0861-check-global-player-list-where-appropriate.patch +++ b/patches/server/0860-check-global-player-list-where-appropriate.patch @@ -24,7 +24,7 @@ index c71a844064f15bdcc2f4fab14b7ace80d95269c0..77199a85df9559eeb83b6410ab0e1793 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cc774a2803051a5d981ecece2e9a992f09850ecf..10b838b486fa857645bb12ea2043727996b4aadf 100644 +index bbe594f57b7d11d6947b6b313901020c06324bdc..81814c3896aff6b90c8755a5320ac24da925e5f7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0862-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0861-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0862-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0861-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0863-ItemStack-damage-API.patch b/patches/server/0862-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0863-ItemStack-damage-API.patch rename to patches/server/0862-ItemStack-damage-API.patch diff --git a/patches/server/0864-Friction-API.patch b/patches/server/0863-Friction-API.patch similarity index 98% rename from patches/server/0864-Friction-API.patch rename to patches/server/0863-Friction-API.patch index c91e0ac630c6..f3ca18a211e2 100644 --- a/patches/server/0864-Friction-API.patch +++ b/patches/server/0863-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 10b838b486fa857645bb12ea2043727996b4aadf..40e1caa2c070f11d7195a707ec628f40bccdeef7 100644 +index 81814c3896aff6b90c8755a5320ac24da925e5f7..f1627ea97b2ce5eb00e9d30349786c3cac6b98cc 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0865-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0864-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0865-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0864-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0866-Fix-player-kick-on-shutdown.patch b/patches/server/0865-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0866-Fix-player-kick-on-shutdown.patch rename to patches/server/0865-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0867-Sync-offhand-slot-in-menus.patch b/patches/server/0866-Sync-offhand-slot-in-menus.patch similarity index 100% rename from patches/server/0867-Sync-offhand-slot-in-menus.patch rename to patches/server/0866-Sync-offhand-slot-in-menus.patch diff --git a/patches/server/0868-Player-Entity-Tracking-Events.patch b/patches/server/0867-Player-Entity-Tracking-Events.patch similarity index 96% rename from patches/server/0868-Player-Entity-Tracking-Events.patch rename to patches/server/0867-Player-Entity-Tracking-Events.patch index a52a97fb5f3d..67931e369e52 100644 --- a/patches/server/0868-Player-Entity-Tracking-Events.patch +++ b/patches/server/0867-Player-Entity-Tracking-Events.patch @@ -21,7 +21,7 @@ index 982750fd4f3f474514194df9b76388311c052b29..a9c94645a4bf3837bce5622b76f0d24a } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9634ff08d14500216835423376dbc86f3b0ffd35..09fa4c28d43c8fddc84056f5cf19dedc6ffe2077 100644 +index e83604aa0ae5760ba7335dac53b340406f4ffddf..f18dfffdc45c23a9a78ae13685a67a7d4603a56b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4107,7 +4107,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0869-Limit-pet-look-distance.patch b/patches/server/0868-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0869-Limit-pet-look-distance.patch rename to patches/server/0868-Limit-pet-look-distance.patch diff --git a/patches/server/0870-Properly-resend-entities.patch b/patches/server/0869-Properly-resend-entities.patch similarity index 99% rename from patches/server/0870-Properly-resend-entities.patch rename to patches/server/0869-Properly-resend-entities.patch index 4eec16fa3ef1..9652ca13e482 100644 --- a/patches/server/0870-Properly-resend-entities.patch +++ b/patches/server/0869-Properly-resend-entities.patch @@ -85,7 +85,7 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0d public static class DataItem { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5cb69d9fbff2ee1e647c21e40a17b7244815f213..e12f9616a3ef7663bafdb986a73cff858beb3a52 100644 +index 5fdc7c39d6b565e2e87ebb6bf0219ee2c7d50d10..e55e253898b61cc4eb611592e8310bb4e005362a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2658,7 +2658,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0871-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0870-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0871-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0870-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0872-fix-Instruments.patch b/patches/server/0871-fix-Instruments.patch similarity index 100% rename from patches/server/0872-fix-Instruments.patch rename to patches/server/0871-fix-Instruments.patch diff --git a/patches/server/0873-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0872-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 100% rename from patches/server/0873-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0872-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch diff --git a/patches/server/0874-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0873-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0874-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0873-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0875-Add-BlockLockCheckEvent.patch b/patches/server/0874-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0875-Add-BlockLockCheckEvent.patch rename to patches/server/0874-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0876-Add-Sneaking-API-for-Entities.patch b/patches/server/0875-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/server/0876-Add-Sneaking-API-for-Entities.patch rename to patches/server/0875-Add-Sneaking-API-for-Entities.patch diff --git a/patches/server/0877-Improve-logging-and-errors.patch b/patches/server/0876-Improve-logging-and-errors.patch similarity index 98% rename from patches/server/0877-Improve-logging-and-errors.patch rename to patches/server/0876-Improve-logging-and-errors.patch index 395a7b5e067b..89c26609955a 100644 --- a/patches/server/0877-Improve-logging-and-errors.patch +++ b/patches/server/0876-Improve-logging-and-errors.patch @@ -40,7 +40,7 @@ index 536f0c496ce36ca3248fc6eeac9bbd77214a36f9..31718823250a1490b783f426fff65bf5 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e12f9616a3ef7663bafdb986a73cff858beb3a52..087f26d52536ec1f196f21e2df1a7159a4a63c1a 100644 +index e55e253898b61cc4eb611592e8310bb4e005362a..a39101fc6ecfa414a1a5e41e61e5fa9077c03c04 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3395,7 +3395,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0878-Improve-PortalEvents.patch b/patches/server/0877-Improve-PortalEvents.patch similarity index 93% rename from patches/server/0878-Improve-PortalEvents.patch rename to patches/server/0877-Improve-PortalEvents.patch index 615937481d3d..2ad20a59ee3f 100644 --- a/patches/server/0878-Improve-PortalEvents.patch +++ b/patches/server/0877-Improve-PortalEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 09fa4c28d43c8fddc84056f5cf19dedc6ffe2077..4ea43e3fdc2b8b85c9524f9404fe3535adacc65d 100644 +index f18dfffdc45c23a9a78ae13685a67a7d4603a56b..3f88e5e6aa260c6c05b57b19c6209357ac0bd4b1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3765,7 +3765,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0879-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0878-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0879-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0878-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0880-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0879-Add-missing-SpigotConfig-logCommands-check.patch similarity index 93% rename from patches/server/0880-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0879-Add-missing-SpigotConfig-logCommands-check.patch index 2f3fa4732ce8..940d96f11dac 100644 --- a/patches/server/0880-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0879-Add-missing-SpigotConfig-logCommands-check.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 087f26d52536ec1f196f21e2df1a7159a4a63c1a..5e6632e3557cf43b4d71ad457d64f3be3518187e 100644 +index a39101fc6ecfa414a1a5e41e61e5fa9077c03c04..0b83618d8ca6f5f6694ec5ba4b7635146a5be60c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2139,7 +2139,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0881-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0880-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0881-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0880-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0882-Flying-Fall-Damage.patch b/patches/server/0881-Flying-Fall-Damage.patch similarity index 96% rename from patches/server/0882-Flying-Fall-Damage.patch rename to patches/server/0881-Flying-Fall-Damage.patch index 075299e624ce..8bcd7a81a210 100644 --- a/patches/server/0882-Flying-Fall-Damage.patch +++ b/patches/server/0881-Flying-Fall-Damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 13a443d942aee77f18e91669b207d8ec54bbaf65..9851d5803caa33cbf740f1ef91d71255d9c3b018 100644 +index 26930e84a4b089ffdf504ae244701f9c039234d4..659cb241643ddf0b680582b710cea6991dc476cb 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0883-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0882-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/server/0883-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0882-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/server/0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0883-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 91% rename from patches/server/0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0883-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index 3fb38b64f291..4d37205c2d24 100644 --- a/patches/server/0884-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0883-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4ea43e3fdc2b8b85c9524f9404fe3535adacc65d..ee5dfa18049bb36aa6403e6342aa56fb1bebf172 100644 +index 3f88e5e6aa260c6c05b57b19c6209357ac0bd4b1..809762ac5758996668d220f2d3b6ab004bf0e306 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1162,7 +1162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0885-config-for-disabling-entity-tag-tags.patch b/patches/server/0884-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0885-config-for-disabling-entity-tag-tags.patch rename to patches/server/0884-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0886-Use-single-player-info-update-packet-on-join.patch b/patches/server/0885-Use-single-player-info-update-packet-on-join.patch similarity index 97% rename from patches/server/0886-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0885-Use-single-player-info-update-packet-on-join.patch index 29689c763936..b23b39cb98c1 100644 --- a/patches/server/0886-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0885-Use-single-player-info-update-packet-on-join.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5e6632e3557cf43b4d71ad457d64f3be3518187e..3fe70d0c82e30b3893e24119f792d308e2f37112 100644 +index 0b83618d8ca6f5f6694ec5ba4b7635146a5be60c..ef25aea4b0bb34b638cb5036de4cf412d3e73b5a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3425,7 +3425,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0887-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0886-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 95% rename from patches/server/0887-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0886-Correctly-shrink-items-during-EntityResurrectEvent.patch index 87f04dba1dbb..41e943910204 100644 --- a/patches/server/0887-Correctly-shrink-items-during-EntityResurrectEvent.patch +++ b/patches/server/0886-Correctly-shrink-items-during-EntityResurrectEvent.patch @@ -22,7 +22,7 @@ This patch corrects this behaviour by only shrinking the item if a totem of undying was found and the event was called uncancelled. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 40e1caa2c070f11d7195a707ec628f40bccdeef7..15ebd6c287d90af9d4acb3529c2fb1b9394d3caf 100644 +index f1627ea97b2ce5eb00e9d30349786c3cac6b98cc..70ab1159191ca4c7e5a271221010c743957a6ed1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1611,7 +1611,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0888-Win-Screen-API.patch b/patches/server/0887-Win-Screen-API.patch similarity index 100% rename from patches/server/0888-Win-Screen-API.patch rename to patches/server/0887-Win-Screen-API.patch diff --git a/patches/server/0889-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0888-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0889-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0888-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0890-Fix-force-opening-enchantment-tables.patch b/patches/server/0889-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0890-Fix-force-opening-enchantment-tables.patch rename to patches/server/0889-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0891-Add-Entity-Body-Yaw-API.patch b/patches/server/0890-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0891-Add-Entity-Body-Yaw-API.patch rename to patches/server/0890-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0892-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0891-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0892-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0891-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0893-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0892-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 100% rename from patches/server/0893-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0892-Update-the-flag-when-a-captured-block-state-is-outda.patch diff --git a/patches/server/0894-Add-EntityFertilizeEggEvent.patch b/patches/server/0893-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/server/0894-Add-EntityFertilizeEggEvent.patch rename to patches/server/0893-Add-EntityFertilizeEggEvent.patch diff --git a/patches/server/0895-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0894-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0895-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0894-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0896-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0895-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0896-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0895-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0897-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0896-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0897-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0896-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0898-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0897-Fix-advancement-triggers-for-entity-damage.patch similarity index 97% rename from patches/server/0898-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0897-Fix-advancement-triggers-for-entity-damage.patch index a1dddb27c478..504f2e911229 100644 --- a/patches/server/0898-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0897-Fix-advancement-triggers-for-entity-damage.patch @@ -23,7 +23,7 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 15ebd6c287d90af9d4acb3529c2fb1b9394d3caf..da89e72040e2d109eebf2d1ca0089d695394f959 100644 +index 70ab1159191ca4c7e5a271221010c743957a6ed1..b99c7e77948f2a341dd924f65bf952f8695591b4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2302,7 +2302,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0899-Fix-text-display-error-on-spawn.patch b/patches/server/0898-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0899-Fix-text-display-error-on-spawn.patch rename to patches/server/0898-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0900-Fix-inventories-returning-null-Locations.patch b/patches/server/0899-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0900-Fix-inventories-returning-null-Locations.patch rename to patches/server/0899-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0901-Add-Shearable-API.patch b/patches/server/0900-Add-Shearable-API.patch similarity index 100% rename from patches/server/0901-Add-Shearable-API.patch rename to patches/server/0900-Add-Shearable-API.patch diff --git a/patches/server/0902-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0901-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0902-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0901-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0903-Optimize-Hoppers.patch b/patches/server/0902-Optimize-Hoppers.patch similarity index 99% rename from patches/server/0903-Optimize-Hoppers.patch rename to patches/server/0902-Optimize-Hoppers.patch index 17c49474dc1a..712f9a5637c4 100644 --- a/patches/server/0903-Optimize-Hoppers.patch +++ b/patches/server/0902-Optimize-Hoppers.patch @@ -50,7 +50,7 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5981171f4960b61a448014ccaa5336bdc556ae81..cf94634cc11e368cea60a9005d11c7f7aa64fbae 100644 +index b46e1d09a949eee8c7df2c2dced24ffba17a251a..e865a887eab9c43291b73661e8748330167cc682 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1672,6 +1672,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 6b38e515a77df7fb06b41fbedaa1090b1cac78fb..a01a7abcbfa95d75191cc7fbdad6cbebfe06d3f9 100644 +index 66bb955bb338e4d1689daace28ebe295b6884554..a246e12438402dd692a5171f1e779f5f77d2f212 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -749,10 +749,16 @@ public final class ItemStack { diff --git a/patches/server/0904-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0903-Fix-beehives-generating-from-using-bonemeal.patch similarity index 96% rename from patches/server/0904-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0903-Fix-beehives-generating-from-using-bonemeal.patch index 78d80cb19417..d2dec516532c 100644 --- a/patches/server/0904-Fix-beehives-generating-from-using-bonemeal.patch +++ b/patches/server/0903-Fix-beehives-generating-from-using-bonemeal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix beehives generating from using bonemeal diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index a01a7abcbfa95d75191cc7fbdad6cbebfe06d3f9..ae39d5f386b3f307ba85b359d552a8885d232f7f 100644 +index a246e12438402dd692a5171f1e779f5f77d2f212..df38d95c38831c884cbfb4a15b8ba682f0b1ab51 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -422,6 +422,7 @@ public final class ItemStack { diff --git a/patches/server/0905-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0904-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0905-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0904-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0906-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0905-Treat-sequence-violations-like-they-should-be.patch similarity index 92% rename from patches/server/0906-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0905-Treat-sequence-violations-like-they-should-be.patch index 552d683368e4..93c890ea58f4 100644 --- a/patches/server/0906-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0905-Treat-sequence-violations-like-they-should-be.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3fe70d0c82e30b3893e24119f792d308e2f37112..2cdae57a255305a16fae6ccf431aea78e2c84429 100644 +index ef25aea4b0bb34b638cb5036de4cf412d3e73b5a..b537c2d1e00eee4da9ca53c731791f46ae5013cb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2043,6 +2043,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0907-remove-duplicate-animate-packet-for-records.patch b/patches/server/0906-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0907-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0906-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0908-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0907-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 97% rename from patches/server/0908-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0907-Prevent-causing-expired-keys-from-impacting-new-join.patch index 69077990795f..4af54190d61c 100644 --- a/patches/server/0908-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0907-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -24,7 +24,7 @@ index 0e54e8faa48751a651b953bec72543a94edf74bc..d43106eb89b14667e85cd6e8fa047d64 UPDATE_GAME_MODE((serialized, buf) -> { serialized.gameMode = GameType.byId(buf.readVarInt()); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2cdae57a255305a16fae6ccf431aea78e2c84429..533d637c634af9bf086cf3d480f219f7c2d3f34a 100644 +index b537c2d1e00eee4da9ca53c731791f46ae5013cb..294dd52de7b0b19b19bbef9bb6ec6b5b2845cdeb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -287,6 +287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0908-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 100% rename from patches/server/0909-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0908-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch diff --git a/patches/server/0910-Use-array-for-gamerule-storage.patch b/patches/server/0909-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0910-Use-array-for-gamerule-storage.patch rename to patches/server/0909-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0911-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0910-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0911-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0910-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0912-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0911-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0912-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0911-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0913-Add-Mob-Experience-reward-API.patch b/patches/server/0912-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0913-Add-Mob-Experience-reward-API.patch rename to patches/server/0912-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0914-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0913-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0914-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0913-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0915-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0914-Fix-DamageCause-for-Falling-Blocks.patch similarity index 100% rename from patches/server/0915-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0914-Fix-DamageCause-for-Falling-Blocks.patch diff --git a/patches/server/0916-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0915-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0916-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0915-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0917-More-accurate-isInOpenWater-impl.patch b/patches/server/0916-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0917-More-accurate-isInOpenWater-impl.patch rename to patches/server/0916-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0918-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0917-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0918-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0917-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0919-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0918-Optimise-recalcBlockCounts-for-empty-sections.patch similarity index 100% rename from patches/server/0919-Optimise-recalcBlockCounts-for-empty-sections.patch rename to patches/server/0918-Optimise-recalcBlockCounts-for-empty-sections.patch diff --git a/patches/server/0920-Expand-PlayerItemMendEvent.patch b/patches/server/0919-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/server/0920-Expand-PlayerItemMendEvent.patch rename to patches/server/0919-Expand-PlayerItemMendEvent.patch diff --git a/patches/server/0921-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0920-Refresh-ProjectileSource-for-projectiles.patch similarity index 97% rename from patches/server/0921-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0920-Refresh-ProjectileSource-for-projectiles.patch index 054250373f96..4f6486d6cb34 100644 --- a/patches/server/0921-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0920-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ee5dfa18049bb36aa6403e6342aa56fb1bebf172..92fe1b4eb9d23031476c6545f653cee37745bbf8 100644 +index 809762ac5758996668d220f2d3b6ab004bf0e306..145f9020d4d9f45fffadb9ed8ba5a2f9a13873dc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -386,6 +386,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0922-Add-transient-modifier-API.patch b/patches/server/0921-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0922-Add-transient-modifier-API.patch rename to patches/server/0921-Add-transient-modifier-API.patch diff --git a/patches/server/0923-Fix-block-place-logic.patch b/patches/server/0922-Fix-block-place-logic.patch similarity index 95% rename from patches/server/0923-Fix-block-place-logic.patch rename to patches/server/0922-Fix-block-place-logic.patch index ac9628a9541d..52870b6cb3d4 100644 --- a/patches/server/0923-Fix-block-place-logic.patch +++ b/patches/server/0922-Fix-block-place-logic.patch @@ -9,7 +9,7 @@ Fix several issues when a player interact with a block: * poi can desync when the BlockPhysicsEvent is cancelled diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index e581dc10f3c805f7f8b6e4c842092609e7e1a0f8..b6b5abba349fecfecd8f3a3c237693607f9bf0ad 100644 +index daf093518f1daf598c858cfaf48357255a1fb0cf..c06e4b0683f0f125b79a4afce7daf909530d7bbf 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java @@ -130,7 +130,7 @@ public class BlockItem extends Item { @@ -22,7 +22,7 @@ index e581dc10f3c805f7f8b6e4c842092609e7e1a0f8..b6b5abba349fecfecd8f3a3c23769360 if ((entityhuman == null || !entityhuman.getAbilities().instabuild) && itemstack != ItemStack.EMPTY) { // CraftBukkit itemstack.shrink(1); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index ae39d5f386b3f307ba85b359d552a8885d232f7f..037e09bc8990036b76f75bca9bf14969ede6d6ad 100644 +index df38d95c38831c884cbfb4a15b8ba682f0b1ab51..82a1615f00b6f32c81e537f93a3d36450c5d291e 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -493,13 +493,7 @@ public final class ItemStack { diff --git a/patches/server/0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0923-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 94% rename from patches/server/0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0923-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch index 89d9eaec62a2..27be0d496381 100644 --- a/patches/server/0924-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch +++ b/patches/server/0923-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 037e09bc8990036b76f75bca9bf14969ede6d6ad..f5cc647054148c1e170ca3f49128d4ea4acaf4dc 100644 +index 82a1615f00b6f32c81e537f93a3d36450c5d291e..25403f5774862ed37f3e1be05e97390d16d0b985 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -544,7 +544,11 @@ public final class ItemStack { diff --git a/patches/server/0925-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0924-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 96% rename from patches/server/0925-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0924-Call-BlockGrowEvent-for-missing-blocks.patch index d2a9eadeb982..7f41f99941a9 100644 --- a/patches/server/0925-Call-BlockGrowEvent-for-missing-blocks.patch +++ b/patches/server/0924-Call-BlockGrowEvent-for-missing-blocks.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Call BlockGrowEvent for missing blocks Call the event for pitcher crops and sniffer egg diff --git a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -index ba94ff948ccaddc16d3452306722759c115bb90a..acaa13f195467c3ebe70677b8440a88369d41b06 100644 +index 73d9ad9e24727a81c5ff1645316aee003600c0cc..7d8907477cc2b60e48538aaf32e00c0352b926b9 100644 --- a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java @@ -130,7 +130,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl diff --git a/patches/server/0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0925-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 94% rename from patches/server/0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0925-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index 73688ac4a326..436cde524cfb 100644 --- a/patches/server/0926-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0925-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f428bff49d109d2045634505ddcab90f89771a81..a6dff659356ca8ce8cf24eca8c6c1e9cb00a3979 100644 +index 16c2942ef30c8f3caccb56c85ebad660f785c070..dcd0ffc8b1567d51117bc8b811ac066bdf276bc7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -352,7 +352,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0927-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0926-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0927-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0926-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0928-Fix-sniffer-removeExploredLocation.patch b/patches/server/0927-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0928-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0927-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0929-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0928-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0929-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0928-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0930-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0929-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch similarity index 100% rename from patches/server/0930-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename to patches/server/0929-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch diff --git a/patches/server/0931-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0930-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0931-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0930-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0932-Properly-cancel-usable-items.patch b/patches/server/0931-Properly-cancel-usable-items.patch similarity index 95% rename from patches/server/0932-Properly-cancel-usable-items.patch rename to patches/server/0931-Properly-cancel-usable-items.patch index 6ac4390ff0ac..69da56a36faa 100644 --- a/patches/server/0932-Properly-cancel-usable-items.patch +++ b/patches/server/0931-Properly-cancel-usable-items.patch @@ -34,7 +34,7 @@ index a4058e8ce468ef515236813b034f1a08d5d9589f..0357e190f6cc0724223ed705b19651d8 return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 533d637c634af9bf086cf3d480f219f7c2d3f34a..eaa63c02fcb49f0c99842d5448ef883d37c578db 100644 +index 294dd52de7b0b19b19bbef9bb6ec6b5b2845cdeb..ac41dc96a4aee7b0bb71cbf71d3109ff05a66eff 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1955,6 +1955,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -46,7 +46,7 @@ index 533d637c634af9bf086cf3d480f219f7c2d3f34a..eaa63c02fcb49f0c99842d5448ef883d return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index da89e72040e2d109eebf2d1ca0089d695394f959..24d68144d4ae2d34cff2b1378b352e2989cd4b76 100644 +index b99c7e77948f2a341dd924f65bf952f8695591b4..5f0d7448bca32a80d4488a4e9ad87918fedf356c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3814,6 +3814,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0933-Add-event-for-player-editing-sign.patch b/patches/server/0932-Add-event-for-player-editing-sign.patch similarity index 98% rename from patches/server/0933-Add-event-for-player-editing-sign.patch rename to patches/server/0932-Add-event-for-player-editing-sign.patch index 7d6fd88d535a..0e79d7c13752 100644 --- a/patches/server/0933-Add-event-for-player-editing-sign.patch +++ b/patches/server/0932-Add-event-for-player-editing-sign.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add event for player editing sign diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index f5cc647054148c1e170ca3f49128d4ea4acaf4dc..734672b38bd9be4ff63d61febc141278f14d7065 100644 +index 25403f5774862ed37f3e1be05e97390d16d0b985..2a76c686cc1e5609db85bf21718660cf838d5899 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -523,7 +523,7 @@ public final class ItemStack { diff --git a/patches/server/0934-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0933-Only-tick-item-frames-if-players-can-see-it.patch similarity index 92% rename from patches/server/0934-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0933-Only-tick-item-frames-if-players-can-see-it.patch index 6b0591c84a6e..7a1f001a2e40 100644 --- a/patches/server/0934-Only-tick-item-frames-if-players-can-see-it.patch +++ b/patches/server/0933-Only-tick-item-frames-if-players-can-see-it.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Only tick item frames if players can see it In the event that an item frame cannot be seen by any players, ticking the item frame every tick is unnecessary. This can be a very hot section of the entity tracker when lots of item frames are present on a server, so this reduces the logic which speeds it up. diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index ff57dbd34874e020edd7074c71cfa635eab0287b..62ee13247a12723e43f114323a2ec1917835920e 100644 +index 78145f8dc50c64b1650bfa7e3ef867ca96f29ca9..937ce55812375f2952c2dab86918ab73b0f3a2d3 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -111,7 +111,7 @@ public class ServerEntity { diff --git a/patches/server/0935-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0934-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 98% rename from patches/server/0935-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0934-Fix-cmd-permission-levels-for-command-blocks.patch index fede763c8198..a7a6c86d67d1 100644 --- a/patches/server/0935-Fix-cmd-permission-levels-for-command-blocks.patch +++ b/patches/server/0934-Fix-cmd-permission-levels-for-command-blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix cmd permission levels for command blocks diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 82ca6267bca684a8f04ca37d40816686677a852a..ec4152f7372ddad216039a489fb5d72f963b4f18 100644 +index e65d7980b7ebed60786bc31e2f8156fda3b59556..6978d0a9abc9cc5870ac5ee6308f2e9949b42fde 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -204,10 +204,29 @@ public class CommandSourceStack implements ExecutionCommandSource { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6f7e05c6d73999613ae5980ec70b841299d021b1..8713ee8ff8a2b269c6d138e7f483a80fa2521793 100644 +index 4070311f8a9c018eef8805e3c1a024e634e57e4f..bec8d27ea6077dd06001f48ac624a3da2ad041df 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -120,7 +120,7 @@ index 5a9f4a022c8e7a0804543335bfe91e1328d040e6..8094c133f9e934c98eee09738220bacd } diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java -index 0540929bd362b266295ea6770ce2fb351b614463..4aacb6675e8fe577749fa83ad471eb6e6cf930df 100644 +index ae8a42261337bf736d0cc1bbe18da2b773417ca4..471e8493622c89d44a82f42f135cb308c9e0fbfe 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java +++ b/src/main/java/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java @@ -518,7 +518,7 @@ public class StructureTemplate { diff --git a/patches/server/1028-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/1027-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/1028-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/1027-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1028-Restore-vanilla-entity-drops-behavior.patch similarity index 98% rename from patches/server/1029-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/1028-Restore-vanilla-entity-drops-behavior.patch index 422b7f4acf56..aa8f7bc084df 100644 --- a/patches/server/1029-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1028-Restore-vanilla-entity-drops-behavior.patch @@ -50,7 +50,7 @@ index f4f8c60a24664b6fb33361ae830987701a0e9394..3506cd1c5960b58fe2805d9cc7ea6758 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 96d2fa0278ada7fb706a39ca2a93f5259239229c..6f45f2fff258fa712c2637c8901453b13b34ee0b 100644 +index c71d1d2885b608c681a95b380c6d68ea9c79cdb2..92f9d55c224cd4e25060d8751ccb28a978979241 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -104,7 +104,7 @@ index 96d2fa0278ada7fb706a39ca2a93f5259239229c..6f45f2fff258fa712c2637c8901453b1 return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8713ee8ff8a2b269c6d138e7f483a80fa2521793..102fa2c9ed1a749503aa22f57666a9f28940f4a8 100644 +index bec8d27ea6077dd06001f48ac624a3da2ad041df..3b37c9a440bc5d6375a653988c9011ba0e9b6e9b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1030-Add-Structure-check-API.patch b/patches/server/1029-Add-Structure-check-API.patch similarity index 91% rename from patches/server/1030-Add-Structure-check-API.patch rename to patches/server/1029-Add-Structure-check-API.patch index 3ec45efbcd35..419fe461060a 100644 --- a/patches/server/1030-Add-Structure-check-API.patch +++ b/patches/server/1029-Add-Structure-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 1e71506e079616028b4eaf577a5ca410ee38d5a8..44949a5a9351d8fcbae2987df77a61ec7de8d198 100644 +index 468c68eba244a1307ac283c9bf89196e28a40bf1..2a685ac009a13d86d5baf3b649830a08189efb19 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -230,6 +230,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1031-Dont-resend-blocks-on-interactions.patch b/patches/server/1030-Dont-resend-blocks-on-interactions.patch similarity index 99% rename from patches/server/1031-Dont-resend-blocks-on-interactions.patch rename to patches/server/1030-Dont-resend-blocks-on-interactions.patch index e09ac843114c..cbbc0695947f 100644 --- a/patches/server/1031-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1030-Dont-resend-blocks-on-interactions.patch @@ -149,7 +149,7 @@ index 277555a26e8281dd1a626e572794b08cf51d00c5..aa0f09a18ea781e027ea70928b30d3e9 return false; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 74fb996f54783948ee1351f3d437666b4d462cba..94921512e50b7a4556101772e72d822897a04165 100644 +index 7f48a350a2bddf891e54e8e5349976cda0154c48..d1effd5d7b9eb2d715c9a3e16adbef2541b1ccf2 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -457,10 +457,12 @@ public final class ItemStack { diff --git a/patches/server/1032-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/1031-Keep-previous-behavior-for-setResourcePack.patch similarity index 100% rename from patches/server/1032-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/1031-Keep-previous-behavior-for-setResourcePack.patch diff --git a/patches/server/1033-properly-read-and-store-sus-effect-duration.patch b/patches/server/1032-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/1033-properly-read-and-store-sus-effect-duration.patch rename to patches/server/1032-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/1034-Use-correct-max-stack-size-in-crafter.patch b/patches/server/1033-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/1034-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/1033-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/1035-add-more-scoreboard-API.patch b/patches/server/1034-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/1035-add-more-scoreboard-API.patch rename to patches/server/1034-add-more-scoreboard-API.patch diff --git a/patches/server/1036-Improve-Registry.patch b/patches/server/1035-Improve-Registry.patch similarity index 100% rename from patches/server/1036-Improve-Registry.patch rename to patches/server/1035-Improve-Registry.patch diff --git a/patches/server/1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1036-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 97% rename from patches/server/1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/1036-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index b81e257b7194..6df06e0dcc61 100644 --- a/patches/server/1037-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/1036-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,7 +26,7 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 102fa2c9ed1a749503aa22f57666a9f28940f4a8..ff2e6351e49dfdaab9639c28d34a6435e4a03047 100644 +index 3b37c9a440bc5d6375a653988c9011ba0e9b6e9b..e914c36bede52838f47cd88b442b9cde3e4666f3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4205,7 +4205,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1038-Add-experience-points-API.patch b/patches/server/1037-Add-experience-points-API.patch similarity index 97% rename from patches/server/1038-Add-experience-points-API.patch rename to patches/server/1037-Add-experience-points-API.patch index ce9d3a7e8975..8d8c28227ba2 100644 --- a/patches/server/1038-Add-experience-points-API.patch +++ b/patches/server/1037-Add-experience-points-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 9851d5803caa33cbf740f1ef91d71255d9c3b018..d6b502308f22c92d2221bd2d03cde4cb78e82fbc 100644 +index 659cb241643ddf0b680582b710cea6991dc476cb..440ddbaf26a5d333a8cd456c501cbc9a759d12f1 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1833,7 +1833,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/1039-Add-missing-InventoryType.patch b/patches/server/1038-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/1039-Add-missing-InventoryType.patch rename to patches/server/1038-Add-missing-InventoryType.patch diff --git a/patches/server/1040-Add-drops-to-shear-events.patch b/patches/server/1039-Add-drops-to-shear-events.patch similarity index 100% rename from patches/server/1040-Add-drops-to-shear-events.patch rename to patches/server/1039-Add-drops-to-shear-events.patch diff --git a/patches/server/1041-Add-PlayerShieldDisableEvent.patch b/patches/server/1040-Add-PlayerShieldDisableEvent.patch similarity index 97% rename from patches/server/1041-Add-PlayerShieldDisableEvent.patch rename to patches/server/1040-Add-PlayerShieldDisableEvent.patch index 8bdf29b42d75..9d5dd42eeae3 100644 --- a/patches/server/1041-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/1040-Add-PlayerShieldDisableEvent.patch @@ -33,7 +33,7 @@ index c81c72bf1027fcbaac67808fbcf6e0af112176bc..42e2be9286b75a1d34845f303ffc65e9 } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index d6b502308f22c92d2221bd2d03cde4cb78e82fbc..2668c3b6f752d5d8bc45f4e6e52c20cc6a36a957 100644 +index 440ddbaf26a5d333a8cd456c501cbc9a759d12f1..54a77399c1c42a1bcdbb4fd2cc09469a4838bd7c 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -979,7 +979,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/1042-Add-HiddenPotionEffect-API.patch b/patches/server/1041-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1042-Add-HiddenPotionEffect-API.patch rename to patches/server/1041-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1043-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1042-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/1043-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/1042-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/1044-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1043-fix-ItemMeta-removing-CustomModelData.patch similarity index 100% rename from patches/server/1044-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/1043-fix-ItemMeta-removing-CustomModelData.patch diff --git a/patches/server/1045-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1044-Validate-ResourceLocation-in-NBT-reading.patch similarity index 100% rename from patches/server/1045-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/1044-Validate-ResourceLocation-in-NBT-reading.patch diff --git a/patches/server/1046-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1045-Properly-handle-experience-dropping-on-block-break.patch similarity index 100% rename from patches/server/1046-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/1045-Properly-handle-experience-dropping-on-block-break.patch diff --git a/patches/server/1047-Fixup-NamespacedKey-handling.patch b/patches/server/1046-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1047-Fixup-NamespacedKey-handling.patch rename to patches/server/1046-Fixup-NamespacedKey-handling.patch From cc693ce82bdbc1339aafc20beab3e9e0582f3b4d Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Fri, 19 Jan 2024 12:30:04 +0100 Subject: [PATCH 22/45] [ci skip] Add more identifying patch comments, merge related patches --- ...er-Thread-Pool-and-Thread-Priorities.patch | 28 +++-- ...position-and-AABB-are-never-invalid.patch} | 39 +++++-- ...y-Counter-to-allow-plugins-to-use-va.patch | 4 +- patches/server/0457-Entity-isTicking.patch | 4 +- .../0497-MC-4-Fix-item-position-desync.patch | 4 +- .../0644-Add-back-EntityPortalExitEvent.patch | 8 +- ...o-find-targets-for-lightning-strikes.patch | 14 +-- .../0648-Add-more-advancement-API.patch | 10 +- ...0649-Add-ItemFactory-getSpawnEgg-API.patch | 4 +- .../server/0650-Add-critical-damage-API.patch | 8 +- .../0651-Fix-issues-with-mob-conversion.patch | 20 ++-- patches/server/0653-Goat-ram-API.patch | 4 +- ...55-Add-Raw-Byte-Entity-Serialization.patch | 4 +- ...656-Vanilla-command-permission-fixes.patch | 20 ++-- ...-logic-for-inventories-on-chunk-unlo.patch | 6 +- ...658-Fix-GameProfileCache-concurrency.patch | 36 +++--- ...aper-mobcaps-and-paper-playermobcaps.patch | 18 +-- ...itize-ResourceLocation-error-logging.patch | 6 +- ...ally-inline-methods-in-BlockPosition.patch | 16 +-- ...uler-threads-according-to-the-plugin.patch | 4 +- ...d-getChunkAt-has-inlined-logic-for-l.patch | 9 +- ...bour-chunk-data-off-disk-when-conver.patch | 4 +- ...primise-map-impl-for-tracked-players.patch | 4 +- ...timise-BlockSoil-nearby-water-lookup.patch | 7 +- ...culate-regionfile-header-if-it-is-co.patch | 22 ++-- ...ocity-compression-and-cipher-natives.patch | 104 +++++++++--------- ...l-more-information-in-watchdog-dumps.patch | 8 +- ... 0678-Distance-manager-tick-timings.patch} | 0 ...thread-worker-count-for-low-core-cou.patch | 31 ------ ...ntory-not-closing-on-entity-removal.patch} | 6 +- ...rement-before-suggesting-root-nodes.patch} | 4 +- ...ServerboundCommandSuggestionPacket-.patch} | 0 ...h => 0682-Add-packet-limiter-config.patch} | 2 +- ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0684-Ensure-valid-vehicle-status.patch} | 4 +- ...ftlocked-end-exit-portal-generation.patch} | 4 +- ...r-causing-a-crash-when-trying-to-ge.patch} | 4 +- ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 6 +- ...h => 0689-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 2 +- ...unintended-light-block-manipulation.patch} | 4 +- ...0692-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0694-Configurable-feature-seeds.patch} | 6 +- ... 0695-Add-root-admin-user-detection.patch} | 4 +- ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 2 +- ...ive-velocity-through-repeated-crits.patch} | 10 +- ...e-code-using-deprecated-for-removal.patch} | 4 +- ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 2 +- ...e-unnecessary-itemmeta-from-clients.patch} | 2 +- ...=> 0703-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0705-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0706-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 2 +- ...tch => 0708-Collision-optimisations.patch} | 6 +- ...n-checking-in-player-move-packet-ha.patch} | 2 +- ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0711-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 2 +- ...13-Fix-tripwire-state-inconsistency.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 2 +- ... => 0715-Improve-scoreboard-entries.patch} | 0 ...ch => 0716-Entity-powdered-snow-API.patch} | 0 ...0717-Add-API-for-item-entity-health.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 2 +- ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0723-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0724-Bucketable-API.patch} | 0 ...es.patch => 0725-Validate-usernames.patch} | 4 +- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 4 +- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...0-Multiple-Entries-with-Scoreboards.patch} | 0 ...731-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0733-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0735-Fix-NotePlayEvent.patch} | 0 ....patch => 0736-Freeze-Tick-Lock-API.patch} | 4 +- ...h => 0737-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 4 +- ...-missing-structure-set-seed-configs.patch} | 2 +- ...h => 0741-Implement-regenerateChunk.patch} | 2 +- ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 4 +- ...gs.patch => 0744-Add-GameEvent-tags.patch} | 2 +- ...ks-fairly-for-worlds-while-waiting-.patch} | 0 ...tch => 0746-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 0 ...-worldlist-before-initing-the-world.patch} | 2 +- ... => 0751-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0752-Custom-Potion-Mixes.patch} | 2 +- ...53-Force-close-world-loading-screen.patch} | 0 ...754-Fix-falling-block-spawn-methods.patch} | 2 +- ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0757-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0760-Implement-getComputedBiome-API.patch} | 0 ...> 0761-Make-some-itemstacks-nonnull.patch} | 0 ...762-Implement-enchantWithLevels-API.patch} | 7 +- ...h => 0763-Fix-saving-in-unloadWorld.patch} | 2 +- ...h => 0764-Buffer-OOB-setBlock-calls.patch} | 0 ... 0765-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 2 +- ...ssenger-world-matches-ridden-entity.patch} | 2 +- ...s.patch => 0769-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...ard-against-invalid-entity-positions.patch | 45 -------- ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 0 ...-ServerLevel-for-gamerule-callbacks.patch} | 4 +- ...> 0776-Expand-PlayerItemDamageEvent.patch} | 0 ...> 0777-WorldCreator-keepSpawnLoaded.patch} | 2 +- ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0783-Add-PlayerStopUsingItemEvent.patch} | 2 +- ...rs.patch => 0784-Don-t-tick-markers.patch} | 2 +- ...tch => 0785-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 0 ...0787-Add-support-for-Proxy-Protocol.patch} | 6 +- ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0790-Sanitize-sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 2 +- ...-on-world-create-while-being-ticked.patch} | 2 +- ...ate-Current-redstone-implementation.patch} | 4 +- ...95-Dont-resent-entity-on-art-update.patch} | 0 ... => 0796-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 2 +- ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0799-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 2 +- ...pty-items-from-being-added-to-world.patch} | 2 +- ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0803-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 4 +- ...PE.patch => 0806-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 0 ...API.patch => 0808-More-Teleport-API.patch} | 0 ... => 0809-Add-EntityPortalReadyEvent.patch} | 2 +- ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 0 ...on-plugins-accessing-faraway-chunks.patch} | 4 +- ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0815-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 2 +- ...API.patch => 0817-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 6 +- ...819-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 0 ...ok-changes-from-crashing-the-server.patch} | 2 +- ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0823-Missing-eating-regain-reason.patch} | 0 ....patch => 0824-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...7-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0828-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0830-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0832-Add-getDrops-to-BlockState.patch} | 0 ...=> 0833-Fix-a-bunch-of-vanilla-bugs.patch} | 8 +- ...y-onTrackingStart-during-navigation.patch} | 2 +- ... 0835-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0836-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 2 +- ... 0839-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0841-Add-entity-knockback-API.patch} | 0 ....patch => 0842-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...44-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 0845-Add-EntityToggleSitEvent.patch} | 0 ... => 0846-Add-fire-tick-delay-option.patch} | 0 ...patch => 0847-Add-Moving-Piston-API.patch} | 0 ...> 0848-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 2 +- ...0852-Add-PrePlayerAttackEntityEvent.patch} | 2 +- ...e-reset-EnderDragon-boss-event-name.patch} | 2 +- ...-green-map-markers-do-not-disappear.patch} | 0 ... 0855-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...857-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 4 +- ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0860-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0861-Friction-API.patch} | 2 +- ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0863-Fix-player-kick-on-shutdown.patch} | 0 ... => 0864-Sync-offhand-slot-in-menus.patch} | 2 +- ... 0865-Player-Entity-Tracking-Events.patch} | 4 +- ...tch => 0866-Limit-pet-look-distance.patch} | 0 ...ch => 0867-Properly-resend-entities.patch} | 0 ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0869-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 0 ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0872-Add-BlockLockCheckEvent.patch} | 0 ... 0873-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0874-Improve-logging-and-errors.patch} | 0 ....patch => 0875-Improve-PortalEvents.patch} | 2 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 0 ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0879-Flying-Fall-Damage.patch} | 2 +- ...k-state-to-BlockExplodeEvent-and-En.patch} | 2 +- ...ion-moving-velocity-to-VehicleBlock.patch} | 2 +- ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 0 ...k-items-during-EntityResurrectEvent.patch} | 2 +- ...en-API.patch => 0885-Win-Screen-API.patch} | 0 ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0888-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 2 +- ...=> 0891-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 2 +- ...896-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0898-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...pers.patch => 0900-Optimize-Hoppers.patch} | 0 ...ives-generating-from-using-bonemeal.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 0 ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 2 +- ...0907-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0910-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...14-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ...ecalcBlockCounts-for-empty-sections.patch} | 0 ... => 0917-Expand-PlayerItemMendEvent.patch} | 0 ...sh-ProjectileSource-for-projectiles.patch} | 2 +- ... => 0919-Add-transient-modifier-API.patch} | 0 ...patch => 0920-Fix-block-place-logic.patch} | 2 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 2 +- ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...yerChunkLoaderData-in-order-to-prep.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0929-Properly-cancel-usable-items.patch} | 2 +- ...0-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 2 +- ...Add-option-to-disable-block-updates.patch} | 0 ...934-Call-missing-BlockDispenseEvent.patch} | 0 ...-chunks-for-supporting-block-checks.patch} | 2 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...937-Add-Sign-getInteractableSideFor.patch} | 0 ...38-Array-backed-synched-entity-data.patch} | 0 ...9-fix-item-meta-for-tadpole-buckets.patch} | 2 +- ...t-API.patch => 0940-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 0 ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0946-Add-whitelist-events.patch} | 0 ... 0947-Implement-PlayerFailMoveEvent.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 8 +- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 2 +- ...tion-when-spawning-display-entities.patch} | 0 ...952-Only-capture-actual-tree-growth.patch} | 2 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 2 +- ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0957-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0959-Bandaid-fix-for-Effect.patch} | 2 +- ...tch => 0960-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 6 +- ...lace-methods-with-old-StructureType.patch} | 2 +- ...e-namespaced-commands-if-send-names.patch} | 0 ...-handle-BlockBreakEvent-isDropItems.patch} | 0 ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 2 +- ... => 0968-Add-Listing-API-for-Player.patch} | 0 ...figurable-Region-Compression-Format.patch} | 2 +- ...0-Add-BlockFace-to-BlockDamageEvent.patch} | 0 ...h => 0971-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0972-Expand-Pose-API.patch} | 2 +- ...patch => 0973-More-DragonBattle-API.patch} | 2 +- ... 0974-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0975-Add-PlayerPickItemEvent.patch} | 0 ...-Improve-performance-of-mass-crafts.patch} | 0 ...=> 0977-Allow-trident-custom-damage.patch} | 0 ...8-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 2 +- ...Implement-OfflinePlayer-isConnected.patch} | 0 ....patch => 0981-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 2 +- ...83-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 2 +- ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 0 ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0990-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 2 +- ...entities-in-chunks-that-are-positio.patch} | 2 +- ...> 0993-Actually-optimise-explosions.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...atch => 0996-Fix-SuspiciousStewMeta.patch} | 0 ... 0997-Optimise-chunk-tick-iteration.patch} | 4 +- ...atch => 0998-Lag-compensation-ticks.patch} | 4 +- ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...02-Optimise-nearby-player-retrieval.patch} | 2 +- ...x-missing-map-initialize-event-call.patch} | 2 +- ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...07-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 1008-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 2 +- ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 1012-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 2 +- ...em-packets-with-collector-as-source.patch} | 2 +- ... => 1016-Expand-LingeringPotion-API.patch} | 0 ....patch => 1017-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 2 +- ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...021-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 6 +- ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 6 +- ...tch => 1027-Add-Structure-check-API.patch} | 2 +- ...-Dont-resend-blocks-on-interactions.patch} | 0 ...evious-behavior-for-setResourcePack.patch} | 0 ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 1032-add-more-scoreboard-API.patch} | 0 ...stry.patch => 1033-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 2 +- ...h => 1035-Add-experience-points-API.patch} | 2 +- ...h => 1036-Add-missing-InventoryType.patch} | 0 ...h => 1037-Add-drops-to-shear-events.patch} | 0 ...> 1038-Add-PlayerShieldDisableEvent.patch} | 2 +- ... => 1039-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 2 +- ...-experience-dropping-on-block-break.patch} | 2 +- ...> 1044-Fixup-NamespacedKey-handling.patch} | 0 396 files changed, 383 insertions(+), 431 deletions(-) rename patches/server/{0409-Ensure-Entity-AABB-s-are-never-invalid.patch => 0409-Ensure-Entity-position-and-AABB-are-never-invalid.patch} (50%) rename patches/server/{0679-Distance-manager-tick-timings.patch => 0678-Distance-manager-tick-timings.patch} (100%) delete mode 100644 patches/server/0678-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch rename patches/server/{0680-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0679-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (84%) rename patches/server/{0681-Check-requirement-before-suggesting-root-nodes.patch => 0680-Check-requirement-before-suggesting-root-nodes.patch} (90%) rename patches/server/{0682-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0681-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/server/{0683-Add-packet-limiter-config.patch => 0682-Add-packet-limiter-config.patch} (98%) rename patches/server/{0684-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0683-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0685-Ensure-valid-vehicle-status.patch => 0684-Ensure-valid-vehicle-status.patch} (87%) rename patches/server/{0686-Prevent-softlocked-end-exit-portal-generation.patch => 0685-Prevent-softlocked-end-exit-portal-generation.patch} (86%) rename patches/server/{0687-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0686-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (82%) rename patches/server/{0688-Don-t-log-debug-logging-being-disabled.patch => 0687-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0689-fix-various-menus-with-empty-level-accesses.patch => 0688-fix-various-menus-with-empty-level-accesses.patch} (80%) rename patches/server/{0690-Preserve-overstacked-loot.patch => 0689-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0691-Update-head-rotation-in-missing-places.patch => 0690-Update-head-rotation-in-missing-places.patch} (93%) rename patches/server/{0692-prevent-unintended-light-block-manipulation.patch => 0691-prevent-unintended-light-block-manipulation.patch} (86%) rename patches/server/{0693-Fix-CraftCriteria-defaults-map.patch => 0692-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0694-Fix-upstreams-block-state-factories.patch => 0693-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0695-Configurable-feature-seeds.patch => 0694-Configurable-feature-seeds.patch} (90%) rename patches/server/{0696-Add-root-admin-user-detection.patch => 0695-Add-root-admin-user-detection.patch} (96%) rename patches/server/{0697-Always-allow-item-changing-in-Fireball.patch => 0696-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0698-don-t-attempt-to-teleport-dead-entities.patch => 0697-don-t-attempt-to-teleport-dead-entities.patch} (91%) rename patches/server/{0699-Prevent-excessive-velocity-through-repeated-crits.patch => 0698-Prevent-excessive-velocity-through-repeated-crits.patch} (77%) rename patches/server/{0700-Remove-client-side-code-using-deprecated-for-removal.patch => 0699-Remove-client-side-code-using-deprecated-for-removal.patch} (90%) rename patches/server/{0701-Fix-removing-recipes-from-RecipeIterator.patch => 0700-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0702-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0701-Prevent-sending-oversized-item-data-in-equipment-and.patch} (98%) rename patches/server/{0703-Hide-unnecessary-itemmeta-from-clients.patch => 0702-Hide-unnecessary-itemmeta-from-clients.patch} (98%) rename patches/server/{0704-Fix-Spigot-growth-modifiers.patch => 0703-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0705-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0704-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0706-Add-PlayerItemFrameChangeEvent.patch => 0705-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0707-Optimize-HashMapPalette.patch => 0706-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0708-Allow-delegation-to-vanilla-chunk-gen.patch => 0707-Allow-delegation-to-vanilla-chunk-gen.patch} (98%) rename patches/server/{0709-Collision-optimisations.patch => 0708-Collision-optimisations.patch} (99%) rename patches/server/{0710-Optimise-collision-checking-in-player-move-packet-ha.patch => 0709-Optimise-collision-checking-in-player-move-packet-ha.patch} (99%) rename patches/server/{0711-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0710-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0712-Add-more-Campfire-API.patch => 0711-Add-more-Campfire-API.patch} (100%) rename patches/server/{0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0712-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (97%) rename patches/server/{0714-Fix-tripwire-state-inconsistency.patch => 0713-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{0715-Forward-CraftEntity-in-teleport-command.patch => 0714-Forward-CraftEntity-in-teleport-command.patch} (95%) rename patches/server/{0716-Improve-scoreboard-entries.patch => 0715-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0717-Entity-powdered-snow-API.patch => 0716-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0718-Add-API-for-item-entity-health.patch => 0717-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0719-Fix-entity-type-tags-suggestions-in-selectors.patch => 0718-Fix-entity-type-tags-suggestions-in-selectors.patch} (99%) rename patches/server/{0720-Configurable-max-block-light-for-monster-spawning.patch => 0719-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0721-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0720-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0722-Load-effect-amplifiers-greater-than-127-correctly.patch => 0721-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0723-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0722-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0724-Fix-bees-aging-inside-hives.patch => 0723-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0725-Bucketable-API.patch => 0724-Bucketable-API.patch} (100%) rename patches/server/{0726-Validate-usernames.patch => 0725-Validate-usernames.patch} (95%) rename patches/server/{0727-Make-water-animal-spawn-height-configurable.patch => 0726-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0727-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (97%) rename patches/server/{0729-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0728-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0730-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0729-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0731-Multiple-Entries-with-Scoreboards.patch => 0730-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0732-Reset-placed-block-on-exception.patch => 0731-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0733-Add-configurable-height-for-slime-spawn.patch => 0732-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0734-Fix-xp-reward-for-baby-zombies.patch => 0733-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0735-Multi-Block-Change-API-Implementation.patch => 0734-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0736-Fix-NotePlayEvent.patch => 0735-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0737-Freeze-Tick-Lock-API.patch => 0736-Freeze-Tick-Lock-API.patch} (95%) rename patches/server/{0738-More-PotionEffectType-API.patch => 0737-More-PotionEffectType-API.patch} (100%) rename patches/server/{0739-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0738-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0740-API-for-creating-command-sender-which-forwards-feedb.patch => 0739-API-for-creating-command-sender-which-forwards-feedb.patch} (97%) rename patches/server/{0741-Add-missing-structure-set-seed-configs.patch => 0740-Add-missing-structure-set-seed-configs.patch} (99%) rename patches/server/{0742-Implement-regenerateChunk.patch => 0741-Implement-regenerateChunk.patch} (98%) rename patches/server/{0743-Fix-cancelled-powdered-snow-bucket-placement.patch => 0742-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0744-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0743-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (88%) rename patches/server/{0745-Add-GameEvent-tags.patch => 0744-Add-GameEvent-tags.patch} (97%) rename patches/server/{0746-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0745-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (100%) rename patches/server/{0747-Furnace-RecipesUsed-API.patch => 0746-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0748-Configurable-sculk-sensor-listener-range.patch => 0747-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0749-Add-missing-block-data-mins-and-maxes.patch => 0748-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0750-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0749-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (100%) rename patches/server/{0751-Put-world-into-worldlist-before-initing-the-world.patch => 0750-Put-world-into-worldlist-before-initing-the-world.patch} (96%) rename patches/server/{0752-Fix-Entity-Position-Desync.patch => 0751-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0753-Custom-Potion-Mixes.patch => 0752-Custom-Potion-Mixes.patch} (99%) rename patches/server/{0754-Force-close-world-loading-screen.patch => 0753-Force-close-world-loading-screen.patch} (100%) rename patches/server/{0755-Fix-falling-block-spawn-methods.patch => 0754-Fix-falling-block-spawn-methods.patch} (97%) rename patches/server/{0756-Expose-furnace-minecart-push-values.patch => 0755-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0757-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0756-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0758-More-Projectile-API.patch => 0757-More-Projectile-API.patch} (100%) rename patches/server/{0759-Fix-swamp-hut-cat-generation-deadlock.patch => 0758-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0760-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0759-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/server/{0761-Implement-getComputedBiome-API.patch => 0760-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0762-Make-some-itemstacks-nonnull.patch => 0761-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0763-Implement-enchantWithLevels-API.patch => 0762-Implement-enchantWithLevels-API.patch} (90%) rename patches/server/{0764-Fix-saving-in-unloadWorld.patch => 0763-Fix-saving-in-unloadWorld.patch} (90%) rename patches/server/{0765-Buffer-OOB-setBlock-calls.patch => 0764-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0766-Add-TameableDeathMessageEvent.patch => 0765-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0767-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0766-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (100%) rename patches/server/{0768-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0767-fix-player-loottables-running-when-mob-loot-gamerule.patch} (93%) rename patches/server/{0769-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0768-Ensure-entity-passenger-world-matches-ridden-entity.patch} (91%) rename patches/server/{0771-cache-resource-keys.patch => 0769-cache-resource-keys.patch} (100%) rename patches/server/{0772-Allow-changing-the-EnderDragon-podium.patch => 0770-Allow-changing-the-EnderDragon-podium.patch} (100%) delete mode 100644 patches/server/0770-Guard-against-invalid-entity-positions.patch rename patches/server/{0773-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0771-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0774-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0772-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0775-Prevent-tile-entity-copies-loading-chunks.patch => 0773-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/server/{0776-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0774-Use-username-instead-of-display-name-in-PlayerList-g.patch} (100%) rename patches/server/{0777-Pass-ServerLevel-for-gamerule-callbacks.patch => 0775-Pass-ServerLevel-for-gamerule-callbacks.patch} (98%) rename patches/server/{0778-Expand-PlayerItemDamageEvent.patch => 0776-Expand-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0779-WorldCreator-keepSpawnLoaded.patch => 0777-WorldCreator-keepSpawnLoaded.patch} (94%) rename patches/server/{0780-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0778-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0781-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0779-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0782-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0780-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0783-Fire-CauldronLevelChange-on-initial-fill.patch => 0781-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0784-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0782-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0785-Add-PlayerStopUsingItemEvent.patch => 0783-Add-PlayerStopUsingItemEvent.patch} (91%) rename patches/server/{0786-Don-t-tick-markers.patch => 0784-Don-t-tick-markers.patch} (97%) rename patches/server/{0787-Expand-FallingBlock-API.patch => 0785-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0788-Do-not-accept-invalid-client-settings.patch => 0786-Do-not-accept-invalid-client-settings.patch} (100%) rename patches/server/{0789-Add-support-for-Proxy-Protocol.patch => 0787-Add-support-for-Proxy-Protocol.patch} (94%) rename patches/server/{0790-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0788-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0791-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0789-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0792-Sanitize-sent-BlockEntity-NBT.patch => 0790-Sanitize-sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0793-Disable-component-selector-resolving-in-books-by-def.patch => 0791-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0794-Prevent-entity-loading-causing-async-lookups.patch => 0792-Prevent-entity-loading-causing-async-lookups.patch} (97%) rename patches/server/{0795-Throw-exception-on-world-create-while-being-ticked.patch => 0793-Throw-exception-on-world-create-while-being-ticked.patch} (97%) rename patches/server/{0796-Add-Alternate-Current-redstone-implementation.patch => 0794-Add-Alternate-Current-redstone-implementation.patch} (99%) rename patches/server/{0797-Dont-resent-entity-on-art-update.patch => 0795-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0798-Add-WardenAngerChangeEvent.patch => 0796-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0799-Add-option-for-strict-advancement-dimension-checks.patch => 0797-Add-option-for-strict-advancement-dimension-checks.patch} (96%) rename patches/server/{0800-Add-missing-important-BlockStateListPopulator-method.patch => 0798-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0801-Nameable-Banner-API.patch => 0799-Nameable-Banner-API.patch} (100%) rename patches/server/{0802-Don-t-broadcast-messages-to-command-blocks.patch => 0800-Don-t-broadcast-messages-to-command-blocks.patch} (95%) rename patches/server/{0803-Prevent-empty-items-from-being-added-to-world.patch => 0801-Prevent-empty-items-from-being-added-to-world.patch} (93%) rename patches/server/{0804-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0802-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0805-Add-Player-getFishHook.patch => 0803-Add-Player-getFishHook.patch} (100%) rename patches/server/{0806-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0804-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0807-Add-various-missing-EntityDropItemEvent-calls.patch => 0805-Add-various-missing-EntityDropItemEvent-calls.patch} (96%) rename patches/server/{0808-Fix-Bee-flower-NPE.patch => 0806-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0809-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0807-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (100%) rename patches/server/{0810-More-Teleport-API.patch => 0808-More-Teleport-API.patch} (100%) rename patches/server/{0811-Add-EntityPortalReadyEvent.patch => 0809-Add-EntityPortalReadyEvent.patch} (95%) rename patches/server/{0812-Don-t-use-level-random-in-entity-constructors.patch => 0810-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0813-Send-block-entities-after-destroy-prediction.patch => 0811-Send-block-entities-after-destroy-prediction.patch} (100%) rename patches/server/{0814-Warn-on-plugins-accessing-faraway-chunks.patch => 0812-Warn-on-plugins-accessing-faraway-chunks.patch} (96%) rename patches/server/{0815-Custom-Chat-Completion-Suggestions-API.patch => 0813-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0816-Add-and-fix-missing-BlockFadeEvents.patch => 0814-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0817-Collision-API.patch => 0815-Collision-API.patch} (100%) rename patches/server/{0818-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0816-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (92%) rename patches/server/{0819-Block-Ticking-API.patch => 0817-Block-Ticking-API.patch} (100%) rename patches/server/{0820-Add-Velocity-IP-Forwarding-Support.patch => 0818-Add-Velocity-IP-Forwarding-Support.patch} (98%) rename patches/server/{0821-Add-NamespacedKey-biome-methods.patch => 0819-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0822-Fix-plugin-loggers-on-server-shutdown.patch => 0820-Fix-plugin-loggers-on-server-shutdown.patch} (100%) rename patches/server/{0823-Stop-large-look-changes-from-crashing-the-server.patch => 0821-Stop-large-look-changes-from-crashing-the-server.patch} (96%) rename patches/server/{0824-Fire-EntityChangeBlockEvent-in-more-places.patch => 0822-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0825-Missing-eating-regain-reason.patch => 0823-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0826-Missing-effect-cause.patch => 0824-Missing-effect-cause.patch} (100%) rename patches/server/{0827-Added-byte-array-serialization-deserialization-for-P.patch => 0825-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0828-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0826-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0829-Call-BlockPhysicsEvent-more-often.patch => 0827-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0830-Configurable-chat-thread-limit.patch => 0828-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0831-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0829-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0832-fix-Jigsaw-block-kicking-user.patch => 0830-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0833-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0831-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0834-Add-getDrops-to-BlockState.patch => 0832-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0835-Fix-a-bunch-of-vanilla-bugs.patch => 0833-Fix-a-bunch-of-vanilla-bugs.patch} (98%) rename patches/server/{0836-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0834-Remove-unnecessary-onTrackingStart-during-navigation.patch} (94%) rename patches/server/{0837-Fix-custom-piglin-loved-items.patch => 0835-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0838-EntityPickupItemEvent-fixes.patch => 0836-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0839-Correctly-handle-interactions-with-items-on-cooldown.patch => 0837-Correctly-handle-interactions-with-items-on-cooldown.patch} (100%) rename patches/server/{0840-Add-PlayerInventorySlotChangeEvent.patch => 0838-Add-PlayerInventorySlotChangeEvent.patch} (97%) rename patches/server/{0841-Elder-Guardian-appearance-API.patch => 0839-Elder-Guardian-appearance-API.patch} (100%) rename patches/server/{0842-Allow-changing-bed-s-occupied-property.patch => 0840-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0843-Add-entity-knockback-API.patch => 0841-Add-entity-knockback-API.patch} (100%) rename patches/server/{0844-Detect-headless-JREs.patch => 0842-Detect-headless-JREs.patch} (100%) rename patches/server/{0845-fix-entity-vehicle-collision-event-not-called.patch => 0843-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0846-optimize-dirt-and-snow-spreading.patch => 0844-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{0847-Add-EntityToggleSitEvent.patch => 0845-Add-EntityToggleSitEvent.patch} (100%) rename patches/server/{0848-Add-fire-tick-delay-option.patch => 0846-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0849-Add-Moving-Piston-API.patch => 0847-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0850-Ignore-impossible-spawn-tick.patch => 0848-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0851-Track-projectile-source-for-fireworks-from-dispenser.patch => 0849-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0852-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0850-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0853-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0851-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (95%) rename patches/server/{0854-Add-PrePlayerAttackEntityEvent.patch => 0852-Add-PrePlayerAttackEntityEvent.patch} (93%) rename patches/server/{0855-ensure-reset-EnderDragon-boss-event-name.patch => 0853-ensure-reset-EnderDragon-boss-event-name.patch} (96%) rename patches/server/{0856-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0854-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0857-Add-Player-Warden-Warning-API.patch => 0855-Add-Player-Warden-Warning-API.patch} (100%) rename patches/server/{0858-More-vanilla-friendly-methods-to-update-trades.patch => 0856-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0859-Add-paper-dumplisteners-command.patch => 0857-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0860-check-global-player-list-where-appropriate.patch => 0858-check-global-player-list-where-appropriate.patch} (96%) rename patches/server/{0861-Fix-async-entity-add-due-to-fungus-trees.patch => 0859-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0862-ItemStack-damage-API.patch => 0860-ItemStack-damage-API.patch} (100%) rename patches/server/{0863-Friction-API.patch => 0861-Friction-API.patch} (98%) rename patches/server/{0864-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0862-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0865-Fix-player-kick-on-shutdown.patch => 0863-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0866-Sync-offhand-slot-in-menus.patch => 0864-Sync-offhand-slot-in-menus.patch} (97%) rename patches/server/{0867-Player-Entity-Tracking-Events.patch => 0865-Player-Entity-Tracking-Events.patch} (92%) rename patches/server/{0868-Limit-pet-look-distance.patch => 0866-Limit-pet-look-distance.patch} (100%) rename patches/server/{0869-Properly-resend-entities.patch => 0867-Properly-resend-entities.patch} (100%) rename patches/server/{0870-Fixes-and-additions-to-the-SpawnReason-API.patch => 0868-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0871-fix-Instruments.patch => 0869-fix-Instruments.patch} (100%) rename patches/server/{0872-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0870-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (100%) rename patches/server/{0873-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0871-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0874-Add-BlockLockCheckEvent.patch => 0872-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0875-Add-Sneaking-API-for-Entities.patch => 0873-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/server/{0876-Improve-logging-and-errors.patch => 0874-Improve-logging-and-errors.patch} (100%) rename patches/server/{0877-Improve-PortalEvents.patch => 0875-Improve-PortalEvents.patch} (93%) rename patches/server/{0878-Add-config-option-for-spider-worldborder-climbing.patch => 0876-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0879-Add-missing-SpigotConfig-logCommands-check.patch => 0877-Add-missing-SpigotConfig-logCommands-check.patch} (100%) rename patches/server/{0880-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0878-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0881-Flying-Fall-Damage.patch => 0879-Flying-Fall-Damage.patch} (96%) rename patches/server/{0882-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0880-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (99%) rename patches/server/{0883-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0881-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (91%) rename patches/server/{0884-config-for-disabling-entity-tag-tags.patch => 0882-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0885-Use-single-player-info-update-packet-on-join.patch => 0883-Use-single-player-info-update-packet-on-join.patch} (100%) rename patches/server/{0886-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0884-Correctly-shrink-items-during-EntityResurrectEvent.patch} (95%) rename patches/server/{0887-Win-Screen-API.patch => 0885-Win-Screen-API.patch} (100%) rename patches/server/{0888-Remove-CraftItemStack-setAmount-null-assignment.patch => 0886-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0889-Fix-force-opening-enchantment-tables.patch => 0887-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0890-Add-Entity-Body-Yaw-API.patch => 0888-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0891-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0889-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0892-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0890-Update-the-flag-when-a-captured-block-state-is-outda.patch} (90%) rename patches/server/{0893-Add-EntityFertilizeEggEvent.patch => 0891-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/server/{0894-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0892-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0895-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0893-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0896-Correctly-handle-ArmorStand-invisibility.patch => 0894-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0897-Fix-advancement-triggers-for-entity-damage.patch => 0895-Fix-advancement-triggers-for-entity-damage.patch} (97%) rename patches/server/{0898-Fix-text-display-error-on-spawn.patch => 0896-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0899-Fix-inventories-returning-null-Locations.patch => 0897-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0900-Add-Shearable-API.patch => 0898-Add-Shearable-API.patch} (100%) rename patches/server/{0901-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0899-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0902-Optimize-Hoppers.patch => 0900-Optimize-Hoppers.patch} (100%) rename patches/server/{0903-Fix-beehives-generating-from-using-bonemeal.patch => 0901-Fix-beehives-generating-from-using-bonemeal.patch} (100%) rename patches/server/{0904-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0902-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0905-Treat-sequence-violations-like-they-should-be.patch => 0903-Treat-sequence-violations-like-they-should-be.patch} (100%) rename patches/server/{0906-remove-duplicate-animate-packet-for-records.patch => 0904-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0907-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0905-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/server/{0908-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0906-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (91%) rename patches/server/{0909-Use-array-for-gamerule-storage.patch => 0907-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0910-Fix-a-couple-of-upstream-bed-issues.patch => 0908-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0911-Fix-demo-flag-not-enabling-demo-mode.patch => 0909-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0912-Add-Mob-Experience-reward-API.patch => 0910-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0913-Break-redstone-on-top-of-trap-doors-early.patch => 0911-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0914-Fix-DamageCause-for-Falling-Blocks.patch => 0912-Fix-DamageCause-for-Falling-Blocks.patch} (100%) rename patches/server/{0915-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0913-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0916-More-accurate-isInOpenWater-impl.patch => 0914-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0917-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0915-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0918-Optimise-recalcBlockCounts-for-empty-sections.patch => 0916-Optimise-recalcBlockCounts-for-empty-sections.patch} (100%) rename patches/server/{0919-Expand-PlayerItemMendEvent.patch => 0917-Expand-PlayerItemMendEvent.patch} (100%) rename patches/server/{0920-Refresh-ProjectileSource-for-projectiles.patch => 0918-Refresh-ProjectileSource-for-projectiles.patch} (97%) rename patches/server/{0921-Add-transient-modifier-API.patch => 0919-Add-transient-modifier-API.patch} (100%) rename patches/server/{0922-Fix-block-place-logic.patch => 0920-Fix-block-place-logic.patch} (97%) rename patches/server/{0923-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0921-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0924-Call-BlockGrowEvent-for-missing-blocks.patch => 0922-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0925-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0923-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (94%) rename patches/server/{0926-fix-MapLike-spam-for-missing-key-selector.patch => 0924-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0927-Fix-sniffer-removeExploredLocation.patch => 0925-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0928-Add-method-to-remove-all-active-potion-effects.patch => 0926-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0929-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch => 0927-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch} (100%) rename patches/server/{0930-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0928-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0931-Properly-cancel-usable-items.patch => 0929-Properly-cancel-usable-items.patch} (97%) rename patches/server/{0932-Add-event-for-player-editing-sign.patch => 0930-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0933-Only-tick-item-frames-if-players-can-see-it.patch => 0931-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0934-Fix-cmd-permission-levels-for-command-blocks.patch => 0932-Fix-cmd-permission-levels-for-command-blocks.patch} (98%) rename patches/server/{0935-Add-option-to-disable-block-updates.patch => 0933-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0936-Call-missing-BlockDispenseEvent.patch => 0934-Call-missing-BlockDispenseEvent.patch} (100%) rename patches/server/{0937-Don-t-load-chunks-for-supporting-block-checks.patch => 0935-Don-t-load-chunks-for-supporting-block-checks.patch} (90%) rename patches/server/{0938-Optimize-player-lookups-for-beacons.patch => 0936-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0939-Add-Sign-getInteractableSideFor.patch => 0937-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0940-Array-backed-synched-entity-data.patch => 0938-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0941-fix-item-meta-for-tadpole-buckets.patch => 0939-fix-item-meta-for-tadpole-buckets.patch} (97%) rename patches/server/{0942-Fix-BanList-API.patch => 0940-Fix-BanList-API.patch} (100%) rename patches/server/{0943-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0941-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0944-Fix-possible-NPE-on-painting-creation.patch => 0942-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0945-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0943-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0946-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0944-ExperienceOrb-should-call-EntitySpawnEvent.patch} (100%) rename patches/server/{0947-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0945-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0948-Add-whitelist-events.patch => 0946-Add-whitelist-events.patch} (100%) rename patches/server/{0949-Implement-PlayerFailMoveEvent.patch => 0947-Implement-PlayerFailMoveEvent.patch} (100%) rename patches/server/{0950-Folia-scheduler-and-owned-region-API.patch => 0948-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0951-Only-erase-allay-memory-on-non-item-targets.patch => 0949-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0952-API-for-updating-recipes-on-clients.patch => 0950-API-for-updating-recipes-on-clients.patch} (97%) rename patches/server/{0953-Fix-rotation-when-spawning-display-entities.patch => 0951-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0954-Only-capture-actual-tree-growth.patch => 0952-Only-capture-actual-tree-growth.patch} (98%) rename patches/server/{0955-Use-correct-source-for-mushroom-block-spread-event.patch => 0953-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0956-Respect-randomizeData-on-more-entities-when-spawning.patch => 0954-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0957-Use-correct-seed-on-api-world-load.patch => 0955-Use-correct-seed-on-api-world-load.patch} (90%) rename patches/server/{0958-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0956-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0959-Cache-map-ids-on-item-frames.patch => 0957-Cache-map-ids-on-item-frames.patch} (100%) rename patches/server/{0960-Fix-custom-statistic-criteria-creation.patch => 0958-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0961-Bandaid-fix-for-Effect.patch => 0959-Bandaid-fix-for-Effect.patch} (98%) rename patches/server/{0962-SculkCatalyst-bloom-API.patch => 0960-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0963-API-for-an-entity-s-scoreboard-name.patch => 0961-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0964-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0962-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (95%) rename patches/server/{0965-Deprecate-and-replace-methods-with-old-StructureType.patch => 0963-Deprecate-and-replace-methods-with-old-StructureType.patch} (96%) rename patches/server/{0966-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0964-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (100%) rename patches/server/{0967-Properly-handle-BlockBreakEvent-isDropItems.patch => 0965-Properly-handle-BlockBreakEvent-isDropItems.patch} (100%) rename patches/server/{0968-Fire-entity-death-event-for-ender-dragon.patch => 0966-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0969-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0967-Configurable-entity-tracking-range-by-Y-coordinate.patch} (94%) rename patches/server/{0970-Add-Listing-API-for-Player.patch => 0968-Add-Listing-API-for-Player.patch} (100%) rename patches/server/{0971-Configurable-Region-Compression-Format.patch => 0969-Configurable-Region-Compression-Format.patch} (96%) rename patches/server/{0972-Add-BlockFace-to-BlockDamageEvent.patch => 0970-Add-BlockFace-to-BlockDamageEvent.patch} (100%) rename patches/server/{0973-Fix-NPE-on-Boat-getStatus.patch => 0971-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0974-Expand-Pose-API.patch => 0972-Expand-Pose-API.patch} (95%) rename patches/server/{0975-More-DragonBattle-API.patch => 0973-More-DragonBattle-API.patch} (97%) rename patches/server/{0976-Deep-clone-unhandled-nbt-tags.patch => 0974-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0977-Add-PlayerPickItemEvent.patch => 0975-Add-PlayerPickItemEvent.patch} (100%) rename patches/server/{0978-Improve-performance-of-mass-crafts.patch => 0976-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{0979-Allow-trident-custom-damage.patch => 0977-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0980-Expose-hand-in-BlockCanBuildEvent.patch => 0978-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0981-Optimize-nearest-structure-border-iteration.patch => 0979-Optimize-nearest-structure-border-iteration.patch} (95%) rename patches/server/{0982-Implement-OfflinePlayer-isConnected.patch => 0980-Implement-OfflinePlayer-isConnected.patch} (100%) rename patches/server/{0983-Fix-inventory-desync.patch => 0981-Fix-inventory-desync.patch} (100%) rename patches/server/{0984-Add-titleOverride-to-InventoryOpenEvent.patch => 0982-Add-titleOverride-to-InventoryOpenEvent.patch} (98%) rename patches/server/{0985-Configure-sniffer-egg-hatch-time.patch => 0983-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0986-Do-crystal-portal-proximity-check-before-entity-look.patch => 0984-Do-crystal-portal-proximity-check-before-entity-look.patch} (97%) rename patches/server/{0987-Skip-POI-finding-if-stuck-in-vehicle.patch => 0985-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0988-Add-slot-sanity-checks-in-container-clicks.patch => 0986-Add-slot-sanity-checks-in-container-clicks.patch} (100%) rename patches/server/{0989-Call-BlockRedstoneEvents-for-lecterns.patch => 0987-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0990-Allow-proper-checking-of-empty-item-stacks.patch => 0988-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0991-Fix-silent-equipment-change-for-mobs.patch => 0989-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{0992-Fix-spigot-s-Forced-Stats.patch => 0990-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0993-Add-missing-InventoryHolders-to-inventories.patch => 0991-Add-missing-InventoryHolders-to-inventories.patch} (99%) rename patches/server/{0994-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0992-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (97%) rename patches/server/{0995-Actually-optimise-explosions.patch => 0993-Actually-optimise-explosions.patch} (100%) rename patches/server/{0996-Add-missing-logs-for-log-ips-config-option.patch => 0994-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0997-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0995-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{0998-Fix-SuspiciousStewMeta.patch => 0996-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{0999-Optimise-chunk-tick-iteration.patch => 0997-Optimise-chunk-tick-iteration.patch} (99%) rename patches/server/{1000-Lag-compensation-ticks.patch => 0998-Lag-compensation-ticks.patch} (97%) rename patches/server/{1001-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0999-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{1002-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 1000-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{1003-Fix-team-sidebar-objectives-not-being-cleared.patch => 1001-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{1004-Optimise-nearby-player-retrieval.patch => 1002-Optimise-nearby-player-retrieval.patch} (99%) rename patches/server/{1005-Fix-missing-map-initialize-event-call.patch => 1003-Fix-missing-map-initialize-event-call.patch} (95%) rename patches/server/{1006-Update-entity-data-when-attaching-firework-to-entity.patch => 1004-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{1007-Use-correct-variable-for-initializing-CraftLootTable.patch => 1005-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{1008-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 1006-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{1009-Fix-UnsafeValues-loadAdvancement.patch => 1007-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{1010-Add-player-idle-duration-API.patch => 1008-Add-player-idle-duration-API.patch} (100%) rename patches/server/{1011-Don-t-check-if-we-can-see-non-visible-entities.patch => 1009-Don-t-check-if-we-can-see-non-visible-entities.patch} (91%) rename patches/server/{1012-Fix-NPE-in-SculkBloomEvent-world-access.patch => 1010-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{1013-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 1011-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/server/{1014-Optimize-VarInts.patch => 1012-Optimize-VarInts.patch} (100%) rename patches/server/{1015-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 1013-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{1016-Add-predicate-for-blocks-when-raytracing.patch => 1014-Add-predicate-for-blocks-when-raytracing.patch} (98%) rename patches/server/{1017-Broadcast-take-item-packets-with-collector-as-source.patch => 1015-Broadcast-take-item-packets-with-collector-as-source.patch} (92%) rename patches/server/{1018-Expand-LingeringPotion-API.patch => 1016-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{1019-Add-MaterialTagsTest.patch => 1017-Add-MaterialTagsTest.patch} (100%) rename patches/server/{1020-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 1018-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (97%) rename patches/server/{1021-Add-hand-to-fish-event-for-all-player-interactions.patch => 1019-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{1022-Fix-several-issues-with-EntityBreedEvent.patch => 1020-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{1023-Add-UUID-attribute-modifier-API.patch => 1021-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{1024-Fix-missing-event-call-for-entity-teleport-API.patch => 1022-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{1025-Lazily-create-LootContext-for-criterions.patch => 1023-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{1026-Don-t-fire-sync-events-during-worldgen.patch => 1024-Don-t-fire-sync-events-during-worldgen.patch} (97%) rename patches/server/{1027-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 1025-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{1028-Restore-vanilla-entity-drops-behavior.patch => 1026-Restore-vanilla-entity-drops-behavior.patch} (98%) rename patches/server/{1029-Add-Structure-check-API.patch => 1027-Add-Structure-check-API.patch} (91%) rename patches/server/{1030-Dont-resend-blocks-on-interactions.patch => 1028-Dont-resend-blocks-on-interactions.patch} (100%) rename patches/server/{1031-Keep-previous-behavior-for-setResourcePack.patch => 1029-Keep-previous-behavior-for-setResourcePack.patch} (100%) rename patches/server/{1032-properly-read-and-store-sus-effect-duration.patch => 1030-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{1033-Use-correct-max-stack-size-in-crafter.patch => 1031-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{1034-add-more-scoreboard-API.patch => 1032-add-more-scoreboard-API.patch} (100%) rename patches/server/{1035-Improve-Registry.patch => 1033-Improve-Registry.patch} (100%) rename patches/server/{1036-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 1034-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (97%) rename patches/server/{1037-Add-experience-points-API.patch => 1035-Add-experience-points-API.patch} (97%) rename patches/server/{1038-Add-missing-InventoryType.patch => 1036-Add-missing-InventoryType.patch} (100%) rename patches/server/{1039-Add-drops-to-shear-events.patch => 1037-Add-drops-to-shear-events.patch} (100%) rename patches/server/{1040-Add-PlayerShieldDisableEvent.patch => 1038-Add-PlayerShieldDisableEvent.patch} (97%) rename patches/server/{1041-Add-HiddenPotionEffect-API.patch => 1039-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1042-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1040-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{1043-fix-ItemMeta-removing-CustomModelData.patch => 1041-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/server/{1044-Validate-ResourceLocation-in-NBT-reading.patch => 1042-Validate-ResourceLocation-in-NBT-reading.patch} (98%) rename patches/server/{1045-Properly-handle-experience-dropping-on-block-break.patch => 1043-Properly-handle-experience-dropping-on-block-break.patch} (98%) rename patches/server/{1046-Fixup-NamespacedKey-handling.patch => 1044-Fixup-NamespacedKey-handling.patch} (100%) diff --git a/patches/server/0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/patches/server/0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch index 8e1b598d3d1f..326e17b65e3a 100644 --- a/patches/server/0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch +++ b/patches/server/0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch @@ -9,11 +9,14 @@ type and we are not using its capabilities. Set thread priorities so main thread has above normal priority over server threads -Allow usage of a single thread executor by not using ForkJoin so single core CPU's. +Allow usage of a single thread executor by not using ForkJoin so single core CPU's +and reduce worldgen thread worker count for low core count CPUs. == AT == public net.minecraft.Util onThreadException(Ljava/lang/Thread;Ljava/lang/Throwable;)V +Co-authored-by: Spottedleaf + diff --git a/src/main/java/io/papermc/paper/util/ServerWorkerThread.java b/src/main/java/io/papermc/paper/util/ServerWorkerThread.java new file mode 100644 index 0000000000000000000000000000000000000000..b60f59cf5cc8eb84a6055b7861857dece7f2501b @@ -35,7 +38,7 @@ index 0000000000000000000000000000000000000000..b60f59cf5cc8eb84a6055b7861857dec + } +} diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index aa52b271bd556a29f774fde375b713d0d187521b..8188febd6f1039a31619b42af23df18afd2e985c 100644 +index aa52b271bd556a29f774fde375b713d0d187521b..90f5e7d36719dc9b464dd6ba0335da035bab29d3 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -86,7 +86,7 @@ public class Util { @@ -47,18 +50,27 @@ index aa52b271bd556a29f774fde375b713d0d187521b..8188febd6f1039a31619b42af23df18a private static final ExecutorService IO_POOL = makeIoExecutor("IO-Worker-", false); private static final ExecutorService DOWNLOAD_POOL = makeIoExecutor("Download-", true); // Paper start - don't submit BLOCKING PROFILE LOOKUPS to the world gen thread -@@ -152,15 +152,18 @@ public class Util { +@@ -152,15 +152,27 @@ public class Util { return FILENAME_DATE_TIME_FORMATTER.format(ZonedDateTime.now()); } - private static ExecutorService makeExecutor(String name) { - int i = Mth.clamp(Runtime.getRuntime().availableProcessors() - 1, 1, getMaxThreads()); + private static ExecutorService makeExecutor(String s, int priorityModifier) { // Paper - add priority -+ // Paper start - use simpler thread pool that allows 1 thread -+ int i = Math.min(8, Math.max(Runtime.getRuntime().availableProcessors() - 2, 1)); ++ // Paper start - use simpler thread pool that allows 1 thread and reduce worldgen thread worker count for low core count CPUs ++ int cpus = Runtime.getRuntime().availableProcessors() / 2; ++ int i; ++ if (cpus <= 4) { ++ i = cpus <= 2 ? 1 : 2; ++ } else if (cpus <= 8) { ++ // [5, 8] ++ i = Math.max(3, cpus - 2); ++ } else { ++ i = cpus * 2 / 3; ++ } ++ i = Math.min(8, i); + i = Integer.getInteger("Paper.WorkerThreadCount", i); ExecutorService executorService; -+ if (i <= 0) { executorService = MoreExecutors.newDirectExecutorService(); } else { @@ -71,7 +83,7 @@ index aa52b271bd556a29f774fde375b713d0d187521b..8188febd6f1039a31619b42af23df18a @Override protected void onTermination(Throwable throwable) { if (throwable != null) { -@@ -176,6 +179,7 @@ public class Util { +@@ -176,6 +188,7 @@ public class Util { return forkJoinWorkerThread; }, Util::onThreadException, true); } @@ -80,7 +92,7 @@ index aa52b271bd556a29f774fde375b713d0d187521b..8188febd6f1039a31619b42af23df18a return executorService; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 06d9cafeeedb3020c5e2313d32c6fe9285f99925..eac560bf8af3c7c28ed5eed61ef352f52d823cef 100644 +index 79a7f64edcfc750bf2753b5b20e4c2ae322e01ab..7a12c0f5a6cb205e8ae7667b9334efe1999e2a6a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -312,6 +312,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Date: Sun, 10 May 2020 22:12:46 -0400 -Subject: [PATCH] Ensure Entity AABB's are never invalid +Subject: [PATCH] Ensure Entity position and AABB are never invalid +Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a1d990aa2e79af9e1ff078892cdb38a382f21da7..a1172531baf637915a65fbdee8ca08f08034811d 100644 +index a1d990aa2e79af9e1ff078892cdb38a382f21da7..e1ce61dcadf325633ed809eef92fc07bac4cbf05 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -728,8 +728,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -14,33 +15,51 @@ index a1d990aa2e79af9e1ff078892cdb38a382f21da7..a1172531baf637915a65fbdee8ca08f0 public void setPos(double x, double y, double z) { - this.setPosRaw(x, y, z); - this.setBoundingBox(this.makeBoundingBox()); -+ this.setPosRaw(x, y, z, true); // Paper - force bounding box update -+ // this.setBoundingBox(this.makeBoundingBox()); // Paper - move into setPositionRaw ++ this.setPosRaw(x, y, z, true); // Paper - Block invalid positions and bounding box; force update ++ // this.setBoundingBox(this.makeBoundingBox()); // Paper - Block invalid positions and bounding box; move into setPosRaw } protected AABB makeBoundingBox() { -@@ -4244,6 +4244,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4243,7 +4243,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S + return this.getZ((2.0D * this.random.nextDouble() - 1.0D) * widthScale); } ++ // Paper start - Block invalid positions and bounding box ++ public static boolean checkPosition(Entity entity, double newX, double newY, double newZ) { ++ if (Double.isFinite(newX) && Double.isFinite(newY) && Double.isFinite(newZ)) { ++ return true; ++ } ++ ++ String entityInfo; ++ try { ++ entityInfo = entity.toString(); ++ } catch (Exception ex) { ++ entityInfo = "[Entity info unavailable] "; ++ } ++ LOGGER.error("New entity position is invalid! Tried to set invalid position ({},{},{}) for entity {} located at {}, entity info: {}", newX, newY, newZ, entity.getClass().getName(), entity.position, entityInfo, new Throwable()); ++ return false; ++ } public final void setPosRaw(double x, double y, double z) { -+ // Paper start + this.setPosRaw(x, y, z, false); + } + public final void setPosRaw(double x, double y, double z, boolean forceBoundingBoxUpdate) { -+ // Paper end ++ if (!checkPosition(this, x, y, z)) { ++ return; ++ } ++ // Paper end - Block invalid positions and bounding box // Paper start - rewrite chunk system if (this.updatingSectionStatus) { LOGGER.error("Refusing to update position for entity " + this + " to position " + new Vec3(x, y, z) + " since it is processing a section status update", new Throwable()); -@@ -4267,6 +4272,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4267,6 +4289,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.levelCallback.onMove(); } -+ // Paper start - never allow AABB to become desynced from position ++ // Paper start - Block invalid positions and bounding box; don't allow desync of pos and AABB + // hanging has its own special logic + if (!(this instanceof net.minecraft.world.entity.decoration.HangingEntity) && (forceBoundingBoxUpdate || this.position.x != x || this.position.y != y || this.position.z != z)) { + this.setBoundingBox(this.makeBoundingBox()); + } -+ // Paper end ++ // Paper end - Block invalid positions and bounding box } public void checkDespawn() {} diff --git a/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index d1e3210ee85c..2b209689ca73 100644 --- a/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ec224193e9ca7734fe533d5cfc0e316d5eed2adb..03eee2a591a533ec9930a262ffd4af2023a07c91 100644 +index 1f245a40358309f2e71f473af6df8e71739e8082..2b8706dfccd263c2843dd8661a260536134ad3f8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4493,4 +4493,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4510,4 +4510,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S void accept(Entity entity, double x, double y, double z); } diff --git a/patches/server/0457-Entity-isTicking.patch b/patches/server/0457-Entity-isTicking.patch index 5e72f3630c21..9321b7588031 100644 --- a/patches/server/0457-Entity-isTicking.patch +++ b/patches/server/0457-Entity-isTicking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 03eee2a591a533ec9930a262ffd4af2023a07c91..4a1245fb3ad821ee997b35f180390a07bc871982 100644 +index 2b8706dfccd263c2843dd8661a260536134ad3f8..cdfc00e4bee78fc7ac7dc9f52301f16cd7846698 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4498,5 +4498,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4515,5 +4515,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public static int nextEntityId() { return ENTITY_COUNTER.incrementAndGet(); } diff --git a/patches/server/0497-MC-4-Fix-item-position-desync.patch b/patches/server/0497-MC-4-Fix-item-position-desync.patch index 7d3b45708b2c..1f65133aff82 100644 --- a/patches/server/0497-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0497-MC-4-Fix-item-position-desync.patch @@ -28,10 +28,10 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..33d9131e9c75ef23cd637f5d6c39a270 public Vec3 decode(long x, long y, long z) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 82eb980dd463c423b2b30a3149166a227608bb96..5436949cd928303cf80b606c747f386f0189f774 100644 +index 02b102b2d3e8e8ca9d0c95d3a44a56a88bee3b18..3a8572ded5c9bdf621a8c16123707da9ceb70d54 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4269,6 +4269,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4286,6 +4286,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } // Paper end - rewrite chunk system diff --git a/patches/server/0644-Add-back-EntityPortalExitEvent.patch b/patches/server/0644-Add-back-EntityPortalExitEvent.patch index ab399684bb8d..b4d0987e13ee 100644 --- a/patches/server/0644-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0644-Add-back-EntityPortalExitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add back EntityPortalExitEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c598247bd8cf65f33845502107277518f7260d4d..8db434d01f2771a94cd4c4a662ea0482b2a02307 100644 +index c598247bd8cf65f33845502107277518f7260d4d..80df6afacee92b205949322c9ccfba6f37af0279 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3373,6 +3373,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -33,7 +33,7 @@ index c598247bd8cf65f33845502107277518f7260d4d..8db434d01f2771a94cd4c4a662ea0482 + pitch = event.getTo().getPitch(); + velocity = org.bukkit.craftbukkit.util.CraftVector.toNMS(event.getAfter()); + } -+ // Paper end ++ // Paper end - Call EntityPortalExitEvent if (worldserver == this.level) { // SPIGOT-6782: Just move the entity if a plugin changed the world to the one the entity is already in this.moveTo(shapedetectorshape.pos.x, shapedetectorshape.pos.y, shapedetectorshape.pos.z, shapedetectorshape.yRot, shapedetectorshape.xRot); @@ -43,8 +43,8 @@ index c598247bd8cf65f33845502107277518f7260d4d..8db434d01f2771a94cd4c4a662ea0482 entity.restoreFrom(this); - entity.moveTo(shapedetectorshape.pos.x, shapedetectorshape.pos.y, shapedetectorshape.pos.z, shapedetectorshape.yRot, entity.getXRot()); - entity.setDeltaMovement(shapedetectorshape.speed); -+ entity.moveTo(position.x, position.y, position.z, yaw, pitch); // Paper - use EntityPortalExitEvent values -+ entity.setDeltaMovement(velocity); // Paper - use EntityPortalExitEvent values ++ entity.moveTo(position.x, position.y, position.z, yaw, pitch); // Paper - EntityPortalExitEvent ++ entity.setDeltaMovement(velocity); // Paper - EntityPortalExitEvent // CraftBukkit start - Don't spawn the new entity if the current entity isn't spawned if (this.inWorld) { worldserver.addDuringTeleport(entity); diff --git a/patches/server/0645-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0645-Add-methods-to-find-targets-for-lightning-strikes.patch index 8b56c0c4a7a5..50dd1e74aa0a 100644 --- a/patches/server/0645-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0645-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -7,18 +7,18 @@ Subject: [PATCH] Add methods to find targets for lightning strikes public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index dbfd4a642e862f46a8b4fd1f3fc52c13ecf74284..1629a94a272f34d395b6be8f16944b9a8837d195 100644 +index dbfd4a642e862f46a8b4fd1f3fc52c13ecf74284..1e67fd45b4449b46992cb0617db22e74ce517b4d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -998,6 +998,11 @@ public class ServerLevel extends Level implements WorldGenLevel { } protected BlockPos findLightningTargetAround(BlockPos pos) { -+ // Paper start ++ // Paper start - Add methods to find targets for lightning strikes + return this.findLightningTargetAround(pos, false); + } + public BlockPos findLightningTargetAround(BlockPos pos, boolean returnNullWhenNoTarget) { -+ // Paper end ++ // Paper end - Add methods to find targets for lightning strikes BlockPos blockposition1 = this.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, pos); Optional optional = this.findLightningRod(blockposition1); @@ -26,19 +26,19 @@ index dbfd4a642e862f46a8b4fd1f3fc52c13ecf74284..1629a94a272f34d395b6be8f16944b9a if (!list.isEmpty()) { return ((LivingEntity) list.get(this.random.nextInt(list.size()))).blockPosition(); } else { -+ if (returnNullWhenNoTarget) return null; // Paper ++ if (returnNullWhenNoTarget) return null; // Paper - Add methods to find targets for lightning strikes if (blockposition1.getY() == this.getMinBuildHeight() - 1) { blockposition1 = blockposition1.above(2); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index a920936018a2e05ea72d68a83e6debb3807df353..095fa9e4c4d367a3cdd343ca71bef7a6564759be 100644 +index a920936018a2e05ea72d68a83e6debb3807df353..59ca5a224561f59bf1f44e11db9bc323ac2f6d71 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -701,6 +701,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { return (LightningStrike) lightning.getBukkitEntity(); } -+ // Paper start ++ // Paper start - Add methods to find targets for lightning strikes + @Override + public Location findLightningRod(Location location) { + return this.world.findLightningRod(io.papermc.paper.util.MCUtil.toBlockPosition(location)) @@ -53,7 +53,7 @@ index a920936018a2e05ea72d68a83e6debb3807df353..095fa9e4c4d367a3cdd343ca71bef7a6 + final BlockPos pos = this.world.findLightningTargetAround(io.papermc.paper.util.MCUtil.toBlockPosition(location), true); + return pos == null ? null : io.papermc.paper.util.MCUtil.toLocation(this.world, pos); + } -+ // Paper end ++ // Paper end - Add methods to find targets for lightning strikes + @Override public boolean generateTree(Location loc, TreeType type) { diff --git a/patches/server/0648-Add-more-advancement-API.patch b/patches/server/0648-Add-more-advancement-API.patch index 9504a69ec5b6..98836b6fe4a4 100644 --- a/patches/server/0648-Add-more-advancement-API.patch +++ b/patches/server/0648-Add-more-advancement-API.patch @@ -84,26 +84,26 @@ index 0000000000000000000000000000000000000000..adac21ce6db3ff7a56dbcd6bffc02143 + } +} diff --git a/src/main/java/net/minecraft/advancements/DisplayInfo.java b/src/main/java/net/minecraft/advancements/DisplayInfo.java -index d357deb8a9e1d4043f5fb3302b957b20ffc0cc32..d83acd5eac3d7d1893b1b97ab0b0764c06da016b 100644 +index d357deb8a9e1d4043f5fb3302b957b20ffc0cc32..54298a80bd86ae8c2bdbfc69d381173aea2f1410 100644 --- a/src/main/java/net/minecraft/advancements/DisplayInfo.java +++ b/src/main/java/net/minecraft/advancements/DisplayInfo.java @@ -24,6 +24,7 @@ public class DisplayInfo { private final boolean hidden; private float x; private float y; -+ public final io.papermc.paper.advancement.AdvancementDisplay paper = new io.papermc.paper.advancement.PaperAdvancementDisplay(this); // Paper ++ public final io.papermc.paper.advancement.AdvancementDisplay paper = new io.papermc.paper.advancement.PaperAdvancementDisplay(this); // Paper - Add more advancement API public DisplayInfo(ItemStack icon, Component title, Component description, Optional background, AdvancementType frame, boolean showToast, boolean announceToChat, boolean hidden) { this.title = title; diff --git a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java -index 52baf818579a6841b77ff80e42f4f1b9f635ea08..bd640e0d8d796ee114ff787def7e07edbeffc0a5 100644 +index 52baf818579a6841b77ff80e42f4f1b9f635ea08..8dfaca2efa0b0bdc97b75aaa83158a2e46361e4e 100644 --- a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java +++ b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancement.java @@ -29,12 +29,47 @@ public class CraftAdvancement implements org.bukkit.advancement.Advancement { return Collections.unmodifiableCollection(this.handle.value().criteria().keySet()); } -+ // Paper start ++ // Paper start - Add more advancement API @Override - public AdvancementDisplay getDisplay() { - if (this.handle.value().display().isEmpty()) { @@ -149,7 +149,7 @@ index 52baf818579a6841b77ff80e42f4f1b9f635ea08..bd640e0d8d796ee114ff787def7e07ed + final net.minecraft.advancements.AdvancementNode advancementNode = net.minecraft.server.MinecraftServer.getServer().getAdvancements().tree().get(this.handle); + return java.util.Objects.requireNonNull(advancementNode, "could not find internal advancement node for advancement " + this.handle.id()).root().holder().toBukkit(); } -+ // Paper end ++ // Paper end - Add more advancement API } diff --git a/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementDisplay.java b/src/main/java/org/bukkit/craftbukkit/advancement/CraftAdvancementDisplay.java index 8ca86852319d7463f60832bc98b825b0b4325995..62ada73302c6b3ce3fb2dcc8c31a1d9c0ac4fd09 100644 diff --git a/patches/server/0649-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0649-Add-ItemFactory-getSpawnEgg-API.patch index 1876c86ea17e..c1c7ed6a2c5c 100644 --- a/patches/server/0649-Add-ItemFactory-getSpawnEgg-API.patch +++ b/patches/server/0649-Add-ItemFactory-getSpawnEgg-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ItemFactory#getSpawnEgg API diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 12f90520e4d6d5fcea0c2f8e19dad9102970cd99..2dc5cdf72034f27cf9c61ce979a7018f169bb786 100644 +index 12f90520e4d6d5fcea0c2f8e19dad9102970cd99..ef0c6e04a89704688f7b5461b27c0036abbf647d 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java @@ -564,4 +564,19 @@ public final class CraftItemFactory implements ItemFactory { @@ -26,7 +26,7 @@ index 12f90520e4d6d5fcea0c2f8e19dad9102970cd99..2dc5cdf72034f27cf9c61ce979a7018f + net.minecraft.world.item.SpawnEggItem eggItem = net.minecraft.world.item.SpawnEggItem.byId(nmsType); + return eggItem == null ? null : new net.minecraft.world.item.ItemStack(eggItem).asBukkitMirror(); + } -+ // Paper end ++ // Paper end - old getSpawnEgg API } diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java index 6d6a7abe1aa39a2e4ecf3ac5f55b1f227e1a9db9..010014c06fcea7d603160928f124f54d6e5e63d8 100644 diff --git a/patches/server/0650-Add-critical-damage-API.patch b/patches/server/0650-Add-critical-damage-API.patch index d2acf3ffd513..3c62cf890e2d 100644 --- a/patches/server/0650-Add-critical-damage-API.patch +++ b/patches/server/0650-Add-critical-damage-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add critical damage API diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java -index df8c88bfa749e02f633350446101dcce05db7ac1..1a0f86b5a632469942e33c237c247d2d1dee4a3d 100644 +index df8c88bfa749e02f633350446101dcce05db7ac1..ed1277fad60992344b94f8a939febaca3edd9702 100644 --- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java @@ -191,4 +191,18 @@ public class DamageSource { @@ -25,10 +25,10 @@ index df8c88bfa749e02f633350446101dcce05db7ac1..1a0f86b5a632469942e33c237c247d2d + this.critical = critical; + return this; + } -+ // Paper end ++ // Paper end - add critical damage API } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index e77a2d3a321313e8476068d895dfb39cb152f7e6..9193e0fb5c2a545907c084322b548722312a5583 100644 +index e77a2d3a321313e8476068d895dfb39cb152f7e6..21a02cab65506a3746ddc709d92c6fde244446eb 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1263,7 +1263,7 @@ public abstract class Player extends LivingEntity { @@ -36,7 +36,7 @@ index e77a2d3a321313e8476068d895dfb39cb152f7e6..9193e0fb5c2a545907c084322b548722 } - boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity; -+ boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity; // Paper - Add critical damage API - conflict on change ++ boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity; // Paper - Add critical damage API; diff on change flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper flag2 = flag2 && !this.isSprinting(); diff --git a/patches/server/0651-Fix-issues-with-mob-conversion.patch b/patches/server/0651-Fix-issues-with-mob-conversion.patch index 237d313b8999..657dd4ec5dd3 100644 --- a/patches/server/0651-Fix-issues-with-mob-conversion.patch +++ b/patches/server/0651-Fix-issues-with-mob-conversion.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix issues with mob conversion diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java -index e88af2dcc0f7fc5190654e2640f67d706e6c8c81..8b818a7cb835512c4bd2ea9641d4bfd904150332 100644 +index e88af2dcc0f7fc5190654e2640f67d706e6c8c81..92974452d8f63fde8524cfac305ee2ef5212f840 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java @@ -90,10 +90,15 @@ public class Skeleton extends AbstractSkeleton { @@ -13,47 +13,47 @@ index e88af2dcc0f7fc5190654e2640f67d706e6c8c81..8b818a7cb835512c4bd2ea9641d4bfd9 protected void doFreezeConversion() { - this.convertTo(EntityType.STRAY, true, org.bukkit.event.entity.EntityTransformEvent.TransformReason.FROZEN, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.FROZEN); // CraftBukkit - add spawn and transform reasons -+ Stray stray = this.convertTo(EntityType.STRAY, true, org.bukkit.event.entity.EntityTransformEvent.TransformReason.FROZEN, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.FROZEN); // CraftBukkit - add spawn and transform reasons // Paper - track result of conversion ++ Stray stray = this.convertTo(EntityType.STRAY, true, org.bukkit.event.entity.EntityTransformEvent.TransformReason.FROZEN, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.FROZEN); // CraftBukkit - add spawn and transform reasons // Paper - Fix issues with mob conversion if (!this.isSilent()) { this.level().levelEvent((Player) null, 1048, this.blockPosition(), 0); } -+ // Paper start - reset conversion time to prevent event spam ++ // Paper start - Fix issues with mob conversion; reset conversion time to prevent event spam + if (stray == null) { + this.conversionTime = 300; + } -+ // Paper end ++ // Paper end - Fix issues with mob conversion } diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index 7bcd5498c734873b74bee503992ec4806ae61df7..4257f2282152aee09533c9a2e53018d3e49effa4 100644 +index 7bcd5498c734873b74bee503992ec4806ae61df7..01a2016ac82807d28ffe407b7dbb74bdbcde503e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -241,6 +241,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { if (zoglin != null) { zoglin.addEffect(new MobEffectInstance(MobEffects.CONFUSION, 200, 0)); } -+ // Paper start - reset to prevent event spam ++ // Paper start - Fix issues with mob conversion; reset to prevent event spam + else { + this.timeInOverworld = 0; + } -+ // Paper end ++ // Paper end - Fix issues with mob conversion } diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/AbstractPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/AbstractPiglin.java -index 22c8d6233be5e4f7fb4f03176e83dbee02256b1f..4384cbf9c53b220128cd278f126466b143fab2f2 100644 +index 22c8d6233be5e4f7fb4f03176e83dbee02256b1f..c575a86ca5c1bbdd6d2faf6e4a609af8ba03cab6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/AbstractPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/AbstractPiglin.java @@ -120,6 +120,11 @@ public abstract class AbstractPiglin extends Monster { if (entitypigzombie != null) { entitypigzombie.addEffect(new MobEffectInstance(MobEffects.CONFUSION, 200, 0)); } -+ // Paper start - reset to prevent event spam ++ // Paper start - Fix issues with mob conversion; reset to prevent event spam + else { + this.timeInOverworld = 0; + } -+ // Paper end ++ // Paper end - Fix issues with mob conversion } diff --git a/patches/server/0653-Goat-ram-API.patch b/patches/server/0653-Goat-ram-API.patch index 443c58b4ee0d..04a1b6c68646 100644 --- a/patches/server/0653-Goat-ram-API.patch +++ b/patches/server/0653-Goat-ram-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Goat ram API diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 52f3f679568955b632a60d44de687c6db0e2b38a..3ec2f590dfe9410f1a9d2afb530eebfcce917798 100644 +index 52f3f679568955b632a60d44de687c6db0e2b38a..ee1b2c1fec4b76a821e1d52fbb07e1f302b2efa1 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -392,4 +392,15 @@ public class Goat extends Animal { @@ -22,7 +22,7 @@ index 52f3f679568955b632a60d44de687c6db0e2b38a..3ec2f590dfe9410f1a9d2afb530eebfc + brain.eraseMemory(MemoryModuleType.TEMPTING_PLAYER); + brain.setActiveActivityIfPossible(net.minecraft.world.entity.schedule.Activity.RAM); + } -+ // Paper end ++ // Paper end - Goat ram API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGoat.java index 65fcb36e849da6949c123a6f3672b485036f368e..2c21de478bff9cdf13ba46cd041831d54c11e924 100644 diff --git a/patches/server/0655-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0655-Add-Raw-Byte-Entity-Serialization.patch index 4479e72d2188..6e0757e2641b 100644 --- a/patches/server/0655-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0655-Add-Raw-Byte-Entity-Serialization.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add Raw Byte Entity Serialization public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8db434d01f2771a94cd4c4a662ea0482b2a02307..58aa16888666f81ba688037bff61d149a03767af 100644 +index 80df6afacee92b205949322c9ccfba6f37af0279..024b993b1fb709297fb495a5fd8224484c48c8b6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2159,6 +2159,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -22,7 +22,7 @@ index 8db434d01f2771a94cd4c4a662ea0482b2a02307..58aa16888666f81ba688037bff61d149 + this.passengers = ImmutableList.copyOf(pass); + return result; + } -+ // Paper end ++ // Paper end - Entity serialization api public boolean save(CompoundTag nbt) { return this.isPassenger() ? false : this.saveAsPassenger(nbt); } diff --git a/patches/server/0656-Vanilla-command-permission-fixes.patch b/patches/server/0656-Vanilla-command-permission-fixes.patch index 6813c9adc7c5..6b39bdbefbb7 100644 --- a/patches/server/0656-Vanilla-command-permission-fixes.patch +++ b/patches/server/0656-Vanilla-command-permission-fixes.patch @@ -10,48 +10,48 @@ requirement, as well as for namespaced vanilla commands. public-f com.mojang.brigadier.tree.CommandNode requirement diff --git a/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java b/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java -index 899008b2980d13f1be6280cd8cb959c53a29bebf..f875507241ac6769545e91cd3285232b75b892f0 100644 +index 899008b2980d13f1be6280cd8cb959c53a29bebf..d5f7da3502575f6847f3c22ab0e942848a7c6031 100644 --- a/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java +++ b/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java @@ -14,9 +14,17 @@ import java.util.Collections; import java.util.function.Predicate; public abstract class ArgumentBuilder> { -+ // Paper start ++ // Paper start - Vanilla command permission fixes + private static final Predicate DEFAULT_REQUIREMENT = s -> true; + + @SuppressWarnings("unchecked") + public static Predicate defaultRequirement() { + return (Predicate) DEFAULT_REQUIREMENT; + } -+ // Paper end ++ // Paper end - Vanilla command permission fixes private final RootCommandNode arguments = new RootCommandNode<>(); private Command command; - private Predicate requirement = s -> true; -+ private Predicate requirement = defaultRequirement(); // Paper ++ private Predicate requirement = defaultRequirement(); // Paper - Vanilla command permission fixes private CommandNode target; private RedirectModifier modifier = null; private boolean forks; diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 3b3fa067ee5a95d52645147c2d9d1e43d7a789b6..bc0f9bf88de8f79f8e2aa2261d5a8bdc9dd1f53a 100644 +index 3b3fa067ee5a95d52645147c2d9d1e43d7a789b6..9a01905bdbf0b721a129984d71c5745fa5e3c8a5 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -257,6 +257,13 @@ public class Commands { } this.vanillaCommandNodes.addAll(this.dispatcher.getRoot().getChildren()); // Paper -+ // Paper start ++ // Paper start - Vanilla command permission fixes + for (final CommandNode node : this.dispatcher.getRoot().getChildren()) { + if (node.getRequirement() == com.mojang.brigadier.builder.ArgumentBuilder.defaultRequirement()) { + node.requirement = stack -> stack.source == CommandSource.NULL || stack.getBukkitSender().hasPermission(org.bukkit.craftbukkit.command.VanillaCommandWrapper.getPermission(node)); + } + } -+ // Paper end ++ // Paper end - Vanilla command permission fixes // CraftBukkit start } diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java -index 5e6645e16b185aaa6f719055ddbf670b8741fead..f4961a0f360a39124544cbe0adbd94eeeef32ab5 100644 +index 5e6645e16b185aaa6f719055ddbf670b8741fead..bda9a0b99184adce28bb7851612ed7f4e324826d 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java +++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java @@ -86,7 +86,23 @@ public final class VanillaCommandWrapper extends BukkitCommand { @@ -59,7 +59,7 @@ index 5e6645e16b185aaa6f719055ddbf670b8741fead..f4961a0f360a39124544cbe0adbd94ee public static String getPermission(CommandNode vanillaCommand) { - return "minecraft.command." + ((vanillaCommand.getRedirect() == null) ? vanillaCommand.getName() : vanillaCommand.getRedirect().getName()); -+ // Paper start ++ // Paper start - Vanilla command permission fixes + final String commandName; + if (vanillaCommand.getRedirect() == null) { + commandName = vanillaCommand.getName(); @@ -75,7 +75,7 @@ index 5e6645e16b185aaa6f719055ddbf670b8741fead..f4961a0f360a39124544cbe0adbd94ee + return maybeNamespaced.substring(prefix.length()); + } + return maybeNamespaced; -+ // Paper end ++ // Paper end - Vanilla command permission fixes } private String toDispatcher(String[] args, String name) { diff --git a/patches/server/0657-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0657-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index 55882d08414f..ee3ea5e0f740 100644 --- a/patches/server/0657-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0657-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/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1629a94a272f34d395b6be8f16944b9a8837d195..ce74bfb123427c5459c03c3c8f85445077c329c7 100644 +index 1e67fd45b4449b46992cb0617db22e74ce517b4d..dfbec0bd98f58f7e01d0f45f2ab2c433f9094cc3 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1578,9 +1578,13 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -23,7 +23,7 @@ index 1629a94a272f34d395b6be8f16944b9a8837d195..ce74bfb123427c5459c03c3c8f854450 - h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper + ((org.bukkit.craftbukkit.entity.CraftHumanEntity)h).getHandle().closeUnloadedInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper } -+ // Paper end ++ // Paper end - this area looks like it can load chunks, change the behavior } } // Spigot End @@ -51,7 +51,7 @@ index 9f7c149d3ad1175d55ec02e295ee43bc571c3280..87fdc78409fb16c961c04a5551980a8a @Override public void doCloseContainer() { diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 9193e0fb5c2a545907c084322b548722312a5583..bce494bb7bc1ce20809ac7d355f04aa7aad78308 100644 +index 21a02cab65506a3746ddc709d92c6fde244446eb..6018717ea7ff9d3947e48aacd3dbedc075a8376e 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -508,6 +508,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0658-Fix-GameProfileCache-concurrency.patch b/patches/server/0658-Fix-GameProfileCache-concurrency.patch index 68ec851967e9..bd43b7aa1847 100644 --- a/patches/server/0658-Fix-GameProfileCache-concurrency.patch +++ b/patches/server/0658-Fix-GameProfileCache-concurrency.patch @@ -7,17 +7,17 @@ Separate lookup and state access locks prevent lookups from stalling simple state access/write calls diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf391593651e 100644 +index 85172de608f04abca1be4591749564ccc0e8d600..572263b112762e69bd61fedf7c0fdd810164e6dd 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -60,6 +60,11 @@ public class GameProfileCache { @Nullable private Executor executor; -+ // Paper start ++ // Paper start - Fix GameProfileCache concurrency + protected final java.util.concurrent.locks.ReentrantLock stateLock = new java.util.concurrent.locks.ReentrantLock(); + protected final java.util.concurrent.locks.ReentrantLock lookupLock = new java.util.concurrent.locks.ReentrantLock(); -+ // Paper end ++ // Paper end - Fix GameProfileCache concurrency + public GameProfileCache(GameProfileRepository profileRepository, File cacheFile) { this.profileRepository = profileRepository; @@ -26,13 +26,13 @@ index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf39 } private void safeAdd(GameProfileCache.GameProfileInfo entry) { -+ try { this.stateLock.lock(); // Paper - allow better concurrency ++ try { this.stateLock.lock(); // Paper - Fix GameProfileCache concurrency GameProfile gameprofile = entry.getProfile(); entry.setLastAccess(this.getNextOperation()); this.profilesByName.put(gameprofile.getName().toLowerCase(Locale.ROOT), entry); this.profilesByUUID.put(gameprofile.getId(), entry); -+ } finally { this.stateLock.unlock(); } // Paper - allow better concurrency ++ } finally { this.stateLock.unlock(); } // Paper - Fix GameProfileCache concurrency } private static Optional lookupGameProfile(GameProfileRepository repository, String name) { @@ -40,20 +40,20 @@ index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf39 // Paper start public @Nullable GameProfile getProfileIfCached(String name) { -+ try { this.stateLock.lock(); // Paper - allow better concurrency ++ try { this.stateLock.lock(); // Paper - Fix GameProfileCache concurrency GameProfileCache.GameProfileInfo entry = this.profilesByName.get(name.toLowerCase(Locale.ROOT)); if (entry == null) { return null; } entry.setLastAccess(this.getNextOperation()); return entry.getProfile(); -+ } finally { this.stateLock.unlock(); } // Paper - allow better concurrency ++ } finally { this.stateLock.unlock(); } // Paper - Fix GameProfileCache concurrency } // Paper end public Optional get(String name) { String s1 = name.toLowerCase(Locale.ROOT); -+ boolean stateLocked = true; try { this.stateLock.lock(); // Paper - allow better concurrency ++ boolean stateLocked = true; try { this.stateLock.lock(); // Paper - Fix GameProfileCache concurrency GameProfileCache.GameProfileInfo usercache_usercacheentry = (GameProfileCache.GameProfileInfo) this.profilesByName.get(s1); boolean flag = false; @@ -61,12 +61,12 @@ index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf39 if (usercache_usercacheentry != null) { usercache_usercacheentry.setLastAccess(this.getNextOperation()); optional = Optional.of(usercache_usercacheentry.getProfile()); -+ stateLocked = false; this.stateLock.unlock(); // Paper - allow better concurrency ++ stateLocked = false; this.stateLock.unlock(); // Paper - Fix GameProfileCache concurrency } else { -+ stateLocked = false; this.stateLock.unlock(); // Paper - allow better concurrency -+ try { this.lookupLock.lock(); // Paper - allow better concurrency ++ stateLocked = false; this.stateLock.unlock(); // Paper - Fix GameProfileCache concurrency ++ try { this.lookupLock.lock(); // Paper - Fix GameProfileCache concurrency optional = GameProfileCache.lookupGameProfile(this.profileRepository, name); // CraftBukkit - use correct case for offline players -+ } finally { this.lookupLock.unlock(); } // Paper - allow better concurrency ++ } finally { this.lookupLock.unlock(); } // Paper - Fix GameProfileCache concurrency if (optional.isPresent()) { this.add((GameProfile) optional.get()); flag = false; @@ -74,7 +74,7 @@ index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf39 } return optional; -+ } finally { if (stateLocked) { this.stateLock.unlock(); } } // Paper - allow better concurrency ++ } finally { if (stateLocked) { this.stateLock.unlock(); } } // Paper - Fix GameProfileCache concurrency } public CompletableFuture> getAsync(String username) { @@ -82,7 +82,7 @@ index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf39 } public Optional get(UUID uuid) { -+ try { this.stateLock.lock(); // Paper - allow better concurrency ++ try { this.stateLock.lock(); // Paper - Fix GameProfileCache concurrency GameProfileCache.GameProfileInfo usercache_usercacheentry = (GameProfileCache.GameProfileInfo) this.profilesByUUID.get(uuid); if (usercache_usercacheentry == null) { @@ -90,7 +90,7 @@ index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf39 usercache_usercacheentry.setLastAccess(this.getNextOperation()); return Optional.of(usercache_usercacheentry.getProfile()); } -+ } finally { this.stateLock.unlock(); } // Paper - allow better concurrency ++ } finally { this.stateLock.unlock(); } // Paper - Fix GameProfileCache concurrency } public void setExecutor(Executor executor) { @@ -99,7 +99,7 @@ index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf39 DateFormat dateformat = GameProfileCache.createDateFormat(); - this.getTopMRUProfiles(org.spigotmc.SpigotConfig.userCacheCap).forEach((usercache_usercacheentry) -> { // Spigot -+ this.listTopMRUProfiles(org.spigotmc.SpigotConfig.userCacheCap).forEach((usercache_usercacheentry) -> { // Spigot // Paper - allow better concurrency ++ this.listTopMRUProfiles(org.spigotmc.SpigotConfig.userCacheCap).forEach((usercache_usercacheentry) -> { // Spigot // Paper - Fix GameProfileCache concurrency jsonarray.add(GameProfileCache.writeGameProfile(usercache_usercacheentry, dateformat)); }); String s = this.gson.toJson(jsonarray); @@ -108,7 +108,7 @@ index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf39 private Stream getTopMRUProfiles(int limit) { - return ImmutableList.copyOf(this.profilesByUUID.values()).stream().sorted(Comparator.comparing(GameProfileCache.GameProfileInfo::getLastAccess).reversed()).limit((long) limit); -+ // Paper start - allow better concurrency ++ // Paper start - Fix GameProfileCache concurrency + return this.listTopMRUProfiles(limit).stream(); + } + @@ -120,7 +120,7 @@ index 85172de608f04abca1be4591749564ccc0e8d600..85df8ebb1e0030e98a2b03688451cf39 + this.stateLock.unlock(); + } } -+ // Paper end ++ // Paper end - Fix GameProfileCache concurrency private static JsonElement writeGameProfile(GameProfileCache.GameProfileInfo entry, DateFormat dateFormat) { JsonObject jsonobject = new JsonObject(); diff --git a/patches/server/0660-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0660-Add-paper-mobcaps-and-paper-playermobcaps.patch index 435570bcbe15..3e9c79b5ea96 100644 --- a/patches/server/0660-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0660-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -257,14 +257,14 @@ index 0000000000000000000000000000000000000000..d3b39d88a72ca25057fd8574d32f28db + } +} diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 9df761f5cf043e8d2dffa711c20ab32fe2992331..d08c7b0b52065980f1f13c5533ff6355028322db 100644 +index 9df761f5cf043e8d2dffa711c20ab32fe2992331..48cc5623973713e07d95639e5359fc15e59785cc 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -190,6 +190,16 @@ public final class NaturalSpawner { world.getProfiler().pop(); } -+ // Paper start ++ // Paper start - Add mobcaps commands + public static int globalLimitForCategory(final ServerLevel level, final MobCategory category, final int spawnableChunkCount) { + final int categoryLimit = level.getWorld().getSpawnLimitUnsafe(CraftSpawnCategory.toBukkit(category)); + if (categoryLimit < 1) { @@ -272,36 +272,36 @@ index 9df761f5cf043e8d2dffa711c20ab32fe2992331..d08c7b0b52065980f1f13c5533ff6355 + } + return categoryLimit * spawnableChunkCount / NaturalSpawner.MAGIC_NUMBER; + } -+ // Paper end ++ // Paper end - Add mobcaps commands + public static void spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner) { // Paper start - add parameters and int ret type spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7df30c0d3f647b74dd812fc9d286feb95b52dfae..8f61efe32500ebe47e13d96fd96df646adb3dd5b 100644 +index 7df30c0d3f647b74dd812fc9d286feb95b52dfae..65809db4522c3b1ce0b5bf11828de129713d7d21 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2279,6 +2279,11 @@ public final class CraftServer implements Server { @Override public int getSpawnLimit(SpawnCategory spawnCategory) { -+ // Paper start ++ // Paper start - Add mobcaps commands + return this.getSpawnLimitUnsafe(spawnCategory); + } + public int getSpawnLimitUnsafe(final SpawnCategory spawnCategory) { -+ // Paper end ++ // Paper end - Add mobcaps commands return this.spawnCategoryLimit.getOrDefault(spawnCategory, -1); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index b52d3413cfe725ff5778c897a0ba06ca834e533f..24156bd9d964e2c32bc758dd9e099744cf8ac647 100644 +index b882e8d1b3e45277b5e9e3a359f51d9703bdb2d0..3eeb878924827861f79c6bc1b510d0167b9ac10b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1761,9 +1761,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { Preconditions.checkArgument(spawnCategory != null, "SpawnCategory cannot be null"); Preconditions.checkArgument(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory.%s are not supported", spawnCategory); -+ // Paper start ++ // Paper start - Add mobcaps commands + return this.getSpawnLimitUnsafe(spawnCategory); + } + public final int getSpawnLimitUnsafe(final SpawnCategory spawnCategory) { @@ -309,7 +309,7 @@ index b52d3413cfe725ff5778c897a0ba06ca834e533f..24156bd9d964e2c32bc758dd9e099744 if (limit < 0) { - limit = this.server.getSpawnLimit(spawnCategory); + limit = this.server.getSpawnLimitUnsafe(spawnCategory); -+ // Paper end ++ // Paper end - Add mobcaps commands } return limit; } diff --git a/patches/server/0661-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0661-Sanitize-ResourceLocation-error-logging.patch index 989716f6fd7f..1359f8648a2d 100644 --- a/patches/server/0661-Sanitize-ResourceLocation-error-logging.patch +++ b/patches/server/0661-Sanitize-ResourceLocation-error-logging.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Sanitize ResourceLocation error logging diff --git a/src/main/java/net/minecraft/resources/ResourceLocation.java b/src/main/java/net/minecraft/resources/ResourceLocation.java -index d3300e43523429fdd0e61c5aa9aed2e6bc78e07e..38e2a8cec48bc779b8154d6d719031f457a2403e 100644 +index d3300e43523429fdd0e61c5aa9aed2e6bc78e07e..5f9dcab27a07969c93555ad0892683c62cbebc8c 100644 --- a/src/main/java/net/minecraft/resources/ResourceLocation.java +++ b/src/main/java/net/minecraft/resources/ResourceLocation.java @@ -211,7 +211,7 @@ public class ResourceLocation implements Comparable { @@ -13,7 +13,7 @@ index d3300e43523429fdd0e61c5aa9aed2e6bc78e07e..38e2a8cec48bc779b8154d6d719031f4 private static String assertValidNamespace(String namespace, String path) { if (!isValidNamespace(namespace)) { - throw new ResourceLocationException("Non [a-z0-9_.-] character in namespace of location: " + namespace + ":" + path); -+ throw new ResourceLocationException("Non [a-z0-9_.-] character in namespace of location: " + org.apache.commons.lang3.StringUtils.normalizeSpace(namespace) + ":" + org.apache.commons.lang3.StringUtils.normalizeSpace(path)); // Paper ++ throw new ResourceLocationException("Non [a-z0-9_.-] character in namespace of location: " + org.apache.commons.lang3.StringUtils.normalizeSpace(namespace) + ":" + org.apache.commons.lang3.StringUtils.normalizeSpace(path)); // Paper - Sanitize ResourceLocation error logging } else { return namespace; } @@ -22,7 +22,7 @@ index d3300e43523429fdd0e61c5aa9aed2e6bc78e07e..38e2a8cec48bc779b8154d6d719031f4 private static String assertValidPath(String namespace, String path) { if (!isValidPath(path)) { - throw new ResourceLocationException("Non [a-z0-9/._-] character in path of location: " + namespace + ":" + path); -+ throw new ResourceLocationException("Non [a-z0-9/._-] character in path of location: " + namespace + ":" + org.apache.commons.lang3.StringUtils.normalizeSpace(path)); // Paper ++ throw new ResourceLocationException("Non [a-z0-9/._-] character in path of location: " + namespace + ":" + org.apache.commons.lang3.StringUtils.normalizeSpace(path)); // Paper - Sanitize ResourceLocation error logging } else { return path; } diff --git a/patches/server/0664-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0664-Manually-inline-methods-in-BlockPosition.patch index 93554d0b99e8..3921497e1b52 100644 --- a/patches/server/0664-Manually-inline-methods-in-BlockPosition.patch +++ b/patches/server/0664-Manually-inline-methods-in-BlockPosition.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Manually inline methods in BlockPosition diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index e5dfc4009cb06e500c6b54ee4228117061758b53..c47aa87db42dea74a2e07ffe6015257fa337da23 100644 +index e5dfc4009cb06e500c6b54ee4228117061758b53..3a9715a81a8551c07ba61850e82b1ccb8a324c80 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -515,9 +515,9 @@ public class BlockPos extends Vec3i { @@ -26,26 +26,26 @@ index e5dfc4009cb06e500c6b54ee4228117061758b53..c47aa87db42dea74a2e07ffe6015257f @Override public BlockPos.MutableBlockPos setX(int i) { - super.setX(i); -+ this.x = i; // Paper ++ this.x = i; // Paper - force line return this; } @Override public BlockPos.MutableBlockPos setY(int i) { - super.setY(i); -+ this.y = i; // Paper ++ this.y = i; // Paper - force line return this; } @Override public BlockPos.MutableBlockPos setZ(int i) { - super.setZ(i); -+ this.z = i; // Paper ++ this.z = i; // Paper - force line return this; } diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java -index e87ef99260bff134529e00b9a75381cecaec01a4..74a3f2ba6aaec39ba4721fb546bfccb325c86343 100644 +index e87ef99260bff134529e00b9a75381cecaec01a4..0f8766ea9dc1893f88c5b1e7d6e2a474100efcbb 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java +++ b/src/main/java/net/minecraft/core/Vec3i.java @@ -19,9 +19,9 @@ public class Vec3i implements Comparable { @@ -55,9 +55,9 @@ index e87ef99260bff134529e00b9a75381cecaec01a4..74a3f2ba6aaec39ba4721fb546bfccb3 - private int x; - private int y; - private int z; -+ protected int x; // Paper - protected -+ protected int y; // Paper - protected -+ protected int z; // Paper - protected ++ protected int x; // Paper - force line; protected ++ protected int y; // Paper - force line; protected ++ protected int z; // Paper - force line; protected public static Codec offsetCodec(int maxAbsValue) { return ExtraCodecs.validate(CODEC, (vec) -> { diff --git a/patches/server/0665-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0665-Name-craft-scheduler-threads-according-to-the-plugin.patch index e97fc69558b1..30f250f23531 100644 --- a/patches/server/0665-Name-craft-scheduler-threads-according-to-the-plugin.patch +++ b/patches/server/0665-Name-craft-scheduler-threads-according-to-the-plugin.patch @@ -8,7 +8,7 @@ Provides quick access to culprits running far more threads than they should be diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncTask.java -index 365b7e7c665bec357fb76d1479bf17da6f603590..b17d40ced3f2d5859c61f1826ead72c5f07abe9f 100644 +index 365b7e7c665bec357fb76d1479bf17da6f603590..e97f6b76ef2fe21c7c2eca8d4a707e5866d70de9 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncTask.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncTask.java @@ -25,7 +25,10 @@ class CraftAsyncTask extends CraftTask { @@ -27,7 +27,7 @@ index 365b7e7c665bec357fb76d1479bf17da6f603590..b17d40ced3f2d5859c61f1826ead72c5 } } } -+ } finally { thread.setName(nameBefore); } // Paper - name worker thread according ++ } finally { thread.setName(nameBefore); } // Paper - name threads according to running plugin } LinkedList getWorkers() { diff --git a/patches/server/0666-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0666-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index 779fad9d1aea..1c15bbb35aff 100644 --- a/patches/server/0666-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0666-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -9,18 +9,15 @@ previous getChunkAt method which had inlined logic for loaded chunks did get inlined, but the standard CPS.getChunkAt method was not inlined. -Paper recently reverted this optimisation, so it's been reintroduced -here. - diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 35ca44c88497e0b07f43ba7bf092360365b1c53a..e297be9cf8c59b6b8d051d5db70c3bebcd235a2d 100644 +index 35ca44c88497e0b07f43ba7bf092360365b1c53a..69730027a70e91ec32604b1fb32820363ea20a71 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -458,6 +458,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public final LevelChunk getChunk(int chunkX, int chunkZ) { // Paper - final to help inline -+ // Paper start - make sure loaded chunks get the inlined variant of this function ++ // Paper start - Perf: make sure loaded chunks get the inlined variant of this function + net.minecraft.server.level.ServerChunkCache cps = ((ServerLevel)this).getChunkSource(); + if (cps.mainThread == Thread.currentThread()) { + LevelChunk ifLoaded = cps.getChunkAtIfLoadedMainThread(chunkX, chunkZ); @@ -28,7 +25,7 @@ index 35ca44c88497e0b07f43ba7bf092360365b1c53a..e297be9cf8c59b6b8d051d5db70c3beb + return ifLoaded; + } + } -+ // Paper end - make sure loaded chunks get the inlined variant of this function ++ // Paper end - Perf: make sure loaded chunks get the inlined variant of this function return (LevelChunk) this.getChunk(chunkX, chunkZ, ChunkStatus.FULL, true); // Paper - avoid a method jump } diff --git a/patches/server/0667-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0667-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch index 5475ff2092f7..16b343c84c4b 100644 --- a/patches/server/0667-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch +++ b/patches/server/0667-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch @@ -8,14 +8,14 @@ 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/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java -index e4b3a70ff9f906a10f2ba3c07642193ca3269db7..dfeda27add86be0d56ad023f7391fa21e36c5062 100644 +index e4b3a70ff9f906a10f2ba3c07642193ca3269db7..7f7c05c498dfe11842a0c35d6e8c2c428cf7647b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java @@ -51,6 +51,7 @@ public class ChunkStorage implements AutoCloseable { // CraftBukkit start private boolean check(ServerChunkCache cps, int x, int z) { -+ if (true) return true; // Paper - 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 - return true, we need to set light populated to true so the converter recognizes the chunk as being "full" ++ if (true) return true; // Paper - Perf: 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 - return true, we need to set light populated to true so the converter recognizes the chunk as being "full" ChunkPos pos = new ChunkPos(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/server/0672-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0672-Oprimise-map-impl-for-tracked-players.patch index 8c8fcd06e9d7..73a51061c948 100644 --- a/patches/server/0672-Oprimise-map-impl-for-tracked-players.patch +++ b/patches/server/0672-Oprimise-map-impl-for-tracked-players.patch @@ -7,7 +7,7 @@ Reference2BooleanOpenHashMap is going to have better lookups than HashMap. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 07abd089e5091d292d4542bbe0fbb416a111bf8e..a0603e567deeede8b4cd2ba57ded44f29239d78d 100644 +index 07abd089e5091d292d4542bbe0fbb416a111bf8e..534493aaddced9200e1618d5eabf2b176a1f35b6 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1301,7 +1301,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -15,7 +15,7 @@ index 07abd089e5091d292d4542bbe0fbb416a111bf8e..a0603e567deeede8b4cd2ba57ded44f2 private final int range; SectionPos lastSectionPos; - public final Set seenBy = Sets.newIdentityHashSet(); -+ public final Set seenBy = new it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<>(); // Paper - optimise map impl ++ public final Set seenBy = new it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<>(); // Paper - Perf: optimise map impl public TrackedEntity(Entity entity, int i, int j, boolean flag) { this.serverEntity = new ServerEntity(ChunkMap.this.level, entity, j, flag, this::broadcast, this.seenBy); // CraftBukkit diff --git a/patches/server/0673-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0673-Optimise-BlockSoil-nearby-water-lookup.patch index ec0e0d60a8c4..467d7d58e753 100644 --- a/patches/server/0673-Optimise-BlockSoil-nearby-water-lookup.patch +++ b/patches/server/0673-Optimise-BlockSoil-nearby-water-lookup.patch @@ -7,10 +7,10 @@ Apparently the abstract block iteration was taking about 75% of the method call. diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index 6c1e8ba518c883aa5c079b4c94f068833609acc3..59bbdead2ebd8965d222540c7243dde051bbcc4b 100644 +index 6c1e8ba518c883aa5c079b4c94f068833609acc3..47eb8bf604a63259c0200cada1403dc005a6cbac 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -@@ -151,19 +151,27 @@ public class FarmBlock extends Block { +@@ -151,19 +151,28 @@ public class FarmBlock extends Block { } private static boolean isNearWater(LevelReader world, BlockPos pos) { @@ -21,7 +21,7 @@ index 6c1e8ba518c883aa5c079b4c94f068833609acc3..59bbdead2ebd8965d222540c7243dde0 - do { - if (!iterator.hasNext()) { - return false; -+ // Paper start - remove abstract block iteration ++ // Paper start - Perf: remove abstract block iteration + int xOff = pos.getX(); + int yOff = pos.getY(); + int zOff = pos.getZ(); @@ -46,6 +46,7 @@ index 6c1e8ba518c883aa5c079b4c94f068833609acc3..59bbdead2ebd8965d222540c7243dde0 - - return true; + return false; ++ // Paper end - Perf: remove abstract block iteration } @Override diff --git a/patches/server/0675-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0675-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch index d2cc318b7d73..ac15766a9ad5 100644 --- a/patches/server/0675-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch +++ b/patches/server/0675-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch @@ -10,14 +10,14 @@ hoping that at least then we don't swap chunks, and maybe recover them all. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index a95909bc818f395ce5772c5129f9cc9b789ce133..df9ae808c5a59ea25145c9df62f42fb33d159021 100644 +index a95909bc818f395ce5772c5129f9cc9b789ce133..72cfe25cbc2076bc83c9f965ab70b0e636800212 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -70,6 +70,18 @@ import net.minecraft.world.ticks.ProtoChunkTicks; import org.slf4j.Logger; public class ChunkSerializer { -+ // Paper start ++ // Paper start - Attempt to recalculate regionfile header if it is corrupt + // TODO: Check on update + public static long getLastWorldSaveTime(CompoundTag chunkData) { + final int dataVersion = ChunkStorage.getVersion(chunkData); @@ -28,7 +28,7 @@ index a95909bc818f395ce5772c5129f9cc9b789ce133..df9ae808c5a59ea25145c9df62f42fb3 + return chunkData.getLong("LastUpdate"); + } + } -+ // Paper end ++ // Paper end - Attempt to recalculate regionfile header if it is corrupt public static final Codec> BLOCK_STATE_CODEC = PalettedContainer.codecRW(Block.BLOCK_STATE_REGISTRY, BlockState.CODEC, PalettedContainer.Strategy.SECTION_STATES, Blocks.AIR.defaultBlockState(), null); // Paper - Anti-Xray - Add preset block states private static final Logger LOGGER = LogUtils.getLogger(); @@ -42,7 +42,7 @@ index a95909bc818f395ce5772c5129f9cc9b789ce133..df9ae808c5a59ea25145c9df62f42fb3 nbttagcompound.putString("Status", BuiltInRegistries.CHUNK_STATUS.getKey(chunk.getStatus()).toString()); BlendingData blendingdata = chunk.getBlendingData(); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java -index dfeda27add86be0d56ad023f7391fa21e36c5062..8ebecb588058da174b0e0e19e54fcddfeeca1422 100644 +index 7f7c05c498dfe11842a0c35d6e8c2c428cf7647b..4a84ada69c6abc8f2743579d4451e639836274b4 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java @@ -41,7 +41,7 @@ public class ChunkStorage implements AutoCloseable { @@ -50,19 +50,19 @@ index dfeda27add86be0d56ad023f7391fa21e36c5062..8ebecb588058da174b0e0e19e54fcddf // Paper start - async chunk io // remove IO worker - this.regionFileCache = new RegionFileStorage(directory, dsync); // Paper - nuke IOWorker -+ this.regionFileCache = new RegionFileStorage(directory, dsync, true); // Paper - nuke IOWorker // Paper ++ this.regionFileCache = new RegionFileStorage(directory, dsync, true); // Paper - nuke IOWorker // Paper - Attempt to recalculate regionfile header if it is corrupt // Paper end - async chunk io } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionBitmap.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionBitmap.java -index c8298a597818227de33a4afce4698ec0666cf758..6baceb6ce9021c489be6e79d338a9704285afa26 100644 +index c8298a597818227de33a4afce4698ec0666cf758..6762b0f71ea9e369bb77103b7f1938983cb77a44 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionBitmap.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionBitmap.java @@ -9,6 +9,27 @@ import java.util.BitSet; public class RegionBitmap { private final BitSet used = new BitSet(); -+ // Paper start ++ // Paper start - Attempt to recalculate regionfile header if it is corrupt + public final void copyFrom(RegionBitmap other) { + BitSet thisBitset = this.used; + BitSet otherBitset = other.used; @@ -81,20 +81,20 @@ index c8298a597818227de33a4afce4698ec0666cf758..6baceb6ce9021c489be6e79d338a9704 + bitset.set(from, from + length); + return true; + } -+ // Paper end ++ // Paper end - Attempt to recalculate regionfile header if it is corrupt + public void force(int start, int size) { this.used.set(start, start + size); } 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 647ce340c81606ab86d33e1f9dec1fb0afc262d8..98c8b676fc5b2add44d6ddf5d32f85bc07ea22cb 100644 +index 647ce340c81606ab86d33e1f9dec1fb0afc262d8..2c951dfb17a11bd81c19080a1f8f498f8e534cff 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 @@ -50,6 +50,355 @@ public class RegionFile implements AutoCloseable { public final java.util.concurrent.locks.ReentrantLock fileLock = new java.util.concurrent.locks.ReentrantLock(); // Paper public final Path regionFile; // Paper -+ // Paper start - try to recover from RegionFile header corruption ++ // Paper start - Attempt to recalculate regionfile header if it is corrupt + private static long roundToSectors(long bytes) { + long sectors = bytes >>> 12; // 4096 = 2^12 + long remainingBytes = bytes & 4095; @@ -441,7 +441,7 @@ index 647ce340c81606ab86d33e1f9dec1fb0afc262d8..98c8b676fc5b2add44d6ddf5d32f85bc + } + + final boolean canRecalcHeader; // final forces compile fail on new constructor -+ // Paper end ++ // Paper end - Attempt to recalculate regionfile header if it is corrupt + // Paper start - Cache chunk status private final net.minecraft.world.level.chunk.ChunkStatus[] statuses = new net.minecraft.world.level.chunk.ChunkStatus[32 * 32]; diff --git a/patches/server/0676-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0676-Use-Velocity-compression-and-cipher-natives.patch index c37c0306aa0c..8ba39c1f5dfb 100644 --- a/patches/server/0676-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/0676-Use-Velocity-compression-and-cipher-natives.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use Velocity compression and cipher natives diff --git a/build.gradle.kts b/build.gradle.kts -index c6241f858209ed662d8720217d143340916024e9..517920023bc28fea04eeb709364d5a7292adcc5e 100644 +index c6241f858209ed662d8720217d143340916024e9..ff1636d3e047e124c73496f4942e991abe01c150 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -39,6 +39,11 @@ dependencies { @@ -16,12 +16,12 @@ index c6241f858209ed662d8720217d143340916024e9..517920023bc28fea04eeb709364d5a72 + implementation("com.velocitypowered:velocity-native:3.1.2-SNAPSHOT") { + isTransitive = false + } -+ // Paper end ++ // Paper end - Use Velocity cipher runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6") runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") diff --git a/src/main/java/net/minecraft/network/CipherDecoder.java b/src/main/java/net/minecraft/network/CipherDecoder.java -index 778beb445eac5769b9e4e07b4d1294c50ae2602b..c712fb8193115e1ab71b5e40fb0ccb9413062b03 100644 +index 778beb445eac5769b9e4e07b4d1294c50ae2602b..7b895b6a626da6297f07582e96d98ecfb6c8c951 100644 --- a/src/main/java/net/minecraft/network/CipherDecoder.java +++ b/src/main/java/net/minecraft/network/CipherDecoder.java @@ -7,13 +7,29 @@ import java.util.List; @@ -29,17 +29,17 @@ index 778beb445eac5769b9e4e07b4d1294c50ae2602b..c712fb8193115e1ab71b5e40fb0ccb94 public class CipherDecoder extends MessageToMessageDecoder { - private final CipherBase cipher; -+ private final com.velocitypowered.natives.encryption.VelocityCipher cipher; // Paper ++ private final com.velocitypowered.natives.encryption.VelocityCipher cipher; // Paper - Use Velocity cipher - public CipherDecoder(Cipher cipher) { - this.cipher = new CipherBase(cipher); -+ public CipherDecoder(com.velocitypowered.natives.encryption.VelocityCipher cipher) { // Paper -+ this.cipher = cipher; // Paper ++ public CipherDecoder(com.velocitypowered.natives.encryption.VelocityCipher cipher) { // Paper - Use Velocity cipher ++ this.cipher = cipher; // Paper - Use Velocity cipher } protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List list) throws Exception { - list.add(this.cipher.decipher(channelHandlerContext, byteBuf)); -+ // Paper start ++ // Paper start - Use Velocity cipher + ByteBuf compatible = com.velocitypowered.natives.util.MoreByteBufUtils.ensureCompatible(channelHandlerContext.alloc(), cipher, byteBuf); + try { + cipher.process(compatible); @@ -48,18 +48,18 @@ index 778beb445eac5769b9e4e07b4d1294c50ae2602b..c712fb8193115e1ab71b5e40fb0ccb94 + compatible.release(); // compatible will never be used if we throw an exception + throw e; + } -+ // Paper end ++ // Paper end - Use Velocity cipher } + -+ // Paper start ++ // Paper start - Use Velocity cipher + @Override + public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { + cipher.close(); + } -+ // Paper end ++ // Paper end - Use Velocity cipher } diff --git a/src/main/java/net/minecraft/network/CipherEncoder.java b/src/main/java/net/minecraft/network/CipherEncoder.java -index 0f3d502a9680006bcdcd7d272240a2e5c3b46790..5dd7be70603e8754d2625bb9d16900cb01b9c730 100644 +index 0f3d502a9680006bcdcd7d272240a2e5c3b46790..ffa1c48585fbbc1d30826d435043527f6183a3ee 100644 --- a/src/main/java/net/minecraft/network/CipherEncoder.java +++ b/src/main/java/net/minecraft/network/CipherEncoder.java @@ -4,15 +4,32 @@ import io.netty.buffer.ByteBuf; @@ -70,19 +70,19 @@ index 0f3d502a9680006bcdcd7d272240a2e5c3b46790..5dd7be70603e8754d2625bb9d16900cb -public class CipherEncoder extends MessageToByteEncoder { - private final CipherBase cipher; -+public class CipherEncoder extends io.netty.handler.codec.MessageToMessageEncoder { // Paper - change superclass -+ private final com.velocitypowered.natives.encryption.VelocityCipher cipher; // Paper ++public class CipherEncoder extends io.netty.handler.codec.MessageToMessageEncoder { // Paper - Use Velocity cipher; change superclass ++ private final com.velocitypowered.natives.encryption.VelocityCipher cipher; // Paper - Use Velocity cipher - public CipherEncoder(Cipher cipher) { - this.cipher = new CipherBase(cipher); -+ public CipherEncoder(com.velocitypowered.natives.encryption.VelocityCipher cipher) { // Paper -+ this.cipher = cipher; // Paper ++ public CipherEncoder(com.velocitypowered.natives.encryption.VelocityCipher cipher) { // Paper - Use Velocity cipher ++ this.cipher = cipher; // Paper - Use Velocity cipher } - protected void encode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, ByteBuf byteBuf2) throws Exception { - this.cipher.encipher(byteBuf, byteBuf2); + protected void encode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List list) throws Exception { -+ // Paper start ++ // Paper start - Use Velocity cipher + ByteBuf compatible = com.velocitypowered.natives.util.MoreByteBufUtils.ensureCompatible(channelHandlerContext.alloc(), cipher, byteBuf); + try { + cipher.process(compatible); @@ -91,29 +91,29 @@ index 0f3d502a9680006bcdcd7d272240a2e5c3b46790..5dd7be70603e8754d2625bb9d16900cb + compatible.release(); // compatible will never be used if we throw an exception + throw e; + } -+ // Paper end ++ // Paper end - Use Velocity cipher } + -+ // Paper start ++ // Paper start - Use Velocity cipher + @Override + public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { + cipher.close(); + } -+ // Paper end ++ // Paper end - Use Velocity cipher } diff --git a/src/main/java/net/minecraft/network/CompressionDecoder.java b/src/main/java/net/minecraft/network/CompressionDecoder.java -index 2758c257cb4e2b0497bd9243c635f8fe3dbc414c..a0bab433d003de49bf55e71fd744ce47d6899182 100644 +index 2758c257cb4e2b0497bd9243c635f8fe3dbc414c..2763052eb2d5b8eb432022ab00a417976f4b2927 100644 --- a/src/main/java/net/minecraft/network/CompressionDecoder.java +++ b/src/main/java/net/minecraft/network/CompressionDecoder.java @@ -13,13 +13,20 @@ public class CompressionDecoder extends ByteToMessageDecoder { public static final int MAXIMUM_COMPRESSED_LENGTH = 2097152; public static final int MAXIMUM_UNCOMPRESSED_LENGTH = 8388608; private final Inflater inflater; -+ private final com.velocitypowered.natives.compression.VelocityCompressor compressor; // Paper ++ private final com.velocitypowered.natives.compression.VelocityCompressor compressor; // Paper - Use Velocity cipher private int threshold; private boolean validateDecompressed; -+ // Paper start ++ // Paper start - Use Velocity cipher public CompressionDecoder(int compressionThreshold, boolean rejectsBadPackets) { + this(null, compressionThreshold, rejectsBadPackets); + } @@ -123,7 +123,7 @@ index 2758c257cb4e2b0497bd9243c635f8fe3dbc414c..a0bab433d003de49bf55e71fd744ce47 - this.inflater = new Inflater(); + this.inflater = compressor == null ? new Inflater() : null; + this.compressor = compressor; -+ // Paper end ++ // Paper end - Use Velocity cipher } protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List list) throws Exception { @@ -131,15 +131,15 @@ index 2758c257cb4e2b0497bd9243c635f8fe3dbc414c..a0bab433d003de49bf55e71fd744ce47 } } -+ if (inflater != null) { // Paper - use velocity compression - fallback to vanilla inflater ++ if (inflater != null) { // Paper - Use Velocity cipher; fallback to vanilla inflater this.setupInflaterInput(byteBuf); ByteBuf byteBuf2 = this.inflate(channelHandlerContext, i); this.inflater.reset(); list.add(byteBuf2); -+ return; // Paper - use velocity compression ++ return; // Paper - Use Velocity cipher + } // Paper - use velocity compression + -+ // Paper start - use velocity compression ++ // Paper start - Use Velocity cipher + int claimedUncompressedSize = i; // OBFHELPER + ByteBuf compatibleIn = com.velocitypowered.natives.util.MoreByteBufUtils.ensureCompatible(channelHandlerContext.alloc(), this.compressor, byteBuf); + ByteBuf uncompressed = com.velocitypowered.natives.util.MoreByteBufUtils.preferredBuffer(channelHandlerContext.alloc(), this.compressor, claimedUncompressedSize); @@ -153,25 +153,25 @@ index 2758c257cb4e2b0497bd9243c635f8fe3dbc414c..a0bab433d003de49bf55e71fd744ce47 + } finally { + compatibleIn.release(); + } -+ // Paper end - use velocity compression ++ // Paper end - Use Velocity cipher } } } -+ // Paper start ++ // Paper start - Use Velocity cipher + @Override + public void handlerRemoved0(ChannelHandlerContext ctx) throws Exception { + if (this.compressor != null) { + this.compressor.close(); + } + } -+ // Paper end ++ // Paper end - Use Velocity cipher + private void setupInflaterInput(ByteBuf buf) { ByteBuffer byteBuffer; if (buf.nioBufferCount() > 0) { diff --git a/src/main/java/net/minecraft/network/CompressionEncoder.java b/src/main/java/net/minecraft/network/CompressionEncoder.java -index 859af8c845bae9781a62fa4acae56c6e2d449e10..ec7239fd6a2ecf732d2843f9426e4cb69d166ce6 100644 +index 859af8c845bae9781a62fa4acae56c6e2d449e10..f67f59f287d9a5cdd685b6b56ed1daf3f091e099 100644 --- a/src/main/java/net/minecraft/network/CompressionEncoder.java +++ b/src/main/java/net/minecraft/network/CompressionEncoder.java @@ -6,21 +6,36 @@ import io.netty.handler.codec.MessageToByteEncoder; @@ -179,12 +179,12 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..ec7239fd6a2ecf732d2843f9426e4cb6 public class CompressionEncoder extends MessageToByteEncoder { - private final byte[] encodeBuf = new byte[8192]; -+ private final byte[] encodeBuf; // Paper ++ private final byte[] encodeBuf; // Paper - Use Velocity cipher private final Deflater deflater; -+ private final com.velocitypowered.natives.compression.VelocityCompressor compressor; // Paper ++ private final com.velocitypowered.natives.compression.VelocityCompressor compressor; // Paper - Use Velocity cipher private int threshold; -+ // Paper start ++ // Paper start - Use Velocity cipher public CompressionEncoder(int compressionThreshold) { + this(null, compressionThreshold); + } @@ -199,17 +199,17 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..ec7239fd6a2ecf732d2843f9426e4cb6 + this.deflater = null; + } + this.compressor = compressor; -+ // Paper end ++ // Paper end - Use Velocity cipher } - protected void encode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, ByteBuf byteBuf2) { -+ protected void encode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, ByteBuf byteBuf2) throws Exception { // Paper ++ protected void encode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, ByteBuf byteBuf2) throws Exception { // Paper - Use Velocity cipher int i = byteBuf.readableBytes(); if (i < this.threshold) { VarInt.write(byteBuf2, 0); byteBuf2.writeBytes(byteBuf); } else { -+ // Paper start ++ // Paper start - Use Velocity cipher + if (this.deflater != null) { byte[] bs = new byte[i]; byteBuf.readBytes(bs); @@ -228,12 +228,12 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..ec7239fd6a2ecf732d2843f9426e4cb6 + } finally { + compatibleIn.release(); + } -+ // Paper end ++ // Paper end - Use Velocity cipher } } -+ // Paper start ++ // Paper start - Use Velocity cipher + @Override + protected ByteBuf allocateBuffer(ChannelHandlerContext ctx, ByteBuf msg, boolean preferDirect) throws Exception{ + if (this.compressor != null) { @@ -258,13 +258,13 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..ec7239fd6a2ecf732d2843f9426e4cb6 + this.compressor.close(); + } + } -+ // Paper end ++ // Paper end - Use Velocity cipher + public int getThreshold() { return this.threshold; } diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index d4e23bfb6135d52c1359d7ccfabc6a0e595afe6e..4ab5773f5869e40272b2da9e21e2efbd1a7eec5a 100644 +index d4e23bfb6135d52c1359d7ccfabc6a0e595afe6e..7f611f575c231dd459ae8ef17a10f71ef361a2cb 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -669,11 +669,28 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -275,7 +275,7 @@ index d4e23bfb6135d52c1359d7ccfabc6a0e595afe6e..4ab5773f5869e40272b2da9e21e2efbd - this.encrypted = true; - this.channel.pipeline().addBefore("splitter", "decrypt", new CipherDecoder(decryptionCipher)); - this.channel.pipeline().addBefore("prepender", "encrypt", new CipherEncoder(encryptionCipher)); -+ // Paper start ++ // Paper start - Use Velocity cipher +// public void setEncryptionKey(Cipher decryptionCipher, Cipher encryptionCipher) { +// this.encrypted = true; +// this.channel.pipeline().addBefore("splitter", "decrypt", new CipherDecoder(decryptionCipher)); @@ -296,7 +296,7 @@ index d4e23bfb6135d52c1359d7ccfabc6a0e595afe6e..4ab5773f5869e40272b2da9e21e2efbd + } + } } -+ // Paper end ++ // Paper end - Use Velocity cipher public boolean isEncrypted() { return this.encrypted; @@ -304,40 +304,40 @@ index d4e23bfb6135d52c1359d7ccfabc6a0e595afe6e..4ab5773f5869e40272b2da9e21e2efbd public void setupCompression(int compressionThreshold, boolean rejectsBadPackets) { if (compressionThreshold >= 0) { -+ com.velocitypowered.natives.compression.VelocityCompressor compressor = com.velocitypowered.natives.util.Natives.compress.get().create(io.papermc.paper.configuration.GlobalConfiguration.get().misc.compressionLevel.or(-1)); // Paper ++ com.velocitypowered.natives.compression.VelocityCompressor compressor = com.velocitypowered.natives.util.Natives.compress.get().create(io.papermc.paper.configuration.GlobalConfiguration.get().misc.compressionLevel.or(-1)); // Paper - Use Velocity cipher if (this.channel.pipeline().get("decompress") instanceof CompressionDecoder) { ((CompressionDecoder) this.channel.pipeline().get("decompress")).setThreshold(compressionThreshold, rejectsBadPackets); } else { - this.channel.pipeline().addBefore("decoder", "decompress", new CompressionDecoder(compressionThreshold, rejectsBadPackets)); -+ this.channel.pipeline().addBefore("decoder", "decompress", new CompressionDecoder(compressor, compressionThreshold, rejectsBadPackets)); // Paper ++ this.channel.pipeline().addBefore("decoder", "decompress", new CompressionDecoder(compressor, compressionThreshold, rejectsBadPackets)); // Paper - Use Velocity cipher } if (this.channel.pipeline().get("compress") instanceof CompressionEncoder) { ((CompressionEncoder) this.channel.pipeline().get("compress")).setThreshold(compressionThreshold); } else { - this.channel.pipeline().addBefore("encoder", "compress", new CompressionEncoder(compressionThreshold)); -+ this.channel.pipeline().addBefore("encoder", "compress", new CompressionEncoder(compressor, compressionThreshold)); // Paper ++ this.channel.pipeline().addBefore("encoder", "compress", new CompressionEncoder(compressor, compressionThreshold)); // Paper - Use Velocity cipher } this.channel.pipeline().fireUserEventTriggered(io.papermc.paper.network.ConnectionEvent.COMPRESSION_THRESHOLD_SET); // Paper } else { diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 5f625acf04ddb56e3596d086252f9bfccfdb95f2..54c7f34ba3dc8466223e589702d0c93af8cf52a0 100644 +index 5f625acf04ddb56e3596d086252f9bfccfdb95f2..f7d5af5e6a39469914bd9c496582929c9b8e0300 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -106,6 +106,11 @@ public class ServerConnectionListener { ServerConnectionListener.LOGGER.info("Using default channel type"); } -+ // Paper start - indicate Velocity natives in use ++ // Paper start - Use Velocity cipher + ServerConnectionListener.LOGGER.info("Paper: Using " + com.velocitypowered.natives.util.Natives.compress.getLoadedVariant() + " compression from Velocity."); + ServerConnectionListener.LOGGER.info("Paper: Using " + com.velocitypowered.natives.util.Natives.cipher.getLoadedVariant() + " cipher from Velocity."); -+ // Paper end ++ // Paper end - Use Velocity cipher + this.channels.add(((ServerBootstrap) ((ServerBootstrap) (new ServerBootstrap()).channel(oclass)).childHandler(new ChannelInitializer() { protected void initChannel(Channel channel) { Connection.setInitialProtocolAttributes(channel); diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index e2c7fa3fd05ebb3b76388410d26b6493baf4f877..7a2f78ae76354e15afa5368c8fb2a571c15dc82d 100644 +index e2c7fa3fd05ebb3b76388410d26b6493baf4f877..67c1cf5eb198079bd146a4a8ca0492b94cca788c 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -223,12 +223,14 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -346,15 +346,15 @@ index e2c7fa3fd05ebb3b76388410d26b6493baf4f877..7a2f78ae76354e15afa5368c8fb2a571 SecretKey secretkey = packet.getSecretKey(privatekey); - Cipher cipher = Crypt.getCipher(2, secretkey); - Cipher cipher1 = Crypt.getCipher(1, secretkey); -+ // Paper start ++ // Paper start - Use Velocity cipher +// Cipher cipher = Crypt.getCipher(2, secretkey); +// Cipher cipher1 = Crypt.getCipher(1, secretkey); -+ // Paper end ++ // Paper end - Use Velocity cipher s = (new BigInteger(Crypt.digestData("", this.server.getKeyPair().getPublic(), secretkey))).toString(16); this.state = ServerLoginPacketListenerImpl.State.AUTHENTICATING; - this.connection.setEncryptionKey(cipher, cipher1); -+ this.connection.setupEncryption(secretkey); // Paper ++ this.connection.setupEncryption(secretkey); // Paper - Use Velocity cipher } catch (CryptException cryptographyexception) { throw new IllegalStateException("Protocol error", cryptographyexception); } diff --git a/patches/server/0677-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0677-Detail-more-information-in-watchdog-dumps.patch index 3e22a4985269..996e3727f522 100644 --- a/patches/server/0677-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0677-Detail-more-information-in-watchdog-dumps.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Detail more information in watchdog dumps - Dump player name, player uuid, position, and world for packet handling diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 4ab5773f5869e40272b2da9e21e2efbd1a7eec5a..8b7e50c0bce9ff201e92fc6fff8934ea17f1b293 100644 +index 7f611f575c231dd459ae8ef17a10f71ef361a2cb..5e0793a1bfeaca021206b0b7cce20598ba6ed1d2 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -521,7 +521,13 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -76,7 +76,7 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a9f336ed75ef406c1179bdc6e63e6fd944470534..56c999c7f80b280966e81a0b1ca4929f034edb20 100644 +index 8117a0334fdf59904e31a0419f7b5bf231d198c5..569fbb2f6c5f1ec286ecafe5c7f1b1fe6b547908 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1244,7 +1244,26 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -122,7 +122,7 @@ index a9f336ed75ef406c1179bdc6e63e6fd944470534..56c999c7f80b280966e81a0b1ca4929f private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 58aa16888666f81ba688037bff61d149a03767af..0710061e41d6d6e5b38e62212bbd04e9ada0ec68 100644 +index b78bcccfb17f24cadea8ff63b6387a6f3ee6429b..a65a0ae8f7e9c2c5fe48d141dba6d95c2e94f426 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1031,7 +1031,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -192,7 +192,7 @@ index 58aa16888666f81ba688037bff61d149a03767af..0710061e41d6d6e5b38e62212bbd04e9 } public void addDeltaMovement(Vec3 velocity) { -@@ -4358,7 +4402,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4375,7 +4419,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // Paper end - fix MC-4 if (this.position.x != x || this.position.y != y || this.position.z != z) { diff --git a/patches/server/0679-Distance-manager-tick-timings.patch b/patches/server/0678-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0679-Distance-manager-tick-timings.patch rename to patches/server/0678-Distance-manager-tick-timings.patch diff --git a/patches/server/0678-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch b/patches/server/0678-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch deleted file mode 100644 index e1abb64ae9c7..000000000000 --- a/patches/server/0678-Reduce-worldgen-thread-worker-count-for-low-core-cou.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Spottedleaf -Date: Mon, 30 Aug 2021 04:26:40 -0700 -Subject: [PATCH] Reduce worldgen thread worker count for low core count CPUs - - -diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index e67a2aa92f9c9bb5a4ba9fc869aa738a43cd8595..7be16ce8c8582d8587c4d1cb4c099fa6fe5f1324 100644 ---- a/src/main/java/net/minecraft/Util.java -+++ b/src/main/java/net/minecraft/Util.java -@@ -155,7 +155,19 @@ public class Util { - - private static ExecutorService makeExecutor(String s, int priorityModifier) { // Paper - add priority - // Paper start - use simpler thread pool that allows 1 thread -- int i = Math.min(8, Math.max(Runtime.getRuntime().availableProcessors() - 2, 1)); -+ // Paper start - also try to avoid suffocating the system with the worldgen workers -+ int cpus = Runtime.getRuntime().availableProcessors() / 2; -+ int i; -+ if (cpus <= 4) { -+ i = cpus <= 2 ? 1 : 2; -+ } else if (cpus <= 8) { -+ // [5, 8] -+ i = Math.max(3, cpus - 2); -+ } else { -+ i = cpus * 2 / 3; -+ } -+ i = Math.min(8, i); -+ // Paper end - also try to avoid suffocating the system with the worldgen workers - i = Integer.getInteger("Paper.WorkerThreadCount", i); - ExecutorService executorService; - diff --git a/patches/server/0680-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0679-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 84% rename from patches/server/0680-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0679-Fix-merchant-inventory-not-closing-on-entity-removal.patch index 5a15e29fbe6b..843fb89f5369 100644 --- a/patches/server/0680-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0679-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 56c999c7f80b280966e81a0b1ca4929f034edb20..cae00701c5dbf40be07ea5c2d01ea8929f4fa216 100644 +index 569fbb2f6c5f1ec286ecafe5c7f1b1fe6b547908..8f249587b873c5768bb5ebf13d5f378355e17556 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2696,6 +2696,11 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message -+ // Paper start ++ // Paper start - Fix merchant inventory not closing on entity removal + if (entity.getBukkitEntity() instanceof org.bukkit.inventory.Merchant merchant && merchant.getTrader() != null) { + merchant.getTrader().closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); + } -+ // Paper end ++ // Paper end - Fix merchant inventory not closing on entity removal for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) { h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper } diff --git a/patches/server/0681-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0680-Check-requirement-before-suggesting-root-nodes.patch similarity index 90% rename from patches/server/0681-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0680-Check-requirement-before-suggesting-root-nodes.patch index ae4829b98ad8..fce5e326f9d7 100644 --- a/patches/server/0681-Check-requirement-before-suggesting-root-nodes.patch +++ b/patches/server/0680-Check-requirement-before-suggesting-root-nodes.patch @@ -11,7 +11,7 @@ encountering a command node with ASK_SERVER suggestions, however a modified client can send this packet whenever it wants. diff --git a/src/main/java/com/mojang/brigadier/CommandDispatcher.java b/src/main/java/com/mojang/brigadier/CommandDispatcher.java -index 858e41fba7dc285dd21a93f3918cc5de3887df5f..43018b34308eb12791616724e40c006b2141835c 100644 +index 858e41fba7dc285dd21a93f3918cc5de3887df5f..92848b64a78fce7a92e1657c2da6fc5ee53eea44 100644 --- a/src/main/java/com/mojang/brigadier/CommandDispatcher.java +++ b/src/main/java/com/mojang/brigadier/CommandDispatcher.java @@ -538,10 +538,14 @@ public class CommandDispatcher { @@ -26,7 +26,7 @@ index 858e41fba7dc285dd21a93f3918cc5de3887df5f..43018b34308eb12791616724e40c006b } catch (final CommandSyntaxException ignored) { } + } -+ // Paper end ++ // Paper end - Don't suggest if the requirement isn't met futures[i++] = future; } diff --git a/patches/server/0682-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0681-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 100% rename from patches/server/0682-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0681-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/server/0683-Add-packet-limiter-config.patch b/patches/server/0682-Add-packet-limiter-config.patch similarity index 98% rename from patches/server/0683-Add-packet-limiter-config.patch rename to patches/server/0682-Add-packet-limiter-config.patch index 25a5f687bc99..ae09f84ca905 100644 --- a/patches/server/0683-Add-packet-limiter-config.patch +++ b/patches/server/0682-Add-packet-limiter-config.patch @@ -24,7 +24,7 @@ and an action can be defined: DROP or KICK If interval or rate are less-than 0, the limit is ignored diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 8b7e50c0bce9ff201e92fc6fff8934ea17f1b293..2ae08b21c63490bbf8cd870f9585d82ed131f815 100644 +index 5e0793a1bfeaca021206b0b7cce20598ba6ed1d2..c0306ca996bb32b6a478c8d7158757af722a27ab 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -132,6 +132,22 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0684-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0683-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0684-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0683-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0685-Ensure-valid-vehicle-status.patch b/patches/server/0684-Ensure-valid-vehicle-status.patch similarity index 87% rename from patches/server/0685-Ensure-valid-vehicle-status.patch rename to patches/server/0684-Ensure-valid-vehicle-status.patch index 79db44c90b1a..ba23f6ae94dd 100644 --- a/patches/server/0685-Ensure-valid-vehicle-status.patch +++ b/patches/server/0684-Ensure-valid-vehicle-status.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure valid vehicle status diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 87fdc78409fb16c961c04a5551980a8a231b70d0..60164d8ff63bf536ddf46605a9dc7931ebc5b82a 100644 +index 87fdc78409fb16c961c04a5551980a8a231b70d0..f99498d6864bc48683f8156e0365f1175edce0ba 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -576,7 +576,7 @@ public class ServerPlayer extends Player { @@ -13,7 +13,7 @@ index 87fdc78409fb16c961c04a5551980a8a231b70d0..60164d8ff63bf536ddf46605a9dc7931 } - if (persistVehicle && entity1 != null && entity != this && entity.hasExactlyOnePlayerPassenger()) { -+ if (persistVehicle && entity1 != null && entity != this && entity.hasExactlyOnePlayerPassenger() && !entity.isRemoved()) { // Paper ++ if (persistVehicle && entity1 != null && entity != this && entity.hasExactlyOnePlayerPassenger() && !entity.isRemoved()) { // Paper - Ensure valid vehicle status // CraftBukkit end CompoundTag nbttagcompound2 = new CompoundTag(); CompoundTag nbttagcompound3 = new CompoundTag(); diff --git a/patches/server/0686-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0685-Prevent-softlocked-end-exit-portal-generation.patch similarity index 86% rename from patches/server/0686-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0685-Prevent-softlocked-end-exit-portal-generation.patch index df493911396b..71978b46d895 100644 --- a/patches/server/0686-Prevent-softlocked-end-exit-portal-generation.patch +++ b/patches/server/0685-Prevent-softlocked-end-exit-portal-generation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent softlocked end exit portal generation diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index c29ccc66c95faba425acb0ca06af15e2783b4bae..44f799d595d7150f00dfdfa2f85c87386f896607 100644 +index c29ccc66c95faba425acb0ca06af15e2783b4bae..02acd171f1d3d783b7cab56c69feca5325878fa8 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -466,6 +466,11 @@ public class EndDragonFight { @@ -16,7 +16,7 @@ index c29ccc66c95faba425acb0ca06af15e2783b4bae..44f799d595d7150f00dfdfa2f85c8738 + if (this.portalLocation.getY() <= this.level.getMinBuildHeight()) { + this.portalLocation = this.portalLocation.atY(this.level.getMinBuildHeight() + 1); + } -+ // Paper end ++ // Paper end - Prevent "softlocked" exit portal generation if (worldgenendtrophy.place(FeatureConfiguration.NONE, this.level, this.level.getChunkSource().getGenerator(), RandomSource.create(), this.portalLocation)) { int i = Mth.positiveCeilDiv(4, 16); diff --git a/patches/server/0687-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0686-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 82% rename from patches/server/0687-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0686-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch index b415f668ab19..b766f532477e 100644 --- a/patches/server/0687-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch +++ b/patches/server/0686-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Fix CocaoDecorator causing a crash when trying to generate diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/treedecorators/CocoaDecorator.java b/src/main/java/net/minecraft/world/level/levelgen/feature/treedecorators/CocoaDecorator.java -index 42b4b306ee89a9e422d234bdaa9b43b118f8bd0a..0fc355bd847749f7ce716b283dd571f143824795 100644 +index 42b4b306ee89a9e422d234bdaa9b43b118f8bd0a..f0085174a8f6e05f30c583b1211a7be43128e540 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/treedecorators/CocoaDecorator.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/treedecorators/CocoaDecorator.java @@ -25,6 +25,7 @@ public class CocoaDecorator extends TreeDecorator { @Override public void place(TreeDecorator.Context generator) { -+ if (generator.logs().isEmpty()) return; // Paper ++ if (generator.logs().isEmpty()) return; // Paper - Fix crash when trying to generate without logs RandomSource randomSource = generator.random(); if (!(randomSource.nextFloat() >= this.probability)) { List list = generator.logs(); diff --git a/patches/server/0688-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0687-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0688-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0687-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0689-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0688-fix-various-menus-with-empty-level-accesses.patch similarity index 80% rename from patches/server/0689-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0688-fix-various-menus-with-empty-level-accesses.patch index 3bda24b9c64c..efe5d1ddced7 100644 --- a/patches/server/0689-fix-various-menus-with-empty-level-accesses.patch +++ b/patches/server/0688-fix-various-menus-with-empty-level-accesses.patch @@ -5,19 +5,19 @@ Subject: [PATCH] fix various menus with empty level accesses diff --git a/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java b/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java -index c96b04f045dda384cdee9254a1765ef97e5f7f03..f00a957a0f55e69f93e6d7dc80193304447c3dcb 100644 +index c96b04f045dda384cdee9254a1765ef97e5f7f03..85e336637db8643fc5aca1dba724c9b341cbf46f 100644 --- a/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java +++ b/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java @@ -27,6 +27,12 @@ public interface ContainerLevelAccess { public Optional evaluate(BiFunction getter) { return Optional.empty(); } -+ // Paper start ++ // Paper start - fix menus with empty level accesses + @Override + public org.bukkit.Location getLocation() { + return null; + } -+ // Paper end ++ // Paper end - fix menus with empty level accesses }; static ContainerLevelAccess create(final Level world, final BlockPos pos) { diff --git a/patches/server/0690-Preserve-overstacked-loot.patch b/patches/server/0689-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0690-Preserve-overstacked-loot.patch rename to patches/server/0689-Preserve-overstacked-loot.patch diff --git a/patches/server/0691-Update-head-rotation-in-missing-places.patch b/patches/server/0690-Update-head-rotation-in-missing-places.patch similarity index 93% rename from patches/server/0691-Update-head-rotation-in-missing-places.patch rename to patches/server/0690-Update-head-rotation-in-missing-places.patch index e22e6f728104..67fac67f77c0 100644 --- a/patches/server/0691-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0690-Update-head-rotation-in-missing-places.patch @@ -8,7 +8,7 @@ This is because bukkit uses a separate head rotation field for yaw. This issue only applies to players. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0710061e41d6d6e5b38e62212bbd04e9ada0ec68..b01f722e9d52254e68634dbdf0749fa0fcc81da8 100644 +index a65a0ae8f7e9c2c5fe48d141dba6d95c2e94f426..0591b20138bf8b36aa7d78fc0c672ab55abf4f24 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1918,6 +1918,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0692-prevent-unintended-light-block-manipulation.patch b/patches/server/0691-prevent-unintended-light-block-manipulation.patch similarity index 86% rename from patches/server/0692-prevent-unintended-light-block-manipulation.patch rename to patches/server/0691-prevent-unintended-light-block-manipulation.patch index 6aa3f4784382..90c181a20a67 100644 --- a/patches/server/0692-prevent-unintended-light-block-manipulation.patch +++ b/patches/server/0691-prevent-unintended-light-block-manipulation.patch @@ -5,14 +5,14 @@ Subject: [PATCH] prevent unintended light block manipulation diff --git a/src/main/java/net/minecraft/world/level/block/LightBlock.java b/src/main/java/net/minecraft/world/level/block/LightBlock.java -index a0fadee4be7c263ceaf1f4a987169b0f50308072..5e36baecd1e9fa02e00c250dd7ebe41e89fffeb7 100644 +index a0fadee4be7c263ceaf1f4a987169b0f50308072..a847b79da488c9d6059c9da941a50de8b1bfc24f 100644 --- a/src/main/java/net/minecraft/world/level/block/LightBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LightBlock.java @@ -54,6 +54,7 @@ public class LightBlock extends Block implements SimpleWaterloggedBlock { @Override public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (!world.isClientSide && player.canUseGameMasterBlocks()) { -+ if (player.getItemInHand(hand).getItem() != Items.LIGHT || !player.mayInteract(world, pos) || !player.mayUseItemAt(pos, hit.getDirection(), player.getItemInHand(hand))) { return InteractionResult.FAIL; } // Paper ++ if (player.getItemInHand(hand).getItem() != Items.LIGHT || !player.mayInteract(world, pos) || !player.mayUseItemAt(pos, hit.getDirection(), player.getItemInHand(hand))) { return InteractionResult.FAIL; } // Paper - Prevent unintended light block manipulation world.setBlock(pos, state.cycle(LEVEL), 2); return InteractionResult.SUCCESS; } else { diff --git a/patches/server/0693-Fix-CraftCriteria-defaults-map.patch b/patches/server/0692-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0693-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0692-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0694-Fix-upstreams-block-state-factories.patch b/patches/server/0693-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0694-Fix-upstreams-block-state-factories.patch rename to patches/server/0693-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0695-Configurable-feature-seeds.patch b/patches/server/0694-Configurable-feature-seeds.patch similarity index 90% rename from patches/server/0695-Configurable-feature-seeds.patch rename to patches/server/0694-Configurable-feature-seeds.patch index 85743deb81c0..dfeea66b8d19 100644 --- a/patches/server/0695-Configurable-feature-seeds.patch +++ b/patches/server/0694-Configurable-feature-seeds.patch @@ -19,7 +19,7 @@ index 1080e1f67afe5574baca0df50cdb1d029a7a586a..a2f71a6d1a9e98133dff6cd0f625da94 } final Object val = config.get(key); diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 0a21632a3e02690a8edcc17ac25d2551a8964bbe..996a49e1ccf827edf28ca92e947014517b7dad6e 100644 +index 0a21632a3e02690a8edcc17ac25d2551a8964bbe..10b4458f3081dea06c1ff39d4134ab8e99adcc99 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -431,7 +431,14 @@ public abstract class ChunkGenerator { @@ -27,14 +27,14 @@ index 0a21632a3e02690a8edcc17ac25d2551a8964bbe..996a49e1ccf827edf28ca92e94701451 }; - seededrandom.setFeatureSeed(i, l1, l); -+ // Paper start - change populationSeed used in random ++ // Paper start - Configurable feature seeds; change populationSeed used in random + long featurePopulationSeed = i; + final long configFeatureSeed = generatoraccessseed.getMinecraftWorld().paperConfig().featureSeeds.features.getLong(placedfeature.feature()); + if (configFeatureSeed != -1) { + featurePopulationSeed = seededrandom.setDecorationSeed(configFeatureSeed, blockposition.getX(), blockposition.getZ()); // See seededrandom.setDecorationSeed from above + } + seededrandom.setFeatureSeed(featurePopulationSeed, l1, l); -+ // Paper end ++ // Paper end - Configurable feature seeds try { generatoraccessseed.setCurrentlyGenerating(supplier1); diff --git a/patches/server/0696-Add-root-admin-user-detection.patch b/patches/server/0695-Add-root-admin-user-detection.patch similarity index 96% rename from patches/server/0696-Add-root-admin-user-detection.patch rename to patches/server/0695-Add-root-admin-user-detection.patch index bdd773fb1a92..d5a79a0018b2 100644 --- a/patches/server/0696-Add-root-admin-user-detection.patch +++ b/patches/server/0695-Add-root-admin-user-detection.patch @@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..6bd0afddbcc461149dfe9a5c7a86fff6 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index f0d6e6f85dc2a9ae8d70dd691b144fac0298bf33..e69a0121c8644d831cbb8bc1c95d9219d1c343da 100644 +index f0d6e6f85dc2a9ae8d70dd691b144fac0298bf33..63bfc209c7d77170ae7b60595d800bb19f1b5da6 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -179,6 +179,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -72,7 +72,7 @@ index f0d6e6f85dc2a9ae8d70dd691b144fac0298bf33..e69a0121c8644d831cbb8bc1c95d9219 + DedicatedServer.LOGGER.warn("FOR MORE INFORMATION, SEE https://madelinemiller.dev/blog/root-minecraft-server/"); + DedicatedServer.LOGGER.warn("****************************"); + } -+ // Paper end ++ // Paper end - detect running as root + DedicatedServer.LOGGER.info("Loading properties"); DedicatedServerProperties dedicatedserverproperties = this.settings.getProperties(); diff --git a/patches/server/0697-Always-allow-item-changing-in-Fireball.patch b/patches/server/0696-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0697-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0696-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0698-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0697-don-t-attempt-to-teleport-dead-entities.patch similarity index 91% rename from patches/server/0698-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0697-don-t-attempt-to-teleport-dead-entities.patch index 88f7c42f4dc8..bc383e78c4f3 100644 --- a/patches/server/0698-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0697-don-t-attempt-to-teleport-dead-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b01f722e9d52254e68634dbdf0749fa0fcc81da8..9e617eb10380525f1aa7aa9cd7096aa133fe5920 100644 +index 0591b20138bf8b36aa7d78fc0c672ab55abf4f24..d2b2ab7415999b76d8cb0747f5b4235b5b4e07f6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -794,7 +794,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0699-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0698-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 77% rename from patches/server/0699-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0698-Prevent-excessive-velocity-through-repeated-crits.patch index 0ea16f1cb0d3..92a76565ed9b 100644 --- a/patches/server/0699-Prevent-excessive-velocity-through-repeated-crits.patch +++ b/patches/server/0698-Prevent-excessive-velocity-through-repeated-crits.patch @@ -5,17 +5,17 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1f3363da6642673d286cb7704aa61cb910c5d23f..ffc999a3a398bc73fffa7a68805baa1da7504750 100644 +index 1f3363da6642673d286cb7704aa61cb910c5d23f..f76c6360408a4d804143770d71eaf9c2146bcfa6 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2677,13 +2677,26 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.hasEffect(MobEffects.JUMP) ? 0.1F * ((float) this.getEffect(MobEffects.JUMP).getAmplifier() + 1.0F) : 0.0F; } -+ protected long lastJumpTime = 0L; // Paper ++ protected long lastJumpTime = 0L; // Paper - Prevent excessive velocity through repeated crits protected void jumpFromGround() { Vec3 vec3d = this.getDeltaMovement(); -+ // Paper start ++ // Paper start - Prevent excessive velocity through repeated crits + long time = System.nanoTime(); + boolean canCrit = true; + if (this instanceof net.minecraft.world.entity.player.Player) { @@ -25,13 +25,13 @@ index 1f3363da6642673d286cb7704aa61cb910c5d23f..ffc999a3a398bc73fffa7a68805baa1d + canCrit = true; + } + } -+ // Paper end ++ // Paper end - Prevent excessive velocity through repeated crits this.setDeltaMovement(vec3d.x, (double) this.getJumpPower(), vec3d.z); if (this.isSprinting()) { float f = this.getYRot() * 0.017453292F; -+ if (canCrit) // Paper ++ if (canCrit) // Paper - Prevent excessive velocity through repeated crits this.setDeltaMovement(this.getDeltaMovement().add((double) (-Mth.sin(f) * 0.2F), 0.0D, (double) (Mth.cos(f) * 0.2F))); } diff --git a/patches/server/0700-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0699-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 90% rename from patches/server/0700-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0699-Remove-client-side-code-using-deprecated-for-removal.patch index c9d518a9bb16..80174ed25430 100644 --- a/patches/server/0700-Remove-client-side-code-using-deprecated-for-removal.patch +++ b/patches/server/0699-Remove-client-side-code-using-deprecated-for-removal.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Remove client-side code using deprecated for removal Fixes warnings on build diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 7be16ce8c8582d8587c4d1cb4c099fa6fe5f1324..646afa849148cdd5bc9812a1ebd9cb5d15c39311 100644 +index 3b73151b594e6f3882afa2a223d0d7ca5a0b47b3..736c7aed99928af654a8ee30602f705de18a8df6 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -955,17 +955,7 @@ public class Util { +@@ -952,17 +952,7 @@ public class Util { } public void openUrl(URL url) { diff --git a/patches/server/0701-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0700-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0701-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0700-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0702-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0701-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 98% rename from patches/server/0702-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0701-Prevent-sending-oversized-item-data-in-equipment-and.patch index 74dfc70c8589..276abcde9e81 100644 --- a/patches/server/0702-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0701-Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -34,7 +34,7 @@ index e0802f1cb73a80b08482832c2b269ac8485d5c1a..945a0317e9e49a159a1f42882a0a267a } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ffc999a3a398bc73fffa7a68805baa1da7504750..d1210e8cd501f0f3be92189d129f1d354ddb00cb 100644 +index f76c6360408a4d804143770d71eaf9c2146bcfa6..b63c4510cb6a14d754776967ccc7020d85fc2abd 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3188,7 +3188,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0703-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0702-Hide-unnecessary-itemmeta-from-clients.patch similarity index 98% rename from patches/server/0703-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0702-Hide-unnecessary-itemmeta-from-clients.patch index 633b91c07dcb..d0b98fb05cb9 100644 --- a/patches/server/0703-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0702-Hide-unnecessary-itemmeta-from-clients.patch @@ -33,7 +33,7 @@ index 648530ce3183362ed71cbd2de534471da65ab787..bfbbb0f6e73e9d59e73944b77e088021 } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d1210e8cd501f0f3be92189d129f1d354ddb00cb..1a16dc3ac00c2756f1ea7154c38345393f3d5a96 100644 +index b63c4510cb6a14d754776967ccc7020d85fc2abd..95c9b69934fb1d8b49caf9e5c6184435bd18b66d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3190,7 +3190,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0704-Fix-Spigot-growth-modifiers.patch b/patches/server/0703-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0704-Fix-Spigot-growth-modifiers.patch rename to patches/server/0703-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0705-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0704-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0705-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0704-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0706-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0705-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0706-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0705-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0707-Optimize-HashMapPalette.patch b/patches/server/0706-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0707-Optimize-HashMapPalette.patch rename to patches/server/0706-Optimize-HashMapPalette.patch diff --git a/patches/server/0708-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0707-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 98% rename from patches/server/0708-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0707-Allow-delegation-to-vanilla-chunk-gen.patch index 474a8bb6f3c5..51927546b90e 100644 --- a/patches/server/0708-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0707-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8f61efe32500ebe47e13d96fd96df646adb3dd5b..9f9492f0f5bc9c39f4c0021956e3240a466f3085 100644 +index 65809db4522c3b1ce0b5bf11828de129713d7d21..4195bdfef0916f18cd448ba2c47e44f4c3996943 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2459,6 +2459,88 @@ public final class CraftServer implements Server { diff --git a/patches/server/0709-Collision-optimisations.patch b/patches/server/0708-Collision-optimisations.patch similarity index 99% rename from patches/server/0709-Collision-optimisations.patch rename to patches/server/0708-Collision-optimisations.patch index c2a0bb699df9..26fe75aa667a 100644 --- a/patches/server/0709-Collision-optimisations.patch +++ b/patches/server/0708-Collision-optimisations.patch @@ -2179,7 +2179,7 @@ index d0a8092bf57a29ab7c00ec0ddf52a9fdb2a33267..392406722b0a040c1d41fdc1154d75d3 private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) { this.data3d = id; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 60164d8ff63bf536ddf46605a9dc7931ebc5b82a..7c8f5ae6bd83bd08403738dcd364b0af06fb1a9b 100644 +index f99498d6864bc48683f8156e0365f1175edce0ba..f62f3a904ca09b7a5edf40b739a70c00de927429 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -469,7 +469,7 @@ public class ServerPlayer extends Player { @@ -2214,7 +2214,7 @@ index f7588787769902506e317bdb052483c5dc377693..8f0d1e9e8a191a2049f3ad2d9b4ffdbd entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9e617eb10380525f1aa7aa9cd7096aa133fe5920..519e3f0e376198fb399819f4587ccf935b93ea1a 100644 +index d2b2ab7415999b76d8cb0747f5b4235b5b4e07f6..7d70af32d67c5201e278424f7025eb8db5653d8e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1217,9 +1217,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2600,7 +2600,7 @@ index a25497eec004add7408a63b1a0f09e3fa443b324..9f892de55ab03367daed4c30cc44c9dd // Paper start diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 94a4ceeea167164fb589518881952dd5e082f8c2..2287987d5bb0e6c4cb6153f04c420fe5ec7c8089 100644 +index 0d685f1f446061cc723d190b16eedcb2ddedfa46..b8188a5d0ac9be4d4ca52bd4faaf5a677029f1dc 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -300,6 +300,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0710-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0709-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 99% rename from patches/server/0710-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/0709-Optimise-collision-checking-in-player-move-packet-ha.patch index 67f37342908a..ccdf60c47dd5 100644 --- a/patches/server/0710-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/0709-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -8,7 +8,7 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN CHECK ME diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1e519cdd673a4d4beb53ae84822e7b85c25a5e97..554b0cd2f61005b57e1b0f68730354a8753fb0b7 100644 +index bfbbb0f6e73e9d59e73944b77e08802132f2a739..027bc0d89b7ade602565ed3717e87c56de7265e1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -543,7 +543,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0711-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0710-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0711-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0710-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0712-Add-more-Campfire-API.patch b/patches/server/0711-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0712-Add-more-Campfire-API.patch rename to patches/server/0711-Add-more-Campfire-API.patch diff --git a/patches/server/0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0712-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 97% rename from patches/server/0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0712-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch index 118bc88750fe..249347a17147 100644 --- a/patches/server/0713-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch +++ b/patches/server/0712-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch @@ -8,7 +8,7 @@ This ensures at least a valid version of the chunk exists on disk, even if outdated 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 98c8b676fc5b2add44d6ddf5d32f85bc07ea22cb..83966430240d375e7618e13c75676d510a222c37 100644 +index 2c951dfb17a11bd81c19080a1f8f498f8e534cff..b0fa77d298ad1476fdc2433b0308276068e53a71 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 @@ -1003,6 +1003,9 @@ public class RegionFile implements AutoCloseable { diff --git a/patches/server/0714-Fix-tripwire-state-inconsistency.patch b/patches/server/0713-Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/server/0714-Fix-tripwire-state-inconsistency.patch rename to patches/server/0713-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/0715-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0714-Forward-CraftEntity-in-teleport-command.patch similarity index 95% rename from patches/server/0715-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0714-Forward-CraftEntity-in-teleport-command.patch index ca6fe40d4194..4e5fe82d765d 100644 --- a/patches/server/0715-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0714-Forward-CraftEntity-in-teleport-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 519e3f0e376198fb399819f4587ccf935b93ea1a..449601d6a8e89ae4f225407d7e00efedbe6eb6c9 100644 +index 7d70af32d67c5201e278424f7025eb8db5653d8e..0d9d46b97314bd9a95d5d4f35bf196abfd11c200 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3531,6 +3531,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0716-Improve-scoreboard-entries.patch b/patches/server/0715-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0716-Improve-scoreboard-entries.patch rename to patches/server/0715-Improve-scoreboard-entries.patch diff --git a/patches/server/0717-Entity-powdered-snow-API.patch b/patches/server/0716-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0717-Entity-powdered-snow-API.patch rename to patches/server/0716-Entity-powdered-snow-API.patch diff --git a/patches/server/0718-Add-API-for-item-entity-health.patch b/patches/server/0717-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0718-Add-API-for-item-entity-health.patch rename to patches/server/0717-Add-API-for-item-entity-health.patch diff --git a/patches/server/0719-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0718-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 99% rename from patches/server/0719-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/0718-Fix-entity-type-tags-suggestions-in-selectors.patch index 5c935836f811..736faffc8d8d 100644 --- a/patches/server/0719-Fix-entity-type-tags-suggestions-in-selectors.patch +++ b/patches/server/0718-Fix-entity-type-tags-suggestions-in-selectors.patch @@ -35,7 +35,7 @@ index 79732086bc4cdbca8364d78eb60d68c758055966..e65d7980b7ebed60786bc31e2f8156fd + // Paper end - tell clients to ask server for suggestions for EntityArguments } diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index bc0f9bf88de8f79f8e2aa2261d5a8bdc9dd1f53a..c2bd7eea15437f3526da37ce1c8642084a26406b 100644 +index 9a01905bdbf0b721a129984d71c5745fa5e3c8a5..4ef2f90809b946dcdb52a4ab58cd1c15b682f790 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -532,6 +532,7 @@ public class Commands { diff --git a/patches/server/0720-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0719-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0720-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0719-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0721-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0720-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0721-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0720-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0722-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0721-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0722-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0721-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0723-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0722-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0723-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0722-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0724-Fix-bees-aging-inside-hives.patch b/patches/server/0723-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0724-Fix-bees-aging-inside-hives.patch rename to patches/server/0723-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0725-Bucketable-API.patch b/patches/server/0724-Bucketable-API.patch similarity index 100% rename from patches/server/0725-Bucketable-API.patch rename to patches/server/0724-Bucketable-API.patch diff --git a/patches/server/0726-Validate-usernames.patch b/patches/server/0725-Validate-usernames.patch similarity index 95% rename from patches/server/0726-Validate-usernames.patch rename to patches/server/0725-Validate-usernames.patch index 0c5d204b6198..a4e3af49724d 100644 --- a/patches/server/0726-Validate-usernames.patch +++ b/patches/server/0725-Validate-usernames.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Validate usernames diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 7a2f78ae76354e15afa5368c8fb2a571c15dc82d..6121a3879eeb1d13653e93da02ecdbbcb2a866ac 100644 +index 67c1cf5eb198079bd146a4a8ca0492b94cca788c..c03329267a2a97af32a0c2c9d7e94fa00596e1cf 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -63,6 +63,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -39,7 +39,7 @@ index 8f0d1e9e8a191a2049f3ad2d9b4ffdbd15c45d9f..1038bdb761c4b413cb92e08aa7ef634b } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index bce494bb7bc1ce20809ac7d355f04aa7aad78308..6ab0c3116a4238a4c5369cc33452fed594149ea4 100644 +index 6018717ea7ff9d3947e48aacd3dbedc075a8376e..548343be02a627d2c2475a4452363876a126b3a8 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -2340,9 +2340,23 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0727-Make-water-animal-spawn-height-configurable.patch b/patches/server/0726-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0727-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0726-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0727-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 97% rename from patches/server/0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0727-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 32e655a2aee8..ccd43f3ca119 100644 --- a/patches/server/0728-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0727-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -18,7 +18,7 @@ index 6873036e7d24a2b8e85ab7ae270eec63bd7e7b5b..70adb35d0f267666e44c61ac0578a12f biomeProvider = gen.getDefaultBiomeProvider(worldInfo); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 9f9492f0f5bc9c39f4c0021956e3240a466f3085..6e1ebb33413018d0cd2275eb76a7bdfbf8542da1 100644 +index 4195bdfef0916f18cd448ba2c47e44f4c3996943..fe0a12e0f8a5318f7a8d2d336da62aa9f7710832 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1258,7 +1258,7 @@ public final class CraftServer implements Server { @@ -31,7 +31,7 @@ index 9f9492f0f5bc9c39f4c0021956e3240a466f3085..6e1ebb33413018d0cd2275eb76a7bdfb biomeProvider = generator.getDefaultBiomeProvider(worldInfo); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 24156bd9d964e2c32bc758dd9e099744cf8ac647..999602a6c11257b05083bcc2d36b6e30b2b129f4 100644 +index 3eeb878924827861f79c6bc1b510d0167b9ac10b..d17454114ced443b576ca0fa608a4846364efbe5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -205,6 +205,29 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0729-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0728-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/server/0729-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0728-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/server/0730-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0729-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/server/0730-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/server/0729-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/server/0731-Multiple-Entries-with-Scoreboards.patch b/patches/server/0730-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/server/0731-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0730-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/server/0732-Reset-placed-block-on-exception.patch b/patches/server/0731-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/server/0732-Reset-placed-block-on-exception.patch rename to patches/server/0731-Reset-placed-block-on-exception.patch diff --git a/patches/server/0733-Add-configurable-height-for-slime-spawn.patch b/patches/server/0732-Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/server/0733-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0732-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/server/0734-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0733-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/server/0734-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0733-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/server/0735-Multi-Block-Change-API-Implementation.patch b/patches/server/0734-Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/server/0735-Multi-Block-Change-API-Implementation.patch rename to patches/server/0734-Multi-Block-Change-API-Implementation.patch diff --git a/patches/server/0736-Fix-NotePlayEvent.patch b/patches/server/0735-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0736-Fix-NotePlayEvent.patch rename to patches/server/0735-Fix-NotePlayEvent.patch diff --git a/patches/server/0737-Freeze-Tick-Lock-API.patch b/patches/server/0736-Freeze-Tick-Lock-API.patch similarity index 95% rename from patches/server/0737-Freeze-Tick-Lock-API.patch rename to patches/server/0736-Freeze-Tick-Lock-API.patch index b8278a2f4bd1..82f27fc50769 100644 --- a/patches/server/0737-Freeze-Tick-Lock-API.patch +++ b/patches/server/0736-Freeze-Tick-Lock-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4ffd551e6ea540cff14eaba0e95ed2c7c0bca513..2f0c5e1b4b2dfb8006447c296170e80a97b36562 100644 +index 0d9d46b97314bd9a95d5d4f35bf196abfd11c200..b9e1f7d74f7ba8d4375077a39738bde6eb98e7ab 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -409,6 +409,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -46,7 +46,7 @@ index 4ffd551e6ea540cff14eaba0e95ed2c7c0bca513..2f0c5e1b4b2dfb8006447c296170e80a } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cf91a4b9d2aab2ed32d7d53e5d3bd97838b7a8a4..e27b19cf56b269c426cb6ddf81513497b70c676f 100644 +index 95c9b69934fb1d8b49caf9e5c6184435bd18b66d..861f0d81501f63fdfa25f5f6f9da4701957fc7d8 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3452,7 +3452,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0738-More-PotionEffectType-API.patch b/patches/server/0737-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0738-More-PotionEffectType-API.patch rename to patches/server/0737-More-PotionEffectType-API.patch diff --git a/patches/server/0739-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0738-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0739-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0738-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0740-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0739-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 97% rename from patches/server/0740-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0739-API-for-creating-command-sender-which-forwards-feedb.patch index f7945e579521..2fe3b44279e5 100644 --- a/patches/server/0740-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/server/0739-API-for-creating-command-sender-which-forwards-feedb.patch @@ -122,7 +122,7 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6e1ebb33413018d0cd2275eb76a7bdfbf8542da1..d53abb73ab61151a14baef8ce5cdf40ff8709238 100644 +index fe0a12e0f8a5318f7a8d2d336da62aa9f7710832..9f4d929e0e248cc2cc02ccb0c8915aeb6d9c03b5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2110,6 +2110,13 @@ public final class CraftServer implements Server { @@ -153,7 +153,7 @@ index 7f22950ae61436e91a59cd29a345809c42bbe739..1e3091687735b461d3b6a313ab876112 protected ServerCommandSender() { diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java -index f4961a0f360a39124544cbe0adbd94eeeef32ab5..11d7471faf35339b290b5b90c7db595e4813deb7 100644 +index bda9a0b99184adce28bb7851612ed7f4e324826d..61115db85b81e627d11a0de21691a2ca69aafe2c 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java +++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java @@ -81,6 +81,11 @@ public final class VanillaCommandWrapper extends BukkitCommand { diff --git a/patches/server/0741-Add-missing-structure-set-seed-configs.patch b/patches/server/0740-Add-missing-structure-set-seed-configs.patch similarity index 99% rename from patches/server/0741-Add-missing-structure-set-seed-configs.patch rename to patches/server/0740-Add-missing-structure-set-seed-configs.patch index 9df945ead5c2..6b1b8d62b105 100644 --- a/patches/server/0741-Add-missing-structure-set-seed-configs.patch +++ b/patches/server/0740-Add-missing-structure-set-seed-configs.patch @@ -20,7 +20,7 @@ seeds/salts to the frequency reducer which has a similar effect. Co-authored-by: William Blake Galbreath diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 996a49e1ccf827edf28ca92e947014517b7dad6e..65db282b32dfec041579812f9b7275d8c0b99a0d 100644 +index 10b4458f3081dea06c1ff39d4134ab8e99adcc99..6b743d4c7b304c21e2e89300e69df8eff672e8a6 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -568,7 +568,7 @@ public abstract class ChunkGenerator { diff --git a/patches/server/0742-Implement-regenerateChunk.patch b/patches/server/0741-Implement-regenerateChunk.patch similarity index 98% rename from patches/server/0742-Implement-regenerateChunk.patch rename to patches/server/0741-Implement-regenerateChunk.patch index d8d6665de1bc..93947b77e24e 100644 --- a/patches/server/0742-Implement-regenerateChunk.patch +++ b/patches/server/0741-Implement-regenerateChunk.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement regenerateChunk Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 999602a6c11257b05083bcc2d36b6e30b2b129f4..cf43f2e7bfc465c1c804daa5d86a6ce1808d8041 100644 +index d17454114ced443b576ca0fa608a4846364efbe5..0f5b125a307769c6430dbb9f3289efd66c2c8601 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -144,6 +144,7 @@ import org.jetbrains.annotations.NotNull; diff --git a/patches/server/0743-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0742-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0743-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0742-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0744-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0743-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 88% rename from patches/server/0744-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0743-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 37d1c7f45556..3f96eb8cf885 100644 --- a/patches/server/0744-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0743-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,13 +6,13 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d53abb73ab61151a14baef8ce5cdf40ff8709238..bafdb900286c9015840aa74e8a84493bdaf8eaa2 100644 +index 9f4d929e0e248cc2cc02ccb0c8915aeb6d9c03b5..630048f21d794cd2f5c10e7b1a7fca30a14e6856 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2287,6 +2287,8 @@ public final class CraftServer implements Server { @Override public int getSpawnLimit(SpawnCategory spawnCategory) { - // Paper start + // Paper start - Add mobcaps commands + Preconditions.checkArgument(spawnCategory != null, "SpawnCategory cannot be null"); + Preconditions.checkArgument(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory." + spawnCategory + " does not have a spawn limit."); return this.getSpawnLimitUnsafe(spawnCategory); diff --git a/patches/server/0745-Add-GameEvent-tags.patch b/patches/server/0744-Add-GameEvent-tags.patch similarity index 97% rename from patches/server/0745-Add-GameEvent-tags.patch rename to patches/server/0744-Add-GameEvent-tags.patch index 1f3ec77e51ce..29a529cde179 100644 --- a/patches/server/0745-Add-GameEvent-tags.patch +++ b/patches/server/0744-Add-GameEvent-tags.patch @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index bafdb900286c9015840aa74e8a84493bdaf8eaa2..d96450c5b83bf785cdb24ca1c2653e642be9302d 100644 +index 630048f21d794cd2f5c10e7b1a7fca30a14e6856..1278e02a723aac491af24b42c6268164b5f16ddb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2708,6 +2708,15 @@ public final class CraftServer implements Server { diff --git a/patches/server/0746-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0745-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/server/0746-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0745-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/server/0747-Furnace-RecipesUsed-API.patch b/patches/server/0746-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/server/0747-Furnace-RecipesUsed-API.patch rename to patches/server/0746-Furnace-RecipesUsed-API.patch diff --git a/patches/server/0748-Configurable-sculk-sensor-listener-range.patch b/patches/server/0747-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/server/0748-Configurable-sculk-sensor-listener-range.patch rename to patches/server/0747-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/server/0749-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0748-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/server/0749-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0748-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0750-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0749-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 100% rename from patches/server/0750-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0749-Option-to-have-default-CustomSpawners-in-custom-worl.patch diff --git a/patches/server/0751-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0750-Put-world-into-worldlist-before-initing-the-world.patch similarity index 96% rename from patches/server/0751-Put-world-into-worldlist-before-initing-the-world.patch rename to patches/server/0750-Put-world-into-worldlist-before-initing-the-world.patch index e83c9487fdbf..8858cc1a7d88 100644 --- a/patches/server/0751-Put-world-into-worldlist-before-initing-the-world.patch +++ b/patches/server/0750-Put-world-into-worldlist-before-initing-the-world.patch @@ -23,7 +23,7 @@ index 27ef9e114f2951c0874e853ba866c6e27fc531cc..db7345c936816c4bea12969853cf743c if (worlddata.getCustomBossEvents() != null) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d96450c5b83bf785cdb24ca1c2653e642be9302d..1225d688d18c0c660d0d229a5f6ef9ef7ab72c54 100644 +index 1278e02a723aac491af24b42c6268164b5f16ddb..8c08cf509faccc202222471eed06c6393aaeb594 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1288,10 +1288,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0752-Fix-Entity-Position-Desync.patch b/patches/server/0751-Fix-Entity-Position-Desync.patch similarity index 100% rename from patches/server/0752-Fix-Entity-Position-Desync.patch rename to patches/server/0751-Fix-Entity-Position-Desync.patch diff --git a/patches/server/0753-Custom-Potion-Mixes.patch b/patches/server/0752-Custom-Potion-Mixes.patch similarity index 99% rename from patches/server/0753-Custom-Potion-Mixes.patch rename to patches/server/0752-Custom-Potion-Mixes.patch index e8e048c33472..204d5bc36b5e 100644 --- a/patches/server/0753-Custom-Potion-Mixes.patch +++ b/patches/server/0752-Custom-Potion-Mixes.patch @@ -172,7 +172,7 @@ index 424406d2692856cfd82b6f3b7b6228fa3bd20c2f..bc01481ac5990ad1cfd1def5a16dd0ed @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1225d688d18c0c660d0d229a5f6ef9ef7ab72c54..21c9bfd9d9fd76e2a1b41001ea0f726d7b784309 100644 +index 8c08cf509faccc202222471eed06c6393aaeb594..a55abfd40b7151e0eaf057bce4d3a2f6508d4ba4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -304,6 +304,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0754-Force-close-world-loading-screen.patch b/patches/server/0753-Force-close-world-loading-screen.patch similarity index 100% rename from patches/server/0754-Force-close-world-loading-screen.patch rename to patches/server/0753-Force-close-world-loading-screen.patch diff --git a/patches/server/0755-Fix-falling-block-spawn-methods.patch b/patches/server/0754-Fix-falling-block-spawn-methods.patch similarity index 97% rename from patches/server/0755-Fix-falling-block-spawn-methods.patch rename to patches/server/0754-Fix-falling-block-spawn-methods.patch index 7c30e3228a99..5ecbeebf33b7 100644 --- a/patches/server/0755-Fix-falling-block-spawn-methods.patch +++ b/patches/server/0754-Fix-falling-block-spawn-methods.patch @@ -11,7 +11,7 @@ Restores the API behavior from previous versions of the server public net.minecraft.world.entity.item.FallingBlockEntity (Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index cf43f2e7bfc465c1c804daa5d86a6ce1808d8041..5e31aa4383113b586b9ce440f121cb65045bf70a 100644 +index 0f5b125a307769c6430dbb9f3289efd66c2c8601..b73488765daa9c734dc711839f444ce831b16e8e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1453,7 +1453,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0756-Expose-furnace-minecart-push-values.patch b/patches/server/0755-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0756-Expose-furnace-minecart-push-values.patch rename to patches/server/0755-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0757-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0756-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0757-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0756-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0758-More-Projectile-API.patch b/patches/server/0757-More-Projectile-API.patch similarity index 100% rename from patches/server/0758-More-Projectile-API.patch rename to patches/server/0757-More-Projectile-API.patch diff --git a/patches/server/0759-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0758-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0759-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0758-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0760-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0759-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 100% rename from patches/server/0760-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0759-Don-t-allow-vehicle-movement-from-players-while-tele.patch diff --git a/patches/server/0761-Implement-getComputedBiome-API.patch b/patches/server/0760-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0761-Implement-getComputedBiome-API.patch rename to patches/server/0760-Implement-getComputedBiome-API.patch diff --git a/patches/server/0762-Make-some-itemstacks-nonnull.patch b/patches/server/0761-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0762-Make-some-itemstacks-nonnull.patch rename to patches/server/0761-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0763-Implement-enchantWithLevels-API.patch b/patches/server/0762-Implement-enchantWithLevels-API.patch similarity index 90% rename from patches/server/0763-Implement-enchantWithLevels-API.patch rename to patches/server/0762-Implement-enchantWithLevels-API.patch index 7267b726773b..ed8063522878 100644 --- a/patches/server/0763-Implement-enchantWithLevels-API.patch +++ b/patches/server/0762-Implement-enchantWithLevels-API.patch @@ -5,14 +5,13 @@ Subject: [PATCH] Implement enchantWithLevels API diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 2dc5cdf72034f27cf9c61ce979a7018f169bb786..5df92d21e1e1827c59352d9f89dbfb23af7c0d7b 100644 +index ef0c6e04a89704688f7b5461b27c0036abbf647d..c421649a0c88ee9c773bb6985f7114e58f08a7a1 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -579,4 +579,21 @@ public final class CraftItemFactory implements ItemFactory { +@@ -579,4 +579,20 @@ public final class CraftItemFactory implements ItemFactory { return eggItem == null ? null : new net.minecraft.world.item.ItemStack(eggItem).asBukkitMirror(); } - // Paper end -+ + // Paper end - old getSpawnEgg API + // Paper start - enchantWithLevels API + @Override + public ItemStack enchantWithLevels(ItemStack itemStack, int levels, boolean allowTreasure, java.util.Random random) { diff --git a/patches/server/0764-Fix-saving-in-unloadWorld.patch b/patches/server/0763-Fix-saving-in-unloadWorld.patch similarity index 90% rename from patches/server/0764-Fix-saving-in-unloadWorld.patch rename to patches/server/0763-Fix-saving-in-unloadWorld.patch index a3f7632753ab..fa5308fba948 100644 --- a/patches/server/0764-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0763-Fix-saving-in-unloadWorld.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix saving in unloadWorld Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 21c9bfd9d9fd76e2a1b41001ea0f726d7b784309..7da2853b86a1e3cd7d1e3c985448727e04542f4f 100644 +index a55abfd40b7151e0eaf057bce4d3a2f6508d4ba4..d86a49c0afaee47d2dd0f0bad1e833b2a80ced53 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1336,7 +1336,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0765-Buffer-OOB-setBlock-calls.patch b/patches/server/0764-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0765-Buffer-OOB-setBlock-calls.patch rename to patches/server/0764-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0766-Add-TameableDeathMessageEvent.patch b/patches/server/0765-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0766-Add-TameableDeathMessageEvent.patch rename to patches/server/0765-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0767-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0766-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 100% rename from patches/server/0767-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0766-Fix-new-block-data-for-EntityChangeBlockEvent.patch diff --git a/patches/server/0768-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0767-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 93% rename from patches/server/0768-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0767-fix-player-loottables-running-when-mob-loot-gamerule.patch index dd3d2ae37b5f..4b6b9f12ab8c 100644 --- a/patches/server/0768-fix-player-loottables-running-when-mob-loot-gamerule.patch +++ b/patches/server/0767-fix-player-loottables-running-when-mob-loot-gamerule.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7c8f5ae6bd83bd08403738dcd364b0af06fb1a9b..1695e7d3e456bb3539fb37d943e8cf45489f0762 100644 +index f62f3a904ca09b7a5edf40b739a70c00de927429..6e139b278d4f14a92190b93942a0d43884dc4315 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -924,12 +924,14 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0769-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0768-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 91% rename from patches/server/0769-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0768-Ensure-entity-passenger-world-matches-ridden-entity.patch index ab2ce748ed92..02140bb2686e 100644 --- a/patches/server/0769-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0768-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e10b08802cb170a0af8a3cfc01e730e32e6ca0f3..ca145fee91adb669665c881f150a339a773b28cb 100644 +index b9e1f7d74f7ba8d4375077a39738bde6eb98e7ab..b2844876255ec1d30e70b1b7f370b4751fecafb5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2847,7 +2847,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0771-cache-resource-keys.patch b/patches/server/0769-cache-resource-keys.patch similarity index 100% rename from patches/server/0771-cache-resource-keys.patch rename to patches/server/0769-cache-resource-keys.patch diff --git a/patches/server/0772-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0770-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/server/0772-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0770-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/server/0770-Guard-against-invalid-entity-positions.patch b/patches/server/0770-Guard-against-invalid-entity-positions.patch deleted file mode 100644 index d108dbce734e..000000000000 --- a/patches/server/0770-Guard-against-invalid-entity-positions.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Spottedleaf -Date: Thu, 31 Mar 2022 05:18:28 -0700 -Subject: [PATCH] Guard against invalid entity positions - -Anything not finite should be blocked and logged - -diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ca145fee91adb669665c881f150a339a773b28cb..64a1dc13690568baba60dddc6f66a1700f618e51 100644 ---- a/src/main/java/net/minecraft/world/entity/Entity.java -+++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4539,11 +4539,33 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S - return this.getZ((2.0D * this.random.nextDouble() - 1.0D) * widthScale); - } - -+ // Paper start - block invalid positions -+ public static boolean checkPosition(Entity entity, double newX, double newY, double newZ) { -+ if (Double.isFinite(newX) && Double.isFinite(newY) && Double.isFinite(newZ)) { -+ return true; -+ } -+ -+ String entityInfo = null; -+ try { -+ entityInfo = entity.toString(); -+ } catch (Exception ex) { -+ entityInfo = "[Entity info unavailable] "; -+ } -+ LOGGER.error("New entity position is invalid! Tried to set invalid position (" + newX + "," + newY + "," + newZ + ") for entity " + entity.getClass().getName() + " located at " + entity.position + ", entity info: " + entityInfo, new Throwable()); -+ return false; -+ } -+ // Paper end - block invalid positions -+ - public final void setPosRaw(double x, double y, double z) { - // Paper start - this.setPosRaw(x, y, z, false); - } - public final void setPosRaw(double x, double y, double z, boolean forceBoundingBoxUpdate) { -+ // Paper start - block invalid positions -+ if (!checkPosition(this, x, y, z)) { -+ return; -+ } -+ // Paper end - block invalid positions - // Paper end - // Paper start - rewrite chunk system - if (this.updatingSectionStatus) { diff --git a/patches/server/0773-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0771-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0773-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0771-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0774-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0772-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 100% rename from patches/server/0774-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0772-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch diff --git a/patches/server/0775-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0773-Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/server/0775-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0773-Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/server/0776-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0774-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 100% rename from patches/server/0776-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0774-Use-username-instead-of-display-name-in-PlayerList-g.patch diff --git a/patches/server/0777-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0775-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 98% rename from patches/server/0777-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0775-Pass-ServerLevel-for-gamerule-callbacks.patch index 451e4e5624d6..f84d3c303a3a 100644 --- a/patches/server/0777-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0775-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Pass ServerLevel for gamerule callbacks diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index e69a0121c8644d831cbb8bc1c95d9219d1c343da..7d33ce8d68ca55e0fd37d2d4e3c78a436f17f229 100644 +index 63bfc209c7d77170ae7b60595d800bb19f1b5da6..24fd1c18f20752679b5679e1f882b4c1ec2416b2 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -304,7 +304,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -167,7 +167,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..dd03426943dd380cefe12afe3e63c318 this.onChanged(server); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 5e31aa4383113b586b9ce440f121cb65045bf70a..b504bdd02041f4fe7a7ed4ed9d8563cd9b338125 100644 +index b73488765daa9c734dc711839f444ce831b16e8e..75e573ef6e211c1a7fe6168595179eccdb8fd4d2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2038,7 +2038,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0778-Expand-PlayerItemDamageEvent.patch b/patches/server/0776-Expand-PlayerItemDamageEvent.patch similarity index 100% rename from patches/server/0778-Expand-PlayerItemDamageEvent.patch rename to patches/server/0776-Expand-PlayerItemDamageEvent.patch diff --git a/patches/server/0779-WorldCreator-keepSpawnLoaded.patch b/patches/server/0777-WorldCreator-keepSpawnLoaded.patch similarity index 94% rename from patches/server/0779-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0777-WorldCreator-keepSpawnLoaded.patch index 07e956fd9e28..8813177e0f93 100644 --- a/patches/server/0779-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0777-WorldCreator-keepSpawnLoaded.patch @@ -5,7 +5,7 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7da2853b86a1e3cd7d1e3c985448727e04542f4f..b76bb0142cbe64064f7835807974414c879f57a5 100644 +index d86a49c0afaee47d2dd0f0bad1e833b2a80ced53..4b8814cbbcc91798653e6d66face1d9b03c66d1d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1283,7 +1283,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0780-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0778-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0780-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0778-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0781-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0779-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/server/0781-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0779-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/server/0782-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0780-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0782-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0780-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0783-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0781-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0783-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0781-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0784-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0782-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0784-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0782-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0785-Add-PlayerStopUsingItemEvent.patch b/patches/server/0783-Add-PlayerStopUsingItemEvent.patch similarity index 91% rename from patches/server/0785-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0783-Add-PlayerStopUsingItemEvent.patch index 24390d47ae28..4af671aa5e90 100644 --- a/patches/server/0785-Add-PlayerStopUsingItemEvent.patch +++ b/patches/server/0783-Add-PlayerStopUsingItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 31ee19d5740d74418cb4d42d0ce78a0a7cb51e0a..e94084b1f0fb04625cb94ca07825b8f78c0c9012 100644 +index 861f0d81501f63fdfa25f5f6f9da4701957fc7d8..1666a06f64826da9b9e122d3811ecfce16255d1a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4025,6 +4025,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0786-Don-t-tick-markers.patch b/patches/server/0784-Don-t-tick-markers.patch similarity index 97% rename from patches/server/0786-Don-t-tick-markers.patch rename to patches/server/0784-Don-t-tick-markers.patch index 1346990dc8ab..1dbbc6a0197b 100644 --- a/patches/server/0786-Don-t-tick-markers.patch +++ b/patches/server/0784-Don-t-tick-markers.patch @@ -23,7 +23,7 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5e5a018433414af76eaa1e781f61612d } }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index cae00701c5dbf40be07ea5c2d01ea8929f4fa216..646fb7e4a83e9f9a1b78d8c70f3518b977572fde 100644 +index 8f249587b873c5768bb5ebf13d5f378355e17556..4c7369e222166a2342038ed5640eeb17030246fa 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2605,6 +2605,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0787-Expand-FallingBlock-API.patch b/patches/server/0785-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0787-Expand-FallingBlock-API.patch rename to patches/server/0785-Expand-FallingBlock-API.patch diff --git a/patches/server/0788-Do-not-accept-invalid-client-settings.patch b/patches/server/0786-Do-not-accept-invalid-client-settings.patch similarity index 100% rename from patches/server/0788-Do-not-accept-invalid-client-settings.patch rename to patches/server/0786-Do-not-accept-invalid-client-settings.patch diff --git a/patches/server/0789-Add-support-for-Proxy-Protocol.patch b/patches/server/0787-Add-support-for-Proxy-Protocol.patch similarity index 94% rename from patches/server/0789-Add-support-for-Proxy-Protocol.patch rename to patches/server/0787-Add-support-for-Proxy-Protocol.patch index 17373a6c1975..20e01676afe0 100644 --- a/patches/server/0789-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0787-Add-support-for-Proxy-Protocol.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add support for Proxy Protocol diff --git a/build.gradle.kts b/build.gradle.kts -index 517920023bc28fea04eeb709364d5a7292adcc5e..444ff797c70b0e285d4272ea2ce3d72453c9bda5 100644 +index ff1636d3e047e124c73496f4942e991abe01c150..376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,7 @@ dependencies { @@ -17,12 +17,12 @@ index 517920023bc28fea04eeb709364d5a7292adcc5e..444ff797c70b0e285d4272ea2ce3d724 implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion implementation("org.ow2.asm:asm-commons:9.5") diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 54c7f34ba3dc8466223e589702d0c93af8cf52a0..1df438ce6604981d459a6bc0b351be6d7c1bc050 100644 +index f7d5af5e6a39469914bd9c496582929c9b8e0300..2cdb427eb7d88778ef4b6831336814cdc45e5ef9 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -111,6 +111,12 @@ public class ServerConnectionListener { ServerConnectionListener.LOGGER.info("Paper: Using " + com.velocitypowered.natives.util.Natives.cipher.getLoadedVariant() + " cipher from Velocity."); - // Paper end + // Paper end - Use Velocity cipher + // Paper start - Add support for proxy protocol + if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.proxyProtocol) { diff --git a/patches/server/0790-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0788-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0790-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0788-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0791-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0789-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0791-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0789-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0792-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0790-Sanitize-sent-BlockEntity-NBT.patch similarity index 100% rename from patches/server/0792-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0790-Sanitize-sent-BlockEntity-NBT.patch diff --git a/patches/server/0793-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0791-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0793-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0791-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0794-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0792-Prevent-entity-loading-causing-async-lookups.patch similarity index 97% rename from patches/server/0794-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0792-Prevent-entity-loading-causing-async-lookups.patch index 76c416d51850..0d3b51189189 100644 --- a/patches/server/0794-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0792-Prevent-entity-loading-causing-async-lookups.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 64a1dc13690568baba60dddc6f66a1700f618e51..d5cc94219976e3832617210e0aa3b773f3eca432 100644 +index b2844876255ec1d30e70b1b7f370b4751fecafb5..5f8edf65598f1bed0b1726e645dc857ebb6d2e57 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -803,6 +803,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0795-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0793-Throw-exception-on-world-create-while-being-ticked.patch similarity index 97% rename from patches/server/0795-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0793-Throw-exception-on-world-create-while-being-ticked.patch index bcb16c777ca6..8f980b01ff1e 100644 --- a/patches/server/0795-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0793-Throw-exception-on-world-create-while-being-ticked.patch @@ -45,7 +45,7 @@ index c1ef4dd08b39adf3ab8dbfe286c6378f3efbf54e..4d4617635c9dc0d011cf8fc57ece6e23 this.profiler.popPush("connection"); MinecraftTimings.connectionTimer.startTiming(); // Spigot // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b76bb0142cbe64064f7835807974414c879f57a5..a12267638500fe5a20f46fb8e0b93c250227c273 100644 +index 4b8814cbbcc91798653e6d66face1d9b03c66d1d..22eca67fb5781f2b60cdbbd228a607cec05c501b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -874,6 +874,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0796-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0794-Add-Alternate-Current-redstone-implementation.patch similarity index 99% rename from patches/server/0796-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/0794-Add-Alternate-Current-redstone-implementation.patch index 8fb3cccdf2f3..d379fbe24825 100644 --- a/patches/server/0796-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/0794-Add-Alternate-Current-redstone-implementation.patch @@ -2008,7 +2008,7 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 646fb7e4a83e9f9a1b78d8c70f3518b977572fde..2af4d65fc0c761bcf58e94d4ce0cc918afa47c10 100644 +index 4c7369e222166a2342038ed5640eeb17030246fa..234740b7ff58734753e7a2bd6f3c8c3991a96239 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2034,7 +2034,7 @@ index 646fb7e4a83e9f9a1b78d8c70f3518b977572fde..2af4d65fc0c761bcf58e94d4ce0cc918 EntityCallbacks() {} diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2287987d5bb0e6c4cb6153f04c420fe5ec7c8089..8200844b73dc7181d5867aafa83087e09ff2df76 100644 +index b8188a5d0ac9be4d4ca52bd4faaf5a677029f1dc..15200db3bc2fde3858d55156b039996366e72dd4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1885,4 +1885,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0797-Dont-resent-entity-on-art-update.patch b/patches/server/0795-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/server/0797-Dont-resent-entity-on-art-update.patch rename to patches/server/0795-Dont-resent-entity-on-art-update.patch diff --git a/patches/server/0798-Add-WardenAngerChangeEvent.patch b/patches/server/0796-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/server/0798-Add-WardenAngerChangeEvent.patch rename to patches/server/0796-Add-WardenAngerChangeEvent.patch diff --git a/patches/server/0799-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0797-Add-option-for-strict-advancement-dimension-checks.patch similarity index 96% rename from patches/server/0799-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0797-Add-option-for-strict-advancement-dimension-checks.patch index 36774662512b..2ecf58d074af 100644 --- a/patches/server/0799-Add-option-for-strict-advancement-dimension-checks.patch +++ b/patches/server/0797-Add-option-for-strict-advancement-dimension-checks.patch @@ -24,7 +24,7 @@ index 5f9cb2c7a2874e423087d04d3360af0364692b5c..428e0afef2cac9f2a19d8cfe8f2504dd } else { BlockPos blockPos = BlockPos.containing(x, y, z); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1695e7d3e456bb3539fb37d943e8cf45489f0762..d3fdb56f1e62a241d8edbde4faa1296de36de246 100644 +index 6e139b278d4f14a92190b93942a0d43884dc4315..202077ef20e15e7e02a37babc1fb31478db4e92b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1321,6 +1321,12 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0800-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0798-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/server/0800-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0798-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/0801-Nameable-Banner-API.patch b/patches/server/0799-Nameable-Banner-API.patch similarity index 100% rename from patches/server/0801-Nameable-Banner-API.patch rename to patches/server/0799-Nameable-Banner-API.patch diff --git a/patches/server/0802-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0800-Don-t-broadcast-messages-to-command-blocks.patch similarity index 95% rename from patches/server/0802-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0800-Don-t-broadcast-messages-to-command-blocks.patch index b50055721faa..af4d6c1e4d35 100644 --- a/patches/server/0802-Don-t-broadcast-messages-to-command-blocks.patch +++ b/patches/server/0800-Don-t-broadcast-messages-to-command-blocks.patch @@ -20,7 +20,7 @@ index c56f5173fda6b38c2dcaea196217f2f5a7d7c641..524b0f1086c01888fe0b76e180c40915 Date date = new Date(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a12267638500fe5a20f46fb8e0b93c250227c273..69ae0f5d0a398f7e2509697e8de95a2a82ec15ef 100644 +index 22eca67fb5781f2b60cdbbd228a607cec05c501b..b0a058139d7e57b575382162408bb3687e237de3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1873,7 +1873,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0803-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0801-Prevent-empty-items-from-being-added-to-world.patch similarity index 93% rename from patches/server/0803-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0801-Prevent-empty-items-from-being-added-to-world.patch index 90dd35e0aea8..4207cb10b484 100644 --- a/patches/server/0803-Prevent-empty-items-from-being-added-to-world.patch +++ b/patches/server/0801-Prevent-empty-items-from-being-added-to-world.patch @@ -7,7 +7,7 @@ The previous solution caused a bunch of bandaid fixes inorder to resolve edge ca Just simply prevent them from being added to the world instead. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2af4d65fc0c761bcf58e94d4ce0cc918afa47c10..d6bf1580787a4d5a2ac9ebde5efe236be3f15a1a 100644 +index 234740b7ff58734753e7a2bd6f3c8c3991a96239..cf9f2d309a2b8ff67bd43bf191ab37e50baacaff 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1587,6 +1587,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0804-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0802-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/server/0804-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0802-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/server/0805-Add-Player-getFishHook.patch b/patches/server/0803-Add-Player-getFishHook.patch similarity index 100% rename from patches/server/0805-Add-Player-getFishHook.patch rename to patches/server/0803-Add-Player-getFishHook.patch diff --git a/patches/server/0806-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0804-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/server/0806-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0804-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/server/0807-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0805-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 96% rename from patches/server/0807-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0805-Add-various-missing-EntityDropItemEvent-calls.patch index 7f9d05ef6013..7dfeb7b4ec36 100644 --- a/patches/server/0807-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0805-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d5cc94219976e3832617210e0aa3b773f3eca432..10d681e95b8e9cc432ed43930d76da19bfd4fc29 100644 +index 5f8edf65598f1bed0b1726e645dc857ebb6d2e57..67e5536b9e6fac1fe4f70fe0551b399380ec416f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2699,6 +2699,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -58,7 +58,7 @@ index 6124209f50300eeaab45b66c2f1a5b2944119450..94bb69a7f5795e0fbee171433632b5c3 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 3ec2f590dfe9410f1a9d2afb530eebfcce917798..cafea947d49b729268c0fce98ce7fcf4b0c69478 100644 +index ee1b2c1fec4b76a821e1d52fbb07e1f302b2efa1..110dd5418b0512a2f27f0c4d5a5f1812356a6a12 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -357,8 +357,7 @@ public class Goat extends Animal { diff --git a/patches/server/0808-Fix-Bee-flower-NPE.patch b/patches/server/0806-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/server/0808-Fix-Bee-flower-NPE.patch rename to patches/server/0806-Fix-Bee-flower-NPE.patch diff --git a/patches/server/0809-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0807-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 100% rename from patches/server/0809-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0807-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch diff --git a/patches/server/0810-More-Teleport-API.patch b/patches/server/0808-More-Teleport-API.patch similarity index 100% rename from patches/server/0810-More-Teleport-API.patch rename to patches/server/0808-More-Teleport-API.patch diff --git a/patches/server/0811-Add-EntityPortalReadyEvent.patch b/patches/server/0809-Add-EntityPortalReadyEvent.patch similarity index 95% rename from patches/server/0811-Add-EntityPortalReadyEvent.patch rename to patches/server/0809-Add-EntityPortalReadyEvent.patch index 751c7ea58c4e..4a6e7d5cd883 100644 --- a/patches/server/0811-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0809-Add-EntityPortalReadyEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 10d681e95b8e9cc432ed43930d76da19bfd4fc29..3f9954e1bae36c8dedfb99a5b753d873ce521226 100644 +index 67e5536b9e6fac1fe4f70fe0551b399380ec416f..c7022c10896f53379e3759f597b393143972163c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3099,6 +3099,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0812-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0810-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/server/0812-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0810-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/server/0813-Send-block-entities-after-destroy-prediction.patch b/patches/server/0811-Send-block-entities-after-destroy-prediction.patch similarity index 100% rename from patches/server/0813-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0811-Send-block-entities-after-destroy-prediction.patch diff --git a/patches/server/0814-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0812-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 96% rename from patches/server/0814-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0812-Warn-on-plugins-accessing-faraway-chunks.patch index 9b8a11a7f9e8..0c7ce5648b4b 100644 --- a/patches/server/0814-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0812-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8200844b73dc7181d5867aafa83087e09ff2df76..e853c9fdc8ebde6a653aacbb1db6679ce4d9d50b 100644 +index 15200db3bc2fde3858d55156b039996366e72dd4..2ef137e93f88b98812fc5b2c36f32d7d7b4216ae 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -813,7 +813,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -18,7 +18,7 @@ index 8200844b73dc7181d5867aafa83087e09ff2df76..e853c9fdc8ebde6a653aacbb1db6679c private static boolean isOutsideSpawnableHeight(int y) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index b504bdd02041f4fe7a7ed4ed9d8563cd9b338125..e72f8f6dd741a7a83f7c40809939bb976c355a0c 100644 +index 75e573ef6e211c1a7fe6168595179eccdb8fd4d2..56a98b297f3f8742d400cd3a1f335cec1d50b331 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -312,9 +312,24 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0815-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0813-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/server/0815-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0813-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/server/0816-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0814-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0816-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0814-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0817-Collision-API.patch b/patches/server/0815-Collision-API.patch similarity index 100% rename from patches/server/0817-Collision-API.patch rename to patches/server/0815-Collision-API.patch diff --git a/patches/server/0818-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0816-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 92% rename from patches/server/0818-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0816-Fix-suggest-command-message-for-brigadier-syntax-exc.patch index 6dd245b2cbab..468dd8c01217 100644 --- a/patches/server/0818-Fix-suggest-command-message-for-brigadier-syntax-exc.patch +++ b/patches/server/0816-Fix-suggest-command-message-for-brigadier-syntax-exc.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix suggest command message for brigadier syntax exceptions This is a bug accidentally introduced in upstream CB diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index c2bd7eea15437f3526da37ce1c8642084a26406b..6abef7947cadca6bccac809a8d58d38961132e0f 100644 +index 4ef2f90809b946dcdb52a4ab58cd1c15b682f790..1bf9cff3c1446be74ded3ac14658e283290b438b 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -392,7 +392,7 @@ public class Commands { diff --git a/patches/server/0819-Block-Ticking-API.patch b/patches/server/0817-Block-Ticking-API.patch similarity index 100% rename from patches/server/0819-Block-Ticking-API.patch rename to patches/server/0817-Block-Ticking-API.patch diff --git a/patches/server/0820-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0818-Add-Velocity-IP-Forwarding-Support.patch similarity index 98% rename from patches/server/0820-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0818-Add-Velocity-IP-Forwarding-Support.patch index 596529663773..ba835bdc6a0c 100644 --- a/patches/server/0820-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0818-Add-Velocity-IP-Forwarding-Support.patch @@ -106,7 +106,7 @@ index 0000000000000000000000000000000000000000..3c31ff3330c2e925e205c0c9ff4f0b83 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 7d33ce8d68ca55e0fd37d2d4e3c78a436f17f229..cb7fe116a29916761299a808572f76547d143971 100644 +index 24fd1c18f20752679b5679e1f882b4c1ec2416b2..78687afe9dade0e64cb4868cfd51f8349acdd786 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -274,13 +274,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -134,7 +134,7 @@ index 7d33ce8d68ca55e0fd37d2d4e3c78a436f17f229..cb7fe116a29916761299a808572f7654 DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..a9f5af48c1f97b2e635727b48f4383502b17d82f 100644 +index c03329267a2a97af32a0c2c9d7e94fa00596e1cf..399786839bb9dbf96d2ecd654f999cb944cf2822 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -64,6 +64,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -228,7 +228,7 @@ index 6121a3879eeb1d13653e93da02ecdbbcb2a866ac..a9f5af48c1f97b2e635727b48f438350 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 69ae0f5d0a398f7e2509697e8de95a2a82ec15ef..16c2942ef30c8f3caccb56c85ebad660f785c070 100644 +index b0a058139d7e57b575382162408bb3687e237de3..1c7f88d71ee7262a31d75e1462e45f3f5e8da232 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -803,7 +803,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0821-Add-NamespacedKey-biome-methods.patch b/patches/server/0819-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0821-Add-NamespacedKey-biome-methods.patch rename to patches/server/0819-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0822-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0820-Fix-plugin-loggers-on-server-shutdown.patch similarity index 100% rename from patches/server/0822-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0820-Fix-plugin-loggers-on-server-shutdown.patch diff --git a/patches/server/0823-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0821-Stop-large-look-changes-from-crashing-the-server.patch similarity index 96% rename from patches/server/0823-Stop-large-look-changes-from-crashing-the-server.patch rename to patches/server/0821-Stop-large-look-changes-from-crashing-the-server.patch index 0ae5d2e6d0c3..70102e602979 100644 --- a/patches/server/0823-Stop-large-look-changes-from-crashing-the-server.patch +++ b/patches/server/0821-Stop-large-look-changes-from-crashing-the-server.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Stop large look changes from crashing the server Co-authored-by: Jaren Knodel diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e94084b1f0fb04625cb94ca07825b8f78c0c9012..bbe594f57b7d11d6947b6b313901020c06324bdc 100644 +index 1666a06f64826da9b9e122d3811ecfce16255d1a..085ab9cd7e0898313ad4542ca2fc949377dad521 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3056,37 +3056,15 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0824-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0822-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0824-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0822-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0825-Missing-eating-regain-reason.patch b/patches/server/0823-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0825-Missing-eating-regain-reason.patch rename to patches/server/0823-Missing-eating-regain-reason.patch diff --git a/patches/server/0826-Missing-effect-cause.patch b/patches/server/0824-Missing-effect-cause.patch similarity index 100% rename from patches/server/0826-Missing-effect-cause.patch rename to patches/server/0824-Missing-effect-cause.patch diff --git a/patches/server/0827-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0825-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0827-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0825-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0828-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0826-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0828-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0826-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0829-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0827-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0829-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0827-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0830-Configurable-chat-thread-limit.patch b/patches/server/0828-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0830-Configurable-chat-thread-limit.patch rename to patches/server/0828-Configurable-chat-thread-limit.patch diff --git a/patches/server/0831-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0829-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0831-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0829-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0832-fix-Jigsaw-block-kicking-user.patch b/patches/server/0830-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0832-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0830-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0833-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0831-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0833-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0831-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0834-Add-getDrops-to-BlockState.patch b/patches/server/0832-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0834-Add-getDrops-to-BlockState.patch rename to patches/server/0832-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0835-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0833-Fix-a-bunch-of-vanilla-bugs.patch similarity index 98% rename from patches/server/0835-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0833-Fix-a-bunch-of-vanilla-bugs.patch index 52b5ed123b39..a2d0ca49c52b 100644 --- a/patches/server/0835-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0833-Fix-a-bunch-of-vanilla-bugs.patch @@ -116,7 +116,7 @@ index 6cd6d69a20e95e344fc18ab67dc300824537a59b..2e2a7c2cf3081187da817479a9da3eb1 } } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a0603e567deeede8b4cd2ba57ded44f29239d78d..982750fd4f3f474514194df9b76388311c052b29 100644 +index 534493aaddced9200e1618d5eabf2b176a1f35b6..a58c47b16254262ec705a8f986ef42c71503770d 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -898,7 +898,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -129,7 +129,7 @@ index a0603e567deeede8b4cd2ba57ded44f29239d78d..982750fd4f3f474514194df9b7638831 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d6bf1580787a4d5a2ac9ebde5efe236be3f15a1a..675bc8df01ad9e338541e16575c9ec8e538787e2 100644 +index cf9f2d309a2b8ff67bd43bf191ab37e50baacaff..81db115871c524209adec41e79e37bbfb876805b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1032,7 +1032,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -142,7 +142,7 @@ index d6bf1580787a4d5a2ac9ebde5efe236be3f15a1a..675bc8df01ad9e338541e16575c9ec8e if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d3fdb56f1e62a241d8edbde4faa1296de36de246..482cf5cf164ee33691a5581c6acafb5959705c83 100644 +index 202077ef20e15e7e02a37babc1fb31478db4e92b..62110908f3230aa3e3b81772fed67aee8171cc53 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -468,14 +468,14 @@ public class ServerPlayer extends Player { @@ -285,7 +285,7 @@ index 19540fd4a7f992888fadb6501d0c8a5a7e71fcf6..e241ae250f4f04a17ef2c583d00b065a public void start() { this.creeper.getNavigation().stop(); diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index cafea947d49b729268c0fce98ce7fcf4b0c69478..2e631060d1b46c4cfeb8a64b879e995e7109fee8 100644 +index 110dd5418b0512a2f27f0c4d5a5f1812356a6a12..5d247ac38fe8a61603b3d934f3000bcda773142b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -239,9 +239,10 @@ public class Goat extends Animal { diff --git a/patches/server/0836-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0834-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 94% rename from patches/server/0836-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0834-Remove-unnecessary-onTrackingStart-during-navigation.patch index 4c638e8ea73c..0e00a33a6932 100644 --- a/patches/server/0836-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0834-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 675bc8df01ad9e338541e16575c9ec8e538787e2..c71a844064f15bdcc2f4fab14b7ace80d95269c0 100644 +index 81db115871c524209adec41e79e37bbfb876805b..616fe8522736600722a8ab4cce0b36ec359699bd 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2641,7 +2641,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0837-Fix-custom-piglin-loved-items.patch b/patches/server/0835-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0837-Fix-custom-piglin-loved-items.patch rename to patches/server/0835-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0838-EntityPickupItemEvent-fixes.patch b/patches/server/0836-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0838-EntityPickupItemEvent-fixes.patch rename to patches/server/0836-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0839-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0837-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 100% rename from patches/server/0839-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0837-Correctly-handle-interactions-with-items-on-cooldown.patch diff --git a/patches/server/0840-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0838-Add-PlayerInventorySlotChangeEvent.patch similarity index 97% rename from patches/server/0840-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0838-Add-PlayerInventorySlotChangeEvent.patch index 996866eed83d..5ef2fc8d5dd4 100644 --- a/patches/server/0840-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/server/0838-Add-PlayerInventorySlotChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 482cf5cf164ee33691a5581c6acafb5959705c83..78e0c0b1eb659733d555d17dbeca8f186572b777 100644 +index 62110908f3230aa3e3b81772fed67aee8171cc53..4b843912ad87efe41524d5889645f2e8795130b3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -379,6 +379,25 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0841-Elder-Guardian-appearance-API.patch b/patches/server/0839-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/server/0841-Elder-Guardian-appearance-API.patch rename to patches/server/0839-Elder-Guardian-appearance-API.patch diff --git a/patches/server/0842-Allow-changing-bed-s-occupied-property.patch b/patches/server/0840-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0842-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0840-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0843-Add-entity-knockback-API.patch b/patches/server/0841-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0843-Add-entity-knockback-API.patch rename to patches/server/0841-Add-entity-knockback-API.patch diff --git a/patches/server/0844-Detect-headless-JREs.patch b/patches/server/0842-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0844-Detect-headless-JREs.patch rename to patches/server/0842-Detect-headless-JREs.patch diff --git a/patches/server/0845-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0843-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0845-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0843-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0846-optimize-dirt-and-snow-spreading.patch b/patches/server/0844-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/0846-optimize-dirt-and-snow-spreading.patch rename to patches/server/0844-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/0847-Add-EntityToggleSitEvent.patch b/patches/server/0845-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0847-Add-EntityToggleSitEvent.patch rename to patches/server/0845-Add-EntityToggleSitEvent.patch diff --git a/patches/server/0848-Add-fire-tick-delay-option.patch b/patches/server/0846-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0848-Add-fire-tick-delay-option.patch rename to patches/server/0846-Add-fire-tick-delay-option.patch diff --git a/patches/server/0849-Add-Moving-Piston-API.patch b/patches/server/0847-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0849-Add-Moving-Piston-API.patch rename to patches/server/0847-Add-Moving-Piston-API.patch diff --git a/patches/server/0850-Ignore-impossible-spawn-tick.patch b/patches/server/0848-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0850-Ignore-impossible-spawn-tick.patch rename to patches/server/0848-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0851-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0849-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0851-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0849-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0852-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0850-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0852-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0850-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0853-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0851-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 95% rename from patches/server/0853-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0851-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index 2964a3d3c61c..5e1ef1ce6d9b 100644 --- a/patches/server/0853-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0851-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3f9954e1bae36c8dedfb99a5b753d873ce521226..e83604aa0ae5760ba7335dac53b340406f4ffddf 100644 +index c7022c10896f53379e3759f597b393143972163c..68956aa1e50bef726cb480e3c317223781eb10eb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3378,6 +3378,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0854-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0852-Add-PrePlayerAttackEntityEvent.patch similarity index 93% rename from patches/server/0854-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0852-Add-PrePlayerAttackEntityEvent.patch index 50dfe7026fd4..4f1c58982671 100644 --- a/patches/server/0854-Add-PrePlayerAttackEntityEvent.patch +++ b/patches/server/0852-Add-PrePlayerAttackEntityEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PrePlayerAttackEntityEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 6ab0c3116a4238a4c5369cc33452fed594149ea4..26930e84a4b089ffdf504ae244701f9c039234d4 100644 +index 548343be02a627d2c2475a4452363876a126b3a8..cc9835f7ee449098d442eeb5d6e77abeb72f108e 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1240,8 +1240,17 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0855-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0853-ensure-reset-EnderDragon-boss-event-name.patch similarity index 96% rename from patches/server/0855-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0853-ensure-reset-EnderDragon-boss-event-name.patch index 8c8441774467..0c1a084b1cf9 100644 --- a/patches/server/0855-ensure-reset-EnderDragon-boss-event-name.patch +++ b/patches/server/0853-ensure-reset-EnderDragon-boss-event-name.patch @@ -6,7 +6,7 @@ Subject: [PATCH] ensure reset EnderDragon boss event name Fix MC-257487 diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 44f799d595d7150f00dfdfa2f85c87386f896607..1469ad613e71bcf0fa8fb9b3389eb830dbd72ca0 100644 +index 02acd171f1d3d783b7cab56c69feca5325878fa8..c298977ae1cac57524b21efcb908b846cbcff6b6 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -73,6 +73,7 @@ public class EndDragonFight { diff --git a/patches/server/0856-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0854-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0856-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0854-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0857-Add-Player-Warden-Warning-API.patch b/patches/server/0855-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/server/0857-Add-Player-Warden-Warning-API.patch rename to patches/server/0855-Add-Player-Warden-Warning-API.patch diff --git a/patches/server/0858-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0856-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0858-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0856-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0859-Add-paper-dumplisteners-command.patch b/patches/server/0857-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0859-Add-paper-dumplisteners-command.patch rename to patches/server/0857-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0860-check-global-player-list-where-appropriate.patch b/patches/server/0858-check-global-player-list-where-appropriate.patch similarity index 96% rename from patches/server/0860-check-global-player-list-where-appropriate.patch rename to patches/server/0858-check-global-player-list-where-appropriate.patch index 1ac6e75a5090..cce3063d5c5b 100644 --- a/patches/server/0860-check-global-player-list-where-appropriate.patch +++ b/patches/server/0858-check-global-player-list-where-appropriate.patch @@ -7,7 +7,7 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c71a844064f15bdcc2f4fab14b7ace80d95269c0..77199a85df9559eeb83b6410ab0e1793020fd0c1 100644 +index 616fe8522736600722a8ab4cce0b36ec359699bd..88f2feed0c0612b588a332da59d1e17416bd8982 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2764,4 +2764,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -24,7 +24,7 @@ index c71a844064f15bdcc2f4fab14b7ace80d95269c0..77199a85df9559eeb83b6410ab0e1793 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bbe594f57b7d11d6947b6b313901020c06324bdc..81814c3896aff6b90c8755a5320ac24da925e5f7 100644 +index 085ab9cd7e0898313ad4542ca2fc949377dad521..6f7990b7dd6d30bd07ec7910d341e2aadca63f2d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0861-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0859-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0861-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0859-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0862-ItemStack-damage-API.patch b/patches/server/0860-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0862-ItemStack-damage-API.patch rename to patches/server/0860-ItemStack-damage-API.patch diff --git a/patches/server/0863-Friction-API.patch b/patches/server/0861-Friction-API.patch similarity index 98% rename from patches/server/0863-Friction-API.patch rename to patches/server/0861-Friction-API.patch index f3ca18a211e2..010660339273 100644 --- a/patches/server/0863-Friction-API.patch +++ b/patches/server/0861-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 81814c3896aff6b90c8755a5320ac24da925e5f7..f1627ea97b2ce5eb00e9d30349786c3cac6b98cc 100644 +index 6f7990b7dd6d30bd07ec7910d341e2aadca63f2d..d5d8620bc4cc639daedd424ca137e99811084d78 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0864-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0862-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0864-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0862-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0865-Fix-player-kick-on-shutdown.patch b/patches/server/0863-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0865-Fix-player-kick-on-shutdown.patch rename to patches/server/0863-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0866-Sync-offhand-slot-in-menus.patch b/patches/server/0864-Sync-offhand-slot-in-menus.patch similarity index 97% rename from patches/server/0866-Sync-offhand-slot-in-menus.patch rename to patches/server/0864-Sync-offhand-slot-in-menus.patch index a71c9631543d..ba4012865e0c 100644 --- a/patches/server/0866-Sync-offhand-slot-in-menus.patch +++ b/patches/server/0864-Sync-offhand-slot-in-menus.patch @@ -8,7 +8,7 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th by pressing the offhand swap item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 78e0c0b1eb659733d555d17dbeca8f186572b777..6bf33688882e3dca8868590454a9d25567a6a780 100644 +index 4b843912ad87efe41524d5889645f2e8795130b3..ea649799341a3f446469048924aae792e211de49 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -348,6 +348,13 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0867-Player-Entity-Tracking-Events.patch b/patches/server/0865-Player-Entity-Tracking-Events.patch similarity index 92% rename from patches/server/0867-Player-Entity-Tracking-Events.patch rename to patches/server/0865-Player-Entity-Tracking-Events.patch index 67931e369e52..e46dfbad5f5a 100644 --- a/patches/server/0867-Player-Entity-Tracking-Events.patch +++ b/patches/server/0865-Player-Entity-Tracking-Events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player Entity Tracking Events diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 982750fd4f3f474514194df9b76388311c052b29..a9c94645a4bf3837bce5622b76f0d24a5a4ef065 100644 +index a58c47b16254262ec705a8f986ef42c71503770d..8c5364e6adecc01f4fa9dcd0b4fd18e81324d1a9 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1409,7 +1409,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -21,7 +21,7 @@ index 982750fd4f3f474514194df9b76388311c052b29..a9c94645a4bf3837bce5622b76f0d24a } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e83604aa0ae5760ba7335dac53b340406f4ffddf..f18dfffdc45c23a9a78ae13685a67a7d4603a56b 100644 +index 68956aa1e50bef726cb480e3c317223781eb10eb..308573493d899e7df9b4ecbd4fe7cd5a533628d8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4107,7 +4107,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0868-Limit-pet-look-distance.patch b/patches/server/0866-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0868-Limit-pet-look-distance.patch rename to patches/server/0866-Limit-pet-look-distance.patch diff --git a/patches/server/0869-Properly-resend-entities.patch b/patches/server/0867-Properly-resend-entities.patch similarity index 100% rename from patches/server/0869-Properly-resend-entities.patch rename to patches/server/0867-Properly-resend-entities.patch diff --git a/patches/server/0870-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0868-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0870-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0868-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0871-fix-Instruments.patch b/patches/server/0869-fix-Instruments.patch similarity index 100% rename from patches/server/0871-fix-Instruments.patch rename to patches/server/0869-fix-Instruments.patch diff --git a/patches/server/0872-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0870-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 100% rename from patches/server/0872-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0870-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch diff --git a/patches/server/0873-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0871-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0873-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0871-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0874-Add-BlockLockCheckEvent.patch b/patches/server/0872-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0874-Add-BlockLockCheckEvent.patch rename to patches/server/0872-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0875-Add-Sneaking-API-for-Entities.patch b/patches/server/0873-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/server/0875-Add-Sneaking-API-for-Entities.patch rename to patches/server/0873-Add-Sneaking-API-for-Entities.patch diff --git a/patches/server/0876-Improve-logging-and-errors.patch b/patches/server/0874-Improve-logging-and-errors.patch similarity index 100% rename from patches/server/0876-Improve-logging-and-errors.patch rename to patches/server/0874-Improve-logging-and-errors.patch diff --git a/patches/server/0877-Improve-PortalEvents.patch b/patches/server/0875-Improve-PortalEvents.patch similarity index 93% rename from patches/server/0877-Improve-PortalEvents.patch rename to patches/server/0875-Improve-PortalEvents.patch index 2ad20a59ee3f..4baa9b1721ad 100644 --- a/patches/server/0877-Improve-PortalEvents.patch +++ b/patches/server/0875-Improve-PortalEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f18dfffdc45c23a9a78ae13685a67a7d4603a56b..3f88e5e6aa260c6c05b57b19c6209357ac0bd4b1 100644 +index 308573493d899e7df9b4ecbd4fe7cd5a533628d8..912913b5d9b71e54661f7e4d1767d7ae149d13f7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3765,7 +3765,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0878-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0876-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0878-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0876-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0879-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0877-Add-missing-SpigotConfig-logCommands-check.patch similarity index 100% rename from patches/server/0879-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0877-Add-missing-SpigotConfig-logCommands-check.patch diff --git a/patches/server/0880-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0878-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0880-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0878-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0881-Flying-Fall-Damage.patch b/patches/server/0879-Flying-Fall-Damage.patch similarity index 96% rename from patches/server/0881-Flying-Fall-Damage.patch rename to patches/server/0879-Flying-Fall-Damage.patch index 8bcd7a81a210..e882ff3518c7 100644 --- a/patches/server/0881-Flying-Fall-Damage.patch +++ b/patches/server/0879-Flying-Fall-Damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 26930e84a4b089ffdf504ae244701f9c039234d4..659cb241643ddf0b680582b710cea6991dc476cb 100644 +index cc9835f7ee449098d442eeb5d6e77abeb72f108e..a623b22e02647d2b14e0b5a662920c4cc5d4361e 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0882-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0880-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 99% rename from patches/server/0882-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0880-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch index a25f59f41558..dbe89482433c 100644 --- a/patches/server/0882-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch +++ b/patches/server/0880-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add exploded block state to BlockExplodeEvent and diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java -index 1a0f86b5a632469942e33c237c247d2d1dee4a3d..25a5a3b949a0eb632611355e74ccd4865be108ca 100644 +index ed1277fad60992344b94f8a939febaca3edd9702..fc6903b20a6e084729306fc960a6fc80e094f76c 100644 --- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java @@ -52,6 +52,7 @@ public class DamageSource { diff --git a/patches/server/0883-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0881-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 91% rename from patches/server/0883-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0881-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index 4d37205c2d24..cb64e5ae62c2 100644 --- a/patches/server/0883-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0881-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3f88e5e6aa260c6c05b57b19c6209357ac0bd4b1..809762ac5758996668d220f2d3b6ab004bf0e306 100644 +index 912913b5d9b71e54661f7e4d1767d7ae149d13f7..9c686161a1248af1cc8ae20c67c7b2b8d881e07d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1162,7 +1162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0884-config-for-disabling-entity-tag-tags.patch b/patches/server/0882-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0884-config-for-disabling-entity-tag-tags.patch rename to patches/server/0882-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0885-Use-single-player-info-update-packet-on-join.patch b/patches/server/0883-Use-single-player-info-update-packet-on-join.patch similarity index 100% rename from patches/server/0885-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0883-Use-single-player-info-update-packet-on-join.patch diff --git a/patches/server/0886-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0884-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 95% rename from patches/server/0886-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0884-Correctly-shrink-items-during-EntityResurrectEvent.patch index 41e943910204..478a6e9f7177 100644 --- a/patches/server/0886-Correctly-shrink-items-during-EntityResurrectEvent.patch +++ b/patches/server/0884-Correctly-shrink-items-during-EntityResurrectEvent.patch @@ -22,7 +22,7 @@ This patch corrects this behaviour by only shrinking the item if a totem of undying was found and the event was called uncancelled. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f1627ea97b2ce5eb00e9d30349786c3cac6b98cc..70ab1159191ca4c7e5a271221010c743957a6ed1 100644 +index d5d8620bc4cc639daedd424ca137e99811084d78..1dfef0d35561e0af76ccddcb38ff9a3a99c47691 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1611,7 +1611,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0887-Win-Screen-API.patch b/patches/server/0885-Win-Screen-API.patch similarity index 100% rename from patches/server/0887-Win-Screen-API.patch rename to patches/server/0885-Win-Screen-API.patch diff --git a/patches/server/0888-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0886-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0888-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0886-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0889-Fix-force-opening-enchantment-tables.patch b/patches/server/0887-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0889-Fix-force-opening-enchantment-tables.patch rename to patches/server/0887-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0890-Add-Entity-Body-Yaw-API.patch b/patches/server/0888-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0890-Add-Entity-Body-Yaw-API.patch rename to patches/server/0888-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0891-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0889-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0891-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0889-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0892-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0890-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 90% rename from patches/server/0892-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0890-Update-the-flag-when-a-captured-block-state-is-outda.patch index 122e19307c56..006fae5113b0 100644 --- a/patches/server/0892-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0890-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e853c9fdc8ebde6a653aacbb1db6679ce4d9d50b..8d887a07bd2ef11667ccb34872d629656859fb6c 100644 +index 2ef137e93f88b98812fc5b2c36f32d7d7b4216ae..ba1e041e856261643f0d64528f6fbe2f5279b476 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -923,6 +923,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0893-Add-EntityFertilizeEggEvent.patch b/patches/server/0891-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/server/0893-Add-EntityFertilizeEggEvent.patch rename to patches/server/0891-Add-EntityFertilizeEggEvent.patch diff --git a/patches/server/0894-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0892-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0894-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0892-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0895-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0893-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0895-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0893-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0896-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0894-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0896-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0894-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0897-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0895-Fix-advancement-triggers-for-entity-damage.patch similarity index 97% rename from patches/server/0897-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0895-Fix-advancement-triggers-for-entity-damage.patch index 504f2e911229..4568aa9c2142 100644 --- a/patches/server/0897-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0895-Fix-advancement-triggers-for-entity-damage.patch @@ -23,7 +23,7 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 70ab1159191ca4c7e5a271221010c743957a6ed1..b99c7e77948f2a341dd924f65bf952f8695591b4 100644 +index 1dfef0d35561e0af76ccddcb38ff9a3a99c47691..0a274d7ca72c75c9a36e8e688f22097c4abd8ba2 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2302,7 +2302,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0898-Fix-text-display-error-on-spawn.patch b/patches/server/0896-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0898-Fix-text-display-error-on-spawn.patch rename to patches/server/0896-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0899-Fix-inventories-returning-null-Locations.patch b/patches/server/0897-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0899-Fix-inventories-returning-null-Locations.patch rename to patches/server/0897-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0900-Add-Shearable-API.patch b/patches/server/0898-Add-Shearable-API.patch similarity index 100% rename from patches/server/0900-Add-Shearable-API.patch rename to patches/server/0898-Add-Shearable-API.patch diff --git a/patches/server/0901-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0899-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0901-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0899-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0902-Optimize-Hoppers.patch b/patches/server/0900-Optimize-Hoppers.patch similarity index 100% rename from patches/server/0902-Optimize-Hoppers.patch rename to patches/server/0900-Optimize-Hoppers.patch diff --git a/patches/server/0903-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0901-Fix-beehives-generating-from-using-bonemeal.patch similarity index 100% rename from patches/server/0903-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0901-Fix-beehives-generating-from-using-bonemeal.patch diff --git a/patches/server/0904-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0902-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0904-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0902-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0905-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0903-Treat-sequence-violations-like-they-should-be.patch similarity index 100% rename from patches/server/0905-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0903-Treat-sequence-violations-like-they-should-be.patch diff --git a/patches/server/0906-remove-duplicate-animate-packet-for-records.patch b/patches/server/0904-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0906-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0904-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0907-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0905-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/server/0907-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0905-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/server/0908-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0906-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 91% rename from patches/server/0908-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0906-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index 0b5c35b7d0ae..bee141908762 100644 --- a/patches/server/0908-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0906-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 77199a85df9559eeb83b6410ab0e1793020fd0c1..799ffd47bca76dd9a8c19ab5d37d09e82b477717 100644 +index 88f2feed0c0612b588a332da59d1e17416bd8982..720d5275199e73b0c9d0b1d1a9f6a4463c9bb3bb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1724,6 +1724,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0909-Use-array-for-gamerule-storage.patch b/patches/server/0907-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0909-Use-array-for-gamerule-storage.patch rename to patches/server/0907-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0910-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0908-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0910-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0908-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0911-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0909-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0911-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0909-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0912-Add-Mob-Experience-reward-API.patch b/patches/server/0910-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0912-Add-Mob-Experience-reward-API.patch rename to patches/server/0910-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0913-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0911-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0913-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0911-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0914-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0912-Fix-DamageCause-for-Falling-Blocks.patch similarity index 100% rename from patches/server/0914-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0912-Fix-DamageCause-for-Falling-Blocks.patch diff --git a/patches/server/0915-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0913-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0915-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0913-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0916-More-accurate-isInOpenWater-impl.patch b/patches/server/0914-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0916-More-accurate-isInOpenWater-impl.patch rename to patches/server/0914-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0917-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0915-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0917-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0915-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0918-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0916-Optimise-recalcBlockCounts-for-empty-sections.patch similarity index 100% rename from patches/server/0918-Optimise-recalcBlockCounts-for-empty-sections.patch rename to patches/server/0916-Optimise-recalcBlockCounts-for-empty-sections.patch diff --git a/patches/server/0919-Expand-PlayerItemMendEvent.patch b/patches/server/0917-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/server/0919-Expand-PlayerItemMendEvent.patch rename to patches/server/0917-Expand-PlayerItemMendEvent.patch diff --git a/patches/server/0920-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0918-Refresh-ProjectileSource-for-projectiles.patch similarity index 97% rename from patches/server/0920-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0918-Refresh-ProjectileSource-for-projectiles.patch index 4f6486d6cb34..d8d231dc6f87 100644 --- a/patches/server/0920-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0918-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 809762ac5758996668d220f2d3b6ab004bf0e306..145f9020d4d9f45fffadb9ed8ba5a2f9a13873dc 100644 +index 9c686161a1248af1cc8ae20c67c7b2b8d881e07d..cedf5d153abf6d0edc2a56ca7e393ece362145d3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -386,6 +386,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0921-Add-transient-modifier-API.patch b/patches/server/0919-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0921-Add-transient-modifier-API.patch rename to patches/server/0919-Add-transient-modifier-API.patch diff --git a/patches/server/0922-Fix-block-place-logic.patch b/patches/server/0920-Fix-block-place-logic.patch similarity index 97% rename from patches/server/0922-Fix-block-place-logic.patch rename to patches/server/0920-Fix-block-place-logic.patch index 52870b6cb3d4..fa5764019ad0 100644 --- a/patches/server/0922-Fix-block-place-logic.patch +++ b/patches/server/0920-Fix-block-place-logic.patch @@ -41,7 +41,7 @@ index df38d95c38831c884cbfb4a15b8ba682f0b1ab51..82a1615f00b6f32c81e537f93a3d3645 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8d887a07bd2ef11667ccb34872d629656859fb6c..7311a9a3b8c4b62b232ea54568c4090a8e121f26 100644 +index ba1e041e856261643f0d64528f6fbe2f5279b476..3660ebab9164146fb75075462802f5ba383dd9c5 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1038,17 +1038,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0923-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0921-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0923-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0921-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0924-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0922-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0924-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0922-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0925-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0923-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 94% rename from patches/server/0925-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0923-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index 436cde524cfb..c4f54468e43e 100644 --- a/patches/server/0925-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0923-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 16c2942ef30c8f3caccb56c85ebad660f785c070..dcd0ffc8b1567d51117bc8b811ac066bdf276bc7 100644 +index 1c7f88d71ee7262a31d75e1462e45f3f5e8da232..758ca700cfa0f05357f051962e41a215ade3724f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -352,7 +352,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0926-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0924-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0926-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0924-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0927-Fix-sniffer-removeExploredLocation.patch b/patches/server/0925-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0927-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0925-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0928-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0926-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0928-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0926-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0929-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0927-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch similarity index 100% rename from patches/server/0929-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename to patches/server/0927-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch diff --git a/patches/server/0930-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0928-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0930-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0928-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0931-Properly-cancel-usable-items.patch b/patches/server/0929-Properly-cancel-usable-items.patch similarity index 97% rename from patches/server/0931-Properly-cancel-usable-items.patch rename to patches/server/0929-Properly-cancel-usable-items.patch index 69da56a36faa..aa63be117a0a 100644 --- a/patches/server/0931-Properly-cancel-usable-items.patch +++ b/patches/server/0929-Properly-cancel-usable-items.patch @@ -46,7 +46,7 @@ index 294dd52de7b0b19b19bbef9bb6ec6b5b2845cdeb..ac41dc96a4aee7b0bb71cbf71d3109ff return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b99c7e77948f2a341dd924f65bf952f8695591b4..5f0d7448bca32a80d4488a4e9ad87918fedf356c 100644 +index 0a274d7ca72c75c9a36e8e688f22097c4abd8ba2..03caab6d49f74402c5c6c932e3a85e72a6edf3bc 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3814,6 +3814,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0932-Add-event-for-player-editing-sign.patch b/patches/server/0930-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0932-Add-event-for-player-editing-sign.patch rename to patches/server/0930-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0933-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0931-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0933-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0931-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0934-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0932-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 98% rename from patches/server/0934-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0932-Fix-cmd-permission-levels-for-command-blocks.patch index a7a6c86d67d1..772d421a4abe 100644 --- a/patches/server/0934-Fix-cmd-permission-levels-for-command-blocks.patch +++ b/patches/server/0932-Fix-cmd-permission-levels-for-command-blocks.patch @@ -41,7 +41,7 @@ index e65d7980b7ebed60786bc31e2f8156fda3b59556..6978d0a9abc9cc5870ac5ee6308f2e99 // CraftBukkit end diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 6abef7947cadca6bccac809a8d58d38961132e0f..1a5b1be217e210db3f498b93fbcae7509be597ee 100644 +index 1bf9cff3c1446be74ded3ac14658e283290b438b..4f627f80811b06d27311a39d00fdc3d39b9887b2 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -296,16 +296,7 @@ public class Commands { diff --git a/patches/server/0935-Add-option-to-disable-block-updates.patch b/patches/server/0933-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0935-Add-option-to-disable-block-updates.patch rename to patches/server/0933-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0936-Call-missing-BlockDispenseEvent.patch b/patches/server/0934-Call-missing-BlockDispenseEvent.patch similarity index 100% rename from patches/server/0936-Call-missing-BlockDispenseEvent.patch rename to patches/server/0934-Call-missing-BlockDispenseEvent.patch diff --git a/patches/server/0937-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0935-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 90% rename from patches/server/0937-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0935-Don-t-load-chunks-for-supporting-block-checks.patch index af0b86d27fb4..8b19f91a28f5 100644 --- a/patches/server/0937-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0935-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 145f9020d4d9f45fffadb9ed8ba5a2f9a13873dc..058d63bc53d8b4551d3a1b03b3c66b6e4635e82e 100644 +index cedf5d153abf6d0edc2a56ca7e393ece362145d3..3cbe1cf7ed1091a74432ca6eb5745d10e590f5d3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1362,7 +1362,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0938-Optimize-player-lookups-for-beacons.patch b/patches/server/0936-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0938-Optimize-player-lookups-for-beacons.patch rename to patches/server/0936-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0939-Add-Sign-getInteractableSideFor.patch b/patches/server/0937-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0939-Add-Sign-getInteractableSideFor.patch rename to patches/server/0937-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0940-Array-backed-synched-entity-data.patch b/patches/server/0938-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0940-Array-backed-synched-entity-data.patch rename to patches/server/0938-Array-backed-synched-entity-data.patch diff --git a/patches/server/0941-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0939-fix-item-meta-for-tadpole-buckets.patch similarity index 97% rename from patches/server/0941-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0939-fix-item-meta-for-tadpole-buckets.patch index 472ece5bf8d5..ef43744d927e 100644 --- a/patches/server/0941-fix-item-meta-for-tadpole-buckets.patch +++ b/patches/server/0939-fix-item-meta-for-tadpole-buckets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix item meta for tadpole buckets diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 5df92d21e1e1827c59352d9f89dbfb23af7c0d7b..090ba0b85fe72419c419cc72b5584ec391c0cfa1 100644 +index c421649a0c88ee9c773bb6985f7114e58f08a7a1..71aac5d4cf29cea9daa378fc8ac584750de4d1ca 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java @@ -357,6 +357,7 @@ public final class CraftItemFactory implements ItemFactory { diff --git a/patches/server/0942-Fix-BanList-API.patch b/patches/server/0940-Fix-BanList-API.patch similarity index 100% rename from patches/server/0942-Fix-BanList-API.patch rename to patches/server/0940-Fix-BanList-API.patch diff --git a/patches/server/0943-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0941-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0943-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0941-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0944-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0942-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0944-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0942-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0945-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0943-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0945-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0943-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0946-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0944-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 100% rename from patches/server/0946-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0944-ExperienceOrb-should-call-EntitySpawnEvent.patch diff --git a/patches/server/0947-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0945-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0947-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0945-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0948-Add-whitelist-events.patch b/patches/server/0946-Add-whitelist-events.patch similarity index 100% rename from patches/server/0948-Add-whitelist-events.patch rename to patches/server/0946-Add-whitelist-events.patch diff --git a/patches/server/0949-Implement-PlayerFailMoveEvent.patch b/patches/server/0947-Implement-PlayerFailMoveEvent.patch similarity index 100% rename from patches/server/0949-Implement-PlayerFailMoveEvent.patch rename to patches/server/0947-Implement-PlayerFailMoveEvent.patch diff --git a/patches/server/0950-Folia-scheduler-and-owned-region-API.patch b/patches/server/0948-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0950-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0948-Folia-scheduler-and-owned-region-API.patch index 38a1d9eb0b73..17cf66aa5eb7 100644 --- a/patches/server/0950-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0948-Folia-scheduler-and-owned-region-API.patch @@ -1185,7 +1185,7 @@ index 8d8cc5463f261334d0aabf4fd31854a2af862acc..e05bfebf51d210dad08292489bae8930 this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 058d63bc53d8b4551d3a1b03b3c66b6e4635e82e..d97d1878f7c4ddbdfc5fc4d79838e43e7332936e 100644 +index 3cbe1cf7ed1091a74432ca6eb5745d10e590f5d3..de71cbda2f38ebce85819cfe008ae44c969dee01 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -249,11 +249,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1213,7 +1213,7 @@ index 058d63bc53d8b4551d3a1b03b3c66b6e4635e82e..d97d1878f7c4ddbdfc5fc4d79838e43e @Override public CommandSender getBukkitSender(CommandSourceStack wrapper) { return this.getBukkitEntity(); -@@ -4741,6 +4753,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4736,6 +4748,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } // Paper end - rewrite chunk system @@ -1221,7 +1221,7 @@ index 058d63bc53d8b4551d3a1b03b3c66b6e4635e82e..d97d1878f7c4ddbdfc5fc4d79838e43e if (this.removalReason == null) { this.removalReason = reason; } -@@ -4751,12 +4764,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4746,12 +4759,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (reason != RemovalReason.UNLOADED_TO_CHUNK) this.getPassengers().forEach(Entity::stopRiding); // Paper - chunk system - don't adjust passenger state when unloading, it's just not safe (and messes with our logic in entity chunk unload) this.levelCallback.onRemove(reason); @@ -1251,7 +1251,7 @@ index 058d63bc53d8b4551d3a1b03b3c66b6e4635e82e..d97d1878f7c4ddbdfc5fc4d79838e43e public void setLevelCallback(EntityInLevelCallback changeListener) { this.levelCallback = changeListener; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index dcd0ffc8b1567d51117bc8b811ac066bdf276bc7..6c99807731006bbc6b1653ff40bb72d2a3170c37 100644 +index 758ca700cfa0f05357f051962e41a215ade3724f..ac5abd9da8205e72f8b422a06ef77ad8b6e5da7b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -306,6 +306,76 @@ public final class CraftServer implements Server { diff --git a/patches/server/0951-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0949-Only-erase-allay-memory-on-non-item-targets.patch similarity index 100% rename from patches/server/0951-Only-erase-allay-memory-on-non-item-targets.patch rename to patches/server/0949-Only-erase-allay-memory-on-non-item-targets.patch diff --git a/patches/server/0952-API-for-updating-recipes-on-clients.patch b/patches/server/0950-API-for-updating-recipes-on-clients.patch similarity index 97% rename from patches/server/0952-API-for-updating-recipes-on-clients.patch rename to patches/server/0950-API-for-updating-recipes-on-clients.patch index deaffb985d8d..138e49502f31 100644 --- a/patches/server/0952-API-for-updating-recipes-on-clients.patch +++ b/patches/server/0950-API-for-updating-recipes-on-clients.patch @@ -39,7 +39,7 @@ index e05bfebf51d210dad08292489bae89300abf99da..7c054f3b431171a296549bc2aa597df8 Iterator iterator1 = this.players.iterator(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6c99807731006bbc6b1653ff40bb72d2a3170c37..cce8cc4006c1e7ddae495822fa22771b751e4d20 100644 +index ac5abd9da8205e72f8b422a06ef77ad8b6e5da7b..be176bbb17e871d7ff99e7136cbb0a5bbc25f047 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1129,6 +1129,18 @@ public final class CraftServer implements Server { diff --git a/patches/server/0953-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0951-Fix-rotation-when-spawning-display-entities.patch similarity index 100% rename from patches/server/0953-Fix-rotation-when-spawning-display-entities.patch rename to patches/server/0951-Fix-rotation-when-spawning-display-entities.patch diff --git a/patches/server/0954-Only-capture-actual-tree-growth.patch b/patches/server/0952-Only-capture-actual-tree-growth.patch similarity index 98% rename from patches/server/0954-Only-capture-actual-tree-growth.patch rename to patches/server/0952-Only-capture-actual-tree-growth.patch index 79885da3830f..ff212708ba2c 100644 --- a/patches/server/0954-Only-capture-actual-tree-growth.patch +++ b/patches/server/0952-Only-capture-actual-tree-growth.patch @@ -29,7 +29,7 @@ index 2a76c686cc1e5609db85bf21718660cf838d5899..7f48a350a2bddf891e54e8e5349976cd } entityhuman.awardStat(Stats.ITEM_USED.get(item)); // SPIGOT-7236 - award stat diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 7311a9a3b8c4b62b232ea54568c4090a8e121f26..03c43220425411e0a135e7d63df276c4571d23d0 100644 +index 3660ebab9164146fb75075462802f5ba383dd9c5..315dc7b198179f2f1384ab898d36d66f3c592d95 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1898,4 +1898,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0955-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0953-Use-correct-source-for-mushroom-block-spread-event.patch similarity index 100% rename from patches/server/0955-Use-correct-source-for-mushroom-block-spread-event.patch rename to patches/server/0953-Use-correct-source-for-mushroom-block-spread-event.patch diff --git a/patches/server/0956-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0954-Respect-randomizeData-on-more-entities-when-spawning.patch similarity index 100% rename from patches/server/0956-Respect-randomizeData-on-more-entities-when-spawning.patch rename to patches/server/0954-Respect-randomizeData-on-more-entities-when-spawning.patch diff --git a/patches/server/0957-Use-correct-seed-on-api-world-load.patch b/patches/server/0955-Use-correct-seed-on-api-world-load.patch similarity index 90% rename from patches/server/0957-Use-correct-seed-on-api-world-load.patch rename to patches/server/0955-Use-correct-seed-on-api-world-load.patch index 6c98e92243fe..3e622561c993 100644 --- a/patches/server/0957-Use-correct-seed-on-api-world-load.patch +++ b/patches/server/0955-Use-correct-seed-on-api-world-load.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use correct seed on api world load diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index cce8cc4006c1e7ddae495822fa22771b751e4d20..4a5052d8ba952a386e8a5ace4821848371397a9b 100644 +index be176bbb17e871d7ff99e7136cbb0a5bbc25f047..d9aecf9f930b0cd4b21b7c29628ea4b49f087209 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1347,7 +1347,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0958-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0956-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch similarity index 100% rename from patches/server/0958-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch rename to patches/server/0956-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch diff --git a/patches/server/0959-Cache-map-ids-on-item-frames.patch b/patches/server/0957-Cache-map-ids-on-item-frames.patch similarity index 100% rename from patches/server/0959-Cache-map-ids-on-item-frames.patch rename to patches/server/0957-Cache-map-ids-on-item-frames.patch diff --git a/patches/server/0960-Fix-custom-statistic-criteria-creation.patch b/patches/server/0958-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/server/0960-Fix-custom-statistic-criteria-creation.patch rename to patches/server/0958-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/server/0961-Bandaid-fix-for-Effect.patch b/patches/server/0959-Bandaid-fix-for-Effect.patch similarity index 98% rename from patches/server/0961-Bandaid-fix-for-Effect.patch rename to patches/server/0959-Bandaid-fix-for-Effect.patch index efc6d6e6bba9..a99ca4e333c8 100644 --- a/patches/server/0961-Bandaid-fix-for-Effect.patch +++ b/patches/server/0959-Bandaid-fix-for-Effect.patch @@ -60,7 +60,7 @@ index a4519762175c68256b1f303daca8b9408ac182bb..457e9093adb99d31ffc7f061d8c858f9 case COMPOSTER_FILL_ATTEMPT: datavalue = ((Boolean) data) ? 1 : 0; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e72f8f6dd741a7a83f7c40809939bb976c355a0c..8d76e78f91877d906b03b58dffd1402e15714791 100644 +index 56a98b297f3f8742d400cd3a1f335cec1d50b331..0cc5c04f121860180e5886b484aa3cf8f2002131 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1430,7 +1430,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0962-SculkCatalyst-bloom-API.patch b/patches/server/0960-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/server/0962-SculkCatalyst-bloom-API.patch rename to patches/server/0960-SculkCatalyst-bloom-API.patch diff --git a/patches/server/0963-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0961-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/server/0963-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0961-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/server/0964-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0962-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 95% rename from patches/server/0964-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/0962-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch index 6f931d7d9a88..07588bde77fc 100644 --- a/patches/server/0964-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch +++ b/patches/server/0962-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve cancelling PreCreatureSpawnEvent with per player mob diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a9c94645a4bf3837bce5622b76f0d24a5a4ef065..cc1b903111730d4042fdbf4d2dae88ae72ac4bc8 100644 +index 8c5364e6adecc01f4fa9dcd0b4fd18e81324d1a9..34edd2032abb9e444d7b67672dc72335216dbe82 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -386,8 +386,26 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -61,7 +61,7 @@ index 1483007b79e18107e41037c279e048f04f666d1d..5152979bf81345fc365e7b16028c7d97 spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true); } else { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6bf33688882e3dca8868590454a9d25567a6a780..b63cbff6e42791bb9e490c0fb5e4e719abb4f202 100644 +index ea649799341a3f446469048924aae792e211de49..0dd61a4baee77fec577ca23d9e356c0b4327dded 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -260,6 +260,7 @@ public class ServerPlayer extends Player { @@ -73,7 +73,7 @@ index 6bf33688882e3dca8868590454a9d25567a6a780..b63cbff6e42791bb9e490c0fb5e4e719 // CraftBukkit start public String displayName; diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index d08c7b0b52065980f1f13c5533ff6355028322db..dc211c6aedc178ac50b7d05aab3662c422211cbd 100644 +index 48cc5623973713e07d95639e5359fc15e59785cc..46d743db099e69e10f5534aafdd7aa5eda67dec9 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -277,6 +277,11 @@ public final class NaturalSpawner { diff --git a/patches/server/0965-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0963-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 96% rename from patches/server/0965-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0963-Deprecate-and-replace-methods-with-old-StructureType.patch index 8ca41cfb6c0d..fc6082d9622a 100644 --- a/patches/server/0965-Deprecate-and-replace-methods-with-old-StructureType.patch +++ b/patches/server/0963-Deprecate-and-replace-methods-with-old-StructureType.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Deprecate and replace methods with old StructureType diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4a5052d8ba952a386e8a5ace4821848371397a9b..70274239aa95d41953291d138cc46e0d7b491a8a 100644 +index d9aecf9f930b0cd4b21b7c29628ea4b49f087209..86554e595e0b61b3ad0d180b94bd73aa05079cec 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1951,6 +1951,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0966-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0964-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 100% rename from patches/server/0966-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0964-Don-t-tab-complete-namespaced-commands-if-send-names.patch diff --git a/patches/server/0967-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0965-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 100% rename from patches/server/0967-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0965-Properly-handle-BlockBreakEvent-isDropItems.patch diff --git a/patches/server/0968-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0966-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/server/0968-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0966-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/server/0969-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0967-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 94% rename from patches/server/0969-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0967-Configurable-entity-tracking-range-by-Y-coordinate.patch index 64db2f97e39c..4a323f5f56b5 100644 --- a/patches/server/0969-Configurable-entity-tracking-range-by-Y-coordinate.patch +++ b/patches/server/0967-Configurable-entity-tracking-range-by-Y-coordinate.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable entity tracking range by Y coordinate Options to configure entity tracking by Y coordinate, also for each entity category. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index cc1b903111730d4042fdbf4d2dae88ae72ac4bc8..3ba98e9bf7db37567d38d62eef6825eba57afdc6 100644 +index 34edd2032abb9e444d7b67672dc72335216dbe82..6e51837a99bb69240f82a061f2c808f78a8346a6 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1419,6 +1419,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0970-Add-Listing-API-for-Player.patch b/patches/server/0968-Add-Listing-API-for-Player.patch similarity index 100% rename from patches/server/0970-Add-Listing-API-for-Player.patch rename to patches/server/0968-Add-Listing-API-for-Player.patch diff --git a/patches/server/0971-Configurable-Region-Compression-Format.patch b/patches/server/0969-Configurable-Region-Compression-Format.patch similarity index 96% rename from patches/server/0971-Configurable-Region-Compression-Format.patch rename to patches/server/0969-Configurable-Region-Compression-Format.patch index 0edf890d2275..12a20130d78a 100644 --- a/patches/server/0971-Configurable-Region-Compression-Format.patch +++ b/patches/server/0969-Configurable-Region-Compression-Format.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable Region Compression Format 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 83966430240d375e7618e13c75676d510a222c37..c50d317d63f5ce61788abf449ec59a542b021f50 100644 +index b0fa77d298ad1476fdc2433b0308276068e53a71..22de360e6775943c0c8bd5717c78d49b45e70d6d 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 @@ -424,11 +424,11 @@ public class RegionFile implements AutoCloseable { diff --git a/patches/server/0972-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0970-Add-BlockFace-to-BlockDamageEvent.patch similarity index 100% rename from patches/server/0972-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/server/0970-Add-BlockFace-to-BlockDamageEvent.patch diff --git a/patches/server/0973-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0971-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/server/0973-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0971-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/server/0974-Expand-Pose-API.patch b/patches/server/0972-Expand-Pose-API.patch similarity index 95% rename from patches/server/0974-Expand-Pose-API.patch rename to patches/server/0972-Expand-Pose-API.patch index 3986eb912d79..1f9cd157614d 100644 --- a/patches/server/0974-Expand-Pose-API.patch +++ b/patches/server/0972-Expand-Pose-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d97d1878f7c4ddbdfc5fc4d79838e43e7332936e..c926ee51cf6a5f75c762ace22259b2f38a5f6239 100644 +index de71cbda2f38ebce85819cfe008ae44c969dee01..ecc50db7e63d40944423f74677ed7e916397f6b7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0975-More-DragonBattle-API.patch b/patches/server/0973-More-DragonBattle-API.patch similarity index 97% rename from patches/server/0975-More-DragonBattle-API.patch rename to patches/server/0973-More-DragonBattle-API.patch index 62707b07e23d..3831f7381e97 100644 --- a/patches/server/0975-More-DragonBattle-API.patch +++ b/patches/server/0973-More-DragonBattle-API.patch @@ -10,7 +10,7 @@ public net.minecraft.world.level.dimension.end.EndDragonFight respawnCrystals public net.minecraft.world.level.dimension.end.EndDragonFight spawnNewGateway(Lnet/minecraft/core/BlockPos;)V diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 1469ad613e71bcf0fa8fb9b3389eb830dbd72ca0..e0f11a4ec60a72c510af8fa4297eee3727c791bc 100644 +index c298977ae1cac57524b21efcb908b846cbcff6b6..17f4f6b098411c64d09fe01965c22a1789faa6bb 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -439,6 +439,24 @@ public class EndDragonFight { diff --git a/patches/server/0976-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0974-Deep-clone-unhandled-nbt-tags.patch similarity index 100% rename from patches/server/0976-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0974-Deep-clone-unhandled-nbt-tags.patch diff --git a/patches/server/0977-Add-PlayerPickItemEvent.patch b/patches/server/0975-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/server/0977-Add-PlayerPickItemEvent.patch rename to patches/server/0975-Add-PlayerPickItemEvent.patch diff --git a/patches/server/0978-Improve-performance-of-mass-crafts.patch b/patches/server/0976-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/0978-Improve-performance-of-mass-crafts.patch rename to patches/server/0976-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/0979-Allow-trident-custom-damage.patch b/patches/server/0977-Allow-trident-custom-damage.patch similarity index 100% rename from patches/server/0979-Allow-trident-custom-damage.patch rename to patches/server/0977-Allow-trident-custom-damage.patch diff --git a/patches/server/0980-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0978-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/server/0980-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/server/0978-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/server/0981-Optimize-nearest-structure-border-iteration.patch b/patches/server/0979-Optimize-nearest-structure-border-iteration.patch similarity index 95% rename from patches/server/0981-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0979-Optimize-nearest-structure-border-iteration.patch index 5678ffb6f685..ddf78eeb7387 100644 --- a/patches/server/0981-Optimize-nearest-structure-border-iteration.patch +++ b/patches/server/0979-Optimize-nearest-structure-border-iteration.patch @@ -14,7 +14,7 @@ ensure that the returned found structure (which may for example be a buried treasure that will be marked on a treasure map) is the same as in vanilla. diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 65db282b32dfec041579812f9b7275d8c0b99a0d..0ae5c5ed8064d9fb3acc10f8503eafdcea42667a 100644 +index 6b743d4c7b304c21e2e89300e69df8eff672e8a6..9cfb0283e568a7d4d554a2fed2417b375485df94 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -260,12 +260,15 @@ public abstract class ChunkGenerator { diff --git a/patches/server/0982-Implement-OfflinePlayer-isConnected.patch b/patches/server/0980-Implement-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/server/0982-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0980-Implement-OfflinePlayer-isConnected.patch diff --git a/patches/server/0983-Fix-inventory-desync.patch b/patches/server/0981-Fix-inventory-desync.patch similarity index 100% rename from patches/server/0983-Fix-inventory-desync.patch rename to patches/server/0981-Fix-inventory-desync.patch diff --git a/patches/server/0984-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0982-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 98% rename from patches/server/0984-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0982-Add-titleOverride-to-InventoryOpenEvent.patch index 452553c27701..5d37d11cdc64 100644 --- a/patches/server/0984-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/0982-Add-titleOverride-to-InventoryOpenEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b63cbff6e42791bb9e490c0fb5e4e719abb4f202..92e48b7368e27aff16552d5ab03d1168598d852f 100644 +index 0dd61a4baee77fec577ca23d9e356c0b4327dded..52f50d89cbbde6898acb61c227c06c9c587d59c0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1573,12 +1573,17 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0985-Configure-sniffer-egg-hatch-time.patch b/patches/server/0983-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/server/0985-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0983-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/server/0986-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0984-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 97% rename from patches/server/0986-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0984-Do-crystal-portal-proximity-check-before-entity-look.patch index c5c4ed65cabc..0d845b7122f1 100644 --- a/patches/server/0986-Do-crystal-portal-proximity-check-before-entity-look.patch +++ b/patches/server/0984-Do-crystal-portal-proximity-check-before-entity-look.patch @@ -34,7 +34,7 @@ index ca1edc083847b47bb450b291723aca778a5912dc..e1696f6b77df4c8fceaece64701d4db7 } diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index e0f11a4ec60a72c510af8fa4297eee3727c791bc..6046dc009c59ac3472eca6a8cfb759eacbfbc70a 100644 +index 17f4f6b098411c64d09fe01965c22a1789faa6bb..8d57a03793934c8c0b259974bd4d9f9c2cab884d 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -558,6 +558,12 @@ public class EndDragonFight { diff --git a/patches/server/0987-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0985-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0987-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0985-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0988-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0986-Add-slot-sanity-checks-in-container-clicks.patch similarity index 100% rename from patches/server/0988-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0986-Add-slot-sanity-checks-in-container-clicks.patch diff --git a/patches/server/0989-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0987-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0989-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0987-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0990-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0988-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0990-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0988-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0991-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0989-Fix-silent-equipment-change-for-mobs.patch similarity index 100% rename from patches/server/0991-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0989-Fix-silent-equipment-change-for-mobs.patch diff --git a/patches/server/0992-Fix-spigot-s-Forced-Stats.patch b/patches/server/0990-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0992-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0990-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0993-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0991-Add-missing-InventoryHolders-to-inventories.patch similarity index 99% rename from patches/server/0993-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0991-Add-missing-InventoryHolders-to-inventories.patch index abc17ee40580..64367c8db865 100644 --- a/patches/server/0993-Add-missing-InventoryHolders-to-inventories.patch +++ b/patches/server/0991-Add-missing-InventoryHolders-to-inventories.patch @@ -112,7 +112,7 @@ index 819187dbcf468d9278ce33bd97688476aab53f8e..32e7c7599bffb9ea5384615d31e0b63d public void setChanged() { CartographyTableMenu.this.slotsChanged(this); diff --git a/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java b/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java -index f00a957a0f55e69f93e6d7dc80193304447c3dcb..91699661c78089e07be06e4456413c5aa90562b1 100644 +index 85e336637db8643fc5aca1dba724c9b341cbf46f..12b466ccb7c36021cf807c4f3fd2bcb037943abc 100644 --- a/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java +++ b/src/main/java/net/minecraft/world/inventory/ContainerLevelAccess.java @@ -21,6 +21,18 @@ public interface ContainerLevelAccess { diff --git a/patches/server/0994-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0992-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 97% rename from patches/server/0994-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0992-Do-not-read-tile-entities-in-chunks-that-are-positio.patch index f75b6c2e5ac8..0da15fa481cd 100644 --- a/patches/server/0994-Do-not-read-tile-entities-in-chunks-that-are-positio.patch +++ b/patches/server/0992-Do-not-read-tile-entities-in-chunks-that-are-positio.patch @@ -10,7 +10,7 @@ which would cause a crash on Folia but would appear to function fine on Paper. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index df9ae808c5a59ea25145c9df62f42fb33d159021..11eb5fc65ea0dccbb38c7d47a4dfd5cf3b46c79e 100644 +index 72cfe25cbc2076bc83c9f965ab70b0e636800212..c57ca085afe52af0ae9e40e241452796e246f5cc 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -381,6 +381,13 @@ public class ChunkSerializer { diff --git a/patches/server/0995-Actually-optimise-explosions.patch b/patches/server/0993-Actually-optimise-explosions.patch similarity index 100% rename from patches/server/0995-Actually-optimise-explosions.patch rename to patches/server/0993-Actually-optimise-explosions.patch diff --git a/patches/server/0996-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0994-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0996-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0994-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0997-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0995-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 100% rename from patches/server/0997-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/0995-Remove-Spigot-Bug-Fix-for-MC-109346.patch diff --git a/patches/server/0998-Fix-SuspiciousStewMeta.patch b/patches/server/0996-Fix-SuspiciousStewMeta.patch similarity index 100% rename from patches/server/0998-Fix-SuspiciousStewMeta.patch rename to patches/server/0996-Fix-SuspiciousStewMeta.patch diff --git a/patches/server/0999-Optimise-chunk-tick-iteration.patch b/patches/server/0997-Optimise-chunk-tick-iteration.patch similarity index 99% rename from patches/server/0999-Optimise-chunk-tick-iteration.patch rename to patches/server/0997-Optimise-chunk-tick-iteration.patch index 68aad5c1b9f6..9995794ed724 100644 --- a/patches/server/0999-Optimise-chunk-tick-iteration.patch +++ b/patches/server/0997-Optimise-chunk-tick-iteration.patch @@ -108,7 +108,7 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754 List list; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 3ba98e9bf7db37567d38d62eef6825eba57afdc6..e7cb1eb0740dcf8184a609172031f45fbf92957b 100644 +index 6e51837a99bb69240f82a061f2c808f78a8346a6..c6e764f140d3fe6342c6f224fe0d9643a3185cba 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -365,7 +365,7 @@ index 5152979bf81345fc365e7b16028c7d970d2f5856..44ada45d9bf2d9b48e5de1c3cb1a8559 gameprofilerfiller.pop(); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 92e48b7368e27aff16552d5ab03d1168598d852f..f4f8c60a24664b6fb33361ae830987701a0e9394 100644 +index 52f50d89cbbde6898acb61c227c06c9c587d59c0..1bdc710ae8ad0629eb715e00254f8465e69fb9d1 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -325,6 +325,9 @@ public class ServerPlayer extends Player { diff --git a/patches/server/1000-Lag-compensation-ticks.patch b/patches/server/0998-Lag-compensation-ticks.patch similarity index 97% rename from patches/server/1000-Lag-compensation-ticks.patch rename to patches/server/0998-Lag-compensation-ticks.patch index 4898e06039cb..a7f23bbb8206 100644 --- a/patches/server/1000-Lag-compensation-ticks.patch +++ b/patches/server/0998-Lag-compensation-ticks.patch @@ -30,7 +30,7 @@ index 140dd3283eb2bb0e1ea76034f71f9184b9761789..c1c1763de0ad0376c504946cbfd7bbd5 net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 799ffd47bca76dd9a8c19ab5d37d09e82b477717..8a7de73ce83966c81c456d4744b04fd0f886646d 100644 +index 720d5275199e73b0c9d0b1d1a9f6a4463c9bb3bb..6d1e96e971d03026a5583455193c023188fa8157 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -65,7 +65,7 @@ index 9024cd25faabb4d5aed3681d4389baad6ad7b964..82aabd5234102c3763891ebe3009e75f if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5f0d7448bca32a80d4488a4e9ad87918fedf356c..2a9b9c28e667c5fafe1eeb9bc7a41fa80843bd82 100644 +index 03caab6d49f74402c5c6c932e3a85e72a6edf3bc..85d743315ae0083636c6ffee2f5081e3def4c4ee 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3819,6 +3819,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1001-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0999-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/1001-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0999-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/1002-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/1000-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/1002-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/1000-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/1003-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/1001-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/1003-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/1001-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/1004-Optimise-nearby-player-retrieval.patch b/patches/server/1002-Optimise-nearby-player-retrieval.patch similarity index 99% rename from patches/server/1004-Optimise-nearby-player-retrieval.patch rename to patches/server/1002-Optimise-nearby-player-retrieval.patch index 902b9ab5fb1d..602c0b77e1f6 100644 --- a/patches/server/1004-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1002-Optimise-nearby-player-retrieval.patch @@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8a7de73ce83966c81c456d4744b04fd0f886646d..e57d86b0f66f5ca6e494c693128d67eedbb8ed0d 100644 +index 6d1e96e971d03026a5583455193c023188fa8157..575a2be5b5d2062b7b8629e8691a604ad801720e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -581,6 +581,115 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1005-Fix-missing-map-initialize-event-call.patch b/patches/server/1003-Fix-missing-map-initialize-event-call.patch similarity index 95% rename from patches/server/1005-Fix-missing-map-initialize-event-call.patch rename to patches/server/1003-Fix-missing-map-initialize-event-call.patch index f3b3bbca542c..4dfd28acb44e 100644 --- a/patches/server/1005-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/1003-Fix-missing-map-initialize-event-call.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e57d86b0f66f5ca6e494c693128d67eedbb8ed0d..51f14e0c22dd66d8e33c132974139922fcadf095 100644 +index 575a2be5b5d2062b7b8629e8691a604ad801720e..a89d3bcfe24d70d8764fe6931dafdeaf1111117e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2133,13 +2133,25 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1006-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/1004-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/1006-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/1004-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/1007-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/1005-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/1007-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/1005-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/1008-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/1006-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/1008-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/1006-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/1009-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/1007-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/1009-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/1007-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/1010-Add-player-idle-duration-API.patch b/patches/server/1008-Add-player-idle-duration-API.patch similarity index 100% rename from patches/server/1010-Add-player-idle-duration-API.patch rename to patches/server/1008-Add-player-idle-duration-API.patch diff --git a/patches/server/1011-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/1009-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 91% rename from patches/server/1011-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/1009-Don-t-check-if-we-can-see-non-visible-entities.patch index 19ba45812238..801657718024 100644 --- a/patches/server/1011-Don-t-check-if-we-can-see-non-visible-entities.patch +++ b/patches/server/1009-Don-t-check-if-we-can-see-non-visible-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't check if we can see non-visible entities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index e7cb1eb0740dcf8184a609172031f45fbf92957b..4160fff108cc83bc0a1f0a0389ab22f722d483b4 100644 +index c6e764f140d3fe6342c6f224fe0d9643a3185cba..2458bc75ece2d5eadc49df0f1c94702bd20e779f 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1435,7 +1435,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/1012-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/1010-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/1012-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/1010-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/1013-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/1011-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 100% rename from patches/server/1013-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/1011-Allow-null-itemstack-for-Player-sendEquipmentChange.patch diff --git a/patches/server/1014-Optimize-VarInts.patch b/patches/server/1012-Optimize-VarInts.patch similarity index 100% rename from patches/server/1014-Optimize-VarInts.patch rename to patches/server/1012-Optimize-VarInts.patch diff --git a/patches/server/1015-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/1013-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/1015-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/1013-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/1016-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/1014-Add-predicate-for-blocks-when-raytracing.patch similarity index 98% rename from patches/server/1016-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/1014-Add-predicate-for-blocks-when-raytracing.patch index 9c300fbad967..b658f2d1c5b1 100644 --- a/patches/server/1016-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/server/1014-Add-predicate-for-blocks-when-raytracing.patch @@ -47,7 +47,7 @@ index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..4b7ea18a34675702c5b17c4819f79778 Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo()); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 8d76e78f91877d906b03b58dffd1402e15714791..2c318e68aa20e8783f7f58babe1efc72bcb3450b 100644 +index 0cc5c04f121860180e5886b484aa3cf8f2002131..c292895e7295077f513271df1bad90cbdac08f2f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1125,9 +1125,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1017-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/1015-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 92% rename from patches/server/1017-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/1015-Broadcast-take-item-packets-with-collector-as-source.patch index 50cbca03fd83..57c8463ee8ef 100644 --- a/patches/server/1017-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/1015-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2a9b9c28e667c5fafe1eeb9bc7a41fa80843bd82..4070311f8a9c018eef8805e3c1a024e634e57e4f 100644 +index 85d743315ae0083636c6ffee2f5081e3def4c4ee..9fb5b4df574db63f005dc321ba76dcd92ffe67e3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3704,7 +3704,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1018-Expand-LingeringPotion-API.patch b/patches/server/1016-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/1018-Expand-LingeringPotion-API.patch rename to patches/server/1016-Expand-LingeringPotion-API.patch diff --git a/patches/server/1019-Add-MaterialTagsTest.patch b/patches/server/1017-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/1019-Add-MaterialTagsTest.patch rename to patches/server/1017-Add-MaterialTagsTest.patch diff --git a/patches/server/1020-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/1018-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 97% rename from patches/server/1020-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/1018-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch index 61af637dfac8..8e7b748c6a55 100644 --- a/patches/server/1020-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch +++ b/patches/server/1018-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch @@ -45,7 +45,7 @@ index 0db0d67f9ac15372becc1166c37f7f0aede4a4da..a9e70484b01fc082ea25d43d1d428334 BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 2c318e68aa20e8783f7f58babe1efc72bcb3450b..468c68eba244a1307ac283c9bf89196e28a40bf1 100644 +index c292895e7295077f513271df1bad90cbdac08f2f..e8859ba3ec67d14de09e4fdf737e3c938375c23d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -773,7 +773,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1021-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/1019-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/1021-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/1019-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/1022-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/1020-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/1022-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/1020-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/1023-Add-UUID-attribute-modifier-API.patch b/patches/server/1021-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/1023-Add-UUID-attribute-modifier-API.patch rename to patches/server/1021-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/1024-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/1022-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/server/1024-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/1022-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/1025-Lazily-create-LootContext-for-criterions.patch b/patches/server/1023-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/1025-Lazily-create-LootContext-for-criterions.patch rename to patches/server/1023-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/1026-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1024-Don-t-fire-sync-events-during-worldgen.patch similarity index 97% rename from patches/server/1026-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/1024-Don-t-fire-sync-events-during-worldgen.patch index 71f9fb4d51ee..0ef7a0afae95 100644 --- a/patches/server/1026-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/1024-Don-t-fire-sync-events-during-worldgen.patch @@ -19,7 +19,7 @@ where generation happened directly to a ServerLevel and the entity still has the flag set. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 51f14e0c22dd66d8e33c132974139922fcadf095..9801b283da75aa63d7eba33d08322285c86c241c 100644 +index a89d3bcfe24d70d8764fe6931dafdeaf1111117e..c1560ea2be24f2f4173c2552597527dfd739a776 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1681,6 +1681,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -31,7 +31,7 @@ index 51f14e0c22dd66d8e33c132974139922fcadf095..9801b283da75aa63d7eba33d08322285 if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c926ee51cf6a5f75c762ace22259b2f38a5f6239..c71d1d2885b608c681a95b380c6d68ea9c79cdb2 100644 +index ecc50db7e63d40944423f74677ed7e916397f6b7..afa4a07a94e9d74e6c91892a16ad9fe11dcb4a17 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -713,7 +713,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -68,7 +68,7 @@ index 82695b6f25011a315027bd7a5cb305af31663d4a..d362a06d0600003d40f632eac602ff55 }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4070311f8a9c018eef8805e3c1a024e634e57e4f..bec8d27ea6077dd06001f48ac624a3da2ad041df 100644 +index 9fb5b4df574db63f005dc321ba76dcd92ffe67e3..060a5069f71ada46e97828560d06448547c2107e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1027-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/1025-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/1027-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/1025-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/1028-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1026-Restore-vanilla-entity-drops-behavior.patch similarity index 98% rename from patches/server/1028-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/1026-Restore-vanilla-entity-drops-behavior.patch index aa8f7bc084df..e13a96272979 100644 --- a/patches/server/1028-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1026-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f4f8c60a24664b6fb33361ae830987701a0e9394..3506cd1c5960b58fe2805d9cc7ea6758f45d4e2a 100644 +index 1bdc710ae8ad0629eb715e00254f8465e69fb9d1..a43d37d074f89d645ff4a30b38a81f1841594cd9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -944,22 +944,20 @@ public class ServerPlayer extends Player { @@ -50,7 +50,7 @@ index f4f8c60a24664b6fb33361ae830987701a0e9394..3506cd1c5960b58fe2805d9cc7ea6758 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c71d1d2885b608c681a95b380c6d68ea9c79cdb2..92f9d55c224cd4e25060d8751ccb28a978979241 100644 +index afa4a07a94e9d74e6c91892a16ad9fe11dcb4a17..30e82b94bbee5f62da3bea5cad69a2bd98fc06e0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -104,7 +104,7 @@ index c71d1d2885b608c681a95b380c6d68ea9c79cdb2..92f9d55c224cd4e25060d8751ccb28a9 return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bec8d27ea6077dd06001f48ac624a3da2ad041df..3b37c9a440bc5d6375a653988c9011ba0e9b6e9b 100644 +index 060a5069f71ada46e97828560d06448547c2107e..aa389e1f67cbd1cbb7fcb9c340303bbe37bd48a4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1029-Add-Structure-check-API.patch b/patches/server/1027-Add-Structure-check-API.patch similarity index 91% rename from patches/server/1029-Add-Structure-check-API.patch rename to patches/server/1027-Add-Structure-check-API.patch index 419fe461060a..7bca0ec25087 100644 --- a/patches/server/1029-Add-Structure-check-API.patch +++ b/patches/server/1027-Add-Structure-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 468c68eba244a1307ac283c9bf89196e28a40bf1..2a685ac009a13d86d5baf3b649830a08189efb19 100644 +index e8859ba3ec67d14de09e4fdf737e3c938375c23d..649f264226eaf88ce9a95521adbe48dd067bdb85 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -230,6 +230,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1030-Dont-resend-blocks-on-interactions.patch b/patches/server/1028-Dont-resend-blocks-on-interactions.patch similarity index 100% rename from patches/server/1030-Dont-resend-blocks-on-interactions.patch rename to patches/server/1028-Dont-resend-blocks-on-interactions.patch diff --git a/patches/server/1031-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/1029-Keep-previous-behavior-for-setResourcePack.patch similarity index 100% rename from patches/server/1031-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/1029-Keep-previous-behavior-for-setResourcePack.patch diff --git a/patches/server/1032-properly-read-and-store-sus-effect-duration.patch b/patches/server/1030-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/1032-properly-read-and-store-sus-effect-duration.patch rename to patches/server/1030-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/1033-Use-correct-max-stack-size-in-crafter.patch b/patches/server/1031-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/1033-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/1031-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/1034-add-more-scoreboard-API.patch b/patches/server/1032-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/1034-add-more-scoreboard-API.patch rename to patches/server/1032-add-more-scoreboard-API.patch diff --git a/patches/server/1035-Improve-Registry.patch b/patches/server/1033-Improve-Registry.patch similarity index 100% rename from patches/server/1035-Improve-Registry.patch rename to patches/server/1033-Improve-Registry.patch diff --git a/patches/server/1036-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1034-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 97% rename from patches/server/1036-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/1034-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index 6df06e0dcc61..97116f9ab857 100644 --- a/patches/server/1036-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/1034-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,7 +26,7 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3b37c9a440bc5d6375a653988c9011ba0e9b6e9b..e914c36bede52838f47cd88b442b9cde3e4666f3 100644 +index aa389e1f67cbd1cbb7fcb9c340303bbe37bd48a4..c0f931dcd6c40c33d8a92bb01516b383f2bf7bec 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4205,7 +4205,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1037-Add-experience-points-API.patch b/patches/server/1035-Add-experience-points-API.patch similarity index 97% rename from patches/server/1037-Add-experience-points-API.patch rename to patches/server/1035-Add-experience-points-API.patch index 8d8c28227ba2..a2ed55757a2e 100644 --- a/patches/server/1037-Add-experience-points-API.patch +++ b/patches/server/1035-Add-experience-points-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 659cb241643ddf0b680582b710cea6991dc476cb..440ddbaf26a5d333a8cd456c501cbc9a759d12f1 100644 +index a623b22e02647d2b14e0b5a662920c4cc5d4361e..9bcb3b01ec3726f1ba77f63878e0eef7dc92bb6f 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1833,7 +1833,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/1038-Add-missing-InventoryType.patch b/patches/server/1036-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/1038-Add-missing-InventoryType.patch rename to patches/server/1036-Add-missing-InventoryType.patch diff --git a/patches/server/1039-Add-drops-to-shear-events.patch b/patches/server/1037-Add-drops-to-shear-events.patch similarity index 100% rename from patches/server/1039-Add-drops-to-shear-events.patch rename to patches/server/1037-Add-drops-to-shear-events.patch diff --git a/patches/server/1040-Add-PlayerShieldDisableEvent.patch b/patches/server/1038-Add-PlayerShieldDisableEvent.patch similarity index 97% rename from patches/server/1040-Add-PlayerShieldDisableEvent.patch rename to patches/server/1038-Add-PlayerShieldDisableEvent.patch index 9d5dd42eeae3..0796bead9123 100644 --- a/patches/server/1040-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/1038-Add-PlayerShieldDisableEvent.patch @@ -33,7 +33,7 @@ index c81c72bf1027fcbaac67808fbcf6e0af112176bc..42e2be9286b75a1d34845f303ffc65e9 } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 440ddbaf26a5d333a8cd456c501cbc9a759d12f1..54a77399c1c42a1bcdbb4fd2cc09469a4838bd7c 100644 +index 9bcb3b01ec3726f1ba77f63878e0eef7dc92bb6f..708a4b9ba6605bd0c2a4624f9af6777452cf29b3 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -979,7 +979,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/1041-Add-HiddenPotionEffect-API.patch b/patches/server/1039-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1041-Add-HiddenPotionEffect-API.patch rename to patches/server/1039-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1042-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1040-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/1042-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/1040-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/1043-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1041-fix-ItemMeta-removing-CustomModelData.patch similarity index 100% rename from patches/server/1043-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/1041-fix-ItemMeta-removing-CustomModelData.patch diff --git a/patches/server/1044-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1042-Validate-ResourceLocation-in-NBT-reading.patch similarity index 98% rename from patches/server/1044-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/1042-Validate-ResourceLocation-in-NBT-reading.patch index 0a0ac3af7be0..cf937cebbb6c 100644 --- a/patches/server/1044-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1042-Validate-ResourceLocation-in-NBT-reading.patch @@ -22,7 +22,7 @@ index 18fad4f083862ace2bc56579883f548f6d697091..8e68a094a22243f3e84110ddf8113621 return Blocks.AIR.defaultBlockState(); } else { diff --git a/src/main/java/net/minecraft/resources/ResourceLocation.java b/src/main/java/net/minecraft/resources/ResourceLocation.java -index 38e2a8cec48bc779b8154d6d719031f457a2403e..4379090b74d156b62b88163a234c22e78454f5e4 100644 +index 5f9dcab27a07969c93555ad0892683c62cbebc8c..a4d875df936b6de16f0233482b03af05b427a79f 100644 --- a/src/main/java/net/minecraft/resources/ResourceLocation.java +++ b/src/main/java/net/minecraft/resources/ResourceLocation.java @@ -31,6 +31,13 @@ public class ResourceLocation implements Comparable { diff --git a/patches/server/1045-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1043-Properly-handle-experience-dropping-on-block-break.patch similarity index 98% rename from patches/server/1045-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/1043-Properly-handle-experience-dropping-on-block-break.patch index 27f3eb631ec1..eacb696b9948 100644 --- a/patches/server/1045-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1043-Properly-handle-experience-dropping-on-block-break.patch @@ -7,7 +7,7 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 03c43220425411e0a135e7d63df276c4571d23d0..1496b870eaf99d4c3b6dd01159d7c2893fd9366b 100644 +index 315dc7b198179f2f1384ab898d36d66f3c592d95..5c6f656200111cc171a4c789894732d3164c37bc 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1103,7 +1103,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1046-Fixup-NamespacedKey-handling.patch b/patches/server/1044-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1046-Fixup-NamespacedKey-handling.patch rename to patches/server/1044-Fixup-NamespacedKey-handling.patch From eeb6afc435a0583158912bd3498cd017aabf6ae1 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Fri, 19 Jan 2024 13:22:30 +0100 Subject: [PATCH 23/45] [ci skip] Add more identifying patch comments, merge related patches --- ...h => 0531-Expand-EntityUnleashEvent.patch} | 8 +- .../server/0586-More-Enchantment-API.patch | 4 +- ...ove-range-check-for-block-placing-up.patch | 4 +- ...x-and-optimise-world-force-upgrading.patch | 8 +- .../0590-Add-Unix-domain-socket-support.patch | 36 +++----- .../0591-Add-EntityInsideBlockEvent.patch | 92 +++++++++---------- ...cause-to-Weather-ThunderChangeEvents.patch | 34 +++---- ...595-Limit-item-frame-cursors-on-maps.patch | 8 +- .../0596-Add-PlayerKickEvent-causes.patch | 14 +-- ...yerBucketEmptyEvent-result-itemstack.patch | 10 +- .../0601-Add-BellRevealRaiderEvent.patch | 8 +- .../0602-Fix-invulnerable-end-crystals.patch | 8 +- ...603-Add-ElderGuardianAppearanceEvent.patch | 14 +-- ...e-Biome-Mob-Lookups-for-Mob-Spawning.patch | 6 +- .../server/0607-Line-Of-Sight-Changes.patch | 4 +- .../0608-add-per-world-spawn-limits.patch | 5 +- .../0609-Fix-potions-splash-events.patch | 30 +++--- ...PlayerDropItemEvent-using-wrong-item.patch | 4 +- ...etChunkIfLoadedImmediately-in-places.patch | 14 +-- ...from-signs-not-firing-command-events.patch | 16 ++-- ...tch => 0617-Add-PlayerArmSwingEvent.patch} | 6 +- ...-event-leave-message-not-being-sent.patch} | 30 +++--- ...g-for-mobs-immune-to-default-effects.patch | 16 ++-- ...nd-timings-for-sensors-and-behaviors.patch | 10 +- ... 0622-Add-missing-forceDrop-toggles.patch} | 44 ++++----- ...7-Improve-boat-collision-performance.patch | 22 ++--- ...-AFK-kick-while-watching-end-credits.patch | 6 +- ...riting-of-comments-to-server.propert.patch | 6 +- .../server/0630-Add-PlayerSetSpawnEvent.patch | 54 +++++------ ...ers-respect-inventory-max-stack-size.patch | 10 +- ...g-option-for-Piglins-guarding-chests.patch | 4 +- ...h => 0634-Add-EntityDamageItemEvent.patch} | 20 ++-- ...ptimize-indirect-passenger-iteration.patch | 14 +-- ...637-Clear-bucket-NBT-after-dispense.patch} | 4 +- ...-Make-EntityUnleashEvent-cancellable.patch | 41 --------- ...arget-without-changing-other-things.patch} | 18 ++-- ...ch => 0639-Add-BlockBreakBlockEvent.patch} | 22 ++--- ...revent-NBT-copy-in-smithing-recipes.patch} | 46 +++++----- ...patch => 0641-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0643-Add-back-EntityPortalExitEvent.patch} | 2 +- ...-find-targets-for-lightning-strikes.patch} | 0 ... 0645-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0646-Left-handed-API.patch} | 0 ...ch => 0647-Add-more-advancement-API.patch} | 0 ...648-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0649-Add-critical-damage-API.patch} | 0 ...0650-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0652-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...4-Add-Raw-Byte-Entity-Serialization.patch} | 2 +- ...55-Vanilla-command-permission-fixes.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 0 ...57-Fix-GameProfileCache-concurrency.patch} | 0 ...658-Improve-and-expand-AsyncCatcher.patch} | 2 +- ...per-mobcaps-and-paper-playermobcaps.patch} | 0 ...tize-ResourceLocation-error-logging.patch} | 0 ...=> 0661-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 0 ...our-chunk-data-off-disk-when-conver.patch} | 0 ...d-state-when-raytracing-skip-air-bl.patch} | 0 ...atch => 0668-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...> 0670-Execute-chunk-tasks-mid-tick.patch} | 4 +- ...rimise-map-impl-for-tracked-players.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ... 0673-Optimise-random-block-ticking.patch} | 4 +- ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 2 +- ... 0677-Distance-manager-tick-timings.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 0 ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 0 ...h => 0681-Add-packet-limiter-config.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0683-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0688-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 2 +- ...unintended-light-block-manipulation.patch} | 0 ...0691-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0693-Configurable-feature-seeds.patch} | 0 ... 0694-Add-root-admin-user-detection.patch} | 0 ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 2 +- ...ive-velocity-through-repeated-crits.patch} | 0 ...e-code-using-deprecated-for-removal.patch} | 2 +- ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 0 ...e-unnecessary-itemmeta-from-clients.patch} | 0 ...=> 0702-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0704-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0705-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...tch => 0707-Collision-optimisations.patch} | 6 +- ...n-checking-in-player-move-packet-ha.patch} | 0 ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0710-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...12-Fix-tripwire-state-inconsistency.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 2 +- ... => 0714-Improve-scoreboard-entries.patch} | 0 ...ch => 0715-Entity-powdered-snow-API.patch} | 0 ...0716-Add-API-for-item-entity-health.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 2 +- ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0722-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0723-Bucketable-API.patch} | 0 ...es.patch => 0724-Validate-usernames.patch} | 0 ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...9-Multiple-Entries-with-Scoreboards.patch} | 0 ...730-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0732-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0734-Fix-NotePlayEvent.patch} | 0 ....patch => 0735-Freeze-Tick-Lock-API.patch} | 2 +- ...h => 0736-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0740-Implement-regenerateChunk.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 2 +- ...ate-calls-to-CraftServer-getSpawnLi.patch} | 0 ...gs.patch => 0743-Add-GameEvent-tags.patch} | 0 ...ks-fairly-for-worlds-while-waiting-.patch} | 0 ...tch => 0745-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 0 ...-worldlist-before-initing-the-world.patch} | 0 ... => 0750-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0751-Custom-Potion-Mixes.patch} | 0 ...52-Force-close-world-loading-screen.patch} | 0 ...753-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0756-More-Projectile-API.patch} | 6 +- ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0759-Implement-getComputedBiome-API.patch} | 0 ...> 0760-Make-some-itemstacks-nonnull.patch} | 0 ...761-Implement-enchantWithLevels-API.patch} | 0 ...h => 0762-Fix-saving-in-unloadWorld.patch} | 0 ...h => 0763-Buffer-OOB-setBlock-calls.patch} | 0 ... 0764-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 8 +- ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 2 +- ...s.patch => 0768-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 0 ...-ServerLevel-for-gamerule-callbacks.patch} | 0 ...> 0775-Expand-PlayerItemDamageEvent.patch} | 8 +- ...> 0776-WorldCreator-keepSpawnLoaded.patch} | 0 ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0782-Add-PlayerStopUsingItemEvent.patch} | 0 ...rs.patch => 0783-Don-t-tick-markers.patch} | 0 ...tch => 0784-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 0 ...0786-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0789-Sanitize-sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 2 +- ...-on-world-create-while-being-ticked.patch} | 0 ...ate-Current-redstone-implementation.patch} | 0 ...94-Dont-resent-entity-on-art-update.patch} | 0 ... => 0795-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0798-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 0 ...pty-items-from-being-added-to-world.patch} | 0 ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0802-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 2 +- ...PE.patch => 0805-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 0 ...API.patch => 0807-More-Teleport-API.patch} | 0 ... => 0808-Add-EntityPortalReadyEvent.patch} | 2 +- ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 0 ...on-plugins-accessing-faraway-chunks.patch} | 0 ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0814-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0816-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 0 ...818-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 0 ...ok-changes-from-crashing-the-server.patch} | 0 ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0822-Missing-eating-regain-reason.patch} | 0 ....patch => 0823-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...6-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0827-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0829-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0831-Add-getDrops-to-BlockState.patch} | 0 ...=> 0832-Fix-a-bunch-of-vanilla-bugs.patch} | 12 +-- ...y-onTrackingStart-during-navigation.patch} | 0 ... 0834-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0835-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0838-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0840-Add-entity-knockback-API.patch} | 0 ....patch => 0841-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...43-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 0844-Add-EntityToggleSitEvent.patch} | 0 ... => 0845-Add-fire-tick-delay-option.patch} | 0 ...patch => 0846-Add-Moving-Piston-API.patch} | 0 ...> 0847-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 2 +- ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 2 +- ...0851-Add-PrePlayerAttackEntityEvent.patch} | 0 ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 0 ... 0854-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...856-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 0 ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0859-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0860-Friction-API.patch} | 0 ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0862-Fix-player-kick-on-shutdown.patch} | 0 ... => 0863-Sync-offhand-slot-in-menus.patch} | 0 ... 0864-Player-Entity-Tracking-Events.patch} | 2 +- ...tch => 0865-Limit-pet-look-distance.patch} | 0 ...ch => 0866-Properly-resend-entities.patch} | 0 ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0868-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 0 ...es-in-dispense-events-regarding-sta.patch} | 2 +- ...tch => 0871-Add-BlockLockCheckEvent.patch} | 0 ... 0872-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0873-Improve-logging-and-errors.patch} | 0 ....patch => 0874-Improve-PortalEvents.patch} | 2 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 0 ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0878-Flying-Fall-Damage.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...ion-moving-velocity-to-VehicleBlock.patch} | 2 +- ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 0 ...k-items-during-EntityResurrectEvent.patch} | 0 ...en-API.patch => 0884-Win-Screen-API.patch} | 0 ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0887-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 0 ...=> 0890-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 0 ...895-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0897-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...pers.patch => 0899-Optimize-Hoppers.patch} | 8 +- ...ives-generating-from-using-bonemeal.patch} | 2 +- ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 0 ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 0 ...0906-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0909-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...13-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ...ecalcBlockCounts-for-empty-sections.patch} | 0 ... => 0916-Expand-PlayerItemMendEvent.patch} | 0 ...sh-ProjectileSource-for-projectiles.patch} | 2 +- ... => 0918-Add-transient-modifier-API.patch} | 0 ...patch => 0919-Fix-block-place-logic.patch} | 2 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 2 +- ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 0 ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...yerChunkLoaderData-in-order-to-prep.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0928-Properly-cancel-usable-items.patch} | 0 ...9-Add-event-for-player-editing-sign.patch} | 2 +- ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 4 +- ...933-Call-missing-BlockDispenseEvent.patch} | 2 +- ...-chunks-for-supporting-block-checks.patch} | 2 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...936-Add-Sign-getInteractableSideFor.patch} | 0 ...37-Array-backed-synched-entity-data.patch} | 0 ...8-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0939-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 2 +- ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 0 ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0945-Add-whitelist-events.patch} | 0 ... 0946-Implement-PlayerFailMoveEvent.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 2 +- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 0 ...tion-when-spawning-display-entities.patch} | 0 ...951-Only-capture-actual-tree-growth.patch} | 4 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 4 +- ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0956-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0958-Bandaid-fix-for-Effect.patch} | 0 ...tch => 0959-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 0 ...lace-methods-with-old-StructureType.patch} | 0 ...e-namespaced-commands-if-send-names.patch} | 0 ...-handle-BlockBreakEvent-isDropItems.patch} | 2 +- ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 0 ... => 0967-Add-Listing-API-for-Player.patch} | 0 ...figurable-Region-Compression-Format.patch} | 0 ...9-Add-BlockFace-to-BlockDamageEvent.patch} | 0 ...h => 0970-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0971-Expand-Pose-API.patch} | 2 +- ...patch => 0972-More-DragonBattle-API.patch} | 0 ... 0973-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0974-Add-PlayerPickItemEvent.patch} | 0 ...-Improve-performance-of-mass-crafts.patch} | 0 ...=> 0976-Allow-trident-custom-damage.patch} | 0 ...7-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 0 ....patch => 0980-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...82-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 0 ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 2 +- ...h => 0989-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 0 ...> 0992-Actually-optimise-explosions.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...atch => 0995-Fix-SuspiciousStewMeta.patch} | 0 ... 0996-Optimise-chunk-tick-iteration.patch} | 0 ...atch => 0997-Lag-compensation-ticks.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...01-Optimise-nearby-player-retrieval.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 0 ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...06-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 1007-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 0 ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 1011-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...em-packets-with-collector-as-source.patch} | 0 ... => 1015-Expand-LingeringPotion-API.patch} | 0 ....patch => 1016-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...020-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 2 +- ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 2 +- ...tch => 1026-Add-Structure-check-API.patch} | 0 ...-Dont-resend-blocks-on-interactions.patch} | 2 +- ...evious-behavior-for-setResourcePack.patch} | 0 ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 1031-add-more-scoreboard-API.patch} | 0 ...stry.patch => 1032-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 0 ...h => 1034-Add-experience-points-API.patch} | 0 ...h => 1035-Add-missing-InventoryType.patch} | 0 ...h => 1036-Add-drops-to-shear-events.patch} | 0 ...> 1037-Add-PlayerShieldDisableEvent.patch} | 2 +- ... => 1038-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 2 +- ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 2 +- ...-experience-dropping-on-block-break.patch} | 4 +- ...> 1043-Fixup-NamespacedKey-handling.patch} | 0 441 files changed, 401 insertions(+), 449 deletions(-) rename patches/server/{0531-Add-dropLeash-variable-to-EntityUnleashEvent.patch => 0531-Expand-EntityUnleashEvent.patch} (96%) rename patches/server/{0617-Adds-PlayerArmSwingEvent.patch => 0617-Add-PlayerArmSwingEvent.patch} (86%) rename patches/server/{0618-Fixes-kick-event-leave-message-not-being-sent.patch => 0618-Fix-kick-event-leave-message-not-being-sent.patch} (86%) rename patches/server/{0622-Add-a-bunch-of-missing-forceDrop-toggles.patch => 0622-Add-missing-forceDrop-toggles.patch} (70%) rename patches/server/{0634-Added-EntityDamageItemEvent.patch => 0634-Add-EntityDamageItemEvent.patch} (84%) rename patches/server/{0638-Clear-bucket-NBT-after-dispense.patch => 0637-Clear-bucket-NBT-after-dispense.patch} (89%) delete mode 100644 patches/server/0637-Make-EntityUnleashEvent-cancellable.patch rename patches/server/{0639-Change-EnderEye-target-without-changing-other-things.patch => 0638-Change-EnderEye-target-without-changing-other-things.patch} (72%) rename patches/server/{0640-Add-BlockBreakBlockEvent.patch => 0639-Add-BlockBreakBlockEvent.patch} (86%) rename patches/server/{0641-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0640-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (85%) rename patches/server/{0642-More-CommandBlock-API.patch => 0641-More-CommandBlock-API.patch} (100%) rename patches/server/{0643-Add-missing-team-sidebar-display-slots.patch => 0642-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0644-Add-back-EntityPortalExitEvent.patch => 0643-Add-back-EntityPortalExitEvent.patch} (97%) rename patches/server/{0645-Add-methods-to-find-targets-for-lightning-strikes.patch => 0644-Add-methods-to-find-targets-for-lightning-strikes.patch} (100%) rename patches/server/{0646-Get-entity-default-attributes.patch => 0645-Get-entity-default-attributes.patch} (100%) rename patches/server/{0647-Left-handed-API.patch => 0646-Left-handed-API.patch} (100%) rename patches/server/{0648-Add-more-advancement-API.patch => 0647-Add-more-advancement-API.patch} (100%) rename patches/server/{0649-Add-ItemFactory-getSpawnEgg-API.patch => 0648-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0650-Add-critical-damage-API.patch => 0649-Add-critical-damage-API.patch} (100%) rename patches/server/{0651-Fix-issues-with-mob-conversion.patch => 0650-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0652-Add-isCollidable-methods-to-various-places.patch => 0651-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0653-Goat-ram-API.patch => 0652-Goat-ram-API.patch} (100%) rename patches/server/{0654-Add-API-for-resetting-a-single-score.patch => 0653-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0655-Add-Raw-Byte-Entity-Serialization.patch => 0654-Add-Raw-Byte-Entity-Serialization.patch} (98%) rename patches/server/{0656-Vanilla-command-permission-fixes.patch => 0655-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0657-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0656-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (100%) rename patches/server/{0658-Fix-GameProfileCache-concurrency.patch => 0657-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0659-Improve-and-expand-AsyncCatcher.patch => 0658-Improve-and-expand-AsyncCatcher.patch} (99%) rename patches/server/{0660-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0659-Add-paper-mobcaps-and-paper-playermobcaps.patch} (100%) rename patches/server/{0661-Sanitize-ResourceLocation-error-logging.patch => 0660-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0662-Optimise-general-POI-access.patch => 0661-Optimise-general-POI-access.patch} (100%) rename patches/server/{0663-Custom-table-implementation-for-blockstate-state-loo.patch => 0662-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{0664-Manually-inline-methods-in-BlockPosition.patch => 0663-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0665-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0664-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0666-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0665-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (100%) rename patches/server/{0667-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0666-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0668-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch => 0667-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (100%) rename patches/server/{0669-Time-scoreboard-search.patch => 0668-Time-scoreboard-search.patch} (100%) rename patches/server/{0670-Send-full-pos-packets-for-hard-colliding-entities.patch => 0669-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{0671-Execute-chunk-tasks-mid-tick.patch => 0670-Execute-chunk-tasks-mid-tick.patch} (97%) rename patches/server/{0672-Oprimise-map-impl-for-tracked-players.patch => 0671-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/server/{0673-Optimise-BlockSoil-nearby-water-lookup.patch => 0672-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0674-Optimise-random-block-ticking.patch => 0673-Optimise-random-block-ticking.patch} (99%) rename patches/server/{0675-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 0674-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{0676-Use-Velocity-compression-and-cipher-natives.patch => 0675-Use-Velocity-compression-and-cipher-natives.patch} (100%) rename patches/server/{0677-Detail-more-information-in-watchdog-dumps.patch => 0676-Detail-more-information-in-watchdog-dumps.patch} (99%) rename patches/server/{0678-Distance-manager-tick-timings.patch => 0677-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0679-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0678-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (100%) rename patches/server/{0680-Check-requirement-before-suggesting-root-nodes.patch => 0679-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0681-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0680-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/server/{0682-Add-packet-limiter-config.patch => 0681-Add-packet-limiter-config.patch} (100%) rename patches/server/{0683-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0682-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0684-Ensure-valid-vehicle-status.patch => 0683-Ensure-valid-vehicle-status.patch} (100%) rename patches/server/{0685-Prevent-softlocked-end-exit-portal-generation.patch => 0684-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0686-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0685-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0687-Don-t-log-debug-logging-being-disabled.patch => 0686-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0688-fix-various-menus-with-empty-level-accesses.patch => 0687-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0689-Preserve-overstacked-loot.patch => 0688-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0690-Update-head-rotation-in-missing-places.patch => 0689-Update-head-rotation-in-missing-places.patch} (93%) rename patches/server/{0691-prevent-unintended-light-block-manipulation.patch => 0690-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0692-Fix-CraftCriteria-defaults-map.patch => 0691-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0693-Fix-upstreams-block-state-factories.patch => 0692-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0694-Configurable-feature-seeds.patch => 0693-Configurable-feature-seeds.patch} (100%) rename patches/server/{0695-Add-root-admin-user-detection.patch => 0694-Add-root-admin-user-detection.patch} (100%) rename patches/server/{0696-Always-allow-item-changing-in-Fireball.patch => 0695-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0697-don-t-attempt-to-teleport-dead-entities.patch => 0696-don-t-attempt-to-teleport-dead-entities.patch} (91%) rename patches/server/{0698-Prevent-excessive-velocity-through-repeated-crits.patch => 0697-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/server/{0699-Remove-client-side-code-using-deprecated-for-removal.patch => 0698-Remove-client-side-code-using-deprecated-for-removal.patch} (93%) rename patches/server/{0700-Fix-removing-recipes-from-RecipeIterator.patch => 0699-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0701-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0700-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/server/{0702-Hide-unnecessary-itemmeta-from-clients.patch => 0701-Hide-unnecessary-itemmeta-from-clients.patch} (100%) rename patches/server/{0703-Fix-Spigot-growth-modifiers.patch => 0702-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0704-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0703-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0705-Add-PlayerItemFrameChangeEvent.patch => 0704-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0706-Optimize-HashMapPalette.patch => 0705-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0707-Allow-delegation-to-vanilla-chunk-gen.patch => 0706-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/server/{0708-Collision-optimisations.patch => 0707-Collision-optimisations.patch} (99%) rename patches/server/{0709-Optimise-collision-checking-in-player-move-packet-ha.patch => 0708-Optimise-collision-checking-in-player-move-packet-ha.patch} (100%) rename patches/server/{0710-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0709-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0711-Add-more-Campfire-API.patch => 0710-Add-more-Campfire-API.patch} (100%) rename patches/server/{0712-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0711-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0713-Fix-tripwire-state-inconsistency.patch => 0712-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{0714-Forward-CraftEntity-in-teleport-command.patch => 0713-Forward-CraftEntity-in-teleport-command.patch} (95%) rename patches/server/{0715-Improve-scoreboard-entries.patch => 0714-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0716-Entity-powdered-snow-API.patch => 0715-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0717-Add-API-for-item-entity-health.patch => 0716-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0718-Fix-entity-type-tags-suggestions-in-selectors.patch => 0717-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{0719-Configurable-max-block-light-for-monster-spawning.patch => 0718-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0720-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0719-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (98%) rename patches/server/{0721-Load-effect-amplifiers-greater-than-127-correctly.patch => 0720-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0722-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0721-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0723-Fix-bees-aging-inside-hives.patch => 0722-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0724-Bucketable-API.patch => 0723-Bucketable-API.patch} (100%) rename patches/server/{0725-Validate-usernames.patch => 0724-Validate-usernames.patch} (100%) rename patches/server/{0726-Make-water-animal-spawn-height-configurable.patch => 0725-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0727-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0726-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/server/{0728-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0727-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0729-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0728-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0730-Multiple-Entries-with-Scoreboards.patch => 0729-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0731-Reset-placed-block-on-exception.patch => 0730-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0732-Add-configurable-height-for-slime-spawn.patch => 0731-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0733-Fix-xp-reward-for-baby-zombies.patch => 0732-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0734-Multi-Block-Change-API-Implementation.patch => 0733-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0735-Fix-NotePlayEvent.patch => 0734-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0736-Freeze-Tick-Lock-API.patch => 0735-Freeze-Tick-Lock-API.patch} (97%) rename patches/server/{0737-More-PotionEffectType-API.patch => 0736-More-PotionEffectType-API.patch} (100%) rename patches/server/{0738-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0737-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0739-API-for-creating-command-sender-which-forwards-feedb.patch => 0738-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/server/{0740-Add-missing-structure-set-seed-configs.patch => 0739-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0741-Implement-regenerateChunk.patch => 0740-Implement-regenerateChunk.patch} (100%) rename patches/server/{0742-Fix-cancelled-powdered-snow-bucket-placement.patch => 0741-Fix-cancelled-powdered-snow-bucket-placement.patch} (95%) rename patches/server/{0743-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0742-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (100%) rename patches/server/{0744-Add-GameEvent-tags.patch => 0743-Add-GameEvent-tags.patch} (100%) rename patches/server/{0745-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0744-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (100%) rename patches/server/{0746-Furnace-RecipesUsed-API.patch => 0745-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0747-Configurable-sculk-sensor-listener-range.patch => 0746-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0748-Add-missing-block-data-mins-and-maxes.patch => 0747-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0749-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0748-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (100%) rename patches/server/{0750-Put-world-into-worldlist-before-initing-the-world.patch => 0749-Put-world-into-worldlist-before-initing-the-world.patch} (100%) rename patches/server/{0751-Fix-Entity-Position-Desync.patch => 0750-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0752-Custom-Potion-Mixes.patch => 0751-Custom-Potion-Mixes.patch} (100%) rename patches/server/{0753-Force-close-world-loading-screen.patch => 0752-Force-close-world-loading-screen.patch} (100%) rename patches/server/{0754-Fix-falling-block-spawn-methods.patch => 0753-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0755-Expose-furnace-minecart-push-values.patch => 0754-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0756-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0755-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0757-More-Projectile-API.patch => 0756-More-Projectile-API.patch} (99%) rename patches/server/{0758-Fix-swamp-hut-cat-generation-deadlock.patch => 0757-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0759-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0758-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/server/{0760-Implement-getComputedBiome-API.patch => 0759-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0761-Make-some-itemstacks-nonnull.patch => 0760-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0762-Implement-enchantWithLevels-API.patch => 0761-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0763-Fix-saving-in-unloadWorld.patch => 0762-Fix-saving-in-unloadWorld.patch} (100%) rename patches/server/{0764-Buffer-OOB-setBlock-calls.patch => 0763-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0765-Add-TameableDeathMessageEvent.patch => 0764-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0766-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0765-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (97%) rename patches/server/{0767-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0766-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/server/{0768-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0767-Ensure-entity-passenger-world-matches-ridden-entity.patch} (91%) rename patches/server/{0769-cache-resource-keys.patch => 0768-cache-resource-keys.patch} (100%) rename patches/server/{0770-Allow-changing-the-EnderDragon-podium.patch => 0769-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/server/{0771-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0770-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0772-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0771-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0773-Prevent-tile-entity-copies-loading-chunks.patch => 0772-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/server/{0774-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0773-Use-username-instead-of-display-name-in-PlayerList-g.patch} (100%) rename patches/server/{0775-Pass-ServerLevel-for-gamerule-callbacks.patch => 0774-Pass-ServerLevel-for-gamerule-callbacks.patch} (100%) rename patches/server/{0776-Expand-PlayerItemDamageEvent.patch => 0775-Expand-PlayerItemDamageEvent.patch} (79%) rename patches/server/{0777-WorldCreator-keepSpawnLoaded.patch => 0776-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/server/{0778-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0777-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0779-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0778-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0780-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0779-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0781-Fire-CauldronLevelChange-on-initial-fill.patch => 0780-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0782-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0781-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0783-Add-PlayerStopUsingItemEvent.patch => 0782-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/server/{0784-Don-t-tick-markers.patch => 0783-Don-t-tick-markers.patch} (100%) rename patches/server/{0785-Expand-FallingBlock-API.patch => 0784-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0786-Do-not-accept-invalid-client-settings.patch => 0785-Do-not-accept-invalid-client-settings.patch} (100%) rename patches/server/{0787-Add-support-for-Proxy-Protocol.patch => 0786-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0788-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0787-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0789-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0788-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0790-Sanitize-sent-BlockEntity-NBT.patch => 0789-Sanitize-sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0791-Disable-component-selector-resolving-in-books-by-def.patch => 0790-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0792-Prevent-entity-loading-causing-async-lookups.patch => 0791-Prevent-entity-loading-causing-async-lookups.patch} (97%) rename patches/server/{0793-Throw-exception-on-world-create-while-being-ticked.patch => 0792-Throw-exception-on-world-create-while-being-ticked.patch} (100%) rename patches/server/{0794-Add-Alternate-Current-redstone-implementation.patch => 0793-Add-Alternate-Current-redstone-implementation.patch} (100%) rename patches/server/{0795-Dont-resent-entity-on-art-update.patch => 0794-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0796-Add-WardenAngerChangeEvent.patch => 0795-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0797-Add-option-for-strict-advancement-dimension-checks.patch => 0796-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/server/{0798-Add-missing-important-BlockStateListPopulator-method.patch => 0797-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0799-Nameable-Banner-API.patch => 0798-Nameable-Banner-API.patch} (100%) rename patches/server/{0800-Don-t-broadcast-messages-to-command-blocks.patch => 0799-Don-t-broadcast-messages-to-command-blocks.patch} (100%) rename patches/server/{0801-Prevent-empty-items-from-being-added-to-world.patch => 0800-Prevent-empty-items-from-being-added-to-world.patch} (100%) rename patches/server/{0802-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0801-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0803-Add-Player-getFishHook.patch => 0802-Add-Player-getFishHook.patch} (100%) rename patches/server/{0804-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0803-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0805-Add-various-missing-EntityDropItemEvent-calls.patch => 0804-Add-various-missing-EntityDropItemEvent-calls.patch} (98%) rename patches/server/{0806-Fix-Bee-flower-NPE.patch => 0805-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0807-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0806-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (100%) rename patches/server/{0808-More-Teleport-API.patch => 0807-More-Teleport-API.patch} (100%) rename patches/server/{0809-Add-EntityPortalReadyEvent.patch => 0808-Add-EntityPortalReadyEvent.patch} (95%) rename patches/server/{0810-Don-t-use-level-random-in-entity-constructors.patch => 0809-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0811-Send-block-entities-after-destroy-prediction.patch => 0810-Send-block-entities-after-destroy-prediction.patch} (100%) rename patches/server/{0812-Warn-on-plugins-accessing-faraway-chunks.patch => 0811-Warn-on-plugins-accessing-faraway-chunks.patch} (100%) rename patches/server/{0813-Custom-Chat-Completion-Suggestions-API.patch => 0812-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0814-Add-and-fix-missing-BlockFadeEvents.patch => 0813-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0815-Collision-API.patch => 0814-Collision-API.patch} (100%) rename patches/server/{0816-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0815-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/server/{0817-Block-Ticking-API.patch => 0816-Block-Ticking-API.patch} (100%) rename patches/server/{0818-Add-Velocity-IP-Forwarding-Support.patch => 0817-Add-Velocity-IP-Forwarding-Support.patch} (100%) rename patches/server/{0819-Add-NamespacedKey-biome-methods.patch => 0818-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0820-Fix-plugin-loggers-on-server-shutdown.patch => 0819-Fix-plugin-loggers-on-server-shutdown.patch} (100%) rename patches/server/{0821-Stop-large-look-changes-from-crashing-the-server.patch => 0820-Stop-large-look-changes-from-crashing-the-server.patch} (100%) rename patches/server/{0822-Fire-EntityChangeBlockEvent-in-more-places.patch => 0821-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0823-Missing-eating-regain-reason.patch => 0822-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0824-Missing-effect-cause.patch => 0823-Missing-effect-cause.patch} (100%) rename patches/server/{0825-Added-byte-array-serialization-deserialization-for-P.patch => 0824-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0826-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0825-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0827-Call-BlockPhysicsEvent-more-often.patch => 0826-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0828-Configurable-chat-thread-limit.patch => 0827-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0829-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0828-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0830-fix-Jigsaw-block-kicking-user.patch => 0829-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0831-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0830-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0832-Add-getDrops-to-BlockState.patch => 0831-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0833-Fix-a-bunch-of-vanilla-bugs.patch => 0832-Fix-a-bunch-of-vanilla-bugs.patch} (98%) rename patches/server/{0834-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0833-Remove-unnecessary-onTrackingStart-during-navigation.patch} (100%) rename patches/server/{0835-Fix-custom-piglin-loved-items.patch => 0834-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0836-EntityPickupItemEvent-fixes.patch => 0835-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0837-Correctly-handle-interactions-with-items-on-cooldown.patch => 0836-Correctly-handle-interactions-with-items-on-cooldown.patch} (100%) rename patches/server/{0838-Add-PlayerInventorySlotChangeEvent.patch => 0837-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/server/{0839-Elder-Guardian-appearance-API.patch => 0838-Elder-Guardian-appearance-API.patch} (100%) rename patches/server/{0840-Allow-changing-bed-s-occupied-property.patch => 0839-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0841-Add-entity-knockback-API.patch => 0840-Add-entity-knockback-API.patch} (100%) rename patches/server/{0842-Detect-headless-JREs.patch => 0841-Detect-headless-JREs.patch} (100%) rename patches/server/{0843-fix-entity-vehicle-collision-event-not-called.patch => 0842-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0844-optimize-dirt-and-snow-spreading.patch => 0843-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{0845-Add-EntityToggleSitEvent.patch => 0844-Add-EntityToggleSitEvent.patch} (100%) rename patches/server/{0846-Add-fire-tick-delay-option.patch => 0845-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0847-Add-Moving-Piston-API.patch => 0846-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0848-Ignore-impossible-spawn-tick.patch => 0847-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0849-Track-projectile-source-for-fireworks-from-dispenser.patch => 0848-Track-projectile-source-for-fireworks-from-dispenser.patch} (93%) rename patches/server/{0850-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0849-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0851-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0850-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (95%) rename patches/server/{0852-Add-PrePlayerAttackEntityEvent.patch => 0851-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/server/{0853-ensure-reset-EnderDragon-boss-event-name.patch => 0852-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0854-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0853-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0855-Add-Player-Warden-Warning-API.patch => 0854-Add-Player-Warden-Warning-API.patch} (100%) rename patches/server/{0856-More-vanilla-friendly-methods-to-update-trades.patch => 0855-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0857-Add-paper-dumplisteners-command.patch => 0856-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0858-check-global-player-list-where-appropriate.patch => 0857-check-global-player-list-where-appropriate.patch} (100%) rename patches/server/{0859-Fix-async-entity-add-due-to-fungus-trees.patch => 0858-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0860-ItemStack-damage-API.patch => 0859-ItemStack-damage-API.patch} (100%) rename patches/server/{0861-Friction-API.patch => 0860-Friction-API.patch} (100%) rename patches/server/{0862-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0861-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0863-Fix-player-kick-on-shutdown.patch => 0862-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0864-Sync-offhand-slot-in-menus.patch => 0863-Sync-offhand-slot-in-menus.patch} (100%) rename patches/server/{0865-Player-Entity-Tracking-Events.patch => 0864-Player-Entity-Tracking-Events.patch} (96%) rename patches/server/{0866-Limit-pet-look-distance.patch => 0865-Limit-pet-look-distance.patch} (100%) rename patches/server/{0867-Properly-resend-entities.patch => 0866-Properly-resend-entities.patch} (100%) rename patches/server/{0868-Fixes-and-additions-to-the-SpawnReason-API.patch => 0867-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0869-fix-Instruments.patch => 0868-fix-Instruments.patch} (100%) rename patches/server/{0870-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0869-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (100%) rename patches/server/{0871-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0870-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (99%) rename patches/server/{0872-Add-BlockLockCheckEvent.patch => 0871-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0873-Add-Sneaking-API-for-Entities.patch => 0872-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/server/{0874-Improve-logging-and-errors.patch => 0873-Improve-logging-and-errors.patch} (100%) rename patches/server/{0875-Improve-PortalEvents.patch => 0874-Improve-PortalEvents.patch} (93%) rename patches/server/{0876-Add-config-option-for-spider-worldborder-climbing.patch => 0875-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0877-Add-missing-SpigotConfig-logCommands-check.patch => 0876-Add-missing-SpigotConfig-logCommands-check.patch} (100%) rename patches/server/{0878-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0877-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0879-Flying-Fall-Damage.patch => 0878-Flying-Fall-Damage.patch} (100%) rename patches/server/{0880-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0879-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/server/{0881-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0880-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (91%) rename patches/server/{0882-config-for-disabling-entity-tag-tags.patch => 0881-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0883-Use-single-player-info-update-packet-on-join.patch => 0882-Use-single-player-info-update-packet-on-join.patch} (100%) rename patches/server/{0884-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0883-Correctly-shrink-items-during-EntityResurrectEvent.patch} (100%) rename patches/server/{0885-Win-Screen-API.patch => 0884-Win-Screen-API.patch} (100%) rename patches/server/{0886-Remove-CraftItemStack-setAmount-null-assignment.patch => 0885-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0887-Fix-force-opening-enchantment-tables.patch => 0886-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0888-Add-Entity-Body-Yaw-API.patch => 0887-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0889-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0888-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0890-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0889-Update-the-flag-when-a-captured-block-state-is-outda.patch} (100%) rename patches/server/{0891-Add-EntityFertilizeEggEvent.patch => 0890-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/server/{0892-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0891-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0893-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0892-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0894-Correctly-handle-ArmorStand-invisibility.patch => 0893-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0895-Fix-advancement-triggers-for-entity-damage.patch => 0894-Fix-advancement-triggers-for-entity-damage.patch} (100%) rename patches/server/{0896-Fix-text-display-error-on-spawn.patch => 0895-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0897-Fix-inventories-returning-null-Locations.patch => 0896-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0898-Add-Shearable-API.patch => 0897-Add-Shearable-API.patch} (100%) rename patches/server/{0899-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0898-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0900-Optimize-Hoppers.patch => 0899-Optimize-Hoppers.patch} (99%) rename patches/server/{0901-Fix-beehives-generating-from-using-bonemeal.patch => 0900-Fix-beehives-generating-from-using-bonemeal.patch} (96%) rename patches/server/{0902-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0901-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0903-Treat-sequence-violations-like-they-should-be.patch => 0902-Treat-sequence-violations-like-they-should-be.patch} (100%) rename patches/server/{0904-remove-duplicate-animate-packet-for-records.patch => 0903-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0905-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0904-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/server/{0906-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0905-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (100%) rename patches/server/{0907-Use-array-for-gamerule-storage.patch => 0906-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0908-Fix-a-couple-of-upstream-bed-issues.patch => 0907-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0909-Fix-demo-flag-not-enabling-demo-mode.patch => 0908-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0910-Add-Mob-Experience-reward-API.patch => 0909-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0911-Break-redstone-on-top-of-trap-doors-early.patch => 0910-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0912-Fix-DamageCause-for-Falling-Blocks.patch => 0911-Fix-DamageCause-for-Falling-Blocks.patch} (100%) rename patches/server/{0913-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0912-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0914-More-accurate-isInOpenWater-impl.patch => 0913-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0915-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0914-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0916-Optimise-recalcBlockCounts-for-empty-sections.patch => 0915-Optimise-recalcBlockCounts-for-empty-sections.patch} (100%) rename patches/server/{0917-Expand-PlayerItemMendEvent.patch => 0916-Expand-PlayerItemMendEvent.patch} (100%) rename patches/server/{0918-Refresh-ProjectileSource-for-projectiles.patch => 0917-Refresh-ProjectileSource-for-projectiles.patch} (97%) rename patches/server/{0919-Add-transient-modifier-API.patch => 0918-Add-transient-modifier-API.patch} (100%) rename patches/server/{0920-Fix-block-place-logic.patch => 0919-Fix-block-place-logic.patch} (97%) rename patches/server/{0921-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0920-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (94%) rename patches/server/{0922-Call-BlockGrowEvent-for-missing-blocks.patch => 0921-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0923-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0922-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (100%) rename patches/server/{0924-fix-MapLike-spam-for-missing-key-selector.patch => 0923-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0925-Fix-sniffer-removeExploredLocation.patch => 0924-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0926-Add-method-to-remove-all-active-potion-effects.patch => 0925-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0927-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch => 0926-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch} (100%) rename patches/server/{0928-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0927-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0929-Properly-cancel-usable-items.patch => 0928-Properly-cancel-usable-items.patch} (100%) rename patches/server/{0930-Add-event-for-player-editing-sign.patch => 0929-Add-event-for-player-editing-sign.patch} (98%) rename patches/server/{0931-Only-tick-item-frames-if-players-can-see-it.patch => 0930-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0932-Fix-cmd-permission-levels-for-command-blocks.patch => 0931-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/server/{0933-Add-option-to-disable-block-updates.patch => 0932-Add-option-to-disable-block-updates.patch} (98%) rename patches/server/{0934-Call-missing-BlockDispenseEvent.patch => 0933-Call-missing-BlockDispenseEvent.patch} (98%) rename patches/server/{0935-Don-t-load-chunks-for-supporting-block-checks.patch => 0934-Don-t-load-chunks-for-supporting-block-checks.patch} (90%) rename patches/server/{0936-Optimize-player-lookups-for-beacons.patch => 0935-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0937-Add-Sign-getInteractableSideFor.patch => 0936-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0938-Array-backed-synched-entity-data.patch => 0937-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0939-fix-item-meta-for-tadpole-buckets.patch => 0938-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0940-Fix-BanList-API.patch => 0939-Fix-BanList-API.patch} (100%) rename patches/server/{0941-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0940-Determine-lava-and-water-fluid-explosion-resistance-.patch} (95%) rename patches/server/{0942-Fix-possible-NPE-on-painting-creation.patch => 0941-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0943-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0942-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0944-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0943-ExperienceOrb-should-call-EntitySpawnEvent.patch} (100%) rename patches/server/{0945-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0944-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0946-Add-whitelist-events.patch => 0945-Add-whitelist-events.patch} (100%) rename patches/server/{0947-Implement-PlayerFailMoveEvent.patch => 0946-Implement-PlayerFailMoveEvent.patch} (100%) rename patches/server/{0948-Folia-scheduler-and-owned-region-API.patch => 0947-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0949-Only-erase-allay-memory-on-non-item-targets.patch => 0948-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0950-API-for-updating-recipes-on-clients.patch => 0949-API-for-updating-recipes-on-clients.patch} (100%) rename patches/server/{0951-Fix-rotation-when-spawning-display-entities.patch => 0950-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0952-Only-capture-actual-tree-growth.patch => 0951-Only-capture-actual-tree-growth.patch} (96%) rename patches/server/{0953-Use-correct-source-for-mushroom-block-spread-event.patch => 0952-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0954-Respect-randomizeData-on-more-entities-when-spawning.patch => 0953-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0955-Use-correct-seed-on-api-world-load.patch => 0954-Use-correct-seed-on-api-world-load.patch} (85%) rename patches/server/{0956-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0955-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0957-Cache-map-ids-on-item-frames.patch => 0956-Cache-map-ids-on-item-frames.patch} (100%) rename patches/server/{0958-Fix-custom-statistic-criteria-creation.patch => 0957-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0959-Bandaid-fix-for-Effect.patch => 0958-Bandaid-fix-for-Effect.patch} (100%) rename patches/server/{0960-SculkCatalyst-bloom-API.patch => 0959-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0961-API-for-an-entity-s-scoreboard-name.patch => 0960-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0962-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0961-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (100%) rename patches/server/{0963-Deprecate-and-replace-methods-with-old-StructureType.patch => 0962-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/server/{0964-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0963-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (100%) rename patches/server/{0965-Properly-handle-BlockBreakEvent-isDropItems.patch => 0964-Properly-handle-BlockBreakEvent-isDropItems.patch} (99%) rename patches/server/{0966-Fire-entity-death-event-for-ender-dragon.patch => 0965-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0967-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0966-Configurable-entity-tracking-range-by-Y-coordinate.patch} (100%) rename patches/server/{0968-Add-Listing-API-for-Player.patch => 0967-Add-Listing-API-for-Player.patch} (100%) rename patches/server/{0969-Configurable-Region-Compression-Format.patch => 0968-Configurable-Region-Compression-Format.patch} (100%) rename patches/server/{0970-Add-BlockFace-to-BlockDamageEvent.patch => 0969-Add-BlockFace-to-BlockDamageEvent.patch} (100%) rename patches/server/{0971-Fix-NPE-on-Boat-getStatus.patch => 0970-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0972-Expand-Pose-API.patch => 0971-Expand-Pose-API.patch} (95%) rename patches/server/{0973-More-DragonBattle-API.patch => 0972-More-DragonBattle-API.patch} (100%) rename patches/server/{0974-Deep-clone-unhandled-nbt-tags.patch => 0973-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0975-Add-PlayerPickItemEvent.patch => 0974-Add-PlayerPickItemEvent.patch} (100%) rename patches/server/{0976-Improve-performance-of-mass-crafts.patch => 0975-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{0977-Allow-trident-custom-damage.patch => 0976-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0978-Expose-hand-in-BlockCanBuildEvent.patch => 0977-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0979-Optimize-nearest-structure-border-iteration.patch => 0978-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0980-Implement-OfflinePlayer-isConnected.patch => 0979-Implement-OfflinePlayer-isConnected.patch} (100%) rename patches/server/{0981-Fix-inventory-desync.patch => 0980-Fix-inventory-desync.patch} (100%) rename patches/server/{0982-Add-titleOverride-to-InventoryOpenEvent.patch => 0981-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/server/{0983-Configure-sniffer-egg-hatch-time.patch => 0982-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0984-Do-crystal-portal-proximity-check-before-entity-look.patch => 0983-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0985-Skip-POI-finding-if-stuck-in-vehicle.patch => 0984-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0986-Add-slot-sanity-checks-in-container-clicks.patch => 0985-Add-slot-sanity-checks-in-container-clicks.patch} (100%) rename patches/server/{0987-Call-BlockRedstoneEvents-for-lecterns.patch => 0986-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0988-Allow-proper-checking-of-empty-item-stacks.patch => 0987-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0989-Fix-silent-equipment-change-for-mobs.patch => 0988-Fix-silent-equipment-change-for-mobs.patch} (98%) rename patches/server/{0990-Fix-spigot-s-Forced-Stats.patch => 0989-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0991-Add-missing-InventoryHolders-to-inventories.patch => 0990-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/server/{0992-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0991-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{0993-Actually-optimise-explosions.patch => 0992-Actually-optimise-explosions.patch} (100%) rename patches/server/{0994-Add-missing-logs-for-log-ips-config-option.patch => 0993-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0995-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0994-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{0996-Fix-SuspiciousStewMeta.patch => 0995-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{0997-Optimise-chunk-tick-iteration.patch => 0996-Optimise-chunk-tick-iteration.patch} (100%) rename patches/server/{0998-Lag-compensation-ticks.patch => 0997-Lag-compensation-ticks.patch} (100%) rename patches/server/{0999-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0998-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{1000-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0999-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{1001-Fix-team-sidebar-objectives-not-being-cleared.patch => 1000-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{1002-Optimise-nearby-player-retrieval.patch => 1001-Optimise-nearby-player-retrieval.patch} (100%) rename patches/server/{1003-Fix-missing-map-initialize-event-call.patch => 1002-Fix-missing-map-initialize-event-call.patch} (100%) rename patches/server/{1004-Update-entity-data-when-attaching-firework-to-entity.patch => 1003-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{1005-Use-correct-variable-for-initializing-CraftLootTable.patch => 1004-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{1006-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 1005-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{1007-Fix-UnsafeValues-loadAdvancement.patch => 1006-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{1008-Add-player-idle-duration-API.patch => 1007-Add-player-idle-duration-API.patch} (100%) rename patches/server/{1009-Don-t-check-if-we-can-see-non-visible-entities.patch => 1008-Don-t-check-if-we-can-see-non-visible-entities.patch} (100%) rename patches/server/{1010-Fix-NPE-in-SculkBloomEvent-world-access.patch => 1009-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{1011-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 1010-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/server/{1012-Optimize-VarInts.patch => 1011-Optimize-VarInts.patch} (100%) rename patches/server/{1013-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 1012-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{1014-Add-predicate-for-blocks-when-raytracing.patch => 1013-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/server/{1015-Broadcast-take-item-packets-with-collector-as-source.patch => 1014-Broadcast-take-item-packets-with-collector-as-source.patch} (100%) rename patches/server/{1016-Expand-LingeringPotion-API.patch => 1015-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{1017-Add-MaterialTagsTest.patch => 1016-Add-MaterialTagsTest.patch} (100%) rename patches/server/{1018-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 1017-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/server/{1019-Add-hand-to-fish-event-for-all-player-interactions.patch => 1018-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{1020-Fix-several-issues-with-EntityBreedEvent.patch => 1019-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{1021-Add-UUID-attribute-modifier-API.patch => 1020-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{1022-Fix-missing-event-call-for-entity-teleport-API.patch => 1021-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{1023-Lazily-create-LootContext-for-criterions.patch => 1022-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{1024-Don-t-fire-sync-events-during-worldgen.patch => 1023-Don-t-fire-sync-events-during-worldgen.patch} (99%) rename patches/server/{1025-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 1024-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{1026-Restore-vanilla-entity-drops-behavior.patch => 1025-Restore-vanilla-entity-drops-behavior.patch} (99%) rename patches/server/{1027-Add-Structure-check-API.patch => 1026-Add-Structure-check-API.patch} (100%) rename patches/server/{1028-Dont-resend-blocks-on-interactions.patch => 1027-Dont-resend-blocks-on-interactions.patch} (99%) rename patches/server/{1029-Keep-previous-behavior-for-setResourcePack.patch => 1028-Keep-previous-behavior-for-setResourcePack.patch} (100%) rename patches/server/{1030-properly-read-and-store-sus-effect-duration.patch => 1029-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{1031-Use-correct-max-stack-size-in-crafter.patch => 1030-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{1032-add-more-scoreboard-API.patch => 1031-add-more-scoreboard-API.patch} (100%) rename patches/server/{1033-Improve-Registry.patch => 1032-Improve-Registry.patch} (100%) rename patches/server/{1034-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 1033-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (100%) rename patches/server/{1035-Add-experience-points-API.patch => 1034-Add-experience-points-API.patch} (100%) rename patches/server/{1036-Add-missing-InventoryType.patch => 1035-Add-missing-InventoryType.patch} (100%) rename patches/server/{1037-Add-drops-to-shear-events.patch => 1036-Add-drops-to-shear-events.patch} (100%) rename patches/server/{1038-Add-PlayerShieldDisableEvent.patch => 1037-Add-PlayerShieldDisableEvent.patch} (97%) rename patches/server/{1039-Add-HiddenPotionEffect-API.patch => 1038-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1040-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1039-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (96%) rename patches/server/{1041-fix-ItemMeta-removing-CustomModelData.patch => 1040-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/server/{1042-Validate-ResourceLocation-in-NBT-reading.patch => 1041-Validate-ResourceLocation-in-NBT-reading.patch} (98%) rename patches/server/{1043-Properly-handle-experience-dropping-on-block-break.patch => 1042-Properly-handle-experience-dropping-on-block-break.patch} (98%) rename patches/server/{1044-Fixup-NamespacedKey-handling.patch => 1043-Fixup-NamespacedKey-handling.patch} (100%) diff --git a/patches/server/0531-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/server/0531-Expand-EntityUnleashEvent.patch similarity index 96% rename from patches/server/0531-Add-dropLeash-variable-to-EntityUnleashEvent.patch rename to patches/server/0531-Expand-EntityUnleashEvent.patch index a8c76b8b3faf..8242a0da2a19 100644 --- a/patches/server/0531-Add-dropLeash-variable-to-EntityUnleashEvent.patch +++ b/patches/server/0531-Expand-EntityUnleashEvent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Fri, 29 Jan 2021 15:13:11 +0100 -Subject: [PATCH] Add dropLeash variable to EntityUnleashEvent +Subject: [PATCH] Expand EntityUnleashEvent diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index d330b6d291cd2967358e892ccbc480bb3bd8022d..764a5dd85e3fb581b1e713ce9b148be1874d55be 100644 +index d330b6d291cd2967358e892ccbc480bb3bd8022d..f9743f8705a7f5f3ede4c869070d5735e24348a0 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1305,12 +1305,15 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -48,7 +48,7 @@ index d330b6d291cd2967358e892ccbc480bb3bd8022d..764a5dd85e3fb581b1e713ce9b148be1 - this.dropLeash(true, true); + // Paper start - drop leash variable + EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.UNKNOWN, true); -+ this.level().getCraftServer().getPluginManager().callEvent(event); // CraftBukkit ++ if (!event.callEvent()) { return flag1; } + this.dropLeash(true, event.isDropLeash()); + // Paper end } @@ -62,7 +62,7 @@ index d330b6d291cd2967358e892ccbc480bb3bd8022d..764a5dd85e3fb581b1e713ce9b148be1 - this.dropLeash(true, false); + // Paper start - drop leash variable + EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.UNKNOWN, false); -+ this.level().getCraftServer().getPluginManager().callEvent(event); // CraftBukkit ++ if (!event.callEvent()) { return; } + this.dropLeash(true, event.isDropLeash()); + // Paper end this.getAllSlots().forEach((itemstack) -> { diff --git a/patches/server/0586-More-Enchantment-API.patch b/patches/server/0586-More-Enchantment-API.patch index 1524d5b25b76..4c6a71ac3cc0 100644 --- a/patches/server/0586-More-Enchantment-API.patch +++ b/patches/server/0586-More-Enchantment-API.patch @@ -9,7 +9,7 @@ public net.minecraft.world.item.enchantment.Enchantment slots Co-authored-by: Luis diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java -index 92922e8eef7fa4638a01f3cefc4c46a1451e40e7..4daf2c54c7127e8e091ffc49362f288594956143 100644 +index 92922e8eef7fa4638a01f3cefc4c46a1451e40e7..92465b2a9f1483be76004c9f80a1fe15913b3b8b 100644 --- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java +++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java @@ -90,7 +90,7 @@ public class CraftEnchantment extends Enchantment { @@ -17,7 +17,7 @@ index 92922e8eef7fa4638a01f3cefc4c46a1451e40e7..4daf2c54c7127e8e091ffc49362f2885 @Override public boolean isCursed() { - return this.handle instanceof BindingCurseEnchantment || this.handle instanceof VanishingCurseEnchantment; -+ return this.handle.isCurse(); // Paper ++ return this.handle.isCurse(); // Paper - More Enchantment API } @Override diff --git a/patches/server/0587-Move-range-check-for-block-placing-up.patch b/patches/server/0587-Move-range-check-for-block-placing-up.patch index e2caddd0a763..efb4d256abca 100644 --- a/patches/server/0587-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0587-Move-range-check-for-block-placing-up.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Move range check for block placing up diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4ea889c12a6750914b82d796ed641cdd810ea957..4d3452fb5cf9330e87d914f775c1a8e0c955a571 100644 +index 4ea889c12a6750914b82d796ed641cdd810ea957..8d6254c7f63bae10d3e09771d484ee9e44c2c3de 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1743,6 +1743,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -16,7 +16,7 @@ index 4ea889c12a6750914b82d796ed641cdd810ea957..4d3452fb5cf9330e87d914f775c1a8e0 + if (!Double.isFinite(vec3d.x) || !Double.isFinite(vec3d.y) || !Double.isFinite(vec3d.z)) { + return; + } -+ // Paper end ++ // Paper end - improve distance check BlockPos blockposition = movingobjectpositionblock.getBlockPos(); Vec3 vec3d1 = Vec3.atCenterOf(blockposition); diff --git a/patches/server/0588-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0588-Fix-and-optimise-world-force-upgrading.patch index d04c0155d23f..5392bdad1546 100644 --- a/patches/server/0588-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0588-Fix-and-optimise-world-force-upgrading.patch @@ -267,7 +267,7 @@ index 415d55285bb02442d8d1ec907d37b07fad4f3fcc..9b0bbaf23b90a04b6e6f6c97d9174fe3 Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, dimensionOptionsRegistry, eraseCache); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fbfe5d18a004225396f2d33084fb5073af2d9731..2acd875f34c367f9b9db85dee5052140c05d0add 100644 +index fbfe5d18a004225396f2d33084fb5073af2d9731..7bfd8307555a9447d4c546a8945341806041cc32 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -586,11 +586,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop true, iregistry); - } -+ // Paper - move down ++ // Paper - fix and optimise world upgrading; move down long j = BiomeManager.obfuscateSeed(creator.seed()); List list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata)); diff --git a/patches/server/0590-Add-Unix-domain-socket-support.patch b/patches/server/0590-Add-Unix-domain-socket-support.patch index c7280bd49722..a65bf6654a31 100644 --- a/patches/server/0590-Add-Unix-domain-socket-support.patch +++ b/patches/server/0590-Add-Unix-domain-socket-support.patch @@ -3,15 +3,9 @@ From: Andrew Steinborn Date: Tue, 11 May 2021 17:39:22 -0400 Subject: [PATCH] Add Unix domain socket support -For Windows and ARM support, JEP-380 is required: -https://inside.java/2021/02/03/jep380-unix-domain-sockets-channels/ -This will be possible as of the Minecraft 1.17 Java version bump. - -Tested-by: Mariell Hoversholm -Reviewed-by: Mariell Hoversholm diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 019dd5a66b883e6ac8d0f07abc2636768a373664..f0d6e6f85dc2a9ae8d70dd691b144fac0298bf33 100644 +index 019dd5a66b883e6ac8d0f07abc2636768a373664..bc157cd71bb6dbc109990533f622f78bcc103918 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -219,6 +219,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -41,7 +35,7 @@ index 019dd5a66b883e6ac8d0f07abc2636768a373664..f0d6e6f85dc2a9ae8d70dd691b144fac } + bindAddress = new java.net.InetSocketAddress(inetaddress, this.getPort()); + } -+ // Paper end ++ // Paper end - Unix domain socket support this.initializeKeyPair(); DedicatedServer.LOGGER.info("Starting Minecraft server on {}:{}", this.getLocalIp().isEmpty() ? "*" : this.getLocalIp(), this.getPort()); @@ -53,19 +47,19 @@ index 019dd5a66b883e6ac8d0f07abc2636768a373664..f0d6e6f85dc2a9ae8d70dd691b144fac DedicatedServer.LOGGER.warn("**** FAILED TO BIND TO PORT!"); DedicatedServer.LOGGER.warn("The exception was: {}", ioexception.toString()); diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 6641fd04821240b1bbeff1bd8d996a8f2fff8385..5f625acf04ddb56e3596d086252f9bfccfdb95f2 100644 +index 6641fd04821240b1bbeff1bd8d996a8f2fff8385..4bbb370c5d26749c566216bac079a0cb6d0b4507 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -78,7 +78,12 @@ public class ServerConnectionListener { this.running = true; } -+ // Paper start ++ // Paper start - Unix domain socket support public void startTcpServerListener(@Nullable InetAddress address, int port) throws IOException { + bind(new java.net.InetSocketAddress(address, port)); + } + public void bind(java.net.SocketAddress address) throws IOException { -+ // Paper end ++ // Paper end - Unix domain socket support List list = this.channels; synchronized (this.channels) { @@ -73,13 +67,13 @@ index 6641fd04821240b1bbeff1bd8d996a8f2fff8385..5f625acf04ddb56e3596d086252f9bfc EventLoopGroup eventloopgroup; if (Epoll.isAvailable() && this.server.isEpollEnabled()) { -+ // Paper start ++ // Paper start - Unix domain socket support + if (address instanceof io.netty.channel.unix.DomainSocketAddress) { + oclass = io.netty.channel.epoll.EpollServerDomainSocketChannel.class; + } else { oclass = EpollServerSocketChannel.class; + } -+ // Paper end ++ // Paper end - Unix domain socket support eventloopgroup = (EventLoopGroup) ServerConnectionListener.SERVER_EPOLL_EVENT_GROUP.get(); ServerConnectionListener.LOGGER.info("Using epoll channel type"); } else { @@ -88,35 +82,35 @@ index 6641fd04821240b1bbeff1bd8d996a8f2fff8385..5f625acf04ddb56e3596d086252f9bfc io.papermc.paper.network.ChannelInitializeListenerHolder.callListeners(channel); // Paper } - }).group(eventloopgroup).localAddress(address, port)).option(ChannelOption.AUTO_READ, false).bind().syncUninterruptibly()); // CraftBukkit -+ }).group(eventloopgroup).localAddress(address)).option(ChannelOption.AUTO_READ, false).bind().syncUninterruptibly()); // CraftBukkit // Paper ++ }).group(eventloopgroup).localAddress(address)).option(ChannelOption.AUTO_READ, false).bind().syncUninterruptibly()); // CraftBukkit // Paper - Unix domain socket support } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4d3452fb5cf9330e87d914f775c1a8e0c955a571..4d23d019173d0921145338544e190bc34f9f45c2 100644 +index 8d6254c7f63bae10d3e09771d484ee9e44c2c3de..73b825b16f02e254a1e2313ff1c93c642c5dceeb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2476,6 +2476,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Spigot Start public SocketAddress getRawAddress() { -+ // Paper start - this can be nullable in the case of a Unix domain socket, so if it is, fake something ++ // Paper start - Unix domain socket support; this can be nullable in the case of a Unix domain socket, so if it is, fake something + if (connection.channel.remoteAddress() == null) { + return new java.net.InetSocketAddress(java.net.InetAddress.getLoopbackAddress(), 0); + } -+ // Paper end ++ // Paper end - Unix domain socket support return this.connection.channel.remoteAddress(); } // Spigot End diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 3068e25f2df958689627fb31783a2d356547f1be..d2edc000f34d7f07a840bb8012c6f884f37e387b 100644 +index 3068e25f2df958689627fb31783a2d356547f1be..f1a002ddfa55ba3bf4313639d0e82f0c8b036c65 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -45,6 +45,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL this.connection.setClientboundProtocolAfterHandshake(ClientIntent.LOGIN); // CraftBukkit start - Connection throttle try { -+ if (!(this.connection.channel.localAddress() instanceof io.netty.channel.unix.DomainSocketAddress)) { // Paper - the connection throttle is useless when you have a Unix domain socket ++ if (!(this.connection.channel.localAddress() instanceof io.netty.channel.unix.DomainSocketAddress)) { // Paper - Unix domain socket support; the connection throttle is useless when you have a Unix domain socket long currentTime = System.currentTimeMillis(); long connectionThrottle = this.server.server.getConnectionThrottle(); InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress(); @@ -124,7 +118,7 @@ index 3068e25f2df958689627fb31783a2d356547f1be..d2edc000f34d7f07a840bb8012c6f884 } } } -+ } // Paper - add closing bracket for if check above ++ } // Paper - Unix domain socket support } catch (Throwable t) { org.apache.logging.log4j.LogManager.getLogger().debug("Failed to check connection throttle", t); } @@ -137,7 +131,7 @@ index 3068e25f2df958689627fb31783a2d356547f1be..d2edc000f34d7f07a840bb8012c6f884 this.connection.hostname = split[0]; - this.connection.address = new java.net.InetSocketAddress(split[1], ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getPort()); + this.connection.address = new java.net.InetSocketAddress(split[1], socketAddress instanceof java.net.InetSocketAddress ? ((java.net.InetSocketAddress) socketAddress).getPort() : 0); -+ // Paper end ++ // Paper end - Unix domain socket support this.connection.spoofedUUID = com.mojang.util.UndashedUuid.fromStringLenient( split[2] ); } else { diff --git a/patches/server/0591-Add-EntityInsideBlockEvent.patch b/patches/server/0591-Add-EntityInsideBlockEvent.patch index c1f06ac3256d..adbefe7eaebd 100644 --- a/patches/server/0591-Add-EntityInsideBlockEvent.patch +++ b/patches/server/0591-Add-EntityInsideBlockEvent.patch @@ -5,278 +5,278 @@ Subject: [PATCH] Add EntityInsideBlockEvent diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index 0e56fbe8836020a0e36c0b6df01ae82d0aa8cf38..02cbb25b8b1fdaf6e2b771067ca132245eab13dc 100644 +index 0e56fbe8836020a0e36c0b6df01ae82d0aa8cf38..450f87ea7f4c5ef3b26a3c75bc7c8bd08a982075 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java @@ -124,6 +124,7 @@ public abstract class BaseFireBlock extends Block { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!entity.fireImmune()) { entity.setRemainingFireTicks(entity.getRemainingFireTicks() + 1); if (entity.getRemainingFireTicks() == 0) { diff --git a/src/main/java/net/minecraft/world/level/block/BasePressurePlateBlock.java b/src/main/java/net/minecraft/world/level/block/BasePressurePlateBlock.java -index 040e55edea53a2ebab7cc8fe6f85206c9301e11a..e074c126cd3117dc3233f39913b94b3e3fd94973 100644 +index 040e55edea53a2ebab7cc8fe6f85206c9301e11a..0d573c05f4f8838d4492f749ca473f7a9e8d60dd 100644 --- a/src/main/java/net/minecraft/world/level/block/BasePressurePlateBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BasePressurePlateBlock.java @@ -76,6 +76,7 @@ public abstract class BasePressurePlateBlock extends Block { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!world.isClientSide) { int i = this.getSignalForState(state); diff --git a/src/main/java/net/minecraft/world/level/block/BigDripleafBlock.java b/src/main/java/net/minecraft/world/level/block/BigDripleafBlock.java -index 546dbe28edbba32ab2aede1260fbd2c9baa9fe1a..8e4a6a1188b2ce2825dc5750505212c72efb5c7b 100644 +index 546dbe28edbba32ab2aede1260fbd2c9baa9fe1a..0d92bd6f1e4f3470a62f573add3490220e60ef7a 100644 --- a/src/main/java/net/minecraft/world/level/block/BigDripleafBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BigDripleafBlock.java @@ -177,6 +177,7 @@ public class BigDripleafBlock extends HorizontalDirectionalBlock implements Bone @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!world.isClientSide) { if (state.getValue(BigDripleafBlock.TILT) == Tilt.NONE && BigDripleafBlock.canEntityTilt(pos, entity) && !world.hasNeighborSignal(pos)) { // CraftBukkit start - tilt dripleaf diff --git a/src/main/java/net/minecraft/world/level/block/BubbleColumnBlock.java b/src/main/java/net/minecraft/world/level/block/BubbleColumnBlock.java -index 240e01063b5d684020ed2d7d73fc60c64fd8cf2e..115506fceb9a406e844880fb523d2ff09a66cf7b 100644 +index 240e01063b5d684020ed2d7d73fc60c64fd8cf2e..78d98a442ea3c14500ac6ae597ff2a5080b7ce15 100644 --- a/src/main/java/net/minecraft/world/level/block/BubbleColumnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BubbleColumnBlock.java @@ -47,6 +47,7 @@ public class BubbleColumnBlock extends Block implements BucketPickup { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent BlockState blockState = world.getBlockState(pos.above()); if (blockState.isAir()) { entity.onAboveBubbleCol(state.getValue(DRAG_DOWN)); diff --git a/src/main/java/net/minecraft/world/level/block/ButtonBlock.java b/src/main/java/net/minecraft/world/level/block/ButtonBlock.java -index 3356f327c9adae6c2f3354b4417f3954012c945a..c6e13cc12ec8817870eb55a82ceb6f1ef77e2d9a 100644 +index 3356f327c9adae6c2f3354b4417f3954012c945a..0118c4ef4f5ed0e724b379b5a563e2b6976803a2 100644 --- a/src/main/java/net/minecraft/world/level/block/ButtonBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ButtonBlock.java @@ -206,6 +206,7 @@ public class ButtonBlock extends FaceAttachedHorizontalDirectionalBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!world.isClientSide && this.type.canButtonBeActivatedByArrows() && !(Boolean) state.getValue(ButtonBlock.POWERED)) { this.checkPressed(state, world, pos); } diff --git a/src/main/java/net/minecraft/world/level/block/CactusBlock.java b/src/main/java/net/minecraft/world/level/block/CactusBlock.java -index 3c7bbfcb3a88f23056cd0db3da2a281a81dc8c85..a9629a102c4fa4e5720e63fcf4590e9231426c62 100644 +index 3c7bbfcb3a88f23056cd0db3da2a281a81dc8c85..88ca50038b483fe5c207ef5c2bf3ea87540e147e 100644 --- a/src/main/java/net/minecraft/world/level/block/CactusBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CactusBlock.java @@ -121,6 +121,7 @@ public class CactusBlock extends Block { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent CraftEventFactory.blockDamage = world.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ()); // CraftBukkit entity.hurt(world.damageSources().cactus(), 1.0F); CraftEventFactory.blockDamage = null; // CraftBukkit diff --git a/src/main/java/net/minecraft/world/level/block/CampfireBlock.java b/src/main/java/net/minecraft/world/level/block/CampfireBlock.java -index cbabee578a6fd62234d0aa350d911c6c7d02e0b2..7302d07c6ff69608e75ac52fdb19f2ec1d105129 100644 +index cbabee578a6fd62234d0aa350d911c6c7d02e0b2..20dbfeb68ac33ee8ba8214edcca0d7f7ce1be58e 100644 --- a/src/main/java/net/minecraft/world/level/block/CampfireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CampfireBlock.java @@ -108,6 +108,7 @@ public class CampfireBlock extends BaseEntityBlock implements SimpleWaterloggedB @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if ((Boolean) state.getValue(CampfireBlock.LIT) && entity instanceof LivingEntity && !EnchantmentHelper.hasFrostWalker((LivingEntity) entity)) { org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = CraftBlock.at(world, pos); // CraftBukkit entity.hurt(world.damageSources().inFire(), (float) this.fireDamage); diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java -index a7809bb2a468c7ad7ef7ba795afd93dd2a63cadc..76c12b34aac276fc9375135dac1c2018fdd7d756 100644 +index a7809bb2a468c7ad7ef7ba795afd93dd2a63cadc..aa029bee9839497e48ff639e286a024280150362 100644 --- a/src/main/java/net/minecraft/world/level/block/CropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java @@ -174,6 +174,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (entity instanceof Ravager && CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit world.destroyBlock(pos, true, entity); } diff --git a/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java b/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java -index 8eff69cb70ba094f9dcc0849f0436d4a3498fceb..034a3bc5b5e526e28088a9715a41ad8ab843860b 100644 +index 8eff69cb70ba094f9dcc0849f0436d4a3498fceb..9de6503f20396601a270e6eb0b66c40187fca690 100644 --- a/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java @@ -51,6 +51,7 @@ public class DetectorRailBlock extends BaseRailBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!world.isClientSide) { if (!(Boolean) state.getValue(DetectorRailBlock.POWERED)) { this.checkPressed(world, pos, state); diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -index 07629f6106f384751c376d2a99ba2e8b905e49c6..c8f1bdbfcb2df3d4be05d185e97857a6181b076e 100644 +index 07629f6106f384751c376d2a99ba2e8b905e49c6..9ee2fd0914ff7836517ca143d51db6150967cb0e 100644 --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java @@ -52,6 +52,7 @@ public class EndPortalBlock extends BaseEntityBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (world instanceof ServerLevel && entity.canChangeDimensions() && Shapes.joinIsNotEmpty(Shapes.create(entity.getBoundingBox().move((double) (-pos.getX()), (double) (-pos.getY()), (double) (-pos.getZ()))), state.getShape(world, pos), BooleanOp.AND)) { ResourceKey resourcekey = world.getTypeKey() == LevelStem.END ? Level.OVERWORLD : Level.END; // CraftBukkit - SPIGOT-6152: send back to main overworld in custom ends ServerLevel worldserver = ((ServerLevel) world).getServer().getLevel(resourcekey); diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index d5c83f3b9d398b2a025e6729980b1b87b35f38a8..a4ca58384ae2a39ec568b153cc1a4f7704136108 100644 +index d5c83f3b9d398b2a025e6729980b1b87b35f38a8..68978e1629381ada161225c53a236a54deae6481 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java @@ -78,6 +78,7 @@ public class FrogspawnBlock extends Block { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (entity.getType().equals(EntityType.FALLING_BLOCK)) { this.destroyBlock(world, pos); } diff --git a/src/main/java/net/minecraft/world/level/block/HoneyBlock.java b/src/main/java/net/minecraft/world/level/block/HoneyBlock.java -index 8b84359316e559b94ae6a2d757bda2286d99a903..b9d89cce40e4cbeaf98eeb85c254db353e573c95 100644 +index 8b84359316e559b94ae6a2d757bda2286d99a903..39e2fe8c5f5a2a4d4f3a7be3645923b5a1dca875 100644 --- a/src/main/java/net/minecraft/world/level/block/HoneyBlock.java +++ b/src/main/java/net/minecraft/world/level/block/HoneyBlock.java @@ -61,6 +61,7 @@ public class HoneyBlock extends HalfTransparentBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (this.isSlidingDown(pos, entity)) { this.maybeDoSlideAchievement(entity, pos); this.doSlideMovement(entity); diff --git a/src/main/java/net/minecraft/world/level/block/HopperBlock.java b/src/main/java/net/minecraft/world/level/block/HopperBlock.java -index 99a5821a55f2d2947722d64d60f4ee4ba5dfa74c..5012de7e58092a11f8022a1aa33986604da840b3 100644 +index 99a5821a55f2d2947722d64d60f4ee4ba5dfa74c..04e69d6066faf1c605aeeabe827dc20fc96a3568 100644 --- a/src/main/java/net/minecraft/world/level/block/HopperBlock.java +++ b/src/main/java/net/minecraft/world/level/block/HopperBlock.java @@ -200,6 +200,7 @@ public class HopperBlock extends BaseEntityBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof HopperBlockEntity) { HopperBlockEntity.entityInside(world, pos, state, entity, (HopperBlockEntity)blockEntity); diff --git a/src/main/java/net/minecraft/world/level/block/LavaCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LavaCauldronBlock.java -index 7e926a4546f89da22080ef28c3858ac7b3cf80f1..bc099abfda6555cade0a83eddfe1be9c243fa83b 100644 +index 7e926a4546f89da22080ef28c3858ac7b3cf80f1..29d4553df54236706c76fdec0bb14b5d9fb82ff2 100644 --- a/src/main/java/net/minecraft/world/level/block/LavaCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LavaCauldronBlock.java @@ -32,6 +32,7 @@ public class LavaCauldronBlock extends AbstractCauldronBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (this.isEntityInsideContent(state, pos, entity)) { entity.lavaHurt(); } diff --git a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java -index 64247c3a81273277b95656885c78eca3e883ef13..a8b2c49ebf531d730d681ca3bceb4dc74b433fdb 100644 +index 64247c3a81273277b95656885c78eca3e883ef13..18ca086e28f4295cb9303919222d7c8ae0ca5d9a 100644 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java @@ -65,6 +65,7 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!world.isClientSide && entity.isOnFire() && this.isEntityInsideContent(state, pos, entity)) { // CraftBukkit start if (entity.mayInteract(world, pos)) { diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java -index 4e52e92846428b0d01635b90f3480b4a2c13a0b4..ee998d06804e344ea9d5b84ef0074b84aaba04c2 100644 +index 4e52e92846428b0d01635b90f3480b4a2c13a0b4..e6b762c70cbc08b20fc225b7731abd19c626369c 100644 --- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java @@ -90,6 +90,7 @@ public class NetherPortalBlock extends Block { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (entity.canChangeDimensions()) { // CraftBukkit start - Entity in portal EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ())); diff --git a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -index f7154d56ad42e0dde497e0e585cc554d34865e3b..c80a3ee02f3af146926a3611779fd0af298a8ac1 100644 +index f7154d56ad42e0dde497e0e585cc554d34865e3b..690abba9d27ab4061de4dd3676292b1859036868 100644 --- a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java @@ -94,6 +94,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (entity instanceof Ravager && world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) { world.destroyBlock(pos, true, entity); } diff --git a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java -index b38658b84e821435ba5a3fc7218b72406da00e47..f579911b06b66e94e6311d970e93cca33fa089c6 100644 +index b38658b84e821435ba5a3fc7218b72406da00e47..0dfcac8cfcbb09fe04486bff60119f7985714454 100644 --- a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java @@ -63,6 +63,7 @@ public class PowderSnowBlock extends Block implements BucketPickup { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!(entity instanceof LivingEntity) || entity.getFeetBlockState().is((Block) this)) { entity.makeStuckInBlock(state, new Vec3(0.8999999761581421D, 1.5D, 0.8999999761581421D)); if (world.isClientSide) { diff --git a/src/main/java/net/minecraft/world/level/block/SweetBerryBushBlock.java b/src/main/java/net/minecraft/world/level/block/SweetBerryBushBlock.java -index c733b9dc26370322e404b56ac3feb3417948cb90..f474ae7b3121de701f371b7d88e80086ec07d03d 100644 +index c733b9dc26370322e404b56ac3feb3417948cb90..6c1ed9d37adb97b47f0288a5986b805ee0e13842 100644 --- a/src/main/java/net/minecraft/world/level/block/SweetBerryBushBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SweetBerryBushBlock.java @@ -84,6 +84,7 @@ public class SweetBerryBushBlock extends BushBlock implements BonemealableBlock @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (entity instanceof LivingEntity && entity.getType() != EntityType.FOX && entity.getType() != EntityType.BEE) { entity.makeStuckInBlock(state, new Vec3(0.800000011920929D, 0.75D, 0.800000011920929D)); if (!world.isClientSide && (Integer) state.getValue(SweetBerryBushBlock.AGE) > 0 && (entity.xOld != entity.getX() || entity.zOld != entity.getZ())) { diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java -index d092ee2aa4a37c89642133dca7049737c55a4245..bbb7d1b03c78758d608e89129aacec151242831c 100644 +index d092ee2aa4a37c89642133dca7049737c55a4245..003fd247b12323cca5fd82a6cdf31bd897afd682 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java @@ -134,6 +134,7 @@ public class TripWireBlock extends Block { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!world.isClientSide) { if (!(Boolean) state.getValue(TripWireBlock.POWERED)) { this.checkPressed(world, pos); diff --git a/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java b/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java -index d89a4c30599cedcb8ce17899631cb58c8a6a2195..c01cc63497917b0c5d95424c060c69f3693fc871 100644 +index d89a4c30599cedcb8ce17899631cb58c8a6a2195..61abbcfe97e3d3e3da5ee658672549d14594ad17 100644 --- a/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java +++ b/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java @@ -34,6 +34,7 @@ public class WaterlilyBlock extends BushBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { super.entityInside(state, world, pos, entity); -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (world instanceof ServerLevel && entity instanceof Boat) { // CraftBukkit start if (!CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState())) { diff --git a/src/main/java/net/minecraft/world/level/block/WebBlock.java b/src/main/java/net/minecraft/world/level/block/WebBlock.java -index 7206dfa5bdfb94ff98bcdfc735367c22493e925e..edf00a8c3747d0c5ac8001c70846475800fa6a84 100644 +index 7206dfa5bdfb94ff98bcdfc735367c22493e925e..4905de6446f07e2fff53a3c8580b64b96306c373 100644 --- a/src/main/java/net/minecraft/world/level/block/WebBlock.java +++ b/src/main/java/net/minecraft/world/level/block/WebBlock.java @@ -22,6 +22,7 @@ public class WebBlock extends Block { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent entity.makeStuckInBlock(state, new Vec3(0.25D, (double)0.05F, 0.25D)); } } diff --git a/src/main/java/net/minecraft/world/level/block/WitherRoseBlock.java b/src/main/java/net/minecraft/world/level/block/WitherRoseBlock.java -index c10a01013f8393c677834136babed15817b45611..8f6139d8b1fbe45b9330961ccfbe9413f9f5f225 100644 +index c10a01013f8393c677834136babed15817b45611..a49027c73ca461e0610914138cc660c89965f956 100644 --- a/src/main/java/net/minecraft/world/level/block/WitherRoseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/WitherRoseBlock.java @@ -61,6 +61,7 @@ public class WitherRoseBlock extends FlowerBlock { @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { -+ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper ++ if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!world.isClientSide && world.getDifficulty() != Difficulty.PEACEFUL) { if (entity instanceof LivingEntity) { LivingEntity entityliving = (LivingEntity) entity; diff --git a/patches/server/0593-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0593-Add-cause-to-Weather-ThunderChangeEvents.patch index 3c2e6af4c61d..53f088b3733f 100644 --- a/patches/server/0593-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0593-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a3288d3cd160978e8bab4ca34d1fe6dbee042e28..8b2f72be4304ebab84fc46e6c4c0984abd8e8905 100644 +index a3288d3cd160978e8bab4ca34d1fe6dbee042e28..b858ee2fc8c03c52a6b6d703b1f770b3c496b2a8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -672,8 +672,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -14,8 +14,8 @@ index a3288d3cd160978e8bab4ca34d1fe6dbee042e28..8b2f72be4304ebab84fc46e6c4c0984a this.serverLevelData.setThunderTime(rainDuration); - this.serverLevelData.setRaining(raining); - this.serverLevelData.setThundering(thundering); -+ this.serverLevelData.setRaining(raining, org.bukkit.event.weather.WeatherChangeEvent.Cause.COMMAND); // Paper -+ this.serverLevelData.setThundering(thundering, org.bukkit.event.weather.ThunderChangeEvent.Cause.COMMAND); // Paper ++ this.serverLevelData.setRaining(raining, org.bukkit.event.weather.WeatherChangeEvent.Cause.COMMAND); // Paper - Add cause to Weather/ThunderChangeEvents ++ this.serverLevelData.setThundering(thundering, org.bukkit.event.weather.ThunderChangeEvent.Cause.COMMAND); // Paper - Add cause to Weather/ThunderChangeEvents } @Override @@ -25,8 +25,8 @@ index a3288d3cd160978e8bab4ca34d1fe6dbee042e28..8b2f72be4304ebab84fc46e6c4c0984a this.serverLevelData.setClearWeatherTime(i); - this.serverLevelData.setThundering(flag1); - this.serverLevelData.setRaining(flag2); -+ this.serverLevelData.setThundering(flag1, org.bukkit.event.weather.ThunderChangeEvent.Cause.NATURAL); // Paper -+ this.serverLevelData.setRaining(flag2, org.bukkit.event.weather.WeatherChangeEvent.Cause.NATURAL); // Paper ++ this.serverLevelData.setThundering(flag1, org.bukkit.event.weather.ThunderChangeEvent.Cause.NATURAL); // Paper - Add cause to Weather/ThunderChangeEvents ++ this.serverLevelData.setRaining(flag2, org.bukkit.event.weather.WeatherChangeEvent.Cause.NATURAL); // Paper - Add cause to Weather/ThunderChangeEvents } this.oThunderLevel = this.thunderLevel; @@ -35,7 +35,7 @@ index a3288d3cd160978e8bab4ca34d1fe6dbee042e28..8b2f72be4304ebab84fc46e6c4c0984a public void resetWeatherCycle() { // CraftBukkit start - this.serverLevelData.setRaining(false); -+ this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - when passing the night ++ this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents // If we stop due to everyone sleeping we should reset the weather duration to some other random value. // Not that everyone ever manages to get the whole server to sleep at the same time.... if (!this.serverLevelData.isRaining()) { @@ -43,23 +43,23 @@ index a3288d3cd160978e8bab4ca34d1fe6dbee042e28..8b2f72be4304ebab84fc46e6c4c0984a } // CraftBukkit end - this.serverLevelData.setThundering(false); -+ this.serverLevelData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - when passing the night ++ this.serverLevelData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents // CraftBukkit start // If we stop due to everyone sleeping we should reset the weather duration to some other random value. // Not that everyone ever manages to get the whole server to sleep at the same time.... diff --git a/src/main/java/net/minecraft/world/level/storage/PrimaryLevelData.java b/src/main/java/net/minecraft/world/level/storage/PrimaryLevelData.java -index f5ac36fa54f3d3b39de103c95abb9ca3adfe8dda..47266d2b86e7f2022de7ea0c9347b4f55ad6fbe1 100644 +index f5ac36fa54f3d3b39de103c95abb9ca3adfe8dda..59ba982dc96ce47e47399514e8f74d2b972dbe1e 100644 --- a/src/main/java/net/minecraft/world/level/storage/PrimaryLevelData.java +++ b/src/main/java/net/minecraft/world/level/storage/PrimaryLevelData.java @@ -373,6 +373,11 @@ public class PrimaryLevelData implements ServerLevelData, WorldData { @Override public void setThundering(boolean thundering) { -+ // Paper start ++ // Paper start - Add cause to Weather/ThunderChangeEvents + this.setThundering(thundering, org.bukkit.event.weather.ThunderChangeEvent.Cause.UNKNOWN); + } + public void setThundering(boolean thundering, org.bukkit.event.weather.ThunderChangeEvent.Cause cause) { -+ // Paper end ++ // Paper end - Add cause to Weather/ThunderChangeEvents // CraftBukkit start if (this.thundering == thundering) { return; @@ -68,7 +68,7 @@ index f5ac36fa54f3d3b39de103c95abb9ca3adfe8dda..47266d2b86e7f2022de7ea0c9347b4f5 org.bukkit.World world = Bukkit.getWorld(this.getLevelName()); if (world != null) { - ThunderChangeEvent thunder = new ThunderChangeEvent(world, thundering); -+ ThunderChangeEvent thunder = new ThunderChangeEvent(world, thundering, cause); // Paper ++ ThunderChangeEvent thunder = new ThunderChangeEvent(world, thundering, cause); // Paper - Add cause to Weather/ThunderChangeEvents Bukkit.getServer().getPluginManager().callEvent(thunder); if (thunder.isCancelled()) { return; @@ -76,12 +76,12 @@ index f5ac36fa54f3d3b39de103c95abb9ca3adfe8dda..47266d2b86e7f2022de7ea0c9347b4f5 @Override public void setRaining(boolean raining) { -+ // Paper start ++ // Paper start - Add cause to Weather/ThunderChangeEvents + this.setRaining(raining, org.bukkit.event.weather.WeatherChangeEvent.Cause.UNKNOWN); + } + + public void setRaining(boolean raining, org.bukkit.event.weather.WeatherChangeEvent.Cause cause) { -+ // Paper end ++ // Paper end - Add cause to Weather/ThunderChangeEvents // CraftBukkit start if (this.raining == raining) { return; @@ -90,12 +90,12 @@ index f5ac36fa54f3d3b39de103c95abb9ca3adfe8dda..47266d2b86e7f2022de7ea0c9347b4f5 org.bukkit.World world = Bukkit.getWorld(this.getLevelName()); if (world != null) { - WeatherChangeEvent weather = new WeatherChangeEvent(world, raining); -+ WeatherChangeEvent weather = new WeatherChangeEvent(world, raining, cause); // Paper ++ WeatherChangeEvent weather = new WeatherChangeEvent(world, raining, cause); // Paper - Add cause to Weather/ThunderChangeEvents Bukkit.getServer().getPluginManager().callEvent(weather); if (weather.isCancelled()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 43d3c45cd7a178a4ca30e4c0c7fb1e7e21cd89f1..e88b42727ba0b87ba01933116b6ef456203d9dbb 100644 +index 43d3c45cd7a178a4ca30e4c0c7fb1e7e21cd89f1..c0d02f7d714f7116b34b5a735b5520cf3a5a4587 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1243,7 +1243,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -103,7 +103,7 @@ index 43d3c45cd7a178a4ca30e4c0c7fb1e7e21cd89f1..e88b42727ba0b87ba01933116b6ef456 @Override public void setStorm(boolean hasStorm) { - this.world.levelData.setRaining(hasStorm); -+ this.world.serverLevelData.setRaining(hasStorm, org.bukkit.event.weather.WeatherChangeEvent.Cause.PLUGIN); // Paper ++ this.world.serverLevelData.setRaining(hasStorm, org.bukkit.event.weather.WeatherChangeEvent.Cause.PLUGIN); // Paper - Add cause to Weather/ThunderChangeEvents this.setWeatherDuration(0); // Reset weather duration (legacy behaviour) this.setClearWeatherDuration(0); // Reset clear weather duration (reset "/weather clear" commands) } @@ -112,7 +112,7 @@ index 43d3c45cd7a178a4ca30e4c0c7fb1e7e21cd89f1..e88b42727ba0b87ba01933116b6ef456 @Override public void setThundering(boolean thundering) { - this.world.serverLevelData.setThundering(thundering); -+ this.world.serverLevelData.setThundering(thundering, org.bukkit.event.weather.ThunderChangeEvent.Cause.PLUGIN); // Paper ++ this.world.serverLevelData.setThundering(thundering, org.bukkit.event.weather.ThunderChangeEvent.Cause.PLUGIN); // Paper - Add cause to Weather/ThunderChangeEvents this.setThunderDuration(0); // Reset weather duration (legacy behaviour) this.setClearWeatherDuration(0); // Reset clear weather duration (reset "/weather clear" commands) } diff --git a/patches/server/0595-Limit-item-frame-cursors-on-maps.patch b/patches/server/0595-Limit-item-frame-cursors-on-maps.patch index 64dc46158be5..d25538d723d8 100644 --- a/patches/server/0595-Limit-item-frame-cursors-on-maps.patch +++ b/patches/server/0595-Limit-item-frame-cursors-on-maps.patch @@ -5,17 +5,17 @@ Subject: [PATCH] Limit item frame cursors on maps diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -index 5992f450f01349ce49286c34b8af56737de01a45..e4c4948e076cd64686dfd16ae0568fafc1437140 100644 +index 5992f450f01349ce49286c34b8af56737de01a45..45269115e63cfc3bd7dc740a5694e2cc7c35bcb1 100644 --- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java @@ -302,8 +302,10 @@ public class MapItemSavedData extends SavedData { MapFrame worldmapframe1 = new MapFrame(blockposition, entityitemframe.getDirection().get2DDataValue() * 90, entityitemframe.getId()); -+ if (this.decorations.size() < player.level().paperConfig().maps.itemFrameCursorLimit) { // Paper ++ if (this.decorations.size() < player.level().paperConfig().maps.itemFrameCursorLimit) { // Paper - Limit item frame cursors on maps this.addDecoration(MapDecoration.Type.FRAME, player.level(), "frame-" + entityitemframe.getId(), (double) blockposition.getX(), (double) blockposition.getZ(), (double) (entityitemframe.getDirection().get2DDataValue() * 90), (Component) null); this.frameMarkers.put(worldmapframe1.getId(), worldmapframe1); -+ } // Paper ++ } // Paper - Limit item frame cursors on maps } CompoundTag nbttagcompound = stack.getTag(); @@ -24,7 +24,7 @@ index 5992f450f01349ce49286c34b8af56737de01a45..e4c4948e076cd64686dfd16ae0568faf } - if (!this.isTrackedCountOverLimit(256)) { -+ if (!this.isTrackedCountOverLimit(((Level) world).paperConfig().maps.itemFrameCursorLimit)) { // Paper ++ if (!this.isTrackedCountOverLimit(((Level) world).paperConfig().maps.itemFrameCursorLimit)) { // Paper - Limit item frame cursors on maps this.bannerMarkers.put(mapiconbanner.getId(), mapiconbanner); this.addDecoration(mapiconbanner.getDecoration(), world, mapiconbanner.getId(), d0, d1, 180.0D, mapiconbanner.getName()); return true; diff --git a/patches/server/0596-Add-PlayerKickEvent-causes.patch b/patches/server/0596-Add-PlayerKickEvent-causes.patch index e9ccf585d74c..5943afcd8be0 100644 --- a/patches/server/0596-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0596-Add-PlayerKickEvent-causes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerKickEvent causes diff --git a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java -index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..22ead092ae984d1eaa052fe97981ce3c49b521d8 100644 +index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..ba12919c3f9aec34a9e64993b143ae92be5eb172 100644 --- a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java +++ b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java @@ -35,16 +35,16 @@ public class SignedMessageChain { @@ -33,22 +33,22 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..22ead092ae984d1eaa052fe97981ce3c public static class DecodeException extends ThrowingComponent { private final boolean shouldDisconnect; -+ public final org.bukkit.event.player.PlayerKickEvent.Cause kickCause; // Paper ++ public final org.bukkit.event.player.PlayerKickEvent.Cause kickCause; // Paper - kick event causes public DecodeException(Component message, boolean shouldDisconnect) { -+ // Paper start ++ // Paper start - kick event causes + this(message, shouldDisconnect, org.bukkit.event.player.PlayerKickEvent.Cause.UNKNOWN); + } + public DecodeException(Component message, boolean shouldDisconnect, org.bukkit.event.player.PlayerKickEvent.Cause kickCause) { -+ // Paper end ++ // Paper end - kick event causes super(message); this.shouldDisconnect = shouldDisconnect; -+ this.kickCause = kickCause; // Paper ++ this.kickCause = kickCause; // Paper - kick event causes } public boolean shouldDisconnect() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2acd875f34c367f9b9db85dee5052140c05d0add..26f4516f20336ddfaf868337cab3a05166f01b8d 100644 +index 7bfd8307555a9447d4c546a8945341806041cc32..970dafebf8143ab6de44bfffdeff2475685f99fa 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2236,7 +2236,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop (org.bukkit.entity.LivingEntity) entity.getBukkitEntity()).collect(java.util.stream.Collectors.toCollection(java.util.ArrayList::new)); // CraftBukkit - org.bukkit.craftbukkit.event.CraftEventFactory.handleBellResonateEvent(world, pos, entities).forEach(BellBlockEntity::glow); -+ org.bukkit.craftbukkit.event.CraftEventFactory.handleBellResonateEvent(world, pos, entities).forEach(entity -> glow(entity, pos)); // Paper - pass BlockPos ++ org.bukkit.craftbukkit.event.CraftEventFactory.handleBellResonateEvent(world, pos, entities).forEach(entity -> glow(entity, pos)); // Paper - Add BellRevealRaiderEvent // CraftBukkit end } @@ -22,11 +22,11 @@ index b446d6549922f3dabaaa05793d8ee3eb45566ac3..f07222c8c9c82478d492b0916cd394be } - private static void glow(LivingEntity entity) { -+ // Paper start ++ // Paper start - Add BellRevealRaiderEvent + private static void glow(LivingEntity entity) { glow(entity, null); } + private static void glow(LivingEntity entity, @javax.annotation.Nullable BlockPos pos) { + if (pos != null && !new io.papermc.paper.event.block.BellRevealRaiderEvent(entity.level().getWorld().getBlockAt(io.papermc.paper.util.MCUtil.toLocation(entity.level(), pos)), entity.getBukkitEntity()).callEvent()) return; -+ // Paper end ++ // Paper end - Add BellRevealRaiderEvent entity.addEffect(new MobEffectInstance(MobEffects.GLOWING, 60)); } diff --git a/patches/server/0602-Fix-invulnerable-end-crystals.patch b/patches/server/0602-Fix-invulnerable-end-crystals.patch index 195d6b8a4206..8d9e818ef446 100644 --- a/patches/server/0602-Fix-invulnerable-end-crystals.patch +++ b/patches/server/0602-Fix-invulnerable-end-crystals.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix invulnerable end crystals MC-108513 diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java -index cc3f1532a2108ea915d0e8c840e87bc56ab60a65..ffc5b68c4246a7111845230a75552bb15875a209 100644 +index cc3f1532a2108ea915d0e8c840e87bc56ab60a65..c99ab157e43fc990549fc06f5b6fb1e227014fde 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java @@ -29,6 +29,7 @@ public class EndCrystal extends Entity { @@ -31,7 +31,7 @@ index cc3f1532a2108ea915d0e8c840e87bc56ab60a65..ffc5b68c4246a7111845230a75552bb1 + this.setBeamTarget(null); + } + } -+ // Paper end ++ // Paper end - Fix invulnerable end crystals } } @@ -52,14 +52,14 @@ index cc3f1532a2108ea915d0e8c840e87bc56ab60a65..ffc5b68c4246a7111845230a75552bb1 } diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java -index 4b685e185ebac8553f1f81d1a5a04be8166a6ca4..dbd1e440ced5d23f2f813b12808f9400a49c3f8f 100644 +index 4b685e185ebac8553f1f81d1a5a04be8166a6ca4..3b36caafde83c87c823277e2085ee82ae497b9be 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java @@ -101,6 +101,7 @@ public class SpikeFeature extends Feature { endCrystal.setBeamTarget(config.getCrystalBeamTarget()); endCrystal.setInvulnerable(config.isCrystalInvulnerable()); endCrystal.moveTo((double)spike.getCenterX() + 0.5D, (double)(spike.getHeight() + 1), (double)spike.getCenterZ() + 0.5D, random.nextFloat() * 360.0F, 0.0F); -+ endCrystal.generatedByDragonFight = true; // Paper ++ endCrystal.generatedByDragonFight = true; // Paper - Fix invulnerable end crystals world.addFreshEntity(endCrystal); BlockPos blockPos2 = endCrystal.blockPosition(); this.setBlock(world, blockPos2.below(), Blocks.BEDROCK.defaultBlockState()); diff --git a/patches/server/0603-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0603-Add-ElderGuardianAppearanceEvent.patch index 1e6a1117c1d6..ca41d320e7c8 100644 --- a/patches/server/0603-Add-ElderGuardianAppearanceEvent.patch +++ b/patches/server/0603-Add-ElderGuardianAppearanceEvent.patch @@ -5,36 +5,36 @@ Subject: [PATCH] Add ElderGuardianAppearanceEvent diff --git a/src/main/java/net/minecraft/world/effect/MobEffectUtil.java b/src/main/java/net/minecraft/world/effect/MobEffectUtil.java -index fd803cbdad0e75f43279c5d5049b0152c2d013c3..2902a06b06bedf4fba42ac37a5371b0b353e0e98 100644 +index fd803cbdad0e75f43279c5d5049b0152c2d013c3..fcc60a419c6dade50848d4c1e6e8daf0d3095d70 100644 --- a/src/main/java/net/minecraft/world/effect/MobEffectUtil.java +++ b/src/main/java/net/minecraft/world/effect/MobEffectUtil.java @@ -54,10 +54,23 @@ public final class MobEffectUtil { } public static List addEffectToPlayersAround(ServerLevel worldserver, @Nullable Entity entity, Vec3 vec3d, double d0, MobEffectInstance mobeffect, int i, org.bukkit.event.entity.EntityPotionEffectEvent.Cause cause) { -+ // Paper start ++ // Paper start - Add ElderGuardianAppearanceEvent + return addEffectToPlayersAround(worldserver, entity, vec3d, d0, mobeffect, i, cause, null); + } + + public static List addEffectToPlayersAround(ServerLevel worldserver, @Nullable Entity entity, Vec3 vec3d, double d0, MobEffectInstance mobeffect, int i, org.bukkit.event.entity.EntityPotionEffectEvent.Cause cause, @Nullable java.util.function.Predicate playerPredicate) { -+ // Paper end ++ // Paper end - Add ElderGuardianAppearanceEvent // CraftBukkit end MobEffect mobeffectlist = mobeffect.getEffect(); List list = worldserver.getPlayers((entityplayer) -> { - return entityplayer.gameMode.isSurvival() && (entity == null || !entity.isAlliedTo((Entity) entityplayer)) && vec3d.closerThan(entityplayer.position(), d0) && (!entityplayer.hasEffect(mobeffectlist) || entityplayer.getEffect(mobeffectlist).getAmplifier() < mobeffect.getAmplifier() || entityplayer.getEffect(mobeffectlist).endsWithin(i - 1)); -+ // Paper start ++ // Paper start - Add ElderGuardianAppearanceEvent + boolean condition = entityplayer.gameMode.isSurvival() && (entity == null || !entity.isAlliedTo((Entity) entityplayer)) && vec3d.closerThan(entityplayer.position(), d0) && (!entityplayer.hasEffect(mobeffectlist) || entityplayer.getEffect(mobeffectlist).getAmplifier() < mobeffect.getAmplifier() || entityplayer.getEffect(mobeffectlist).endsWithin(i - 1)); + if (condition) { + return playerPredicate == null || playerPredicate.test(entityplayer); // Only test the player AFTER it is true + } else { + return false; + } -+ // Paper ned ++ // Paper ned - Add ElderGuardianAppearanceEvent }); list.forEach((entityplayer) -> { diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java -index 1dfdb378a2491b0ae64a4152e4cd8b539dfdf65b..efc1d49c5bfea7d1674b8a9de2c8b617657eda0f 100644 +index 1dfdb378a2491b0ae64a4152e4cd8b539dfdf65b..6d4810626980ce46e02042a5660f615c58d0d5fd 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java @@ -70,7 +70,7 @@ public class ElderGuardian extends Guardian { @@ -42,7 +42,7 @@ index 1dfdb378a2491b0ae64a4152e4cd8b539dfdf65b..efc1d49c5bfea7d1674b8a9de2c8b617 if ((this.tickCount + this.getId()) % 1200 == 0) { MobEffectInstance mobeffect = new MobEffectInstance(MobEffects.DIG_SLOWDOWN, 6000, 2); - List list = MobEffectUtil.addEffectToPlayersAround((ServerLevel) this.level(), this, this.position(), 50.0D, mobeffect, 1200, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit -+ List list = MobEffectUtil.addEffectToPlayersAround((ServerLevel) this.level(), this, this.position(), 50.0D, mobeffect, 1200, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK, (player) -> new io.papermc.paper.event.entity.ElderGuardianAppearanceEvent(getBukkitEntity(), player.getBukkitEntity()).callEvent()); // CraftBukkit // Paper ++ List list = MobEffectUtil.addEffectToPlayersAround((ServerLevel) this.level(), this, this.position(), 50.0D, mobeffect, 1200, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK, (player) -> new io.papermc.paper.event.entity.ElderGuardianAppearanceEvent(getBukkitEntity(), player.getBukkitEntity()).callEvent()); // CraftBukkit // Paper - Add ElderGuardianAppearanceEvent list.forEach((entityplayer) -> { entityplayer.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, this.isSilent() ? 0.0F : 1.0F)); diff --git a/patches/server/0605-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0605-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch index ef457d74af70..53a98e7fb81b 100644 --- a/patches/server/0605-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch +++ b/patches/server/0605-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimize Biome Mob Lookups for Mob Spawning Uses an EnumMap as well as a Set paired List for O(1) contains calls. diff --git a/src/main/java/net/minecraft/world/level/biome/MobSpawnSettings.java b/src/main/java/net/minecraft/world/level/biome/MobSpawnSettings.java -index 4f4ef3349f512cc6e1588eb58de5b2558c0bd8b9..9e2f7fc64b284efd6388be35f250642c47e7603b 100644 +index 4f4ef3349f512cc6e1588eb58de5b2558c0bd8b9..b10dfbaef9bde9d94c4971b47d77a1514e476f86 100644 --- a/src/main/java/net/minecraft/world/level/biome/MobSpawnSettings.java +++ b/src/main/java/net/minecraft/world/level/biome/MobSpawnSettings.java @@ -61,11 +61,43 @@ public class MobSpawnSettings { @@ -14,7 +14,7 @@ index 4f4ef3349f512cc6e1588eb58de5b2558c0bd8b9..9e2f7fc64b284efd6388be35f250642c public static class Builder { - private final Map> spawners = Stream.of(MobCategory.values()).collect(ImmutableMap.toImmutableMap((mobCategory) -> { -+ // Paper start - keep track of data in a pair set to give O(1) contains calls - we have to hook removals incase plugins mess with it ++ // Paper start - Perf: keep track of data in a pair set to give O(1) contains calls - we have to hook removals incase plugins mess with it + public static class MobList extends java.util.ArrayList { + java.util.Set biomes = new java.util.HashSet<>(); + @@ -51,7 +51,7 @@ index 4f4ef3349f512cc6e1588eb58de5b2558c0bd8b9..9e2f7fc64b284efd6388be35f250642c - return Lists.newArrayList(); + return new MobList(); // Use MobList instead of ArrayList })); -+ // Paper end ++ // Paper end - Perf: keep track of data in a pair set to give O(1) contains calls private final Map, MobSpawnSettings.MobSpawnCost> mobSpawnCosts = Maps.newLinkedHashMap(); private float creatureGenerationProbability = 0.1F; diff --git a/patches/server/0607-Line-Of-Sight-Changes.patch b/patches/server/0607-Line-Of-Sight-Changes.patch index 7dc4e57a023d..5748754b5c6d 100644 --- a/patches/server/0607-Line-Of-Sight-Changes.patch +++ b/patches/server/0607-Line-Of-Sight-Changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Line Of Sight Changes diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 383c39ac381f9a86693abb7935b5b142b889d7be..ca6e0f27b9d0c5d867909abd89262132bf1aa6bd 100644 +index 383c39ac381f9a86693abb7935b5b142b889d7be..e0524231da219dc4c7857ef7b39d4d018fa96ab2 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3606,7 +3606,8 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -14,7 +14,7 @@ index 383c39ac381f9a86693abb7935b5b142b889d7be..ca6e0f27b9d0c5d867909abd89262132 - return vec3d1.distanceTo(vec3d) > 128.0D ? false : this.level().clipDirect(vec3d, vec3d1, net.minecraft.world.phys.shapes.CollisionContext.of(this)) == HitResult.Type.MISS; // Paper + // Paper - diff on change - used in CraftLivingEntity#hasLineOfSight(Location) and CraftWorld#lineOfSightExists -+ return vec3d1.distanceToSqr(vec3d) > 128.0D * 128.0D ? false : this.level().clipDirect(vec3d, vec3d1, net.minecraft.world.phys.shapes.CollisionContext.of(this)) == HitResult.Type.MISS; // Paper ++ return vec3d1.distanceToSqr(vec3d) > 128.0D * 128.0D ? false : this.level().clipDirect(vec3d, vec3d1, net.minecraft.world.phys.shapes.CollisionContext.of(this)) == HitResult.Type.MISS; // Paper - Perf: Use distance squared } } diff --git a/patches/server/0608-add-per-world-spawn-limits.patch b/patches/server/0608-add-per-world-spawn-limits.patch index c70252598b33..6feaced1d099 100644 --- a/patches/server/0608-add-per-world-spawn-limits.patch +++ b/patches/server/0608-add-per-world-spawn-limits.patch @@ -3,10 +3,9 @@ From: chase Date: Wed, 2 Dec 2020 22:43:39 -0800 Subject: [PATCH] add per world spawn limits -Taken from #2982. Credit to Chasewhip8 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e88b42727ba0b87ba01933116b6ef456203d9dbb..a920936018a2e05ea72d68a83e6debb3807df353 100644 +index c0d02f7d714f7116b34b5a735b5520cf3a5a4587..d6b402d0bae4d16932e059f1da59ac4523d974b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -215,6 +215,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -19,7 +18,7 @@ index e88b42727ba0b87ba01933116b6ef456203d9dbb..a920936018a2e05ea72d68a83e6debb3 + setSpawnLimit(spawnCategory, this.world.paperConfig().entities.spawning.spawnLimits.getInt(CraftSpawnCategory.toNMS(spawnCategory))); + } + } -+ // Paper end ++ // Paper end - per world spawn limits } @Override diff --git a/patches/server/0609-Fix-potions-splash-events.patch b/patches/server/0609-Fix-potions-splash-events.patch index e217ede00222..12a8e49d2609 100644 --- a/patches/server/0609-Fix-potions-splash-events.patch +++ b/patches/server/0609-Fix-potions-splash-events.patch @@ -8,18 +8,18 @@ Fixes SPIGOT-6221: https://hub.spigotmc.org/jira/projects/SPIGOT/issues/SPIGOT-6 Fix splash events cancellation that still show particles/sound diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index b87077c47a0131c5f4ca085b6b32e657043a9e1a..40307233e5bc67d538f580bc514a033c64d1316a 100644 +index b87077c47a0131c5f4ca085b6b32e657043a9e1a..bb116b0c75a311d0dc65c032a7727598890ef942 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java @@ -105,56 +105,77 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie Potion potionregistry = PotionUtils.getPotion(itemstack); List list = PotionUtils.getMobEffects(itemstack); boolean flag = potionregistry == Potions.WATER && list.isEmpty(); -+ boolean showParticles = true; // Paper ++ boolean showParticles = true; // Paper - Fix potions splash events if (flag) { - this.applyWater(); -+ showParticles = this.applyWater(); // Paper ++ showParticles = this.applyWater(); // Paper - Fix potions splash events } else if (true || !list.isEmpty()) { // CraftBukkit - Call event even if no effects to apply if (this.isLingering()) { - this.makeAreaOfEffectCloud(itemstack, potionregistry, hitResult); // CraftBukkit - Pass MovingObjectPosition @@ -30,21 +30,21 @@ index b87077c47a0131c5f4ca085b6b32e657043a9e1a..40307233e5bc67d538f580bc514a033c } } -+ if (showParticles) { // Paper ++ if (showParticles) { // Paper - Fix potions splash events int i = potionregistry.hasInstantEffects() ? 2007 : 2002; this.level().levelEvent(i, this.blockPosition(), PotionUtils.getColor(itemstack)); -+ } // Paper ++ } // Paper - Fix potions splash events this.discard(); } } - private void applyWater() { -+ private static final Predicate APPLY_WATER_GET_ENTITIES_PREDICATE = ThrownPotion.WATER_SENSITIVE_OR_ON_FIRE.or(Axolotl.class::isInstance); // Paper -+ private boolean applyWater() { // Paper ++ private static final Predicate APPLY_WATER_GET_ENTITIES_PREDICATE = ThrownPotion.WATER_SENSITIVE_OR_ON_FIRE.or(Axolotl.class::isInstance); // Paper - Fix potions splash events ++ private boolean applyWater() { // Paper - Fix potions splash events AABB axisalignedbb = this.getBoundingBox().inflate(4.0D, 2.0D, 4.0D); - List list = this.level().getEntitiesOfClass(net.minecraft.world.entity.LivingEntity.class, axisalignedbb, ThrownPotion.WATER_SENSITIVE_OR_ON_FIRE); -+ // Paper start ++ // Paper start - Fix potions splash events + List list = this.level().getEntitiesOfClass(net.minecraft.world.entity.LivingEntity.class, axisalignedbb, ThrownPotion.APPLY_WATER_GET_ENTITIES_PREDICATE); + Map affected = new HashMap<>(); + java.util.Set rehydrate = new java.util.HashSet<>(); @@ -93,14 +93,14 @@ index b87077c47a0131c5f4ca085b6b32e657043a9e1a..40307233e5bc67d538f580bc514a033c + axolotl.rehydrate(); + } + } -+ // Paper end ++ // Paper end - Fix potions splash events } -+ return !event.isCancelled(); // Paper ++ return !event.isCancelled(); // Paper - Fix potions splash events } - private void applySplash(List list, @Nullable Entity entity, HitResult position) { // CraftBukkit - Pass MovingObjectPosition -+ private boolean applySplash(List list, @Nullable Entity entity, HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - return boolean ++ private boolean applySplash(List list, @Nullable Entity entity, HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - Fix potions splash events AABB axisalignedbb = this.getBoundingBox().inflate(4.0D, 2.0D, 4.0D); List list1 = this.level().getEntitiesOfClass(net.minecraft.world.entity.LivingEntity.class, axisalignedbb); Map affected = new HashMap(); // CraftBukkit @@ -116,7 +116,7 @@ index b87077c47a0131c5f4ca085b6b32e657043a9e1a..40307233e5bc67d538f580bc514a033c } } } -+ return !event.isCancelled(); // Paper ++ return !event.isCancelled(); // Paper - Fix potions splash events } @@ -129,12 +129,12 @@ index b87077c47a0131c5f4ca085b6b32e657043a9e1a..40307233e5bc67d538f580bc514a033c entityareaeffectcloud.setPotion(potionregistry); Iterator iterator = PotionUtils.getCustomEffects(itemstack).iterator(); -+ boolean noEffects = potionregistry.getEffects().isEmpty(); // Paper ++ boolean noEffects = potionregistry.getEffects().isEmpty(); // Paper - Fix potions splash events while (iterator.hasNext()) { MobEffectInstance mobeffect = (MobEffectInstance) iterator.next(); entityareaeffectcloud.addEffect(new MobEffectInstance(mobeffect)); -+ noEffects = false; // Paper ++ noEffects = false; // Paper - Fix potions splash events } CompoundTag nbttagcompound = itemstack.getTag(); @@ -149,7 +149,7 @@ index b87077c47a0131c5f4ca085b6b32e657043a9e1a..40307233e5bc67d538f580bc514a033c entityareaeffectcloud.discard(); } // CraftBukkit end -+ return !event.isCancelled(); // Paper ++ return !event.isCancelled(); // Paper - Fix potions splash events } public boolean isLingering() { diff --git a/patches/server/0611-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0611-Fix-PlayerDropItemEvent-using-wrong-item.patch index b41a629e5401..1d7d9b224fae 100644 --- a/patches/server/0611-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0611-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix PlayerDropItemEvent using wrong item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8766c1a6485b371c1d95804d7ad364fd5ba826de..76eb668311d2aa2659adf4f7857a670d81387830 100644 +index 8766c1a6485b371c1d95804d7ad364fd5ba826de..b5ee665fecb3e9e96cb937c92cef8579f9cbeb3d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2391,7 +2391,7 @@ public class ServerPlayer extends Player { @@ -13,7 +13,7 @@ index 8766c1a6485b371c1d95804d7ad364fd5ba826de..76eb668311d2aa2659adf4f7857a670d if (retainOwnership) { if (!itemstack1.isEmpty()) { - this.awardStat(Stats.ITEM_DROPPED.get(itemstack1.getItem()), stack.getCount()); -+ this.awardStat(Stats.ITEM_DROPPED.get(itemstack1.getItem()), itemstack1.getCount()); // Paper ++ this.awardStat(Stats.ITEM_DROPPED.get(itemstack1.getItem()), itemstack1.getCount()); // Paper - Fix PlayerDropItemEvent using wrong item } this.awardStat(Stats.DROP); diff --git a/patches/server/0615-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0615-Use-getChunkIfLoadedImmediately-in-places.patch index b4bfba528c56..25da2a762018 100644 --- a/patches/server/0615-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0615-Use-getChunkIfLoadedImmediately-in-places.patch @@ -8,7 +8,7 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk load in that case). diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8b2f72be4304ebab84fc46e6c4c0984abd8e8905..dbfd4a642e862f46a8b4fd1f3fc52c13ecf74284 100644 +index b858ee2fc8c03c52a6b6d703b1f770b3c496b2a8..45d5e5bd1ed37c4a3a658b27dc8571344580b65b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -229,7 +229,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -16,30 +16,30 @@ index 8b2f72be4304ebab84fc46e6c4c0984abd8e8905..dbfd4a642e862f46a8b4fd1f3fc52c13 @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI - return this.chunkSource.getChunk(x, z, false); -+ return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper ++ return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately } @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 761d01c993b60a11c749e172c3ee3067c055b582..35ca44c88497e0b07f43ba7bf092360365b1c53a 100644 +index 761d01c993b60a11c749e172c3ee3067c055b582..2069cad866a3fd2ed5512fa8fc6dc2ef8bc9758e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -204,6 +204,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return (CraftServer) Bukkit.getServer(); } -+ // Paper start ++ // Paper start - Use getChunkIfLoadedImmediately + @Override + public boolean hasChunk(int chunkX, int chunkZ) { + return this.getChunkIfLoaded(chunkX, chunkZ) != null; + } -+ // Paper end ++ // Paper end - Use getChunkIfLoadedImmediately + public abstract ResourceKey getTypeKey(); protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor diff --git a/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java b/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java -index 0d5ae91a9b43df7b412968ab5faf5498c09169f9..744160405680babbb83c99abcbe2dc89bf312398 100644 +index 0d5ae91a9b43df7b412968ab5faf5498c09169f9..37ae0f928440af5b2fdfe68ad6c9c54e8c95c82c 100644 --- a/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java +++ b/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java @@ -55,7 +55,7 @@ public class GameEventDispatcher { @@ -47,7 +47,7 @@ index 0d5ae91a9b43df7b412968ab5faf5498c09169f9..744160405680babbb83c99abcbe2dc89 for (int l1 = j; l1 <= i1; ++l1) { for (int i2 = l; i2 <= k1; ++i2) { - LevelChunk chunk = this.level.getChunkSource().getChunkNow(l1, i2); -+ LevelChunk chunk = (LevelChunk) this.level.getChunkIfLoadedImmediately(l1, i2); // Paper ++ LevelChunk chunk = (LevelChunk) this.level.getChunkIfLoadedImmediately(l1, i2); // Paper - Use getChunkIfLoadedImmediately if (chunk != null) { for (int j2 = k; j2 <= j1; ++j2) { diff --git a/patches/server/0616-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0616-Fix-commands-from-signs-not-firing-command-events.patch index 232fdb5f11bd..d2492dc891f7 100644 --- a/patches/server/0616-Fix-commands-from-signs-not-firing-command-events.patch +++ b/patches/server/0616-Fix-commands-from-signs-not-firing-command-events.patch @@ -58,7 +58,7 @@ index 0000000000000000000000000000000000000000..01a2bc1feec808790bb93618ce46adb9 + } +} diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index 1a54db9f8b2fb3071e79ec26c49242b528b8cd9e..da3d947c58bdb79372e64b2cea6e49b99a4a9ad8 100644 +index 1a54db9f8b2fb3071e79ec26c49242b528b8cd9e..393e6e5fb2c901cdf369cfe5bcde454dee2b1b0d 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java @@ -273,7 +273,17 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C @@ -66,7 +66,7 @@ index 1a54db9f8b2fb3071e79ec26c49242b528b8cd9e..da3d947c58bdb79372e64b2cea6e49b9 if (chatclickable != null && chatclickable.getAction() == ClickEvent.Action.RUN_COMMAND) { - player.getServer().getCommands().performPrefixedCommand(this.createCommandSourceStack(player, world, pos), chatclickable.getValue()); -+ // Paper start ++ // Paper start - Fix commands from signs not firing command events + String command = chatclickable.getValue().startsWith("/") ? chatclickable.getValue() : "/" + chatclickable.getValue(); + if (org.spigotmc.SpigotConfig.logCommands) { + LOGGER.info("{} issued server command: {}", player.getScoreboardName(), command); @@ -76,7 +76,7 @@ index 1a54db9f8b2fb3071e79ec26c49242b528b8cd9e..da3d947c58bdb79372e64b2cea6e49b9 + return false; + } + player.getServer().getCommands().performPrefixedCommand(this.createCommandSourceStack(((org.bukkit.craftbukkit.entity.CraftPlayer) event.getPlayer()).getHandle(), world, pos), event.getMessage()); -+ // Paper end ++ // Paper end - Fix commands from signs not firing command events flag1 = true; } } @@ -84,7 +84,7 @@ index 1a54db9f8b2fb3071e79ec26c49242b528b8cd9e..da3d947c58bdb79372e64b2cea6e49b9 String s = player == null ? "Sign" : player.getName().getString(); Object object = player == null ? Component.literal("Sign") : player.getDisplayName(); -+ // Paper start - send messages back to the player ++ // Paper start - Fix commands from signs not firing command events + CommandSource commandSource = this.level.paperConfig().misc.showSignClickCommandFailureMsgsToPlayer ? new io.papermc.paper.commands.DelegatingCommandSource(this) { + @Override + public void sendSystemMessage(Component message) { @@ -98,15 +98,15 @@ index 1a54db9f8b2fb3071e79ec26c49242b528b8cd9e..da3d947c58bdb79372e64b2cea6e49b9 + return true; + } + } : this; -+ // Paper end ++ // Paper end - Fix commands from signs not firing command events // CraftBukkit - this - return new CommandSourceStack(this, Vec3.atCenterOf(pos), Vec2.ZERO, (ServerLevel) world, 2, s, (Component) object, world.getServer(), player); -+ return new CommandSourceStack(commandSource, Vec3.atCenterOf(pos), Vec2.ZERO, (ServerLevel) world, 2, s, (Component) object, world.getServer(), player); // Paper ++ return new CommandSourceStack(commandSource, Vec3.atCenterOf(pos), Vec2.ZERO, (ServerLevel) world, 2, s, (Component) object, world.getServer(), player); // Paper - Fix commands from signs not firing command events } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/command/BukkitCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/BukkitCommandWrapper.java -index d113e54a30db16e2ad955170df6030d15de530d6..26f3a2799e687731d883e7733591f6934479e88d 100644 +index d113e54a30db16e2ad955170df6030d15de530d6..21b6f90cf5bd7087d1a0f512289d971f2c3e1afa 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/BukkitCommandWrapper.java +++ b/src/main/java/org/bukkit/craftbukkit/command/BukkitCommandWrapper.java @@ -61,7 +61,7 @@ public class BukkitCommandWrapper implements com.mojang.brigadier.Command Date: Fri, 12 Mar 2021 19:22:21 -0800 -Subject: [PATCH] Adds PlayerArmSwingEvent +Subject: [PATCH] Add PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index fe969ecdca0e93319449f2fe3c3f41b4e17b385e..da21fdec10a10e4dcec3b0cadb72fa82ef56e4b4 100644 +index 0f0edc347beb179d96ed81e389a71aecd1e0e367..a7984c2454e40137b535c4a14034975339d66407 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2333,7 +2333,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -13,7 +13,7 @@ index fe969ecdca0e93319449f2fe3c3f41b4e17b385e..da21fdec10a10e4dcec3b0cadb72fa82 // Arm swing animation - PlayerAnimationEvent event = new PlayerAnimationEvent(this.getCraftPlayer(), (packet.getHand() == InteractionHand.MAIN_HAND) ? PlayerAnimationType.ARM_SWING : PlayerAnimationType.OFF_ARM_SWING); -+ io.papermc.paper.event.player.PlayerArmSwingEvent event = new io.papermc.paper.event.player.PlayerArmSwingEvent(this.getCraftPlayer(), packet.getHand() == InteractionHand.MAIN_HAND ? org.bukkit.inventory.EquipmentSlot.HAND : org.bukkit.inventory.EquipmentSlot.OFF_HAND); // Paper ++ io.papermc.paper.event.player.PlayerArmSwingEvent event = new io.papermc.paper.event.player.PlayerArmSwingEvent(this.getCraftPlayer(), packet.getHand() == InteractionHand.MAIN_HAND ? org.bukkit.inventory.EquipmentSlot.HAND : org.bukkit.inventory.EquipmentSlot.OFF_HAND); // Paper - Add PlayerArmSwingEvent this.cserver.getPluginManager().callEvent(event); if (event.isCancelled()) return; diff --git a/patches/server/0618-Fixes-kick-event-leave-message-not-being-sent.patch b/patches/server/0618-Fix-kick-event-leave-message-not-being-sent.patch similarity index 86% rename from patches/server/0618-Fixes-kick-event-leave-message-not-being-sent.patch rename to patches/server/0618-Fix-kick-event-leave-message-not-being-sent.patch index 630accdbb974..d75e0723f7b3 100644 --- a/patches/server/0618-Fixes-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0618-Fix-kick-event-leave-message-not-being-sent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Wed, 7 Jul 2021 16:19:41 -0700 -Subject: [PATCH] Fixes kick event leave message not being sent +Subject: [PATCH] Fix kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 76eb668311d2aa2659adf4f7857a670d81387830..ae9acf496b866309d336ebd480a0b99aa03694df 100644 +index b5ee665fecb3e9e96cb937c92cef8579f9cbeb3d..4d1978b43a0b95a5fbdcd87a215d63163ec459b4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -273,7 +273,6 @@ public class ServerPlayer extends Player { @@ -17,18 +17,18 @@ index 76eb668311d2aa2659adf4f7857a670d81387830..ae9acf496b866309d336ebd480a0b99a public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 70458ff8c9bf6f3263868b0f5570840fe3d89ed2..d28d0ef6105ddeb562ddf31ae9088739856941fc 100644 +index 70458ff8c9bf6f3263868b0f5570840fe3d89ed2..134a84841a1e05b212794c00477f20eb30e53ec5 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -77,6 +77,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @Override public void onDisconnect(Component reason) { -+ // Paper start ++ // Paper start - Fix kick event leave message not being sent + this.onDisconnect(reason, null); + } + public void onDisconnect(Component reason, @Nullable net.kyori.adventure.text.Component quitMessage) { -+ // Paper end ++ // Paper end - Fix kick event leave message not being sent if (this.isSingleplayerOwner()) { ServerCommonPacketListenerImpl.LOGGER.info("Stopping singleplayer server as player logged out"); this.server.halt(false); @@ -50,19 +50,19 @@ index 70458ff8c9bf6f3263868b0f5570840fe3d89ed2..d28d0ef6105ddeb562ddf31ae9088739 MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index da21fdec10a10e4dcec3b0cadb72fa82ef56e4b4..8ed347ad9e758a3d5df7110ea0b098a207f61094 100644 +index a7984c2454e40137b535c4a14034975339d66407..acde997a61660c1afd4d2a265de553c45bf8a11f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1887,6 +1887,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void onDisconnect(Component reason) { -+ // Paper start ++ // Paper start - Fix kick event leave message not being sent + this.onDisconnect(reason, null); + } + @Override + public void onDisconnect(Component reason, @Nullable net.kyori.adventure.text.Component quitMessage) { -+ // Paper end ++ // Paper end - Fix kick event leave message not being sent // CraftBukkit start - Rarely it would send a disconnect line twice if (this.processedDisconnect) { return; @@ -72,17 +72,17 @@ index da21fdec10a10e4dcec3b0cadb72fa82ef56e4b4..8ed347ad9e758a3d5df7110ea0b098a2 ServerGamePacketListenerImpl.LOGGER.info("{} lost connection: {}", this.player.getName().getString(), reason.getString()); - this.removePlayerFromWorld(); - super.onDisconnect(reason); -+ this.removePlayerFromWorld(quitMessage); // Paper -+ super.onDisconnect(reason, quitMessage); // Paper ++ this.removePlayerFromWorld(quitMessage); // Paper - Fix kick event leave message not being sent ++ super.onDisconnect(reason, quitMessage); // Paper - Fix kick event leave message not being sent } -+ // Paper start ++ // Paper start - Fix kick event leave message not being sent private void removePlayerFromWorld() { + this.removePlayerFromWorld(null); + } + + private void removePlayerFromWorld(@Nullable net.kyori.adventure.text.Component quitMessage) { -+ // Paper end ++ // Paper end - Fix kick event leave message not being sent this.chatMessageChain.close(); // CraftBukkit start - Replace vanilla quit message handling with our own. /* @@ -96,18 +96,18 @@ index da21fdec10a10e4dcec3b0cadb72fa82ef56e4b4..8ed347ad9e758a3d5df7110ea0b098a2 this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); // 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 ff387a1b9ef7165dc755daf672df5d83315b6b7c..29ad37a8d449b5addfd48ef46dde9835f34a057a 100644 +index ff387a1b9ef7165dc755daf672df5d83315b6b7c..75b81f0852241a8edc931e514f06d46583b6ac43 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -570,6 +570,11 @@ public abstract class PlayerList { } public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer) { // CraftBukkit - return string // Paper - return Component -+ // Paper start ++ // Paper start - Fix kick event leave message not being sent + return this.remove(entityplayer, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName()))); + } + public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { -+ // Paper end ++ // Paper end - Fix kick event leave message not being sent ServerLevel worldserver = entityplayer.serverLevel(); entityplayer.awardStat(Stats.LEAVE_GAME); diff --git a/patches/server/0619-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0619-Add-config-for-mobs-immune-to-default-effects.patch index cf7f8ac4c4be..a96216dd1449 100644 --- a/patches/server/0619-Add-config-for-mobs-immune-to-default-effects.patch +++ b/patches/server/0619-Add-config-for-mobs-immune-to-default-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config for mobs immune to default effects diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ca6e0f27b9d0c5d867909abd89262132bf1aa6bd..0e004d32250fea991c66caead50f2f64dbe0bbf7 100644 +index e0524231da219dc4c7857ef7b39d4d018fa96ab2..6518d7972f7902b3f7b65d7e5f6629491b531f22 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1164,7 +1164,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -13,12 +13,12 @@ index ca6e0f27b9d0c5d867909abd89262132bf1aa6bd..0e004d32250fea991c66caead50f2f64 MobEffect mobeffectlist = effect.getEffect(); - if (mobeffectlist == MobEffects.REGENERATION || mobeffectlist == MobEffects.POISON) { -+ if ((mobeffectlist == MobEffects.REGENERATION || mobeffectlist == MobEffects.POISON) && this.level().paperConfig().entities.mobEffects.undeadImmuneToCertainEffects) { // Paper ++ if ((mobeffectlist == MobEffects.REGENERATION || mobeffectlist == MobEffects.POISON) && this.level().paperConfig().entities.mobEffects.undeadImmuneToCertainEffects) { // Paper - Add config for mobs immune to default effects return false; } } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 8241dbf7591b2f56b25cdc3ce9009c7133d2e4ef..2beece01e1b2acc69eeb92810ce14db01a311f23 100644 +index 8241dbf7591b2f56b25cdc3ce9009c7133d2e4ef..0a2c2b847dc516abf31870116056dbdbb22f31d9 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -606,7 +606,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -26,12 +26,12 @@ index 8241dbf7591b2f56b25cdc3ce9009c7133d2e4ef..2beece01e1b2acc69eeb92810ce14db0 @Override public boolean canBeAffected(MobEffectInstance effect) { - return effect.getEffect() == MobEffects.WITHER ? false : super.canBeAffected(effect); -+ return effect.getEffect() == MobEffects.WITHER && this.level().paperConfig().entities.mobEffects.immuneToWitherEffect.wither ? false : super.canBeAffected(effect); // Paper ++ return effect.getEffect() == MobEffects.WITHER && this.level().paperConfig().entities.mobEffects.immuneToWitherEffect.wither ? false : super.canBeAffected(effect); // Paper - Add config for mobs immune to default effects } private class WitherDoNothingGoal extends Goal { diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index 6241baccd3fdee59175f616cdf69d3873074f855..9e5d68fe86d17118df3d6a1c36b296f32b4d7fc1 100644 +index 6241baccd3fdee59175f616cdf69d3873074f855..4d5cfaa58bdf4e6cb975134004d14c591f6e85fa 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -135,7 +135,7 @@ public class Spider extends Monster { @@ -39,12 +39,12 @@ index 6241baccd3fdee59175f616cdf69d3873074f855..9e5d68fe86d17118df3d6a1c36b296f3 @Override public boolean canBeAffected(MobEffectInstance effect) { - return effect.getEffect() == MobEffects.POISON ? false : super.canBeAffected(effect); -+ return effect.getEffect() == MobEffects.POISON && this.level().paperConfig().entities.mobEffects.spidersImmuneToPoisonEffect ? false : super.canBeAffected(effect); // Paper ++ return effect.getEffect() == MobEffects.POISON && this.level().paperConfig().entities.mobEffects.spidersImmuneToPoisonEffect ? false : super.canBeAffected(effect); // Paper - Add config for mobs immune to default effects } public boolean isClimbing() { diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java -index 62943d43b701d9ae6d955003f4e7658f76d5bdb3..3dcd43279ce1295b37c3504ecbdaac5275df2b80 100644 +index 62943d43b701d9ae6d955003f4e7658f76d5bdb3..20a65c11ededcd7170704b70118da6200151fbab 100644 --- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java @@ -128,6 +128,6 @@ public class WitherSkeleton extends AbstractSkeleton { @@ -52,6 +52,6 @@ index 62943d43b701d9ae6d955003f4e7658f76d5bdb3..3dcd43279ce1295b37c3504ecbdaac52 @Override public boolean canBeAffected(MobEffectInstance effect) { - return effect.getEffect() == MobEffects.WITHER ? false : super.canBeAffected(effect); -+ return effect.getEffect() == MobEffects.WITHER && this.level().paperConfig().entities.mobEffects.immuneToWitherEffect.witherSkeleton ? false : super.canBeAffected(effect); // Paper ++ return effect.getEffect() == MobEffects.WITHER && this.level().paperConfig().entities.mobEffects.immuneToWitherEffect.witherSkeleton ? false : super.canBeAffected(effect); // Paper - Add config for mobs immune to default effects } } diff --git a/patches/server/0621-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0621-Rate-options-and-timings-for-sensors-and-behaviors.patch index 5ef4de39f3b9..b90b81a68f4a 100644 --- a/patches/server/0621-Rate-options-and-timings-for-sensors-and-behaviors.patch +++ b/patches/server/0621-Rate-options-and-timings-for-sensors-and-behaviors.patch @@ -28,7 +28,7 @@ index 4bd813161a5d76a83cdbd0a9209b9ea9e60ffe1b..e2764186bd6b838ed5cd86c15597a08d * Get a named timer for the specified tile entity type to track type specific timings. * @param entity diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java -index 4ea437253539e3ee533ca9da77a337cbf4d1e807..57ef7fbba3028c28231abf7b7ae78aa019323536 100644 +index 4ea437253539e3ee533ca9da77a337cbf4d1e807..1e71cde7cb7654f1c21ae5e27e2fad7b58f593eb 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/Behavior.java @@ -13,6 +13,10 @@ public abstract class Behavior implements BehaviorContro @@ -38,7 +38,7 @@ index 4ea437253539e3ee533ca9da77a337cbf4d1e807..57ef7fbba3028c28231abf7b7ae78aa0 + // Paper start - configurable behavior tick rate and timings + private final String configKey; + private final co.aikar.timings.Timing timing; -+ // Paper end ++ // Paper end - configurable behavior tick rate and timings public Behavior(Map, MemoryStatus> requiredMemoryState) { this(requiredMemoryState, 60); @@ -54,7 +54,7 @@ index 4ea437253539e3ee533ca9da77a337cbf4d1e807..57ef7fbba3028c28231abf7b7ae78aa0 + } + this.configKey = key.toLowerCase(java.util.Locale.ROOT); + this.timing = co.aikar.timings.MinecraftTimings.getBehaviorTimings(configKey); -+ // Paper end ++ // Paper end - configurable behavior tick rate and timings } @Override @@ -62,12 +62,12 @@ index 4ea437253539e3ee533ca9da77a337cbf4d1e807..57ef7fbba3028c28231abf7b7ae78aa0 @Override public final boolean tryStart(ServerLevel world, E entity, long time) { -+ // Paper start - behavior tick rate ++ // Paper start - configurable behavior tick rate and timings + int tickRate = java.util.Objects.requireNonNullElse(world.paperConfig().tickRates.behavior.get(entity.getType(), this.configKey), -1); + if (tickRate > -1 && time < this.endTimestamp + tickRate) { + return false; + } -+ // Paper end ++ // Paper end - configurable behavior tick rate and timings if (this.hasRequiredMemories(entity) && this.checkExtraStartConditions(world, entity)) { this.status = Behavior.Status.RUNNING; int i = this.minDuration + world.getRandom().nextInt(this.maxDuration + 1 - this.minDuration); diff --git a/patches/server/0622-Add-a-bunch-of-missing-forceDrop-toggles.patch b/patches/server/0622-Add-missing-forceDrop-toggles.patch similarity index 70% rename from patches/server/0622-Add-a-bunch-of-missing-forceDrop-toggles.patch rename to patches/server/0622-Add-missing-forceDrop-toggles.patch index 4a998000b28c..4435a4ef01fa 100644 --- a/patches/server/0622-Add-a-bunch-of-missing-forceDrop-toggles.patch +++ b/patches/server/0622-Add-missing-forceDrop-toggles.patch @@ -1,34 +1,34 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Tue, 20 Jul 2021 21:25:35 -0700 -Subject: [PATCH] Add a bunch of missing forceDrop toggles +Subject: [PATCH] Add missing forceDrop toggles diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java b/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java -index 012586360a48369dad243dbb8892579a1dbcca90..b4f0e80c507157cb0a807070c3375c2d305b8c40 100644 +index 012586360a48369dad243dbb8892579a1dbcca90..edeb1899996e53d276d7481e8eddee65249a07d3 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/WorkAtComposter.java @@ -87,7 +87,9 @@ public class WorkAtComposter extends WorkAtPoi { simpleContainer.removeItemType(Items.WHEAT, m); ItemStack itemStack = simpleContainer.addItem(new ItemStack(Items.BREAD, l)); if (!itemStack.isEmpty()) { -+ entity.forceDrops = true; // Paper ++ entity.forceDrops = true; // Paper - Add missing forceDrop toggles entity.spawnAtLocation(itemStack, 0.5F); -+ entity.forceDrops = false; // Paper ++ entity.forceDrops = false; // Paper - Add missing forceDrop toggles } } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 27e1ed14f2ae4f7922c7c3bc1ac21156bafcb0ba..130761afcaa6723e0a9d9a518f1b526c344484b4 100644 +index 27e1ed14f2ae4f7922c7c3bc1ac21156bafcb0ba..eb61d539fcf15dfc51b3ea52c232a0c7ef4f1ca9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -534,7 +534,9 @@ public class Panda extends Animal { } if (!this.level().isClientSide() && this.random.nextInt(700) == 0 && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { -+ this.forceDrops = true; // Paper ++ this.forceDrops = true; // Paper - Add missing forceDrop toggles this.spawnAtLocation((ItemLike) Items.SLIME_BALL); -+ this.forceDrops = false; // Paper ++ this.forceDrops = false; // Paper - Add missing forceDrop toggles } } @@ -36,9 +36,9 @@ index 27e1ed14f2ae4f7922c7c3bc1ac21156bafcb0ba..130761afcaa6723e0a9d9a518f1b526c ItemStack itemstack1 = this.getItemBySlot(EquipmentSlot.MAINHAND); if (!itemstack1.isEmpty() && !player.getAbilities().instabuild) { -+ this.forceDrops = true; // Paper ++ this.forceDrops = true; // Paper - Add missing forceDrop toggles this.spawnAtLocation(itemstack1); -+ this.forceDrops = false; // Paper ++ this.forceDrops = false; // Paper - Add missing forceDrop toggles } this.setItemSlot(EquipmentSlot.MAINHAND, new ItemStack(itemstack.getItem(), 1)); @@ -46,37 +46,37 @@ index 27e1ed14f2ae4f7922c7c3bc1ac21156bafcb0ba..130761afcaa6723e0a9d9a518f1b526c ItemStack itemstack = Panda.this.getItemBySlot(EquipmentSlot.MAINHAND); if (!itemstack.isEmpty()) { -+ Panda.this.forceDrops = true; // Paper ++ Panda.this.forceDrops = true; // Paper - Add missing forceDrop toggles Panda.this.spawnAtLocation(itemstack); -+ Panda.this.forceDrops = false; // Paper ++ Panda.this.forceDrops = false; // Paper - Add missing forceDrop toggles Panda.this.setItemSlot(EquipmentSlot.MAINHAND, ItemStack.EMPTY); int i = Panda.this.isLazy() ? Panda.this.random.nextInt(50) + 10 : Panda.this.random.nextInt(150) + 10; diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 8231b48a9e88adb2a1ca3441ee81e3d653c9ae78..1c42425b9211bea7cb189e967e566ad80fd278c2 100644 +index 8231b48a9e88adb2a1ca3441ee81e3d653c9ae78..ea0902b4ba68a89b1f51281b10c1dfd1bfb42833 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -317,7 +317,9 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @Override protected void finishConversion(ServerLevel world) { PiglinAi.cancelAdmiring(this); -+ this.forceDrops = true; // Paper ++ this.forceDrops = true; // Paper - Add missing forceDrop toggles this.inventory.removeAllItems().forEach(this::spawnAtLocation); -+ this.forceDrops = false; // Paper ++ this.forceDrops = false; // Paper - Add missing forceDrop toggles super.finishConversion(world); } diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java -index a780b22553a65814c3d8bc21ad68b8bbdbaa3475..86bb0ac321da9a93065dfe40f33dc8417f092269 100644 +index a780b22553a65814c3d8bc21ad68b8bbdbaa3475..e00a1e6031b6de0f6900e004c9e9c97b0d84f8d3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java @@ -270,7 +270,9 @@ public class PiglinAi { private static void holdInOffhand(Piglin piglin, ItemStack stack) { if (PiglinAi.isHoldingItemInOffHand(piglin)) { -+ piglin.forceDrops = true; // Paper ++ piglin.forceDrops = true; // Paper - Add missing forceDrop toggles piglin.spawnAtLocation(piglin.getItemInHand(InteractionHand.OFF_HAND)); -+ piglin.forceDrops = false; // Paper ++ piglin.forceDrops = false; // Paper - Add missing forceDrop toggles } piglin.holdInOffHand(stack); @@ -84,23 +84,23 @@ index a780b22553a65814c3d8bc21ad68b8bbdbaa3475..86bb0ac321da9a93065dfe40f33dc841 protected static void cancelAdmiring(Piglin piglin) { if (PiglinAi.isAdmiringItem(piglin) && !piglin.getOffhandItem().isEmpty()) { -+ piglin.forceDrops = true; // Paper ++ piglin.forceDrops = true; // Paper - Add missing forceDrop toggles piglin.spawnAtLocation(piglin.getOffhandItem()); -+ piglin.forceDrops = false; // Paper ++ piglin.forceDrops = false; // Paper - Add missing forceDrop toggles piglin.setItemInHand(InteractionHand.OFF_HAND, ItemStack.EMPTY); } diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java -index 49e07b33fccfe339712e5d1bd72e6c0edbd2e922..5538f7a9024d8708b70de836aa78a4015656a828 100644 +index 49e07b33fccfe339712e5d1bd72e6c0edbd2e922..798a774c19361bfaf8583a602192e9e547fa85e8 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raider.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java @@ -250,7 +250,9 @@ public abstract class Raider extends PatrollingMonster { double d0 = (double) this.getEquipmentDropChance(enumitemslot); if (!itemstack1.isEmpty() && (double) Math.max(this.random.nextFloat() - 0.1F, 0.0F) < d0) { -+ this.forceDrops = true; // Paper ++ this.forceDrops = true; // Paper - Add missing forceDrop toggles this.spawnAtLocation(itemstack1); -+ this.forceDrops = false; // Paper ++ this.forceDrops = false; // Paper - Add missing forceDrop toggles } this.onItemPickup(item); diff --git a/patches/server/0627-Improve-boat-collision-performance.patch b/patches/server/0627-Improve-boat-collision-performance.patch index 7ea9341f298a..42d74007a732 100644 --- a/patches/server/0627-Improve-boat-collision-performance.patch +++ b/patches/server/0627-Improve-boat-collision-performance.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Improve boat collision performance diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 8188febd6f1039a31619b42af23df18afd2e985c..e67a2aa92f9c9bb5a4ba9fc869aa738a43cd8595 100644 +index 90f5e7d36719dc9b464dd6ba0335da035bab29d3..006a7876a0c8e1180dada6694992f596948be53b 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -121,6 +121,7 @@ public class Util { }).findFirst().orElseThrow(() -> { return new IllegalStateException("No jar file system provider found"); }); -+ public static final double COLLISION_EPSILON = 1.0E-7; // Paper ++ public static final double COLLISION_EPSILON = 1.0E-7; // Paper - Improve boat collision performance private static Consumer thePauser = (message) -> { }; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0e004d32250fea991c66caead50f2f64dbe0bbf7..b137ce3be71fa92cb196f5725dd7cfc71f93fcf7 100644 +index 6518d7972f7902b3f7b65d7e5f6629491b531f22..394af8382455d2a039534b87142679f52dc8f2a6 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1413,7 +1413,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -25,7 +25,7 @@ index 0e004d32250fea991c66caead50f2f64dbe0bbf7..b137ce3be71fa92cb196f5725dd7cfc7 Entity entity = source.getDirectEntity(); - if (entity instanceof LivingEntity) { -+ if (entity instanceof LivingEntity && entity.distanceToSqr(this) <= (200.0D * 200.0D)) { // Paper ++ if (entity instanceof LivingEntity && entity.distanceToSqr(this) <= (200.0D * 200.0D)) { // Paper - Improve boat collision performance LivingEntity entityliving = (LivingEntity) entity; this.blockUsingShield(entityliving); @@ -34,13 +34,13 @@ index 0e004d32250fea991c66caead50f2f64dbe0bbf7..b137ce3be71fa92cb196f5725dd7cfc7 if (entity1 != null && !source.is(DamageTypeTags.NO_KNOCKBACK)) { - double d0 = entity1.getX() - this.getX(); -+ final boolean far = entity1.distanceToSqr(this) > (200.0 * 200.0); // Paper -+ double d0 = far ? (Math.random() - Math.random()) : entity1.getX() - this.getX(); // Paper ++ final boolean far = entity1.distanceToSqr(this) > (200.0 * 200.0); // Paper - Improve boat collision performance ++ double d0 = far ? (Math.random() - Math.random()) : entity1.getX() - this.getX(); // Paper - Improve boat collision performance double d1; - for (d1 = entity1.getZ() - this.getZ(); d0 * d0 + d1 * d1 < 1.0E-4D; d1 = (Math.random() - Math.random()) * 0.01D) { -+ for (d1 = far ? Math.random() - Math.random() : entity1.getZ() - this.getZ(); d0 * d0 + d1 * d1 < 1.0E-4D; d1 = (Math.random() - Math.random()) * 0.01D) { // Paper ++ for (d1 = far ? Math.random() - Math.random() : entity1.getZ() - this.getZ(); d0 * d0 + d1 * d1 < 1.0E-4D; d1 = (Math.random() - Math.random()) * 0.01D) { // Paper - Improve boat collision performance d0 = (Math.random() - Math.random()) * 0.01D; } @@ -49,12 +49,12 @@ index 0e004d32250fea991c66caead50f2f64dbe0bbf7..b137ce3be71fa92cb196f5725dd7cfc7 Entity entity = damagesource.getDirectEntity(); - if (entity instanceof LivingEntity) { -+ if (entity instanceof LivingEntity && entity.distanceToSqr(this) <= (200.0D * 200.0D)) { // Paper ++ if (entity instanceof LivingEntity && entity.distanceToSqr(this) <= (200.0D * 200.0D)) { // Paper - Improve boat collision performance this.blockUsingShield((LivingEntity) entity); } } diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -index 8b0efc4d78a04effddae0799b7ee5759ed5c720f..c041c0b81be41cfd128c2f5ba56a5329d50b2efc 100644 +index 8b0efc4d78a04effddae0799b7ee5759ed5c720f..dfd53ca465c9d4864020c14a49f4e74b717df5d6 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java @@ -689,8 +689,8 @@ public class Boat extends VehicleEntity implements VariantHolder { @@ -63,8 +63,8 @@ index 8b0efc4d78a04effddae0799b7ee5759ed5c720f..c041c0b81be41cfd128c2f5ba56a5329 this.waterLevel = this.getY(1.0D); - this.setPos(this.getX(), (double) (this.getWaterLevelAbove() - this.getBbHeight()) + 0.101D, this.getZ()); - this.setDeltaMovement(this.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D)); -+ this.move(MoverType.SELF, new Vec3(0.0, ((double) (this.getWaterLevelAbove() - this.getBbHeight()) + 0.101D) - this.getY(), 0.0)); // Paper -+ this.setDeltaMovement(this.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D)); // Paper ++ this.move(MoverType.SELF, new Vec3(0.0, ((double) (this.getWaterLevelAbove() - this.getBbHeight()) + 0.101D) - this.getY(), 0.0)); // Paper - Improve boat collision performance ++ this.setDeltaMovement(this.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D)); // Paper - Improve boat collision performance this.lastYd = 0.0D; this.status = Boat.Status.IN_WATER; } else { diff --git a/patches/server/0628-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0628-Prevent-AFK-kick-while-watching-end-credits.patch index 08e7d79e1e9d..c65dc42ee205 100644 --- a/patches/server/0628-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0628-Prevent-AFK-kick-while-watching-end-credits.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Noah van der Aa Date: Sat, 24 Jul 2021 16:54:11 +0200 -Subject: [PATCH] Prevent AFK kick while watching end credits. +Subject: [PATCH] Prevent AFK kick while watching end credits diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8ed347ad9e758a3d5df7110ea0b098a207f61094..28fdf5f4df4b61383e6d132f603c50ec35f62024 100644 +index acde997a61660c1afd4d2a265de553c45bf8a11f..9573db9b35b1eae861af18d5eb4ce54a6648786f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -390,7 +390,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -13,7 +13,7 @@ index 8ed347ad9e758a3d5df7110ea0b098a207f61094..28fdf5f4df4b61383e6d132f603c50ec } - if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L) { -+ if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits. ++ if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } diff --git a/patches/server/0629-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0629-Allow-skipping-writing-of-comments-to-server.propert.patch index 5f22e4194ada..5edf3832357c 100644 --- a/patches/server/0629-Allow-skipping-writing-of-comments-to-server.propert.patch +++ b/patches/server/0629-Allow-skipping-writing-of-comments-to-server.propert.patch @@ -8,7 +8,7 @@ Makes less git noise, as it won't update the date every single time Use -DPaper.skipServerPropertiesComments=true flag to disable writing it diff --git a/src/main/java/net/minecraft/server/dedicated/Settings.java b/src/main/java/net/minecraft/server/dedicated/Settings.java -index fc45c2c4ecdf3906df6bceaf3e019c462fe62186..f04bfbef6876ceb1fc7d28d9f964b730d1e5c238 100644 +index fc45c2c4ecdf3906df6bceaf3e019c462fe62186..61bf3ccf998bcb9ebd80e983566e7181a73f0e30 100644 --- a/src/main/java/net/minecraft/server/dedicated/Settings.java +++ b/src/main/java/net/minecraft/server/dedicated/Settings.java @@ -29,6 +29,7 @@ public abstract class Settings> { @@ -24,7 +24,7 @@ index fc45c2c4ecdf3906df6bceaf3e019c462fe62186..f04bfbef6876ceb1fc7d28d9f964b730 } // CraftBukkit end - BufferedWriter bufferedwriter = Files.newBufferedWriter(path, StandardCharsets.UTF_8); -+ // Paper start - disable writing comments to properties file ++ // Paper start - allow skipping server.properties comments + java.io.OutputStream outputstream = Files.newOutputStream(path); + java.io.BufferedOutputStream bufferedOutputStream = !skipComments ? new java.io.BufferedOutputStream(outputstream) : new java.io.BufferedOutputStream(outputstream) { + private boolean isRightAfterNewline = true; // If last written char was newline @@ -63,7 +63,7 @@ index fc45c2c4ecdf3906df6bceaf3e019c462fe62186..f04bfbef6876ceb1fc7d28d9f964b730 + } + }; + BufferedWriter bufferedwriter = new BufferedWriter(new java.io.OutputStreamWriter(bufferedOutputStream, java.nio.charset.StandardCharsets.UTF_8.newEncoder())); -+ // Paper end ++ // Paper end - allow skipping server.properties comments try { this.properties.store(bufferedwriter, "Minecraft server properties"); diff --git a/patches/server/0630-Add-PlayerSetSpawnEvent.patch b/patches/server/0630-Add-PlayerSetSpawnEvent.patch index 154380d73629..1fe455032ea4 100644 --- a/patches/server/0630-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0630-Add-PlayerSetSpawnEvent.patch @@ -5,51 +5,51 @@ Subject: [PATCH] Add PlayerSetSpawnEvent diff --git a/src/main/java/net/minecraft/server/commands/SetSpawnCommand.java b/src/main/java/net/minecraft/server/commands/SetSpawnCommand.java -index a2d0699e8427b2262a2396495111125eccafbb66..d797637f61bdf8a424f56fbb48e28b7c9117d604 100644 +index a2d0699e8427b2262a2396495111125eccafbb66..15db9368227dbc29d07d74e85bd126b345b526b6 100644 --- a/src/main/java/net/minecraft/server/commands/SetSpawnCommand.java +++ b/src/main/java/net/minecraft/server/commands/SetSpawnCommand.java @@ -38,24 +38,34 @@ public class SetSpawnCommand { ResourceKey resourcekey = source.getLevel().dimension(); Iterator iterator = targets.iterator(); -+ final Collection actualTargets = new java.util.ArrayList<>(); // Paper ++ final Collection actualTargets = new java.util.ArrayList<>(); // Paper - Add PlayerSetSpawnEvent while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); - entityplayer.setRespawnPosition(resourcekey, pos, angle, true, false, org.bukkit.event.player.PlayerSpawnChangeEvent.Cause.COMMAND); // CraftBukkit -+ // Paper start - PlayerSetSpawnEvent ++ // Paper start - Add PlayerSetSpawnEvent + if (entityplayer.setRespawnPosition(resourcekey, pos, angle, true, false, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.COMMAND)) { + actualTargets.add(entityplayer); + } -+ // Paper end ++ // Paper end - Add PlayerSetSpawnEvent } -+ // Paper start ++ // Paper start - Add PlayerSetSpawnEvent + if (actualTargets.isEmpty()) { + return 0; + } -+ // Paper end ++ // Paper end - Add PlayerSetSpawnEvent String s = resourcekey.location().toString(); - if (targets.size() == 1) { -+ if (actualTargets.size() == 1) { // Paper ++ if (actualTargets.size() == 1) { // Paper - Add PlayerSetSpawnEvent source.sendSuccess(() -> { - return Component.translatable("commands.spawnpoint.success.single", pos.getX(), pos.getY(), pos.getZ(), angle, s, ((ServerPlayer) targets.iterator().next()).getDisplayName()); -+ return Component.translatable("commands.spawnpoint.success.single", pos.getX(), pos.getY(), pos.getZ(), angle, s, ((ServerPlayer) actualTargets.iterator().next()).getDisplayName()); // Paper ++ return Component.translatable("commands.spawnpoint.success.single", pos.getX(), pos.getY(), pos.getZ(), angle, s, ((ServerPlayer) actualTargets.iterator().next()).getDisplayName()); // Paper - Add PlayerSetSpawnEvent }, true); } else { source.sendSuccess(() -> { - return Component.translatable("commands.spawnpoint.success.multiple", pos.getX(), pos.getY(), pos.getZ(), angle, s, targets.size()); -+ return Component.translatable("commands.spawnpoint.success.multiple", pos.getX(), pos.getY(), pos.getZ(), angle, s, actualTargets.size()); // Paper ++ return Component.translatable("commands.spawnpoint.success.multiple", pos.getX(), pos.getY(), pos.getZ(), angle, s, actualTargets.size()); // Paper - Add PlayerSetSpawnEvent }, true); } - return targets.size(); -+ return actualTargets.size(); // Paper ++ return actualTargets.size(); // Paper - Add PlayerSetSpawnEvent } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b49b56848bdbbd07c49e44d85997fa36192332c5..9f7c149d3ad1175d55ec02e295ee43bc571c3280 100644 +index 29e94d937f88763fef3c1f748e110cd1dae9a27b..b14f65b657c1a00923bec4a338e06e39f6642dfc 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1356,7 +1356,7 @@ public class ServerPlayer extends Player { @@ -57,7 +57,7 @@ index b49b56848bdbbd07c49e44d85997fa36192332c5..9f7c149d3ad1175d55ec02e295ee43bc return Either.left(Player.BedSleepingProblem.OBSTRUCTED); } else { - this.setRespawnPosition(this.level().dimension(), blockposition, this.getYRot(), false, true, PlayerSpawnChangeEvent.Cause.BED); // CraftBukkit -+ this.setRespawnPosition(this.level().dimension(), blockposition, this.getYRot(), false, true, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.BED); // Paper - PlayerSetSpawnEvent ++ this.setRespawnPosition(this.level().dimension(), blockposition, this.getYRot(), false, true, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.BED); // Paper - Add PlayerSetSpawnEvent if (this.level().isDay()) { return Either.left(Player.BedSleepingProblem.NOT_POSSIBLE_NOW); } else { @@ -65,7 +65,7 @@ index b49b56848bdbbd07c49e44d85997fa36192332c5..9f7c149d3ad1175d55ec02e295ee43bc return this.respawnForced; } -+ @Deprecated // Paper ++ @Deprecated // Paper - Add PlayerSetSpawnEvent public void setRespawnPosition(ResourceKey dimension, @Nullable BlockPos pos, float angle, boolean forced, boolean sendMessage) { - // CraftBukkit start - this.setRespawnPosition(dimension, pos, angle, forced, sendMessage, PlayerSpawnChangeEvent.Cause.UNKNOWN); @@ -91,7 +91,7 @@ index b49b56848bdbbd07c49e44d85997fa36192332c5..9f7c149d3ad1175d55ec02e295ee43bc - resourcekey = Level.OVERWORLD; - blockposition = null; - f = 0.0F; -+ // Paper start ++ // Paper start - Add PlayerSetSpawnEvent + this.setRespawnPosition(dimension, pos, angle, forced, sendMessage, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.UNKNOWN); + } + @Deprecated @@ -126,12 +126,12 @@ index b49b56848bdbbd07c49e44d85997fa36192332c5..9f7c149d3ad1175d55ec02e295ee43bc + pos = io.papermc.paper.util.MCUtil.toBlockPosition(event.getLocation()); + angle = event.getLocation().getYaw(); + forced = event.isForced(); -+ // Paper end ++ // Paper end - Add PlayerSetSpawnEvent - if (flag1 && !flag2) { - this.sendSystemMessage(Component.translatable("block.minecraft.set_spawn")); -+ if (event.willNotifyPlayer() && event.getNotification() != null) { // Paper -+ this.sendSystemMessage(PaperAdventure.asVanilla(event.getNotification())); // Paper ++ if (event.willNotifyPlayer() && event.getNotification() != null) { // Paper - Add PlayerSetSpawnEvent ++ this.sendSystemMessage(PaperAdventure.asVanilla(event.getNotification())); // Paper - Add PlayerSetSpawnEvent } - this.respawnPosition = blockposition; @@ -149,12 +149,12 @@ index b49b56848bdbbd07c49e44d85997fa36192332c5..9f7c149d3ad1175d55ec02e295ee43bc this.respawnForced = false; } -+ return true; // Paper ++ return true; // Paper - Add PlayerSetSpawnEvent } public SectionPos getLastSectionPos() { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 29ad37a8d449b5addfd48ef46dde9835f34a057a..f7588787769902506e317bdb052483c5dc377693 100644 +index 75b81f0852241a8edc931e514f06d46583b6ac43..a0a17fa35c5333655afa8e4e8b3a66ffa41bcc24 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -872,7 +872,7 @@ public abstract class PlayerList { @@ -162,12 +162,12 @@ index 29ad37a8d449b5addfd48ef46dde9835f34a057a..f7588787769902506e317bdb052483c5 } else if (blockposition != null) { entityplayer1.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F)); - entityplayer1.setRespawnPosition(null, null, 0f, false, false, PlayerSpawnChangeEvent.Cause.RESET); // CraftBukkit - SPIGOT-5988: Clear respawn location when obstructed -+ entityplayer1.setRespawnPosition(null, null, 0f, false, false, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.PLAYER_RESPAWN); // CraftBukkit - SPIGOT-5988: Clear respawn location when obstructed // Paper - PlayerSetSpawnEvent ++ entityplayer1.setRespawnPosition(null, null, 0f, false, false, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.PLAYER_RESPAWN); // CraftBukkit - SPIGOT-5988: Clear respawn location when obstructed // Paper - Add PlayerSetSpawnEvent } } diff --git a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java -index ecaa7f0b2bf795f16187f11fa27f6d5d435ccbfe..c83ffba568f33323b0f8b9a03fa0b7bbbfed4355 100644 +index ecaa7f0b2bf795f16187f11fa27f6d5d435ccbfe..acd5ec218b8d4c096f44ae2eec1379eeaf30ddc5 100644 --- a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java +++ b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java @@ -87,9 +87,14 @@ public class RespawnAnchorBlock extends Block { @@ -175,19 +175,19 @@ index ecaa7f0b2bf795f16187f11fa27f6d5d435ccbfe..c83ffba568f33323b0f8b9a03fa0b7bb if (entityplayer.getRespawnDimension() != world.dimension() || !pos.equals(entityplayer.getRespawnPosition())) { - entityplayer.setRespawnPosition(world.dimension(), pos, 0.0F, false, true, org.bukkit.event.player.PlayerSpawnChangeEvent.Cause.RESPAWN_ANCHOR); // CraftBukkit -+ if (entityplayer.setRespawnPosition(world.dimension(), pos, 0.0F, false, true, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.RESPAWN_ANCHOR)) { // Paper - PlayerSetSpawnEvent ++ if (entityplayer.setRespawnPosition(world.dimension(), pos, 0.0F, false, true, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.RESPAWN_ANCHOR)) { // Paper - Add PlayerSetSpawnEvent world.playSound((Player) null, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, SoundEvents.RESPAWN_ANCHOR_SET_SPAWN, SoundSource.BLOCKS, 1.0F, 1.0F); return InteractionResult.SUCCESS; -+ // Paper start - handle failed set spawn ++ // Paper start - Add PlayerSetSpawnEvent + } else { + return InteractionResult.FAIL; + } -+ // Paper end ++ // Paper end - Add PlayerSetSpawnEvent } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 11507cbf0f213079b39b35d06f8fc675d437469b..cb72755c1b1e04797dbe99612d7bdd0bfd4b540e 100644 +index 11507cbf0f213079b39b35d06f8fc675d437469b..97d489d0130e5854b82be73cd538c3305737f3be 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1318,9 +1318,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -195,10 +195,10 @@ index 11507cbf0f213079b39b35d06f8fc675d437469b..cb72755c1b1e04797dbe99612d7bdd0b public void setBedSpawnLocation(Location location, boolean override) { if (location == null) { - this.getHandle().setRespawnPosition(null, null, 0.0F, override, false, PlayerSpawnChangeEvent.Cause.PLUGIN); -+ this.getHandle().setRespawnPosition(null, null, 0.0F, override, false, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.PLUGIN); // Paper - PlayerSetSpawnEvent ++ this.getHandle().setRespawnPosition(null, null, 0.0F, override, false, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.PLUGIN); // Paper - Add PlayerSetSpawnEvent } else { - this.getHandle().setRespawnPosition(((CraftWorld) location.getWorld()).getHandle().dimension(), CraftLocation.toBlockPosition(location), location.getYaw(), override, false, PlayerSpawnChangeEvent.Cause.PLUGIN); -+ this.getHandle().setRespawnPosition(((CraftWorld) location.getWorld()).getHandle().dimension(), CraftLocation.toBlockPosition(location), location.getYaw(), override, false, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.PLUGIN); // Paper - PlayerSetSpawnEvent ++ this.getHandle().setRespawnPosition(((CraftWorld) location.getWorld()).getHandle().dimension(), CraftLocation.toBlockPosition(location), location.getYaw(), override, false, com.destroystokyo.paper.event.player.PlayerSetSpawnEvent.Cause.PLUGIN); // Paper - Add PlayerSetSpawnEvent } } diff --git a/patches/server/0631-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0631-Make-hoppers-respect-inventory-max-stack-size.patch index 45531b8594fc..f29d30a2c5a1 100644 --- a/patches/server/0631-Make-hoppers-respect-inventory-max-stack-size.patch +++ b/patches/server/0631-Make-hoppers-respect-inventory-max-stack-size.patch @@ -5,26 +5,26 @@ Subject: [PATCH] Make hoppers respect inventory max stack size diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index d83b0c58ea9fba6ba0060ee20c3e8251561f301a..f98367830e87d5f1428448931f756d9277699563 100644 +index d83b0c58ea9fba6ba0060ee20c3e8251561f301a..321d30f1c0d3838b9c3d210eedb03aa59e0761d8 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java @@ -437,15 +437,17 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen if (itemstack1.isEmpty()) { // Spigot start - SPIGOT-6693, InventorySubcontainer#setItem -+ ItemStack leftover = ItemStack.EMPTY; // Paper ++ ItemStack leftover = ItemStack.EMPTY; // Paper - Make hoppers respect inventory max stack size if (!stack.isEmpty() && stack.getCount() > to.getMaxStackSize()) { -+ leftover = stack; // Paper ++ leftover = stack; // Paper - Make hoppers respect inventory max stack size stack = stack.split(to.getMaxStackSize()); } // Spigot end to.setItem(slot, stack); - stack = ItemStack.EMPTY; -+ stack = leftover; // Paper ++ stack = leftover; // Paper - Make hoppers respect inventory max stack size flag = true; } else if (HopperBlockEntity.canMergeItems(itemstack1, stack)) { - int j = stack.getMaxStackSize() - itemstack1.getCount(); -+ int j = Math.min(stack.getMaxStackSize(), to.getMaxStackSize()) - itemstack1.getCount(); // Paper ++ int j = Math.min(stack.getMaxStackSize(), to.getMaxStackSize()) - itemstack1.getCount(); // Paper - Make hoppers respect inventory max stack size int k = Math.min(stack.getCount(), j); stack.shrink(k); diff --git a/patches/server/0633-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0633-Config-option-for-Piglins-guarding-chests.patch index 63865bec496e..d32081e6b292 100644 --- a/patches/server/0633-Config-option-for-Piglins-guarding-chests.patch +++ b/patches/server/0633-Config-option-for-Piglins-guarding-chests.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Config option for Piglins guarding chests diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java -index 86bb0ac321da9a93065dfe40f33dc8417f092269..b98179602f5b26ecd4df46837b15ca186f65cb38 100644 +index e00a1e6031b6de0f6900e004c9e9c97b0d84f8d3..9c979aee4d1e6e72f599d3c5751267e17aa3d32a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java @@ -477,6 +477,7 @@ public class PiglinAi { } public static void angerNearbyPiglins(Player player, boolean blockOpen) { -+ if (!player.level().paperConfig().entities.behavior.piglinsGuardChests) return; // Paper ++ if (!player.level().paperConfig().entities.behavior.piglinsGuardChests) return; // Paper - Config option for Piglins guarding chests List list = player.level().getEntitiesOfClass(Piglin.class, player.getBoundingBox().inflate(16.0D)); list.stream().filter(PiglinAi::isIdle).filter((entitypiglin) -> { diff --git a/patches/server/0634-Added-EntityDamageItemEvent.patch b/patches/server/0634-Add-EntityDamageItemEvent.patch similarity index 84% rename from patches/server/0634-Added-EntityDamageItemEvent.patch rename to patches/server/0634-Add-EntityDamageItemEvent.patch index c4a326836712..b98f07d51da8 100644 --- a/patches/server/0634-Added-EntityDamageItemEvent.patch +++ b/patches/server/0634-Add-EntityDamageItemEvent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Tue, 22 Dec 2020 13:52:48 -0800 -Subject: [PATCH] Added EntityDamageItemEvent +Subject: [PATCH] Add EntityDamageItemEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 761a46c21aaddcd43b4c33f477658605648127e9..fdcec8496abda362e611b42ef054ea730f47f408 100644 +index 761a46c21aaddcd43b4c33f477658605648127e9..f23c1695840553ae14e49310b3708a801b5a0f8d 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -622,7 +622,7 @@ public final class ItemStack { @@ -13,7 +13,7 @@ index 761a46c21aaddcd43b4c33f477658605648127e9..fdcec8496abda362e611b42ef054ea73 } - public boolean hurt(int amount, RandomSource random, @Nullable ServerPlayer player) { -+ public boolean hurt(int amount, RandomSource random, @Nullable LivingEntity player) { // Paper - allow any living entity instead of only ServerPlayers ++ public boolean hurt(int amount, RandomSource random, @Nullable LivingEntity player) { // Paper - Add EntityDamageItemEvent if (!this.isDamageableItem()) { return false; } else { @@ -23,8 +23,8 @@ index 761a46c21aaddcd43b4c33f477658605648127e9..fdcec8496abda362e611b42ef054ea73 // CraftBukkit start - if (player != null) { - PlayerItemDamageEvent event = new PlayerItemDamageEvent(player.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount); -+ if (player instanceof ServerPlayer serverPlayer) { // Paper -+ PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount); // Paper ++ if (player instanceof ServerPlayer serverPlayer) { // Paper - Add EntityDamageItemEvent ++ PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount); // Paper - Add EntityDamageItemEvent event.getPlayer().getServer().getPluginManager().callEvent(event); if (amount != event.getDamage() || event.isCancelled()) { @@ -32,14 +32,14 @@ index 761a46c21aaddcd43b4c33f477658605648127e9..fdcec8496abda362e611b42ef054ea73 } amount = event.getDamage(); -+ // Paper start - EntityDamageItemEvent ++ // Paper start - Add EntityDamageItemEvent + } else if (player != null) { + io.papermc.paper.event.entity.EntityDamageItemEvent event = new io.papermc.paper.event.entity.EntityDamageItemEvent(player.getBukkitLivingEntity(), CraftItemStack.asCraftMirror(this), amount); + if (!event.callEvent()) { + return false; + } + amount = event.getDamage(); -+ // Paper end ++ // Paper end - Add EntityDamageItemEvent } // CraftBukkit end if (amount <= 0) { @@ -49,8 +49,8 @@ index 761a46c21aaddcd43b4c33f477658605648127e9..fdcec8496abda362e611b42ef054ea73 - if (player != null && amount != 0) { - CriteriaTriggers.ITEM_DURABILITY_CHANGED.trigger(player, this, this.getDamageValue() + amount); -+ if (player instanceof ServerPlayer serverPlayer && amount != 0) { // Paper -+ CriteriaTriggers.ITEM_DURABILITY_CHANGED.trigger(serverPlayer, this, this.getDamageValue() + amount); // Paper ++ if (player instanceof ServerPlayer serverPlayer && amount != 0) { // Paper - Add EntityDamageItemEvent ++ CriteriaTriggers.ITEM_DURABILITY_CHANGED.trigger(serverPlayer, this, this.getDamageValue() + amount); // Paper - Add EntityDamageItemEvent } j = this.getDamageValue() + amount; @@ -59,7 +59,7 @@ index 761a46c21aaddcd43b4c33f477658605648127e9..fdcec8496abda362e611b42ef054ea73 if (!entity.level().isClientSide && (!(entity instanceof net.minecraft.world.entity.player.Player) || !((net.minecraft.world.entity.player.Player) entity).getAbilities().instabuild)) { if (this.isDamageableItem()) { - if (this.hurt(amount, entity.getRandom(), entity instanceof ServerPlayer ? (ServerPlayer) entity : null)) { -+ if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent ++ if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - Add EntityDamageItemEvent breakCallback.accept(entity); Item item = this.getItem(); // CraftBukkit start - Check for item breaking diff --git a/patches/server/0635-Optimize-indirect-passenger-iteration.patch b/patches/server/0635-Optimize-indirect-passenger-iteration.patch index 302d90eab066..f0102e4992b4 100644 --- a/patches/server/0635-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0635-Optimize-indirect-passenger-iteration.patch @@ -5,31 +5,31 @@ Subject: [PATCH] Optimize indirect passenger iteration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 486a4d9e5cd421e2444327e2c28e4f674c98894a..c598247bd8cf65f33845502107277518f7260d4d 100644 +index 72f50fe74695e32167d414c1c9ee38deb95afb79..8b84de55028a9c4d65fe5ae99b808f0d84ce6799 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3926,20 +3926,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } private Stream getIndirectPassengersStream() { -+ if (this.passengers.isEmpty()) { return Stream.of(); } // Paper ++ if (this.passengers.isEmpty()) { return Stream.of(); } // Paper - Optimize indirect passenger iteration return this.passengers.stream().flatMap(Entity::getSelfAndPassengers); } @Override public Stream getSelfAndPassengers() { -+ if (this.passengers.isEmpty()) { return Stream.of(this); } // Paper ++ if (this.passengers.isEmpty()) { return Stream.of(this); } // Paper - Optimize indirect passenger iteration return Stream.concat(Stream.of(this), this.getIndirectPassengersStream()); } @Override public Stream getPassengersAndSelf() { -+ if (this.passengers.isEmpty()) { return Stream.of(this); } // Paper ++ if (this.passengers.isEmpty()) { return Stream.of(this); } // Paper - Optimize indirect passenger iteration return Stream.concat(this.passengers.stream().flatMap(Entity::getPassengersAndSelf), Stream.of(this)); } public Iterable getIndirectPassengers() { -+ // Paper start - rewrite this method ++ // Paper start - Optimize indirect passenger iteration + if (this.passengers.isEmpty()) { return ImmutableList.of(); } + ImmutableList.Builder indirectPassengers = ImmutableList.builder(); + for (Entity passenger : this.passengers) { @@ -39,7 +39,7 @@ index 486a4d9e5cd421e2444327e2c28e4f674c98894a..c598247bd8cf65f33845502107277518 + return indirectPassengers.build(); + } + private Iterable getIndirectPassengers_old() { -+ // Paper end ++ // Paper end - Optimize indirect passenger iteration return () -> { return this.getIndirectPassengersStream().iterator(); }; @@ -47,7 +47,7 @@ index 486a4d9e5cd421e2444327e2c28e4f674c98894a..c598247bd8cf65f33845502107277518 // Paper end - rewrite chunk system public boolean hasExactlyOnePlayerPassenger() { -+ if (this.passengers.isEmpty()) { return false; } // Paper ++ if (this.passengers.isEmpty()) { return false; } // Paper - Optimize indirect passenger iteration return this.countPlayerPassengers() == 1; } diff --git a/patches/server/0638-Clear-bucket-NBT-after-dispense.patch b/patches/server/0637-Clear-bucket-NBT-after-dispense.patch similarity index 89% rename from patches/server/0638-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0637-Clear-bucket-NBT-after-dispense.patch index e0ba56c33370..a427f6d5e28c 100644 --- a/patches/server/0638-Clear-bucket-NBT-after-dispense.patch +++ b/patches/server/0637-Clear-bucket-NBT-after-dispense.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Clear bucket NBT after dispense diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 8c8d2e81f0866dc1441e181f2580852d87263bcc..9f220c99d7374ab3d9db222346694342d3e926c1 100644 +index 8c8d2e81f0866dc1441e181f2580852d87263bcc..d41e3e5382b17d3de41054b496c1707a926a897a 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -650,8 +650,7 @@ public interface DispenseItemBehavior { @@ -14,7 +14,7 @@ index 8c8d2e81f0866dc1441e181f2580852d87263bcc..9f220c99d7374ab3d9db222346694342 if (stack.isEmpty()) { - stack.setItem(Items.BUCKET); - stack.setCount(1); -+ stack = new ItemStack(item); // Paper - clear tag ++ stack = new ItemStack(item); // Paper - Clear bucket NBT after dispense } else if (pointer.blockEntity().addItem(new ItemStack(item)) < 0) { this.defaultDispenseItemBehavior.dispense(pointer, new ItemStack(item)); } diff --git a/patches/server/0637-Make-EntityUnleashEvent-cancellable.patch b/patches/server/0637-Make-EntityUnleashEvent-cancellable.patch deleted file mode 100644 index 027330d9f92b..000000000000 --- a/patches/server/0637-Make-EntityUnleashEvent-cancellable.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic -Date: Sun, 3 Jan 2021 21:25:31 -0800 -Subject: [PATCH] Make EntityUnleashEvent cancellable - - -diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 764a5dd85e3fb581b1e713ce9b148be1874d55be..16d84042e2575418880897c728a99d1b8bbcdd15 100644 ---- a/src/main/java/net/minecraft/world/entity/Mob.java -+++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1550,7 +1550,7 @@ public abstract class Mob extends LivingEntity implements Targeting { - if (flag1 && this.isLeashed()) { - // Paper start - drop leash variable - EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.UNKNOWN, true); -- this.level().getCraftServer().getPluginManager().callEvent(event); // CraftBukkit -+ if (!event.callEvent()) { return flag1; } - this.dropLeash(true, event.isDropLeash()); - // Paper end - } -diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -index 8e362ad31208d87f4a69a1747485610e0588be51..463b72cab6a62e9738b33007728b2b00ae12e1bc 100644 ---- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java -+++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -@@ -59,7 +59,7 @@ public abstract class PathfinderMob extends Mob { - if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper - // Paper start - drop leash variable - EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE, true); -- this.level().getCraftServer().getPluginManager().callEvent(event); // CraftBukkit -+ if (!event.callEvent()) { return; } - this.dropLeash(true, event.isDropLeash()); - // Paper end - } -@@ -71,7 +71,7 @@ public abstract class PathfinderMob extends Mob { - if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper - // Paper start - drop leash variable - EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE, true); -- this.level().getCraftServer().getPluginManager().callEvent(event); // CraftBukkit -+ if (!event.callEvent()) { return; } - this.dropLeash(true, event.isDropLeash()); - // Paper end - this.goalSelector.disableControlFlag(Goal.Flag.MOVE); diff --git a/patches/server/0639-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0638-Change-EnderEye-target-without-changing-other-things.patch similarity index 72% rename from patches/server/0639-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0638-Change-EnderEye-target-without-changing-other-things.patch index 48c5524ab83e..4974686f9c30 100644 --- a/patches/server/0639-Change-EnderEye-target-without-changing-other-things.patch +++ b/patches/server/0638-Change-EnderEye-target-without-changing-other-things.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Change EnderEye target without changing other things diff --git a/src/main/java/net/minecraft/world/entity/projectile/EyeOfEnder.java b/src/main/java/net/minecraft/world/entity/projectile/EyeOfEnder.java -index ee6bbe96503e9205349e9a5c411dc60dd952ec9e..e48706e2fefc39fcce3c65f629153fdcd677044c 100644 +index ee6bbe96503e9205349e9a5c411dc60dd952ec9e..eb7c16b0291357445d408c0748a03f1a9b562a90 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/EyeOfEnder.java +++ b/src/main/java/net/minecraft/world/entity/projectile/EyeOfEnder.java @@ -70,6 +70,11 @@ public class EyeOfEnder extends Entity implements ItemSupplier { } public void signalTo(BlockPos pos) { -+ // Paper start ++ // Paper start - Change EnderEye target without changing other things + this.signalTo(pos, true); + } + public void signalTo(BlockPos pos, boolean update) { -+ // Paper end ++ // Paper end - Change EnderEye target without changing other things double d0 = (double) pos.getX(); int i = pos.getY(); double d1 = (double) pos.getZ(); @@ -24,31 +24,31 @@ index ee6bbe96503e9205349e9a5c411dc60dd952ec9e..e48706e2fefc39fcce3c65f629153fdc this.tz = d1; } -+ if (update) { // Paper ++ if (update) { // Paper - Change EnderEye target without changing other things this.life = 0; this.surviveAfterDeath = this.random.nextInt(5) > 0; -+ } // Paper ++ } // Paper - Change EnderEye target without changing other things } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java -index d4dfc7a0266086b9bf2c3966c6e149453d0583ba..1fb5760681bf0c745f9f3517489a83666a6d6805 100644 +index d4dfc7a0266086b9bf2c3966c6e149453d0583ba..27f56fa4b7ef92a9a4dfa6b782350424b88210f2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java @@ -32,8 +32,15 @@ public class CraftEnderSignal extends CraftEntity implements EnderSignal { @Override public void setTargetLocation(Location location) { -+ // Paper start ++ // Paper start - Change EnderEye target without changing other things + this.setTargetLocation(location, true); + } + + @Override + public void setTargetLocation(Location location, boolean update) { -+ // Paper end ++ // Paper end - Change EnderEye target without changing other things Preconditions.checkArgument(this.getWorld().equals(location.getWorld()), "Cannot target EnderSignal across worlds"); - this.getHandle().signalTo(CraftLocation.toBlockPosition(location)); -+ this.getHandle().signalTo(CraftLocation.toBlockPosition(location), update); // Paper ++ this.getHandle().signalTo(CraftLocation.toBlockPosition(location), update); // Paper - Change EnderEye target without changing other things } @Override diff --git a/patches/server/0640-Add-BlockBreakBlockEvent.patch b/patches/server/0639-Add-BlockBreakBlockEvent.patch similarity index 86% rename from patches/server/0640-Add-BlockBreakBlockEvent.patch rename to patches/server/0639-Add-BlockBreakBlockEvent.patch index 79b68d678415..cfa7680e1689 100644 --- a/patches/server/0640-Add-BlockBreakBlockEvent.patch +++ b/patches/server/0639-Add-BlockBreakBlockEvent.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add BlockBreakBlockEvent diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 5e5199b50847958f7abc6d8e42cfb6806df8421f..142f9438f75cb7e2d97011fdeb3f9e367ff81599 100644 +index 5e5199b50847958f7abc6d8e42cfb6806df8421f..af62781cc96354c87aa63d4f03f9e25b81959081 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -326,6 +326,23 @@ public class Block extends BlockBehaviour implements ItemLike { } } -+ // Paper start ++ // Paper start - Add BlockBreakBlockEvent + public static boolean dropResources(BlockState state, LevelAccessor world, BlockPos pos, @Nullable BlockEntity blockEntity, BlockPos source) { + if (world instanceof ServerLevel) { + List items = com.google.common.collect.Lists.newArrayList(); @@ -28,12 +28,12 @@ index 5e5199b50847958f7abc6d8e42cfb6806df8421f..142f9438f75cb7e2d97011fdeb3f9e36 + } + return true; + } -+ // Paper end ++ // Paper end - Add BlockBreakBlockEvent public static void dropResources(BlockState state, Level world, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity entity, ItemStack tool) { if (world instanceof ServerLevel) { diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -index 565da027ca7c395f9b965505cbe9e85e62367834..cda90023ad662e8875365eac98ec69f476dcb42d 100644 +index 565da027ca7c395f9b965505cbe9e85e62367834..de9102f943fe90122b2fe7f94228b4248244374a 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java @@ -415,7 +415,7 @@ public class PistonBaseBlock extends DirectionalBlock { @@ -41,12 +41,12 @@ index 565da027ca7c395f9b965505cbe9e85e62367834..cda90023ad662e8875365eac98ec69f4 BlockEntity tileentity = iblockdata1.hasBlockEntity() ? world.getBlockEntity(blockposition3) : null; - dropResources(iblockdata1, world, blockposition3, tileentity); -+ dropResources(iblockdata1, world, blockposition3, tileentity, pos); // Paper ++ dropResources(iblockdata1, world, blockposition3, tileentity, pos); // Paper - Add BlockBreakBlockEvent world.setBlock(blockposition3, Blocks.AIR.defaultBlockState(), 18); world.gameEvent(GameEvent.BLOCK_DESTROY, blockposition3, GameEvent.Context.of(iblockdata1)); if (!iblockdata1.is(BlockTags.FIRE)) { diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -index f7527ed1d47901e52df4e3fffbdcd838782c90db..55208b4889f4af60f2b2b66ed6b102b2cd0bb26b 100644 +index f7527ed1d47901e52df4e3fffbdcd838782c90db..482616c7cbe12f7a23ec99378e24a87dedc2a8ae 100644 --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java @@ -296,7 +296,7 @@ public abstract class FlowingFluid extends Fluid { @@ -54,7 +54,7 @@ index f7527ed1d47901e52df4e3fffbdcd838782c90db..55208b4889f4af60f2b2b66ed6b102b2 } else { if (!state.isAir()) { - this.beforeDestroyingBlock(world, pos, state); -+ this.beforeDestroyingBlock(world, pos, state, pos.relative(direction.getOpposite())); // Paper ++ this.beforeDestroyingBlock(world, pos, state, pos.relative(direction.getOpposite())); // Paper - Add BlockBreakBlockEvent } world.setBlock(pos, fluidState.createLegacyBlock(), 3); @@ -62,25 +62,25 @@ index f7527ed1d47901e52df4e3fffbdcd838782c90db..55208b4889f4af60f2b2b66ed6b102b2 } -+ protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) { beforeDestroyingBlock(world, pos, state); } // Paper - add source parameter ++ protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) { beforeDestroyingBlock(world, pos, state); } // Paper - Add BlockBreakBlockEvent protected abstract void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state); private static short getCacheKey(BlockPos from, BlockPos to) { diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -index 1897c0012800d5ba9d2fc386f3e2bf57c9d878bb..82e85fbbd45244d02df90fa00c9046e7f51275a2 100644 +index 1897c0012800d5ba9d2fc386f3e2bf57c9d878bb..c5f9eda32f2cd172569c7b7d72f5dd3e41a34a70 100644 --- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java +++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java @@ -64,6 +64,13 @@ public abstract class WaterFluid extends FlowingFluid { return world.getGameRules().getBoolean(GameRules.RULE_WATER_SOURCE_CONVERSION); } -+ // Paper start ++ // Paper start - Add BlockBreakBlockEvent + @Override + protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) { + BlockEntity tileentity = state.hasBlockEntity() ? world.getBlockEntity(pos) : null; + Block.dropResources(state, world, pos, tileentity, source); + } -+ // Paper end ++ // Paper end - Add BlockBreakBlockEvent @Override protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state) { BlockEntity blockEntity = state.hasBlockEntity() ? world.getBlockEntity(pos) : null; diff --git a/patches/server/0641-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0640-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 85% rename from patches/server/0641-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0640-Option-to-prevent-NBT-copy-in-smithing-recipes.patch index bd57709b1976..c718e90b28bf 100644 --- a/patches/server/0641-Option-to-prevent-NBT-copy-in-smithing-recipes.patch +++ b/patches/server/0640-Option-to-prevent-NBT-copy-in-smithing-recipes.patch @@ -5,22 +5,22 @@ Subject: [PATCH] Option to prevent NBT copy in smithing recipes diff --git a/src/main/java/net/minecraft/world/item/crafting/SmithingTransformRecipe.java b/src/main/java/net/minecraft/world/item/crafting/SmithingTransformRecipe.java -index 566b588006da2b46ec1727be85560ccd59c42c6f..8f71a60c1d83dfad67ac77ec4464a55c7439d4b3 100644 +index 566b588006da2b46ec1727be85560ccd59c42c6f..67f7eb89570934b73ff5b894ae3e89fdb874b923 100644 --- a/src/main/java/net/minecraft/world/item/crafting/SmithingTransformRecipe.java +++ b/src/main/java/net/minecraft/world/item/crafting/SmithingTransformRecipe.java @@ -23,8 +23,15 @@ public class SmithingTransformRecipe implements SmithingRecipe { final Ingredient base; final Ingredient addition; final ItemStack result; -+ final boolean copyNBT; // Paper ++ final boolean copyNBT; // Paper - Option to prevent NBT copy public SmithingTransformRecipe(Ingredient template, Ingredient base, Ingredient addition, ItemStack result) { -+ // Paper start ++ // Paper start - Option to prevent NBT copy + this(template, base, addition, result, true); + } + public SmithingTransformRecipe(Ingredient template, Ingredient base, Ingredient addition, ItemStack result, boolean copyNBT) { + this.copyNBT = copyNBT; -+ // Paper end ++ // Paper end - Option to prevent NBT copy this.template = template; this.base = base; this.addition = addition; @@ -28,13 +28,13 @@ index 566b588006da2b46ec1727be85560ccd59c42c6f..8f71a60c1d83dfad67ac77ec4464a55c @Override public ItemStack assemble(Container inventory, RegistryAccess registryManager) { ItemStack itemstack = this.result.copy(); -+ if (this.copyNBT) { // Paper - copy nbt conditionally ++ if (this.copyNBT) { // Paper - Option to prevent NBT copy CompoundTag nbttagcompound = inventory.getItem(1).getTag(); if (nbttagcompound != null) { itemstack.setTag(nbttagcompound.copy()); } -+ } // Paper ++ } // Paper - Option to prevent NBT copy return itemstack; } @@ -43,27 +43,27 @@ index 566b588006da2b46ec1727be85560ccd59c42c6f..8f71a60c1d83dfad67ac77ec4464a55c CraftItemStack result = CraftItemStack.asCraftMirror(this.result); - CraftSmithingTransformRecipe recipe = new CraftSmithingTransformRecipe(id, result, CraftRecipe.toBukkit(this.template), CraftRecipe.toBukkit(this.base), CraftRecipe.toBukkit(this.addition)); -+ CraftSmithingTransformRecipe recipe = new CraftSmithingTransformRecipe(id, result, CraftRecipe.toBukkit(this.template), CraftRecipe.toBukkit(this.base), CraftRecipe.toBukkit(this.addition), this.copyNBT); // Paper ++ CraftSmithingTransformRecipe recipe = new CraftSmithingTransformRecipe(id, result, CraftRecipe.toBukkit(this.template), CraftRecipe.toBukkit(this.base), CraftRecipe.toBukkit(this.addition), this.copyNBT); // Paper - Option to prevent NBT copy return recipe; } diff --git a/src/main/java/net/minecraft/world/item/crafting/SmithingTrimRecipe.java b/src/main/java/net/minecraft/world/item/crafting/SmithingTrimRecipe.java -index e0b24c140e04a159a7b8aaef64ab94e19fc03dfd..2f26ef211322398e795cbdc75b565fc7922cf4ff 100644 +index e0b24c140e04a159a7b8aaef64ab94e19fc03dfd..a3686cede266c0205247abcec3ce082ae4a048a0 100644 --- a/src/main/java/net/minecraft/world/item/crafting/SmithingTrimRecipe.java +++ b/src/main/java/net/minecraft/world/item/crafting/SmithingTrimRecipe.java @@ -29,8 +29,15 @@ public class SmithingTrimRecipe implements SmithingRecipe { final Ingredient template; final Ingredient base; final Ingredient addition; -+ final boolean copyNbt; // Paper ++ final boolean copyNbt; // Paper - Option to prevent NBT copy public SmithingTrimRecipe(Ingredient template, Ingredient base, Ingredient addition) { -+ // Paper start ++ // Paper start - Option to prevent NBT copy + this(template, base, addition, true); + } + public SmithingTrimRecipe(Ingredient template, Ingredient base, Ingredient addition, boolean copyNbt) { + this.copyNbt = copyNbt; -+ // Paper end ++ // Paper end - Option to prevent NBT copy this.template = template; this.base = base; this.addition = addition; @@ -72,7 +72,7 @@ index e0b24c140e04a159a7b8aaef64ab94e19fc03dfd..2f26ef211322398e795cbdc75b565fc7 } - ItemStack itemstack1 = itemstack.copy(); -+ ItemStack itemstack1 = this.copyNbt ? itemstack.copy() : new ItemStack(itemstack.getItem(), itemstack.getCount()); // Paper ++ ItemStack itemstack1 = this.copyNbt ? itemstack.copy() : new ItemStack(itemstack.getItem(), itemstack.getCount()); // Paper - Option to prevent NBT copy itemstack1.setCount(1); ArmorTrim armortrim = new ArmorTrim((Holder) optional.get(), (Holder) optional1.get()); @@ -81,30 +81,30 @@ index e0b24c140e04a159a7b8aaef64ab94e19fc03dfd..2f26ef211322398e795cbdc75b565fc7 @Override public Recipe toBukkitRecipe(NamespacedKey id) { - return new CraftSmithingTrimRecipe(id, CraftRecipe.toBukkit(this.template), CraftRecipe.toBukkit(this.base), CraftRecipe.toBukkit(this.addition)); -+ return new CraftSmithingTrimRecipe(id, CraftRecipe.toBukkit(this.template), CraftRecipe.toBukkit(this.base), CraftRecipe.toBukkit(this.addition), this.copyNbt); // Paper ++ return new CraftSmithingTrimRecipe(id, CraftRecipe.toBukkit(this.template), CraftRecipe.toBukkit(this.base), CraftRecipe.toBukkit(this.addition), this.copyNbt); // Paper - Option to prevent NBT copy } // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTransformRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTransformRecipe.java -index 8c381e2745e7d5b63e72a60c5541b549f0d1b9bf..8b0e3a92e9893af954bc85adb2566502b65a0fa4 100644 +index 8c381e2745e7d5b63e72a60c5541b549f0d1b9bf..ced6dc7db823ecabe91d438dbcbd78f5a4bbdcae 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTransformRecipe.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTransformRecipe.java @@ -12,12 +12,17 @@ public class CraftSmithingTransformRecipe extends SmithingTransformRecipe implem public CraftSmithingTransformRecipe(NamespacedKey key, ItemStack result, RecipeChoice template, RecipeChoice base, RecipeChoice addition) { super(key, result, template, base, addition); } -+ // Paper start ++ // Paper start - Option to prevent NBT copy + public CraftSmithingTransformRecipe(NamespacedKey key, ItemStack result, RecipeChoice template, RecipeChoice base, RecipeChoice addition, boolean copyNbt) { + super(key, result, template, base, addition, copyNbt); + } -+ // Paper end ++ // Paper endv public static CraftSmithingTransformRecipe fromBukkitRecipe(SmithingTransformRecipe recipe) { if (recipe instanceof CraftSmithingTransformRecipe) { return (CraftSmithingTransformRecipe) recipe; } - CraftSmithingTransformRecipe ret = new CraftSmithingTransformRecipe(recipe.getKey(), recipe.getResult(), recipe.getTemplate(), recipe.getBase(), recipe.getAddition()); -+ CraftSmithingTransformRecipe ret = new CraftSmithingTransformRecipe(recipe.getKey(), recipe.getResult(), recipe.getTemplate(), recipe.getBase(), recipe.getAddition(), recipe.willCopyNbt()); // Paper ++ CraftSmithingTransformRecipe ret = new CraftSmithingTransformRecipe(recipe.getKey(), recipe.getResult(), recipe.getTemplate(), recipe.getBase(), recipe.getAddition(), recipe.willCopyNbt()); // Paper - Option to prevent NBT copy return ret; } @@ -113,35 +113,35 @@ index 8c381e2745e7d5b63e72a60c5541b549f0d1b9bf..8b0e3a92e9893af954bc85adb2566502 ItemStack result = this.getResult(); - MinecraftServer.getServer().getRecipeManager().addRecipe(new RecipeHolder<>(CraftNamespacedKey.toMinecraft(this.getKey()), new net.minecraft.world.item.crafting.SmithingTransformRecipe(this.toNMS(this.getTemplate(), true), this.toNMS(this.getBase(), true), this.toNMS(this.getAddition(), true), CraftItemStack.asNMSCopy(result)))); -+ MinecraftServer.getServer().getRecipeManager().addRecipe(new RecipeHolder<>(CraftNamespacedKey.toMinecraft(this.getKey()), new net.minecraft.world.item.crafting.SmithingTransformRecipe(this.toNMS(this.getTemplate(), true), this.toNMS(this.getBase(), true), this.toNMS(this.getAddition(), true), CraftItemStack.asNMSCopy(result), this.willCopyNbt()))); // Paper ++ MinecraftServer.getServer().getRecipeManager().addRecipe(new RecipeHolder<>(CraftNamespacedKey.toMinecraft(this.getKey()), new net.minecraft.world.item.crafting.SmithingTransformRecipe(this.toNMS(this.getTemplate(), true), this.toNMS(this.getBase(), true), this.toNMS(this.getAddition(), true), CraftItemStack.asNMSCopy(result), this.willCopyNbt()))); // Paper - Option to prevent NBT copy } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTrimRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTrimRecipe.java -index 87f20a4811d082f217638768417c1c0feb84f741..105c72a674e1a8ca4eb6003841f5d933d3a2c275 100644 +index 87f20a4811d082f217638768417c1c0feb84f741..2217e7ed9533c52a3b7d27d4dfff23ada6f2cef1 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTrimRecipe.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTrimRecipe.java @@ -12,17 +12,22 @@ public class CraftSmithingTrimRecipe extends SmithingTrimRecipe implements Craft public CraftSmithingTrimRecipe(NamespacedKey key, RecipeChoice template, RecipeChoice base, RecipeChoice addition) { super(key, template, base, addition); } -+ // Paper start ++ // Paper start - Option to prevent NBT copy + public CraftSmithingTrimRecipe(NamespacedKey key, RecipeChoice template, RecipeChoice base, RecipeChoice addition, boolean copyNbt) { + super(key, template, base, addition, copyNbt); + } -+ // Paper end ++ // Paper end - Option to prevent NBT copy public static CraftSmithingTrimRecipe fromBukkitRecipe(SmithingTrimRecipe recipe) { if (recipe instanceof CraftSmithingTrimRecipe) { return (CraftSmithingTrimRecipe) recipe; } - CraftSmithingTrimRecipe ret = new CraftSmithingTrimRecipe(recipe.getKey(), recipe.getTemplate(), recipe.getBase(), recipe.getAddition()); -+ CraftSmithingTrimRecipe ret = new CraftSmithingTrimRecipe(recipe.getKey(), recipe.getTemplate(), recipe.getBase(), recipe.getAddition(), recipe.willCopyNbt()); // Paper ++ CraftSmithingTrimRecipe ret = new CraftSmithingTrimRecipe(recipe.getKey(), recipe.getTemplate(), recipe.getBase(), recipe.getAddition(), recipe.willCopyNbt()); // Paper - Option to prevent NBT copy return ret; } @Override public void addToCraftingManager() { - MinecraftServer.getServer().getRecipeManager().addRecipe(new RecipeHolder<>(CraftNamespacedKey.toMinecraft(this.getKey()), new net.minecraft.world.item.crafting.SmithingTrimRecipe(this.toNMS(this.getTemplate(), true), this.toNMS(this.getBase(), true), this.toNMS(this.getAddition(), true)))); -+ MinecraftServer.getServer().getRecipeManager().addRecipe(new RecipeHolder<>(CraftNamespacedKey.toMinecraft(this.getKey()), new net.minecraft.world.item.crafting.SmithingTrimRecipe(this.toNMS(this.getTemplate(), true), this.toNMS(this.getBase(), true), this.toNMS(this.getAddition(), true), this.willCopyNbt()))); // Paper ++ MinecraftServer.getServer().getRecipeManager().addRecipe(new RecipeHolder<>(CraftNamespacedKey.toMinecraft(this.getKey()), new net.minecraft.world.item.crafting.SmithingTrimRecipe(this.toNMS(this.getTemplate(), true), this.toNMS(this.getBase(), true), this.toNMS(this.getAddition(), true), this.willCopyNbt()))); // Paper - Option to prevent NBT copy } } diff --git a/patches/server/0642-More-CommandBlock-API.patch b/patches/server/0641-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0642-More-CommandBlock-API.patch rename to patches/server/0641-More-CommandBlock-API.patch diff --git a/patches/server/0643-Add-missing-team-sidebar-display-slots.patch b/patches/server/0642-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0643-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0642-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0644-Add-back-EntityPortalExitEvent.patch b/patches/server/0643-Add-back-EntityPortalExitEvent.patch similarity index 97% rename from patches/server/0644-Add-back-EntityPortalExitEvent.patch rename to patches/server/0643-Add-back-EntityPortalExitEvent.patch index b4d0987e13ee..0f910098c0b0 100644 --- a/patches/server/0644-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0643-Add-back-EntityPortalExitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add back EntityPortalExitEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c598247bd8cf65f33845502107277518f7260d4d..80df6afacee92b205949322c9ccfba6f37af0279 100644 +index 8b84de55028a9c4d65fe5ae99b808f0d84ce6799..019d3494bb4d01172b33cc9022a7db9e0f603f8d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3373,6 +3373,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0645-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0644-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/server/0645-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0644-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/server/0646-Get-entity-default-attributes.patch b/patches/server/0645-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0646-Get-entity-default-attributes.patch rename to patches/server/0645-Get-entity-default-attributes.patch diff --git a/patches/server/0647-Left-handed-API.patch b/patches/server/0646-Left-handed-API.patch similarity index 100% rename from patches/server/0647-Left-handed-API.patch rename to patches/server/0646-Left-handed-API.patch diff --git a/patches/server/0648-Add-more-advancement-API.patch b/patches/server/0647-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0648-Add-more-advancement-API.patch rename to patches/server/0647-Add-more-advancement-API.patch diff --git a/patches/server/0649-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0648-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0649-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0648-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0650-Add-critical-damage-API.patch b/patches/server/0649-Add-critical-damage-API.patch similarity index 100% rename from patches/server/0650-Add-critical-damage-API.patch rename to patches/server/0649-Add-critical-damage-API.patch diff --git a/patches/server/0651-Fix-issues-with-mob-conversion.patch b/patches/server/0650-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0651-Fix-issues-with-mob-conversion.patch rename to patches/server/0650-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0652-Add-isCollidable-methods-to-various-places.patch b/patches/server/0651-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0652-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0651-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0653-Goat-ram-API.patch b/patches/server/0652-Goat-ram-API.patch similarity index 100% rename from patches/server/0653-Goat-ram-API.patch rename to patches/server/0652-Goat-ram-API.patch diff --git a/patches/server/0654-Add-API-for-resetting-a-single-score.patch b/patches/server/0653-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0654-Add-API-for-resetting-a-single-score.patch rename to patches/server/0653-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0655-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0654-Add-Raw-Byte-Entity-Serialization.patch similarity index 98% rename from patches/server/0655-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0654-Add-Raw-Byte-Entity-Serialization.patch index 6e0757e2641b..cfff9cb4b51e 100644 --- a/patches/server/0655-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0654-Add-Raw-Byte-Entity-Serialization.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add Raw Byte Entity Serialization public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 80df6afacee92b205949322c9ccfba6f37af0279..024b993b1fb709297fb495a5fd8224484c48c8b6 100644 +index 019d3494bb4d01172b33cc9022a7db9e0f603f8d..82db53692f3fc38625d63f9371f2d842159c454c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2159,6 +2159,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0656-Vanilla-command-permission-fixes.patch b/patches/server/0655-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0656-Vanilla-command-permission-fixes.patch rename to patches/server/0655-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0657-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0656-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 100% rename from patches/server/0657-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0656-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch diff --git a/patches/server/0658-Fix-GameProfileCache-concurrency.patch b/patches/server/0657-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0658-Fix-GameProfileCache-concurrency.patch rename to patches/server/0657-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0659-Improve-and-expand-AsyncCatcher.patch b/patches/server/0658-Improve-and-expand-AsyncCatcher.patch similarity index 99% rename from patches/server/0659-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0658-Improve-and-expand-AsyncCatcher.patch index 810bd9cbce1d..37e69538d559 100644 --- a/patches/server/0659-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0658-Improve-and-expand-AsyncCatcher.patch @@ -166,7 +166,7 @@ index bbbf6dd8e566ecdca8794e3b03765fe7e426a2bd..66ab901956ca394c251c420338643d39 PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason}); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 095fa9e4c4d367a3cdd343ca71bef7a6564759be..b52d3413cfe725ff5778c897a0ba06ca834e533f 100644 +index 59ca5a224561f59bf1f44e11db9bc323ac2f6d71..b882e8d1b3e45277b5e9e3a359f51d9703bdb2d0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1803,6 +1803,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0660-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0659-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 100% rename from patches/server/0660-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0659-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/server/0661-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0660-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0661-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0660-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0662-Optimise-general-POI-access.patch b/patches/server/0661-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/0662-Optimise-general-POI-access.patch rename to patches/server/0661-Optimise-general-POI-access.patch diff --git a/patches/server/0663-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/0662-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/0663-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/0662-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/0664-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0663-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0664-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0663-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0665-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0664-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0665-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0664-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0666-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0665-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 100% rename from patches/server/0666-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0665-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch diff --git a/patches/server/0667-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0666-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0667-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0666-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0668-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0667-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 100% rename from patches/server/0668-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/server/0667-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch diff --git a/patches/server/0669-Time-scoreboard-search.patch b/patches/server/0668-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0669-Time-scoreboard-search.patch rename to patches/server/0668-Time-scoreboard-search.patch diff --git a/patches/server/0670-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0669-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/0670-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/0669-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/0671-Execute-chunk-tasks-mid-tick.patch b/patches/server/0670-Execute-chunk-tasks-mid-tick.patch similarity index 97% rename from patches/server/0671-Execute-chunk-tasks-mid-tick.patch rename to patches/server/0670-Execute-chunk-tasks-mid-tick.patch index 44b55eed83d3..a8921da3d437 100644 --- a/patches/server/0671-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/0670-Execute-chunk-tasks-mid-tick.patch @@ -123,7 +123,7 @@ index 63fad53a9184d7ab97f143b7d85ae9ef2ca9f8bc..1483007b79e18107e41037c279e048f0 } } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ce74bfb123427c5459c03c3c8f85445077c329c7..6b999e05f93b0da1a3cc9a679a3a88b89df4aab5 100644 +index dfbec0bd98f58f7e01d0f45f2ab2c433f9094cc3..1be545d545dcd165fd76b5bb70ac00ddfc49b8bb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -216,6 +216,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -151,7 +151,7 @@ index ce74bfb123427c5459c03c3c8f85445077c329c7..6b999e05f93b0da1a3cc9a679a3a88b8 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e297be9cf8c59b6b8d051d5db70c3bebcd235a2d..02dfea10b27c6f932bc5742f6c577e30c155b3fe 100644 +index 69730027a70e91ec32604b1fb32820363ea20a71..4691008f0f3a5802af880aa2149f5360dee76920 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -927,6 +927,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0672-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0671-Oprimise-map-impl-for-tracked-players.patch similarity index 100% rename from patches/server/0672-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0671-Oprimise-map-impl-for-tracked-players.patch diff --git a/patches/server/0673-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0672-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0673-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0672-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0674-Optimise-random-block-ticking.patch b/patches/server/0673-Optimise-random-block-ticking.patch similarity index 99% rename from patches/server/0674-Optimise-random-block-ticking.patch rename to patches/server/0673-Optimise-random-block-ticking.patch index 347a22d5c4a9..e9c5661ef5f7 100644 --- a/patches/server/0674-Optimise-random-block-ticking.patch +++ b/patches/server/0673-Optimise-random-block-ticking.patch @@ -90,7 +90,7 @@ index 0000000000000000000000000000000000000000..7d93652c1abbb6aee6eb7c26cf35d4d0 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6b999e05f93b0da1a3cc9a679a3a88b89df4aab5..a9f336ed75ef406c1179bdc6e63e6fd944470534 100644 +index 1be545d545dcd165fd76b5bb70ac00ddfc49b8bb..8117a0334fdf59904e31a0419f7b5bf231d198c5 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -860,6 +860,10 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -324,7 +324,7 @@ index 722e323d2ae3f4ac8aa3197fed79f7d926d5ccfa..f8c1dfc8e121a406955348a1ec00c264 public BlockPos getHomePos() { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 02dfea10b27c6f932bc5742f6c577e30c155b3fe..94a4ceeea167164fb589518881952dd5e082f8c2 100644 +index 4691008f0f3a5802af880aa2149f5360dee76920..0d685f1f446061cc723d190b16eedcb2ddedfa46 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1398,10 +1398,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0675-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0674-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/0675-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/0674-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/0676-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0675-Use-Velocity-compression-and-cipher-natives.patch similarity index 100% rename from patches/server/0676-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/0675-Use-Velocity-compression-and-cipher-natives.patch diff --git a/patches/server/0677-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0676-Detail-more-information-in-watchdog-dumps.patch similarity index 99% rename from patches/server/0677-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/0676-Detail-more-information-in-watchdog-dumps.patch index 996e3727f522..248cb54950b8 100644 --- a/patches/server/0677-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0676-Detail-more-information-in-watchdog-dumps.patch @@ -122,7 +122,7 @@ index 8117a0334fdf59904e31a0419f7b5bf231d198c5..569fbb2f6c5f1ec286ecafe5c7f1b1fe private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b78bcccfb17f24cadea8ff63b6387a6f3ee6429b..a65a0ae8f7e9c2c5fe48d141dba6d95c2e94f426 100644 +index 82db53692f3fc38625d63f9371f2d842159c454c..873ae06dc0b5de6cc69e2e8a24a882ca90ee8663 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1031,7 +1031,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0678-Distance-manager-tick-timings.patch b/patches/server/0677-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0678-Distance-manager-tick-timings.patch rename to patches/server/0677-Distance-manager-tick-timings.patch diff --git a/patches/server/0679-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0678-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 100% rename from patches/server/0679-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0678-Fix-merchant-inventory-not-closing-on-entity-removal.patch diff --git a/patches/server/0680-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0679-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0680-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0679-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0681-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0680-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 100% rename from patches/server/0681-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0680-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/server/0682-Add-packet-limiter-config.patch b/patches/server/0681-Add-packet-limiter-config.patch similarity index 100% rename from patches/server/0682-Add-packet-limiter-config.patch rename to patches/server/0681-Add-packet-limiter-config.patch diff --git a/patches/server/0683-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0682-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0683-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0682-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0684-Ensure-valid-vehicle-status.patch b/patches/server/0683-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/server/0684-Ensure-valid-vehicle-status.patch rename to patches/server/0683-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0685-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0684-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0685-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0684-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0686-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0685-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0686-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0685-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0687-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0686-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0687-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0686-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0688-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0687-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0688-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0687-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0689-Preserve-overstacked-loot.patch b/patches/server/0688-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0689-Preserve-overstacked-loot.patch rename to patches/server/0688-Preserve-overstacked-loot.patch diff --git a/patches/server/0690-Update-head-rotation-in-missing-places.patch b/patches/server/0689-Update-head-rotation-in-missing-places.patch similarity index 93% rename from patches/server/0690-Update-head-rotation-in-missing-places.patch rename to patches/server/0689-Update-head-rotation-in-missing-places.patch index 67fac67f77c0..9478062a823f 100644 --- a/patches/server/0690-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0689-Update-head-rotation-in-missing-places.patch @@ -8,7 +8,7 @@ This is because bukkit uses a separate head rotation field for yaw. This issue only applies to players. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a65a0ae8f7e9c2c5fe48d141dba6d95c2e94f426..0591b20138bf8b36aa7d78fc0c672ab55abf4f24 100644 +index 873ae06dc0b5de6cc69e2e8a24a882ca90ee8663..cee005823020adaef519267630030e8d31b5b994 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1918,6 +1918,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0691-prevent-unintended-light-block-manipulation.patch b/patches/server/0690-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0691-prevent-unintended-light-block-manipulation.patch rename to patches/server/0690-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0692-Fix-CraftCriteria-defaults-map.patch b/patches/server/0691-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0692-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0691-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0693-Fix-upstreams-block-state-factories.patch b/patches/server/0692-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0693-Fix-upstreams-block-state-factories.patch rename to patches/server/0692-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0694-Configurable-feature-seeds.patch b/patches/server/0693-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0694-Configurable-feature-seeds.patch rename to patches/server/0693-Configurable-feature-seeds.patch diff --git a/patches/server/0695-Add-root-admin-user-detection.patch b/patches/server/0694-Add-root-admin-user-detection.patch similarity index 100% rename from patches/server/0695-Add-root-admin-user-detection.patch rename to patches/server/0694-Add-root-admin-user-detection.patch diff --git a/patches/server/0696-Always-allow-item-changing-in-Fireball.patch b/patches/server/0695-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0696-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0695-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0697-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0696-don-t-attempt-to-teleport-dead-entities.patch similarity index 91% rename from patches/server/0697-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0696-don-t-attempt-to-teleport-dead-entities.patch index bc383e78c4f3..2a248fca0c17 100644 --- a/patches/server/0697-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0696-don-t-attempt-to-teleport-dead-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0591b20138bf8b36aa7d78fc0c672ab55abf4f24..d2b2ab7415999b76d8cb0747f5b4235b5b4e07f6 100644 +index cee005823020adaef519267630030e8d31b5b994..3086ded2c65b2d623a50401fb0a1612d073da450 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -794,7 +794,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0698-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0697-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/server/0698-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0697-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0699-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0698-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 93% rename from patches/server/0699-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0698-Remove-client-side-code-using-deprecated-for-removal.patch index 80174ed25430..a495f1b8a588 100644 --- a/patches/server/0699-Remove-client-side-code-using-deprecated-for-removal.patch +++ b/patches/server/0698-Remove-client-side-code-using-deprecated-for-removal.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Remove client-side code using deprecated for removal Fixes warnings on build diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 3b73151b594e6f3882afa2a223d0d7ca5a0b47b3..736c7aed99928af654a8ee30602f705de18a8df6 100644 +index 485eba54061b1f7ad17435bce244135634c62b90..983aae5e9b381f34cbd5a3e167a46dd4b5f8a209 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -952,17 +952,7 @@ public class Util { diff --git a/patches/server/0700-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0699-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0700-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0699-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0701-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0700-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/server/0701-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0700-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0702-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0701-Hide-unnecessary-itemmeta-from-clients.patch similarity index 100% rename from patches/server/0702-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0701-Hide-unnecessary-itemmeta-from-clients.patch diff --git a/patches/server/0703-Fix-Spigot-growth-modifiers.patch b/patches/server/0702-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0703-Fix-Spigot-growth-modifiers.patch rename to patches/server/0702-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0704-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0703-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0704-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0703-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0705-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0704-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0705-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0704-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0706-Optimize-HashMapPalette.patch b/patches/server/0705-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0706-Optimize-HashMapPalette.patch rename to patches/server/0705-Optimize-HashMapPalette.patch diff --git a/patches/server/0707-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0706-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/server/0707-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0706-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/server/0708-Collision-optimisations.patch b/patches/server/0707-Collision-optimisations.patch similarity index 99% rename from patches/server/0708-Collision-optimisations.patch rename to patches/server/0707-Collision-optimisations.patch index 26fe75aa667a..1a3f24ba35a3 100644 --- a/patches/server/0708-Collision-optimisations.patch +++ b/patches/server/0707-Collision-optimisations.patch @@ -2214,7 +2214,7 @@ index f7588787769902506e317bdb052483c5dc377693..8f0d1e9e8a191a2049f3ad2d9b4ffdbd entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d2b2ab7415999b76d8cb0747f5b4235b5b4e07f6..7d70af32d67c5201e278424f7025eb8db5653d8e 100644 +index 3086ded2c65b2d623a50401fb0a1612d073da450..5be92231bf62285f29dcf32b2ef65baaf5755804 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1217,9 +1217,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -3005,7 +3005,7 @@ index 0d685f1f446061cc723d190b16eedcb2ddedfa46..b8188a5d0ac9be4d4ca52bd4faaf5a67 // Paper end diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 142f9438f75cb7e2d97011fdeb3f9e367ff81599..38d587c93a9ae5706633608f681f18684b7a631d 100644 +index af62781cc96354c87aa63d4f03f9e25b81959081..6c4fd56956982eee743b4dea4e8b925891dd3b6f 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -284,7 +284,7 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -3185,7 +3185,7 @@ index 12edaf88cca54540c617239ac31b2263dfa0ecd7..b39fea80fcb83873b7e7085eaaf935e7 // Paper end } diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -index 55208b4889f4af60f2b2b66ed6b102b2cd0bb26b..e21f4c5aff3a8e97101f6efc1349fbecf326b5ea 100644 +index 482616c7cbe12f7a23ec99378e24a87dedc2a8ae..441a6fc9d62e90bbd31569160c4f248c7d0b32de 100644 --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java @@ -241,6 +241,17 @@ public abstract class FlowingFluid extends Fluid { diff --git a/patches/server/0709-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0708-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 100% rename from patches/server/0709-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/0708-Optimise-collision-checking-in-player-move-packet-ha.patch diff --git a/patches/server/0710-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0709-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0710-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0709-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0711-Add-more-Campfire-API.patch b/patches/server/0710-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0711-Add-more-Campfire-API.patch rename to patches/server/0710-Add-more-Campfire-API.patch diff --git a/patches/server/0712-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0711-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0712-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0711-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0713-Fix-tripwire-state-inconsistency.patch b/patches/server/0712-Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/server/0713-Fix-tripwire-state-inconsistency.patch rename to patches/server/0712-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/0714-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0713-Forward-CraftEntity-in-teleport-command.patch similarity index 95% rename from patches/server/0714-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0713-Forward-CraftEntity-in-teleport-command.patch index 4e5fe82d765d..f6e58ad28406 100644 --- a/patches/server/0714-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0713-Forward-CraftEntity-in-teleport-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7d70af32d67c5201e278424f7025eb8db5653d8e..0d9d46b97314bd9a95d5d4f35bf196abfd11c200 100644 +index 5be92231bf62285f29dcf32b2ef65baaf5755804..a5820d750e88918ef819be0d0896e31b628ab302 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3531,6 +3531,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0715-Improve-scoreboard-entries.patch b/patches/server/0714-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0715-Improve-scoreboard-entries.patch rename to patches/server/0714-Improve-scoreboard-entries.patch diff --git a/patches/server/0716-Entity-powdered-snow-API.patch b/patches/server/0715-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0716-Entity-powdered-snow-API.patch rename to patches/server/0715-Entity-powdered-snow-API.patch diff --git a/patches/server/0717-Add-API-for-item-entity-health.patch b/patches/server/0716-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0717-Add-API-for-item-entity-health.patch rename to patches/server/0716-Add-API-for-item-entity-health.patch diff --git a/patches/server/0718-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0717-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/0718-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/0717-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/0719-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0718-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0719-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0718-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0720-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0719-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 98% rename from patches/server/0720-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0719-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch index b1fd3d50795e..5eefef38a3a0 100644 --- a/patches/server/0720-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch +++ b/patches/server/0719-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch @@ -27,7 +27,7 @@ Co-authored-by: Zach Brown Co-authored-by: Madeline Miller diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -index cda90023ad662e8875365eac98ec69f476dcb42d..470495903a9f0f8b925ddc4fb3d8213c556fccd9 100644 +index de9102f943fe90122b2fe7f94228b4248244374a..1818ab63209017b45a46a80802d500f2d042a208 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java @@ -159,15 +159,15 @@ public class PistonBaseBlock extends DirectionalBlock { diff --git a/patches/server/0721-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0720-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0721-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0720-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0722-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0721-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0722-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0721-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0723-Fix-bees-aging-inside-hives.patch b/patches/server/0722-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0723-Fix-bees-aging-inside-hives.patch rename to patches/server/0722-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0724-Bucketable-API.patch b/patches/server/0723-Bucketable-API.patch similarity index 100% rename from patches/server/0724-Bucketable-API.patch rename to patches/server/0723-Bucketable-API.patch diff --git a/patches/server/0725-Validate-usernames.patch b/patches/server/0724-Validate-usernames.patch similarity index 100% rename from patches/server/0725-Validate-usernames.patch rename to patches/server/0724-Validate-usernames.patch diff --git a/patches/server/0726-Make-water-animal-spawn-height-configurable.patch b/patches/server/0725-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0726-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0725-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0727-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0726-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/server/0727-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0726-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/server/0728-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0727-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/server/0728-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0727-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/server/0729-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0728-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/server/0729-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/server/0728-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/server/0730-Multiple-Entries-with-Scoreboards.patch b/patches/server/0729-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/server/0730-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0729-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/server/0731-Reset-placed-block-on-exception.patch b/patches/server/0730-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/server/0731-Reset-placed-block-on-exception.patch rename to patches/server/0730-Reset-placed-block-on-exception.patch diff --git a/patches/server/0732-Add-configurable-height-for-slime-spawn.patch b/patches/server/0731-Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/server/0732-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0731-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/server/0733-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0732-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/server/0733-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0732-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/server/0734-Multi-Block-Change-API-Implementation.patch b/patches/server/0733-Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/server/0734-Multi-Block-Change-API-Implementation.patch rename to patches/server/0733-Multi-Block-Change-API-Implementation.patch diff --git a/patches/server/0735-Fix-NotePlayEvent.patch b/patches/server/0734-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0735-Fix-NotePlayEvent.patch rename to patches/server/0734-Fix-NotePlayEvent.patch diff --git a/patches/server/0736-Freeze-Tick-Lock-API.patch b/patches/server/0735-Freeze-Tick-Lock-API.patch similarity index 97% rename from patches/server/0736-Freeze-Tick-Lock-API.patch rename to patches/server/0735-Freeze-Tick-Lock-API.patch index 82f27fc50769..c84e7d486065 100644 --- a/patches/server/0736-Freeze-Tick-Lock-API.patch +++ b/patches/server/0735-Freeze-Tick-Lock-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0d9d46b97314bd9a95d5d4f35bf196abfd11c200..b9e1f7d74f7ba8d4375077a39738bde6eb98e7ab 100644 +index a5820d750e88918ef819be0d0896e31b628ab302..e61cb14e9451b242c8324d81b462e80832ef73aa 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -409,6 +409,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0737-More-PotionEffectType-API.patch b/patches/server/0736-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0737-More-PotionEffectType-API.patch rename to patches/server/0736-More-PotionEffectType-API.patch diff --git a/patches/server/0738-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0737-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0738-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0737-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0739-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0738-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/server/0739-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0738-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/server/0740-Add-missing-structure-set-seed-configs.patch b/patches/server/0739-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/server/0740-Add-missing-structure-set-seed-configs.patch rename to patches/server/0739-Add-missing-structure-set-seed-configs.patch diff --git a/patches/server/0741-Implement-regenerateChunk.patch b/patches/server/0740-Implement-regenerateChunk.patch similarity index 100% rename from patches/server/0741-Implement-regenerateChunk.patch rename to patches/server/0740-Implement-regenerateChunk.patch diff --git a/patches/server/0742-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0741-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 95% rename from patches/server/0742-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0741-Fix-cancelled-powdered-snow-bucket-placement.patch index 6e39a914869c..c19dc0094625 100644 --- a/patches/server/0742-Fix-cancelled-powdered-snow-bucket-placement.patch +++ b/patches/server/0741-Fix-cancelled-powdered-snow-bucket-placement.patch @@ -8,7 +8,7 @@ snow bucket didn't revert grass that became snowy because of the placement. diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index fdcec8496abda362e611b42ef054ea730f47f408..8c839dc64b0a0271d7b19ee03a8144cf6224d4b2 100644 +index f23c1695840553ae14e49310b3708a801b5a0f8d..9a21a0aeff0da8e71ef8eea8bbfe3564409b986a 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -379,7 +379,7 @@ public final class ItemStack { diff --git a/patches/server/0743-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0742-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/server/0743-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0742-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0744-Add-GameEvent-tags.patch b/patches/server/0743-Add-GameEvent-tags.patch similarity index 100% rename from patches/server/0744-Add-GameEvent-tags.patch rename to patches/server/0743-Add-GameEvent-tags.patch diff --git a/patches/server/0745-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0744-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/server/0745-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0744-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/server/0746-Furnace-RecipesUsed-API.patch b/patches/server/0745-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/server/0746-Furnace-RecipesUsed-API.patch rename to patches/server/0745-Furnace-RecipesUsed-API.patch diff --git a/patches/server/0747-Configurable-sculk-sensor-listener-range.patch b/patches/server/0746-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/server/0747-Configurable-sculk-sensor-listener-range.patch rename to patches/server/0746-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/server/0748-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0747-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/server/0748-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0747-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0749-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0748-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 100% rename from patches/server/0749-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0748-Option-to-have-default-CustomSpawners-in-custom-worl.patch diff --git a/patches/server/0750-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0749-Put-world-into-worldlist-before-initing-the-world.patch similarity index 100% rename from patches/server/0750-Put-world-into-worldlist-before-initing-the-world.patch rename to patches/server/0749-Put-world-into-worldlist-before-initing-the-world.patch diff --git a/patches/server/0751-Fix-Entity-Position-Desync.patch b/patches/server/0750-Fix-Entity-Position-Desync.patch similarity index 100% rename from patches/server/0751-Fix-Entity-Position-Desync.patch rename to patches/server/0750-Fix-Entity-Position-Desync.patch diff --git a/patches/server/0752-Custom-Potion-Mixes.patch b/patches/server/0751-Custom-Potion-Mixes.patch similarity index 100% rename from patches/server/0752-Custom-Potion-Mixes.patch rename to patches/server/0751-Custom-Potion-Mixes.patch diff --git a/patches/server/0753-Force-close-world-loading-screen.patch b/patches/server/0752-Force-close-world-loading-screen.patch similarity index 100% rename from patches/server/0753-Force-close-world-loading-screen.patch rename to patches/server/0752-Force-close-world-loading-screen.patch diff --git a/patches/server/0754-Fix-falling-block-spawn-methods.patch b/patches/server/0753-Fix-falling-block-spawn-methods.patch similarity index 100% rename from patches/server/0754-Fix-falling-block-spawn-methods.patch rename to patches/server/0753-Fix-falling-block-spawn-methods.patch diff --git a/patches/server/0755-Expose-furnace-minecart-push-values.patch b/patches/server/0754-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0755-Expose-furnace-minecart-push-values.patch rename to patches/server/0754-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0756-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0755-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0756-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0755-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0757-More-Projectile-API.patch b/patches/server/0756-More-Projectile-API.patch similarity index 99% rename from patches/server/0757-More-Projectile-API.patch rename to patches/server/0756-More-Projectile-API.patch index 1bbc5e7a9881..1bf37aade4ee 100644 --- a/patches/server/0757-More-Projectile-API.patch +++ b/patches/server/0756-More-Projectile-API.patch @@ -20,7 +20,7 @@ public net.minecraft.world.entity.projectile.Projectile canHitEntity(Lnet/minecr Co-authored-by: Nassim Jahnke diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index 40307233e5bc67d538f580bc514a033c64d1316a..3f256b87cb4d5ecb745a949e6714682be805e72f 100644 +index bb116b0c75a311d0dc65c032a7727598890ef942..bc003f35251c119db095b73c951bf03d8cb7ba8c 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java @@ -100,6 +100,11 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie @@ -48,8 +48,8 @@ index 40307233e5bc67d538f580bc514a033c64d1316a..3f256b87cb4d5ecb745a949e6714682b } -- private boolean applySplash(List list, @Nullable Entity entity, HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - return boolean -+ private boolean applySplash(List list, @Nullable Entity entity, @Nullable HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - return boolean & More projectile API +- private boolean applySplash(List list, @Nullable Entity entity, HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - Fix potions splash events ++ private boolean applySplash(List list, @Nullable Entity entity, @Nullable HitResult position) { // CraftBukkit - Pass MovingObjectPosition // Paper - Fix potions splash events & More projectile API AABB axisalignedbb = this.getBoundingBox().inflate(4.0D, 2.0D, 4.0D); List list1 = this.level().getEntitiesOfClass(net.minecraft.world.entity.LivingEntity.class, axisalignedbb); Map affected = new HashMap(); // CraftBukkit diff --git a/patches/server/0758-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0757-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0758-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0757-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0759-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0758-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 100% rename from patches/server/0759-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0758-Don-t-allow-vehicle-movement-from-players-while-tele.patch diff --git a/patches/server/0760-Implement-getComputedBiome-API.patch b/patches/server/0759-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0760-Implement-getComputedBiome-API.patch rename to patches/server/0759-Implement-getComputedBiome-API.patch diff --git a/patches/server/0761-Make-some-itemstacks-nonnull.patch b/patches/server/0760-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0761-Make-some-itemstacks-nonnull.patch rename to patches/server/0760-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0762-Implement-enchantWithLevels-API.patch b/patches/server/0761-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0762-Implement-enchantWithLevels-API.patch rename to patches/server/0761-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0763-Fix-saving-in-unloadWorld.patch b/patches/server/0762-Fix-saving-in-unloadWorld.patch similarity index 100% rename from patches/server/0763-Fix-saving-in-unloadWorld.patch rename to patches/server/0762-Fix-saving-in-unloadWorld.patch diff --git a/patches/server/0764-Buffer-OOB-setBlock-calls.patch b/patches/server/0763-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0764-Buffer-OOB-setBlock-calls.patch rename to patches/server/0763-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0765-Add-TameableDeathMessageEvent.patch b/patches/server/0764-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0765-Add-TameableDeathMessageEvent.patch rename to patches/server/0764-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0766-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0765-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 97% rename from patches/server/0766-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0765-Fix-new-block-data-for-EntityChangeBlockEvent.patch index c6786496e55a..698d6aa543c5 100644 --- a/patches/server/0766-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0765-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -78,7 +78,7 @@ index 6e1c67ad757e466d122badd547ee3f8421eba9ba..cf4859814a60468f683e3afe285b4934 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 2beece01e1b2acc69eeb92810ce14db01a311f23..71bcd55d9d71fbd5bf3014c7e36d1456d8d5c3fd 100644 +index 0a2c2b847dc516abf31870116056dbdbb22f31d9..45906d273e6d6ec20cf44b4d07efdac68752ee9b 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -374,7 +374,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -131,7 +131,7 @@ index 6f452605e9dc9ebd9980eae9fdeea34417a37a88..2c60a3765d22909e73b660492410ab84 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index 3f256b87cb4d5ecb745a949e6714682be805e72f..d945c0a7b8ba87301e12b49f859e6fbe65de04f3 100644 +index bc003f35251c119db095b73c951bf03d8cb7ba8c..aaed936c7b6a6ebcd69c8c51f5c92c3b1c51ec27 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java @@ -306,7 +306,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie @@ -183,11 +183,11 @@ index 443a8a8e2f0791a1455193cb125e1560f5d1edab..8eaf1eaf0f739a12baf6e3e9fe32c007 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java b/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java -index c01cc63497917b0c5d95424c060c69f3693fc871..b6105d178778b326c11b7d29c5e4d8aa2c3a3875 100644 +index 61abbcfe97e3d3e3da5ee658672549d14594ad17..05e14322e519d1399e87beb532e1cc4a95f689aa 100644 --- a/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java +++ b/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java @@ -37,7 +37,7 @@ public class WaterlilyBlock extends BushBlock { - if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper + if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (world instanceof ServerLevel && entity instanceof Boat) { // CraftBukkit start - if (!CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState())) { diff --git a/patches/server/0767-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0766-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 100% rename from patches/server/0767-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0766-fix-player-loottables-running-when-mob-loot-gamerule.patch diff --git a/patches/server/0768-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0767-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 91% rename from patches/server/0768-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0767-Ensure-entity-passenger-world-matches-ridden-entity.patch index 02140bb2686e..eaaa489b7748 100644 --- a/patches/server/0768-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0767-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b9e1f7d74f7ba8d4375077a39738bde6eb98e7ab..b2844876255ec1d30e70b1b7f370b4751fecafb5 100644 +index e61cb14e9451b242c8324d81b462e80832ef73aa..837c5be7ba4caf8ad36262b15b8f5b644fb861db 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2847,7 +2847,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0769-cache-resource-keys.patch b/patches/server/0768-cache-resource-keys.patch similarity index 100% rename from patches/server/0769-cache-resource-keys.patch rename to patches/server/0768-cache-resource-keys.patch diff --git a/patches/server/0770-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0769-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/server/0770-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0769-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/server/0771-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0770-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0771-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0770-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0772-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0771-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 100% rename from patches/server/0772-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0771-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch diff --git a/patches/server/0773-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0772-Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/server/0773-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0772-Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/server/0774-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0773-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 100% rename from patches/server/0774-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0773-Use-username-instead-of-display-name-in-PlayerList-g.patch diff --git a/patches/server/0775-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0774-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 100% rename from patches/server/0775-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0774-Pass-ServerLevel-for-gamerule-callbacks.patch diff --git a/patches/server/0776-Expand-PlayerItemDamageEvent.patch b/patches/server/0775-Expand-PlayerItemDamageEvent.patch similarity index 79% rename from patches/server/0776-Expand-PlayerItemDamageEvent.patch rename to patches/server/0775-Expand-PlayerItemDamageEvent.patch index 8074d7b6ff44..b2968fc298e8 100644 --- a/patches/server/0776-Expand-PlayerItemDamageEvent.patch +++ b/patches/server/0775-Expand-PlayerItemDamageEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand PlayerItemDamageEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 8c839dc64b0a0271d7b19ee03a8144cf6224d4b2..66bb955bb338e4d1689daace28ebe295b6884554 100644 +index 9a21a0aeff0da8e71ef8eea8bbfe3564409b986a..c134cf3f86b75de5ef66b23642624436cc934159 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -638,10 +638,11 @@ public final class ItemStack { @@ -15,9 +15,9 @@ index 8c839dc64b0a0271d7b19ee03a8144cf6224d4b2..66bb955bb338e4d1689daace28ebe295 + int originalDamage = amount; // Paper - Expand PlayerItemDamageEvent amount -= k; // CraftBukkit start - if (player instanceof ServerPlayer serverPlayer) { // Paper -- PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount); // Paper -+ PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount, originalDamage); // Paper - Expand PlayerItemDamageEvent + if (player instanceof ServerPlayer serverPlayer) { // Paper - Add EntityDamageItemEvent +- PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount); // Paper - Add EntityDamageItemEvent ++ PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount, originalDamage); // Paper - Add EntityDamageItemEvent & Expand PlayerItemDamageEvent event.getPlayer().getServer().getPluginManager().callEvent(event); if (amount != event.getDamage() || event.isCancelled()) { diff --git a/patches/server/0777-WorldCreator-keepSpawnLoaded.patch b/patches/server/0776-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/server/0777-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0776-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/server/0778-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0777-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0778-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0777-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0779-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0778-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/server/0779-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0778-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/server/0780-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0779-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0780-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0779-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0781-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0780-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0781-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0780-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0782-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0781-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0782-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0781-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0783-Add-PlayerStopUsingItemEvent.patch b/patches/server/0782-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/server/0783-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0782-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/server/0784-Don-t-tick-markers.patch b/patches/server/0783-Don-t-tick-markers.patch similarity index 100% rename from patches/server/0784-Don-t-tick-markers.patch rename to patches/server/0783-Don-t-tick-markers.patch diff --git a/patches/server/0785-Expand-FallingBlock-API.patch b/patches/server/0784-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0785-Expand-FallingBlock-API.patch rename to patches/server/0784-Expand-FallingBlock-API.patch diff --git a/patches/server/0786-Do-not-accept-invalid-client-settings.patch b/patches/server/0785-Do-not-accept-invalid-client-settings.patch similarity index 100% rename from patches/server/0786-Do-not-accept-invalid-client-settings.patch rename to patches/server/0785-Do-not-accept-invalid-client-settings.patch diff --git a/patches/server/0787-Add-support-for-Proxy-Protocol.patch b/patches/server/0786-Add-support-for-Proxy-Protocol.patch similarity index 100% rename from patches/server/0787-Add-support-for-Proxy-Protocol.patch rename to patches/server/0786-Add-support-for-Proxy-Protocol.patch diff --git a/patches/server/0788-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0787-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0788-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0787-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0789-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0788-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0789-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0788-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0790-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0789-Sanitize-sent-BlockEntity-NBT.patch similarity index 100% rename from patches/server/0790-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0789-Sanitize-sent-BlockEntity-NBT.patch diff --git a/patches/server/0791-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0790-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0791-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0790-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0792-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0791-Prevent-entity-loading-causing-async-lookups.patch similarity index 97% rename from patches/server/0792-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0791-Prevent-entity-loading-causing-async-lookups.patch index 0d3b51189189..1d3f44f5e814 100644 --- a/patches/server/0792-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0791-Prevent-entity-loading-causing-async-lookups.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b2844876255ec1d30e70b1b7f370b4751fecafb5..5f8edf65598f1bed0b1726e645dc857ebb6d2e57 100644 +index 837c5be7ba4caf8ad36262b15b8f5b644fb861db..2804758ce72c943fa47c1ead685032c9501a0ea9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -803,6 +803,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0793-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0792-Throw-exception-on-world-create-while-being-ticked.patch similarity index 100% rename from patches/server/0793-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0792-Throw-exception-on-world-create-while-being-ticked.patch diff --git a/patches/server/0794-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0793-Add-Alternate-Current-redstone-implementation.patch similarity index 100% rename from patches/server/0794-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/0793-Add-Alternate-Current-redstone-implementation.patch diff --git a/patches/server/0795-Dont-resent-entity-on-art-update.patch b/patches/server/0794-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/server/0795-Dont-resent-entity-on-art-update.patch rename to patches/server/0794-Dont-resent-entity-on-art-update.patch diff --git a/patches/server/0796-Add-WardenAngerChangeEvent.patch b/patches/server/0795-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/server/0796-Add-WardenAngerChangeEvent.patch rename to patches/server/0795-Add-WardenAngerChangeEvent.patch diff --git a/patches/server/0797-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0796-Add-option-for-strict-advancement-dimension-checks.patch similarity index 100% rename from patches/server/0797-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0796-Add-option-for-strict-advancement-dimension-checks.patch diff --git a/patches/server/0798-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0797-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/server/0798-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0797-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/0799-Nameable-Banner-API.patch b/patches/server/0798-Nameable-Banner-API.patch similarity index 100% rename from patches/server/0799-Nameable-Banner-API.patch rename to patches/server/0798-Nameable-Banner-API.patch diff --git a/patches/server/0800-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0799-Don-t-broadcast-messages-to-command-blocks.patch similarity index 100% rename from patches/server/0800-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0799-Don-t-broadcast-messages-to-command-blocks.patch diff --git a/patches/server/0801-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0800-Prevent-empty-items-from-being-added-to-world.patch similarity index 100% rename from patches/server/0801-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0800-Prevent-empty-items-from-being-added-to-world.patch diff --git a/patches/server/0802-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0801-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/server/0802-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0801-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/server/0803-Add-Player-getFishHook.patch b/patches/server/0802-Add-Player-getFishHook.patch similarity index 100% rename from patches/server/0803-Add-Player-getFishHook.patch rename to patches/server/0802-Add-Player-getFishHook.patch diff --git a/patches/server/0804-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0803-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/server/0804-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0803-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/server/0805-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0804-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 98% rename from patches/server/0805-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0804-Add-various-missing-EntityDropItemEvent-calls.patch index 7dfeb7b4ec36..1fc3b95af33c 100644 --- a/patches/server/0805-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0804-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5f8edf65598f1bed0b1726e645dc857ebb6d2e57..67e5536b9e6fac1fe4f70fe0551b399380ec416f 100644 +index 2804758ce72c943fa47c1ead685032c9501a0ea9..071fc07228253d55edaf17950db80bb25001f7f8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2699,6 +2699,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0806-Fix-Bee-flower-NPE.patch b/patches/server/0805-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/server/0806-Fix-Bee-flower-NPE.patch rename to patches/server/0805-Fix-Bee-flower-NPE.patch diff --git a/patches/server/0807-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0806-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 100% rename from patches/server/0807-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0806-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch diff --git a/patches/server/0808-More-Teleport-API.patch b/patches/server/0807-More-Teleport-API.patch similarity index 100% rename from patches/server/0808-More-Teleport-API.patch rename to patches/server/0807-More-Teleport-API.patch diff --git a/patches/server/0809-Add-EntityPortalReadyEvent.patch b/patches/server/0808-Add-EntityPortalReadyEvent.patch similarity index 95% rename from patches/server/0809-Add-EntityPortalReadyEvent.patch rename to patches/server/0808-Add-EntityPortalReadyEvent.patch index 4a6e7d5cd883..c06f957a1e4c 100644 --- a/patches/server/0809-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0808-Add-EntityPortalReadyEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 67e5536b9e6fac1fe4f70fe0551b399380ec416f..c7022c10896f53379e3759f597b393143972163c 100644 +index 071fc07228253d55edaf17950db80bb25001f7f8..0d427f0a70c8d85762fededfe920418d66636ebb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3099,6 +3099,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0810-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0809-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/server/0810-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0809-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/server/0811-Send-block-entities-after-destroy-prediction.patch b/patches/server/0810-Send-block-entities-after-destroy-prediction.patch similarity index 100% rename from patches/server/0811-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0810-Send-block-entities-after-destroy-prediction.patch diff --git a/patches/server/0812-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0811-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 100% rename from patches/server/0812-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0811-Warn-on-plugins-accessing-faraway-chunks.patch diff --git a/patches/server/0813-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0812-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/server/0813-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0812-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/server/0814-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0813-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0814-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0813-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0815-Collision-API.patch b/patches/server/0814-Collision-API.patch similarity index 100% rename from patches/server/0815-Collision-API.patch rename to patches/server/0814-Collision-API.patch diff --git a/patches/server/0816-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0815-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 100% rename from patches/server/0816-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0815-Fix-suggest-command-message-for-brigadier-syntax-exc.patch diff --git a/patches/server/0817-Block-Ticking-API.patch b/patches/server/0816-Block-Ticking-API.patch similarity index 100% rename from patches/server/0817-Block-Ticking-API.patch rename to patches/server/0816-Block-Ticking-API.patch diff --git a/patches/server/0818-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0817-Add-Velocity-IP-Forwarding-Support.patch similarity index 100% rename from patches/server/0818-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0817-Add-Velocity-IP-Forwarding-Support.patch diff --git a/patches/server/0819-Add-NamespacedKey-biome-methods.patch b/patches/server/0818-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0819-Add-NamespacedKey-biome-methods.patch rename to patches/server/0818-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0820-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0819-Fix-plugin-loggers-on-server-shutdown.patch similarity index 100% rename from patches/server/0820-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0819-Fix-plugin-loggers-on-server-shutdown.patch diff --git a/patches/server/0821-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0820-Stop-large-look-changes-from-crashing-the-server.patch similarity index 100% rename from patches/server/0821-Stop-large-look-changes-from-crashing-the-server.patch rename to patches/server/0820-Stop-large-look-changes-from-crashing-the-server.patch diff --git a/patches/server/0822-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0821-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0822-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0821-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0823-Missing-eating-regain-reason.patch b/patches/server/0822-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0823-Missing-eating-regain-reason.patch rename to patches/server/0822-Missing-eating-regain-reason.patch diff --git a/patches/server/0824-Missing-effect-cause.patch b/patches/server/0823-Missing-effect-cause.patch similarity index 100% rename from patches/server/0824-Missing-effect-cause.patch rename to patches/server/0823-Missing-effect-cause.patch diff --git a/patches/server/0825-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0824-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0825-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0824-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0826-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0825-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0826-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0825-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0827-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0826-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0827-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0826-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0828-Configurable-chat-thread-limit.patch b/patches/server/0827-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0828-Configurable-chat-thread-limit.patch rename to patches/server/0827-Configurable-chat-thread-limit.patch diff --git a/patches/server/0829-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0828-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0829-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0828-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0830-fix-Jigsaw-block-kicking-user.patch b/patches/server/0829-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0830-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0829-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0831-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0830-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0831-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0830-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0832-Add-getDrops-to-BlockState.patch b/patches/server/0831-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0832-Add-getDrops-to-BlockState.patch rename to patches/server/0831-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0833-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0832-Fix-a-bunch-of-vanilla-bugs.patch similarity index 98% rename from patches/server/0833-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0832-Fix-a-bunch-of-vanilla-bugs.patch index a2d0ca49c52b..dbf556d50c93 100644 --- a/patches/server/0833-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0832-Fix-a-bunch-of-vanilla-bugs.patch @@ -77,7 +77,7 @@ Co-authored-by: William Blake Galbreath Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 9f220c99d7374ab3d9db222346694342d3e926c1..d9077127757886e5d5e8d63a46fe27f2bfba1420 100644 +index d41e3e5382b17d3de41054b496c1707a926a897a..cf22a46fdb45ac86571c93640ce7a8e1117190cd 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -351,7 +351,7 @@ public interface DispenseItemBehavior { @@ -129,7 +129,7 @@ index 534493aaddced9200e1618d5eabf2b176a1f35b6..a58c47b16254262ec705a8f986ef42c7 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index cf9f2d309a2b8ff67bd43bf191ab37e50baacaff..81db115871c524209adec41e79e37bbfb876805b 100644 +index 1089c0ad619784d25b1384db2f09eebb53fa4536..4ffb462f051744d5f7f7b4cf0c49f5d1533d1d53 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1032,7 +1032,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -142,7 +142,7 @@ index cf9f2d309a2b8ff67bd43bf191ab37e50baacaff..81db115871c524209adec41e79e37bbf if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 202077ef20e15e7e02a37babc1fb31478db4e92b..62110908f3230aa3e3b81772fed67aee8171cc53 100644 +index a4031882dfbded253c53e5e225fbcf0f06475fb5..6b7c52a190bf2e69887dd68c88f1c6707c321924 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -468,14 +468,14 @@ public class ServerPlayer extends Player { @@ -176,7 +176,7 @@ index 5333488e606f2966271e1d25bacfa4196ca5145b..9a68d910b0629c0dc7dce482f81752de this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 57fa7cdcb2feb959cb413d4675fca11544236628..423aa9b56c9e9152bba00f47a71ae41612bebdbd 100644 +index 633be3e140a17ac65d13f72382e2ef73bf815e47..71d5ffd9a5ac54d5acd25d07466e79d64996444e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -711,8 +711,10 @@ public abstract class PlayerList { @@ -442,11 +442,11 @@ index 6e45582f8ea7dd2a46f58369c5581764538bff0d..3ecc92439fc85d224ff52f41c5e34079 + // Paper end } diff --git a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java -index db8d2157df0b276313493af224be343ae0de0917..b53d27965d91ee19722f0325f6e0ba3a08684ea5 100644 +index 5199ad9ca36ccd18eb2ff191feaf4331404049d2..f41ffeb9062b661c2b8cf09c0d6848550591eaa7 100644 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java @@ -68,7 +68,7 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock { - if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper + if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!world.isClientSide && entity.isOnFire() && this.isEntityInsideContent(state, pos, entity)) { // CraftBukkit start - if (entity.mayInteract(world, pos)) { diff --git a/patches/server/0834-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0833-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 100% rename from patches/server/0834-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0833-Remove-unnecessary-onTrackingStart-during-navigation.patch diff --git a/patches/server/0835-Fix-custom-piglin-loved-items.patch b/patches/server/0834-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0835-Fix-custom-piglin-loved-items.patch rename to patches/server/0834-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0836-EntityPickupItemEvent-fixes.patch b/patches/server/0835-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0836-EntityPickupItemEvent-fixes.patch rename to patches/server/0835-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0837-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0836-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 100% rename from patches/server/0837-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0836-Correctly-handle-interactions-with-items-on-cooldown.patch diff --git a/patches/server/0838-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0837-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/server/0838-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0837-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/server/0839-Elder-Guardian-appearance-API.patch b/patches/server/0838-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/server/0839-Elder-Guardian-appearance-API.patch rename to patches/server/0838-Elder-Guardian-appearance-API.patch diff --git a/patches/server/0840-Allow-changing-bed-s-occupied-property.patch b/patches/server/0839-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0840-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0839-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0841-Add-entity-knockback-API.patch b/patches/server/0840-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0841-Add-entity-knockback-API.patch rename to patches/server/0840-Add-entity-knockback-API.patch diff --git a/patches/server/0842-Detect-headless-JREs.patch b/patches/server/0841-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0842-Detect-headless-JREs.patch rename to patches/server/0841-Detect-headless-JREs.patch diff --git a/patches/server/0843-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0842-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0843-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0842-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0844-optimize-dirt-and-snow-spreading.patch b/patches/server/0843-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/0844-optimize-dirt-and-snow-spreading.patch rename to patches/server/0843-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/0845-Add-EntityToggleSitEvent.patch b/patches/server/0844-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0845-Add-EntityToggleSitEvent.patch rename to patches/server/0844-Add-EntityToggleSitEvent.patch diff --git a/patches/server/0846-Add-fire-tick-delay-option.patch b/patches/server/0845-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0846-Add-fire-tick-delay-option.patch rename to patches/server/0845-Add-fire-tick-delay-option.patch diff --git a/patches/server/0847-Add-Moving-Piston-API.patch b/patches/server/0846-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0847-Add-Moving-Piston-API.patch rename to patches/server/0846-Add-Moving-Piston-API.patch diff --git a/patches/server/0848-Ignore-impossible-spawn-tick.patch b/patches/server/0847-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0848-Ignore-impossible-spawn-tick.patch rename to patches/server/0847-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0849-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0848-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 93% rename from patches/server/0849-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0848-Track-projectile-source-for-fireworks-from-dispenser.patch index 4cb8a0af3b4e..c5d89093dcd4 100644 --- a/patches/server/0849-Track-projectile-source-for-fireworks-from-dispenser.patch +++ b/patches/server/0848-Track-projectile-source-for-fireworks-from-dispenser.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Track projectile source for fireworks from dispensers diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index d9077127757886e5d5e8d63a46fe27f2bfba1420..da3081ff803431288843deda87f90165e2bc73f9 100644 +index cf22a46fdb45ac86571c93640ce7a8e1117190cd..0ae7a1bbb78af9f5b0efa0802a6d2128871da762 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -517,6 +517,7 @@ public interface DispenseItemBehavior { diff --git a/patches/server/0850-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0849-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0850-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0849-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0851-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0850-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 95% rename from patches/server/0851-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0850-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index 5e1ef1ce6d9b..7b9426fb6fab 100644 --- a/patches/server/0851-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0850-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c7022c10896f53379e3759f597b393143972163c..68956aa1e50bef726cb480e3c317223781eb10eb 100644 +index 0d427f0a70c8d85762fededfe920418d66636ebb..0c1cb3d5892b81b9f8a1894e429bc237c877298d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3378,6 +3378,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0852-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0851-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/server/0852-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0851-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/server/0853-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0852-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0853-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0852-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0854-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0853-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0854-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0853-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0855-Add-Player-Warden-Warning-API.patch b/patches/server/0854-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/server/0855-Add-Player-Warden-Warning-API.patch rename to patches/server/0854-Add-Player-Warden-Warning-API.patch diff --git a/patches/server/0856-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0855-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0856-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0855-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0857-Add-paper-dumplisteners-command.patch b/patches/server/0856-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0857-Add-paper-dumplisteners-command.patch rename to patches/server/0856-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0858-check-global-player-list-where-appropriate.patch b/patches/server/0857-check-global-player-list-where-appropriate.patch similarity index 100% rename from patches/server/0858-check-global-player-list-where-appropriate.patch rename to patches/server/0857-check-global-player-list-where-appropriate.patch diff --git a/patches/server/0859-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0858-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0859-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0858-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0860-ItemStack-damage-API.patch b/patches/server/0859-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0860-ItemStack-damage-API.patch rename to patches/server/0859-ItemStack-damage-API.patch diff --git a/patches/server/0861-Friction-API.patch b/patches/server/0860-Friction-API.patch similarity index 100% rename from patches/server/0861-Friction-API.patch rename to patches/server/0860-Friction-API.patch diff --git a/patches/server/0862-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0861-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0862-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0861-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0863-Fix-player-kick-on-shutdown.patch b/patches/server/0862-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0863-Fix-player-kick-on-shutdown.patch rename to patches/server/0862-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0864-Sync-offhand-slot-in-menus.patch b/patches/server/0863-Sync-offhand-slot-in-menus.patch similarity index 100% rename from patches/server/0864-Sync-offhand-slot-in-menus.patch rename to patches/server/0863-Sync-offhand-slot-in-menus.patch diff --git a/patches/server/0865-Player-Entity-Tracking-Events.patch b/patches/server/0864-Player-Entity-Tracking-Events.patch similarity index 96% rename from patches/server/0865-Player-Entity-Tracking-Events.patch rename to patches/server/0864-Player-Entity-Tracking-Events.patch index e46dfbad5f5a..5a6899fbf481 100644 --- a/patches/server/0865-Player-Entity-Tracking-Events.patch +++ b/patches/server/0864-Player-Entity-Tracking-Events.patch @@ -21,7 +21,7 @@ index a58c47b16254262ec705a8f986ef42c71503770d..8c5364e6adecc01f4fa9dcd0b4fd18e8 } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 68956aa1e50bef726cb480e3c317223781eb10eb..308573493d899e7df9b4ecbd4fe7cd5a533628d8 100644 +index 0c1cb3d5892b81b9f8a1894e429bc237c877298d..ee3dac1d45e0ab85cd21871029650fbed7310a34 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4107,7 +4107,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0866-Limit-pet-look-distance.patch b/patches/server/0865-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0866-Limit-pet-look-distance.patch rename to patches/server/0865-Limit-pet-look-distance.patch diff --git a/patches/server/0867-Properly-resend-entities.patch b/patches/server/0866-Properly-resend-entities.patch similarity index 100% rename from patches/server/0867-Properly-resend-entities.patch rename to patches/server/0866-Properly-resend-entities.patch diff --git a/patches/server/0868-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0867-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0868-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0867-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0869-fix-Instruments.patch b/patches/server/0868-fix-Instruments.patch similarity index 100% rename from patches/server/0869-fix-Instruments.patch rename to patches/server/0868-fix-Instruments.patch diff --git a/patches/server/0870-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0869-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 100% rename from patches/server/0870-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0869-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch diff --git a/patches/server/0871-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0870-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 99% rename from patches/server/0871-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0870-Fix-inconsistencies-in-dispense-events-regarding-sta.patch index f07dc4776648..2ffca4c12cef 100644 --- a/patches/server/0871-Fix-inconsistencies-in-dispense-events-regarding-sta.patch +++ b/patches/server/0870-Fix-inconsistencies-in-dispense-events-regarding-sta.patch @@ -86,7 +86,7 @@ index 90e1914599b43c8bf813596b3b428d8be3bac1b5..6df0db8b4cdab23494ea34236949ece4 } diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index da3081ff803431288843deda87f90165e2bc73f9..21bba99bf1f06a95cc6834de2886b03ebeb9562f 100644 +index 0ae7a1bbb78af9f5b0efa0802a6d2128871da762..a16fb04c014d3b2f3dac0610f8be81586d41c4e9 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -217,7 +217,7 @@ public interface DispenseItemBehavior { diff --git a/patches/server/0872-Add-BlockLockCheckEvent.patch b/patches/server/0871-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0872-Add-BlockLockCheckEvent.patch rename to patches/server/0871-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0873-Add-Sneaking-API-for-Entities.patch b/patches/server/0872-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/server/0873-Add-Sneaking-API-for-Entities.patch rename to patches/server/0872-Add-Sneaking-API-for-Entities.patch diff --git a/patches/server/0874-Improve-logging-and-errors.patch b/patches/server/0873-Improve-logging-and-errors.patch similarity index 100% rename from patches/server/0874-Improve-logging-and-errors.patch rename to patches/server/0873-Improve-logging-and-errors.patch diff --git a/patches/server/0875-Improve-PortalEvents.patch b/patches/server/0874-Improve-PortalEvents.patch similarity index 93% rename from patches/server/0875-Improve-PortalEvents.patch rename to patches/server/0874-Improve-PortalEvents.patch index 4baa9b1721ad..481c409ed04a 100644 --- a/patches/server/0875-Improve-PortalEvents.patch +++ b/patches/server/0874-Improve-PortalEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 308573493d899e7df9b4ecbd4fe7cd5a533628d8..912913b5d9b71e54661f7e4d1767d7ae149d13f7 100644 +index ee3dac1d45e0ab85cd21871029650fbed7310a34..30e831bc4409260047016279aa5f36d2ad2934b4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3765,7 +3765,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0876-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0875-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0876-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0875-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0877-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0876-Add-missing-SpigotConfig-logCommands-check.patch similarity index 100% rename from patches/server/0877-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0876-Add-missing-SpigotConfig-logCommands-check.patch diff --git a/patches/server/0878-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0877-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0878-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0877-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0879-Flying-Fall-Damage.patch b/patches/server/0878-Flying-Fall-Damage.patch similarity index 100% rename from patches/server/0879-Flying-Fall-Damage.patch rename to patches/server/0878-Flying-Fall-Damage.patch diff --git a/patches/server/0880-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0879-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/server/0880-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0879-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/server/0881-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0880-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 91% rename from patches/server/0881-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0880-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index cb64e5ae62c2..8dbe3cc05414 100644 --- a/patches/server/0881-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0880-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 912913b5d9b71e54661f7e4d1767d7ae149d13f7..9c686161a1248af1cc8ae20c67c7b2b8d881e07d 100644 +index 30e831bc4409260047016279aa5f36d2ad2934b4..b295895b2b1f8b3fbf7d97712e14b1447350a0ff 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1162,7 +1162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0882-config-for-disabling-entity-tag-tags.patch b/patches/server/0881-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0882-config-for-disabling-entity-tag-tags.patch rename to patches/server/0881-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0883-Use-single-player-info-update-packet-on-join.patch b/patches/server/0882-Use-single-player-info-update-packet-on-join.patch similarity index 100% rename from patches/server/0883-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0882-Use-single-player-info-update-packet-on-join.patch diff --git a/patches/server/0884-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0883-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 100% rename from patches/server/0884-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0883-Correctly-shrink-items-during-EntityResurrectEvent.patch diff --git a/patches/server/0885-Win-Screen-API.patch b/patches/server/0884-Win-Screen-API.patch similarity index 100% rename from patches/server/0885-Win-Screen-API.patch rename to patches/server/0884-Win-Screen-API.patch diff --git a/patches/server/0886-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0885-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0886-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0885-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0887-Fix-force-opening-enchantment-tables.patch b/patches/server/0886-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0887-Fix-force-opening-enchantment-tables.patch rename to patches/server/0886-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0888-Add-Entity-Body-Yaw-API.patch b/patches/server/0887-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0888-Add-Entity-Body-Yaw-API.patch rename to patches/server/0887-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0889-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0888-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0889-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0888-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0890-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0889-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 100% rename from patches/server/0890-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0889-Update-the-flag-when-a-captured-block-state-is-outda.patch diff --git a/patches/server/0891-Add-EntityFertilizeEggEvent.patch b/patches/server/0890-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/server/0891-Add-EntityFertilizeEggEvent.patch rename to patches/server/0890-Add-EntityFertilizeEggEvent.patch diff --git a/patches/server/0892-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0891-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0892-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0891-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0893-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0892-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0893-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0892-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0894-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0893-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0894-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0893-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0895-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0894-Fix-advancement-triggers-for-entity-damage.patch similarity index 100% rename from patches/server/0895-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0894-Fix-advancement-triggers-for-entity-damage.patch diff --git a/patches/server/0896-Fix-text-display-error-on-spawn.patch b/patches/server/0895-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0896-Fix-text-display-error-on-spawn.patch rename to patches/server/0895-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0897-Fix-inventories-returning-null-Locations.patch b/patches/server/0896-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0897-Fix-inventories-returning-null-Locations.patch rename to patches/server/0896-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0898-Add-Shearable-API.patch b/patches/server/0897-Add-Shearable-API.patch similarity index 100% rename from patches/server/0898-Add-Shearable-API.patch rename to patches/server/0897-Add-Shearable-API.patch diff --git a/patches/server/0899-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0898-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0899-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0898-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0900-Optimize-Hoppers.patch b/patches/server/0899-Optimize-Hoppers.patch similarity index 99% rename from patches/server/0900-Optimize-Hoppers.patch rename to patches/server/0899-Optimize-Hoppers.patch index 712f9a5637c4..9b9fd8f6da21 100644 --- a/patches/server/0900-Optimize-Hoppers.patch +++ b/patches/server/0899-Optimize-Hoppers.patch @@ -50,7 +50,7 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b46e1d09a949eee8c7df2c2dced24ffba17a251a..e865a887eab9c43291b73661e8748330167cc682 100644 +index bb8381c51bc6b37111b837710da7e1ccbca6df5d..5868f13fa3a3791704ba8e344b9c51d88786f41b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1672,6 +1672,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 66bb955bb338e4d1689daace28ebe295b6884554..a246e12438402dd692a5171f1e779f5f77d2f212 100644 +index c134cf3f86b75de5ef66b23642624436cc934159..d62fffa3a7cb33600328d413a27ff1bf70298933 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -749,10 +749,16 @@ public final class ItemStack { @@ -105,7 +105,7 @@ index 0fdf74317a20a250b474978c9e50a6c533abfbe6..4ce7a7947fa727e64556148f923508ce } diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index f98367830e87d5f1428448931f756d9277699563..df1c1c27b7c0065f8179d59bdb9de01dde22befa 100644 +index 321d30f1c0d3838b9c3d210eedb03aa59e0761d8..a61d7cd2b078fe511ff00344197b6ea11feebfb2 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java @@ -151,6 +151,43 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen @@ -647,7 +647,7 @@ index f98367830e87d5f1428448931f756d9277699563..df1c1c27b7c0065f8179d59bdb9de01d + ignoreTileUpdates = true; // Paper - Perf: Optimize Hoppers to.setItem(slot, stack); + ignoreTileUpdates = false; // Paper - Perf: Optimize Hoppers - stack = leftover; // Paper + stack = leftover; // Paper - Make hoppers respect inventory max stack size flag = true; } else if (HopperBlockEntity.canMergeItems(itemstack1, stack)) { @@ -517,19 +799,47 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen diff --git a/patches/server/0901-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0900-Fix-beehives-generating-from-using-bonemeal.patch similarity index 96% rename from patches/server/0901-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0900-Fix-beehives-generating-from-using-bonemeal.patch index d2dec516532c..f84aee22bc3a 100644 --- a/patches/server/0901-Fix-beehives-generating-from-using-bonemeal.patch +++ b/patches/server/0900-Fix-beehives-generating-from-using-bonemeal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix beehives generating from using bonemeal diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index a246e12438402dd692a5171f1e779f5f77d2f212..df38d95c38831c884cbfb4a15b8ba682f0b1ab51 100644 +index d62fffa3a7cb33600328d413a27ff1bf70298933..63cd9cd79217a9bcedb6647e6f61d9bccc28d9f0 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -422,6 +422,7 @@ public final class ItemStack { diff --git a/patches/server/0902-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0901-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0902-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0901-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0903-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0902-Treat-sequence-violations-like-they-should-be.patch similarity index 100% rename from patches/server/0903-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0902-Treat-sequence-violations-like-they-should-be.patch diff --git a/patches/server/0904-remove-duplicate-animate-packet-for-records.patch b/patches/server/0903-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0904-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0903-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0905-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0904-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/server/0905-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0904-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/server/0906-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0905-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 100% rename from patches/server/0906-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0905-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch diff --git a/patches/server/0907-Use-array-for-gamerule-storage.patch b/patches/server/0906-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0907-Use-array-for-gamerule-storage.patch rename to patches/server/0906-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0908-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0907-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0908-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0907-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0909-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0908-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0909-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0908-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0910-Add-Mob-Experience-reward-API.patch b/patches/server/0909-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0910-Add-Mob-Experience-reward-API.patch rename to patches/server/0909-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0911-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0910-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0911-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0910-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0912-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0911-Fix-DamageCause-for-Falling-Blocks.patch similarity index 100% rename from patches/server/0912-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0911-Fix-DamageCause-for-Falling-Blocks.patch diff --git a/patches/server/0913-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0912-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0913-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0912-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0914-More-accurate-isInOpenWater-impl.patch b/patches/server/0913-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0914-More-accurate-isInOpenWater-impl.patch rename to patches/server/0913-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0915-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0914-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0915-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0914-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0916-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0915-Optimise-recalcBlockCounts-for-empty-sections.patch similarity index 100% rename from patches/server/0916-Optimise-recalcBlockCounts-for-empty-sections.patch rename to patches/server/0915-Optimise-recalcBlockCounts-for-empty-sections.patch diff --git a/patches/server/0917-Expand-PlayerItemMendEvent.patch b/patches/server/0916-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/server/0917-Expand-PlayerItemMendEvent.patch rename to patches/server/0916-Expand-PlayerItemMendEvent.patch diff --git a/patches/server/0918-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0917-Refresh-ProjectileSource-for-projectiles.patch similarity index 97% rename from patches/server/0918-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0917-Refresh-ProjectileSource-for-projectiles.patch index d8d231dc6f87..c3079d4fbfc4 100644 --- a/patches/server/0918-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0917-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9c686161a1248af1cc8ae20c67c7b2b8d881e07d..cedf5d153abf6d0edc2a56ca7e393ece362145d3 100644 +index b295895b2b1f8b3fbf7d97712e14b1447350a0ff..5c21f26109910c0783afd32953a035144d19ec94 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -386,6 +386,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0919-Add-transient-modifier-API.patch b/patches/server/0918-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0919-Add-transient-modifier-API.patch rename to patches/server/0918-Add-transient-modifier-API.patch diff --git a/patches/server/0920-Fix-block-place-logic.patch b/patches/server/0919-Fix-block-place-logic.patch similarity index 97% rename from patches/server/0920-Fix-block-place-logic.patch rename to patches/server/0919-Fix-block-place-logic.patch index fa5764019ad0..b8f54129f987 100644 --- a/patches/server/0920-Fix-block-place-logic.patch +++ b/patches/server/0919-Fix-block-place-logic.patch @@ -22,7 +22,7 @@ index daf093518f1daf598c858cfaf48357255a1fb0cf..c06e4b0683f0f125b79a4afce7daf909 if ((entityhuman == null || !entityhuman.getAbilities().instabuild) && itemstack != ItemStack.EMPTY) { // CraftBukkit itemstack.shrink(1); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index df38d95c38831c884cbfb4a15b8ba682f0b1ab51..82a1615f00b6f32c81e537f93a3d36450c5d291e 100644 +index 63cd9cd79217a9bcedb6647e6f61d9bccc28d9f0..6070711b9825612fbc485d840ed3ed80cf912493 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -493,13 +493,7 @@ public final class ItemStack { diff --git a/patches/server/0921-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0920-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 94% rename from patches/server/0921-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0920-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch index 27be0d496381..1b0f7c67c4e0 100644 --- a/patches/server/0921-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch +++ b/patches/server/0920-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 82a1615f00b6f32c81e537f93a3d36450c5d291e..25403f5774862ed37f3e1be05e97390d16d0b985 100644 +index 6070711b9825612fbc485d840ed3ed80cf912493..587167154b5528faea457485c0d38c0f48e8904a 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -544,7 +544,11 @@ public final class ItemStack { diff --git a/patches/server/0922-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0921-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0922-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0921-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0923-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0922-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 100% rename from patches/server/0923-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0922-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch diff --git a/patches/server/0924-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0923-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0924-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0923-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0925-Fix-sniffer-removeExploredLocation.patch b/patches/server/0924-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0925-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0924-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0926-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0925-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0926-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0925-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0927-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0926-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch similarity index 100% rename from patches/server/0927-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename to patches/server/0926-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch diff --git a/patches/server/0928-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0927-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0928-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0927-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0929-Properly-cancel-usable-items.patch b/patches/server/0928-Properly-cancel-usable-items.patch similarity index 100% rename from patches/server/0929-Properly-cancel-usable-items.patch rename to patches/server/0928-Properly-cancel-usable-items.patch diff --git a/patches/server/0930-Add-event-for-player-editing-sign.patch b/patches/server/0929-Add-event-for-player-editing-sign.patch similarity index 98% rename from patches/server/0930-Add-event-for-player-editing-sign.patch rename to patches/server/0929-Add-event-for-player-editing-sign.patch index 0e79d7c13752..9eea1724feca 100644 --- a/patches/server/0930-Add-event-for-player-editing-sign.patch +++ b/patches/server/0929-Add-event-for-player-editing-sign.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add event for player editing sign diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 25403f5774862ed37f3e1be05e97390d16d0b985..2a76c686cc1e5609db85bf21718660cf838d5899 100644 +index 587167154b5528faea457485c0d38c0f48e8904a..064b86c80e12af1e1e7f9b28484f51e9a3474e82 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -523,7 +523,7 @@ public final class ItemStack { diff --git a/patches/server/0931-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0930-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0931-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0930-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0932-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0931-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0932-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0931-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0933-Add-option-to-disable-block-updates.patch b/patches/server/0932-Add-option-to-disable-block-updates.patch similarity index 98% rename from patches/server/0933-Add-option-to-disable-block-updates.patch rename to patches/server/0932-Add-option-to-disable-block-updates.patch index d5021ec9ed8e..f3797c4109d4 100644 --- a/patches/server/0933-Add-option-to-disable-block-updates.patch +++ b/patches/server/0932-Add-option-to-disable-block-updates.patch @@ -108,7 +108,7 @@ index 92a24cf02f15f3ab893eb9a793770d9819e4f600..a541dc3a6e373b30fff0abf5305e7785 this.playNote(player, state, world, pos); player.awardStat(Stats.TUNE_NOTEBLOCK); diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java -index 634a8d25fede36f848cf621bdada71eb4b32c67e..563c4c38fc99cd39e508b6c31aac5321b2e313cb 100644 +index a93a085b2e9564a2ff950fff505d856be7904863..3cb1db27dba902678a5848a1fb5e2c6ec6241e60 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java @@ -66,6 +66,7 @@ public class TripWireBlock extends Block { @@ -162,7 +162,7 @@ index 634a8d25fede36f848cf621bdada71eb4b32c67e..563c4c38fc99cd39e508b6c31aac5321 @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { + if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent tripwires from detecting collision - if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper + if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent if (!world.isClientSide) { if (!(Boolean) state.getValue(TripWireBlock.POWERED)) { @@ -150,6 +157,7 @@ public class TripWireBlock extends Block { diff --git a/patches/server/0934-Call-missing-BlockDispenseEvent.patch b/patches/server/0933-Call-missing-BlockDispenseEvent.patch similarity index 98% rename from patches/server/0934-Call-missing-BlockDispenseEvent.patch rename to patches/server/0933-Call-missing-BlockDispenseEvent.patch index 87c9052b3c97..d2414deee8b2 100644 --- a/patches/server/0934-Call-missing-BlockDispenseEvent.patch +++ b/patches/server/0933-Call-missing-BlockDispenseEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Call missing BlockDispenseEvent diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 21bba99bf1f06a95cc6834de2886b03ebeb9562f..97cff1d1c92f3c06897c7ef5da612eca0ee49b2f 100644 +index a16fb04c014d3b2f3dac0610f8be81586d41c4e9..ad9eb752a2676c6acdba601b63a5fd1611316267 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -1106,6 +1106,13 @@ public interface DispenseItemBehavior { diff --git a/patches/server/0935-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0934-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 90% rename from patches/server/0935-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0934-Don-t-load-chunks-for-supporting-block-checks.patch index 8b19f91a28f5..217bb7961189 100644 --- a/patches/server/0935-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0934-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cedf5d153abf6d0edc2a56ca7e393ece362145d3..3cbe1cf7ed1091a74432ca6eb5745d10e590f5d3 100644 +index 5c21f26109910c0783afd32953a035144d19ec94..d08ce34e1d1ce4ac239f6b7ecf0579ab130fa976 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1362,7 +1362,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0936-Optimize-player-lookups-for-beacons.patch b/patches/server/0935-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0936-Optimize-player-lookups-for-beacons.patch rename to patches/server/0935-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0937-Add-Sign-getInteractableSideFor.patch b/patches/server/0936-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0937-Add-Sign-getInteractableSideFor.patch rename to patches/server/0936-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0938-Array-backed-synched-entity-data.patch b/patches/server/0937-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0938-Array-backed-synched-entity-data.patch rename to patches/server/0937-Array-backed-synched-entity-data.patch diff --git a/patches/server/0939-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0938-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0939-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0938-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0940-Fix-BanList-API.patch b/patches/server/0939-Fix-BanList-API.patch similarity index 100% rename from patches/server/0940-Fix-BanList-API.patch rename to patches/server/0939-Fix-BanList-API.patch diff --git a/patches/server/0941-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0940-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 95% rename from patches/server/0941-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0940-Determine-lava-and-water-fluid-explosion-resistance-.patch index 40890b3d2895..bea2e1c86f7f 100644 --- a/patches/server/0941-Determine-lava-and-water-fluid-explosion-resistance-.patch +++ b/patches/server/0940-Determine-lava-and-water-fluid-explosion-resistance-.patch @@ -22,7 +22,7 @@ index 72f8b72c6436ca3b8eaeb39c7d3efe2c1462ae1d..3bb4a9a1a6249e8ba2de237f801210e7 @Override diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -index 82e85fbbd45244d02df90fa00c9046e7f51275a2..d8c26b02188a6d443c6ec73bd5fa2fa8197a5e59 100644 +index c5f9eda32f2cd172569c7b7d72f5dd3e41a34a70..cde93efaecd42b9081405638af3ba91cb5e184c9 100644 --- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java +++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java @@ -109,7 +109,7 @@ public abstract class WaterFluid extends FlowingFluid { diff --git a/patches/server/0942-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0941-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0942-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0941-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0943-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0942-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0943-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0942-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0944-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0943-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 100% rename from patches/server/0944-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0943-ExperienceOrb-should-call-EntitySpawnEvent.patch diff --git a/patches/server/0945-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0944-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0945-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0944-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0946-Add-whitelist-events.patch b/patches/server/0945-Add-whitelist-events.patch similarity index 100% rename from patches/server/0946-Add-whitelist-events.patch rename to patches/server/0945-Add-whitelist-events.patch diff --git a/patches/server/0947-Implement-PlayerFailMoveEvent.patch b/patches/server/0946-Implement-PlayerFailMoveEvent.patch similarity index 100% rename from patches/server/0947-Implement-PlayerFailMoveEvent.patch rename to patches/server/0946-Implement-PlayerFailMoveEvent.patch diff --git a/patches/server/0948-Folia-scheduler-and-owned-region-API.patch b/patches/server/0947-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0948-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0947-Folia-scheduler-and-owned-region-API.patch index 17cf66aa5eb7..f421a9d3bef2 100644 --- a/patches/server/0948-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0947-Folia-scheduler-and-owned-region-API.patch @@ -1185,7 +1185,7 @@ index 8d8cc5463f261334d0aabf4fd31854a2af862acc..e05bfebf51d210dad08292489bae8930 this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3cbe1cf7ed1091a74432ca6eb5745d10e590f5d3..de71cbda2f38ebce85819cfe008ae44c969dee01 100644 +index d08ce34e1d1ce4ac239f6b7ecf0579ab130fa976..c59494078ee587c8dd89e7943db85863868ae15f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -249,11 +249,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0949-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0948-Only-erase-allay-memory-on-non-item-targets.patch similarity index 100% rename from patches/server/0949-Only-erase-allay-memory-on-non-item-targets.patch rename to patches/server/0948-Only-erase-allay-memory-on-non-item-targets.patch diff --git a/patches/server/0950-API-for-updating-recipes-on-clients.patch b/patches/server/0949-API-for-updating-recipes-on-clients.patch similarity index 100% rename from patches/server/0950-API-for-updating-recipes-on-clients.patch rename to patches/server/0949-API-for-updating-recipes-on-clients.patch diff --git a/patches/server/0951-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0950-Fix-rotation-when-spawning-display-entities.patch similarity index 100% rename from patches/server/0951-Fix-rotation-when-spawning-display-entities.patch rename to patches/server/0950-Fix-rotation-when-spawning-display-entities.patch diff --git a/patches/server/0952-Only-capture-actual-tree-growth.patch b/patches/server/0951-Only-capture-actual-tree-growth.patch similarity index 96% rename from patches/server/0952-Only-capture-actual-tree-growth.patch rename to patches/server/0951-Only-capture-actual-tree-growth.patch index ff212708ba2c..d60275516c35 100644 --- a/patches/server/0952-Only-capture-actual-tree-growth.patch +++ b/patches/server/0951-Only-capture-actual-tree-growth.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Only capture actual tree growth diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 97cff1d1c92f3c06897c7ef5da612eca0ee49b2f..6e19de21b6bb643961afc1d5eced3e0d0d98a027 100644 +index ad9eb752a2676c6acdba601b63a5fd1611316267..738f6348c14b0f6942f90d15b082e16d16c89411 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -862,6 +862,7 @@ public interface DispenseItemBehavior { @@ -17,7 +17,7 @@ index 97cff1d1c92f3c06897c7ef5da612eca0ee49b2f..6e19de21b6bb643961afc1d5eced3e0d } } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 2a76c686cc1e5609db85bf21718660cf838d5899..7f48a350a2bddf891e54e8e5349976cda0154c48 100644 +index 064b86c80e12af1e1e7f9b28484f51e9a3474e82..dc6a1a1fb78d25834f3f97c5ce3b13567c718ca0 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -422,6 +422,7 @@ public final class ItemStack { diff --git a/patches/server/0953-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0952-Use-correct-source-for-mushroom-block-spread-event.patch similarity index 100% rename from patches/server/0953-Use-correct-source-for-mushroom-block-spread-event.patch rename to patches/server/0952-Use-correct-source-for-mushroom-block-spread-event.patch diff --git a/patches/server/0954-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0953-Respect-randomizeData-on-more-entities-when-spawning.patch similarity index 100% rename from patches/server/0954-Respect-randomizeData-on-more-entities-when-spawning.patch rename to patches/server/0953-Respect-randomizeData-on-more-entities-when-spawning.patch diff --git a/patches/server/0955-Use-correct-seed-on-api-world-load.patch b/patches/server/0954-Use-correct-seed-on-api-world-load.patch similarity index 85% rename from patches/server/0955-Use-correct-seed-on-api-world-load.patch rename to patches/server/0954-Use-correct-seed-on-api-world-load.patch index 3e622561c993..b3f9910d035d 100644 --- a/patches/server/0955-Use-correct-seed-on-api-world-load.patch +++ b/patches/server/0954-Use-correct-seed-on-api-world-load.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Use correct seed on api world load diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index be176bbb17e871d7ff99e7136cbb0a5bbc25f047..d9aecf9f930b0cd4b21b7c29628ea4b49f087209 100644 +index 37cac3fcb1d7cb5ca7725bc2447ed1603e2cec20..8c4021967c22deb60eab6a6fe8110b746c642e07 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1347,7 +1347,7 @@ public final class CraftServer implements Server { - // Paper - move down + // Paper - fix and optimise world upgrading; move down - long j = BiomeManager.obfuscateSeed(creator.seed()); + long j = BiomeManager.obfuscateSeed(worlddata.worldGenOptions().seed()); // Paper - use world seed diff --git a/patches/server/0956-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0955-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch similarity index 100% rename from patches/server/0956-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch rename to patches/server/0955-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch diff --git a/patches/server/0957-Cache-map-ids-on-item-frames.patch b/patches/server/0956-Cache-map-ids-on-item-frames.patch similarity index 100% rename from patches/server/0957-Cache-map-ids-on-item-frames.patch rename to patches/server/0956-Cache-map-ids-on-item-frames.patch diff --git a/patches/server/0958-Fix-custom-statistic-criteria-creation.patch b/patches/server/0957-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/server/0958-Fix-custom-statistic-criteria-creation.patch rename to patches/server/0957-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/server/0959-Bandaid-fix-for-Effect.patch b/patches/server/0958-Bandaid-fix-for-Effect.patch similarity index 100% rename from patches/server/0959-Bandaid-fix-for-Effect.patch rename to patches/server/0958-Bandaid-fix-for-Effect.patch diff --git a/patches/server/0960-SculkCatalyst-bloom-API.patch b/patches/server/0959-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/server/0960-SculkCatalyst-bloom-API.patch rename to patches/server/0959-SculkCatalyst-bloom-API.patch diff --git a/patches/server/0961-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0960-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/server/0961-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0960-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/server/0962-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0961-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 100% rename from patches/server/0962-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/0961-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch diff --git a/patches/server/0963-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0962-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/server/0963-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0962-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/server/0964-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0963-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 100% rename from patches/server/0964-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0963-Don-t-tab-complete-namespaced-commands-if-send-names.patch diff --git a/patches/server/0965-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0964-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 99% rename from patches/server/0965-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0964-Properly-handle-BlockBreakEvent-isDropItems.patch index bf620cc4a831..76d4a5c48b60 100644 --- a/patches/server/0965-Properly-handle-BlockBreakEvent-isDropItems.patch +++ b/patches/server/0964-Properly-handle-BlockBreakEvent-isDropItems.patch @@ -39,7 +39,7 @@ index ed87664f513cf82c7bf8439672a656d0a57c1991..80a362fb6c073dee086bf4a46128a1fe BeehiveBlockEntity tileentitybeehive = (BeehiveBlockEntity) blockEntity; diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 38d587c93a9ae5706633608f681f18684b7a631d..8ac67dd1b06eee08787150abdfc74a8cccec94fc 100644 +index 6c4fd56956982eee743b4dea4e8b925891dd3b6f..5379c4a8c89cbbe73c3ab741d609cecdc81d928c 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -423,10 +423,18 @@ public class Block extends BlockBehaviour implements ItemLike { diff --git a/patches/server/0966-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0965-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/server/0966-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0965-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/server/0967-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0966-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 100% rename from patches/server/0967-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0966-Configurable-entity-tracking-range-by-Y-coordinate.patch diff --git a/patches/server/0968-Add-Listing-API-for-Player.patch b/patches/server/0967-Add-Listing-API-for-Player.patch similarity index 100% rename from patches/server/0968-Add-Listing-API-for-Player.patch rename to patches/server/0967-Add-Listing-API-for-Player.patch diff --git a/patches/server/0969-Configurable-Region-Compression-Format.patch b/patches/server/0968-Configurable-Region-Compression-Format.patch similarity index 100% rename from patches/server/0969-Configurable-Region-Compression-Format.patch rename to patches/server/0968-Configurable-Region-Compression-Format.patch diff --git a/patches/server/0970-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0969-Add-BlockFace-to-BlockDamageEvent.patch similarity index 100% rename from patches/server/0970-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/server/0969-Add-BlockFace-to-BlockDamageEvent.patch diff --git a/patches/server/0971-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0970-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/server/0971-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0970-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/server/0972-Expand-Pose-API.patch b/patches/server/0971-Expand-Pose-API.patch similarity index 95% rename from patches/server/0972-Expand-Pose-API.patch rename to patches/server/0971-Expand-Pose-API.patch index 1f9cd157614d..604f9711075f 100644 --- a/patches/server/0972-Expand-Pose-API.patch +++ b/patches/server/0971-Expand-Pose-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index de71cbda2f38ebce85819cfe008ae44c969dee01..ecc50db7e63d40944423f74677ed7e916397f6b7 100644 +index c59494078ee587c8dd89e7943db85863868ae15f..f0e40ea053ca7b6749b443b2733271f71755329b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0973-More-DragonBattle-API.patch b/patches/server/0972-More-DragonBattle-API.patch similarity index 100% rename from patches/server/0973-More-DragonBattle-API.patch rename to patches/server/0972-More-DragonBattle-API.patch diff --git a/patches/server/0974-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0973-Deep-clone-unhandled-nbt-tags.patch similarity index 100% rename from patches/server/0974-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0973-Deep-clone-unhandled-nbt-tags.patch diff --git a/patches/server/0975-Add-PlayerPickItemEvent.patch b/patches/server/0974-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/server/0975-Add-PlayerPickItemEvent.patch rename to patches/server/0974-Add-PlayerPickItemEvent.patch diff --git a/patches/server/0976-Improve-performance-of-mass-crafts.patch b/patches/server/0975-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/0976-Improve-performance-of-mass-crafts.patch rename to patches/server/0975-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/0977-Allow-trident-custom-damage.patch b/patches/server/0976-Allow-trident-custom-damage.patch similarity index 100% rename from patches/server/0977-Allow-trident-custom-damage.patch rename to patches/server/0976-Allow-trident-custom-damage.patch diff --git a/patches/server/0978-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0977-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/server/0978-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/server/0977-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/server/0979-Optimize-nearest-structure-border-iteration.patch b/patches/server/0978-Optimize-nearest-structure-border-iteration.patch similarity index 100% rename from patches/server/0979-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0978-Optimize-nearest-structure-border-iteration.patch diff --git a/patches/server/0980-Implement-OfflinePlayer-isConnected.patch b/patches/server/0979-Implement-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/server/0980-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0979-Implement-OfflinePlayer-isConnected.patch diff --git a/patches/server/0981-Fix-inventory-desync.patch b/patches/server/0980-Fix-inventory-desync.patch similarity index 100% rename from patches/server/0981-Fix-inventory-desync.patch rename to patches/server/0980-Fix-inventory-desync.patch diff --git a/patches/server/0982-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0981-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 100% rename from patches/server/0982-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0981-Add-titleOverride-to-InventoryOpenEvent.patch diff --git a/patches/server/0983-Configure-sniffer-egg-hatch-time.patch b/patches/server/0982-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/server/0983-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0982-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/server/0984-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0983-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 100% rename from patches/server/0984-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0983-Do-crystal-portal-proximity-check-before-entity-look.patch diff --git a/patches/server/0985-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0984-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0985-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0984-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0986-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0985-Add-slot-sanity-checks-in-container-clicks.patch similarity index 100% rename from patches/server/0986-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0985-Add-slot-sanity-checks-in-container-clicks.patch diff --git a/patches/server/0987-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0986-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0987-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0986-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0988-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0987-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0988-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0987-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0989-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0988-Fix-silent-equipment-change-for-mobs.patch similarity index 98% rename from patches/server/0989-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0988-Fix-silent-equipment-change-for-mobs.patch index 07f0f4cc4993..bd49e4c8ce98 100644 --- a/patches/server/0989-Fix-silent-equipment-change-for-mobs.patch +++ b/patches/server/0988-Fix-silent-equipment-change-for-mobs.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix silent equipment change for mobs diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 16d84042e2575418880897c728a99d1b8bbcdd15..c81c72bf1027fcbaac67808fbcf6e0af112176bc 100644 +index f9743f8705a7f5f3ede4c869070d5735e24348a0..1ce75edb716bd775d7a0528fae27819cfd6207ec 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1059,13 +1059,20 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/0990-Fix-spigot-s-Forced-Stats.patch b/patches/server/0989-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0990-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0989-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0991-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0990-Add-missing-InventoryHolders-to-inventories.patch similarity index 100% rename from patches/server/0991-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0990-Add-missing-InventoryHolders-to-inventories.patch diff --git a/patches/server/0992-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0991-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/server/0992-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0991-Do-not-read-tile-entities-in-chunks-that-are-positio.patch diff --git a/patches/server/0993-Actually-optimise-explosions.patch b/patches/server/0992-Actually-optimise-explosions.patch similarity index 100% rename from patches/server/0993-Actually-optimise-explosions.patch rename to patches/server/0992-Actually-optimise-explosions.patch diff --git a/patches/server/0994-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0993-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0994-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0993-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0995-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0994-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 100% rename from patches/server/0995-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/0994-Remove-Spigot-Bug-Fix-for-MC-109346.patch diff --git a/patches/server/0996-Fix-SuspiciousStewMeta.patch b/patches/server/0995-Fix-SuspiciousStewMeta.patch similarity index 100% rename from patches/server/0996-Fix-SuspiciousStewMeta.patch rename to patches/server/0995-Fix-SuspiciousStewMeta.patch diff --git a/patches/server/0997-Optimise-chunk-tick-iteration.patch b/patches/server/0996-Optimise-chunk-tick-iteration.patch similarity index 100% rename from patches/server/0997-Optimise-chunk-tick-iteration.patch rename to patches/server/0996-Optimise-chunk-tick-iteration.patch diff --git a/patches/server/0998-Lag-compensation-ticks.patch b/patches/server/0997-Lag-compensation-ticks.patch similarity index 100% rename from patches/server/0998-Lag-compensation-ticks.patch rename to patches/server/0997-Lag-compensation-ticks.patch diff --git a/patches/server/0999-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0998-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0999-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0998-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/1000-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0999-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/1000-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0999-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/1001-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/1000-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/1001-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/1000-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/1002-Optimise-nearby-player-retrieval.patch b/patches/server/1001-Optimise-nearby-player-retrieval.patch similarity index 100% rename from patches/server/1002-Optimise-nearby-player-retrieval.patch rename to patches/server/1001-Optimise-nearby-player-retrieval.patch diff --git a/patches/server/1003-Fix-missing-map-initialize-event-call.patch b/patches/server/1002-Fix-missing-map-initialize-event-call.patch similarity index 100% rename from patches/server/1003-Fix-missing-map-initialize-event-call.patch rename to patches/server/1002-Fix-missing-map-initialize-event-call.patch diff --git a/patches/server/1004-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/1003-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/1004-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/1003-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/1005-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/1004-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/1005-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/1004-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/1006-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/1005-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/1006-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/1005-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/1007-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/1006-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/1007-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/1006-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/1008-Add-player-idle-duration-API.patch b/patches/server/1007-Add-player-idle-duration-API.patch similarity index 100% rename from patches/server/1008-Add-player-idle-duration-API.patch rename to patches/server/1007-Add-player-idle-duration-API.patch diff --git a/patches/server/1009-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/1008-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 100% rename from patches/server/1009-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/1008-Don-t-check-if-we-can-see-non-visible-entities.patch diff --git a/patches/server/1010-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/1009-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/1010-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/1009-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/1011-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/1010-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 100% rename from patches/server/1011-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/1010-Allow-null-itemstack-for-Player-sendEquipmentChange.patch diff --git a/patches/server/1012-Optimize-VarInts.patch b/patches/server/1011-Optimize-VarInts.patch similarity index 100% rename from patches/server/1012-Optimize-VarInts.patch rename to patches/server/1011-Optimize-VarInts.patch diff --git a/patches/server/1013-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/1012-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/1013-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/1012-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/1014-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/1013-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/server/1014-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/1013-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/server/1015-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/1014-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 100% rename from patches/server/1015-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/1014-Broadcast-take-item-packets-with-collector-as-source.patch diff --git a/patches/server/1016-Expand-LingeringPotion-API.patch b/patches/server/1015-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/1016-Expand-LingeringPotion-API.patch rename to patches/server/1015-Expand-LingeringPotion-API.patch diff --git a/patches/server/1017-Add-MaterialTagsTest.patch b/patches/server/1016-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/1017-Add-MaterialTagsTest.patch rename to patches/server/1016-Add-MaterialTagsTest.patch diff --git a/patches/server/1018-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/1017-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 100% rename from patches/server/1018-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/1017-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch diff --git a/patches/server/1019-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/1018-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/1019-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/1018-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/1020-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/1019-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/1020-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/1019-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/1021-Add-UUID-attribute-modifier-API.patch b/patches/server/1020-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/1021-Add-UUID-attribute-modifier-API.patch rename to patches/server/1020-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/1022-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/1021-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/server/1022-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/1021-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/1023-Lazily-create-LootContext-for-criterions.patch b/patches/server/1022-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/1023-Lazily-create-LootContext-for-criterions.patch rename to patches/server/1022-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/1024-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1023-Don-t-fire-sync-events-during-worldgen.patch similarity index 99% rename from patches/server/1024-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/1023-Don-t-fire-sync-events-during-worldgen.patch index 0ef7a0afae95..d38e55a12099 100644 --- a/patches/server/1024-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/1023-Don-t-fire-sync-events-during-worldgen.patch @@ -31,7 +31,7 @@ index a89d3bcfe24d70d8764fe6931dafdeaf1111117e..c1560ea2be24f2f4173c2552597527df if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ecc50db7e63d40944423f74677ed7e916397f6b7..afa4a07a94e9d74e6c91892a16ad9fe11dcb4a17 100644 +index f0e40ea053ca7b6749b443b2733271f71755329b..a70633d9585f94e673c58fc69660d984ca169561 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -713,7 +713,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1025-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/1024-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/1025-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/1024-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/1026-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1025-Restore-vanilla-entity-drops-behavior.patch similarity index 99% rename from patches/server/1026-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/1025-Restore-vanilla-entity-drops-behavior.patch index e13a96272979..1e6224b70126 100644 --- a/patches/server/1026-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1025-Restore-vanilla-entity-drops-behavior.patch @@ -50,7 +50,7 @@ index 1bdc710ae8ad0629eb715e00254f8465e69fb9d1..a43d37d074f89d645ff4a30b38a81f18 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index afa4a07a94e9d74e6c91892a16ad9fe11dcb4a17..30e82b94bbee5f62da3bea5cad69a2bd98fc06e0 100644 +index a70633d9585f94e673c58fc69660d984ca169561..8814ffc0f3ebe352cd72f50d9f68704e4ee0e88c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1027-Add-Structure-check-API.patch b/patches/server/1026-Add-Structure-check-API.patch similarity index 100% rename from patches/server/1027-Add-Structure-check-API.patch rename to patches/server/1026-Add-Structure-check-API.patch diff --git a/patches/server/1028-Dont-resend-blocks-on-interactions.patch b/patches/server/1027-Dont-resend-blocks-on-interactions.patch similarity index 99% rename from patches/server/1028-Dont-resend-blocks-on-interactions.patch rename to patches/server/1027-Dont-resend-blocks-on-interactions.patch index cbbc0695947f..7f4f93afccc8 100644 --- a/patches/server/1028-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1027-Dont-resend-blocks-on-interactions.patch @@ -149,7 +149,7 @@ index 277555a26e8281dd1a626e572794b08cf51d00c5..aa0f09a18ea781e027ea70928b30d3e9 return false; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 7f48a350a2bddf891e54e8e5349976cda0154c48..d1effd5d7b9eb2d715c9a3e16adbef2541b1ccf2 100644 +index dc6a1a1fb78d25834f3f97c5ce3b13567c718ca0..46c7c36a07169915f7409f1146e5066e8ac65c21 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -457,10 +457,12 @@ public final class ItemStack { diff --git a/patches/server/1029-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/1028-Keep-previous-behavior-for-setResourcePack.patch similarity index 100% rename from patches/server/1029-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/1028-Keep-previous-behavior-for-setResourcePack.patch diff --git a/patches/server/1030-properly-read-and-store-sus-effect-duration.patch b/patches/server/1029-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/1030-properly-read-and-store-sus-effect-duration.patch rename to patches/server/1029-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/1031-Use-correct-max-stack-size-in-crafter.patch b/patches/server/1030-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/1031-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/1030-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/1032-add-more-scoreboard-API.patch b/patches/server/1031-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/1032-add-more-scoreboard-API.patch rename to patches/server/1031-add-more-scoreboard-API.patch diff --git a/patches/server/1033-Improve-Registry.patch b/patches/server/1032-Improve-Registry.patch similarity index 100% rename from patches/server/1033-Improve-Registry.patch rename to patches/server/1032-Improve-Registry.patch diff --git a/patches/server/1034-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1033-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 100% rename from patches/server/1034-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/1033-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch diff --git a/patches/server/1035-Add-experience-points-API.patch b/patches/server/1034-Add-experience-points-API.patch similarity index 100% rename from patches/server/1035-Add-experience-points-API.patch rename to patches/server/1034-Add-experience-points-API.patch diff --git a/patches/server/1036-Add-missing-InventoryType.patch b/patches/server/1035-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/1036-Add-missing-InventoryType.patch rename to patches/server/1035-Add-missing-InventoryType.patch diff --git a/patches/server/1037-Add-drops-to-shear-events.patch b/patches/server/1036-Add-drops-to-shear-events.patch similarity index 100% rename from patches/server/1037-Add-drops-to-shear-events.patch rename to patches/server/1036-Add-drops-to-shear-events.patch diff --git a/patches/server/1038-Add-PlayerShieldDisableEvent.patch b/patches/server/1037-Add-PlayerShieldDisableEvent.patch similarity index 97% rename from patches/server/1038-Add-PlayerShieldDisableEvent.patch rename to patches/server/1037-Add-PlayerShieldDisableEvent.patch index 0796bead9123..bf2ec49181e6 100644 --- a/patches/server/1038-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/1037-Add-PlayerShieldDisableEvent.patch @@ -16,7 +16,7 @@ sideeffects, meaning the disable event cannot share a handlerlist with the cooldown event diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index c81c72bf1027fcbaac67808fbcf6e0af112176bc..42e2be9286b75a1d34845f303ffc65e96fdd5416 100644 +index 1ce75edb716bd775d7a0528fae27819cfd6207ec..22d057e459c46a51079b2f8f41dff7b9d17dc371 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1703,7 +1703,11 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/1039-Add-HiddenPotionEffect-API.patch b/patches/server/1038-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1039-Add-HiddenPotionEffect-API.patch rename to patches/server/1038-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1040-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1039-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 96% rename from patches/server/1040-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/1039-Correctly-check-if-bucket-dispenses-will-succeed-for.patch index e6214b88bb27..c619812debfa 100644 --- a/patches/server/1040-Correctly-check-if-bucket-dispenses-will-succeed-for.patch +++ b/patches/server/1039-Correctly-check-if-bucket-dispenses-will-succeed-for.patch @@ -8,7 +8,7 @@ in order to fire the BlockDispenseEvent. This patch corrects that. diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 6e19de21b6bb643961afc1d5eced3e0d0d98a027..8e13c661a06aa2f7b5f558d39fb9e989a8145904 100644 +index 738f6348c14b0f6942f90d15b082e16d16c89411..1fb809486ee56efd3d0ef3fa02503ba9be459f68 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java @@ -628,7 +628,13 @@ public interface DispenseItemBehavior { diff --git a/patches/server/1041-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1040-fix-ItemMeta-removing-CustomModelData.patch similarity index 100% rename from patches/server/1041-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/1040-fix-ItemMeta-removing-CustomModelData.patch diff --git a/patches/server/1042-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1041-Validate-ResourceLocation-in-NBT-reading.patch similarity index 98% rename from patches/server/1042-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/1041-Validate-ResourceLocation-in-NBT-reading.patch index cf937cebbb6c..9f5df4c73b94 100644 --- a/patches/server/1042-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1041-Validate-ResourceLocation-in-NBT-reading.patch @@ -53,7 +53,7 @@ index d362a06d0600003d40f632eac602ff552cafb9da..081937597a8984b52a1e92d4c6032c04 @Nullable diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 42e2be9286b75a1d34845f303ffc65e96fdd5416..0b5334004b9d0489e8465824870662b467ce321b 100644 +index 22d057e459c46a51079b2f8f41dff7b9d17dc371..2056ce8b168dc4f767e55923a0c4d3edc0e7c5f6 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -620,7 +620,7 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/1043-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1042-Properly-handle-experience-dropping-on-block-break.patch similarity index 98% rename from patches/server/1043-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/1042-Properly-handle-experience-dropping-on-block-break.patch index eacb696b9948..c8ed4a99ac08 100644 --- a/patches/server/1043-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1042-Properly-handle-experience-dropping-on-block-break.patch @@ -21,7 +21,7 @@ index 315dc7b198179f2f1384ab898d36d66f3c592d95..5c6f656200111cc171a4c789894732d3 boolean flag1 = this.setBlock(pos, fluid.createLegacyBlock(), 3, maxUpdateDepth); diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 8ac67dd1b06eee08787150abdfc74a8cccec94fc..3f2fdf73e2e520838c7b59fe994e67ab2d1a4d6b 100644 +index 5379c4a8c89cbbe73c3ab741d609cecdc81d928c..73d6f881a7d4d8ff96040d34ac502e5b0937d577 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -333,23 +333,31 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -41,7 +41,7 @@ index 8ac67dd1b06eee08787150abdfc74a8cccec94fc..3f2fdf73e2e520838c7b59fe994e67ab } return true; } - // Paper end + // Paper end - Add BlockBreakBlockEvent public static void dropResources(BlockState state, Level world, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity entity, ItemStack tool) { + // Paper start - Properly handle xp dropping diff --git a/patches/server/1044-Fixup-NamespacedKey-handling.patch b/patches/server/1043-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1044-Fixup-NamespacedKey-handling.patch rename to patches/server/1043-Fixup-NamespacedKey-handling.patch From 1c956abfbc3eac650ff9df99cd5918a8afba331b Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Fri, 19 Jan 2024 17:54:05 +0100 Subject: [PATCH 24/45] [ci skip] Add more identifying patch comments, merge related patches --- .../0531-Expand-EntityUnleashEvent.patch | 10 ++-- ...-using-signs-inside-spawn-protection.patch | 4 +- ...lternative-constructor-for-Rotations.patch | 5 +- ...ed-item-when-player-has-disconnected.patch | 4 +- ...tab-completions-for-brigadier-comman.patch | 14 +++--- .../server/0560-Add-bypass-host-check.patch | 4 +- ...-add-consumeFuel-to-FurnaceBurnEvent.patch | 4 +- ...fix-PigZombieAngerEvent-cancellation.patch | 8 ++-- ...ch => 0567-Add-PlayerDeepSleepEvent.patch} | 8 ++-- ...=> 0569-Add-PlayerBedFailEnterEvent.patch} | 14 +++--- ...awnEvent-fix-passed-parameter-issue.patch} | 39 +++++++++++----- ...wn-acting-as-a-bed-respawn-from-the-.patch | 36 --------------- ...eacon-activation-deactivation-events.patch | 8 ++-- ...dd-Channel-initialization-listeners.patch} | 10 ++-- ...mands-if-tab-completion-is-disabled.patch} | 6 +-- ...> 0575-Add-more-WanderingTrader-API.patch} | 4 +- ...dd-EntityBlockStorage-clearEntities.patch} | 4 +- ...77-Entity-load-save-limit-per-chunk.patch} | 16 +++---- ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...close.patch => 0579-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 20 ++++---- ...atch => 0581-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 4 +- ...83-Expand-PlayerGameModeChangeEvent.patch} | 46 +++++++++---------- ... => 0584-ItemStack-repair-check-API.patch} | 0 ....patch => 0585-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 2 +- ...-and-optimise-world-force-upgrading.patch} | 2 +- ...PI.patch => 0588-Add-Mob-lookAt-API.patch} | 0 ...0589-Add-Unix-domain-socket-support.patch} | 12 ++--- ... => 0590-Add-EntityInsideBlockEvent.patch} | 0 ...91-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0593-More-Lidded-Block-API.patch} | 0 ...94-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0595-Add-PlayerKickEvent-causes.patch} | 6 +-- ...0596-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0600-Add-BellRevealRaiderEvent.patch} | 0 ... 0601-Fix-invulnerable-end-crystals.patch} | 0 ...02-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0603-Fix-dangerous-end-portal-logic.patch} | 4 +- ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...patch => 0606-Line-Of-Sight-Changes.patch} | 0 ... => 0607-add-per-world-spawn-limits.patch} | 0 ...h => 0608-Fix-potions-splash-events.patch} | 0 ... => 0609-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 4 +- ...PI.patch => 0611-Missing-Entity-API.patch} | 0 ...ect-for-book-edit-is-called-on-main.patch} | 2 +- ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 0 ...rom-signs-not-firing-command-events.patch} | 0 ...tch => 0616-Add-PlayerArmSwingEvent.patch} | 2 +- ...-event-leave-message-not-being-sent.patch} | 6 +-- ...-for-mobs-immune-to-default-effects.patch} | 0 ...-t-apply-cramming-damage-to-players.patch} | 2 +- ...d-timings-for-sensors-and-behaviors.patch} | 0 ... 0621-Add-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0622-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0624-Add-System.out-err-catcher.patch} | 2 +- ...-to-contain-the-source-jars-in-stac.patch} | 0 ...-Improve-boat-collision-performance.patch} | 0 ...AFK-kick-while-watching-end-credits.patch} | 2 +- ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0629-Add-PlayerSetSpawnEvent.patch} | 6 +-- ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...h => 0633-Add-EntityDamageItemEvent.patch} | 0 ...timize-indirect-passenger-iteration.patch} | 0 ...em-frame-map-cursor-update-interval.patch} | 0 ...636-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0638-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0640-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0642-Add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 4 +- ... 0644-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0645-Left-handed-API.patch} | 0 ...ch => 0646-Add-more-advancement-API.patch} | 0 ...647-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0648-Add-critical-damage-API.patch} | 2 +- ...0649-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0651-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...3-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...54-Vanilla-command-permission-fixes.patch} | 2 +- ...logic-for-inventories-on-chunk-unlo.patch} | 6 +-- ...56-Fix-GameProfileCache-concurrency.patch} | 0 ...657-Improve-and-expand-AsyncCatcher.patch} | 6 +-- ...per-mobcaps-and-paper-playermobcaps.patch} | 4 +- ...tize-ResourceLocation-error-logging.patch} | 0 ...=> 0660-Optimise-general-POI-access.patch} | 0 ...ementation-for-blockstate-state-loo.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 2 +- ...our-chunk-data-off-disk-when-conver.patch} | 0 ...d-state-when-raytracing-skip-air-bl.patch} | 0 ...atch => 0667-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...> 0669-Execute-chunk-tasks-mid-tick.patch} | 6 +-- ...rimise-map-impl-for-tracked-players.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ... 0672-Optimise-random-block-ticking.patch} | 4 +- ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 6 +-- ...-more-information-in-watchdog-dumps.patch} | 4 +- ... 0676-Distance-manager-tick-timings.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 2 +- ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 2 +- ...h => 0680-Add-packet-limiter-config.patch} | 2 +- ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0682-Ensure-valid-vehicle-status.patch} | 2 +- ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0687-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 0 ...unintended-light-block-manipulation.patch} | 0 ...0690-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0692-Configurable-feature-seeds.patch} | 0 ... 0693-Add-root-admin-user-detection.patch} | 2 +- ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 0 ...ive-velocity-through-repeated-crits.patch} | 2 +- ...e-code-using-deprecated-for-removal.patch} | 2 +- ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 2 +- ...e-unnecessary-itemmeta-from-clients.patch} | 4 +- ...=> 0701-Fix-Spigot-growth-modifiers.patch} | 4 +- ...OpenersCounter-openCount-from-going.patch} | 0 ...0703-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0704-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 2 +- ...tch => 0706-Collision-optimisations.patch} | 6 +-- ...n-checking-in-player-move-packet-ha.patch} | 2 +- ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0709-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...11-Fix-tripwire-state-inconsistency.patch} | 2 +- ...ard-CraftEntity-in-teleport-command.patch} | 0 ... => 0713-Improve-scoreboard-entries.patch} | 0 ...ch => 0714-Entity-powdered-snow-API.patch} | 0 ...0715-Add-API-for-item-entity-health.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 2 +- ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0721-Fix-bees-aging-inside-hives.patch} | 2 +- ...le-API.patch => 0722-Bucketable-API.patch} | 0 ...es.patch => 0723-Validate-usernames.patch} | 4 +- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 6 +-- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...8-Multiple-Entries-with-Scoreboards.patch} | 0 ...729-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0731-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 2 +- ...ent.patch => 0733-Fix-NotePlayEvent.patch} | 0 ....patch => 0734-Freeze-Tick-Lock-API.patch} | 2 +- ...h => 0735-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 2 +- ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0739-Implement-regenerateChunk.patch} | 2 +- ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 2 +- ...gs.patch => 0742-Add-GameEvent-tags.patch} | 2 +- ...ks-fairly-for-worlds-while-waiting-.patch} | 2 +- ...tch => 0744-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 2 +- ...-worldlist-before-initing-the-world.patch} | 4 +- ... => 0749-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0750-Custom-Potion-Mixes.patch} | 4 +- ...51-Force-close-world-loading-screen.patch} | 2 +- ...752-Fix-falling-block-spawn-methods.patch} | 2 +- ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0755-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 2 +- ...0758-Implement-getComputedBiome-API.patch} | 0 ...> 0759-Make-some-itemstacks-nonnull.patch} | 0 ...760-Implement-enchantWithLevels-API.patch} | 0 ...h => 0761-Fix-saving-in-unloadWorld.patch} | 2 +- ...h => 0762-Buffer-OOB-setBlock-calls.patch} | 0 ... 0763-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 2 +- ...ssenger-world-matches-ridden-entity.patch} | 0 ...s.patch => 0767-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 2 +- ...ead-of-display-name-in-PlayerList-g.patch} | 2 +- ...-ServerLevel-for-gamerule-callbacks.patch} | 8 ++-- ...> 0774-Expand-PlayerItemDamageEvent.patch} | 0 ...> 0775-WorldCreator-keepSpawnLoaded.patch} | 2 +- ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 2 +- ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 2 +- ...snow-cauldrons-not-turning-to-water.patch} | 2 +- ...> 0781-Add-PlayerStopUsingItemEvent.patch} | 2 +- ...rs.patch => 0782-Don-t-tick-markers.patch} | 2 +- ...tch => 0783-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 2 +- ...0785-Add-support-for-Proxy-Protocol.patch} | 2 +- ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0788-Sanitize-sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 0 ...-on-world-create-while-being-ticked.patch} | 4 +- ...ate-Current-redstone-implementation.patch} | 4 +- ...93-Dont-resent-entity-on-art-update.patch} | 0 ... => 0794-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 2 +- ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0797-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 2 +- ...pty-items-from-being-added-to-world.patch} | 2 +- ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0801-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 0 ...PE.patch => 0804-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 2 +- ...API.patch => 0806-More-Teleport-API.patch} | 4 +- ... => 0807-Add-EntityPortalReadyEvent.patch} | 0 ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 4 +- ...on-plugins-accessing-faraway-chunks.patch} | 4 +- ...tom-Chat-Completion-Suggestions-API.patch} | 2 +- ...Add-and-fix-missing-BlockFadeEvents.patch} | 2 +- ...ion-API.patch => 0813-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 2 +- ...API.patch => 0815-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 4 +- ...817-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 2 +- ...ok-changes-from-crashing-the-server.patch} | 2 +- ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0821-Missing-eating-regain-reason.patch} | 0 ....patch => 0822-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...5-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0826-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0828-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0830-Add-getDrops-to-BlockState.patch} | 0 ...=> 0831-Fix-a-bunch-of-vanilla-bugs.patch} | 14 +++--- ...y-onTrackingStart-during-navigation.patch} | 2 +- ... 0833-Fix-custom-piglin-loved-items.patch} | 2 +- ...=> 0834-EntityPickupItemEvent-fixes.patch} | 6 +-- ...interactions-with-items-on-cooldown.patch} | 2 +- ...-Add-PlayerInventorySlotChangeEvent.patch} | 2 +- ... 0837-Elder-Guardian-appearance-API.patch} | 2 +- ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0839-Add-entity-knockback-API.patch} | 0 ....patch => 0840-Detect-headless-JREs.patch} | 2 +- ...-vehicle-collision-event-not-called.patch} | 0 ...42-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 0843-Add-EntityToggleSitEvent.patch} | 2 +- ... => 0844-Add-fire-tick-delay-option.patch} | 0 ...patch => 0845-Add-Moving-Piston-API.patch} | 0 ...> 0846-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 2 +- ...0850-Add-PrePlayerAttackEntityEvent.patch} | 2 +- ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 0 ... 0853-Add-Player-Warden-Warning-API.patch} | 2 +- ...a-friendly-methods-to-update-trades.patch} | 0 ...855-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 4 +- ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0858-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0859-Friction-API.patch} | 2 +- ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0861-Fix-player-kick-on-shutdown.patch} | 0 ... => 0862-Sync-offhand-slot-in-menus.patch} | 2 +- ... 0863-Player-Entity-Tracking-Events.patch} | 0 ...tch => 0864-Limit-pet-look-distance.patch} | 0 ...ch => 0865-Properly-resend-entities.patch} | 4 +- ...nd-additions-to-the-SpawnReason-API.patch} | 4 +- ...ments.patch => 0867-fix-Instruments.patch} | 2 +- ...for-some-hot-BlockBehavior-and-Flui.patch} | 0 ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0870-Add-BlockLockCheckEvent.patch} | 2 +- ... 0871-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0872-Improve-logging-and-errors.patch} | 2 +- ....patch => 0873-Improve-PortalEvents.patch} | 0 ...ion-for-spider-worldborder-climbing.patch} | 2 +- ...sing-SpigotConfig-logCommands-check.patch} | 2 +- ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0877-Flying-Fall-Damage.patch} | 4 +- ...k-state-to-BlockExplodeEvent-and-En.patch} | 4 +- ...ion-moving-velocity-to-VehicleBlock.patch} | 0 ...onfig-for-disabling-entity-tag-tags.patch} | 2 +- ...e-player-info-update-packet-on-join.patch} | 4 +- ...k-items-during-EntityResurrectEvent.patch} | 2 +- ...en-API.patch => 0883-Win-Screen-API.patch} | 2 +- ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0886-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 2 +- ...=> 0889-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 2 +- ...894-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0896-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...pers.patch => 0898-Optimize-Hoppers.patch} | 0 ...ives-generating-from-using-bonemeal.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 2 +- ...ence-violations-like-they-should-be.patch} | 2 +- ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 2 +- ...ts-being-fired-from-unloaded-chunks.patch} | 2 +- ...0905-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 2 +- ...ix-demo-flag-not-enabling-demo-mode.patch} | 2 +- ... 0908-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...12-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ...ecalcBlockCounts-for-empty-sections.patch} | 0 ... => 0915-Expand-PlayerItemMendEvent.patch} | 2 +- ...sh-ProjectileSource-for-projectiles.patch} | 0 ... => 0917-Add-transient-modifier-API.patch} | 0 ...patch => 0918-Fix-block-place-logic.patch} | 2 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 2 +- ...nhasbukkit-default-if-alias-block-e.patch} | 2 +- ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...yerChunkLoaderData-in-order-to-prep.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0927-Properly-cancel-usable-items.patch} | 6 +-- ...8-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 2 +- ...Add-option-to-disable-block-updates.patch} | 0 ...932-Call-missing-BlockDispenseEvent.patch} | 0 ...-chunks-for-supporting-block-checks.patch} | 0 ...Optimize-player-lookups-for-beacons.patch} | 2 +- ...935-Add-Sign-getInteractableSideFor.patch} | 2 +- ...36-Array-backed-synched-entity-data.patch} | 0 ...7-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0938-Fix-BanList-API.patch} | 2 +- ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 2 +- ...nceOrb-should-call-EntitySpawnEvent.patch} | 0 ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0944-Add-whitelist-events.patch} | 0 ... 0945-Implement-PlayerFailMoveEvent.patch} | 2 +- ...olia-scheduler-and-owned-region-API.patch} | 6 +-- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 4 +- ...tion-when-spawning-display-entities.patch} | 0 ...950-Only-capture-actual-tree-growth.patch} | 2 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 0 ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0955-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0957-Bandaid-fix-for-Effect.patch} | 4 +- ...tch => 0958-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 2 +- ...lace-methods-with-old-StructureType.patch} | 2 +- ...e-namespaced-commands-if-send-names.patch} | 2 +- ...-handle-BlockBreakEvent-isDropItems.patch} | 2 +- ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 0 ... => 0966-Add-Listing-API-for-Player.patch} | 4 +- ...figurable-Region-Compression-Format.patch} | 0 ...8-Add-BlockFace-to-BlockDamageEvent.patch} | 2 +- ...h => 0969-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0970-Expand-Pose-API.patch} | 0 ...patch => 0971-More-DragonBattle-API.patch} | 0 ... 0972-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0973-Add-PlayerPickItemEvent.patch} | 2 +- ...-Improve-performance-of-mass-crafts.patch} | 0 ...=> 0975-Allow-trident-custom-damage.patch} | 0 ...6-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 2 +- ....patch => 0979-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 2 +- ...81-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 2 +- ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 6 +-- ...h => 0988-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 0 ...> 0991-Actually-optimise-explosions.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...atch => 0994-Fix-SuspiciousStewMeta.patch} | 0 ... 0995-Optimise-chunk-tick-iteration.patch} | 2 +- ...atch => 0996-Lag-compensation-ticks.patch} | 8 ++-- ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...00-Optimise-nearby-player-retrieval.patch} | 2 +- ...x-missing-map-initialize-event-call.patch} | 2 +- ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...05-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 1006-Add-player-idle-duration-API.patch} | 2 +- ...-if-we-can-see-non-visible-entities.patch} | 0 ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 2 +- ...Ints.patch => 1010-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 2 +- ...em-packets-with-collector-as-source.patch} | 2 +- ... => 1014-Expand-LingeringPotion-API.patch} | 2 +- ....patch => 1015-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 2 +- ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 2 +- ...019-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 8 ++-- ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 6 +-- ...tch => 1025-Add-Structure-check-API.patch} | 2 +- ...-Dont-resend-blocks-on-interactions.patch} | 4 +- ...evious-behavior-for-setResourcePack.patch} | 2 +- ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 1030-add-more-scoreboard-API.patch} | 0 ...stry.patch => 1031-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 2 +- ...h => 1033-Add-experience-points-API.patch} | 4 +- ...h => 1034-Add-missing-InventoryType.patch} | 0 ...h => 1035-Add-drops-to-shear-events.patch} | 0 ...> 1036-Add-PlayerShieldDisableEvent.patch} | 4 +- ... => 1037-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 4 +- ...-experience-dropping-on-block-break.patch} | 2 +- ...> 1042-Fixup-NamespacedKey-handling.patch} | 0 483 files changed, 368 insertions(+), 388 deletions(-) rename patches/server/{0567-Added-PlayerDeepSleepEvent.patch => 0567-Add-PlayerDeepSleepEvent.patch} (78%) rename patches/server/{0569-Added-PlayerBedFailEnterEvent.patch => 0569-Add-PlayerBedFailEnterEvent.patch} (82%) rename patches/server/{0573-add-RespawnFlags-to-PlayerRespawnEvent.patch => 0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch} (66%) delete mode 100644 patches/server/0571-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch rename patches/server/{0574-Add-Channel-initialization-listeners.patch => 0573-Add-Channel-initialization-listeners.patch} (94%) rename patches/server/{0575-Send-empty-commands-if-tab-completion-is-disabled.patch => 0574-Send-empty-commands-if-tab-completion-is-disabled.patch} (81%) rename patches/server/{0576-Add-more-WanderingTrader-API.patch => 0575-Add-more-WanderingTrader-API.patch} (95%) rename patches/server/{0577-Add-EntityBlockStorage-clearEntities.patch => 0576-Add-EntityBlockStorage-clearEntities.patch} (91%) rename patches/server/{0578-Entity-load-save-limit-per-chunk.patch => 0577-Entity-load-save-limit-per-chunk.patch} (84%) rename patches/server/{0579-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0578-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0580-Inventory-close.patch => 0579-Inventory-close.patch} (100%) rename patches/server/{0581-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (91%) rename patches/server/{0582-Add-basic-Datapack-API.patch => 0581-Add-basic-Datapack-API.patch} (100%) rename patches/server/{0583-Add-environment-variable-to-disable-server-gui.patch => 0582-Add-environment-variable-to-disable-server-gui.patch} (85%) rename patches/server/{0584-additions-to-PlayerGameModeChangeEvent.patch => 0583-Expand-PlayerGameModeChangeEvent.patch} (84%) rename patches/server/{0585-ItemStack-repair-check-API.patch => 0584-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0586-More-Enchantment-API.patch => 0585-More-Enchantment-API.patch} (100%) rename patches/server/{0587-Move-range-check-for-block-placing-up.patch => 0586-Move-range-check-for-block-placing-up.patch} (92%) rename patches/server/{0588-Fix-and-optimise-world-force-upgrading.patch => 0587-Fix-and-optimise-world-force-upgrading.patch} (99%) rename patches/server/{0589-Add-Mob-lookAt-API.patch => 0588-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0590-Add-Unix-domain-socket-support.patch => 0589-Add-Unix-domain-socket-support.patch} (94%) rename patches/server/{0591-Add-EntityInsideBlockEvent.patch => 0590-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0592-Attributes-API-for-item-defaults.patch => 0591-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0593-Add-cause-to-Weather-ThunderChangeEvents.patch => 0592-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/server/{0594-More-Lidded-Block-API.patch => 0593-More-Lidded-Block-API.patch} (100%) rename patches/server/{0595-Limit-item-frame-cursors-on-maps.patch => 0594-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0596-Add-PlayerKickEvent-causes.patch => 0595-Add-PlayerKickEvent-causes.patch} (99%) rename patches/server/{0597-Add-PufferFishStateChangeEvent.patch => 0596-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0598-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0597-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0599-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0598-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/server/{0600-Add-option-to-fix-items-merging-through-walls.patch => 0599-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0601-Add-BellRevealRaiderEvent.patch => 0600-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0602-Fix-invulnerable-end-crystals.patch => 0601-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0603-Add-ElderGuardianAppearanceEvent.patch => 0602-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0604-Fix-dangerous-end-portal-logic.patch => 0603-Fix-dangerous-end-portal-logic.patch} (95%) rename patches/server/{0605-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0604-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0606-Make-item-validations-configurable.patch => 0605-Make-item-validations-configurable.patch} (100%) rename patches/server/{0607-Line-Of-Sight-Changes.patch => 0606-Line-Of-Sight-Changes.patch} (100%) rename patches/server/{0608-add-per-world-spawn-limits.patch => 0607-add-per-world-spawn-limits.patch} (100%) rename patches/server/{0609-Fix-potions-splash-events.patch => 0608-Fix-potions-splash-events.patch} (100%) rename patches/server/{0610-Add-more-LimitedRegion-API.patch => 0609-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0611-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0610-Fix-PlayerDropItemEvent-using-wrong-item.patch} (89%) rename patches/server/{0612-Missing-Entity-API.patch => 0611-Missing-Entity-API.patch} (100%) rename patches/server/{0613-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (92%) rename patches/server/{0614-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0613-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0615-Use-getChunkIfLoadedImmediately-in-places.patch => 0614-Use-getChunkIfLoadedImmediately-in-places.patch} (100%) rename patches/server/{0616-Fix-commands-from-signs-not-firing-command-events.patch => 0615-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0617-Add-PlayerArmSwingEvent.patch => 0616-Add-PlayerArmSwingEvent.patch} (93%) rename patches/server/{0618-Fix-kick-event-leave-message-not-being-sent.patch => 0617-Fix-kick-event-leave-message-not-being-sent.patch} (96%) rename patches/server/{0619-Add-config-for-mobs-immune-to-default-effects.patch => 0618-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/server/{0620-Don-t-apply-cramming-damage-to-players.patch => 0619-Don-t-apply-cramming-damage-to-players.patch} (94%) rename patches/server/{0621-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0620-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0622-Add-missing-forceDrop-toggles.patch => 0621-Add-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0623-Stinger-API.patch => 0622-Stinger-API.patch} (100%) rename patches/server/{0624-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0623-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0625-Add-System.out-err-catcher.patch => 0624-Add-System.out-err-catcher.patch} (98%) rename patches/server/{0626-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0625-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0627-Improve-boat-collision-performance.patch => 0626-Improve-boat-collision-performance.patch} (100%) rename patches/server/{0628-Prevent-AFK-kick-while-watching-end-credits.patch => 0627-Prevent-AFK-kick-while-watching-end-credits.patch} (93%) rename patches/server/{0629-Allow-skipping-writing-of-comments-to-server.propert.patch => 0628-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0630-Add-PlayerSetSpawnEvent.patch => 0629-Add-PlayerSetSpawnEvent.patch} (97%) rename patches/server/{0631-Make-hoppers-respect-inventory-max-stack-size.patch => 0630-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0632-Optimize-entity-tracker-passenger-checks.patch => 0631-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0633-Config-option-for-Piglins-guarding-chests.patch => 0632-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0634-Add-EntityDamageItemEvent.patch => 0633-Add-EntityDamageItemEvent.patch} (100%) rename patches/server/{0635-Optimize-indirect-passenger-iteration.patch => 0634-Optimize-indirect-passenger-iteration.patch} (100%) rename patches/server/{0636-Configurable-item-frame-map-cursor-update-interval.patch => 0635-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0637-Clear-bucket-NBT-after-dispense.patch => 0636-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0638-Change-EnderEye-target-without-changing-other-things.patch => 0637-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0639-Add-BlockBreakBlockEvent.patch => 0638-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0640-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0639-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0641-More-CommandBlock-API.patch => 0640-More-CommandBlock-API.patch} (100%) rename patches/server/{0642-Add-missing-team-sidebar-display-slots.patch => 0641-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0643-Add-back-EntityPortalExitEvent.patch => 0642-Add-back-EntityPortalExitEvent.patch} (100%) rename patches/server/{0644-Add-methods-to-find-targets-for-lightning-strikes.patch => 0643-Add-methods-to-find-targets-for-lightning-strikes.patch} (94%) rename patches/server/{0645-Get-entity-default-attributes.patch => 0644-Get-entity-default-attributes.patch} (100%) rename patches/server/{0646-Left-handed-API.patch => 0645-Left-handed-API.patch} (100%) rename patches/server/{0647-Add-more-advancement-API.patch => 0646-Add-more-advancement-API.patch} (100%) rename patches/server/{0648-Add-ItemFactory-getSpawnEgg-API.patch => 0647-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0649-Add-critical-damage-API.patch => 0648-Add-critical-damage-API.patch} (98%) rename patches/server/{0650-Fix-issues-with-mob-conversion.patch => 0649-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0651-Add-isCollidable-methods-to-various-places.patch => 0650-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0652-Goat-ram-API.patch => 0651-Goat-ram-API.patch} (100%) rename patches/server/{0653-Add-API-for-resetting-a-single-score.patch => 0652-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0654-Add-Raw-Byte-Entity-Serialization.patch => 0653-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/server/{0655-Vanilla-command-permission-fixes.patch => 0654-Vanilla-command-permission-fixes.patch} (97%) rename patches/server/{0656-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (92%) rename patches/server/{0657-Fix-GameProfileCache-concurrency.patch => 0656-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0658-Improve-and-expand-AsyncCatcher.patch => 0657-Improve-and-expand-AsyncCatcher.patch} (97%) rename patches/server/{0659-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0658-Add-paper-mobcaps-and-paper-playermobcaps.patch} (98%) rename patches/server/{0660-Sanitize-ResourceLocation-error-logging.patch => 0659-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0661-Optimise-general-POI-access.patch => 0660-Optimise-general-POI-access.patch} (100%) rename patches/server/{0662-Custom-table-implementation-for-blockstate-state-loo.patch => 0661-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{0663-Manually-inline-methods-in-BlockPosition.patch => 0662-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0664-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0663-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0665-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (94%) rename patches/server/{0666-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0665-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0667-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch => 0666-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (100%) rename patches/server/{0668-Time-scoreboard-search.patch => 0667-Time-scoreboard-search.patch} (100%) rename patches/server/{0669-Send-full-pos-packets-for-hard-colliding-entities.patch => 0668-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{0670-Execute-chunk-tasks-mid-tick.patch => 0669-Execute-chunk-tasks-mid-tick.patch} (96%) rename patches/server/{0671-Oprimise-map-impl-for-tracked-players.patch => 0670-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/server/{0672-Optimise-BlockSoil-nearby-water-lookup.patch => 0671-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0673-Optimise-random-block-ticking.patch => 0672-Optimise-random-block-ticking.patch} (99%) rename patches/server/{0674-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 0673-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{0675-Use-Velocity-compression-and-cipher-natives.patch => 0674-Use-Velocity-compression-and-cipher-natives.patch} (98%) rename patches/server/{0676-Detail-more-information-in-watchdog-dumps.patch => 0675-Detail-more-information-in-watchdog-dumps.patch} (98%) rename patches/server/{0677-Distance-manager-tick-timings.patch => 0676-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0678-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (94%) rename patches/server/{0679-Check-requirement-before-suggesting-root-nodes.patch => 0678-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0680-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (92%) rename patches/server/{0681-Add-packet-limiter-config.patch => 0680-Add-packet-limiter-config.patch} (98%) rename patches/server/{0682-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0681-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0683-Ensure-valid-vehicle-status.patch => 0682-Ensure-valid-vehicle-status.patch} (91%) rename patches/server/{0684-Prevent-softlocked-end-exit-portal-generation.patch => 0683-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0685-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0684-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0686-Don-t-log-debug-logging-being-disabled.patch => 0685-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0687-fix-various-menus-with-empty-level-accesses.patch => 0686-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0688-Preserve-overstacked-loot.patch => 0687-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0689-Update-head-rotation-in-missing-places.patch => 0688-Update-head-rotation-in-missing-places.patch} (100%) rename patches/server/{0690-prevent-unintended-light-block-manipulation.patch => 0689-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0691-Fix-CraftCriteria-defaults-map.patch => 0690-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0692-Fix-upstreams-block-state-factories.patch => 0691-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0693-Configurable-feature-seeds.patch => 0692-Configurable-feature-seeds.patch} (100%) rename patches/server/{0694-Add-root-admin-user-detection.patch => 0693-Add-root-admin-user-detection.patch} (97%) rename patches/server/{0695-Always-allow-item-changing-in-Fireball.patch => 0694-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0696-don-t-attempt-to-teleport-dead-entities.patch => 0695-don-t-attempt-to-teleport-dead-entities.patch} (100%) rename patches/server/{0697-Prevent-excessive-velocity-through-repeated-crits.patch => 0696-Prevent-excessive-velocity-through-repeated-crits.patch} (94%) rename patches/server/{0698-Remove-client-side-code-using-deprecated-for-removal.patch => 0697-Remove-client-side-code-using-deprecated-for-removal.patch} (93%) rename patches/server/{0699-Fix-removing-recipes-from-RecipeIterator.patch => 0698-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0700-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0699-Prevent-sending-oversized-item-data-in-equipment-and.patch} (98%) rename patches/server/{0701-Hide-unnecessary-itemmeta-from-clients.patch => 0700-Hide-unnecessary-itemmeta-from-clients.patch} (97%) rename patches/server/{0702-Fix-Spigot-growth-modifiers.patch => 0701-Fix-Spigot-growth-modifiers.patch} (97%) rename patches/server/{0703-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0702-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0704-Add-PlayerItemFrameChangeEvent.patch => 0703-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0705-Optimize-HashMapPalette.patch => 0704-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0706-Allow-delegation-to-vanilla-chunk-gen.patch => 0705-Allow-delegation-to-vanilla-chunk-gen.patch} (98%) rename patches/server/{0707-Collision-optimisations.patch => 0706-Collision-optimisations.patch} (99%) rename patches/server/{0708-Optimise-collision-checking-in-player-move-packet-ha.patch => 0707-Optimise-collision-checking-in-player-move-packet-ha.patch} (99%) rename patches/server/{0709-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0708-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0710-Add-more-Campfire-API.patch => 0709-Add-more-Campfire-API.patch} (100%) rename patches/server/{0711-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0710-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0712-Fix-tripwire-state-inconsistency.patch => 0711-Fix-tripwire-state-inconsistency.patch} (98%) rename patches/server/{0713-Forward-CraftEntity-in-teleport-command.patch => 0712-Forward-CraftEntity-in-teleport-command.patch} (100%) rename patches/server/{0714-Improve-scoreboard-entries.patch => 0713-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0715-Entity-powdered-snow-API.patch => 0714-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0716-Add-API-for-item-entity-health.patch => 0715-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0717-Fix-entity-type-tags-suggestions-in-selectors.patch => 0716-Fix-entity-type-tags-suggestions-in-selectors.patch} (99%) rename patches/server/{0718-Configurable-max-block-light-for-monster-spawning.patch => 0717-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0719-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0718-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0720-Load-effect-amplifiers-greater-than-127-correctly.patch => 0719-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0721-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0720-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0722-Fix-bees-aging-inside-hives.patch => 0721-Fix-bees-aging-inside-hives.patch} (97%) rename patches/server/{0723-Bucketable-API.patch => 0722-Bucketable-API.patch} (100%) rename patches/server/{0724-Validate-usernames.patch => 0723-Validate-usernames.patch} (95%) rename patches/server/{0725-Make-water-animal-spawn-height-configurable.patch => 0724-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0726-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0725-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (96%) rename patches/server/{0727-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0726-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0728-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0727-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0729-Multiple-Entries-with-Scoreboards.patch => 0728-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0730-Reset-placed-block-on-exception.patch => 0729-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0731-Add-configurable-height-for-slime-spawn.patch => 0730-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0732-Fix-xp-reward-for-baby-zombies.patch => 0731-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0733-Multi-Block-Change-API-Implementation.patch => 0732-Multi-Block-Change-API-Implementation.patch} (97%) rename patches/server/{0734-Fix-NotePlayEvent.patch => 0733-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0735-Freeze-Tick-Lock-API.patch => 0734-Freeze-Tick-Lock-API.patch} (97%) rename patches/server/{0736-More-PotionEffectType-API.patch => 0735-More-PotionEffectType-API.patch} (100%) rename patches/server/{0737-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0736-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0738-API-for-creating-command-sender-which-forwards-feedb.patch => 0737-API-for-creating-command-sender-which-forwards-feedb.patch} (98%) rename patches/server/{0739-Add-missing-structure-set-seed-configs.patch => 0738-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0740-Implement-regenerateChunk.patch => 0739-Implement-regenerateChunk.patch} (98%) rename patches/server/{0741-Fix-cancelled-powdered-snow-bucket-placement.patch => 0740-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0742-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0741-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (92%) rename patches/server/{0743-Add-GameEvent-tags.patch => 0742-Add-GameEvent-tags.patch} (97%) rename patches/server/{0744-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0743-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (94%) rename patches/server/{0745-Furnace-RecipesUsed-API.patch => 0744-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0746-Configurable-sculk-sensor-listener-range.patch => 0745-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0747-Add-missing-block-data-mins-and-maxes.patch => 0746-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0748-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0747-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (96%) rename patches/server/{0749-Put-world-into-worldlist-before-initing-the-world.patch => 0748-Put-world-into-worldlist-before-initing-the-world.patch} (92%) rename patches/server/{0750-Fix-Entity-Position-Desync.patch => 0749-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0751-Custom-Potion-Mixes.patch => 0750-Custom-Potion-Mixes.patch} (98%) rename patches/server/{0752-Force-close-world-loading-screen.patch => 0751-Force-close-world-loading-screen.patch} (95%) rename patches/server/{0753-Fix-falling-block-spawn-methods.patch => 0752-Fix-falling-block-spawn-methods.patch} (97%) rename patches/server/{0754-Expose-furnace-minecart-push-values.patch => 0753-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0755-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0754-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0756-More-Projectile-API.patch => 0755-More-Projectile-API.patch} (100%) rename patches/server/{0757-Fix-swamp-hut-cat-generation-deadlock.patch => 0756-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0758-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0757-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (94%) rename patches/server/{0759-Implement-getComputedBiome-API.patch => 0758-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0760-Make-some-itemstacks-nonnull.patch => 0759-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0761-Implement-enchantWithLevels-API.patch => 0760-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0762-Fix-saving-in-unloadWorld.patch => 0761-Fix-saving-in-unloadWorld.patch} (90%) rename patches/server/{0763-Buffer-OOB-setBlock-calls.patch => 0762-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0764-Add-TameableDeathMessageEvent.patch => 0763-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0765-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0764-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (100%) rename patches/server/{0766-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0765-fix-player-loottables-running-when-mob-loot-gamerule.patch} (93%) rename patches/server/{0767-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0766-Ensure-entity-passenger-world-matches-ridden-entity.patch} (100%) rename patches/server/{0768-cache-resource-keys.patch => 0767-cache-resource-keys.patch} (100%) rename patches/server/{0769-Allow-changing-the-EnderDragon-podium.patch => 0768-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/server/{0770-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0769-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0771-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0770-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0772-Prevent-tile-entity-copies-loading-chunks.patch => 0771-Prevent-tile-entity-copies-loading-chunks.patch} (94%) rename patches/server/{0773-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0772-Use-username-instead-of-display-name-in-PlayerList-g.patch} (92%) rename patches/server/{0774-Pass-ServerLevel-for-gamerule-callbacks.patch => 0773-Pass-ServerLevel-for-gamerule-callbacks.patch} (97%) rename patches/server/{0775-Expand-PlayerItemDamageEvent.patch => 0774-Expand-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0776-WorldCreator-keepSpawnLoaded.patch => 0775-WorldCreator-keepSpawnLoaded.patch} (94%) rename patches/server/{0777-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0776-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0778-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0777-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (97%) rename patches/server/{0779-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0778-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0780-Fire-CauldronLevelChange-on-initial-fill.patch => 0779-Fire-CauldronLevelChange-on-initial-fill.patch} (98%) rename patches/server/{0781-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0780-fix-powder-snow-cauldrons-not-turning-to-water.patch} (96%) rename patches/server/{0782-Add-PlayerStopUsingItemEvent.patch => 0781-Add-PlayerStopUsingItemEvent.patch} (91%) rename patches/server/{0783-Don-t-tick-markers.patch => 0782-Don-t-tick-markers.patch} (97%) rename patches/server/{0784-Expand-FallingBlock-API.patch => 0783-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0785-Do-not-accept-invalid-client-settings.patch => 0784-Do-not-accept-invalid-client-settings.patch} (94%) rename patches/server/{0786-Add-support-for-Proxy-Protocol.patch => 0785-Add-support-for-Proxy-Protocol.patch} (97%) rename patches/server/{0787-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0786-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0788-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0787-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0789-Sanitize-sent-BlockEntity-NBT.patch => 0788-Sanitize-sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0790-Disable-component-selector-resolving-in-books-by-def.patch => 0789-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0791-Prevent-entity-loading-causing-async-lookups.patch => 0790-Prevent-entity-loading-causing-async-lookups.patch} (100%) rename patches/server/{0792-Throw-exception-on-world-create-while-being-ticked.patch => 0791-Throw-exception-on-world-create-while-being-ticked.patch} (95%) rename patches/server/{0793-Add-Alternate-Current-redstone-implementation.patch => 0792-Add-Alternate-Current-redstone-implementation.patch} (99%) rename patches/server/{0794-Dont-resent-entity-on-art-update.patch => 0793-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0795-Add-WardenAngerChangeEvent.patch => 0794-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0796-Add-option-for-strict-advancement-dimension-checks.patch => 0795-Add-option-for-strict-advancement-dimension-checks.patch} (96%) rename patches/server/{0797-Add-missing-important-BlockStateListPopulator-method.patch => 0796-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0798-Nameable-Banner-API.patch => 0797-Nameable-Banner-API.patch} (100%) rename patches/server/{0799-Don-t-broadcast-messages-to-command-blocks.patch => 0798-Don-t-broadcast-messages-to-command-blocks.patch} (95%) rename patches/server/{0800-Prevent-empty-items-from-being-added-to-world.patch => 0799-Prevent-empty-items-from-being-added-to-world.patch} (93%) rename patches/server/{0801-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0800-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0802-Add-Player-getFishHook.patch => 0801-Add-Player-getFishHook.patch} (100%) rename patches/server/{0803-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0802-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0804-Add-various-missing-EntityDropItemEvent-calls.patch => 0803-Add-various-missing-EntityDropItemEvent-calls.patch} (100%) rename patches/server/{0805-Fix-Bee-flower-NPE.patch => 0804-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0806-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0805-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (92%) rename patches/server/{0807-More-Teleport-API.patch => 0806-More-Teleport-API.patch} (98%) rename patches/server/{0808-Add-EntityPortalReadyEvent.patch => 0807-Add-EntityPortalReadyEvent.patch} (100%) rename patches/server/{0809-Don-t-use-level-random-in-entity-constructors.patch => 0808-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0810-Send-block-entities-after-destroy-prediction.patch => 0809-Send-block-entities-after-destroy-prediction.patch} (96%) rename patches/server/{0811-Warn-on-plugins-accessing-faraway-chunks.patch => 0810-Warn-on-plugins-accessing-faraway-chunks.patch} (96%) rename patches/server/{0812-Custom-Chat-Completion-Suggestions-API.patch => 0811-Custom-Chat-Completion-Suggestions-API.patch} (94%) rename patches/server/{0813-Add-and-fix-missing-BlockFadeEvents.patch => 0812-Add-and-fix-missing-BlockFadeEvents.patch} (98%) rename patches/server/{0814-Collision-API.patch => 0813-Collision-API.patch} (100%) rename patches/server/{0815-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0814-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (92%) rename patches/server/{0816-Block-Ticking-API.patch => 0815-Block-Ticking-API.patch} (100%) rename patches/server/{0817-Add-Velocity-IP-Forwarding-Support.patch => 0816-Add-Velocity-IP-Forwarding-Support.patch} (98%) rename patches/server/{0818-Add-NamespacedKey-biome-methods.patch => 0817-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0819-Fix-plugin-loggers-on-server-shutdown.patch => 0818-Fix-plugin-loggers-on-server-shutdown.patch} (96%) rename patches/server/{0820-Stop-large-look-changes-from-crashing-the-server.patch => 0819-Stop-large-look-changes-from-crashing-the-server.patch} (96%) rename patches/server/{0821-Fire-EntityChangeBlockEvent-in-more-places.patch => 0820-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0822-Missing-eating-regain-reason.patch => 0821-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0823-Missing-effect-cause.patch => 0822-Missing-effect-cause.patch} (100%) rename patches/server/{0824-Added-byte-array-serialization-deserialization-for-P.patch => 0823-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0825-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0824-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0826-Call-BlockPhysicsEvent-more-often.patch => 0825-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0827-Configurable-chat-thread-limit.patch => 0826-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0828-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0827-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0829-fix-Jigsaw-block-kicking-user.patch => 0828-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0830-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0829-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0831-Add-getDrops-to-BlockState.patch => 0830-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0832-Fix-a-bunch-of-vanilla-bugs.patch => 0831-Fix-a-bunch-of-vanilla-bugs.patch} (97%) rename patches/server/{0833-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0832-Remove-unnecessary-onTrackingStart-during-navigation.patch} (94%) rename patches/server/{0834-Fix-custom-piglin-loved-items.patch => 0833-Fix-custom-piglin-loved-items.patch} (93%) rename patches/server/{0835-EntityPickupItemEvent-fixes.patch => 0834-EntityPickupItemEvent-fixes.patch} (93%) rename patches/server/{0836-Correctly-handle-interactions-with-items-on-cooldown.patch => 0835-Correctly-handle-interactions-with-items-on-cooldown.patch} (97%) rename patches/server/{0837-Add-PlayerInventorySlotChangeEvent.patch => 0836-Add-PlayerInventorySlotChangeEvent.patch} (97%) rename patches/server/{0838-Elder-Guardian-appearance-API.patch => 0837-Elder-Guardian-appearance-API.patch} (90%) rename patches/server/{0839-Allow-changing-bed-s-occupied-property.patch => 0838-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0840-Add-entity-knockback-API.patch => 0839-Add-entity-knockback-API.patch} (100%) rename patches/server/{0841-Detect-headless-JREs.patch => 0840-Detect-headless-JREs.patch} (96%) rename patches/server/{0842-fix-entity-vehicle-collision-event-not-called.patch => 0841-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0843-optimize-dirt-and-snow-spreading.patch => 0842-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{0844-Add-EntityToggleSitEvent.patch => 0843-Add-EntityToggleSitEvent.patch} (98%) rename patches/server/{0845-Add-fire-tick-delay-option.patch => 0844-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0846-Add-Moving-Piston-API.patch => 0845-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0847-Ignore-impossible-spawn-tick.patch => 0846-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0848-Track-projectile-source-for-fireworks-from-dispenser.patch => 0847-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0849-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0848-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0850-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (95%) rename patches/server/{0851-Add-PrePlayerAttackEntityEvent.patch => 0850-Add-PrePlayerAttackEntityEvent.patch} (93%) rename patches/server/{0852-ensure-reset-EnderDragon-boss-event-name.patch => 0851-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0853-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0852-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0854-Add-Player-Warden-Warning-API.patch => 0853-Add-Player-Warden-Warning-API.patch} (95%) rename patches/server/{0855-More-vanilla-friendly-methods-to-update-trades.patch => 0854-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0856-Add-paper-dumplisteners-command.patch => 0855-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0857-check-global-player-list-where-appropriate.patch => 0856-check-global-player-list-where-appropriate.patch} (96%) rename patches/server/{0858-Fix-async-entity-add-due-to-fungus-trees.patch => 0857-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0859-ItemStack-damage-API.patch => 0858-ItemStack-damage-API.patch} (100%) rename patches/server/{0860-Friction-API.patch => 0859-Friction-API.patch} (98%) rename patches/server/{0861-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0860-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0862-Fix-player-kick-on-shutdown.patch => 0861-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0863-Sync-offhand-slot-in-menus.patch => 0862-Sync-offhand-slot-in-menus.patch} (97%) rename patches/server/{0864-Player-Entity-Tracking-Events.patch => 0863-Player-Entity-Tracking-Events.patch} (100%) rename patches/server/{0865-Limit-pet-look-distance.patch => 0864-Limit-pet-look-distance.patch} (100%) rename patches/server/{0866-Properly-resend-entities.patch => 0865-Properly-resend-entities.patch} (98%) rename patches/server/{0867-Fixes-and-additions-to-the-SpawnReason-API.patch => 0866-Fixes-and-additions-to-the-SpawnReason-API.patch} (95%) rename patches/server/{0868-fix-Instruments.patch => 0867-fix-Instruments.patch} (96%) rename patches/server/{0869-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0868-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (100%) rename patches/server/{0870-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0869-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0871-Add-BlockLockCheckEvent.patch => 0870-Add-BlockLockCheckEvent.patch} (98%) rename patches/server/{0872-Add-Sneaking-API-for-Entities.patch => 0871-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/server/{0873-Improve-logging-and-errors.patch => 0872-Improve-logging-and-errors.patch} (98%) rename patches/server/{0874-Improve-PortalEvents.patch => 0873-Improve-PortalEvents.patch} (100%) rename patches/server/{0875-Add-config-option-for-spider-worldborder-climbing.patch => 0874-Add-config-option-for-spider-worldborder-climbing.patch} (92%) rename patches/server/{0876-Add-missing-SpigotConfig-logCommands-check.patch => 0875-Add-missing-SpigotConfig-logCommands-check.patch} (93%) rename patches/server/{0877-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0876-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0878-Flying-Fall-Damage.patch => 0877-Flying-Fall-Damage.patch} (92%) rename patches/server/{0879-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0878-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (98%) rename patches/server/{0880-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (100%) rename patches/server/{0881-config-for-disabling-entity-tag-tags.patch => 0880-config-for-disabling-entity-tag-tags.patch} (94%) rename patches/server/{0882-Use-single-player-info-update-packet-on-join.patch => 0881-Use-single-player-info-update-packet-on-join.patch} (94%) rename patches/server/{0883-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0882-Correctly-shrink-items-during-EntityResurrectEvent.patch} (95%) rename patches/server/{0884-Win-Screen-API.patch => 0883-Win-Screen-API.patch} (93%) rename patches/server/{0885-Remove-CraftItemStack-setAmount-null-assignment.patch => 0884-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0886-Fix-force-opening-enchantment-tables.patch => 0885-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0887-Add-Entity-Body-Yaw-API.patch => 0886-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0888-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0887-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0889-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0888-Update-the-flag-when-a-captured-block-state-is-outda.patch} (90%) rename patches/server/{0890-Add-EntityFertilizeEggEvent.patch => 0889-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/server/{0891-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0890-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0892-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0891-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0893-Correctly-handle-ArmorStand-invisibility.patch => 0892-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0894-Fix-advancement-triggers-for-entity-damage.patch => 0893-Fix-advancement-triggers-for-entity-damage.patch} (97%) rename patches/server/{0895-Fix-text-display-error-on-spawn.patch => 0894-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0896-Fix-inventories-returning-null-Locations.patch => 0895-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0897-Add-Shearable-API.patch => 0896-Add-Shearable-API.patch} (100%) rename patches/server/{0898-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0897-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0899-Optimize-Hoppers.patch => 0898-Optimize-Hoppers.patch} (100%) rename patches/server/{0900-Fix-beehives-generating-from-using-bonemeal.patch => 0899-Fix-beehives-generating-from-using-bonemeal.patch} (100%) rename patches/server/{0901-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0900-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (93%) rename patches/server/{0902-Treat-sequence-violations-like-they-should-be.patch => 0901-Treat-sequence-violations-like-they-should-be.patch} (92%) rename patches/server/{0903-remove-duplicate-animate-packet-for-records.patch => 0902-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0904-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0903-Prevent-causing-expired-keys-from-impacting-new-join.patch} (97%) rename patches/server/{0905-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (91%) rename patches/server/{0906-Use-array-for-gamerule-storage.patch => 0905-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0907-Fix-a-couple-of-upstream-bed-issues.patch => 0906-Fix-a-couple-of-upstream-bed-issues.patch} (95%) rename patches/server/{0908-Fix-demo-flag-not-enabling-demo-mode.patch => 0907-Fix-demo-flag-not-enabling-demo-mode.patch} (91%) rename patches/server/{0909-Add-Mob-Experience-reward-API.patch => 0908-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0910-Break-redstone-on-top-of-trap-doors-early.patch => 0909-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0911-Fix-DamageCause-for-Falling-Blocks.patch => 0910-Fix-DamageCause-for-Falling-Blocks.patch} (100%) rename patches/server/{0912-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0911-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0913-More-accurate-isInOpenWater-impl.patch => 0912-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0914-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0913-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0915-Optimise-recalcBlockCounts-for-empty-sections.patch => 0914-Optimise-recalcBlockCounts-for-empty-sections.patch} (100%) rename patches/server/{0916-Expand-PlayerItemMendEvent.patch => 0915-Expand-PlayerItemMendEvent.patch} (98%) rename patches/server/{0917-Refresh-ProjectileSource-for-projectiles.patch => 0916-Refresh-ProjectileSource-for-projectiles.patch} (100%) rename patches/server/{0918-Add-transient-modifier-API.patch => 0917-Add-transient-modifier-API.patch} (100%) rename patches/server/{0919-Fix-block-place-logic.patch => 0918-Fix-block-place-logic.patch} (97%) rename patches/server/{0920-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0919-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0921-Call-BlockGrowEvent-for-missing-blocks.patch => 0920-Call-BlockGrowEvent-for-missing-blocks.patch} (96%) rename patches/server/{0922-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0921-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (94%) rename patches/server/{0923-fix-MapLike-spam-for-missing-key-selector.patch => 0922-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0924-Fix-sniffer-removeExploredLocation.patch => 0923-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0925-Add-method-to-remove-all-active-potion-effects.patch => 0924-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0926-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch => 0925-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch} (100%) rename patches/server/{0927-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0926-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0928-Properly-cancel-usable-items.patch => 0927-Properly-cancel-usable-items.patch} (92%) rename patches/server/{0929-Add-event-for-player-editing-sign.patch => 0928-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0930-Only-tick-item-frames-if-players-can-see-it.patch => 0929-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0931-Fix-cmd-permission-levels-for-command-blocks.patch => 0930-Fix-cmd-permission-levels-for-command-blocks.patch} (98%) rename patches/server/{0932-Add-option-to-disable-block-updates.patch => 0931-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0933-Call-missing-BlockDispenseEvent.patch => 0932-Call-missing-BlockDispenseEvent.patch} (100%) rename patches/server/{0934-Don-t-load-chunks-for-supporting-block-checks.patch => 0933-Don-t-load-chunks-for-supporting-block-checks.patch} (100%) rename patches/server/{0935-Optimize-player-lookups-for-beacons.patch => 0934-Optimize-player-lookups-for-beacons.patch} (94%) rename patches/server/{0936-Add-Sign-getInteractableSideFor.patch => 0935-Add-Sign-getInteractableSideFor.patch} (96%) rename patches/server/{0937-Array-backed-synched-entity-data.patch => 0936-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0938-fix-item-meta-for-tadpole-buckets.patch => 0937-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0939-Fix-BanList-API.patch => 0938-Fix-BanList-API.patch} (99%) rename patches/server/{0940-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0939-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0941-Fix-possible-NPE-on-painting-creation.patch => 0940-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0942-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0941-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (96%) rename patches/server/{0943-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0942-ExperienceOrb-should-call-EntitySpawnEvent.patch} (100%) rename patches/server/{0944-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0943-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0945-Add-whitelist-events.patch => 0944-Add-whitelist-events.patch} (100%) rename patches/server/{0946-Implement-PlayerFailMoveEvent.patch => 0945-Implement-PlayerFailMoveEvent.patch} (98%) rename patches/server/{0947-Folia-scheduler-and-owned-region-API.patch => 0946-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0948-Only-erase-allay-memory-on-non-item-targets.patch => 0947-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0949-API-for-updating-recipes-on-clients.patch => 0948-API-for-updating-recipes-on-clients.patch} (95%) rename patches/server/{0950-Fix-rotation-when-spawning-display-entities.patch => 0949-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0951-Only-capture-actual-tree-growth.patch => 0950-Only-capture-actual-tree-growth.patch} (98%) rename patches/server/{0952-Use-correct-source-for-mushroom-block-spread-event.patch => 0951-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0953-Respect-randomizeData-on-more-entities-when-spawning.patch => 0952-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0954-Use-correct-seed-on-api-world-load.patch => 0953-Use-correct-seed-on-api-world-load.patch} (100%) rename patches/server/{0955-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0954-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0956-Cache-map-ids-on-item-frames.patch => 0955-Cache-map-ids-on-item-frames.patch} (100%) rename patches/server/{0957-Fix-custom-statistic-criteria-creation.patch => 0956-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0958-Bandaid-fix-for-Effect.patch => 0957-Bandaid-fix-for-Effect.patch} (97%) rename patches/server/{0959-SculkCatalyst-bloom-API.patch => 0958-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0960-API-for-an-entity-s-scoreboard-name.patch => 0959-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0961-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0960-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (98%) rename patches/server/{0962-Deprecate-and-replace-methods-with-old-StructureType.patch => 0961-Deprecate-and-replace-methods-with-old-StructureType.patch} (96%) rename patches/server/{0963-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0962-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (95%) rename patches/server/{0964-Properly-handle-BlockBreakEvent-isDropItems.patch => 0963-Properly-handle-BlockBreakEvent-isDropItems.patch} (99%) rename patches/server/{0965-Fire-entity-death-event-for-ender-dragon.patch => 0964-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0966-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0965-Configurable-entity-tracking-range-by-Y-coordinate.patch} (100%) rename patches/server/{0967-Add-Listing-API-for-Player.patch => 0966-Add-Listing-API-for-Player.patch} (98%) rename patches/server/{0968-Configurable-Region-Compression-Format.patch => 0967-Configurable-Region-Compression-Format.patch} (100%) rename patches/server/{0969-Add-BlockFace-to-BlockDamageEvent.patch => 0968-Add-BlockFace-to-BlockDamageEvent.patch} (96%) rename patches/server/{0970-Fix-NPE-on-Boat-getStatus.patch => 0969-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0971-Expand-Pose-API.patch => 0970-Expand-Pose-API.patch} (100%) rename patches/server/{0972-More-DragonBattle-API.patch => 0971-More-DragonBattle-API.patch} (100%) rename patches/server/{0973-Deep-clone-unhandled-nbt-tags.patch => 0972-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0974-Add-PlayerPickItemEvent.patch => 0973-Add-PlayerPickItemEvent.patch} (96%) rename patches/server/{0975-Improve-performance-of-mass-crafts.patch => 0974-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{0976-Allow-trident-custom-damage.patch => 0975-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0977-Expose-hand-in-BlockCanBuildEvent.patch => 0976-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0978-Optimize-nearest-structure-border-iteration.patch => 0977-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0979-Implement-OfflinePlayer-isConnected.patch => 0978-Implement-OfflinePlayer-isConnected.patch} (94%) rename patches/server/{0980-Fix-inventory-desync.patch => 0979-Fix-inventory-desync.patch} (100%) rename patches/server/{0981-Add-titleOverride-to-InventoryOpenEvent.patch => 0980-Add-titleOverride-to-InventoryOpenEvent.patch} (98%) rename patches/server/{0982-Configure-sniffer-egg-hatch-time.patch => 0981-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0983-Do-crystal-portal-proximity-check-before-entity-look.patch => 0982-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0984-Skip-POI-finding-if-stuck-in-vehicle.patch => 0983-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0985-Add-slot-sanity-checks-in-container-clicks.patch => 0984-Add-slot-sanity-checks-in-container-clicks.patch} (96%) rename patches/server/{0986-Call-BlockRedstoneEvents-for-lecterns.patch => 0985-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0987-Allow-proper-checking-of-empty-item-stacks.patch => 0986-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0988-Fix-silent-equipment-change-for-mobs.patch => 0987-Fix-silent-equipment-change-for-mobs.patch} (95%) rename patches/server/{0989-Fix-spigot-s-Forced-Stats.patch => 0988-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0990-Add-missing-InventoryHolders-to-inventories.patch => 0989-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/server/{0991-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0990-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{0992-Actually-optimise-explosions.patch => 0991-Actually-optimise-explosions.patch} (100%) rename patches/server/{0993-Add-missing-logs-for-log-ips-config-option.patch => 0992-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0994-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0993-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{0995-Fix-SuspiciousStewMeta.patch => 0994-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{0996-Optimise-chunk-tick-iteration.patch => 0995-Optimise-chunk-tick-iteration.patch} (99%) rename patches/server/{0997-Lag-compensation-ticks.patch => 0996-Lag-compensation-ticks.patch} (95%) rename patches/server/{0998-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0997-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{0999-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0998-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{1000-Fix-team-sidebar-objectives-not-being-cleared.patch => 0999-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{1001-Optimise-nearby-player-retrieval.patch => 1000-Optimise-nearby-player-retrieval.patch} (99%) rename patches/server/{1002-Fix-missing-map-initialize-event-call.patch => 1001-Fix-missing-map-initialize-event-call.patch} (95%) rename patches/server/{1003-Update-entity-data-when-attaching-firework-to-entity.patch => 1002-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{1004-Use-correct-variable-for-initializing-CraftLootTable.patch => 1003-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{1005-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 1004-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{1006-Fix-UnsafeValues-loadAdvancement.patch => 1005-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{1007-Add-player-idle-duration-API.patch => 1006-Add-player-idle-duration-API.patch} (91%) rename patches/server/{1008-Don-t-check-if-we-can-see-non-visible-entities.patch => 1007-Don-t-check-if-we-can-see-non-visible-entities.patch} (100%) rename patches/server/{1009-Fix-NPE-in-SculkBloomEvent-world-access.patch => 1008-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{1010-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 1009-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (90%) rename patches/server/{1011-Optimize-VarInts.patch => 1010-Optimize-VarInts.patch} (100%) rename patches/server/{1012-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 1011-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{1013-Add-predicate-for-blocks-when-raytracing.patch => 1012-Add-predicate-for-blocks-when-raytracing.patch} (98%) rename patches/server/{1014-Broadcast-take-item-packets-with-collector-as-source.patch => 1013-Broadcast-take-item-packets-with-collector-as-source.patch} (92%) rename patches/server/{1015-Expand-LingeringPotion-API.patch => 1014-Expand-LingeringPotion-API.patch} (94%) rename patches/server/{1016-Add-MaterialTagsTest.patch => 1015-Add-MaterialTagsTest.patch} (100%) rename patches/server/{1017-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 1016-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (97%) rename patches/server/{1018-Add-hand-to-fish-event-for-all-player-interactions.patch => 1017-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{1019-Fix-several-issues-with-EntityBreedEvent.patch => 1018-Fix-several-issues-with-EntityBreedEvent.patch} (98%) rename patches/server/{1020-Add-UUID-attribute-modifier-API.patch => 1019-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{1021-Fix-missing-event-call-for-entity-teleport-API.patch => 1020-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{1022-Lazily-create-LootContext-for-criterions.patch => 1021-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{1023-Don-t-fire-sync-events-during-worldgen.patch => 1022-Don-t-fire-sync-events-during-worldgen.patch} (96%) rename patches/server/{1024-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 1023-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{1025-Restore-vanilla-entity-drops-behavior.patch => 1024-Restore-vanilla-entity-drops-behavior.patch} (98%) rename patches/server/{1026-Add-Structure-check-API.patch => 1025-Add-Structure-check-API.patch} (91%) rename patches/server/{1027-Dont-resend-blocks-on-interactions.patch => 1026-Dont-resend-blocks-on-interactions.patch} (98%) rename patches/server/{1028-Keep-previous-behavior-for-setResourcePack.patch => 1027-Keep-previous-behavior-for-setResourcePack.patch} (94%) rename patches/server/{1029-properly-read-and-store-sus-effect-duration.patch => 1028-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{1030-Use-correct-max-stack-size-in-crafter.patch => 1029-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{1031-add-more-scoreboard-API.patch => 1030-add-more-scoreboard-API.patch} (100%) rename patches/server/{1032-Improve-Registry.patch => 1031-Improve-Registry.patch} (100%) rename patches/server/{1033-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 1032-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (97%) rename patches/server/{1034-Add-experience-points-API.patch => 1033-Add-experience-points-API.patch} (95%) rename patches/server/{1035-Add-missing-InventoryType.patch => 1034-Add-missing-InventoryType.patch} (100%) rename patches/server/{1036-Add-drops-to-shear-events.patch => 1035-Add-drops-to-shear-events.patch} (100%) rename patches/server/{1037-Add-PlayerShieldDisableEvent.patch => 1036-Add-PlayerShieldDisableEvent.patch} (95%) rename patches/server/{1038-Add-HiddenPotionEffect-API.patch => 1037-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1039-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1038-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{1040-fix-ItemMeta-removing-CustomModelData.patch => 1039-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/server/{1041-Validate-ResourceLocation-in-NBT-reading.patch => 1040-Validate-ResourceLocation-in-NBT-reading.patch} (96%) rename patches/server/{1042-Properly-handle-experience-dropping-on-block-break.patch => 1041-Properly-handle-experience-dropping-on-block-break.patch} (98%) rename patches/server/{1043-Fixup-NamespacedKey-handling.patch => 1042-Fixup-NamespacedKey-handling.patch} (100%) diff --git a/patches/server/0531-Expand-EntityUnleashEvent.patch b/patches/server/0531-Expand-EntityUnleashEvent.patch index 8242a0da2a19..990b7010b8e2 100644 --- a/patches/server/0531-Expand-EntityUnleashEvent.patch +++ b/patches/server/0531-Expand-EntityUnleashEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand EntityUnleashEvent diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index d330b6d291cd2967358e892ccbc480bb3bd8022d..f9743f8705a7f5f3ede4c869070d5735e24348a0 100644 +index d330b6d291cd2967358e892ccbc480bb3bd8022d..16d84042e2575418880897c728a99d1b8bbcdd15 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1305,12 +1305,15 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -62,14 +62,14 @@ index d330b6d291cd2967358e892ccbc480bb3bd8022d..f9743f8705a7f5f3ede4c869070d5735 - this.dropLeash(true, false); + // Paper start - drop leash variable + EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.UNKNOWN, false); -+ if (!event.callEvent()) { return; } ++ this.level().getCraftServer().getPluginManager().callEvent(event); // CraftBukkit + this.dropLeash(true, event.isDropLeash()); + // Paper end this.getAllSlots().forEach((itemstack) -> { if (!itemstack.isEmpty()) { itemstack.setCount(0); diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -index 452f219fde958fb4dc775cd2c56c0576c45a8045..8e362ad31208d87f4a69a1747485610e0588be51 100644 +index 452f219fde958fb4dc775cd2c56c0576c45a8045..7ed610c67fcfa200c30e13a49146907f765bc5ed 100644 --- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java +++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java @@ -57,8 +57,11 @@ public abstract class PathfinderMob extends Mob { @@ -80,7 +80,7 @@ index 452f219fde958fb4dc775cd2c56c0576c45a8045..8e362ad31208d87f4a69a1747485610e - this.dropLeash(true, true); + // Paper start - drop leash variable + EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE, true); -+ this.level().getCraftServer().getPluginManager().callEvent(event); // CraftBukkit ++ if (!event.callEvent()) return; + this.dropLeash(true, event.isDropLeash()); + // Paper end } @@ -94,7 +94,7 @@ index 452f219fde958fb4dc775cd2c56c0576c45a8045..8e362ad31208d87f4a69a1747485610e - this.dropLeash(true, true); + // Paper start - drop leash variable + EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE, true); -+ this.level().getCraftServer().getPluginManager().callEvent(event); // CraftBukkit ++ if (!event.callEvent()) return; + this.dropLeash(true, event.isDropLeash()); + // Paper end this.goalSelector.disableControlFlag(Goal.Flag.MOVE); diff --git a/patches/server/0550-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0550-Allow-using-signs-inside-spawn-protection.patch index b1ef73a2a049..4056cd23e91a 100644 --- a/patches/server/0550-Allow-using-signs-inside-spawn-protection.patch +++ b/patches/server/0550-Allow-using-signs-inside-spawn-protection.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow using signs inside spawn protection diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 48815e94a0eacbdd03ea8630ae4a53f1a4747520..06f6f39e8ac9f2ebc05d63c3c34eb2b1bdb6aa1d 100644 +index 48815e94a0eacbdd03ea8630ae4a53f1a4747520..49914e966296b23736ecf5efc2dbaa0e1fefa091 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1757,7 +1757,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -13,7 +13,7 @@ index 48815e94a0eacbdd03ea8630ae4a53f1a4747520..06f6f39e8ac9f2ebc05d63c3c34eb2b1 if (blockposition.getY() < i) { - if (this.awaitingPositionFromClient == null && this.player.distanceToSqr((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D) < 64.0D && worldserver.mayInteract(this.player, blockposition)) { -+ if (this.awaitingPositionFromClient == null && this.player.distanceToSqr((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D) < 64.0D && (worldserver.mayInteract(this.player, blockposition) || (worldserver.paperConfig().spawn.allowUsingSignsInsideSpawnProtection && worldserver.getBlockState(blockposition).getBlock() instanceof net.minecraft.world.level.block.SignBlock))) { // Paper - sign check ++ if (this.awaitingPositionFromClient == null && this.player.distanceToSqr((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D) < 64.0D && (worldserver.mayInteract(this.player, blockposition) || (worldserver.paperConfig().spawn.allowUsingSignsInsideSpawnProtection && worldserver.getBlockState(blockposition).getBlock() instanceof net.minecraft.world.level.block.SignBlock))) { // Paper - Allow using signs inside spawn protection this.player.stopUsingItem(); // CraftBukkit - SPIGOT-4706 InteractionResult enuminteractionresult = this.player.gameMode.useItemOn(this.player, worldserver, itemstack, enumhand, movingobjectpositionblock); diff --git a/patches/server/0552-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0552-Add-fast-alternative-constructor-for-Rotations.patch index bbdcc665bb9f..9b38f8f90dc2 100644 --- a/patches/server/0552-Add-fast-alternative-constructor-for-Rotations.patch +++ b/patches/server/0552-Add-fast-alternative-constructor-for-Rotations.patch @@ -3,10 +3,9 @@ From: Irmo van den Berge Date: Wed, 10 Mar 2021 21:26:31 +0100 Subject: [PATCH] Add fast alternative constructor for Rotations -Signed-off-by: Irmo van den Berge diff --git a/src/main/java/net/minecraft/core/Rotations.java b/src/main/java/net/minecraft/core/Rotations.java -index e4b4e78de933b93be87805501d9cbfec429cf68c..152b1a2cb88c6456282b537611c18975d6da5f57 100644 +index e4b4e78de933b93be87805501d9cbfec429cf68c..95ef904bebeaff3275f25c401ef13c68504f3514 100644 --- a/src/main/java/net/minecraft/core/Rotations.java +++ b/src/main/java/net/minecraft/core/Rotations.java @@ -19,6 +19,18 @@ public class Rotations { @@ -23,7 +22,7 @@ index e4b4e78de933b93be87805501d9cbfec429cf68c..152b1a2cb88c6456282b537611c18975 + public static Rotations createWithoutValidityChecks(float x, float y, float z) { + return new Rotations(x, y, z, null); + } -+ // Paper end ++ // Paper end - faster alternative constructor + public ListTag save() { ListTag listTag = new ListTag(); diff --git a/patches/server/0554-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0554-Drop-carried-item-when-player-has-disconnected.patch index c157596526d7..dc7dcd11a89f 100644 --- a/patches/server/0554-Drop-carried-item-when-player-has-disconnected.patch +++ b/patches/server/0554-Drop-carried-item-when-player-has-disconnected.patch @@ -7,7 +7,7 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro Closes #5036 diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 72b9c50024e82356491a3d35bf248223f3088b5c..dfaedfb4996d9edfb5c50851abf4f5a91f41527c 100644 +index 72b9c50024e82356491a3d35bf248223f3088b5c..5c63a7719b2a4a4bb2c64d460b007d2976cbdbf9 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -597,6 +597,14 @@ public abstract class PlayerList { @@ -20,7 +20,7 @@ index 72b9c50024e82356491a3d35bf248223f3088b5c..dfaedfb4996d9edfb5c50851abf4f5a9 + entityplayer.containerMenu.setCarried(net.minecraft.world.item.ItemStack.EMPTY); + entityplayer.drop(carried, false); + } -+ // Paper end ++ // Paper end - Drop carried item when player has disconnected + this.save(entityplayer); if (entityplayer.isPassenger()) { diff --git a/patches/server/0558-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0558-Enhance-console-tab-completions-for-brigadier-comman.patch index eea0310f5521..b0a14d7816d0 100644 --- a/patches/server/0558-Enhance-console-tab-completions-for-brigadier-comman.patch +++ b/patches/server/0558-Enhance-console-tab-completions-for-brigadier-comman.patch @@ -208,7 +208,7 @@ index 0000000000000000000000000000000000000000..dd9d77d7c7f1a5a130a1f4c15e5b1e68 + public void setErrorIndex(final int errorIndex) {} +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index b5acccc3339e3e2b817116ecf2af228cb641b175..d3e5235d4aa7240ba91bd40c3e1809e1fc1c4632 100644 +index b5acccc3339e3e2b817116ecf2af228cb641b175..d0551eb2aae8a26222827fdd7c1b7ee81c8c95b9 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -173,7 +173,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -216,7 +216,7 @@ index b5acccc3339e3e2b817116ecf2af228cb641b175..d3e5235d4aa7240ba91bd40c3e1809e1 thread.setDaemon(true); thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(DedicatedServer.LOGGER)); - thread.start(); -+ // thread.start(); // Paper - moved down ++ // thread.start(); // Paper - Enhance console tab completions for brigadier commands; moved down DedicatedServer.LOGGER.info("Starting minecraft server version {}", SharedConstants.getCurrentVersion().getName()); if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L) { DedicatedServer.LOGGER.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); @@ -224,23 +224,23 @@ index b5acccc3339e3e2b817116ecf2af228cb641b175..d3e5235d4aa7240ba91bd40c3e1809e1 this.getPlayerList().loadAndSaveFiles(); // Must be after convertNames // Paper end - convert old users earlier after PlayerList creation but before file load/save org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); // Paper - start watchdog thread -+ thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized ++ thread.start(); // Paper - Enhance console tab completions for brigadier commands; start console thread after MinecraftServer.console & PaperConfig are initialized io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now diff --git a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java -index 8f82041f0482df22a6a9ea38d50d56228131775d..12eeabafbad9da8796dc6fc383b732cf75bb7ddb 100644 +index 8f82041f0482df22a6a9ea38d50d56228131775d..3e93a6c489972ff2b4ecff3d83cc72b2d5c970f8 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java +++ b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java @@ -18,9 +18,11 @@ import org.bukkit.event.server.TabCompleteEvent; public class ConsoleCommandCompleter implements Completer { private final DedicatedServer server; // Paper - CraftServer -> DedicatedServer -+ private final io.papermc.paper.console.BrigadierCommandCompleter brigadierCompleter; // Paper ++ private final io.papermc.paper.console.BrigadierCommandCompleter brigadierCompleter; // Paper - Enhance console tab completions for brigadier commands public ConsoleCommandCompleter(DedicatedServer server) { // Paper - CraftServer -> DedicatedServer this.server = server; -+ this.brigadierCompleter = new io.papermc.paper.console.BrigadierCommandCompleter(this.server); // Paper ++ this.brigadierCompleter = new io.papermc.paper.console.BrigadierCommandCompleter(this.server); // Paper - Enhance console tab completions for brigadier commands } // Paper start - Change method signature for JLine update @@ -265,7 +265,7 @@ index 8f82041f0482df22a6a9ea38d50d56228131775d..12eeabafbad9da8796dc6fc383b732cf try { List offers = waitable.get(); if (offers == null) { -+ this.addCompletions(reader, line, candidates, Collections.emptyList()); // Paper ++ this.addCompletions(reader, line, candidates, Collections.emptyList()); // Paper - Enhance console tab completions for brigadier commands return; // Paper - Method returns void } diff --git a/patches/server/0560-Add-bypass-host-check.patch b/patches/server/0560-Add-bypass-host-check.patch index 7faab28de404..8e53305847db 100644 --- a/patches/server/0560-Add-bypass-host-check.patch +++ b/patches/server/0560-Add-bypass-host-check.patch @@ -8,7 +8,7 @@ Paper.bypassHostCheck Seriously, fix your firewalls. -.- diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 5d7f092e966d5b0496f48bd5c9d274157ac6d250..3068e25f2df958689627fb31783a2d356547f1be 100644 +index 5d7f092e966d5b0496f48bd5c9d274157ac6d250..7fa8efd6b0cd7a7684d9bd4ff89d4955a69a8dd5 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -30,6 +30,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL @@ -24,7 +24,7 @@ index 5d7f092e966d5b0496f48bd5c9d274157ac6d250..3068e25f2df958689627fb31783a2d35 // Paper end // if (org.spigotmc.SpigotConfig.bungee) { // Paper - comment out, we check above! - if ( ( split.length == 3 || split.length == 4 ) && ( ServerHandshakePacketListenerImpl.HOST_PATTERN.matcher( split[1] ).matches() ) ) { -+ if ( ( split.length == 3 || split.length == 4 ) && ( ServerHandshakePacketListenerImpl.BYPASS_HOSTCHECK || ServerHandshakePacketListenerImpl.HOST_PATTERN.matcher( split[1] ).matches() ) ) { // Paper ++ if ( ( split.length == 3 || split.length == 4 ) && ( ServerHandshakePacketListenerImpl.BYPASS_HOSTCHECK || ServerHandshakePacketListenerImpl.HOST_PATTERN.matcher( split[1] ).matches() ) ) { // Paper - Add bypass host check this.connection.hostname = split[0]; this.connection.address = new java.net.InetSocketAddress(split[1], ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getPort()); this.connection.spoofedUUID = com.mojang.util.UndashedUuid.fromStringLenient( split[2] ); diff --git a/patches/server/0563-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0563-add-consumeFuel-to-FurnaceBurnEvent.patch index 2876903f0866..aa992bf87972 100644 --- a/patches/server/0563-add-consumeFuel-to-FurnaceBurnEvent.patch +++ b/patches/server/0563-add-consumeFuel-to-FurnaceBurnEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add consumeFuel to FurnaceBurnEvent diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 97b8dc205fb22e17ab457e8d1f4d73a7b2f8cc47..11ee20c6dc87baa063e8293ebdd9d5247a3e932e 100644 +index 97b8dc205fb22e17ab457e8d1f4d73a7b2f8cc47..b7760cc0f85b5db37d5a309aae3c26a00a65e32e 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -359,7 +359,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @@ -13,7 +13,7 @@ index 97b8dc205fb22e17ab457e8d1f4d73a7b2f8cc47..11ee20c6dc87baa063e8293ebdd9d524 // CraftBukkit end flag1 = true; - if (flag3) { -+ if (flag3 && furnaceBurnEvent.willConsumeFuel()) { // Paper ++ if (flag3 && furnaceBurnEvent.willConsumeFuel()) { // Paper - add consumeFuel to FurnaceBurnEvent Item item = itemstack.getItem(); itemstack.shrink(1); diff --git a/patches/server/0565-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0565-fix-PigZombieAngerEvent-cancellation.patch index ecc0f6c3cda8..8b29ccdead82 100644 --- a/patches/server/0565-fix-PigZombieAngerEvent-cancellation.patch +++ b/patches/server/0565-fix-PigZombieAngerEvent-cancellation.patch @@ -5,14 +5,14 @@ Subject: [PATCH] fix PigZombieAngerEvent cancellation diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index 7e703bf1ca3cf824b06b6be731b866cd407aaff1..1afe8a8694c1fd0bf43ce3c0c36a83fda9aec141 100644 +index 7e703bf1ca3cf824b06b6be731b866cd407aaff1..fbabbd0808304f5d0d12f987d00c9e43a89fb1c9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java @@ -57,6 +57,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { private int ticksUntilNextAlert; private static final float ZOMBIFIED_PIGLIN_EYE_HEIGHT = 1.79F; private static final float ZOMBIFIED_PIGLIN_BABY_EYE_HEIGHT_ADJUSTMENT = 0.82F; -+ private HurtByTargetGoal pathfinderGoalHurtByTarget; // Paper ++ private HurtByTargetGoal pathfinderGoalHurtByTarget; // Paper - fix PigZombieAngerEvent cancellation public ZombifiedPiglin(EntityType type, Level world) { super(type, world); @@ -21,7 +21,7 @@ index 7e703bf1ca3cf824b06b6be731b866cd407aaff1..1afe8a8694c1fd0bf43ce3c0c36a83fd this.goalSelector.addGoal(2, new ZombieAttackGoal(this, 1.0D, false)); this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 1.0D)); - this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); -+ this.targetSelector.addGoal(1, pathfinderGoalHurtByTarget = (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); // Paper - assign field ++ this.targetSelector.addGoal(1, pathfinderGoalHurtByTarget = (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); // Paper - fix PigZombieAngerEvent cancellation this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::isAngryAt)); this.targetSelector.addGoal(3, new ResetUniversalAngerTargetGoal<>(this, true)); } @@ -29,7 +29,7 @@ index 7e703bf1ca3cf824b06b6be731b866cd407aaff1..1afe8a8694c1fd0bf43ce3c0c36a83fd this.level().getCraftServer().getPluginManager().callEvent(event); if (event.isCancelled()) { this.setPersistentAngerTarget(null); -+ pathfinderGoalHurtByTarget.stop(); // Paper - clear goalTargets to fix cancellation ++ pathfinderGoalHurtByTarget.stop(); // Paper - fix PigZombieAngerEvent cancellation return; } this.setRemainingPersistentAngerTime(event.getNewAnger()); diff --git a/patches/server/0567-Added-PlayerDeepSleepEvent.patch b/patches/server/0567-Add-PlayerDeepSleepEvent.patch similarity index 78% rename from patches/server/0567-Added-PlayerDeepSleepEvent.patch rename to patches/server/0567-Add-PlayerDeepSleepEvent.patch index 50e7ec7f4c7a..1bb90603202b 100644 --- a/patches/server/0567-Added-PlayerDeepSleepEvent.patch +++ b/patches/server/0567-Add-PlayerDeepSleepEvent.patch @@ -1,22 +1,22 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Wed, 21 Apr 2021 15:58:19 -0700 -Subject: [PATCH] Added PlayerDeepSleepEvent +Subject: [PATCH] Add PlayerDeepSleepEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 2957b3929c1e92af1b1a2636b83b757a0fbc789d..51fe3687f6f8c2ce5a5f0ac7749bc7cad135a69a 100644 +index 2957b3929c1e92af1b1a2636b83b757a0fbc789d..482eaa28277eca1dbb25d1f3cf6c27328a8879de 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -248,6 +248,11 @@ public abstract class Player extends LivingEntity { if (this.isSleeping()) { ++this.sleepCounter; -+ // Paper start ++ // Paper start - Add PlayerDeepSleepEvent + if (this.sleepCounter == 100) { + if (!new io.papermc.paper.event.player.PlayerDeepSleepEvent((org.bukkit.entity.Player) getBukkitEntity()).callEvent()) { this.sleepCounter = Integer.MIN_VALUE; } + } -+ // Paper end ++ // Paper end - Add PlayerDeepSleepEvent if (this.sleepCounter > 100) { this.sleepCounter = 100; } diff --git a/patches/server/0569-Added-PlayerBedFailEnterEvent.patch b/patches/server/0569-Add-PlayerBedFailEnterEvent.patch similarity index 82% rename from patches/server/0569-Added-PlayerBedFailEnterEvent.patch rename to patches/server/0569-Add-PlayerBedFailEnterEvent.patch index 3aaa99a5800a..7ce3f44006d3 100644 --- a/patches/server/0569-Added-PlayerBedFailEnterEvent.patch +++ b/patches/server/0569-Add-PlayerBedFailEnterEvent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Thu, 24 Dec 2020 12:27:41 -0800 -Subject: [PATCH] Added PlayerBedFailEnterEvent +Subject: [PATCH] Add PlayerBedFailEnterEvent diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java -index 77438ea56b83f6aecd5f9acb9c55d4cd6e86ff95..0e63fa3b49b1a275254cf108a51ab18e816aad49 100644 +index 77438ea56b83f6aecd5f9acb9c55d4cd6e86ff95..40559727591278f44dbf50e2d3406054ffeb8ae9 100644 --- a/src/main/java/net/minecraft/world/level/block/BedBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java @@ -119,14 +119,23 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock @@ -18,19 +18,19 @@ index 77438ea56b83f6aecd5f9acb9c55d4cd6e86ff95..0e63fa3b49b1a275254cf108a51ab18e + if (!event.callEvent()) { + return; + } -+ // Paper end ++ // Paper end - PlayerBedFailEnterEvent // CraftBukkit start - handling bed explosion from below here - if (!world.dimensionType().bedWorks()) { -+ if (event.getWillExplode()) { // Paper ++ if (event.getWillExplode()) { // Paper - PlayerBedFailEnterEvent this.explodeBed(finaliblockdata, world, finalblockposition); } else // CraftBukkit end if (entityhuman_enumbedresult.getMessage() != null) { - player.displayClientMessage(entityhuman_enumbedresult.getMessage(), true); -+ final net.kyori.adventure.text.Component message = event.getMessage(); // Paper -+ if (message != null) player.displayClientMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(message), true); // Paper ++ final net.kyori.adventure.text.Component message = event.getMessage(); // Paper - PlayerBedFailEnterEvent ++ if (message != null) player.displayClientMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(message), true); // Paper - PlayerBedFailEnterEvent } -+ } // Paper ++ } // Paper - PlayerBedFailEnterEvent }); return InteractionResult.SUCCESS; diff --git a/patches/server/0573-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch similarity index 66% rename from patches/server/0573-add-RespawnFlags-to-PlayerRespawnEvent.patch rename to patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch index fd3a8af4c07c..c035a6b430b2 100644 --- a/patches/server/0573-add-RespawnFlags-to-PlayerRespawnEvent.patch +++ b/patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch @@ -1,11 +1,12 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic -Date: Thu, 22 Apr 2021 17:17:47 -0700 -Subject: [PATCH] add RespawnFlags to PlayerRespawnEvent +From: HexedHero <6012891+HexedHero@users.noreply.github.com> +Date: Fri, 23 Apr 2021 22:42:42 +0100 +Subject: [PATCH] Expand PlayerRespawnEvent, fix passed parameter issues +Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 91e1a5fb981dd8468bb13098424b54da1c90a998..206c0a1e783699ed272e3640a29fe349eb0b465e 100644 +index d58d0748e218349fca1927263ad986ca824d4bda..8a6d9ae5b0735884a39fa2ded6f1d94909043eb7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2644,7 +2644,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -13,33 +14,49 @@ index 91e1a5fb981dd8468bb13098424b54da1c90a998..206c0a1e783699ed272e3640a29fe349 if (this.player.wonGame) { this.player.wonGame = false; - this.player = this.server.getPlayerList().respawn(this.player, true, RespawnReason.END_PORTAL); -+ this.player = this.server.getPlayerList().respawn(this.player, this.server.getLevel(this.player.getRespawnDimension()), true, null, true, RespawnReason.END_PORTAL, org.bukkit.event.player.PlayerRespawnEvent.RespawnFlag.END_PORTAL); // Paper - add isEndCreditsRespawn argument ++ this.player = this.server.getPlayerList().respawn(this.player, this.server.getLevel(this.player.getRespawnDimension()), true, null, true, RespawnReason.END_PORTAL, org.bukkit.event.player.PlayerRespawnEvent.RespawnFlag.END_PORTAL); // Paper - Expand PlayerRespawnEvent CriteriaTriggers.CHANGED_DIMENSION.trigger(this.player, Level.END, Level.OVERWORLD); } else { if (this.player.getHealth() > 0.0F) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index af1c4caa17e8b6ae597af123abe6b056bd8fd87d..c3e058cb24fc6cf3e7508ad689af9214d9a20f7d 100644 +index 5c63a7719b2a4a4bb2c64d460b007d2976cbdbf9..a622d91ecdea6ab4deaf0ef4ae90cba71c49b319 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -781,6 +781,12 @@ public abstract class PlayerList { } public ServerPlayer respawn(ServerPlayer entityplayer, ServerLevel worldserver, boolean flag, Location location, boolean avoidSuffocation, RespawnReason reason) { -+ // Paper start ++ // Paper start - Expand PlayerRespawnEvent + return respawn(entityplayer, worldserver, flag, location, avoidSuffocation, reason, new org.bukkit.event.player.PlayerRespawnEvent.RespawnFlag[0]); + } + + public ServerPlayer respawn(ServerPlayer entityplayer, ServerLevel worldserver, boolean flag, Location location, boolean avoidSuffocation, RespawnReason reason, org.bukkit.event.player.PlayerRespawnEvent.RespawnFlag...respawnFlags) { -+ // Paper end ++ // Paper end - Expand PlayerRespawnEvent entityplayer.stopRiding(); // CraftBukkit this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot -@@ -872,7 +878,7 @@ public abstract class PlayerList { +@@ -822,6 +828,7 @@ public abstract class PlayerList { + + // Paper start + boolean isBedSpawn = false; ++ boolean isAnchorSpawn = false; // Paper - Fix PlayerRespawnEvent + boolean isRespawn = false; + boolean isLocAltered = false; // Paper - Fix SPIGOT-5989 + // Paper end +@@ -842,6 +849,7 @@ public abstract class PlayerList { + if (optional.isPresent()) { + BlockState iblockdata = worldserver1.getBlockState(blockposition); + boolean flag3 = iblockdata.is(Blocks.RESPAWN_ANCHOR); ++ isAnchorSpawn = flag3; // Paper - Fix PlayerRespawnEvent + Vec3 vec3d = (Vec3) optional.get(); + float f1; + +@@ -870,7 +878,7 @@ public abstract class PlayerList { } Player respawnPlayer = entityplayer1.getBukkitEntity(); -- PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn && !isAnchorSpawn, isAnchorSpawn, reason); // Paper - Fix anchor respawn acting as a bed respawn from the end portal -+ PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn && !isAnchorSpawn, isAnchorSpawn, reason, com.google.common.collect.ImmutableSet.builder().add(respawnFlags)); // Paper - Fix anchor respawn acting as a bed respawn from the end portal +- PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn && !flag2, flag2, reason); ++ PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn && !isAnchorSpawn, isAnchorSpawn, reason, com.google.common.collect.ImmutableSet.builder().add(respawnFlags)); // Paper - PlayerRespawnEvent changes this.cserver.getPluginManager().callEvent(respawnEvent); // Spigot Start if (entityplayer.connection.isDisconnected()) { diff --git a/patches/server/0571-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch b/patches/server/0571-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch deleted file mode 100644 index b7084efce8da..000000000000 --- a/patches/server/0571-Fix-anchor-respawn-acting-as-a-bed-respawn-from-the-.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: HexedHero <6012891+HexedHero@users.noreply.github.com> -Date: Fri, 23 Apr 2021 22:42:42 +0100 -Subject: [PATCH] Fix anchor respawn acting as a bed respawn from the end - portal - - -diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index dfaedfb4996d9edfb5c50851abf4f5a91f41527c..af1c4caa17e8b6ae597af123abe6b056bd8fd87d 100644 ---- a/src/main/java/net/minecraft/server/players/PlayerList.java -+++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -822,6 +822,7 @@ public abstract class PlayerList { - - // Paper start - boolean isBedSpawn = false; -+ boolean isAnchorSpawn = false; - boolean isRespawn = false; - boolean isLocAltered = false; // Paper - Fix SPIGOT-5989 - // Paper end -@@ -842,6 +843,7 @@ public abstract class PlayerList { - if (optional.isPresent()) { - BlockState iblockdata = worldserver1.getBlockState(blockposition); - boolean flag3 = iblockdata.is(Blocks.RESPAWN_ANCHOR); -+ isAnchorSpawn = flag3; // Paper - Fix anchor respawn acting as a bed respawn from the end portal - Vec3 vec3d = (Vec3) optional.get(); - float f1; - -@@ -870,7 +872,7 @@ public abstract class PlayerList { - } - - Player respawnPlayer = entityplayer1.getBukkitEntity(); -- PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn && !flag2, flag2, reason); -+ PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn && !isAnchorSpawn, isAnchorSpawn, reason); // Paper - Fix anchor respawn acting as a bed respawn from the end portal - this.cserver.getPluginManager().callEvent(respawnEvent); - // Spigot Start - if (entityplayer.connection.isDisconnected()) { diff --git a/patches/server/0572-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0572-Introduce-beacon-activation-deactivation-events.patch index d28ff36b7920..d4053227a189 100644 --- a/patches/server/0572-Introduce-beacon-activation-deactivation-events.patch +++ b/patches/server/0572-Introduce-beacon-activation-deactivation-events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Introduce beacon activation/deactivation events diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index 3a50fe20294048a1c818ae717a918bb1aed74dea..ca91b82a21a46b1a62564b5157882a845eae8737 100644 +index 3a50fe20294048a1c818ae717a918bb1aed74dea..d3e2fd7fcfeec133a7baa0007c979c9e379c2f10 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -221,6 +221,15 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name @@ -20,7 +20,7 @@ index 3a50fe20294048a1c818ae717a918bb1aed74dea..ca91b82a21a46b1a62564b5157882a84 + org.bukkit.block.Block block = org.bukkit.craftbukkit.block.CraftBlock.at(world, pos); + new io.papermc.paper.event.block.BeaconDeactivatedEvent(block).callEvent(); + } -+ // Paper end ++ // Paper end - beacon activation/deactivation events if (blockEntity.lastCheckY >= l) { blockEntity.lastCheckY = world.getMinBuildHeight() - 1; @@ -28,10 +28,10 @@ index 3a50fe20294048a1c818ae717a918bb1aed74dea..ca91b82a21a46b1a62564b5157882a84 @Override public void setRemoved() { -+ // Paper start - BeaconDeactivatedEvent ++ // Paper start - beacon activation/deactivation events + org.bukkit.block.Block block = org.bukkit.craftbukkit.block.CraftBlock.at(level, worldPosition); + new io.papermc.paper.event.block.BeaconDeactivatedEvent(block).callEvent(); -+ // Paper end ++ // Paper end - beacon activation/deactivation events BeaconBlockEntity.playSound(this.level, this.worldPosition, SoundEvents.BEACON_DEACTIVATE); super.setRemoved(); } diff --git a/patches/server/0574-Add-Channel-initialization-listeners.patch b/patches/server/0573-Add-Channel-initialization-listeners.patch similarity index 94% rename from patches/server/0574-Add-Channel-initialization-listeners.patch rename to patches/server/0573-Add-Channel-initialization-listeners.patch index 0be8c3d18121..9ae80dfd00d4 100644 --- a/patches/server/0574-Add-Channel-initialization-listeners.patch +++ b/patches/server/0573-Add-Channel-initialization-listeners.patch @@ -122,14 +122,14 @@ index 0000000000000000000000000000000000000000..0d7e7db9e37ef0183c32b217bd944fb4 + COMPRESSION_DISABLED +} diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 2db208427447b94cdfdb22b38b6dc6697b1067bd..d4e23bfb6135d52c1359d7ccfabc6a0e595afe6e 100644 +index 2db208427447b94cdfdb22b38b6dc6697b1067bd..7e966e072476c085d41942a02a5f0f3ff1ac72bc 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -717,6 +717,7 @@ public class Connection extends SimpleChannelInboundHandler> { } else { this.channel.pipeline().addBefore("encoder", "compress", new CompressionEncoder(compressionThreshold)); } -+ this.channel.pipeline().fireUserEventTriggered(io.papermc.paper.network.ConnectionEvent.COMPRESSION_THRESHOLD_SET); // Paper ++ this.channel.pipeline().fireUserEventTriggered(io.papermc.paper.network.ConnectionEvent.COMPRESSION_THRESHOLD_SET); // Paper - Add Channel initialization listeners } else { if (this.channel.pipeline().get("decompress") instanceof CompressionDecoder) { this.channel.pipeline().remove("decompress"); @@ -137,19 +137,19 @@ index 2db208427447b94cdfdb22b38b6dc6697b1067bd..d4e23bfb6135d52c1359d7ccfabc6a0e if (this.channel.pipeline().get("compress") instanceof CompressionEncoder) { this.channel.pipeline().remove("compress"); } -+ this.channel.pipeline().fireUserEventTriggered(io.papermc.paper.network.ConnectionEvent.COMPRESSION_DISABLED); // Paper ++ this.channel.pipeline().fireUserEventTriggered(io.papermc.paper.network.ConnectionEvent.COMPRESSION_DISABLED); // Paper - Add Channel initialization listeners } } diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index b2bfb3893200362ac35ae60982f203f86a1148ec..6641fd04821240b1bbeff1bd8d996a8f2fff8385 100644 +index b2bfb3893200362ac35ae60982f203f86a1148ec..4414b12218a5693fecaa8c1e7c7676a58bcad324 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -116,6 +116,7 @@ public class ServerConnectionListener { pending.add(object); // Paper ((Connection) object).configurePacketHandler(channelpipeline); ((Connection) object).setListenerForServerboundHandshake(new ServerHandshakePacketListenerImpl(ServerConnectionListener.this.server, (Connection) object)); -+ io.papermc.paper.network.ChannelInitializeListenerHolder.callListeners(channel); // Paper ++ io.papermc.paper.network.ChannelInitializeListenerHolder.callListeners(channel); // Paper - Add Channel initialization listeners } }).group(eventloopgroup).localAddress(address, port)).option(ChannelOption.AUTO_READ, false).bind().syncUninterruptibly()); // CraftBukkit } diff --git a/patches/server/0575-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0574-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 81% rename from patches/server/0575-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0574-Send-empty-commands-if-tab-completion-is-disabled.patch index 5ac1f0000995..8335cf272899 100644 --- a/patches/server/0575-Send-empty-commands-if-tab-completion-is-disabled.patch +++ b/patches/server/0574-Send-empty-commands-if-tab-completion-is-disabled.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Send empty commands if tab completion is disabled diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 2de557a5ed91e2036a7f558cfca8b174cd534959..3b3fa067ee5a95d52645147c2d9d1e43d7a789b6 100644 +index 2de557a5ed91e2036a7f558cfca8b174cd534959..565685d0f41311bc2281d11ee9d751bf4d4c93a3 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -456,7 +456,12 @@ public class Commands { @@ -14,11 +14,11 @@ index 2de557a5ed91e2036a7f558cfca8b174cd534959..3b3fa067ee5a95d52645147c2d9d1e43 public void sendCommands(ServerPlayer player) { - if ( org.spigotmc.SpigotConfig.tabComplete < 0 ) return; // Spigot + // Paper start - Send empty commands if tab completion is disabled -+ if ( org.spigotmc.SpigotConfig.tabComplete < 0 ) { //return; // Spigot ++ if (org.spigotmc.SpigotConfig.tabComplete < 0) { + player.connection.send(new ClientboundCommandsPacket(new RootCommandNode<>())); + return; + } -+ // Paper end ++ // Paper end - Send empty commands if tab completion is disabled // CraftBukkit start // Register Vanilla commands into builtRoot as before // Paper start - Async command map building diff --git a/patches/server/0576-Add-more-WanderingTrader-API.patch b/patches/server/0575-Add-more-WanderingTrader-API.patch similarity index 95% rename from patches/server/0576-Add-more-WanderingTrader-API.patch rename to patches/server/0575-Add-more-WanderingTrader-API.patch index e7542c5ef9a0..9e049337bc94 100644 --- a/patches/server/0576-Add-more-WanderingTrader-API.patch +++ b/patches/server/0575-Add-more-WanderingTrader-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add more WanderingTrader API diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index 0321b4bb622930bfe57661b0e6b893d7635668fb..96115fe8a8c32ce5992d779b5db540b9d81e3b82 100644 +index 0321b4bb622930bfe57661b0e6b893d7635668fb..594e82a09d21c39331c391f2aec5bc8d87649ea3 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -60,6 +60,10 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -15,7 +15,7 @@ index 0321b4bb622930bfe57661b0e6b893d7635668fb..96115fe8a8c32ce5992d779b5db540b9 + // Paper start - Add more WanderingTrader API + public boolean canDrinkPotion = true; + public boolean canDrinkMilk = true; -+ // Paper end ++ // Paper end - Add more WanderingTrader API public WanderingTrader(EntityType type, Level world) { super(type, world); diff --git a/patches/server/0577-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0576-Add-EntityBlockStorage-clearEntities.patch similarity index 91% rename from patches/server/0577-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0576-Add-EntityBlockStorage-clearEntities.patch index 440b15481bec..2d4e55a930d4 100644 --- a/patches/server/0577-Add-EntityBlockStorage-clearEntities.patch +++ b/patches/server/0576-Add-EntityBlockStorage-clearEntities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityBlockStorage#clearEntities() diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index 5f2042d565974a5509aec8f744e091fe7c576c98..8c4fba5369e5e25f144291c43e086b7417b013aa 100644 +index 5f2042d565974a5509aec8f744e091fe7c576c98..6c42f7e7fbd776a59fbd5aa3723752a130d3090f 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java @@ -139,6 +139,11 @@ public class BeehiveBlockEntity extends BlockEntity { @@ -16,7 +16,7 @@ index 5f2042d565974a5509aec8f744e091fe7c576c98..8c4fba5369e5e25f144291c43e086b74 + public void clearBees() { + this.stored.clear(); + } -+ // Paper end ++ // Paper end - Add EntityBlockStorage clearEntities public static int getHoneyLevel(BlockState state) { return (Integer) state.getValue(BeehiveBlock.HONEY_LEVEL); } diff --git a/patches/server/0578-Entity-load-save-limit-per-chunk.patch b/patches/server/0577-Entity-load-save-limit-per-chunk.patch similarity index 84% rename from patches/server/0578-Entity-load-save-limit-per-chunk.patch rename to patches/server/0577-Entity-load-save-limit-per-chunk.patch index 89c43c4b063b..d8ae6c858614 100644 --- a/patches/server/0578-Entity-load-save-limit-per-chunk.patch +++ b/patches/server/0577-Entity-load-save-limit-per-chunk.patch @@ -9,18 +9,18 @@ defaults are only included for certain entites, this allows setting limits for any entity type. diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 9d16fc698b0771bcb3c95f5fb017879c37ebb39b..823f3b3093cffb49ccdcbcfbe6d348009a553ad7 100644 +index 9d16fc698b0771bcb3c95f5fb017879c37ebb39b..2fa2e5cada590c0f44a4735bcf20de51892f428b 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -631,9 +631,20 @@ public class EntityType implements FeatureElement, EntityTypeT final Spliterator spliterator = entityNbtList.spliterator(); return StreamSupport.stream(new Spliterator() { -+ final java.util.Map, Integer> loadedEntityCounts = new java.util.HashMap<>(); // Paper ++ final java.util.Map, Integer> loadedEntityCounts = new java.util.HashMap<>(); // Paper - Entity load/save limit per chunk public boolean tryAdvance(Consumer consumer) { return spliterator.tryAdvance((nbtbase) -> { EntityType.loadEntityRecursive((CompoundTag) nbtbase, world, (entity) -> { -+ // Paper start ++ // Paper start - Entity load/save limit per chunk + final EntityType entityType = entity.getType(); + final int saveLimit = world.paperConfig().chunks.entityPerChunkSaveLimit.getOrDefault(entityType, -1); + if (saveLimit > -1) { @@ -29,21 +29,21 @@ index 9d16fc698b0771bcb3c95f5fb017879c37ebb39b..823f3b3093cffb49ccdcbcfbe6d34800 + } + this.loadedEntityCounts.merge(entityType, 1, Integer::sum); + } -+ // Paper end ++ // Paper end - Entity load/save limit per chunk consumer.accept(entity); return entity; }); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -index 0ec0be22f7292d57c40da6f1f4575bdebf8dbd09..060e064625969610539dbf969ce773b877a7c579 100644 +index 0ec0be22f7292d57c40da6f1f4575bdebf8dbd09..23dc37ff1f92951817864963bf93220d5aae91bb 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java @@ -110,7 +110,18 @@ public class EntityStorage implements EntityPersistentStorage { } ListTag listTag = new ListTag(); -+ final java.util.Map, Integer> savedEntityCounts = new java.util.HashMap<>(); // Paper ++ final java.util.Map, Integer> savedEntityCounts = new java.util.HashMap<>(); // Paper - Entity load/save limit per chunk entities.forEach((entity) -> { // diff here: use entities parameter -+ // Paper start ++ // Paper start - Entity load/save limit per chunk + final EntityType entityType = entity.getType(); + final int saveLimit = level.paperConfig().chunks.entityPerChunkSaveLimit.getOrDefault(entityType, -1); + if (saveLimit > -1) { @@ -52,7 +52,7 @@ index 0ec0be22f7292d57c40da6f1f4575bdebf8dbd09..060e064625969610539dbf969ce773b8 + } + savedEntityCounts.merge(entityType, 1, Integer::sum); + } -+ // Paper end ++ // Paper end - Entity load/save limit per chunk CompoundTag compoundTag = new CompoundTag(); if (entity.save(compoundTag)) { listTag.add(compoundTag); diff --git a/patches/server/0579-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0578-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0579-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0578-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0580-Inventory-close.patch b/patches/server/0579-Inventory-close.patch similarity index 100% rename from patches/server/0580-Inventory-close.patch rename to patches/server/0579-Inventory-close.patch diff --git a/patches/server/0581-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 91% rename from patches/server/0581-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch index 33c6b6d97f19..b0ef068d7f36 100644 --- a/patches/server/0581-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch +++ b/patches/server/0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch @@ -6,23 +6,23 @@ Subject: [PATCH] Add a "should burn in sunlight" API for Phantoms and diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -index 6be9e8d693bbb084791d7b30a1891ddb803d6b02..8e9469fec42f7b6a132cf173f6f5a95777a29b3b 100644 +index 6be9e8d693bbb084791d7b30a1891ddb803d6b02..9af5a4b46dcec727c7c862332759ffbe3ebd87b5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java @@ -98,9 +98,15 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo return MobType.UNDEAD; } -+ // Paper start ++ // Paper start - shouldBurnInDay API + private boolean shouldBurnInDay = true; + public boolean shouldBurnInDay() { return shouldBurnInDay; } + public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } -+ // Paper end ++ // Paper end - shouldBurnInDay API + @Override public void aiStep() { - boolean flag = this.isSunBurnTick(); -+ boolean flag = shouldBurnInDay && this.isSunBurnTick(); // Paper - Configurable Burning ++ boolean flag = shouldBurnInDay && this.isSunBurnTick(); // Paper - shouldBurnInDay API if (flag) { ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD); @@ -30,25 +30,25 @@ index 6be9e8d693bbb084791d7b30a1891ddb803d6b02..8e9469fec42f7b6a132cf173f6f5a957 public void readAdditionalSaveData(CompoundTag nbt) { super.readAdditionalSaveData(nbt); this.reassessWeaponGoal(); -+ // Paper start ++ // Paper start - shouldBurnInDay API + if (nbt.contains("Paper.ShouldBurnInDay")) { + this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay"); + } -+ // Paper end ++ // Paper end - shouldBurnInDay API + } + -+ // Paper start ++ // Paper start - shouldBurnInDay API + @Override + public void addAdditionalSaveData(CompoundTag nbt) { + super.addAdditionalSaveData(nbt); + nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); } -+ // Paper end ++ // Paper end - shouldBurnInDay API @Override public void setItemSlot(EquipmentSlot slot, ItemStack stack) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index a40852acf5d175cc3a06bc17fb021c76f0c11a28..5b4719dd7c3b8f93c898779f45239568f6a5fe43 100644 +index a40852acf5d175cc3a06bc17fb021c76f0c11a28..bb52085d706293fa86df16a1b8e76d17a90ea9e9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -145,7 +145,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -56,7 +56,7 @@ index a40852acf5d175cc3a06bc17fb021c76f0c11a28..5b4719dd7c3b8f93c898779f45239568 @Override public void aiStep() { - if (this.isAlive() && this.isSunBurnTick()) { -+ if (this.isAlive() && shouldBurnInDay && this.isSunBurnTick()) { // Paper - Configurable Burning ++ if (this.isAlive() && shouldBurnInDay && this.isSunBurnTick()) { // Paper - shouldBurnInDay API this.setSecondsOnFire(8); } diff --git a/patches/server/0582-Add-basic-Datapack-API.patch b/patches/server/0581-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0582-Add-basic-Datapack-API.patch rename to patches/server/0581-Add-basic-Datapack-API.patch diff --git a/patches/server/0583-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0582-Add-environment-variable-to-disable-server-gui.patch similarity index 85% rename from patches/server/0583-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0582-Add-environment-variable-to-disable-server-gui.patch index f143fe17876c..0a4e81645588 100644 --- a/patches/server/0583-Add-environment-variable-to-disable-server-gui.patch +++ b/patches/server/0582-Add-environment-variable-to-disable-server-gui.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add environment variable to disable server gui diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 1c64c81980739bbf09b71e1d1dd6d86dbf924e0d..415d55285bb02442d8d1ec907d37b07fad4f3fcc 100644 +index 1c64c81980739bbf09b71e1d1dd6d86dbf924e0d..bea88fee71f0233839ea240cb8fcfb70228e986e 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -326,6 +326,7 @@ public class Main { */ boolean flag1 = !optionset.has("nogui") && !optionset.nonOptionArguments().contains("nogui"); -+ if(!Boolean.parseBoolean(System.getenv().getOrDefault("PAPER_DISABLE_SERVER_GUI", String.valueOf(false)))) // Paper ++ if(!Boolean.parseBoolean(System.getenv().getOrDefault("PAPER_DISABLE_SERVER_GUI", String.valueOf(false)))) // Paper - Add environment variable to disable server gui if (flag1 && !GraphicsEnvironment.isHeadless()) { dedicatedserver1.showGui(); } diff --git a/patches/server/0584-additions-to-PlayerGameModeChangeEvent.patch b/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch similarity index 84% rename from patches/server/0584-additions-to-PlayerGameModeChangeEvent.patch rename to patches/server/0583-Expand-PlayerGameModeChangeEvent.patch index 1323b067ea00..61a2d175ef1a 100644 --- a/patches/server/0584-additions-to-PlayerGameModeChangeEvent.patch +++ b/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 15 May 2021 10:04:43 -0700 -Subject: [PATCH] additions to PlayerGameModeChangeEvent +Subject: [PATCH] Expand PlayerGameModeChangeEvent diff --git a/src/main/java/net/minecraft/server/commands/DefaultGameModeCommands.java b/src/main/java/net/minecraft/server/commands/DefaultGameModeCommands.java -index 50e581613156cca765dfd8e3596dcb3b58520cec..12d4c141a1bc72e53e18f73d7ee4d5a2467e08e1 100644 +index 50e581613156cca765dfd8e3596dcb3b58520cec..21d6a2a5d1722d44146384c28a3cba2df9b42771 100644 --- a/src/main/java/net/minecraft/server/commands/DefaultGameModeCommands.java +++ b/src/main/java/net/minecraft/server/commands/DefaultGameModeCommands.java @@ -25,9 +25,13 @@ public class DefaultGameModeCommands { @@ -14,18 +14,18 @@ index 50e581613156cca765dfd8e3596dcb3b58520cec..12d4c141a1bc72e53e18f73d7ee4d5a2 for(ServerPlayer serverPlayer : minecraftServer.getPlayerList().getPlayers()) { - if (serverPlayer.setGameMode(gameType)) { - ++i; -+ // Paper start - extend PlayerGameModeChangeEvent ++ // Paper start - Expand PlayerGameModeChangeEvent + org.bukkit.event.player.PlayerGameModeChangeEvent event = serverPlayer.setGameMode(gameType, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.DEFAULT_GAMEMODE, net.kyori.adventure.text.Component.empty()); + if (event != null && event.isCancelled()) { + source.sendSuccess(() -> io.papermc.paper.adventure.PaperAdventure.asVanilla(event.cancelMessage()), false); } -+ // Paper end ++ // Paper end - Expand PlayerGameModeChangeEvent + ++i; } } diff --git a/src/main/java/net/minecraft/server/commands/GameModeCommand.java b/src/main/java/net/minecraft/server/commands/GameModeCommand.java -index aee8618e27b893b72931e925724dd683d2e6d2aa..5cb15e2209d7b315904a1fc6d650ce1e75584271 100644 +index aee8618e27b893b72931e925724dd683d2e6d2aa..f7c9127346261d83413ca03a1cdaa84975ae17d6 100644 --- a/src/main/java/net/minecraft/server/commands/GameModeCommand.java +++ b/src/main/java/net/minecraft/server/commands/GameModeCommand.java @@ -48,9 +48,14 @@ public class GameModeCommand { @@ -33,19 +33,19 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..5cb15e2209d7b315904a1fc6d650ce1e for(ServerPlayer serverPlayer : targets) { - if (serverPlayer.setGameMode(gameMode)) { -+ // Paper start - extend PlayerGameModeChangeEvent ++ // Paper start - Expand PlayerGameModeChangeEvent + org.bukkit.event.player.PlayerGameModeChangeEvent event = serverPlayer.setGameMode(gameMode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.COMMAND, net.kyori.adventure.text.Component.empty()); + if (event != null && !event.isCancelled()) { logGamemodeChange(context.getSource(), serverPlayer, gameMode); ++i; + } else if (event != null && event.cancelMessage() != null) { + context.getSource().sendSuccess(() -> io.papermc.paper.adventure.PaperAdventure.asVanilla(event.cancelMessage()), true); -+ // Paper end ++ // Paper end - Expand PlayerGameModeChangeEvent } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 33477a639304c1491b5eea8585051e266ec93bc7..8766c1a6485b371c1d95804d7ad364fd5ba826de 100644 +index 33477a639304c1491b5eea8585051e266ec93bc7..ce9555b3ccb3c3caa85e549e05e471230ee27680 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1989,8 +1989,16 @@ public class ServerPlayer extends Player { @@ -54,7 +54,7 @@ index 33477a639304c1491b5eea8585051e266ec93bc7..8766c1a6485b371c1d95804d7ad364fd public boolean setGameMode(GameType gameMode) { - if (!this.gameMode.changeGameModeForPlayer(gameMode)) { - return false; -+ // Paper start - Add cause and nullable message to event ++ // Paper start - Expand PlayerGameModeChangeEvent + org.bukkit.event.player.PlayerGameModeChangeEvent event = this.setGameMode(gameMode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.UNKNOWN, null); + return event == null ? false : event.isCancelled(); + } @@ -62,8 +62,8 @@ index 33477a639304c1491b5eea8585051e266ec93bc7..8766c1a6485b371c1d95804d7ad364fd + public org.bukkit.event.player.PlayerGameModeChangeEvent setGameMode(GameType gameMode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause cause, @Nullable net.kyori.adventure.text.Component message) { + org.bukkit.event.player.PlayerGameModeChangeEvent event = this.gameMode.changeGameModeForPlayer(gameMode, cause, message); + if (event == null || event.isCancelled()) { -+ // Paper end + return null; ++ // Paper end - Expand PlayerGameModeChangeEvent } else { this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, (float) gameMode.getId())); if (gameMode == GameType.SPECTATOR) { @@ -72,7 +72,7 @@ index 33477a639304c1491b5eea8585051e266ec93bc7..8766c1a6485b371c1d95804d7ad364fd this.onUpdateAbilities(); this.updateEffectVisibility(); - return true; -+ return event; // Paper ++ return event; // Paper - Expand PlayerGameModeChangeEvent } } @@ -80,7 +80,7 @@ index 33477a639304c1491b5eea8585051e266ec93bc7..8766c1a6485b371c1d95804d7ad364fd } public void loadGameTypes(@Nullable CompoundTag nbt) { -+ // Paper start ++ // Paper start - Expand PlayerGameModeChangeEvent + if (this.server.getForcedGameType() != null && this.server.getForcedGameType() != ServerPlayer.readPlayerMode(nbt, "playerGameType")) { + if (new org.bukkit.event.player.PlayerGameModeChangeEvent(this.getBukkitEntity(), org.bukkit.GameMode.getByValue(this.server.getDefaultGameType().getId()), org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.DEFAULT_GAMEMODE, null).callEvent()) { + this.gameMode.setGameModeForPlayer(this.server.getForcedGameType(), GameType.DEFAULT_MODE); @@ -89,28 +89,28 @@ index 33477a639304c1491b5eea8585051e266ec93bc7..8766c1a6485b371c1d95804d7ad364fd + } + return; + } -+ // Paper end ++ // Paper end - Expand PlayerGameModeChangeEvent this.gameMode.setGameModeForPlayer(this.calculateGameModeForNewPlayer(ServerPlayer.readPlayerMode(nbt, "playerGameType")), ServerPlayer.readPlayerMode(nbt, "previousPlayerGameType")); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index c61754976fab6654f55b1403d769eb1721871dca..236dabc1d4ae9dc9a2a2c07a4a27fc0bfae72f66 100644 +index c61754976fab6654f55b1403d769eb1721871dca..2e80e2d80bc2ec981e47a42b9c30257898afa4ad 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -73,21 +73,28 @@ public class ServerPlayerGameMode { } public boolean changeGameModeForPlayer(GameType gameMode) { -+ // Paper end ++ // Paper end - Expand PlayerGameModeChangeEvent + PlayerGameModeChangeEvent event = this.changeGameModeForPlayer(gameMode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.UNKNOWN, null); + return event != null && event.isCancelled(); + } + @Nullable + public PlayerGameModeChangeEvent changeGameModeForPlayer(GameType gameMode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause cause, @Nullable net.kyori.adventure.text.Component cancelMessage) { -+ // Paper end ++ // Paper end - Expand PlayerGameModeChangeEvent if (gameMode == this.gameModeForPlayer) { - return false; -+ return null; // Paper ++ return null; // Paper - Expand PlayerGameModeChangeEvent } else { // CraftBukkit start - PlayerGameModeChangeEvent event = new PlayerGameModeChangeEvent(this.player.getBukkitEntity(), GameMode.getByValue(gameMode.getId())); @@ -118,7 +118,7 @@ index c61754976fab6654f55b1403d769eb1721871dca..236dabc1d4ae9dc9a2a2c07a4a27fc0b this.level.getCraftServer().getPluginManager().callEvent(event); if (event.isCancelled()) { - return false; -+ return event; // Paper ++ return event; // Paper - Expand PlayerGameModeChangeEvent } // CraftBukkit end this.setGameModeForPlayer(gameMode, this.previousGameModeForPlayer); @@ -126,12 +126,12 @@ index c61754976fab6654f55b1403d769eb1721871dca..236dabc1d4ae9dc9a2a2c07a4a27fc0b this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); - return true; -+ return event; // Paper ++ return event; // Paper - Expand PlayerGameModeChangeEvent } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 206c0a1e783699ed272e3640a29fe349eb0b465e..4ea889c12a6750914b82d796ed641cdd810ea957 100644 +index 8a6d9ae5b0735884a39fa2ded6f1d94909043eb7..f6f57a349fc7385a88299526f563df6e022f1feb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2653,7 +2653,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -139,12 +139,12 @@ index 206c0a1e783699ed272e3640a29fe349eb0b465e..4ea889c12a6750914b82d796ed641cdd this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH); if (this.server.isHardcore()) { - this.player.setGameMode(GameType.SPECTATOR); -+ this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper ++ this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper - Expand PlayerGameModeChangeEvent ((GameRules.BooleanValue) this.player.level().getGameRules().getRule(GameRules.RULE_SPECTATORSGENERATECHUNKS)).set(false, this.server); } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8a924ae677a93a177651aa1ec0728e3b8d5528a6..6cbb672bc76647e923ec1c16b6e56ee6a4982875 100644 +index 8a924ae677a93a177651aa1ec0728e3b8d5528a6..b7abab7eaa4f7401396a27fee79bf6367c3d4cc8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1559,7 +1559,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -152,7 +152,7 @@ index 8a924ae677a93a177651aa1ec0728e3b8d5528a6..6cbb672bc76647e923ec1c16b6e56ee6 if (this.getHandle().connection == null) return; - this.getHandle().setGameMode(GameType.byId(mode.getValue())); -+ this.getHandle().setGameMode(GameType.byId(mode.getValue()), org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.PLUGIN, null); // Paper ++ this.getHandle().setGameMode(GameType.byId(mode.getValue()), org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.PLUGIN, null); // Paper - Expand PlayerGameModeChangeEvent } @Override diff --git a/patches/server/0585-ItemStack-repair-check-API.patch b/patches/server/0584-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0585-ItemStack-repair-check-API.patch rename to patches/server/0584-ItemStack-repair-check-API.patch diff --git a/patches/server/0586-More-Enchantment-API.patch b/patches/server/0585-More-Enchantment-API.patch similarity index 100% rename from patches/server/0586-More-Enchantment-API.patch rename to patches/server/0585-More-Enchantment-API.patch diff --git a/patches/server/0587-Move-range-check-for-block-placing-up.patch b/patches/server/0586-Move-range-check-for-block-placing-up.patch similarity index 92% rename from patches/server/0587-Move-range-check-for-block-placing-up.patch rename to patches/server/0586-Move-range-check-for-block-placing-up.patch index efb4d256abca..cdcaf9df802a 100644 --- a/patches/server/0587-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0586-Move-range-check-for-block-placing-up.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Move range check for block placing up diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4ea889c12a6750914b82d796ed641cdd810ea957..8d6254c7f63bae10d3e09771d484ee9e44c2c3de 100644 +index f6f57a349fc7385a88299526f563df6e022f1feb..886b47805a1abdabcd05e8463620c1e211b9ece1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1743,6 +1743,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0588-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0587-Fix-and-optimise-world-force-upgrading.patch similarity index 99% rename from patches/server/0588-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0587-Fix-and-optimise-world-force-upgrading.patch index 5392bdad1546..12dd09168cce 100644 --- a/patches/server/0588-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0587-Fix-and-optimise-world-force-upgrading.patch @@ -247,7 +247,7 @@ index 0000000000000000000000000000000000000000..513833c2ea23df5b079d157bc5cb89d5 + } +} diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 415d55285bb02442d8d1ec907d37b07fad4f3fcc..9b0bbaf23b90a04b6e6f6c97d9174fe31af557ce 100644 +index bea88fee71f0233839ea240cb8fcfb70228e986e..7b996a1c24e66d87c95b9f075248eb1d72ad0476 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -385,6 +385,15 @@ public class Main { diff --git a/patches/server/0589-Add-Mob-lookAt-API.patch b/patches/server/0588-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0589-Add-Mob-lookAt-API.patch rename to patches/server/0588-Add-Mob-lookAt-API.patch diff --git a/patches/server/0590-Add-Unix-domain-socket-support.patch b/patches/server/0589-Add-Unix-domain-socket-support.patch similarity index 94% rename from patches/server/0590-Add-Unix-domain-socket-support.patch rename to patches/server/0589-Add-Unix-domain-socket-support.patch index a65bf6654a31..b80ece90b659 100644 --- a/patches/server/0590-Add-Unix-domain-socket-support.patch +++ b/patches/server/0589-Add-Unix-domain-socket-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Unix domain socket support diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 019dd5a66b883e6ac8d0f07abc2636768a373664..bc157cd71bb6dbc109990533f622f78bcc103918 100644 +index e30efd5b0715ac777b9284ba441358bc4b7a5d03..3389fca10dac966b8ec61e5bb3ef3f78c3d1dc7f 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -219,6 +219,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -47,7 +47,7 @@ index 019dd5a66b883e6ac8d0f07abc2636768a373664..bc157cd71bb6dbc109990533f622f78b DedicatedServer.LOGGER.warn("**** FAILED TO BIND TO PORT!"); DedicatedServer.LOGGER.warn("The exception was: {}", ioexception.toString()); diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 6641fd04821240b1bbeff1bd8d996a8f2fff8385..4bbb370c5d26749c566216bac079a0cb6d0b4507 100644 +index 4414b12218a5693fecaa8c1e7c7676a58bcad324..c0ae3ccf4ddf14a4967c86548ec7305cfcc0b48a 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -78,7 +78,12 @@ public class ServerConnectionListener { @@ -79,7 +79,7 @@ index 6641fd04821240b1bbeff1bd8d996a8f2fff8385..4bbb370c5d26749c566216bac079a0cb } else { @@ -118,7 +129,7 @@ public class ServerConnectionListener { ((Connection) object).setListenerForServerboundHandshake(new ServerHandshakePacketListenerImpl(ServerConnectionListener.this.server, (Connection) object)); - io.papermc.paper.network.ChannelInitializeListenerHolder.callListeners(channel); // Paper + io.papermc.paper.network.ChannelInitializeListenerHolder.callListeners(channel); // Paper - Add Channel initialization listeners } - }).group(eventloopgroup).localAddress(address, port)).option(ChannelOption.AUTO_READ, false).bind().syncUninterruptibly()); // CraftBukkit + }).group(eventloopgroup).localAddress(address)).option(ChannelOption.AUTO_READ, false).bind().syncUninterruptibly()); // CraftBukkit // Paper - Unix domain socket support @@ -87,7 +87,7 @@ index 6641fd04821240b1bbeff1bd8d996a8f2fff8385..4bbb370c5d26749c566216bac079a0cb } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8d6254c7f63bae10d3e09771d484ee9e44c2c3de..73b825b16f02e254a1e2313ff1c93c642c5dceeb 100644 +index 886b47805a1abdabcd05e8463620c1e211b9ece1..364c010be9cc32efa05f58e9a4cdd9acd8a23200 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2476,6 +2476,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -103,7 +103,7 @@ index 8d6254c7f63bae10d3e09771d484ee9e44c2c3de..73b825b16f02e254a1e2313ff1c93c64 } // Spigot End diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 3068e25f2df958689627fb31783a2d356547f1be..f1a002ddfa55ba3bf4313639d0e82f0c8b036c65 100644 +index 7fa8efd6b0cd7a7684d9bd4ff89d4955a69a8dd5..6a3be2fe851e14f2c9f8b38ad8d27fe36b5240d3 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -45,6 +45,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL @@ -125,7 +125,7 @@ index 3068e25f2df958689627fb31783a2d356547f1be..f1a002ddfa55ba3bf4313639d0e82f0c @@ -131,8 +133,11 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL // Paper end // if (org.spigotmc.SpigotConfig.bungee) { // Paper - comment out, we check above! - if ( ( split.length == 3 || split.length == 4 ) && ( ServerHandshakePacketListenerImpl.BYPASS_HOSTCHECK || ServerHandshakePacketListenerImpl.HOST_PATTERN.matcher( split[1] ).matches() ) ) { // Paper + if ( ( split.length == 3 || split.length == 4 ) && ( ServerHandshakePacketListenerImpl.BYPASS_HOSTCHECK || ServerHandshakePacketListenerImpl.HOST_PATTERN.matcher( split[1] ).matches() ) ) { // Paper - Add bypass host check + // Paper start - Unix domain socket support + java.net.SocketAddress socketAddress = this.connection.getRemoteAddress(); this.connection.hostname = split[0]; diff --git a/patches/server/0591-Add-EntityInsideBlockEvent.patch b/patches/server/0590-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0591-Add-EntityInsideBlockEvent.patch rename to patches/server/0590-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0592-Attributes-API-for-item-defaults.patch b/patches/server/0591-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0592-Attributes-API-for-item-defaults.patch rename to patches/server/0591-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0593-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0592-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/server/0593-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0592-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/server/0594-More-Lidded-Block-API.patch b/patches/server/0593-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0594-More-Lidded-Block-API.patch rename to patches/server/0593-More-Lidded-Block-API.patch diff --git a/patches/server/0595-Limit-item-frame-cursors-on-maps.patch b/patches/server/0594-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0595-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0594-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0596-Add-PlayerKickEvent-causes.patch b/patches/server/0595-Add-PlayerKickEvent-causes.patch similarity index 99% rename from patches/server/0596-Add-PlayerKickEvent-causes.patch rename to patches/server/0595-Add-PlayerKickEvent-causes.patch index 5943afcd8be0..e9e78a487dec 100644 --- a/patches/server/0596-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0595-Add-PlayerKickEvent-causes.patch @@ -209,7 +209,7 @@ index 0616a8e89931680602da2dbc640906708aebd5ca..70458ff8c9bf6f3263868b0f5570840f if (this.cserver.getServer().isRunning()) { this.cserver.getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 73b825b16f02e254a1e2313ff1c93c642c5dceeb..005116339cce73b555415f8deb0e1333f0a2a4bd 100644 +index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea492ee1dd 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -342,7 +342,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -437,7 +437,7 @@ index 73b825b16f02e254a1e2313ff1c93c642c5dceeb..005116339cce73b555415f8deb0e1333 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c3e058cb24fc6cf3e7508ad689af9214d9a20f7d..ff387a1b9ef7165dc755daf672df5d83315b6b7c 100644 +index a622d91ecdea6ab4deaf0ef4ae90cba71c49b319..f3f8c7b7391370455fe913206a1bc9b80bdaadf8 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -684,7 +684,7 @@ public abstract class PlayerList { @@ -491,7 +491,7 @@ index 6724d0a1af13e97bc1d3bd94fd43fef742a0deab..20ba0a0c9eae28658888a77dd2170f62 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6cbb672bc76647e923ec1c16b6e56ee6a4982875..11507cbf0f213079b39b35d06f8fc675d437469b 100644 +index b7abab7eaa4f7401396a27fee79bf6367c3d4cc8..f1b52cccb8bb82def47c6dee8a63d51a095c112b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -591,7 +591,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0597-Add-PufferFishStateChangeEvent.patch b/patches/server/0596-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0597-Add-PufferFishStateChangeEvent.patch rename to patches/server/0596-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0598-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0597-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0598-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0597-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0599-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0598-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/server/0599-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0598-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/server/0600-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0599-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0600-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0599-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0601-Add-BellRevealRaiderEvent.patch b/patches/server/0600-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0601-Add-BellRevealRaiderEvent.patch rename to patches/server/0600-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0602-Fix-invulnerable-end-crystals.patch b/patches/server/0601-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0602-Fix-invulnerable-end-crystals.patch rename to patches/server/0601-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0603-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0602-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0603-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0602-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0604-Fix-dangerous-end-portal-logic.patch b/patches/server/0603-Fix-dangerous-end-portal-logic.patch similarity index 95% rename from patches/server/0604-Fix-dangerous-end-portal-logic.patch rename to patches/server/0603-Fix-dangerous-end-portal-logic.patch index cfe7d2c11095..53af813f2f2c 100644 --- a/patches/server/0604-Fix-dangerous-end-portal-logic.patch +++ b/patches/server/0603-Fix-dangerous-end-portal-logic.patch @@ -11,7 +11,7 @@ Move the tick logic into the post tick, where portaling was designed to happen in the first place. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 025ec74fe0ada57e1809d7e16c27b3a08007ad78..486a4d9e5cd421e2444327e2c28e4f674c98894a 100644 +index b3f33d74bf86943dd7ce05ce44541ae3e6db2fef..72f50fe74695e32167d414c1c9ee38deb95afb79 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -492,6 +492,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -60,7 +60,7 @@ index 025ec74fe0ada57e1809d7e16c27b3a08007ad78..486a4d9e5cd421e2444327e2c28e4f67 } diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -index c8f1bdbfcb2df3d4be05d185e97857a6181b076e..c82ebcac07033d887af499f81520982fbe5ed4f1 100644 +index 9ee2fd0914ff7836517ca143d51db6150967cb0e..a0c1db8cfebaa0344012cc0af18d6231cdcdcbb8 100644 --- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java @@ -61,16 +61,10 @@ public class EndPortalBlock extends BaseEntityBlock { diff --git a/patches/server/0605-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0604-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0605-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0604-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0606-Make-item-validations-configurable.patch b/patches/server/0605-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0606-Make-item-validations-configurable.patch rename to patches/server/0605-Make-item-validations-configurable.patch diff --git a/patches/server/0607-Line-Of-Sight-Changes.patch b/patches/server/0606-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/server/0607-Line-Of-Sight-Changes.patch rename to patches/server/0606-Line-Of-Sight-Changes.patch diff --git a/patches/server/0608-add-per-world-spawn-limits.patch b/patches/server/0607-add-per-world-spawn-limits.patch similarity index 100% rename from patches/server/0608-add-per-world-spawn-limits.patch rename to patches/server/0607-add-per-world-spawn-limits.patch diff --git a/patches/server/0609-Fix-potions-splash-events.patch b/patches/server/0608-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0609-Fix-potions-splash-events.patch rename to patches/server/0608-Fix-potions-splash-events.patch diff --git a/patches/server/0610-Add-more-LimitedRegion-API.patch b/patches/server/0609-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0610-Add-more-LimitedRegion-API.patch rename to patches/server/0609-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0611-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0610-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 89% rename from patches/server/0611-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0610-Fix-PlayerDropItemEvent-using-wrong-item.patch index 1d7d9b224fae..43a209bfc878 100644 --- a/patches/server/0611-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0610-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix PlayerDropItemEvent using wrong item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8766c1a6485b371c1d95804d7ad364fd5ba826de..b5ee665fecb3e9e96cb937c92cef8579f9cbeb3d 100644 +index ce9555b3ccb3c3caa85e549e05e471230ee27680..592f8a1277cba26bf07623782bf85110e959be8c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2391,7 +2391,7 @@ public class ServerPlayer extends Player { @@ -18,7 +18,7 @@ index 8766c1a6485b371c1d95804d7ad364fd5ba826de..b5ee665fecb3e9e96cb937c92cef8579 this.awardStat(Stats.DROP); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 51fe3687f6f8c2ce5a5f0ac7749bc7cad135a69a..e77a2d3a321313e8476068d895dfb39cb152f7e6 100644 +index 482eaa28277eca1dbb25d1f3cf6c27328a8879de..00c40d6b61a293786ead2dd66daa6d213a341b23 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -725,6 +725,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0612-Missing-Entity-API.patch b/patches/server/0611-Missing-Entity-API.patch similarity index 100% rename from patches/server/0612-Missing-Entity-API.patch rename to patches/server/0611-Missing-Entity-API.patch diff --git a/patches/server/0613-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 92% rename from patches/server/0613-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch index 0e9946cfe0d0..dd15248d3f46 100644 --- a/patches/server/0613-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1a85755ad62498c263783d1d54130d023105ec8d..fe969ecdca0e93319449f2fe3c3f41b4e17b385e 100644 +index 4f7dea59cd4aed5a9acb6be5fbbbc9ea492ee1dd..b502b3bf5f4f0a820b75434e8f620b3df01e18e2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1099,7 +1099,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0614-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0613-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0614-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0613-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0615-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0614-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 100% rename from patches/server/0615-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0614-Use-getChunkIfLoadedImmediately-in-places.patch diff --git a/patches/server/0616-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0615-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0616-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0615-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0617-Add-PlayerArmSwingEvent.patch b/patches/server/0616-Add-PlayerArmSwingEvent.patch similarity index 93% rename from patches/server/0617-Add-PlayerArmSwingEvent.patch rename to patches/server/0616-Add-PlayerArmSwingEvent.patch index b75864e768d9..4de7fd714c5c 100644 --- a/patches/server/0617-Add-PlayerArmSwingEvent.patch +++ b/patches/server/0616-Add-PlayerArmSwingEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0f0edc347beb179d96ed81e389a71aecd1e0e367..a7984c2454e40137b535c4a14034975339d66407 100644 +index b502b3bf5f4f0a820b75434e8f620b3df01e18e2..17cf920cc7bbd662a08b075466b8c534f0493802 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2333,7 +2333,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0618-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch similarity index 96% rename from patches/server/0618-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch index d75e0723f7b3..c36233af11b0 100644 --- a/patches/server/0618-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b5ee665fecb3e9e96cb937c92cef8579f9cbeb3d..4d1978b43a0b95a5fbdcd87a215d63163ec459b4 100644 +index 592f8a1277cba26bf07623782bf85110e959be8c..c9842d0641b43c10b857ccc89f90b167150f359d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -273,7 +273,6 @@ public class ServerPlayer extends Player { @@ -50,7 +50,7 @@ index 70458ff8c9bf6f3263868b0f5570840fe3d89ed2..134a84841a1e05b212794c00477f20eb MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a7984c2454e40137b535c4a14034975339d66407..acde997a61660c1afd4d2a265de553c45bf8a11f 100644 +index 17cf920cc7bbd662a08b075466b8c534f0493802..d3d1195522e50b00663b274f68fae1cc5ed9d021 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1887,6 +1887,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -96,7 +96,7 @@ index a7984c2454e40137b535c4a14034975339d66407..acde997a61660c1afd4d2a265de553c4 this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); // 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 ff387a1b9ef7165dc755daf672df5d83315b6b7c..75b81f0852241a8edc931e514f06d46583b6ac43 100644 +index f3f8c7b7391370455fe913206a1bc9b80bdaadf8..2a1b64e5d30cde7b2b2696a6cf5f3163071ab2d6 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -570,6 +570,11 @@ public abstract class PlayerList { diff --git a/patches/server/0619-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0618-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/0619-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0618-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0620-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0619-Don-t-apply-cramming-damage-to-players.patch similarity index 94% rename from patches/server/0620-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0619-Don-t-apply-cramming-damage-to-players.patch index c14d98b487f7..6d554a71a100 100644 --- a/patches/server/0620-Don-t-apply-cramming-damage-to-players.patch +++ b/patches/server/0619-Don-t-apply-cramming-damage-to-players.patch @@ -11,7 +11,7 @@ It does not make a lot of sense to damage players if they get crammed, For those who really want it a config option is provided. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ae9acf496b866309d336ebd480a0b99aa03694df..b49b56848bdbbd07c49e44d85997fa36192332c5 100644 +index c9842d0641b43c10b857ccc89f90b167150f359d..68c9e9e6185abdff5b7239002f4005417079c083 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -95,6 +95,7 @@ import net.minecraft.util.Mth; diff --git a/patches/server/0621-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0620-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0621-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0620-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0622-Add-missing-forceDrop-toggles.patch b/patches/server/0621-Add-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0622-Add-missing-forceDrop-toggles.patch rename to patches/server/0621-Add-missing-forceDrop-toggles.patch diff --git a/patches/server/0623-Stinger-API.patch b/patches/server/0622-Stinger-API.patch similarity index 100% rename from patches/server/0623-Stinger-API.patch rename to patches/server/0622-Stinger-API.patch diff --git a/patches/server/0624-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0623-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0624-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0623-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0625-Add-System.out-err-catcher.patch b/patches/server/0624-Add-System.out-err-catcher.patch similarity index 98% rename from patches/server/0625-Add-System.out-err-catcher.patch rename to patches/server/0624-Add-System.out-err-catcher.patch index 0bcf18a56788..046d8fa2ab4c 100644 --- a/patches/server/0625-Add-System.out-err-catcher.patch +++ b/patches/server/0624-Add-System.out-err-catcher.patch @@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 9c82a367ceacb1d2ae1a0503f5920d5919289502..7df30c0d3f647b74dd812fc9d286feb95b52dfae 100644 +index b28212bbf7678d73282d160bfeb0d246e93a8492..f4b1d6ed1e1065e6be175b7b68e29517ebfa2da8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -303,6 +303,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0626-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0625-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0626-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0625-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0627-Improve-boat-collision-performance.patch b/patches/server/0626-Improve-boat-collision-performance.patch similarity index 100% rename from patches/server/0627-Improve-boat-collision-performance.patch rename to patches/server/0626-Improve-boat-collision-performance.patch diff --git a/patches/server/0628-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0627-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 93% rename from patches/server/0628-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0627-Prevent-AFK-kick-while-watching-end-credits.patch index c65dc42ee205..3247d8d77be6 100644 --- a/patches/server/0628-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0627-Prevent-AFK-kick-while-watching-end-credits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent AFK kick while watching end credits diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index acde997a61660c1afd4d2a265de553c45bf8a11f..9573db9b35b1eae861af18d5eb4ce54a6648786f 100644 +index d3d1195522e50b00663b274f68fae1cc5ed9d021..a1cb119e52005e09138930f5a07f919015402424 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -390,7 +390,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0629-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0628-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0629-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0628-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0630-Add-PlayerSetSpawnEvent.patch b/patches/server/0629-Add-PlayerSetSpawnEvent.patch similarity index 97% rename from patches/server/0630-Add-PlayerSetSpawnEvent.patch rename to patches/server/0629-Add-PlayerSetSpawnEvent.patch index 1fe455032ea4..9fbf8b329f14 100644 --- a/patches/server/0630-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0629-Add-PlayerSetSpawnEvent.patch @@ -49,7 +49,7 @@ index a2d0699e8427b2262a2396495111125eccafbb66..15db9368227dbc29d07d74e85bd126b3 } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 29e94d937f88763fef3c1f748e110cd1dae9a27b..b14f65b657c1a00923bec4a338e06e39f6642dfc 100644 +index 68c9e9e6185abdff5b7239002f4005417079c083..36e01f491565e70601464d957143c21aba17dfa1 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1356,7 +1356,7 @@ public class ServerPlayer extends Player { @@ -154,7 +154,7 @@ index 29e94d937f88763fef3c1f748e110cd1dae9a27b..b14f65b657c1a00923bec4a338e06e39 public SectionPos getLastSectionPos() { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 75b81f0852241a8edc931e514f06d46583b6ac43..a0a17fa35c5333655afa8e4e8b3a66ffa41bcc24 100644 +index 2a1b64e5d30cde7b2b2696a6cf5f3163071ab2d6..1bbcae2411205799b00dba7ee82c3ceb461289cf 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -872,7 +872,7 @@ public abstract class PlayerList { @@ -187,7 +187,7 @@ index ecaa7f0b2bf795f16187f11fa27f6d5d435ccbfe..acd5ec218b8d4c096f44ae2eec1379ee } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 11507cbf0f213079b39b35d06f8fc675d437469b..97d489d0130e5854b82be73cd538c3305737f3be 100644 +index f1b52cccb8bb82def47c6dee8a63d51a095c112b..4475a59e867b0e2f64cdac41911af0e7fe721ad2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1318,9 +1318,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0631-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0630-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0631-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0630-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0632-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0631-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0632-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0631-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0633-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0632-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0633-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0632-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0634-Add-EntityDamageItemEvent.patch b/patches/server/0633-Add-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0634-Add-EntityDamageItemEvent.patch rename to patches/server/0633-Add-EntityDamageItemEvent.patch diff --git a/patches/server/0635-Optimize-indirect-passenger-iteration.patch b/patches/server/0634-Optimize-indirect-passenger-iteration.patch similarity index 100% rename from patches/server/0635-Optimize-indirect-passenger-iteration.patch rename to patches/server/0634-Optimize-indirect-passenger-iteration.patch diff --git a/patches/server/0636-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0635-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0636-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0635-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0637-Clear-bucket-NBT-after-dispense.patch b/patches/server/0636-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0637-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0636-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0638-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0637-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0638-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0637-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0639-Add-BlockBreakBlockEvent.patch b/patches/server/0638-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0639-Add-BlockBreakBlockEvent.patch rename to patches/server/0638-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0640-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0639-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0640-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0639-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0641-More-CommandBlock-API.patch b/patches/server/0640-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0641-More-CommandBlock-API.patch rename to patches/server/0640-More-CommandBlock-API.patch diff --git a/patches/server/0642-Add-missing-team-sidebar-display-slots.patch b/patches/server/0641-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0642-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0641-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0643-Add-back-EntityPortalExitEvent.patch b/patches/server/0642-Add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/server/0643-Add-back-EntityPortalExitEvent.patch rename to patches/server/0642-Add-back-EntityPortalExitEvent.patch diff --git a/patches/server/0644-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0643-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 94% rename from patches/server/0644-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0643-Add-methods-to-find-targets-for-lightning-strikes.patch index 50dd1e74aa0a..86f9829d7bf8 100644 --- a/patches/server/0644-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0643-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index dbfd4a642e862f46a8b4fd1f3fc52c13ecf74284..1e67fd45b4449b46992cb0617db22e74ce517b4d 100644 +index 45d5e5bd1ed37c4a3a658b27dc8571344580b65b..c8e8d8c8c49b28cbaed3072a211a79aacd5f0c34 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -998,6 +998,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -31,7 +31,7 @@ index dbfd4a642e862f46a8b4fd1f3fc52c13ecf74284..1e67fd45b4449b46992cb0617db22e74 blockposition1 = blockposition1.above(2); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index a920936018a2e05ea72d68a83e6debb3807df353..59ca5a224561f59bf1f44e11db9bc323ac2f6d71 100644 +index d6b402d0bae4d16932e059f1da59ac4523d974b8..ca0af0011159834919c8e071ceac051a0e600b84 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -701,6 +701,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0645-Get-entity-default-attributes.patch b/patches/server/0644-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0645-Get-entity-default-attributes.patch rename to patches/server/0644-Get-entity-default-attributes.patch diff --git a/patches/server/0646-Left-handed-API.patch b/patches/server/0645-Left-handed-API.patch similarity index 100% rename from patches/server/0646-Left-handed-API.patch rename to patches/server/0645-Left-handed-API.patch diff --git a/patches/server/0647-Add-more-advancement-API.patch b/patches/server/0646-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0647-Add-more-advancement-API.patch rename to patches/server/0646-Add-more-advancement-API.patch diff --git a/patches/server/0648-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0647-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0648-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0647-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0649-Add-critical-damage-API.patch b/patches/server/0648-Add-critical-damage-API.patch similarity index 98% rename from patches/server/0649-Add-critical-damage-API.patch rename to patches/server/0648-Add-critical-damage-API.patch index 3c62cf890e2d..05c26d3cc070 100644 --- a/patches/server/0649-Add-critical-damage-API.patch +++ b/patches/server/0648-Add-critical-damage-API.patch @@ -28,7 +28,7 @@ index df8c88bfa749e02f633350446101dcce05db7ac1..ed1277fad60992344b94f8a939febaca + // Paper end - add critical damage API } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index e77a2d3a321313e8476068d895dfb39cb152f7e6..21a02cab65506a3746ddc709d92c6fde244446eb 100644 +index 00c40d6b61a293786ead2dd66daa6d213a341b23..e90bfeca52d74d147616773640517995d98e19bc 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1263,7 +1263,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0650-Fix-issues-with-mob-conversion.patch b/patches/server/0649-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0650-Fix-issues-with-mob-conversion.patch rename to patches/server/0649-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0651-Add-isCollidable-methods-to-various-places.patch b/patches/server/0650-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0651-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0650-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0652-Goat-ram-API.patch b/patches/server/0651-Goat-ram-API.patch similarity index 100% rename from patches/server/0652-Goat-ram-API.patch rename to patches/server/0651-Goat-ram-API.patch diff --git a/patches/server/0653-Add-API-for-resetting-a-single-score.patch b/patches/server/0652-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0653-Add-API-for-resetting-a-single-score.patch rename to patches/server/0652-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0654-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0653-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/server/0654-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0653-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/server/0655-Vanilla-command-permission-fixes.patch b/patches/server/0654-Vanilla-command-permission-fixes.patch similarity index 97% rename from patches/server/0655-Vanilla-command-permission-fixes.patch rename to patches/server/0654-Vanilla-command-permission-fixes.patch index 6b39bdbefbb7..5c126666ab03 100644 --- a/patches/server/0655-Vanilla-command-permission-fixes.patch +++ b/patches/server/0654-Vanilla-command-permission-fixes.patch @@ -33,7 +33,7 @@ index 899008b2980d13f1be6280cd8cb959c53a29bebf..d5f7da3502575f6847f3c22ab0e94284 private RedirectModifier modifier = null; private boolean forks; diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 3b3fa067ee5a95d52645147c2d9d1e43d7a789b6..9a01905bdbf0b721a129984d71c5745fa5e3c8a5 100644 +index 565685d0f41311bc2281d11ee9d751bf4d4c93a3..2bad211edde8b494cae726915a332217ae232855 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -257,6 +257,13 @@ public class Commands { diff --git a/patches/server/0656-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 92% rename from patches/server/0656-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index ee3ea5e0f740..54357f73a359 100644 --- a/patches/server/0656-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0655-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/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1e67fd45b4449b46992cb0617db22e74ce517b4d..dfbec0bd98f58f7e01d0f45f2ab2c433f9094cc3 100644 +index c8e8d8c8c49b28cbaed3072a211a79aacd5f0c34..6b4b505ae0c6f95309243aaa149967b2d728fa87 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1578,9 +1578,13 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -28,7 +28,7 @@ index 1e67fd45b4449b46992cb0617db22e74ce517b4d..dfbec0bd98f58f7e01d0f45f2ab2c433 } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9f7c149d3ad1175d55ec02e295ee43bc571c3280..87fdc78409fb16c961c04a5551980a8a231b70d0 100644 +index 36e01f491565e70601464d957143c21aba17dfa1..ca66a8ebb4ae2d3ee9cf88412bbb20d5f812d050 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1630,6 +1630,18 @@ public class ServerPlayer extends Player { @@ -51,7 +51,7 @@ index 9f7c149d3ad1175d55ec02e295ee43bc571c3280..87fdc78409fb16c961c04a5551980a8a @Override public void doCloseContainer() { diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 21a02cab65506a3746ddc709d92c6fde244446eb..6018717ea7ff9d3947e48aacd3dbedc075a8376e 100644 +index e90bfeca52d74d147616773640517995d98e19bc..c21b6e9b013c31342e1a47500f5262ddfb7cd6d0 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -508,6 +508,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0657-Fix-GameProfileCache-concurrency.patch b/patches/server/0656-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0657-Fix-GameProfileCache-concurrency.patch rename to patches/server/0656-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0658-Improve-and-expand-AsyncCatcher.patch b/patches/server/0657-Improve-and-expand-AsyncCatcher.patch similarity index 97% rename from patches/server/0658-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0657-Improve-and-expand-AsyncCatcher.patch index 37e69538d559..dd10d6429975 100644 --- a/patches/server/0658-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0657-Improve-and-expand-AsyncCatcher.patch @@ -17,7 +17,7 @@ Async catch modifications to critical entity state Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 28fdf5f4df4b61383e6d132f603c50ec35f62024..b203c945e7c013e202013f7bce6b3c7077bf2d42 100644 +index a1cb119e52005e09138930f5a07f919015402424..2168a16bd954f07de004d9b98ea1dbfecf1f23ae 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1575,6 +1575,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -29,7 +29,7 @@ index 28fdf5f4df4b61383e6d132f603c50ec35f62024..b203c945e7c013e202013f7bce6b3c70 if (player.isRemoved()) { LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName()); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b137ce3be71fa92cb196f5725dd7cfc71f93fcf7..1f3363da6642673d286cb7704aa61cb910c5d23f 100644 +index 394af8382455d2a039534b87142679f52dc8f2a6..b49ae2a36a426deb5ce393d854df762c5a256fbd 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1118,7 +1118,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -166,7 +166,7 @@ index bbbf6dd8e566ecdca8794e3b03765fe7e426a2bd..66ab901956ca394c251c420338643d39 PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason}); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 59ca5a224561f59bf1f44e11db9bc323ac2f6d71..b882e8d1b3e45277b5e9e3a359f51d9703bdb2d0 100644 +index ca0af0011159834919c8e071ceac051a0e600b84..305a525815d7a3ea3f5dd3c093a76af0252c2f7e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1803,6 +1803,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0659-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0658-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 98% rename from patches/server/0659-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0658-Add-paper-mobcaps-and-paper-playermobcaps.patch index 3e9c79b5ea96..6f1824e9d367 100644 --- a/patches/server/0659-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0658-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -278,7 +278,7 @@ index 9df761f5cf043e8d2dffa711c20ab32fe2992331..48cc5623973713e07d95639e5359fc15 // Paper start - add parameters and int ret type spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7df30c0d3f647b74dd812fc9d286feb95b52dfae..65809db4522c3b1ce0b5bf11828de129713d7d21 100644 +index f4b1d6ed1e1065e6be175b7b68e29517ebfa2da8..9491eb5b47defd7949fe2e691d63d3767be1f337 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2279,6 +2279,11 @@ public final class CraftServer implements Server { @@ -294,7 +294,7 @@ index 7df30c0d3f647b74dd812fc9d286feb95b52dfae..65809db4522c3b1ce0b5bf11828de129 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index b882e8d1b3e45277b5e9e3a359f51d9703bdb2d0..3eeb878924827861f79c6bc1b510d0167b9ac10b 100644 +index 305a525815d7a3ea3f5dd3c093a76af0252c2f7e..b49580716ff1dc85adcd466d1df9ce678a58546f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1761,9 +1761,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0660-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0659-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0660-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0659-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0661-Optimise-general-POI-access.patch b/patches/server/0660-Optimise-general-POI-access.patch similarity index 100% rename from patches/server/0661-Optimise-general-POI-access.patch rename to patches/server/0660-Optimise-general-POI-access.patch diff --git a/patches/server/0662-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/0661-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/0662-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/0661-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/0663-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0662-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0663-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0662-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0664-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0663-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0664-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0663-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0665-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 94% rename from patches/server/0665-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index 1c15bbb35aff..c5df221bd7ac 100644 --- a/patches/server/0665-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -10,7 +10,7 @@ chunks did get inlined, but the standard CPS.getChunkAt method was not inlined. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 35ca44c88497e0b07f43ba7bf092360365b1c53a..69730027a70e91ec32604b1fb32820363ea20a71 100644 +index 2069cad866a3fd2ed5512fa8fc6dc2ef8bc9758e..7718db906ed1b97f1b55a891c2ea3b59ac1307fb 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -458,6 +458,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0666-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0665-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0666-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0665-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0667-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0666-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 100% rename from patches/server/0667-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/server/0666-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch diff --git a/patches/server/0668-Time-scoreboard-search.patch b/patches/server/0667-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0668-Time-scoreboard-search.patch rename to patches/server/0667-Time-scoreboard-search.patch diff --git a/patches/server/0669-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0668-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/0669-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/0668-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/0670-Execute-chunk-tasks-mid-tick.patch b/patches/server/0669-Execute-chunk-tasks-mid-tick.patch similarity index 96% rename from patches/server/0670-Execute-chunk-tasks-mid-tick.patch rename to patches/server/0669-Execute-chunk-tasks-mid-tick.patch index a8921da3d437..a999b592335b 100644 --- a/patches/server/0670-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/0669-Execute-chunk-tasks-mid-tick.patch @@ -19,7 +19,7 @@ index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..46449728f69ee7d4f78470f8da23c055 private MinecraftTimings() {} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 26f4516f20336ddfaf868337cab3a05166f01b8d..6873036e7d24a2b8e85ab7ae270eec63bd7e7b5b 100644 +index 970dafebf8143ab6de44bfffdeff2475685f99fa..0b0e415adafb5f614259291c1c501fa1b85ddb14 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1341,8 +1341,79 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { @@ -318,10 +318,10 @@ index d4e23bfb6135d52c1359d7ccfabc6a0e595afe6e..7f611f575c231dd459ae8ef17a10f71e - this.channel.pipeline().addBefore("encoder", "compress", new CompressionEncoder(compressionThreshold)); + this.channel.pipeline().addBefore("encoder", "compress", new CompressionEncoder(compressor, compressionThreshold)); // Paper - Use Velocity cipher } - this.channel.pipeline().fireUserEventTriggered(io.papermc.paper.network.ConnectionEvent.COMPRESSION_THRESHOLD_SET); // Paper + this.channel.pipeline().fireUserEventTriggered(io.papermc.paper.network.ConnectionEvent.COMPRESSION_THRESHOLD_SET); // Paper - Add Channel initialization listeners } else { diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 5f625acf04ddb56e3596d086252f9bfccfdb95f2..f7d5af5e6a39469914bd9c496582929c9b8e0300 100644 +index c0ae3ccf4ddf14a4967c86548ec7305cfcc0b48a..7288a942397d223d97d7afd11b9c9e5dc6a96901 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -106,6 +106,11 @@ public class ServerConnectionListener { diff --git a/patches/server/0676-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch similarity index 98% rename from patches/server/0676-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/0675-Detail-more-information-in-watchdog-dumps.patch index 248cb54950b8..2b3363f4c16d 100644 --- a/patches/server/0676-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Detail more information in watchdog dumps - Dump player name, player uuid, position, and world for packet handling diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 7f611f575c231dd459ae8ef17a10f71ef361a2cb..5e0793a1bfeaca021206b0b7cce20598ba6ed1d2 100644 +index 634b20f73d51141cb36115d2a0dda4c6d10cf266..f4807a005442111909fa0a1cffa2decb85667a63 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -521,7 +521,13 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -76,7 +76,7 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8117a0334fdf59904e31a0419f7b5bf231d198c5..569fbb2f6c5f1ec286ecafe5c7f1b1fe6b547908 100644 +index bff754626913969c6946757cee968c02281f59b3..b4711272fb36b631d4426ee5b5e29fb6f11e3d1d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1244,7 +1244,26 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0677-Distance-manager-tick-timings.patch b/patches/server/0676-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0677-Distance-manager-tick-timings.patch rename to patches/server/0676-Distance-manager-tick-timings.patch diff --git a/patches/server/0678-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 94% rename from patches/server/0678-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch index 843fb89f5369..edc9520194a3 100644 --- a/patches/server/0678-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 569fbb2f6c5f1ec286ecafe5c7f1b1fe6b547908..8f249587b873c5768bb5ebf13d5f378355e17556 100644 +index b4711272fb36b631d4426ee5b5e29fb6f11e3d1d..15224b31e926ab16b1ef8f2ebdca4dba20637789 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2696,6 +2696,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0679-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0678-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0679-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0678-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0680-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 92% rename from patches/server/0680-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index 23944724e986..d1b33c32f334 100644 --- a/patches/server/0680-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/server/0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b203c945e7c013e202013f7bce6b3c7077bf2d42..648530ce3183362ed71cbd2de534471da65ab787 100644 +index 2168a16bd954f07de004d9b98ea1dbfecf1f23ae..c067bbd0f333c0604554c6314cc19d4a121b7e27 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -736,6 +736,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0681-Add-packet-limiter-config.patch b/patches/server/0680-Add-packet-limiter-config.patch similarity index 98% rename from patches/server/0681-Add-packet-limiter-config.patch rename to patches/server/0680-Add-packet-limiter-config.patch index ae09f84ca905..591d54d5d903 100644 --- a/patches/server/0681-Add-packet-limiter-config.patch +++ b/patches/server/0680-Add-packet-limiter-config.patch @@ -24,7 +24,7 @@ and an action can be defined: DROP or KICK If interval or rate are less-than 0, the limit is ignored diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 5e0793a1bfeaca021206b0b7cce20598ba6ed1d2..c0306ca996bb32b6a478c8d7158757af722a27ab 100644 +index f4807a005442111909fa0a1cffa2decb85667a63..81fb880cdcd433bd692461b3d7b315f30d2747f7 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -132,6 +132,22 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0682-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0681-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0682-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0681-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0683-Ensure-valid-vehicle-status.patch b/patches/server/0682-Ensure-valid-vehicle-status.patch similarity index 91% rename from patches/server/0683-Ensure-valid-vehicle-status.patch rename to patches/server/0682-Ensure-valid-vehicle-status.patch index ba23f6ae94dd..870a699ba313 100644 --- a/patches/server/0683-Ensure-valid-vehicle-status.patch +++ b/patches/server/0682-Ensure-valid-vehicle-status.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure valid vehicle status diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 87fdc78409fb16c961c04a5551980a8a231b70d0..f99498d6864bc48683f8156e0365f1175edce0ba 100644 +index ca66a8ebb4ae2d3ee9cf88412bbb20d5f812d050..6571692d00f88947316454e2f10cac30e3756ac0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -576,7 +576,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0684-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0683-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0684-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0683-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0685-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0684-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0685-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0684-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0686-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0685-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0686-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0685-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0687-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0686-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0687-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0686-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0688-Preserve-overstacked-loot.patch b/patches/server/0687-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0688-Preserve-overstacked-loot.patch rename to patches/server/0687-Preserve-overstacked-loot.patch diff --git a/patches/server/0689-Update-head-rotation-in-missing-places.patch b/patches/server/0688-Update-head-rotation-in-missing-places.patch similarity index 100% rename from patches/server/0689-Update-head-rotation-in-missing-places.patch rename to patches/server/0688-Update-head-rotation-in-missing-places.patch diff --git a/patches/server/0690-prevent-unintended-light-block-manipulation.patch b/patches/server/0689-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0690-prevent-unintended-light-block-manipulation.patch rename to patches/server/0689-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0691-Fix-CraftCriteria-defaults-map.patch b/patches/server/0690-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0691-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0690-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0692-Fix-upstreams-block-state-factories.patch b/patches/server/0691-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0692-Fix-upstreams-block-state-factories.patch rename to patches/server/0691-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0693-Configurable-feature-seeds.patch b/patches/server/0692-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0693-Configurable-feature-seeds.patch rename to patches/server/0692-Configurable-feature-seeds.patch diff --git a/patches/server/0694-Add-root-admin-user-detection.patch b/patches/server/0693-Add-root-admin-user-detection.patch similarity index 97% rename from patches/server/0694-Add-root-admin-user-detection.patch rename to patches/server/0693-Add-root-admin-user-detection.patch index d5a79a0018b2..04fc988ec436 100644 --- a/patches/server/0694-Add-root-admin-user-detection.patch +++ b/patches/server/0693-Add-root-admin-user-detection.patch @@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..6bd0afddbcc461149dfe9a5c7a86fff6 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index f0d6e6f85dc2a9ae8d70dd691b144fac0298bf33..63bfc209c7d77170ae7b60595d800bb19f1b5da6 100644 +index 3389fca10dac966b8ec61e5bb3ef3f78c3d1dc7f..753bec96a829a153dc54b5e1013359b86f1776b3 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -179,6 +179,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0695-Always-allow-item-changing-in-Fireball.patch b/patches/server/0694-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0695-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0694-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0696-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0695-don-t-attempt-to-teleport-dead-entities.patch similarity index 100% rename from patches/server/0696-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0695-don-t-attempt-to-teleport-dead-entities.patch diff --git a/patches/server/0697-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0696-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 94% rename from patches/server/0697-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0696-Prevent-excessive-velocity-through-repeated-crits.patch index 92a76565ed9b..17cabbe4f050 100644 --- a/patches/server/0697-Prevent-excessive-velocity-through-repeated-crits.patch +++ b/patches/server/0696-Prevent-excessive-velocity-through-repeated-crits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1f3363da6642673d286cb7704aa61cb910c5d23f..f76c6360408a4d804143770d71eaf9c2146bcfa6 100644 +index b49ae2a36a426deb5ce393d854df762c5a256fbd..f601b043edb51afbd040b7ec72e00dcc7786d3da 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2677,13 +2677,26 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0698-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0697-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 93% rename from patches/server/0698-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0697-Remove-client-side-code-using-deprecated-for-removal.patch index a495f1b8a588..727f2cdce901 100644 --- a/patches/server/0698-Remove-client-side-code-using-deprecated-for-removal.patch +++ b/patches/server/0697-Remove-client-side-code-using-deprecated-for-removal.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Remove client-side code using deprecated for removal Fixes warnings on build diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 485eba54061b1f7ad17435bce244135634c62b90..983aae5e9b381f34cbd5a3e167a46dd4b5f8a209 100644 +index 006a7876a0c8e1180dada6694992f596948be53b..169edd91e25f3c1d27f8a9e2bca58a6143c8a891 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -952,17 +952,7 @@ public class Util { diff --git a/patches/server/0699-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0698-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0699-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0698-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0700-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0699-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 98% rename from patches/server/0700-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0699-Prevent-sending-oversized-item-data-in-equipment-and.patch index 276abcde9e81..ee7e6297f133 100644 --- a/patches/server/0700-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0699-Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -34,7 +34,7 @@ index e0802f1cb73a80b08482832c2b269ac8485d5c1a..945a0317e9e49a159a1f42882a0a267a } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f76c6360408a4d804143770d71eaf9c2146bcfa6..b63c4510cb6a14d754776967ccc7020d85fc2abd 100644 +index f601b043edb51afbd040b7ec72e00dcc7786d3da..de1e496c2cb75932dee84eb2b7532ad48340c504 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3188,7 +3188,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0701-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0700-Hide-unnecessary-itemmeta-from-clients.patch similarity index 97% rename from patches/server/0701-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0700-Hide-unnecessary-itemmeta-from-clients.patch index d0b98fb05cb9..32711be5fa0e 100644 --- a/patches/server/0701-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0700-Hide-unnecessary-itemmeta-from-clients.patch @@ -18,7 +18,7 @@ index 945a0317e9e49a159a1f42882a0a267a2141e86d..e9fd9590e90e58fd4c31985a704a4511 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 648530ce3183362ed71cbd2de534471da65ab787..bfbbb0f6e73e9d59e73944b77e08802132f2a739 100644 +index c067bbd0f333c0604554c6314cc19d4a121b7e27..c44c07776006cd447946a53f2a1aca17e6067986 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2566,8 +2566,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -33,7 +33,7 @@ index 648530ce3183362ed71cbd2de534471da65ab787..bfbbb0f6e73e9d59e73944b77e088021 } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b63c4510cb6a14d754776967ccc7020d85fc2abd..95c9b69934fb1d8b49caf9e5c6184435bd18b66d 100644 +index de1e496c2cb75932dee84eb2b7532ad48340c504..d3a1fcd144f513d20fbc9a5688a45fa750f512ae 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3190,7 +3190,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0702-Fix-Spigot-growth-modifiers.patch b/patches/server/0701-Fix-Spigot-growth-modifiers.patch similarity index 97% rename from patches/server/0702-Fix-Spigot-growth-modifiers.patch rename to patches/server/0701-Fix-Spigot-growth-modifiers.patch index 9add019b720c..ddc7bdbf9b8b 100644 --- a/patches/server/0702-Fix-Spigot-growth-modifiers.patch +++ b/patches/server/0701-Fix-Spigot-growth-modifiers.patch @@ -37,7 +37,7 @@ index 95f897b9ef73c880aff1cfe35fe490683badfd44..788d8a04398482fdfd0fe89e519b2a6c @Override diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java -index 76c12b34aac276fc9375135dac1c2018fdd7d756..a0b48e5270e2523fa7c7237d5cfef5a13a45a430 100644 +index aa029bee9839497e48ff639e286a024280150362..5b96d1ae4bd8546311e986bc312b1f85883a67f4 100644 --- a/src/main/java/net/minecraft/world/level/block/CropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java @@ -91,6 +91,10 @@ public class CropBlock extends BushBlock implements BonemealableBlock { @@ -89,7 +89,7 @@ index 3c0b0732cdea6c98c58c9639be3a6971575df85b..d5257272ac8b0cf36e9f92e32a4a4ae6 } diff --git a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -index c80a3ee02f3af146926a3611779fd0af298a8ac1..73d9ad9e24727a81c5ff1645316aee003600c0cc 100644 +index 690abba9d27ab4061de4dd3676292b1859036868..591f32f7c0a7a9c843933d17dad8a34b672f49ac 100644 --- a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java @@ -119,7 +119,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl diff --git a/patches/server/0703-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0702-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0703-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0702-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0704-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0703-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0704-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0703-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0705-Optimize-HashMapPalette.patch b/patches/server/0704-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0705-Optimize-HashMapPalette.patch rename to patches/server/0704-Optimize-HashMapPalette.patch diff --git a/patches/server/0706-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0705-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 98% rename from patches/server/0706-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0705-Allow-delegation-to-vanilla-chunk-gen.patch index 51927546b90e..1566d8e66610 100644 --- a/patches/server/0706-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0705-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 65809db4522c3b1ce0b5bf11828de129713d7d21..4195bdfef0916f18cd448ba2c47e44f4c3996943 100644 +index 9491eb5b47defd7949fe2e691d63d3767be1f337..ad0323b8db375134f6bbb9a6e944c822a994aa19 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2459,6 +2459,88 @@ public final class CraftServer implements Server { diff --git a/patches/server/0707-Collision-optimisations.patch b/patches/server/0706-Collision-optimisations.patch similarity index 99% rename from patches/server/0707-Collision-optimisations.patch rename to patches/server/0706-Collision-optimisations.patch index 1a3f24ba35a3..c430a0452cb6 100644 --- a/patches/server/0707-Collision-optimisations.patch +++ b/patches/server/0706-Collision-optimisations.patch @@ -2179,7 +2179,7 @@ index d0a8092bf57a29ab7c00ec0ddf52a9fdb2a33267..392406722b0a040c1d41fdc1154d75d3 private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) { this.data3d = id; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f99498d6864bc48683f8156e0365f1175edce0ba..f62f3a904ca09b7a5edf40b739a70c00de927429 100644 +index 6571692d00f88947316454e2f10cac30e3756ac0..0492704f7f365310d7ea930c30330a468a39c0de 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -469,7 +469,7 @@ public class ServerPlayer extends Player { @@ -2201,7 +2201,7 @@ index f99498d6864bc48683f8156e0365f1175edce0ba..f62f3a904ca09b7a5edf40b739a70c00 } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f7588787769902506e317bdb052483c5dc377693..8f0d1e9e8a191a2049f3ad2d9b4ffdbd15c45d9f 100644 +index 1bbcae2411205799b00dba7ee82c3ceb461289cf..5921b4c5c38354c4782783d0debddb8bf4e356c7 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -909,7 +909,7 @@ public abstract class PlayerList { @@ -2600,7 +2600,7 @@ index a25497eec004add7408a63b1a0f09e3fa443b324..9f892de55ab03367daed4c30cc44c9dd // Paper start diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0d685f1f446061cc723d190b16eedcb2ddedfa46..b8188a5d0ac9be4d4ca52bd4faaf5a677029f1dc 100644 +index fb86d06e8e420410e3cf9d918abd3369fa2f033e..0c2654986b9a5c7f210ba387851997ecec1ebb00 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -300,6 +300,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0708-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0707-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 99% rename from patches/server/0708-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/0707-Optimise-collision-checking-in-player-move-packet-ha.patch index ccdf60c47dd5..41a6ec808fad 100644 --- a/patches/server/0708-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/0707-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -8,7 +8,7 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN CHECK ME diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bfbbb0f6e73e9d59e73944b77e08802132f2a739..027bc0d89b7ade602565ed3717e87c56de7265e1 100644 +index c44c07776006cd447946a53f2a1aca17e6067986..af43b1cf239a319f765058ff082485764528e01e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -543,7 +543,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0709-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0708-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0709-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0708-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0710-Add-more-Campfire-API.patch b/patches/server/0709-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0710-Add-more-Campfire-API.patch rename to patches/server/0709-Add-more-Campfire-API.patch diff --git a/patches/server/0711-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0710-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0711-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0710-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0712-Fix-tripwire-state-inconsistency.patch b/patches/server/0711-Fix-tripwire-state-inconsistency.patch similarity index 98% rename from patches/server/0712-Fix-tripwire-state-inconsistency.patch rename to patches/server/0711-Fix-tripwire-state-inconsistency.patch index 93bece80f76b..1933c0261718 100644 --- a/patches/server/0712-Fix-tripwire-state-inconsistency.patch +++ b/patches/server/0711-Fix-tripwire-state-inconsistency.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix tripwire state inconsistency This patch prevents updating and re-setting the tripwire when being removed in certain conditions diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java -index bbb7d1b03c78758d608e89129aacec151242831c..634a8d25fede36f848cf621bdada71eb4b32c67e 100644 +index 003fd247b12323cca5fd82a6cdf31bd897afd682..a93a085b2e9564a2ff950fff505d856be7904863 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java @@ -87,7 +87,7 @@ public class TripWireBlock extends Block { diff --git a/patches/server/0713-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0712-Forward-CraftEntity-in-teleport-command.patch similarity index 100% rename from patches/server/0713-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0712-Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/server/0714-Improve-scoreboard-entries.patch b/patches/server/0713-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0714-Improve-scoreboard-entries.patch rename to patches/server/0713-Improve-scoreboard-entries.patch diff --git a/patches/server/0715-Entity-powdered-snow-API.patch b/patches/server/0714-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0715-Entity-powdered-snow-API.patch rename to patches/server/0714-Entity-powdered-snow-API.patch diff --git a/patches/server/0716-Add-API-for-item-entity-health.patch b/patches/server/0715-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0716-Add-API-for-item-entity-health.patch rename to patches/server/0715-Add-API-for-item-entity-health.patch diff --git a/patches/server/0717-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0716-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 99% rename from patches/server/0717-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/0716-Fix-entity-type-tags-suggestions-in-selectors.patch index 736faffc8d8d..13e42ccab950 100644 --- a/patches/server/0717-Fix-entity-type-tags-suggestions-in-selectors.patch +++ b/patches/server/0716-Fix-entity-type-tags-suggestions-in-selectors.patch @@ -35,7 +35,7 @@ index 79732086bc4cdbca8364d78eb60d68c758055966..e65d7980b7ebed60786bc31e2f8156fd + // Paper end - tell clients to ask server for suggestions for EntityArguments } diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 9a01905bdbf0b721a129984d71c5745fa5e3c8a5..4ef2f90809b946dcdb52a4ab58cd1c15b682f790 100644 +index 2bad211edde8b494cae726915a332217ae232855..cb1898f6daa79a0ac379a5caa7283a9155a70a15 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -532,6 +532,7 @@ public class Commands { diff --git a/patches/server/0718-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0717-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0718-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0717-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0719-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0718-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0719-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0718-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0720-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0719-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0720-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0719-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0721-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0720-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0721-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0720-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0722-Fix-bees-aging-inside-hives.patch b/patches/server/0721-Fix-bees-aging-inside-hives.patch similarity index 97% rename from patches/server/0722-Fix-bees-aging-inside-hives.patch rename to patches/server/0721-Fix-bees-aging-inside-hives.patch index 275679e1773b..10b750e8533f 100644 --- a/patches/server/0722-Fix-bees-aging-inside-hives.patch +++ b/patches/server/0721-Fix-bees-aging-inside-hives.patch @@ -7,7 +7,7 @@ Fixes bees incorrectly being aged up due to upstream's resetting the ticks inside hive on a failed release diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index 8c4fba5369e5e25f144291c43e086b7417b013aa..3ba04d615fae9748c144b3dc7e7442be2e5a659f 100644 +index 6c42f7e7fbd776a59fbd5aa3723752a130d3090f..560a6e7b7888a87011aa48d7c9a17949bf086f8d 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java @@ -328,7 +328,7 @@ public class BeehiveBlockEntity extends BlockEntity { diff --git a/patches/server/0723-Bucketable-API.patch b/patches/server/0722-Bucketable-API.patch similarity index 100% rename from patches/server/0723-Bucketable-API.patch rename to patches/server/0722-Bucketable-API.patch diff --git a/patches/server/0724-Validate-usernames.patch b/patches/server/0723-Validate-usernames.patch similarity index 95% rename from patches/server/0724-Validate-usernames.patch rename to patches/server/0723-Validate-usernames.patch index a4e3af49724d..2f1055b3555d 100644 --- a/patches/server/0724-Validate-usernames.patch +++ b/patches/server/0723-Validate-usernames.patch @@ -26,7 +26,7 @@ index 67c1cf5eb198079bd146a4a8ca0492b94cca788c..c03329267a2a97af32a0c2c9d7e94fa0 GameProfile gameprofile = this.server.getSingleplayerProfile(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8f0d1e9e8a191a2049f3ad2d9b4ffdbd15c45d9f..1038bdb761c4b413cb92e08aa7ef634b2e8237d4 100644 +index 5921b4c5c38354c4782783d0debddb8bf4e356c7..8364d86a75174d1b37cfbf6cf9dbc5ed952c432e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -679,7 +679,7 @@ public abstract class PlayerList { @@ -39,7 +39,7 @@ index 8f0d1e9e8a191a2049f3ad2d9b4ffdbd15c45d9f..1038bdb761c4b413cb92e08aa7ef634b } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 6018717ea7ff9d3947e48aacd3dbedc075a8376e..548343be02a627d2c2475a4452363876a126b3a8 100644 +index c21b6e9b013c31342e1a47500f5262ddfb7cd6d0..f6ca517fbe3742381a932958e9893e32b81e390b 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -2340,9 +2340,23 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0725-Make-water-animal-spawn-height-configurable.patch b/patches/server/0724-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0725-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0724-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0726-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0725-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 96% rename from patches/server/0726-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0725-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index ccd43f3ca119..93eaf6fd9004 100644 --- a/patches/server/0726-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0725-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6873036e7d24a2b8e85ab7ae270eec63bd7e7b5b..70adb35d0f267666e44c61ac0578a12f107f65b7 100644 +index 0b0e415adafb5f614259291c1c501fa1b85ddb14..e6ad7c2b8eac76bcc2083b3921d45b83ecf2f875 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -596,7 +596,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d17454114ced443b576ca0fa608a4846364efbe5..0f5b125a307769c6430dbb9f3289efd66c2c8601 100644 +index 5c8b161559595071da52057dd5652a3447bca822..abc2a152a33805dfe30f0f657ec55c704cf3fa31 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -144,6 +144,7 @@ import org.jetbrains.annotations.NotNull; diff --git a/patches/server/0741-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0740-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0741-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0740-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0742-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0741-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 92% rename from patches/server/0742-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0741-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 3f96eb8cf885..7c079022fd05 100644 --- a/patches/server/0742-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0741-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 9f4d929e0e248cc2cc02ccb0c8915aeb6d9c03b5..630048f21d794cd2f5c10e7b1a7fca30a14e6856 100644 +index f6bba55b843acf4614b4403e78d944decc7ee7c0..75728879da9d365e3a825b6639313375e5407290 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2287,6 +2287,8 @@ public final class CraftServer implements Server { diff --git a/patches/server/0743-Add-GameEvent-tags.patch b/patches/server/0742-Add-GameEvent-tags.patch similarity index 97% rename from patches/server/0743-Add-GameEvent-tags.patch rename to patches/server/0742-Add-GameEvent-tags.patch index 29a529cde179..b78905aa5121 100644 --- a/patches/server/0743-Add-GameEvent-tags.patch +++ b/patches/server/0742-Add-GameEvent-tags.patch @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 630048f21d794cd2f5c10e7b1a7fca30a14e6856..1278e02a723aac491af24b42c6268164b5f16ddb 100644 +index 75728879da9d365e3a825b6639313375e5407290..63c0ea96f67eb7a8a05fc63ecc50d49f19a0e444 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2708,6 +2708,15 @@ public final class CraftServer implements Server { diff --git a/patches/server/0744-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0743-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 94% rename from patches/server/0744-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0743-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index eeec58006bb5..7b522430ecb2 100644 --- a/patches/server/0744-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0743-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,7 +9,7 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 70adb35d0f267666e44c61ac0578a12f107f65b7..5799fd10f6dc95057f0ac9bf69931ee56ff62d90 100644 +index e6ad7c2b8eac76bcc2083b3921d45b83ecf2f875..d621320097f38d2339624852c59d47598b01603b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1416,6 +1416,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0f5b125a307769c6430dbb9f3289efd66c2c8601..b73488765daa9c734dc711839f444ce831b16e8e 100644 +index abc2a152a33805dfe30f0f657ec55c704cf3fa31..cd7367672b91829d1ffef73e32062af730df7d95 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1453,7 +1453,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0754-Expose-furnace-minecart-push-values.patch b/patches/server/0753-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0754-Expose-furnace-minecart-push-values.patch rename to patches/server/0753-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0755-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0754-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0755-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0754-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0756-More-Projectile-API.patch b/patches/server/0755-More-Projectile-API.patch similarity index 100% rename from patches/server/0756-More-Projectile-API.patch rename to patches/server/0755-More-Projectile-API.patch diff --git a/patches/server/0757-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0756-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0757-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0756-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0758-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0757-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 94% rename from patches/server/0758-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0757-Don-t-allow-vehicle-movement-from-players-while-tele.patch index cfd207604f3e..00860841ded9 100644 --- a/patches/server/0758-Don-t-allow-vehicle-movement-from-players-while-tele.patch +++ b/patches/server/0757-Don-t-allow-vehicle-movement-from-players-while-tele.patch @@ -7,7 +7,7 @@ Bring the vehicle move packet behavior in line with the regular player move packet. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 027bc0d89b7ade602565ed3717e87c56de7265e1..a7e02f7b294795d7cac6df3a95658cf63f2fdb38 100644 +index af43b1cf239a319f765058ff082485764528e01e..fb8b6fa69bf516bbaf50541e742e5375fc8c00ff 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -465,6 +465,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0759-Implement-getComputedBiome-API.patch b/patches/server/0758-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0759-Implement-getComputedBiome-API.patch rename to patches/server/0758-Implement-getComputedBiome-API.patch diff --git a/patches/server/0760-Make-some-itemstacks-nonnull.patch b/patches/server/0759-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0760-Make-some-itemstacks-nonnull.patch rename to patches/server/0759-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0761-Implement-enchantWithLevels-API.patch b/patches/server/0760-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0761-Implement-enchantWithLevels-API.patch rename to patches/server/0760-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0762-Fix-saving-in-unloadWorld.patch b/patches/server/0761-Fix-saving-in-unloadWorld.patch similarity index 90% rename from patches/server/0762-Fix-saving-in-unloadWorld.patch rename to patches/server/0761-Fix-saving-in-unloadWorld.patch index fa5308fba948..769c10ebee34 100644 --- a/patches/server/0762-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0761-Fix-saving-in-unloadWorld.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix saving in unloadWorld Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a55abfd40b7151e0eaf057bce4d3a2f6508d4ba4..d86a49c0afaee47d2dd0f0bad1e833b2a80ced53 100644 +index 8a1583ce1f55d74e1516f62f730674bbadc4ed34..382e369aa6e5606abae431764e09c95078dfd8b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1336,7 +1336,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0763-Buffer-OOB-setBlock-calls.patch b/patches/server/0762-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0763-Buffer-OOB-setBlock-calls.patch rename to patches/server/0762-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0764-Add-TameableDeathMessageEvent.patch b/patches/server/0763-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0764-Add-TameableDeathMessageEvent.patch rename to patches/server/0763-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0765-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0764-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 100% rename from patches/server/0765-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0764-Fix-new-block-data-for-EntityChangeBlockEvent.patch diff --git a/patches/server/0766-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0765-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 93% rename from patches/server/0766-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0765-fix-player-loottables-running-when-mob-loot-gamerule.patch index 4b6b9f12ab8c..d2eae9e01eae 100644 --- a/patches/server/0766-fix-player-loottables-running-when-mob-loot-gamerule.patch +++ b/patches/server/0765-fix-player-loottables-running-when-mob-loot-gamerule.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f62f3a904ca09b7a5edf40b739a70c00de927429..6e139b278d4f14a92190b93942a0d43884dc4315 100644 +index 0492704f7f365310d7ea930c30330a468a39c0de..fb46ba1b36c0a62dce022c86b742784828a31f2a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -924,12 +924,14 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0767-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0766-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 100% rename from patches/server/0767-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0766-Ensure-entity-passenger-world-matches-ridden-entity.patch diff --git a/patches/server/0768-cache-resource-keys.patch b/patches/server/0767-cache-resource-keys.patch similarity index 100% rename from patches/server/0768-cache-resource-keys.patch rename to patches/server/0767-cache-resource-keys.patch diff --git a/patches/server/0769-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0768-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/server/0769-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0768-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/server/0770-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0769-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0770-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0769-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0771-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0770-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 100% rename from patches/server/0771-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0770-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch diff --git a/patches/server/0772-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0771-Prevent-tile-entity-copies-loading-chunks.patch similarity index 94% rename from patches/server/0772-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0771-Prevent-tile-entity-copies-loading-chunks.patch index 9c908631e8bb..331b456be105 100644 --- a/patches/server/0772-Prevent-tile-entity-copies-loading-chunks.patch +++ b/patches/server/0771-Prevent-tile-entity-copies-loading-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent tile entity copies loading chunks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a7e02f7b294795d7cac6df3a95658cf63f2fdb38..ecd3ce99d01bc2367ffadaab41f237c4f3516a28 100644 +index fb8b6fa69bf516bbaf50541e742e5375fc8c00ff..5e0466b0522ea325b2c37e3d4c80f3d61c1816fe 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3197,7 +3197,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0773-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0772-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 92% rename from patches/server/0773-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0772-Use-username-instead-of-display-name-in-PlayerList-g.patch index 181baff8f412..8187d4b8c377 100644 --- a/patches/server/0773-Use-username-instead-of-display-name-in-PlayerList-g.patch +++ b/patches/server/0772-Use-username-instead-of-display-name-in-PlayerList-g.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use username instead of display name in diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8bf39ebc7c04e54fc46ca267af06a3a84b240fbb..57fa7cdcb2feb959cb413d4675fca11544236628 100644 +index f173b0f4cd2cffc90a0f609cbc8bf29fdc1cf122..6e47d01db9e7f8519e560681922a0f15980d6acc 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1449,7 +1449,7 @@ public abstract class PlayerList { diff --git a/patches/server/0774-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 97% rename from patches/server/0774-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch index f84d3c303a3a..af0055bdcd46 100644 --- a/patches/server/0774-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Pass ServerLevel for gamerule callbacks diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 63bfc209c7d77170ae7b60595d800bb19f1b5da6..24fd1c18f20752679b5679e1f882b4c1ec2416b2 100644 +index 753bec96a829a153dc54b5e1013359b86f1776b3..d721c96b2b76209176f295896bff3bd03c241c4f 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -304,7 +304,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -18,13 +18,13 @@ index 63bfc209c7d77170ae7b60595d800bb19f1b5da6..24fd1c18f20752679b5679e1f882b4c1 if (dedicatedserverproperties.enableQuery) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ecd3ce99d01bc2367ffadaab41f237c4f3516a28..93ac02c915455f688062f9ef721f2cea7f91a09d 100644 +index 5e0466b0522ea325b2c37e3d4c80f3d61c1816fe..5433681fc3765d744193556217169995fbbb3c7d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2761,7 +2761,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH); if (this.server.isHardcore()) { - this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper + this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper - Expand PlayerGameModeChangeEvent - ((GameRules.BooleanValue) this.player.level().getGameRules().getRule(GameRules.RULE_SPECTATORSGENERATECHUNKS)).set(false, this.server); + ((GameRules.BooleanValue) this.player.level().getGameRules().getRule(GameRules.RULE_SPECTATORSGENERATECHUNKS)).set(false, this.player.serverLevel()); // Paper - Pass ServerLevel for gamerule callbacks } @@ -167,7 +167,7 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..dd03426943dd380cefe12afe3e63c318 this.onChanged(server); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index b73488765daa9c734dc711839f444ce831b16e8e..75e573ef6e211c1a7fe6168595179eccdb8fd4d2 100644 +index cd7367672b91829d1ffef73e32062af730df7d95..19f91e08664c996b540447a46cc79e89c8e55023 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2038,7 +2038,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0775-Expand-PlayerItemDamageEvent.patch b/patches/server/0774-Expand-PlayerItemDamageEvent.patch similarity index 100% rename from patches/server/0775-Expand-PlayerItemDamageEvent.patch rename to patches/server/0774-Expand-PlayerItemDamageEvent.patch diff --git a/patches/server/0776-WorldCreator-keepSpawnLoaded.patch b/patches/server/0775-WorldCreator-keepSpawnLoaded.patch similarity index 94% rename from patches/server/0776-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0775-WorldCreator-keepSpawnLoaded.patch index 8813177e0f93..5f84a84054dc 100644 --- a/patches/server/0776-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0775-WorldCreator-keepSpawnLoaded.patch @@ -5,7 +5,7 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d86a49c0afaee47d2dd0f0bad1e833b2a80ced53..4b8814cbbcc91798653e6d66face1d9b03c66d1d 100644 +index 382e369aa6e5606abae431764e09c95078dfd8b8..aaa31bdb80754d100f4f751ad4a8b4f8957cbaa3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1283,7 +1283,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0777-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0776-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0777-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0776-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0778-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0777-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 97% rename from patches/server/0778-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0777-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch index d77d4323a79e..40f73296bd81 100644 --- a/patches/server/0778-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch +++ b/patches/server/0777-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Trigger bee_nest_destroyed trigger in the correct place diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 236dabc1d4ae9dc9a2a2c07a4a27fc0bfae72f66..a7c0db6aebef3aec931513c726447091088cc546 100644 +index 2e80e2d80bc2ec981e47a42b9c30257898afa4ad..3574fe0ce7c161a13a78b66ab881463def8cc461 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -423,12 +423,16 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0779-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0778-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0779-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0778-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0780-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0779-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 98% rename from patches/server/0780-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0779-Fire-CauldronLevelChange-on-initial-fill.patch index 2f02c180d2ca..a5bfb82f016c 100644 --- a/patches/server/0780-Fire-CauldronLevelChange-on-initial-fill.patch +++ b/patches/server/0779-Fire-CauldronLevelChange-on-initial-fill.patch @@ -94,7 +94,7 @@ index 588b3e911d9b22dad2928ea9e32e8a8a3a8e9b96..274dc56a71fb05060de42169df34dfd8 } diff --git a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java -index a8b2c49ebf531d730d681ca3bceb4dc74b433fdb..b9383a9992e940fc3442d52344744cfe2fadfb74 100644 +index 18ca086e28f4295cb9303919222d7c8ae0ca5d9a..9c828328f5b8c1fe723437ed4a42cc1fe6a23d3d 100644 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java @@ -101,7 +101,13 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock { diff --git a/patches/server/0781-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0780-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 96% rename from patches/server/0781-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0780-fix-powder-snow-cauldrons-not-turning-to-water.patch index f60f04609d5c..d6e697f77343 100644 --- a/patches/server/0781-fix-powder-snow-cauldrons-not-turning-to-water.patch +++ b/patches/server/0780-fix-powder-snow-cauldrons-not-turning-to-water.patch @@ -7,7 +7,7 @@ Powder snow cauldrons should turn to water when extinguishing an entity diff --git a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java -index b9383a9992e940fc3442d52344744cfe2fadfb74..db8d2157df0b276313493af224be343ae0de0917 100644 +index 9c828328f5b8c1fe723437ed4a42cc1fe6a23d3d..5199ad9ca36ccd18eb2ff191feaf4331404049d2 100644 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java @@ -69,7 +69,7 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock { diff --git a/patches/server/0782-Add-PlayerStopUsingItemEvent.patch b/patches/server/0781-Add-PlayerStopUsingItemEvent.patch similarity index 91% rename from patches/server/0782-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0781-Add-PlayerStopUsingItemEvent.patch index 4af671aa5e90..a59dc0b495cb 100644 --- a/patches/server/0782-Add-PlayerStopUsingItemEvent.patch +++ b/patches/server/0781-Add-PlayerStopUsingItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 861f0d81501f63fdfa25f5f6f9da4701957fc7d8..1666a06f64826da9b9e122d3811ecfce16255d1a 100644 +index 9561bbe37c57f36edee9f77d69fff363db886b2d..dfdd9200bb9998ffd4631459d9be978480f76e83 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4025,6 +4025,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0783-Don-t-tick-markers.patch b/patches/server/0782-Don-t-tick-markers.patch similarity index 97% rename from patches/server/0783-Don-t-tick-markers.patch rename to patches/server/0782-Don-t-tick-markers.patch index 1dbbc6a0197b..6e0c3d6db3c3 100644 --- a/patches/server/0783-Don-t-tick-markers.patch +++ b/patches/server/0782-Don-t-tick-markers.patch @@ -23,7 +23,7 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5e5a018433414af76eaa1e781f61612d } }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8f249587b873c5768bb5ebf13d5f378355e17556..4c7369e222166a2342038ed5640eeb17030246fa 100644 +index 15224b31e926ab16b1ef8f2ebdca4dba20637789..cb2f5d727971c809bcb3eea0db04de4fa91459fb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2605,6 +2605,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0784-Expand-FallingBlock-API.patch b/patches/server/0783-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0784-Expand-FallingBlock-API.patch rename to patches/server/0783-Expand-FallingBlock-API.patch diff --git a/patches/server/0785-Do-not-accept-invalid-client-settings.patch b/patches/server/0784-Do-not-accept-invalid-client-settings.patch similarity index 94% rename from patches/server/0785-Do-not-accept-invalid-client-settings.patch rename to patches/server/0784-Do-not-accept-invalid-client-settings.patch index 9f9a9c534cd9..9de555bfd884 100644 --- a/patches/server/0785-Do-not-accept-invalid-client-settings.patch +++ b/patches/server/0784-Do-not-accept-invalid-client-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Do not accept invalid client settings diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 93ac02c915455f688062f9ef721f2cea7f91a09d..b97394a20d1308f254252adfd10eff018c594d6e 100644 +index 5433681fc3765d744193556217169995fbbb3c7d..97f95c0732aef7dd9d125f183994373414584432 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3321,6 +3321,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0786-Add-support-for-Proxy-Protocol.patch b/patches/server/0785-Add-support-for-Proxy-Protocol.patch similarity index 97% rename from patches/server/0786-Add-support-for-Proxy-Protocol.patch rename to patches/server/0785-Add-support-for-Proxy-Protocol.patch index 20e01676afe0..1995403e4232 100644 --- a/patches/server/0786-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0785-Add-support-for-Proxy-Protocol.patch @@ -17,7 +17,7 @@ index ff1636d3e047e124c73496f4942e991abe01c150..376e8983fdfdbb6c3e5fd8ad0f6a05e6 implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion implementation("org.ow2.asm:asm-commons:9.5") diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index f7d5af5e6a39469914bd9c496582929c9b8e0300..2cdb427eb7d88778ef4b6831336814cdc45e5ef9 100644 +index 7288a942397d223d97d7afd11b9c9e5dc6a96901..1e33cabcdf2c6c4894024bdcc1a479b2d120f944 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -111,6 +111,12 @@ public class ServerConnectionListener { diff --git a/patches/server/0787-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0786-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0787-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0786-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0788-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0787-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0788-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0787-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0789-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0788-Sanitize-sent-BlockEntity-NBT.patch similarity index 100% rename from patches/server/0789-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0788-Sanitize-sent-BlockEntity-NBT.patch diff --git a/patches/server/0790-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0789-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0790-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0789-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0791-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0790-Prevent-entity-loading-causing-async-lookups.patch similarity index 100% rename from patches/server/0791-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0790-Prevent-entity-loading-causing-async-lookups.patch diff --git a/patches/server/0792-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0791-Throw-exception-on-world-create-while-being-ticked.patch similarity index 95% rename from patches/server/0792-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0791-Throw-exception-on-world-create-while-being-ticked.patch index 8f980b01ff1e..e005ee53a4d7 100644 --- a/patches/server/0792-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0791-Throw-exception-on-world-create-while-being-ticked.patch @@ -7,7 +7,7 @@ There are no plans to support creating worlds while worlds are being ticked themselvess. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c1ef4dd08b39adf3ab8dbfe286c6378f3efbf54e..4d4617635c9dc0d011cf8fc57ece6e2300573bad 100644 +index 8f338bc3f6418eae5c25078d8938d449b1d688c6..9a1c27bc7bee1f915675b82717dd82f6dd0f3ee6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -310,6 +310,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1666a06f64826da9b9e122d3811ecfce16255d1a..085ab9cd7e0898313ad4542ca2fc949377dad521 100644 +index dfdd9200bb9998ffd4631459d9be978480f76e83..a027d4b0769b7ee549dc25aac4a232fb1943e443 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3056,37 +3056,15 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0821-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0820-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0821-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0820-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0822-Missing-eating-regain-reason.patch b/patches/server/0821-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0822-Missing-eating-regain-reason.patch rename to patches/server/0821-Missing-eating-regain-reason.patch diff --git a/patches/server/0823-Missing-effect-cause.patch b/patches/server/0822-Missing-effect-cause.patch similarity index 100% rename from patches/server/0823-Missing-effect-cause.patch rename to patches/server/0822-Missing-effect-cause.patch diff --git a/patches/server/0824-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0823-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0824-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0823-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0825-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0824-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0825-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0824-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0826-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0825-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0826-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0825-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0827-Configurable-chat-thread-limit.patch b/patches/server/0826-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0827-Configurable-chat-thread-limit.patch rename to patches/server/0826-Configurable-chat-thread-limit.patch diff --git a/patches/server/0828-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0827-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0828-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0827-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0829-fix-Jigsaw-block-kicking-user.patch b/patches/server/0828-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0829-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0828-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0830-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0829-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0830-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0829-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0831-Add-getDrops-to-BlockState.patch b/patches/server/0830-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0831-Add-getDrops-to-BlockState.patch rename to patches/server/0830-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0832-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch similarity index 97% rename from patches/server/0832-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch index dbf556d50c93..38b9535b2db7 100644 --- a/patches/server/0832-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch @@ -142,7 +142,7 @@ index 1089c0ad619784d25b1384db2f09eebb53fa4536..4ffb462f051744d5f7f7b4cf0c49f5d1 if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a4031882dfbded253c53e5e225fbcf0f06475fb5..6b7c52a190bf2e69887dd68c88f1c6707c321924 100644 +index c03ea45afb5537058cdeecc654184338b9aa0bd8..6251e68eff87a0b26d6123fdb658749e90fcfc42 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -468,14 +468,14 @@ public class ServerPlayer extends Player { @@ -163,11 +163,11 @@ index a4031882dfbded253c53e5e225fbcf0f06475fb5..6b7c52a190bf2e69887dd68c88f1c670 while (!world.noCollision(this, this.getBoundingBox(), true) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { // Paper - make sure this loads chunks, we default to NOT loading now this.setPos(this.getX(), this.getY() + 1.0D, this.getZ()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 5333488e606f2966271e1d25bacfa4196ca5145b..9a68d910b0629c0dc7dce482f81752de7900304c 100644 +index c14ab35c4336c025c242e8a350ac4b8d1b1d5c78..15f6bd2e61c02392e8383dc93d734990c8c7edca 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -92,7 +92,7 @@ public class ServerPlayerGameMode { - return event; // Paper + return event; // Paper - Expand PlayerGameModeChangeEvent } // CraftBukkit end - this.setGameModeForPlayer(gameMode, this.previousGameModeForPlayer); @@ -176,7 +176,7 @@ index 5333488e606f2966271e1d25bacfa4196ca5145b..9a68d910b0629c0dc7dce482f81752de this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 633be3e140a17ac65d13f72382e2ef73bf815e47..71d5ffd9a5ac54d5acd25d07466e79d64996444e 100644 +index 6e47d01db9e7f8519e560681922a0f15980d6acc..cd0f6f3c1cf2a4004e238d0e23104209d6384c4e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -711,8 +711,10 @@ public abstract class PlayerList { @@ -455,7 +455,7 @@ index 5199ad9ca36ccd18eb2ff191feaf4331404049d2..f41ffeb9062b661c2b8cf09c0d684855 return; } diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 11ee20c6dc87baa063e8293ebdd9d5247a3e932e..712382f800fbafa5386205e97cb76dfceaba15a3 100644 +index b7760cc0f85b5db37d5a309aae3c26a00a65e32e..d493136283ae5100c0dc22f8da5f7e5b64fdc5f5 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -675,13 +675,10 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @@ -477,13 +477,13 @@ index 11ee20c6dc87baa063e8293ebdd9d5247a3e932e..712382f800fbafa5386205e97cb76dfc } } diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index ca91b82a21a46b1a62564b5157882a845eae8737..db38c178543e221251ae8c6ad618ad9372af7f40 100644 +index d3e2fd7fcfeec133a7baa0007c979c9e379c2f10..1ef558bdd27e9b64413e64f0fa9c68a35f43c39d 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -291,7 +291,11 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name org.bukkit.block.Block block = org.bukkit.craftbukkit.block.CraftBlock.at(level, worldPosition); new io.papermc.paper.event.block.BeaconDeactivatedEvent(block).callEvent(); - // Paper end + // Paper end - beacon activation/deactivation events + // Paper start - fix MC-153086 + if (this.levels > 0 && !this.beamSections.isEmpty()) { BeaconBlockEntity.playSound(this.level, this.worldPosition, SoundEvents.BEACON_DEACTIVATE); diff --git a/patches/server/0833-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0832-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 94% rename from patches/server/0833-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0832-Remove-unnecessary-onTrackingStart-during-navigation.patch index 0e00a33a6932..155b92b23059 100644 --- a/patches/server/0833-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0832-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 81db115871c524209adec41e79e37bbfb876805b..616fe8522736600722a8ab4cce0b36ec359699bd 100644 +index 4ffb462f051744d5f7f7b4cf0c49f5d1533d1d53..9eacc0c96d96f026dcc75479606567a47c7bb008 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2641,7 +2641,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0834-Fix-custom-piglin-loved-items.patch b/patches/server/0833-Fix-custom-piglin-loved-items.patch similarity index 93% rename from patches/server/0834-Fix-custom-piglin-loved-items.patch rename to patches/server/0833-Fix-custom-piglin-loved-items.patch index 41c934194f54..59a92c246471 100644 --- a/patches/server/0834-Fix-custom-piglin-loved-items.patch +++ b/patches/server/0833-Fix-custom-piglin-loved-items.patch @@ -7,7 +7,7 @@ Upstream didn't modify the isLovedItem check in wantsToPickup so piglins never actually tried to pickup interestItems diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java -index b98179602f5b26ecd4df46837b15ca186f65cb38..f0059bd69705ecc7964867b103c93e1df9985803 100644 +index 9c979aee4d1e6e72f599d3c5751267e17aa3d32a..965cef329f1c0aa80ee95f932ab60c98ebd4d2ec 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java @@ -402,7 +402,7 @@ public class PiglinAi { diff --git a/patches/server/0835-EntityPickupItemEvent-fixes.patch b/patches/server/0834-EntityPickupItemEvent-fixes.patch similarity index 93% rename from patches/server/0835-EntityPickupItemEvent-fixes.patch rename to patches/server/0834-EntityPickupItemEvent-fixes.patch index a4941926952b..91ccd6c8ad6e 100644 --- a/patches/server/0835-EntityPickupItemEvent-fixes.patch +++ b/patches/server/0834-EntityPickupItemEvent-fixes.patch @@ -12,7 +12,7 @@ Fires the event when a Raider tries to pick up a raid banner to become raid leader. diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 1c42425b9211bea7cb189e967e566ad80fd278c2..7c1715c9f29eda23b9b517769fdd338c94ecbf8d 100644 +index ea0902b4ba68a89b1f51281b10c1dfd1bfb42833..a9813da7f2b248f98f22e0ad2e7842915025ec12 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -424,7 +424,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -25,7 +25,7 @@ index 1c42425b9211bea7cb189e967e566ad80fd278c2..7c1715c9f29eda23b9b517769fdd338c } diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java -index f0059bd69705ecc7964867b103c93e1df9985803..abf3d76c3f50536ba9b4e0acdc6f654bba7dd5e8 100644 +index 965cef329f1c0aa80ee95f932ab60c98ebd4d2ec..fc93dc1c402c29dba7751c0f873a1e87d6abc358 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java @@ -241,11 +241,16 @@ public class PiglinAi { @@ -47,7 +47,7 @@ index f0059bd69705ecc7964867b103c93e1df9985803..abf3d76c3f50536ba9b4e0acdc6f654b itemstack = PiglinAi.removeOneItemFromItemEntity(drop); } else { diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java -index 5538f7a9024d8708b70de836aa78a4015656a828..0df80ba3af983c0947aca64e6940df1e584f14db 100644 +index 798a774c19361bfaf8583a602192e9e547fa85e8..226fb5c88dd43c8008c5237299ef80db9e847af7 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raider.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java @@ -245,6 +245,11 @@ public abstract class Raider extends PatrollingMonster { diff --git a/patches/server/0836-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0835-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 97% rename from patches/server/0836-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0835-Correctly-handle-interactions-with-items-on-cooldown.patch index bf1b2c07c754..73e9357baa91 100644 --- a/patches/server/0836-Correctly-handle-interactions-with-items-on-cooldown.patch +++ b/patches/server/0835-Correctly-handle-interactions-with-items-on-cooldown.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Correctly handle interactions with items on cooldown diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 9a68d910b0629c0dc7dce482f81752de7900304c..a4058e8ce468ef515236813b034f1a08d5d9589f 100644 +index 15f6bd2e61c02392e8383dc93d734990c8c7edca..6c415090035fdbba6e0e3533aa2f1c3b401ab9ff 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -516,6 +516,7 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0837-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0836-Add-PlayerInventorySlotChangeEvent.patch similarity index 97% rename from patches/server/0837-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0836-Add-PlayerInventorySlotChangeEvent.patch index 5ef2fc8d5dd4..066ab1476e6c 100644 --- a/patches/server/0837-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/server/0836-Add-PlayerInventorySlotChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 62110908f3230aa3e3b81772fed67aee8171cc53..4b843912ad87efe41524d5889645f2e8795130b3 100644 +index 6251e68eff87a0b26d6123fdb658749e90fcfc42..6fd2e6b6400f8fc6e1cb82a25275c48fae5a18dc 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -379,6 +379,25 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0838-Elder-Guardian-appearance-API.patch b/patches/server/0837-Elder-Guardian-appearance-API.patch similarity index 90% rename from patches/server/0838-Elder-Guardian-appearance-API.patch rename to patches/server/0837-Elder-Guardian-appearance-API.patch index b1cfd1919bbf..81d06d06011f 100644 --- a/patches/server/0838-Elder-Guardian-appearance-API.patch +++ b/patches/server/0837-Elder-Guardian-appearance-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 42729e12e6a19e99d13d8e8d6af3a0e53aa620c2..05871198b38e7dcedd44057bcc1de2673f4561c8 100644 +index 80856e4dc50bbcc3b210a6599f12a85f64865bba..c0ebd4c5714e6005b27af56512a07db22e28093e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3189,6 +3189,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0839-Allow-changing-bed-s-occupied-property.patch b/patches/server/0838-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0839-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0838-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0840-Add-entity-knockback-API.patch b/patches/server/0839-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0840-Add-entity-knockback-API.patch rename to patches/server/0839-Add-entity-knockback-API.patch diff --git a/patches/server/0841-Detect-headless-JREs.patch b/patches/server/0840-Detect-headless-JREs.patch similarity index 96% rename from patches/server/0841-Detect-headless-JREs.patch rename to patches/server/0840-Detect-headless-JREs.patch index 1d987d6dd8aa..5861f80bb189 100644 --- a/patches/server/0841-Detect-headless-JREs.patch +++ b/patches/server/0840-Detect-headless-JREs.patch @@ -27,7 +27,7 @@ index 6bd0afddbcc461149dfe9a5c7a86fff6ea13a5f1..148d233f4f5278ff39eacdaa0f4f0e7d + } } diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 9b0bbaf23b90a04b6e6f6c97d9174fe31af557ce..a2d7ed6c68729d1d46b1ac949b7e98cd6badedba 100644 +index 7b996a1c24e66d87c95b9f075248eb1d72ad0476..e65546ab25b9dc814ea14aabfbae8f80017ab88b 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -175,6 +175,18 @@ public class Main { diff --git a/patches/server/0842-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0841-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0842-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0841-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0843-optimize-dirt-and-snow-spreading.patch b/patches/server/0842-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/0843-optimize-dirt-and-snow-spreading.patch rename to patches/server/0842-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/0844-Add-EntityToggleSitEvent.patch b/patches/server/0843-Add-EntityToggleSitEvent.patch similarity index 98% rename from patches/server/0844-Add-EntityToggleSitEvent.patch rename to patches/server/0843-Add-EntityToggleSitEvent.patch index f7035ccd1ed2..f8933f4f7876 100644 --- a/patches/server/0844-Add-EntityToggleSitEvent.patch +++ b/patches/server/0843-Add-EntityToggleSitEvent.patch @@ -57,7 +57,7 @@ index 94bb69a7f5795e0fbee171433632b5c3bca3b902..287e52dc844c2a64dac74dad117b775f } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 130761afcaa6723e0a9d9a518f1b526c344484b4..25a7602670b9f736b3b9ff4523bc867e65c0998a 100644 +index eb61d539fcf15dfc51b3ea52c232a0c7ef4f1ca9..3a6483c29803acbbb9a5b4b49fae22de7575504f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -138,6 +138,7 @@ public class Panda extends Animal { diff --git a/patches/server/0845-Add-fire-tick-delay-option.patch b/patches/server/0844-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0845-Add-fire-tick-delay-option.patch rename to patches/server/0844-Add-fire-tick-delay-option.patch diff --git a/patches/server/0846-Add-Moving-Piston-API.patch b/patches/server/0845-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0846-Add-Moving-Piston-API.patch rename to patches/server/0845-Add-Moving-Piston-API.patch diff --git a/patches/server/0847-Ignore-impossible-spawn-tick.patch b/patches/server/0846-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0847-Ignore-impossible-spawn-tick.patch rename to patches/server/0846-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0848-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0847-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0848-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0847-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0849-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0848-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0849-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0848-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0850-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 95% rename from patches/server/0850-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index 7b9426fb6fab..03ce1c03938b 100644 --- a/patches/server/0850-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -21,7 +21,7 @@ index 0d427f0a70c8d85762fededfe920418d66636ebb..0c1cb3d5892b81b9f8a1894e429bc237 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index 02cbb25b8b1fdaf6e2b771067ca132245eab13dc..c203aa71acc01fa802c2b1ebd253c0e1718ec4cd 100644 +index 450f87ea7f4c5ef3b26a3c75bc7c8bd08a982075..cd076da69e89d843d06ab5be854e8dce122ecb1d 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java @@ -134,6 +134,10 @@ public abstract class BaseFireBlock extends Block { diff --git a/patches/server/0851-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0850-Add-PrePlayerAttackEntityEvent.patch similarity index 93% rename from patches/server/0851-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0850-Add-PrePlayerAttackEntityEvent.patch index 4f1c58982671..ef0c58aa92da 100644 --- a/patches/server/0851-Add-PrePlayerAttackEntityEvent.patch +++ b/patches/server/0850-Add-PrePlayerAttackEntityEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PrePlayerAttackEntityEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 548343be02a627d2c2475a4452363876a126b3a8..cc9835f7ee449098d442eeb5d6e77abeb72f108e 100644 +index f6ca517fbe3742381a932958e9893e32b81e390b..618aaee0abebef15078c90859a7aa815288e655a 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1240,8 +1240,17 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0852-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0851-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0852-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0851-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0853-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0852-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0853-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0852-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0854-Add-Player-Warden-Warning-API.patch b/patches/server/0853-Add-Player-Warden-Warning-API.patch similarity index 95% rename from patches/server/0854-Add-Player-Warden-Warning-API.patch rename to patches/server/0853-Add-Player-Warden-Warning-API.patch index eb8e61223317..8b8ddd6d03ec 100644 --- a/patches/server/0854-Add-Player-Warden-Warning-API.patch +++ b/patches/server/0853-Add-Player-Warden-Warning-API.patch @@ -10,7 +10,7 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 05871198b38e7dcedd44057bcc1de2673f4561c8..ebbb4e5cbbf505598fb84b39649ff5d27e20d6bc 100644 +index c0ebd4c5714e6005b27af56512a07db22e28093e..0dbb8d77b79ae2ae3aca4a96aeb92a981c07292a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3194,6 +3194,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0855-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0854-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0855-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0854-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0856-Add-paper-dumplisteners-command.patch b/patches/server/0855-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0856-Add-paper-dumplisteners-command.patch rename to patches/server/0855-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0857-check-global-player-list-where-appropriate.patch b/patches/server/0856-check-global-player-list-where-appropriate.patch similarity index 96% rename from patches/server/0857-check-global-player-list-where-appropriate.patch rename to patches/server/0856-check-global-player-list-where-appropriate.patch index cce3063d5c5b..16c079cd6a99 100644 --- a/patches/server/0857-check-global-player-list-where-appropriate.patch +++ b/patches/server/0856-check-global-player-list-where-appropriate.patch @@ -7,7 +7,7 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 616fe8522736600722a8ab4cce0b36ec359699bd..88f2feed0c0612b588a332da59d1e17416bd8982 100644 +index 9eacc0c96d96f026dcc75479606567a47c7bb008..8c919616acbe571710bd8bb39eef4355b6d3d2b3 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2764,4 +2764,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -24,7 +24,7 @@ index 616fe8522736600722a8ab4cce0b36ec359699bd..88f2feed0c0612b588a332da59d1e174 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 085ab9cd7e0898313ad4542ca2fc949377dad521..6f7990b7dd6d30bd07ec7910d341e2aadca63f2d 100644 +index a027d4b0769b7ee549dc25aac4a232fb1943e443..c726af466c1156a3b2c1ee18d1ac1b4613ee2431 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0858-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0857-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0858-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0857-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0859-ItemStack-damage-API.patch b/patches/server/0858-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0859-ItemStack-damage-API.patch rename to patches/server/0858-ItemStack-damage-API.patch diff --git a/patches/server/0860-Friction-API.patch b/patches/server/0859-Friction-API.patch similarity index 98% rename from patches/server/0860-Friction-API.patch rename to patches/server/0859-Friction-API.patch index 010660339273..f6d0ae44e491 100644 --- a/patches/server/0860-Friction-API.patch +++ b/patches/server/0859-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6f7990b7dd6d30bd07ec7910d341e2aadca63f2d..d5d8620bc4cc639daedd424ca137e99811084d78 100644 +index c726af466c1156a3b2c1ee18d1ac1b4613ee2431..0e66212733665307840d10bd6ea049d45f674ddb 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0861-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0860-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0861-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0860-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0862-Fix-player-kick-on-shutdown.patch b/patches/server/0861-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0862-Fix-player-kick-on-shutdown.patch rename to patches/server/0861-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0863-Sync-offhand-slot-in-menus.patch b/patches/server/0862-Sync-offhand-slot-in-menus.patch similarity index 97% rename from patches/server/0863-Sync-offhand-slot-in-menus.patch rename to patches/server/0862-Sync-offhand-slot-in-menus.patch index ba4012865e0c..abb074b19f5f 100644 --- a/patches/server/0863-Sync-offhand-slot-in-menus.patch +++ b/patches/server/0862-Sync-offhand-slot-in-menus.patch @@ -8,7 +8,7 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th by pressing the offhand swap item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4b843912ad87efe41524d5889645f2e8795130b3..ea649799341a3f446469048924aae792e211de49 100644 +index 6fd2e6b6400f8fc6e1cb82a25275c48fae5a18dc..3abcb4470bbf8f83204532ff5f3f5e152866a9f0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -348,6 +348,13 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0864-Player-Entity-Tracking-Events.patch b/patches/server/0863-Player-Entity-Tracking-Events.patch similarity index 100% rename from patches/server/0864-Player-Entity-Tracking-Events.patch rename to patches/server/0863-Player-Entity-Tracking-Events.patch diff --git a/patches/server/0865-Limit-pet-look-distance.patch b/patches/server/0864-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0865-Limit-pet-look-distance.patch rename to patches/server/0864-Limit-pet-look-distance.patch diff --git a/patches/server/0866-Properly-resend-entities.patch b/patches/server/0865-Properly-resend-entities.patch similarity index 98% rename from patches/server/0866-Properly-resend-entities.patch rename to patches/server/0865-Properly-resend-entities.patch index 9652ca13e482..68df7df39659 100644 --- a/patches/server/0866-Properly-resend-entities.patch +++ b/patches/server/0865-Properly-resend-entities.patch @@ -85,7 +85,7 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0d public static class DataItem { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5fdc7c39d6b565e2e87ebb6bf0219ee2c7d50d10..e55e253898b61cc4eb611592e8310bb4e005362a 100644 +index ff7a6977166892421e3ae8348aa15a847ebde30e..3af7160fc36b6f706e9448f584c19b8859919cea 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2658,7 +2658,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -98,7 +98,7 @@ index 5fdc7c39d6b565e2e87ebb6bf0219ee2c7d50d10..e55e253898b61cc4eb611592e8310bb4 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 423aa9b56c9e9152bba00f47a71ae41612bebdbd..0223b11df825964f205193268e5c96d7e2d13b6c 100644 +index cd0f6f3c1cf2a4004e238d0e23104209d6384c4e..824bd2bf2ad24001b7f3aa3d8f5a78f36b0baef4 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -376,7 +376,7 @@ public abstract class PlayerList { diff --git a/patches/server/0867-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0866-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 95% rename from patches/server/0867-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0866-Fixes-and-additions-to-the-SpawnReason-API.patch index 021c52f13275..deab687e21d1 100644 --- a/patches/server/0867-Fixes-and-additions-to-the-SpawnReason-API.patch +++ b/patches/server/0866-Fixes-and-additions-to-the-SpawnReason-API.patch @@ -8,7 +8,7 @@ Fixes some wrong reasons, and adds missing spawn reasons for entities. Co-authored-by: Doc diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 823f3b3093cffb49ccdcbcfbe6d348009a553ad7..e754a294645e1af9e39bde32dd1387cd54335e7e 100644 +index 2fa2e5cada590c0f44a4735bcf20de51892f428b..3c4a57bc6159eac53fe37e817e765018d4b2bec9 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -353,7 +353,7 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -34,7 +34,7 @@ index 9652e3385ad10e5d825dd141f6be3522c596916d..baea154a24d1b888af18b9b792db9ede this.discard(); } diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java -index 3777e60d0b81e242b1a6e9b0be3e2f21a1642335..bb45605e1ef3e6cfa1976cf9e449456b19cc7c9c 100644 +index 4a1f2d326c4ece9da717a50b802af86fd9338a0b..94618709e742ebe1a7893d418124e309eaab6c5f 100644 --- a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java @@ -117,7 +117,7 @@ public class FrogspawnBlock extends Block { diff --git a/patches/server/0868-fix-Instruments.patch b/patches/server/0867-fix-Instruments.patch similarity index 96% rename from patches/server/0868-fix-Instruments.patch rename to patches/server/0867-fix-Instruments.patch index 45518ab2ae6b..ad87dc712d32 100644 --- a/patches/server/0868-fix-Instruments.patch +++ b/patches/server/0867-fix-Instruments.patch @@ -6,7 +6,7 @@ Subject: [PATCH] fix Instruments properly handle Player#playNote diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ebbb4e5cbbf505598fb84b39649ff5d27e20d6bc..a0c6902955296da171548618bfcbf629944f8737 100644 +index 0dbb8d77b79ae2ae3aca4a96aeb92a981c07292a..73019b008afaa88d2e068ed4e8f006dfb1dbaf5f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -724,7 +724,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0869-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0868-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 100% rename from patches/server/0869-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0868-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch diff --git a/patches/server/0870-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0869-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0870-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0869-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0871-Add-BlockLockCheckEvent.patch b/patches/server/0870-Add-BlockLockCheckEvent.patch similarity index 98% rename from patches/server/0871-Add-BlockLockCheckEvent.patch rename to patches/server/0870-Add-BlockLockCheckEvent.patch index dd261092ef40..72fd17bc24eb 100644 --- a/patches/server/0871-Add-BlockLockCheckEvent.patch +++ b/patches/server/0870-Add-BlockLockCheckEvent.patch @@ -56,7 +56,7 @@ index fce3a45d09a93ca68a3d49f2e666afa4c860d042..b8b4d74076fa5ed6eb3b2045384db77e @Nullable diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index db38c178543e221251ae8c6ad618ad9372af7f40..afb20f58655e958bd64efd1a1265da9c94857f79 100644 +index 1ef558bdd27e9b64413e64f0fa9c68a35f43c39d..c7b0590b742a57d524de41151fc08fc596097d9c 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -470,7 +470,7 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name diff --git a/patches/server/0872-Add-Sneaking-API-for-Entities.patch b/patches/server/0871-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/server/0872-Add-Sneaking-API-for-Entities.patch rename to patches/server/0871-Add-Sneaking-API-for-Entities.patch diff --git a/patches/server/0873-Improve-logging-and-errors.patch b/patches/server/0872-Improve-logging-and-errors.patch similarity index 98% rename from patches/server/0873-Improve-logging-and-errors.patch rename to patches/server/0872-Improve-logging-and-errors.patch index 89c26609955a..feaac0554c70 100644 --- a/patches/server/0873-Improve-logging-and-errors.patch +++ b/patches/server/0872-Improve-logging-and-errors.patch @@ -40,7 +40,7 @@ index 536f0c496ce36ca3248fc6eeac9bbd77214a36f9..31718823250a1490b783f426fff65bf5 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e55e253898b61cc4eb611592e8310bb4e005362a..a39101fc6ecfa414a1a5e41e61e5fa9077c03c04 100644 +index 3af7160fc36b6f706e9448f584c19b8859919cea..8ccfa8b68b1f43da0a4730d3b09e100bf846ef73 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3395,7 +3395,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0874-Improve-PortalEvents.patch b/patches/server/0873-Improve-PortalEvents.patch similarity index 100% rename from patches/server/0874-Improve-PortalEvents.patch rename to patches/server/0873-Improve-PortalEvents.patch diff --git a/patches/server/0875-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0874-Add-config-option-for-spider-worldborder-climbing.patch similarity index 92% rename from patches/server/0875-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0874-Add-config-option-for-spider-worldborder-climbing.patch index 4ea94b6836ad..8d59d9f5d138 100644 --- a/patches/server/0875-Add-config-option-for-spider-worldborder-climbing.patch +++ b/patches/server/0874-Add-config-option-for-spider-worldborder-climbing.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config option for spider worldborder climbing diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index 9e5d68fe86d17118df3d6a1c36b296f32b4d7fc1..5a9f4a022c8e7a0804543335bfe91e1328d040e6 100644 +index 4d5cfaa58bdf4e6cb975134004d14c591f6e85fa..ff004d5c0dee027acea51aa4886065636335e2a9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -86,7 +86,7 @@ public class Spider extends Monster { diff --git a/patches/server/0876-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0875-Add-missing-SpigotConfig-logCommands-check.patch similarity index 93% rename from patches/server/0876-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0875-Add-missing-SpigotConfig-logCommands-check.patch index 940d96f11dac..9a642caca1e4 100644 --- a/patches/server/0876-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0875-Add-missing-SpigotConfig-logCommands-check.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a39101fc6ecfa414a1a5e41e61e5fa9077c03c04..0b83618d8ca6f5f6694ec5ba4b7635146a5be60c 100644 +index 8ccfa8b68b1f43da0a4730d3b09e100bf846ef73..21331fb6f71aeb80504f516271c5eb99dd94727a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2139,7 +2139,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0877-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0876-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0877-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0876-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0878-Flying-Fall-Damage.patch b/patches/server/0877-Flying-Fall-Damage.patch similarity index 92% rename from patches/server/0878-Flying-Fall-Damage.patch rename to patches/server/0877-Flying-Fall-Damage.patch index e882ff3518c7..5be2b42d6537 100644 --- a/patches/server/0878-Flying-Fall-Damage.patch +++ b/patches/server/0877-Flying-Fall-Damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index cc9835f7ee449098d442eeb5d6e77abeb72f108e..a623b22e02647d2b14e0b5a662920c4cc5d4361e 100644 +index 618aaee0abebef15078c90859a7aa815288e655a..f07b79cced4fa47dbb6b4aa75a384a2a08a53b03 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity { @@ -26,7 +26,7 @@ index cc9835f7ee449098d442eeb5d6e77abeb72f108e..a623b22e02647d2b14e0b5a662920c4c } else { if (fallDistance >= 2.0F) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a0c6902955296da171548618bfcbf629944f8737..a917c616043f7e17144a52ff4cfe0cc0217087b8 100644 +index 73019b008afaa88d2e068ed4e8f006dfb1dbaf5f..6b2f69187ed85ba197fbcd04b22e6d81a1d15dbc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2472,6 +2472,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0879-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0878-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 98% rename from patches/server/0879-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0878-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch index dbe89482433c..e09b5ff99d51 100644 --- a/patches/server/0879-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch +++ b/patches/server/0878-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch @@ -54,7 +54,7 @@ index 5a2e322d349340fa58f133c2034765f90319b2be..7bb8dc1f4697960cdc6bac0daec4b7a0 this.wasCanceled = event.isCancelled(); bukkitBlocks = event.blockList(); diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java -index 0e63fa3b49b1a275254cf108a51ab18e816aad49..e302fdf76d013826804108cb6444e2de5658b84f 100644 +index 40559727591278f44dbf50e2d3406054ffeb8ae9..c6322da14262b8cc2a37ffef5149d008b74bd5e5 100644 --- a/src/main/java/net/minecraft/world/level/block/BedBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java @@ -96,6 +96,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock @@ -92,7 +92,7 @@ index 0e63fa3b49b1a275254cf108a51ab18e816aad49..e302fdf76d013826804108cb6444e2de } } diff --git a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java -index c83ffba568f33323b0f8b9a03fa0b7bbbfed4355..ec7b5e089c2911c7833e3fd7db4018ca2e0d4e85 100644 +index acd5ec218b8d4c096f44ae2eec1379eeaf30ddc5..088262f306755a9cb785c7a0cf0a9c66ed0965a8 100644 --- a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java +++ b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java @@ -131,6 +131,7 @@ public class RespawnAnchorBlock extends Block { diff --git a/patches/server/0880-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 100% rename from patches/server/0880-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch diff --git a/patches/server/0881-config-for-disabling-entity-tag-tags.patch b/patches/server/0880-config-for-disabling-entity-tag-tags.patch similarity index 94% rename from patches/server/0881-config-for-disabling-entity-tag-tags.patch rename to patches/server/0880-config-for-disabling-entity-tag-tags.patch index 4028bb8e3b2e..d9fd989731d8 100644 --- a/patches/server/0881-config-for-disabling-entity-tag-tags.patch +++ b/patches/server/0880-config-for-disabling-entity-tag-tags.patch @@ -5,7 +5,7 @@ Subject: [PATCH] config for disabling entity tag tags diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index e754a294645e1af9e39bde32dd1387cd54335e7e..82695b6f25011a315027bd7a5cb305af31663d4a 100644 +index 3c4a57bc6159eac53fe37e817e765018d4b2bec9..dd4cf9011bf48623e95d5d0f3ff27ee962c88200 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -497,6 +497,13 @@ public class EntityType implements FeatureElement, EntityTypeT diff --git a/patches/server/0882-Use-single-player-info-update-packet-on-join.patch b/patches/server/0881-Use-single-player-info-update-packet-on-join.patch similarity index 94% rename from patches/server/0882-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0881-Use-single-player-info-update-packet-on-join.patch index b23b39cb98c1..493e289d70f9 100644 --- a/patches/server/0882-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0881-Use-single-player-info-update-packet-on-join.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0b83618d8ca6f5f6694ec5ba4b7635146a5be60c..ef25aea4b0bb34b638cb5036de4cf412d3e73b5a 100644 +index 21331fb6f71aeb80504f516271c5eb99dd94727a..2d67f8126850bf3efe91cd6a7c6180776b8e83fc 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3425,7 +3425,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -18,7 +18,7 @@ index 0b83618d8ca6f5f6694ec5ba4b7635146a5be60c..ef25aea4b0bb34b638cb5036de4cf412 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0223b11df825964f205193268e5c96d7e2d13b6c..8d8cc5463f261334d0aabf4fd31854a2af862acc 100644 +index 824bd2bf2ad24001b7f3aa3d8f5a78f36b0baef4..0e3f2b10a3edf129263783c68c4b25c1f7dfb8f1 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { diff --git a/patches/server/0883-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0882-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 95% rename from patches/server/0883-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0882-Correctly-shrink-items-during-EntityResurrectEvent.patch index 478a6e9f7177..082a9af27a0a 100644 --- a/patches/server/0883-Correctly-shrink-items-during-EntityResurrectEvent.patch +++ b/patches/server/0882-Correctly-shrink-items-during-EntityResurrectEvent.patch @@ -22,7 +22,7 @@ This patch corrects this behaviour by only shrinking the item if a totem of undying was found and the event was called uncancelled. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d5d8620bc4cc639daedd424ca137e99811084d78..1dfef0d35561e0af76ccddcb38ff9a3a99c47691 100644 +index 0e66212733665307840d10bd6ea049d45f674ddb..9f3b88a30e76d82f5e02f317a5f2676be44acaa9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1611,7 +1611,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0884-Win-Screen-API.patch b/patches/server/0883-Win-Screen-API.patch similarity index 93% rename from patches/server/0884-Win-Screen-API.patch rename to patches/server/0883-Win-Screen-API.patch index 3ebb9a80e9bf..837c6b728e22 100644 --- a/patches/server/0884-Win-Screen-API.patch +++ b/patches/server/0883-Win-Screen-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API public net.minecraft.server.level.ServerPlayer seenCredits diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a917c616043f7e17144a52ff4cfe0cc0217087b8..351f6667b76cd4943159fc9c130ff8595f7e3a6b 100644 +index 6b2f69187ed85ba197fbcd04b22e6d81a1d15dbc..d42d2692c34660b82ef19d8eed60322b5fceece0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1226,6 +1226,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0885-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0884-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0885-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0884-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0886-Fix-force-opening-enchantment-tables.patch b/patches/server/0885-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0886-Fix-force-opening-enchantment-tables.patch rename to patches/server/0885-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0887-Add-Entity-Body-Yaw-API.patch b/patches/server/0886-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0887-Add-Entity-Body-Yaw-API.patch rename to patches/server/0886-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0888-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0887-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0888-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0887-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0889-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0888-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 90% rename from patches/server/0889-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0888-Update-the-flag-when-a-captured-block-state-is-outda.patch index 006fae5113b0..8ed5ba6cdf95 100644 --- a/patches/server/0889-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0888-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2ef137e93f88b98812fc5b2c36f32d7d7b4216ae..ba1e041e856261643f0d64528f6fbe2f5279b476 100644 +index 2b0ee0cbc6d204de31027aef9621ac6c026cb22f..6f828ff4c54c2ddd4cc03c0e368afda2521e24dd 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -923,6 +923,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0890-Add-EntityFertilizeEggEvent.patch b/patches/server/0889-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/server/0890-Add-EntityFertilizeEggEvent.patch rename to patches/server/0889-Add-EntityFertilizeEggEvent.patch diff --git a/patches/server/0891-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0890-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0891-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0890-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0892-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0891-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0892-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0891-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0893-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0892-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0893-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0892-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0894-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0893-Fix-advancement-triggers-for-entity-damage.patch similarity index 97% rename from patches/server/0894-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0893-Fix-advancement-triggers-for-entity-damage.patch index 4568aa9c2142..4b04d3a488bb 100644 --- a/patches/server/0894-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0893-Fix-advancement-triggers-for-entity-damage.patch @@ -23,7 +23,7 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1dfef0d35561e0af76ccddcb38ff9a3a99c47691..0a274d7ca72c75c9a36e8e688f22097c4abd8ba2 100644 +index 9f3b88a30e76d82f5e02f317a5f2676be44acaa9..202819877d5920e8d0429a8c1bf06af4b9af950f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2302,7 +2302,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0895-Fix-text-display-error-on-spawn.patch b/patches/server/0894-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0895-Fix-text-display-error-on-spawn.patch rename to patches/server/0894-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0896-Fix-inventories-returning-null-Locations.patch b/patches/server/0895-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0896-Fix-inventories-returning-null-Locations.patch rename to patches/server/0895-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0897-Add-Shearable-API.patch b/patches/server/0896-Add-Shearable-API.patch similarity index 100% rename from patches/server/0897-Add-Shearable-API.patch rename to patches/server/0896-Add-Shearable-API.patch diff --git a/patches/server/0898-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0897-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0898-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0897-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0899-Optimize-Hoppers.patch b/patches/server/0898-Optimize-Hoppers.patch similarity index 100% rename from patches/server/0899-Optimize-Hoppers.patch rename to patches/server/0898-Optimize-Hoppers.patch diff --git a/patches/server/0900-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0899-Fix-beehives-generating-from-using-bonemeal.patch similarity index 100% rename from patches/server/0900-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0899-Fix-beehives-generating-from-using-bonemeal.patch diff --git a/patches/server/0901-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0900-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 93% rename from patches/server/0901-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0900-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch index e5cc265ab44b..bedd123feab6 100644 --- a/patches/server/0901-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch +++ b/patches/server/0900-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix crash relating to bad recipes in furnace-like tile diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 712382f800fbafa5386205e97cb76dfceaba15a3..5eaab97a0c3b93a44a45e2ed11033fe01c0c95c2 100644 +index d493136283ae5100c0dc22f8da5f7e5b64fdc5f5..b39c6c91e088dbe2187ed7fd598076f41c53bd49 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -643,6 +643,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit diff --git a/patches/server/0902-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0901-Treat-sequence-violations-like-they-should-be.patch similarity index 92% rename from patches/server/0902-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0901-Treat-sequence-violations-like-they-should-be.patch index 93c890ea58f4..d2ea0a2c8ce0 100644 --- a/patches/server/0902-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0901-Treat-sequence-violations-like-they-should-be.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ef25aea4b0bb34b638cb5036de4cf412d3e73b5a..b537c2d1e00eee4da9ca53c731791f46ae5013cb 100644 +index 2d67f8126850bf3efe91cd6a7c6180776b8e83fc..73494f622e86bb6141f49e6d73aca1a0c1a78d21 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2043,6 +2043,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0903-remove-duplicate-animate-packet-for-records.patch b/patches/server/0902-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0903-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0902-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0904-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0903-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 97% rename from patches/server/0904-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0903-Prevent-causing-expired-keys-from-impacting-new-join.patch index 4af54190d61c..24d6bab05dca 100644 --- a/patches/server/0904-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0903-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -24,7 +24,7 @@ index 0e54e8faa48751a651b953bec72543a94edf74bc..d43106eb89b14667e85cd6e8fa047d64 UPDATE_GAME_MODE((serialized, buf) -> { serialized.gameMode = GameType.byId(buf.readVarInt()); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b537c2d1e00eee4da9ca53c731791f46ae5013cb..294dd52de7b0b19b19bbef9bb6ec6b5b2845cdeb 100644 +index 73494f622e86bb6141f49e6d73aca1a0c1a78d21..a6870c5f386905a4a2f4b884683aff7640649a50 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -287,6 +287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0905-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 91% rename from patches/server/0905-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index bee141908762..898506348d60 100644 --- a/patches/server/0905-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 88f2feed0c0612b588a332da59d1e17416bd8982..720d5275199e73b0c9d0b1d1a9f6a4463c9bb3bb 100644 +index 8c919616acbe571710bd8bb39eef4355b6d3d2b3..df40ffecfa6d34aa3cdffbbec03e049a271364ab 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1724,6 +1724,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0906-Use-array-for-gamerule-storage.patch b/patches/server/0905-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0906-Use-array-for-gamerule-storage.patch rename to patches/server/0905-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0907-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0906-Fix-a-couple-of-upstream-bed-issues.patch similarity index 95% rename from patches/server/0907-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0906-Fix-a-couple-of-upstream-bed-issues.patch index 46bc18a26adf..5e51d9930e5b 100644 --- a/patches/server/0907-Fix-a-couple-of-upstream-bed-issues.patch +++ b/patches/server/0906-Fix-a-couple-of-upstream-bed-issues.patch @@ -10,7 +10,7 @@ but then replaced it with a bed, you could respawn at the bed in that world. diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java -index e302fdf76d013826804108cb6444e2de5658b84f..2c1d03237d5b24b93807c7e97d969ace13d6a917 100644 +index c6322da14262b8cc2a37ffef5149d008b74bd5e5..8677dc684bd2e0bb3cf5f77b659ce02b79627e76 100644 --- a/src/main/java/net/minecraft/world/level/block/BedBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java @@ -109,6 +109,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock diff --git a/patches/server/0908-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0907-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 91% rename from patches/server/0908-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0907-Fix-demo-flag-not-enabling-demo-mode.patch index eb7ea6ae109e..80f51e212026 100644 --- a/patches/server/0908-Fix-demo-flag-not-enabling-demo-mode.patch +++ b/patches/server/0907-Fix-demo-flag-not-enabling-demo-mode.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix demo flag not enabling demo mode https://github.com/PaperMC/Paper/issues/9046 diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index a2d7ed6c68729d1d46b1ac949b7e98cd6badedba..a5e6b99b95e8408136f4c665aec070c5adc448da 100644 +index e65546ab25b9dc814ea14aabfbae8f80017ab88b..4a565321174d9230823a07cf37fb104f9f92245f 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -333,7 +333,9 @@ public class Main { diff --git a/patches/server/0909-Add-Mob-Experience-reward-API.patch b/patches/server/0908-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0909-Add-Mob-Experience-reward-API.patch rename to patches/server/0908-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0910-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0909-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0910-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0909-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0911-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0910-Fix-DamageCause-for-Falling-Blocks.patch similarity index 100% rename from patches/server/0911-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0910-Fix-DamageCause-for-Falling-Blocks.patch diff --git a/patches/server/0912-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0911-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0912-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0911-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0913-More-accurate-isInOpenWater-impl.patch b/patches/server/0912-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0913-More-accurate-isInOpenWater-impl.patch rename to patches/server/0912-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0914-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0913-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0914-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0913-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0915-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0914-Optimise-recalcBlockCounts-for-empty-sections.patch similarity index 100% rename from patches/server/0915-Optimise-recalcBlockCounts-for-empty-sections.patch rename to patches/server/0914-Optimise-recalcBlockCounts-for-empty-sections.patch diff --git a/patches/server/0916-Expand-PlayerItemMendEvent.patch b/patches/server/0915-Expand-PlayerItemMendEvent.patch similarity index 98% rename from patches/server/0916-Expand-PlayerItemMendEvent.patch rename to patches/server/0915-Expand-PlayerItemMendEvent.patch index 5b1f473acbf8..c53087c23794 100644 --- a/patches/server/0916-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0915-Expand-PlayerItemMendEvent.patch @@ -33,7 +33,7 @@ index 5685951b71a8b81c7a71fd93b099b276d535b401..b37e13c5de1a0a22a3713d04b203afc6 return k > 0 ? this.repairPlayerItems(player, k) : 0; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 351f6667b76cd4943159fc9c130ff8595f7e3a6b..09cbd4dadfc2c2984fc5f50152e1c3a0f1d5a5b6 100644 +index d42d2692c34660b82ef19d8eed60322b5fceece0..c21f3ca67672fffa0b2ae0a0e241932efbaedc8a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1754,11 +1754,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0917-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0916-Refresh-ProjectileSource-for-projectiles.patch similarity index 100% rename from patches/server/0917-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0916-Refresh-ProjectileSource-for-projectiles.patch diff --git a/patches/server/0918-Add-transient-modifier-API.patch b/patches/server/0917-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0918-Add-transient-modifier-API.patch rename to patches/server/0917-Add-transient-modifier-API.patch diff --git a/patches/server/0919-Fix-block-place-logic.patch b/patches/server/0918-Fix-block-place-logic.patch similarity index 97% rename from patches/server/0919-Fix-block-place-logic.patch rename to patches/server/0918-Fix-block-place-logic.patch index b8f54129f987..051d3982dbf2 100644 --- a/patches/server/0919-Fix-block-place-logic.patch +++ b/patches/server/0918-Fix-block-place-logic.patch @@ -41,7 +41,7 @@ index 63cd9cd79217a9bcedb6647e6f61d9bccc28d9f0..6070711b9825612fbc485d840ed3ed80 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ba1e041e856261643f0d64528f6fbe2f5279b476..3660ebab9164146fb75075462802f5ba383dd9c5 100644 +index 6f828ff4c54c2ddd4cc03c0e368afda2521e24dd..a57b7e85f068c3131c6fc41cd8e79dec2f053748 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1038,17 +1038,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0920-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0919-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0920-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0919-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0921-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0920-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 96% rename from patches/server/0921-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0920-Call-BlockGrowEvent-for-missing-blocks.patch index 7f41f99941a9..9054b42b6b30 100644 --- a/patches/server/0921-Call-BlockGrowEvent-for-missing-blocks.patch +++ b/patches/server/0920-Call-BlockGrowEvent-for-missing-blocks.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Call BlockGrowEvent for missing blocks Call the event for pitcher crops and sniffer egg diff --git a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java -index 73d9ad9e24727a81c5ff1645316aee003600c0cc..7d8907477cc2b60e48538aaf32e00c0352b926b9 100644 +index 591f32f7c0a7a9c843933d17dad8a34b672f49ac..d20c009baf69d083bf8a14000028991b6518cd50 100644 --- a/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PitcherCropBlock.java @@ -130,7 +130,7 @@ public class PitcherCropBlock extends DoublePlantBlock implements BonemealableBl diff --git a/patches/server/0922-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0921-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 94% rename from patches/server/0922-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0921-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index c4f54468e43e..c8c82e2a7ef6 100644 --- a/patches/server/0922-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0921-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1c7f88d71ee7262a31d75e1462e45f3f5e8da232..758ca700cfa0f05357f051962e41a215ade3724f 100644 +index 65daec67e955a7e1d36ffc1455ec561fb02d795a..5f24bab8b21452e502af70a925ceeaecbedd4a6c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -352,7 +352,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0923-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0922-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0923-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0922-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0924-Fix-sniffer-removeExploredLocation.patch b/patches/server/0923-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0924-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0923-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0925-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0924-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0925-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0924-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0926-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0925-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch similarity index 100% rename from patches/server/0926-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename to patches/server/0925-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch diff --git a/patches/server/0927-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0926-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0927-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0926-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0928-Properly-cancel-usable-items.patch b/patches/server/0927-Properly-cancel-usable-items.patch similarity index 92% rename from patches/server/0928-Properly-cancel-usable-items.patch rename to patches/server/0927-Properly-cancel-usable-items.patch index aa63be117a0a..cd167bc646fb 100644 --- a/patches/server/0928-Properly-cancel-usable-items.patch +++ b/patches/server/0927-Properly-cancel-usable-items.patch @@ -10,7 +10,7 @@ The underlying issue of this is that the client modifies their synced data value them in order for the client to reset their using item state. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index a4058e8ce468ef515236813b034f1a08d5d9589f..0357e190f6cc0724223ed705b19651d865bf853b 100644 +index 6c415090035fdbba6e0e3533aa2f1c3b401ab9ff..41c647c46585d454f3b10a860a2b6d979d1199a3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -557,6 +557,7 @@ public class ServerPlayerGameMode { @@ -34,7 +34,7 @@ index a4058e8ce468ef515236813b034f1a08d5d9589f..0357e190f6cc0724223ed705b19651d8 return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 294dd52de7b0b19b19bbef9bb6ec6b5b2845cdeb..ac41dc96a4aee7b0bb71cbf71d3109ff05a66eff 100644 +index a6870c5f386905a4a2f4b884683aff7640649a50..ead7c202ba8ed11ee180767f3acaa003f60c2b28 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1955,6 +1955,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -46,7 +46,7 @@ index 294dd52de7b0b19b19bbef9bb6ec6b5b2845cdeb..ac41dc96a4aee7b0bb71cbf71d3109ff return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0a274d7ca72c75c9a36e8e688f22097c4abd8ba2..03caab6d49f74402c5c6c932e3a85e72a6edf3bc 100644 +index 202819877d5920e8d0429a8c1bf06af4b9af950f..e9839d0dc8339ce62a6eb01c7094a2a3cf0fa816 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3814,6 +3814,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0929-Add-event-for-player-editing-sign.patch b/patches/server/0928-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0929-Add-event-for-player-editing-sign.patch rename to patches/server/0928-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0930-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0929-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0930-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0929-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0931-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0930-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 98% rename from patches/server/0931-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0930-Fix-cmd-permission-levels-for-command-blocks.patch index 772d421a4abe..509c920615f1 100644 --- a/patches/server/0931-Fix-cmd-permission-levels-for-command-blocks.patch +++ b/patches/server/0930-Fix-cmd-permission-levels-for-command-blocks.patch @@ -41,7 +41,7 @@ index e65d7980b7ebed60786bc31e2f8156fda3b59556..6978d0a9abc9cc5870ac5ee6308f2e99 // CraftBukkit end diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 1bf9cff3c1446be74ded3ac14658e283290b438b..4f627f80811b06d27311a39d00fdc3d39b9887b2 100644 +index 34b1d9853dc44f9bba32421ad2c2e3ccff9daa29..c1907c3095f095be0ee08681f5aed587c962328c 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -296,16 +296,7 @@ public class Commands { diff --git a/patches/server/0932-Add-option-to-disable-block-updates.patch b/patches/server/0931-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0932-Add-option-to-disable-block-updates.patch rename to patches/server/0931-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0933-Call-missing-BlockDispenseEvent.patch b/patches/server/0932-Call-missing-BlockDispenseEvent.patch similarity index 100% rename from patches/server/0933-Call-missing-BlockDispenseEvent.patch rename to patches/server/0932-Call-missing-BlockDispenseEvent.patch diff --git a/patches/server/0934-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0933-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 100% rename from patches/server/0934-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0933-Don-t-load-chunks-for-supporting-block-checks.patch diff --git a/patches/server/0935-Optimize-player-lookups-for-beacons.patch b/patches/server/0934-Optimize-player-lookups-for-beacons.patch similarity index 94% rename from patches/server/0935-Optimize-player-lookups-for-beacons.patch rename to patches/server/0934-Optimize-player-lookups-for-beacons.patch index 65212bc207c3..d1184a5b92ab 100644 --- a/patches/server/0935-Optimize-player-lookups-for-beacons.patch +++ b/patches/server/0934-Optimize-player-lookups-for-beacons.patch @@ -7,7 +7,7 @@ For larger ranges, it's better to iterate over the player list than the entity slices. diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index afb20f58655e958bd64efd1a1265da9c94857f79..5a1da6316ff56ea94a1ba1b68ce51bdffcee9736 100644 +index c7b0590b742a57d524de41151fc08fc596097d9c..6efd46c2c5a83a3e4f5ab8fee4519476de3459c0 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -329,7 +329,22 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name diff --git a/patches/server/0936-Add-Sign-getInteractableSideFor.patch b/patches/server/0935-Add-Sign-getInteractableSideFor.patch similarity index 96% rename from patches/server/0936-Add-Sign-getInteractableSideFor.patch rename to patches/server/0935-Add-Sign-getInteractableSideFor.patch index 3e0f85b62d56..e03e64bf9bd1 100644 --- a/patches/server/0936-Add-Sign-getInteractableSideFor.patch +++ b/patches/server/0935-Add-Sign-getInteractableSideFor.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Sign#getInteractableSideFor diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index da3d947c58bdb79372e64b2cea6e49b99a4a9ad8..9bc1e7f03106cc35ac79bc9d7cced2bc5871b36c 100644 +index 393e6e5fb2c901cdf369cfe5bcde454dee2b1b0d..6a883c185eb7ae228cb767044f7395ef1d08ab28 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java @@ -66,13 +66,18 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C diff --git a/patches/server/0937-Array-backed-synched-entity-data.patch b/patches/server/0936-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0937-Array-backed-synched-entity-data.patch rename to patches/server/0936-Array-backed-synched-entity-data.patch diff --git a/patches/server/0938-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0937-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0938-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0937-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0939-Fix-BanList-API.patch b/patches/server/0938-Fix-BanList-API.patch similarity index 99% rename from patches/server/0939-Fix-BanList-API.patch rename to patches/server/0938-Fix-BanList-API.patch index f7a8267da4b5..12638cd645f3 100644 --- a/patches/server/0939-Fix-BanList-API.patch +++ b/patches/server/0938-Fix-BanList-API.patch @@ -208,7 +208,7 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 09cbd4dadfc2c2984fc5f50152e1c3a0f1d5a5b6..28d1c112a0526162c9886cabb54c4be93e16fbb6 100644 +index c21f3ca67672fffa0b2ae0a0e241932efbaedc8a..ce1ba360df24798ea3e45918b4a18c2944b53f95 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1652,23 +1652,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0940-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0939-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0940-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0939-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0941-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0940-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0941-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0940-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0942-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0941-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 96% rename from patches/server/0942-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0941-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch index d72ec05289af..f4fab00ad3ad 100644 --- a/patches/server/0942-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch +++ b/patches/server/0941-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Only set despawnTimer for Wandering Traders spawned by diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index 96115fe8a8c32ce5992d779b5db540b9d81e3b82..833563e237462ccfc1b730b8f5fb35340d0db854 100644 +index 594e82a09d21c39331c391f2aec5bc8d87649ea3..1c89f20debfad9807c90a21cc336d5790294ebce 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -67,7 +67,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill diff --git a/patches/server/0943-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0942-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 100% rename from patches/server/0943-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0942-ExperienceOrb-should-call-EntitySpawnEvent.patch diff --git a/patches/server/0944-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0943-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0944-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0943-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0945-Add-whitelist-events.patch b/patches/server/0944-Add-whitelist-events.patch similarity index 100% rename from patches/server/0945-Add-whitelist-events.patch rename to patches/server/0944-Add-whitelist-events.patch diff --git a/patches/server/0946-Implement-PlayerFailMoveEvent.patch b/patches/server/0945-Implement-PlayerFailMoveEvent.patch similarity index 98% rename from patches/server/0946-Implement-PlayerFailMoveEvent.patch rename to patches/server/0945-Implement-PlayerFailMoveEvent.patch index 5a885c26ddd3..f047d7f3bd41 100644 --- a/patches/server/0946-Implement-PlayerFailMoveEvent.patch +++ b/patches/server/0945-Implement-PlayerFailMoveEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerFailMoveEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ac41dc96a4aee7b0bb71cbf71d3109ff05a66eff..7f326ac109af10f3d653f2ef0b63415c7075e058 100644 +index ead7c202ba8ed11ee180767f3acaa003f60c2b28..4453c4238182bdee6a955a51bc219a4d8a92e3f2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1316,8 +1316,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0947-Folia-scheduler-and-owned-region-API.patch b/patches/server/0946-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0947-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0946-Folia-scheduler-and-owned-region-API.patch index f421a9d3bef2..f054695a56d9 100644 --- a/patches/server/0947-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0946-Folia-scheduler-and-owned-region-API.patch @@ -1148,7 +1148,7 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e865a887eab9c43291b73661e8748330167cc682..140dd3283eb2bb0e1ea76034f71f9184b9761789 100644 +index 5868f13fa3a3791704ba8e344b9c51d88786f41b..2344efd039773a0b3052d6e08ba204b1efe8963c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1629,6 +1629,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 720d5275199e73b0c9d0b1d1a9f6a4463c9bb3bb..6d1e96e971d03026a5583455193c023188fa8157 100644 +index df40ffecfa6d34aa3cdffbbec03e049a271364ab..048bcbd730ee87cf2f040bda1080ae1f6e4ef414 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -52,7 +52,7 @@ index 720d5275199e73b0c9d0b1d1a9f6a4463c9bb3bb..6d1e96e971d03026a5583455193c0231 // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 9024cd25faabb4d5aed3681d4389baad6ad7b964..82aabd5234102c3763891ebe3009e75f243e539b 100644 +index 27d22a6aef3f71179ea102062f1338cce5d46fea..52aadf7336c1486ccf0d192e27b742f9e63cfe9b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -124,7 +124,7 @@ public class ServerPlayerGameMode { @@ -65,7 +65,7 @@ index 9024cd25faabb4d5aed3681d4389baad6ad7b964..82aabd5234102c3763891ebe3009e75f if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 03caab6d49f74402c5c6c932e3a85e72a6edf3bc..85d743315ae0083636c6ffee2f5081e3def4c4ee 100644 +index e9839d0dc8339ce62a6eb01c7094a2a3cf0fa816..f9de831797bff3707115f03c24bdca78889003a3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3819,6 +3819,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0998-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0997-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0998-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0997-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/0999-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0998-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/0999-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0998-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/1000-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0999-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/1000-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/0999-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/1001-Optimise-nearby-player-retrieval.patch b/patches/server/1000-Optimise-nearby-player-retrieval.patch similarity index 99% rename from patches/server/1001-Optimise-nearby-player-retrieval.patch rename to patches/server/1000-Optimise-nearby-player-retrieval.patch index 602c0b77e1f6..86a14dbd3e84 100644 --- a/patches/server/1001-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1000-Optimise-nearby-player-retrieval.patch @@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6d1e96e971d03026a5583455193c023188fa8157..575a2be5b5d2062b7b8629e8691a604ad801720e 100644 +index 048bcbd730ee87cf2f040bda1080ae1f6e4ef414..c764e236ea3678bba9dd05adc16cc4640c27d4bf 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -581,6 +581,115 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1002-Fix-missing-map-initialize-event-call.patch b/patches/server/1001-Fix-missing-map-initialize-event-call.patch similarity index 95% rename from patches/server/1002-Fix-missing-map-initialize-event-call.patch rename to patches/server/1001-Fix-missing-map-initialize-event-call.patch index 4dfd28acb44e..9632e4597a2d 100644 --- a/patches/server/1002-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/1001-Fix-missing-map-initialize-event-call.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 575a2be5b5d2062b7b8629e8691a604ad801720e..a89d3bcfe24d70d8764fe6931dafdeaf1111117e 100644 +index c764e236ea3678bba9dd05adc16cc4640c27d4bf..fa16260652c0c47df2a02f728850d6e949ae774f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2133,13 +2133,25 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1003-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/1002-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/1003-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/1002-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/1004-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/1003-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/1004-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/1003-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/1005-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/1004-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/1005-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/1004-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/1006-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/1005-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/1006-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/1005-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/1007-Add-player-idle-duration-API.patch b/patches/server/1006-Add-player-idle-duration-API.patch similarity index 91% rename from patches/server/1007-Add-player-idle-duration-API.patch rename to patches/server/1006-Add-player-idle-duration-API.patch index d57581e5399a..dcbfc330218c 100644 --- a/patches/server/1007-Add-player-idle-duration-API.patch +++ b/patches/server/1006-Add-player-idle-duration-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 874036b417471d4eeb14e0ab387f219c7b3e7975..8e7d4c52b95a85e97152c810dd93fe0575c063a5 100644 +index 875a195a3cb9d6330f7768fe24cc4a40f82b850b..aa1747fe82af5b5eafc5742d47007873aa20f652 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3311,6 +3311,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1008-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/1007-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 100% rename from patches/server/1008-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/1007-Don-t-check-if-we-can-see-non-visible-entities.patch diff --git a/patches/server/1009-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/1008-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/1009-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/1008-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/1010-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/1009-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 90% rename from patches/server/1010-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/1009-Allow-null-itemstack-for-Player-sendEquipmentChange.patch index 90d3ad7a7554..96a7e94ec3da 100644 --- a/patches/server/1010-Allow-null-itemstack-for-Player-sendEquipmentChange.patch +++ b/patches/server/1009-Allow-null-itemstack-for-Player-sendEquipmentChange.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8e7d4c52b95a85e97152c810dd93fe0575c063a5..0b9a29c0e36d18282e8a65aa8b05523334fffe74 100644 +index aa1747fe82af5b5eafc5742d47007873aa20f652..e27f65114e4a916089e3c6929838f44e93fdac35 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1083,7 +1083,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1011-Optimize-VarInts.patch b/patches/server/1010-Optimize-VarInts.patch similarity index 100% rename from patches/server/1011-Optimize-VarInts.patch rename to patches/server/1010-Optimize-VarInts.patch diff --git a/patches/server/1012-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/1011-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/1012-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/1011-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/1013-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/1012-Add-predicate-for-blocks-when-raytracing.patch similarity index 98% rename from patches/server/1013-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/1012-Add-predicate-for-blocks-when-raytracing.patch index b658f2d1c5b1..2653ec047241 100644 --- a/patches/server/1013-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/server/1012-Add-predicate-for-blocks-when-raytracing.patch @@ -47,7 +47,7 @@ index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..4b7ea18a34675702c5b17c4819f79778 Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo()); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0cc5c04f121860180e5886b484aa3cf8f2002131..c292895e7295077f513271df1bad90cbdac08f2f 100644 +index dff7bfaef05290b07ca6cbfbdefb3fd02a1cf8f6..5e4587148f1558dafccbdeb788384047e9fbfdbe 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1125,9 +1125,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1014-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/1013-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 92% rename from patches/server/1014-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/1013-Broadcast-take-item-packets-with-collector-as-source.patch index 57c8463ee8ef..17735a1c70ee 100644 --- a/patches/server/1014-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/1013-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 85d743315ae0083636c6ffee2f5081e3def4c4ee..9fb5b4df574db63f005dc321ba76dcd92ffe67e3 100644 +index f9de831797bff3707115f03c24bdca78889003a3..eb0e6cff1d93b06fea3e9b28a4ea1067e416183c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3704,7 +3704,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1015-Expand-LingeringPotion-API.patch b/patches/server/1014-Expand-LingeringPotion-API.patch similarity index 94% rename from patches/server/1015-Expand-LingeringPotion-API.patch rename to patches/server/1014-Expand-LingeringPotion-API.patch index 1a12487d606b..6036e51ec0c5 100644 --- a/patches/server/1015-Expand-LingeringPotion-API.patch +++ b/patches/server/1014-Expand-LingeringPotion-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand LingeringPotion API diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java -index d945c0a7b8ba87301e12b49f859e6fbe65de04f3..4f6e0161694c2f51642fffcf1ce1cb0ed45b194d 100644 +index aaed936c7b6a6ebcd69c8c51f5c92c3b1c51ec27..8bfe0e87c6db0fc89dd64a7ed2a0b4f5cb90b207 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java @@ -288,7 +288,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie diff --git a/patches/server/1016-Add-MaterialTagsTest.patch b/patches/server/1015-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/1016-Add-MaterialTagsTest.patch rename to patches/server/1015-Add-MaterialTagsTest.patch diff --git a/patches/server/1017-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/1016-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 97% rename from patches/server/1017-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/1016-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch index 8e7b748c6a55..d0ef9bee8a2e 100644 --- a/patches/server/1017-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch +++ b/patches/server/1016-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch @@ -45,7 +45,7 @@ index 0db0d67f9ac15372becc1166c37f7f0aede4a4da..a9e70484b01fc082ea25d43d1d428334 BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index c292895e7295077f513271df1bad90cbdac08f2f..e8859ba3ec67d14de09e4fdf737e3c938375c23d 100644 +index 5e4587148f1558dafccbdeb788384047e9fbfdbe..851c186834b16a2ac18d74cc40d321eb988a5e0c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -773,7 +773,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1018-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/1017-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/1018-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/1017-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/1019-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/1018-Fix-several-issues-with-EntityBreedEvent.patch similarity index 98% rename from patches/server/1019-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/1018-Fix-several-issues-with-EntityBreedEvent.patch index 1b42ca075fc5..b5786626482e 100644 --- a/patches/server/1019-Fix-several-issues-with-EntityBreedEvent.patch +++ b/patches/server/1018-Fix-several-issues-with-EntityBreedEvent.patch @@ -54,7 +54,7 @@ index 907ed82fea71254d6624eda878e2668cd26422a7..081d1e38b7b1f286e138b0981aaa760e this.level().broadcastEntityEvent(this, (byte) 18); } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 25a7602670b9f736b3b9ff4523bc867e65c0998a..ead5060ae2840a0519c5bf8b4b84aa12cc41b02a 100644 +index 3a6483c29803acbbb9a5b4b49fae22de7575504f..387aa050235c944818617e8896d0d5f1e7e4cecb 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -649,8 +649,9 @@ public class Panda extends Animal { diff --git a/patches/server/1020-Add-UUID-attribute-modifier-API.patch b/patches/server/1019-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/1020-Add-UUID-attribute-modifier-API.patch rename to patches/server/1019-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/1021-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/1020-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/server/1021-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/1020-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/1022-Lazily-create-LootContext-for-criterions.patch b/patches/server/1021-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/1022-Lazily-create-LootContext-for-criterions.patch rename to patches/server/1021-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/1023-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1022-Don-t-fire-sync-events-during-worldgen.patch similarity index 96% rename from patches/server/1023-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/1022-Don-t-fire-sync-events-during-worldgen.patch index d38e55a12099..5974b5b93a97 100644 --- a/patches/server/1023-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/1022-Don-t-fire-sync-events-during-worldgen.patch @@ -19,7 +19,7 @@ where generation happened directly to a ServerLevel and the entity still has the flag set. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a89d3bcfe24d70d8764fe6931dafdeaf1111117e..c1560ea2be24f2f4173c2552597527dfd739a776 100644 +index fa16260652c0c47df2a02f728850d6e949ae774f..9b0b2510edb4984b0714244bbe513e077af7b455 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1681,6 +1681,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -48,7 +48,7 @@ index f0e40ea053ca7b6749b443b2733271f71755329b..a70633d9585f94e673c58fc69660d984 this.entityData.set(Entity.DATA_POSE, pose); } diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 82695b6f25011a315027bd7a5cb305af31663d4a..d362a06d0600003d40f632eac602ff552cafb9da 100644 +index dd4cf9011bf48623e95d5d0f3ff27ee962c88200..a039217f9293ad3b0cc74c49450472eb44c6a139 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -588,9 +588,15 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -68,7 +68,7 @@ index 82695b6f25011a315027bd7a5cb305af31663d4a..d362a06d0600003d40f632eac602ff55 }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9fb5b4df574db63f005dc321ba76dcd92ffe67e3..060a5069f71ada46e97828560d06448547c2107e 100644 +index eb0e6cff1d93b06fea3e9b28a4ea1067e416183c..6860e588ad9daaf3d9afa11132967a50eeefe860 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -107,7 +107,7 @@ index 9fb5b4df574db63f005dc321ba76dcd92ffe67e3..060a5069f71ada46e97828560d064485 this.onEffectUpdated(mobeffect1, true, entity); // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index 5a9f4a022c8e7a0804543335bfe91e1328d040e6..8094c133f9e934c98eee09738220bacd87a0a364 100644 +index ff004d5c0dee027acea51aa4886065636335e2a9..0c68ed759421d6bce4435399f1b4980510081cac 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -182,7 +182,7 @@ public class Spider extends Monster { diff --git a/patches/server/1024-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/1023-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/1024-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/1023-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/1025-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch similarity index 98% rename from patches/server/1025-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/1024-Restore-vanilla-entity-drops-behavior.patch index 1e6224b70126..6e519296401b 100644 --- a/patches/server/1025-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1bdc710ae8ad0629eb715e00254f8465e69fb9d1..a43d37d074f89d645ff4a30b38a81f1841594cd9 100644 +index 86038d8e2998b1100706171c814b0ef34a20ee14..6872e223ff4b450af89a838f4caf7cf2ebcb818e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -944,22 +944,20 @@ public class ServerPlayer extends Player { @@ -104,7 +104,7 @@ index a70633d9585f94e673c58fc69660d984ca169561..8814ffc0f3ebe352cd72f50d9f68704e return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 060a5069f71ada46e97828560d06448547c2107e..aa389e1f67cbd1cbb7fcb9c340303bbe37bd48a4 100644 +index 6860e588ad9daaf3d9afa11132967a50eeefe860..7fc84405bc96d768fd373dd6844de4204a39cd6a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -117,7 +117,7 @@ index 060a5069f71ada46e97828560d06448547c2107e..aa389e1f67cbd1cbb7fcb9c340303bbe public boolean collides = true; public Set collidableExemptions = new HashSet<>(); diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 71bcd55d9d71fbd5bf3014c7e36d1456d8d5c3fd..68ecf0203e23cb6360d05bec18d9c1c413d84650 100644 +index 45906d273e6d6ec20cf44b4d07efdac68752ee9b..ac9eaeaf7df1e84ee588f371628c0a10784d50bc 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -534,10 +534,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob diff --git a/patches/server/1026-Add-Structure-check-API.patch b/patches/server/1025-Add-Structure-check-API.patch similarity index 91% rename from patches/server/1026-Add-Structure-check-API.patch rename to patches/server/1025-Add-Structure-check-API.patch index 7bca0ec25087..52303f67ed48 100644 --- a/patches/server/1026-Add-Structure-check-API.patch +++ b/patches/server/1025-Add-Structure-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e8859ba3ec67d14de09e4fdf737e3c938375c23d..649f264226eaf88ce9a95521adbe48dd067bdb85 100644 +index 851c186834b16a2ac18d74cc40d321eb988a5e0c..67a3aa7db064fe680ae25ad446ab3170b1c3c453 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -230,6 +230,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1027-Dont-resend-blocks-on-interactions.patch b/patches/server/1026-Dont-resend-blocks-on-interactions.patch similarity index 98% rename from patches/server/1027-Dont-resend-blocks-on-interactions.patch rename to patches/server/1026-Dont-resend-blocks-on-interactions.patch index 7f4f93afccc8..cca46cbd5404 100644 --- a/patches/server/1027-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1026-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 82aabd5234102c3763891ebe3009e75f243e539b..f8fd44500fb2a5b8273d317dbb1789fae24252fd 100644 +index 52aadf7336c1486ccf0d192e27b742f9e63cfe9b..73823d637d9859797d57507932d132b21ba46d70 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { @@ -127,7 +127,7 @@ index 82aabd5234102c3763891ebe3009e75f243e539b..f8fd44500fb2a5b8273d317dbb1789fa } else if (iblockdata.getBlock() instanceof net.minecraft.world.level.block.StructureBlock) { player.connection.send(new net.minecraft.network.protocol.game.ClientboundContainerClosePacket(this.player.containerMenu.containerId)); diff --git a/src/main/java/net/minecraft/world/item/BucketItem.java b/src/main/java/net/minecraft/world/item/BucketItem.java -index 277555a26e8281dd1a626e572794b08cf51d00c5..aa0f09a18ea781e027ea70928b30d3e93061120f 100644 +index 4b9e726e6ac255e743479d5c2e0cdb98464399a4..6371f326fc86cfc53e39bf8ed13b646f7705fbbc 100644 --- a/src/main/java/net/minecraft/world/item/BucketItem.java +++ b/src/main/java/net/minecraft/world/item/BucketItem.java @@ -77,7 +77,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { diff --git a/patches/server/1028-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/1027-Keep-previous-behavior-for-setResourcePack.patch similarity index 94% rename from patches/server/1028-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/1027-Keep-previous-behavior-for-setResourcePack.patch index 7281666cd543..722245e2ae50 100644 --- a/patches/server/1028-Keep-previous-behavior-for-setResourcePack.patch +++ b/patches/server/1027-Keep-previous-behavior-for-setResourcePack.patch @@ -10,7 +10,7 @@ packs before sending the new pack. Other API exists for adding a new pack to the existing packs on a client. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0b9a29c0e36d18282e8a65aa8b05523334fffe74..3d9f54b10b274815b8d7a0d770153a34f28a6742 100644 +index e27f65114e4a916089e3c6929838f44e93fdac35..02f97a9ec7b1b8354cfb97babd57595ef6503679 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2351,8 +2351,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1029-properly-read-and-store-sus-effect-duration.patch b/patches/server/1028-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/1029-properly-read-and-store-sus-effect-duration.patch rename to patches/server/1028-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/1030-Use-correct-max-stack-size-in-crafter.patch b/patches/server/1029-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/1030-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/1029-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/1031-add-more-scoreboard-API.patch b/patches/server/1030-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/1031-add-more-scoreboard-API.patch rename to patches/server/1030-add-more-scoreboard-API.patch diff --git a/patches/server/1032-Improve-Registry.patch b/patches/server/1031-Improve-Registry.patch similarity index 100% rename from patches/server/1032-Improve-Registry.patch rename to patches/server/1031-Improve-Registry.patch diff --git a/patches/server/1033-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1032-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 97% rename from patches/server/1033-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/1032-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index 97116f9ab857..910c95d4307e 100644 --- a/patches/server/1033-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/1032-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,7 +26,7 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index aa389e1f67cbd1cbb7fcb9c340303bbe37bd48a4..c0f931dcd6c40c33d8a92bb01516b383f2bf7bec 100644 +index 7fc84405bc96d768fd373dd6844de4204a39cd6a..353f8598ae940b15a71e71d7c6b80f9d063decb6 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4205,7 +4205,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1034-Add-experience-points-API.patch b/patches/server/1033-Add-experience-points-API.patch similarity index 95% rename from patches/server/1034-Add-experience-points-API.patch rename to patches/server/1033-Add-experience-points-API.patch index a2ed55757a2e..68e09bcd326c 100644 --- a/patches/server/1034-Add-experience-points-API.patch +++ b/patches/server/1033-Add-experience-points-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index a623b22e02647d2b14e0b5a662920c4cc5d4361e..9bcb3b01ec3726f1ba77f63878e0eef7dc92bb6f 100644 +index f07b79cced4fa47dbb6b4aa75a384a2a08a53b03..5174ae8b039bdbb96f92d0059ad25b10b962ba7b 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1833,7 +1833,7 @@ public abstract class Player extends LivingEntity { @@ -18,7 +18,7 @@ index a623b22e02647d2b14e0b5a662920c4cc5d4361e..9bcb3b01ec3726f1ba77f63878e0eef7 // Paper start - send SoundEffect to everyone who can see fromEntity private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3d9f54b10b274815b8d7a0d770153a34f28a6742..99830dfacc0d4ff78f43f970b2d1486710c83ef3 100644 +index 02f97a9ec7b1b8354cfb97babd57595ef6503679..e7ec441824e034a488deeede093cb9ea7add7c3e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1821,6 +1821,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1035-Add-missing-InventoryType.patch b/patches/server/1034-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/1035-Add-missing-InventoryType.patch rename to patches/server/1034-Add-missing-InventoryType.patch diff --git a/patches/server/1036-Add-drops-to-shear-events.patch b/patches/server/1035-Add-drops-to-shear-events.patch similarity index 100% rename from patches/server/1036-Add-drops-to-shear-events.patch rename to patches/server/1035-Add-drops-to-shear-events.patch diff --git a/patches/server/1037-Add-PlayerShieldDisableEvent.patch b/patches/server/1036-Add-PlayerShieldDisableEvent.patch similarity index 95% rename from patches/server/1037-Add-PlayerShieldDisableEvent.patch rename to patches/server/1036-Add-PlayerShieldDisableEvent.patch index bf2ec49181e6..511ecbf41068 100644 --- a/patches/server/1037-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/1036-Add-PlayerShieldDisableEvent.patch @@ -16,7 +16,7 @@ sideeffects, meaning the disable event cannot share a handlerlist with the cooldown event diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 1ce75edb716bd775d7a0528fae27819cfd6207ec..22d057e459c46a51079b2f8f41dff7b9d17dc371 100644 +index c81c72bf1027fcbaac67808fbcf6e0af112176bc..42e2be9286b75a1d34845f303ffc65e96fdd5416 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1703,7 +1703,11 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -33,7 +33,7 @@ index 1ce75edb716bd775d7a0528fae27819cfd6207ec..22d057e459c46a51079b2f8f41dff7b9 } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 9bcb3b01ec3726f1ba77f63878e0eef7dc92bb6f..708a4b9ba6605bd0c2a4624f9af6777452cf29b3 100644 +index 5174ae8b039bdbb96f92d0059ad25b10b962ba7b..9044458491fc9a33923852e324a15ac59d6660b2 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -979,7 +979,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/1038-Add-HiddenPotionEffect-API.patch b/patches/server/1037-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1038-Add-HiddenPotionEffect-API.patch rename to patches/server/1037-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1039-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1038-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/1039-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/1038-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/1040-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1039-fix-ItemMeta-removing-CustomModelData.patch similarity index 100% rename from patches/server/1040-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/1039-fix-ItemMeta-removing-CustomModelData.patch diff --git a/patches/server/1041-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1040-Validate-ResourceLocation-in-NBT-reading.patch similarity index 96% rename from patches/server/1041-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/1040-Validate-ResourceLocation-in-NBT-reading.patch index 9f5df4c73b94..42fc20efc786 100644 --- a/patches/server/1041-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1040-Validate-ResourceLocation-in-NBT-reading.patch @@ -40,7 +40,7 @@ index 5f9dcab27a07969c93555ad0892683c62cbebc8c..a4d875df936b6de16f0233482b03af05 this.path = path; } diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index d362a06d0600003d40f632eac602ff552cafb9da..081937597a8984b52a1e92d4c6032c04c942116e 100644 +index a039217f9293ad3b0cc74c49450472eb44c6a139..e52f3da3b63cc3dba59d3e874a8420dd312b5e96 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -618,7 +618,7 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -53,7 +53,7 @@ index d362a06d0600003d40f632eac602ff552cafb9da..081937597a8984b52a1e92d4c6032c04 @Nullable diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 22d057e459c46a51079b2f8f41dff7b9d17dc371..2056ce8b168dc4f767e55923a0c4d3edc0e7c5f6 100644 +index 42e2be9286b75a1d34845f303ffc65e96fdd5416..0b5334004b9d0489e8465824870662b467ce321b 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -620,7 +620,7 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/1042-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1041-Properly-handle-experience-dropping-on-block-break.patch similarity index 98% rename from patches/server/1042-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/1041-Properly-handle-experience-dropping-on-block-break.patch index c8ed4a99ac08..21ea21c71b12 100644 --- a/patches/server/1042-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1041-Properly-handle-experience-dropping-on-block-break.patch @@ -7,7 +7,7 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 315dc7b198179f2f1384ab898d36d66f3c592d95..5c6f656200111cc171a4c789894732d3164c37bc 100644 +index ca48664d3e7a9efcac8a0e1fa23f71034d74e2d6..dce7be16854faa3e297815e794cae6b0bd42bd4f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1103,7 +1103,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1043-Fixup-NamespacedKey-handling.patch b/patches/server/1042-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1043-Fixup-NamespacedKey-handling.patch rename to patches/server/1042-Fixup-NamespacedKey-handling.patch From 42e88a8b7bc7e8063d173f41369d11ed2b61564d Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Fri, 19 Jan 2024 22:13:42 +0100 Subject: [PATCH 25/45] [ci skip] Add more identifying patch comments --- patches/api/0057-Item-canEntityPickup.patch | 4 +- ...PlayerPickupItemEvent-setFlyAtPlayer.patch | 6 +-- ...Blocks-to-be-accessed-via-a-long-key.patch | 14 +++--- patches/api/0264-Add-Block-isValidTool.patch | 4 +- patches/api/0299-Missing-Entity-API.patch | 6 +-- patches/api/0303-Stinger-API.patch | 6 +-- patches/api/0340-Freeze-Tick-Lock-API.patch | 6 +-- .../api/0361-Expand-FallingBlock-API.patch | 6 +-- patches/api/0369-Collision-API.patch | 6 +-- .../api/0402-Add-Entity-Body-Yaw-API.patch | 6 +-- ...Folia-scheduler-and-owned-region-API.patch | 4 +- ...uce-IO-ops-opening-a-new-region-file.patch | 4 +- ...o-use-a-versioned-world-folder-for-t.patch | 2 +- patches/server/0005-Paper-config-files.patch | 4 +- ...031-Further-improve-server-tick-loop.patch | 4 +- .../server/0134-Item-canEntityPickup.patch | 12 ++--- ...PlayerPickupItemEvent-setFlyAtPlayer.patch | 6 +-- .../0148-Fix-this-stupid-bullshit.patch | 4 +- ...rt-serverside-behavior-of-keepalives.patch | 4 +- ...ptimize-BlockPosition-helper-methods.patch | 6 +-- ...307-Allow-Saving-of-Oversized-Chunks.patch | 4 +- .../0473-Item-no-age-no-player-pickup.patch | 4 +- ...t-Material-from-Boats-and-Minecarts.patch} | 2 +- .../server/0501-Cache-burn-durations.patch | 6 +-- ...mob-spawner-spawn-egg-transformation.patch | 4 +- ...-Add-PlayerFlowerPotManipulateEvent.patch} | 8 ++-- ...act-event-not-being-called-sometimes.patch | 10 ++-- ...0507-Fix-nerfed-slime-when-splitting.patch | 4 +- .../0508-Add-EntityLoadCrossbowEvent.patch | 14 +++--- ...> 0509-Add-WorldGameRuleChangeEvent.patch} | 36 +++++++------- ...10-Add-ServerResourcesReloadedEvent.patch} | 16 +++---- ...d-settings-for-mobs-picking-up-loot.patch} | 10 ++-- ...> 0512-Add-BlockFailedDispenseEvent.patch} | 12 ++--- ...13-Add-PlayerLecternPageChangeEvent.patch} | 14 +++--- ...14-Add-PlayerLoomPatternSelectEvent.patch} | 8 ++-- ...onfigurable-door-breaking-difficulty.patch | 8 ++-- patches/server/0517-Remove-stale-POIs.patch | 6 +-- .../0518-Fix-villager-boat-exploit.patch | 6 +-- patches/server/0519-Add-sendOpLevel-API.patch | 16 +++---- ...n-for-requiring-a-player-participant.patch | 12 ++--- ...onent-with-empty-text-instead-of-thr.patch | 6 +-- ...0525-Make-schedule-command-per-world.patch | 6 +-- ...0526-Configurable-max-leash-distance.patch | 6 +-- ...h => 0527-Add-BlockPreDispenseEvent.patch} | 6 +-- ...8-Add-PlayerChangeBeaconEffectEvent.patch} | 15 +++--- ...le-for-always-placing-the-dragon-egg.patch | 4 +- ...-PlayerStonecutterRecipeSelectEvent.patch} | 10 ++-- .../0531-Expand-EntityUnleashEvent.patch | 48 +++++++++---------- ...-shield-blocking-on-dimension-change.patch | 6 +-- ...atch => 0533-Add-DragonEggFormEvent.patch} | 17 ++++--- ...t.patch => 0534-Add-EntityMoveEvent.patch} | 16 +++---- ...disable-pathfinding-updates-on-block.patch | 4 +- .../0536-Inline-shift-direction-fields.patch | 16 +++---- ...w-adding-items-to-BlockDropItemEvent.patch | 10 ++-- ...-entity-allow-attribute-registration.patch | 18 +++---- patches/server/0543-Improve-ServerGUI.patch | 18 +++---- ...0544-fix-converting-txt-to-json-file.patch | 16 +++---- .../server/0545-Add-worldborder-events.patch | 16 +++---- ...h => 0546-Add-PlayerNameEntityEvent.patch} | 8 ++-- ...-grindstones-from-overstacking-items.patch | 4 +- .../0548-Add-recipe-to-cook-events.patch | 21 ++++---- ...tab-completions-for-brigadier-comman.patch | 4 +- patches/server/0611-Missing-Entity-API.patch | 18 +++---- .../server/0616-Add-PlayerArmSwingEvent.patch | 4 +- patches/server/0622-Stinger-API.patch | 6 +-- ...prevent-NBT-copy-in-smithing-recipes.patch | 4 +- ...ally-inline-methods-in-BlockPosition.patch | 22 ++++----- .../0701-Fix-Spigot-growth-modifiers.patch | 4 +- .../server/0706-Collision-optimisations.patch | 12 ++--- .../server/0709-Add-more-Campfire-API.patch | 6 +-- .../0715-Add-API-for-item-entity-health.patch | 4 +- ...-configurable-height-for-slime-spawn.patch | 4 +- .../server/0734-Freeze-Tick-Lock-API.patch | 8 ++-- patches/server/0755-More-Projectile-API.patch | 8 ++-- ...s-ServerLevel-for-gamerule-callbacks.patch | 20 ++++---- ...-CauldronLevelChange-on-initial-fill.patch | 36 +++++++------- .../server/0783-Expand-FallingBlock-API.patch | 6 +-- ...nate-Current-redstone-implementation.patch | 4 +- ...stom-Chat-Completion-Suggestions-API.patch | 4 +- patches/server/0813-Collision-API.patch | 6 +-- .../0831-Fix-a-bunch-of-vanilla-bugs.patch | 21 ++++---- .../server/0886-Add-Entity-Body-Yaw-API.patch | 6 +-- patches/server/0898-Optimize-Hoppers.patch | 4 +- ...st-throw-both-Spread-and-Grow-Events.patch | 4 +- ...-API-for-an-entity-s-scoreboard-name.patch | 4 +- .../0972-Deep-clone-unhandled-nbt-tags.patch | 4 +- .../server/0996-Lag-compensation-ticks.patch | 8 ++-- 87 files changed, 405 insertions(+), 411 deletions(-) rename patches/server/{0500-Implement-API-to-get-Material-from-Boats-and-Minecar.patch => 0500-API-to-get-Material-from-Boats-and-Minecarts.patch} (97%) rename patches/server/{0504-Implement-PlayerFlowerPotManipulateEvent.patch => 0504-Add-PlayerFlowerPotManipulateEvent.patch} (87%) rename patches/server/{0509-Added-WorldGameRuleChangeEvent.patch => 0509-Add-WorldGameRuleChangeEvent.patch} (81%) rename patches/server/{0510-Added-ServerResourcesReloadedEvent.patch => 0510-Add-ServerResourcesReloadedEvent.patch} (84%) rename patches/server/{0511-Added-world-settings-for-mobs-picking-up-loot.patch => 0511-Add-world-settings-for-mobs-picking-up-loot.patch} (84%) rename patches/server/{0512-Implemented-BlockFailedDispenseEvent.patch => 0512-Add-BlockFailedDispenseEvent.patch} (85%) rename patches/server/{0513-Added-PlayerLecternPageChangeEvent.patch => 0513-Add-PlayerLecternPageChangeEvent.patch} (84%) rename patches/server/{0514-Added-PlayerLoomPatternSelectEvent.patch => 0514-Add-PlayerLoomPatternSelectEvent.patch} (90%) rename patches/server/{0527-Implement-BlockPreDispenseEvent.patch => 0527-Add-BlockPreDispenseEvent.patch} (91%) rename patches/server/{0528-Added-firing-of-PlayerChangeBeaconEffectEvent.patch => 0528-Add-PlayerChangeBeaconEffectEvent.patch} (83%) rename patches/server/{0530-Added-PlayerStonecutterRecipeSelectEvent.patch => 0530-Add-PlayerStonecutterRecipeSelectEvent.patch} (89%) rename patches/server/{0533-add-DragonEggFormEvent.patch => 0533-Add-DragonEggFormEvent.patch} (81%) rename patches/server/{0534-EntityMoveEvent.patch => 0534-Add-EntityMoveEvent.patch} (83%) rename patches/server/{0546-added-PlayerNameEntityEvent.patch => 0546-Add-PlayerNameEntityEvent.patch} (87%) diff --git a/patches/api/0057-Item-canEntityPickup.patch b/patches/api/0057-Item-canEntityPickup.patch index 1d18a940a25d..fc22e7407937 100644 --- a/patches/api/0057-Item-canEntityPickup.patch +++ b/patches/api/0057-Item-canEntityPickup.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item#canEntityPickup diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java -index 65dd4554c6cc0801fcbc0ef6809b794dcebd1124..ab06c640cef1309ab44b0fae8d95df48cdc869a7 100644 +index 65dd4554c6cc0801fcbc0ef6809b794dcebd1124..bfecd0633458586c0352eeb1a95bb57b12f9101e 100644 --- a/src/main/java/org/bukkit/entity/Item.java +++ b/src/main/java/org/bukkit/entity/Item.java @@ -89,4 +89,20 @@ public interface Item extends Entity { @@ -13,7 +13,7 @@ index 65dd4554c6cc0801fcbc0ef6809b794dcebd1124..ab06c640cef1309ab44b0fae8d95df48 @Nullable public UUID getThrower(); + -+ // Paper Start ++ // Paper start + /** + * Gets if non-player entities can pick this Item up + * diff --git a/patches/api/0061-PlayerPickupItemEvent-setFlyAtPlayer.patch b/patches/api/0061-PlayerPickupItemEvent-setFlyAtPlayer.patch index 353d39591191..e7fbcb163022 100644 --- a/patches/api/0061-PlayerPickupItemEvent-setFlyAtPlayer.patch +++ b/patches/api/0061-PlayerPickupItemEvent-setFlyAtPlayer.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerPickupItemEvent#setFlyAtPlayer diff --git a/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java b/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java -index 951ea2cc763973655beedcba3c75332d3f297313..18d82c111f30e0279c10a174a51bac018185cd38 100644 +index 951ea2cc763973655beedcba3c75332d3f297313..26383597cb0bdcf81035b571998332090b785730 100644 --- a/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java +++ b/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java @@ -17,6 +17,7 @@ import org.jetbrains.annotations.NotNull; @@ -20,7 +20,7 @@ index 951ea2cc763973655beedcba3c75332d3f297313..18d82c111f30e0279c10a174a51bac01 return remaining; } -+ // Paper Start ++ // Paper start + /** + * Set if the item will fly at the player + *

Cancelling the event will set this value to false.

@@ -39,7 +39,7 @@ index 951ea2cc763973655beedcba3c75332d3f297313..18d82c111f30e0279c10a174a51bac01 + public boolean getFlyAtPlayer() { + return flyAtPlayer; + } -+ // Paper End ++ // Paper end + @Override public boolean isCancelled() { diff --git a/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch b/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch index f63cb011ce02..c58b8692c94e 100644 --- a/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch +++ b/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch @@ -18,7 +18,7 @@ Y range: [0, 1023] X, Z range: [-67 108 864, 67 108 863] diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java -index 41125de49db8eafce4be59cc110ce5be06836a47..34eeed3ec165bee9d9172ea636b1cc2d7d05f938 100644 +index 41125de49db8eafce4be59cc110ce5be06836a47..042d69e6d4584eb6d678b8ea13a3e4bea78703b8 100644 --- a/src/main/java/org/bukkit/Location.java +++ b/src/main/java/org/bukkit/Location.java @@ -15,7 +15,6 @@ import org.jetbrains.annotations.Nullable; @@ -34,7 +34,7 @@ index 41125de49db8eafce4be59cc110ce5be06836a47..34eeed3ec165bee9d9172ea636b1cc2d return blockLoc; } + -+ // Paper Start ++ // Paper start + /** + * @return The block key for this location's block location. + * @see Block#getBlockKey(int, int, int) @@ -44,13 +44,13 @@ index 41125de49db8eafce4be59cc110ce5be06836a47..34eeed3ec165bee9d9172ea636b1cc2d + public long toBlockKey() { + return Block.getBlockKey(getBlockX(), getBlockY(), getBlockZ()); + } -+ // Paper End ++ // Paper end + /** * @return A new location where X/Y/Z are the center of the block */ diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index be0e1ad34c526f2bd7b80f035c79b07e3b3ef5fb..55c0ad31ae8f1831c43404abb7e2e62da63885ce 100644 +index f15e1a6a43c0353ac4834f74fffb9adc2049dfcb..d5ebfdefe015e5509f0ecf53accfee2afbd4aadd 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -97,6 +97,41 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @@ -96,14 +96,14 @@ index be0e1ad34c526f2bd7b80f035c79b07e3b3ef5fb..55c0ad31ae8f1831c43404abb7e2e62d * Gets the highest non-empty (impassable) block at the given coordinates. * diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index 9f4d383ea3d6b26d16b8b77ca4c29d2d839ad6dd..78f6cc1a8a8de05aec6f551f8a5f425944f0ffa3 100644 +index 9f4d383ea3d6b26d16b8b77ca4c29d2d839ad6dd..f3a18e337a579b602b1289bccdf454334a663fcf 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -156,6 +156,82 @@ public interface Block extends Metadatable, Translatable { */ int getZ(); -+ // Paper Start ++ // Paper start + /** + * Returns this block's coordinates packed into a long value. + * Computed via: {@code Block.getBlockKey(this.getX(), this.getY(), this.getZ())} @@ -177,7 +177,7 @@ index 9f4d383ea3d6b26d16b8b77ca4c29d2d839ad6dd..78f6cc1a8a8de05aec6f551f8a5f4259 + public static int getBlockKeyZ(long packed) { + return (int) ((packed << 10) >> 37); + } -+ // Paper End ++ // Paper end + /** * Gets the Location of the block diff --git a/patches/api/0264-Add-Block-isValidTool.patch b/patches/api/0264-Add-Block-isValidTool.patch index 0a86ea4c675b..caa83ab79b9e 100644 --- a/patches/api/0264-Add-Block-isValidTool.patch +++ b/patches/api/0264-Add-Block-isValidTool.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Block#isValidTool diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index 3fd364e5875f95296e75dede4c610d3dd3e0038e..6de4c858ff6e542daa0879092e4f99a948225964 100644 +index 689170a273ce68cf6fbd4659f3e08577c100535f..987dfdc9b09299e5ef3ae1fea2882ae56f8da38e 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -230,6 +230,15 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr @@ -21,6 +21,6 @@ index 3fd364e5875f95296e75dede4c610d3dd3e0038e..6de4c858ff6e542daa0879092e4f99a9 + * @return whether the block will drop items + */ + boolean isValidTool(@NotNull ItemStack itemStack); - // Paper End + // Paper end /** diff --git a/patches/api/0299-Missing-Entity-API.patch b/patches/api/0299-Missing-Entity-API.patch index f9b97bdf0194..dfc8107821ad 100644 --- a/patches/api/0299-Missing-Entity-API.patch +++ b/patches/api/0299-Missing-Entity-API.patch @@ -310,7 +310,7 @@ index adb20a9abba33c32d553f620fa82b27dff64ab5f..1f6702b0de00b87dbed7f6d93e911655 + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Cat.java b/src/main/java/org/bukkit/entity/Cat.java -index d1327761a4b95eba97877f1991fc19b298b48eaf..9bc385682472418c787481bbc809f238194d5918 100644 +index d1327761a4b95eba97877f1991fc19b298b48eaf..0534fbc228f64cf3b361ab097d9b88212bdb0f36 100644 --- a/src/main/java/org/bukkit/entity/Cat.java +++ b/src/main/java/org/bukkit/entity/Cat.java @@ -68,4 +68,36 @@ public interface Cat extends Tameable, Sittable { @@ -318,7 +318,7 @@ index d1327761a4b95eba97877f1991fc19b298b48eaf..9bc385682472418c787481bbc809f238 } } + -+ // Paper Start - More cat api ++ // Paper start - More cat api + /** + * Sets if the cat is lying down. + * This is visual and does not affect the behaviour of the cat. @@ -348,7 +348,7 @@ index d1327761a4b95eba97877f1991fc19b298b48eaf..9bc385682472418c787481bbc809f238 + * @return head is up + */ + public boolean isHeadUp(); -+ // Paper End - More cat api ++ // Paper end - More cat api } diff --git a/src/main/java/org/bukkit/entity/Chicken.java b/src/main/java/org/bukkit/entity/Chicken.java index cb3ec6ef6c38c2071cb6ad91da094fca2de8d5c6..b4c1a262602d4ca5ffc9fcc21d6aa79af8c040a7 100644 diff --git a/patches/api/0303-Stinger-API.patch b/patches/api/0303-Stinger-API.patch index e293eaaad10e..253046d81ae3 100644 --- a/patches/api/0303-Stinger-API.patch +++ b/patches/api/0303-Stinger-API.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Stinger API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index adf2870ab81b6ff8f595e11b55f043c4fd51281e..3be060731b9b2df3408e8c5627a3640262cdc4d5 100644 +index adf2870ab81b6ff8f595e11b55f043c4fd51281e..2976955607f9cbb9b552aa43f25b5b9d52f7437e 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -401,6 +401,36 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource */ void setArrowsInBody(int count, boolean fireEvent); // Paper -+ // Paper Start - Bee Stinger API ++ // Paper start - Bee Stinger API + /** + * Gets the time in ticks until the next bee stinger leaves the entity's body. + * @@ -40,7 +40,7 @@ index adf2870ab81b6ff8f595e11b55f043c4fd51281e..3be060731b9b2df3408e8c5627a36402 + * @param count amount of bee stingers in entity's body + */ + public void setBeeStingersInBody(int count); -+ // Paper End - Stinger API ++ // Paper end - Stinger API + /** * Returns the living entity's current maximum no damage ticks. diff --git a/patches/api/0340-Freeze-Tick-Lock-API.patch b/patches/api/0340-Freeze-Tick-Lock-API.patch index 014d92d6751e..ab42b3657d13 100644 --- a/patches/api/0340-Freeze-Tick-Lock-API.patch +++ b/patches/api/0340-Freeze-Tick-Lock-API.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 6456f7bfc8aa8cb5c9aaf0c06f9130242003ee3e..953bb49b7079647450d3453356d1c8a91be94c01 100644 +index 6456f7bfc8aa8cb5c9aaf0c06f9130242003ee3e..f090368dbb5acf352e1bee34d78b55eb92373c6d 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -283,6 +283,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean isFrozen(); -+ // Paper Start - Freeze Tick Lock API ++ // Paper start - Freeze Tick Lock API + /** + * Gets if the entity currently has its freeze ticks locked + * to a set amount. @@ -30,7 +30,7 @@ index 6456f7bfc8aa8cb5c9aaf0c06f9130242003ee3e..953bb49b7079647450d3453356d1c8a9 + * @param locked prevent vanilla modification or not + */ + void lockFreezeTicks(boolean locked); -+ // Paper End - Freeze Tick Lock API ++ // Paper end - Freeze Tick Lock API + /** * Mark the entity's removal. diff --git a/patches/api/0361-Expand-FallingBlock-API.patch b/patches/api/0361-Expand-FallingBlock-API.patch index b0a7ccd2c77c..81549f87522b 100644 --- a/patches/api/0361-Expand-FallingBlock-API.patch +++ b/patches/api/0361-Expand-FallingBlock-API.patch @@ -45,7 +45,7 @@ index 86c7b4ba676f826344056b24b204b748cfce1580..0f60823426898974b7d61123fb848006 @Deprecated @NotNull diff --git a/src/main/java/org/bukkit/entity/FallingBlock.java b/src/main/java/org/bukkit/entity/FallingBlock.java -index ae1ce2ee2deb82f3f4144ec54b3ba119b437c5e9..a945e76dd61ef132ae3f3ee69635c927b1180523 100644 +index ae1ce2ee2deb82f3f4144ec54b3ba119b437c5e9..7904c716a3b0869ebf2f9b416536c59121a539a8 100644 --- a/src/main/java/org/bukkit/entity/FallingBlock.java +++ b/src/main/java/org/bukkit/entity/FallingBlock.java @@ -26,6 +26,33 @@ public interface FallingBlock extends Entity { @@ -86,7 +86,7 @@ index ae1ce2ee2deb82f3f4144ec54b3ba119b437c5e9..a945e76dd61ef132ae3f3ee69635c927 default org.bukkit.Location getSourceLoc() { return this.getOrigin(); } -+ // Paper Start - Auto expire setting ++ // Paper start - Auto expire setting + /** + * Sets if this falling block should expire after: + * - 30 seconds @@ -104,5 +104,5 @@ index ae1ce2ee2deb82f3f4144ec54b3ba119b437c5e9..a945e76dd61ef132ae3f3ee69635c927 + * @param autoExpires if this behavior should occur + */ + void shouldAutoExpire(boolean autoExpires); -+ // Paper End - Auto expire setting ++ // Paper end - Auto expire setting } diff --git a/patches/api/0369-Collision-API.patch b/patches/api/0369-Collision-API.patch index 394d0d8feec2..64087e5ba36c 100644 --- a/patches/api/0369-Collision-API.patch +++ b/patches/api/0369-Collision-API.patch @@ -25,7 +25,7 @@ index 44ee56a5956cc17194c767a0c1071a2abffe818a..43dd6c59cceba12f27e6b265acc3ad97 // Paper end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 2ea66188468cf32bcaedc5167d4b9b0c6ea9b0b3..351a7d0aeab5d83564dd543935ba503ea0b68d60 100644 +index 8322d22f34968d579b92c581b36544d42b7732cd..2a4ff1457a9b4aa17bf28083ed4c301467ae9735 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -971,4 +971,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @@ -33,7 +33,7 @@ index 2ea66188468cf32bcaedc5167d4b9b0c6ea9b0b3..351a7d0aeab5d83564dd543935ba503e boolean isInPowderedSnow(); // Paper end + -+ // Paper Start - Collision API ++ // Paper start - Collision API + /** + * Checks for any collisions with the entity's bounding box at the provided location. + * This will check for any colliding entities (boats, shulkers) / worldborder / blocks. @@ -53,5 +53,5 @@ index 2ea66188468cf32bcaedc5167d4b9b0c6ea9b0b3..351a7d0aeab5d83564dd543935ba503e + * @return collides or not + */ + boolean wouldCollideUsing(@NotNull BoundingBox boundingBox); -+ // Paper End - Collision API ++ // Paper end - Collision API } diff --git a/patches/api/0402-Add-Entity-Body-Yaw-API.patch b/patches/api/0402-Add-Entity-Body-Yaw-API.patch index 2b57ada010f2..ce77614b0c31 100644 --- a/patches/api/0402-Add-Entity-Body-Yaw-API.patch +++ b/patches/api/0402-Add-Entity-Body-Yaw-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index c9139bb7abc881fddd2d5610d9506cd4fce7eba3..bb1ed1e16bd17161bbf554acc03d1e32d3627a80 100644 +index e5df511d962a59260207e8390d7da7782af5dc77..90c46483928e70f37a9900cada7dc67957a031d0 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -989,6 +989,43 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent @@ -51,9 +51,9 @@ index c9139bb7abc881fddd2d5610d9506cd4fce7eba3..bb1ed1e16bd17161bbf554acc03d1e32 + float getYaw(); // Paper end - // Paper Start - Collision API + // Paper start - Collision API diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index b6df5fd8eda6a30c119b3fa3844e6bb0425e2f39..0b4cd106265c6c675bd27cd66a275a48217a7419 100644 +index c1b7f021cd268a0d6da0f2759469b88fae638648..7f185102ba3a417670313e75ee174a1024a1d514 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -1244,5 +1244,21 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0413-Folia-scheduler-and-owned-region-API.patch b/patches/api/0413-Folia-scheduler-and-owned-region-API.patch index 624a3fde4415..5eb0946bc3a5 100644 --- a/patches/api/0413-Folia-scheduler-and-owned-region-API.patch +++ b/patches/api/0413-Folia-scheduler-and-owned-region-API.patch @@ -769,13 +769,13 @@ index 75f2b46c4fc1e12d1d02cd60865a5b76b1c2de49..f8f0a2b7fdd51c739c3f55801037a417 + // Paper end - Folia region threading API } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index bb1ed1e16bd17161bbf554acc03d1e32d3627a80..b2f5be3227d5dad5b1ff0129930dcd1944c75cef 100644 +index 90c46483928e70f37a9900cada7dc67957a031d0..3bf0c76ef830fa54d7695711cd7903dc64c619b1 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java @@ -1049,4 +1049,15 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean wouldCollideUsing(@NotNull BoundingBox boundingBox); - // Paper End - Collision API + // Paper end - Collision API + + // Paper start - Folia schedulers + /** diff --git a/patches/removed/1.15/0078-Reduce-IO-ops-opening-a-new-region-file.patch b/patches/removed/1.15/0078-Reduce-IO-ops-opening-a-new-region-file.patch index 501d25ab677b..2a972ea836f7 100644 --- a/patches/removed/1.15/0078-Reduce-IO-ops-opening-a-new-region-file.patch +++ b/patches/removed/1.15/0078-Reduce-IO-ops-opening-a-new-region-file.patch @@ -21,14 +21,14 @@ index fb529eac9..faf425588 100644 this.e.set(1, false); this.b.seek(0L); -+ // Paper Start ++ // Paper start + java.nio.ByteBuffer header = java.nio.ByteBuffer.allocate(8192); + while (header.hasRemaining()) { + if (this.getDataFile().getChannel().read(header) == -1) throw new java.io.EOFException(); + } + ((java.nio.Buffer) header).clear(); + java.nio.IntBuffer headerAsInts = header.asIntBuffer(); -+ // Paper End ++ // Paper end + int k; diff --git a/patches/removed/1.15/0269-Provide-option-to-use-a-versioned-world-folder-for-t.patch b/patches/removed/1.15/0269-Provide-option-to-use-a-versioned-world-folder-for-t.patch index b6240c3a9181..53e5cbaa46b6 100644 --- a/patches/removed/1.15/0269-Provide-option-to-use-a-versioned-world-folder-for-t.patch +++ b/patches/removed/1.15/0269-Provide-option-to-use-a-versioned-world-folder-for-t.patch @@ -123,7 +123,7 @@ index 21b3b06f53..8718811655 100644 + public synchronized boolean hasRegionFile(File file, int i, int j) { + return cache.containsKey(ChunkCoordIntPair.pair(i, j)); + } -+ // Paper End ++ // Paper end + @Nullable public NBTTagCompound read(ChunkCoordIntPair chunkcoordintpair) throws IOException { diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch index d94619106bd2..75d25f21d7cf 100644 --- a/patches/server/0005-Paper-config-files.patch +++ b/patches/server/0005-Paper-config-files.patch @@ -4976,7 +4976,7 @@ index 8318b4a56b4a0235a00caba9df4ba41c85eb13bc..b5256eefb64808ae15bd622a8eccbe13 world.serverLevelData.setDifficulty(config.difficulty); world.setSpawnSettings(config.spawnMonsters, config.spawnAnimals); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index a7921cde2b6275d730879b2814cc5f430520b051..686d6376322dab126393198da87e02827ec0fda2 100644 +index a7921cde2b6275d730879b2814cc5f430520b051..c8f0570b7d37a0c0bddb0a65c36fb32de584df8f 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -141,6 +141,19 @@ public class Main { @@ -4984,7 +4984,7 @@ index a7921cde2b6275d730879b2814cc5f430520b051..686d6376322dab126393198da87e0282 .describedAs("Yml file"); // Spigot End + -+ // Paper Start ++ // Paper start + acceptsAll(asList("paper-dir", "paper-settings-directory"), "Directory for Paper settings") + .withRequiredArg() + .ofType(File.class) diff --git a/patches/server/0031-Further-improve-server-tick-loop.patch b/patches/server/0031-Further-improve-server-tick-loop.patch index bd99c7efa40d..a7c572586e49 100644 --- a/patches/server/0031-Further-improve-server-tick-loop.patch +++ b/patches/server/0031-Further-improve-server-tick-loop.patch @@ -12,7 +12,7 @@ Previous implementation did not calculate TPS correctly. Switch to a realistic rolling average and factor in std deviation as an extra reporting variable diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0c3a23502ab6cb9e1f027b1050dd6849ceb181d9..21fc0ce46567d7bd7f24759779f8586efe72fc9f 100644 +index 0c3a23502ab6cb9e1f027b1050dd6849ceb181d9..6bc92eb33bc066c477d86d317cb445dd7f7884f5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -283,7 +283,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, Level world) { super(type, world); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -index fb3738f4c558796f41e3327dd41b8aec68007a8a..4456b7c438cadb4bfabad030b6871b3a8a7fd439 100644 +index fb3738f4c558796f41e3327dd41b8aec68007a8a..5620a0849fda49313c68edfd747fedd09641a3d5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java @@ -63,6 +63,18 @@ public class CraftItem extends CraftEntity implements Item { } } -+ // Paper Start ++ // Paper start + @Override + public boolean canMobPickup() { + return this.getHandle().canMobPickup; @@ -50,7 +50,7 @@ index fb3738f4c558796f41e3327dd41b8aec68007a8a..4456b7c438cadb4bfabad030b6871b3a + public void setCanMobPickup(boolean canMobPickup) { + this.getHandle().canMobPickup = canMobPickup; + } -+ // Paper End ++ // Paper end + @Override public void setOwner(UUID uuid) { diff --git a/patches/server/0135-PlayerPickupItemEvent-setFlyAtPlayer.patch b/patches/server/0135-PlayerPickupItemEvent-setFlyAtPlayer.patch index f0b28d264358..1619a5d25533 100644 --- a/patches/server/0135-PlayerPickupItemEvent-setFlyAtPlayer.patch +++ b/patches/server/0135-PlayerPickupItemEvent-setFlyAtPlayer.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerPickupItemEvent#setFlyAtPlayer diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 6905090f030c86f640e841e94c32ad90acb75d2a..6847d100a6fe2b57d7986b121f5ce0f981cfa415 100644 +index 6905090f030c86f640e841e94c32ad90acb75d2a..afb01096f41ed76e431848466d02aaefdc0c69c7 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -423,6 +423,7 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -23,11 +23,11 @@ index 6905090f030c86f640e841e94c32ad90acb75d2a..6847d100a6fe2b57d7986b121f5ce0f9 + flyAtPlayer = playerEvent.getFlyAtPlayer(); // Paper if (playerEvent.isCancelled()) { itemstack.setCount(i); // SPIGOT-5294 - restore count -+ // Paper Start ++ // Paper start + if (flyAtPlayer) { + player.take(this, i); + } -+ // Paper End ++ // Paper end return; } diff --git a/patches/server/0148-Fix-this-stupid-bullshit.patch b/patches/server/0148-Fix-this-stupid-bullshit.patch index b3fb12717659..0c9ffa507de5 100644 --- a/patches/server/0148-Fix-this-stupid-bullshit.patch +++ b/patches/server/0148-Fix-this-stupid-bullshit.patch @@ -31,7 +31,7 @@ index 8ff786c366332588a2df053438f23cc9fb7e2b84..c887d34171f89c731d76c4ca92c70be2 Bootstrap.isBootstrapped = true; Instant instant = Instant.now(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 9c24fdab1744a5af71d8dfb63736483272476f40..ebfebbb9b7de93dd43ee6d0531832a71f8556d33 100644 +index 09164f4c446d3e80708f1bcb9da333821ee5733d..4d2ebb7af055d1c78a648914c5a1862fe9bc8b8f 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -258,10 +258,12 @@ public class Main { @@ -46,7 +46,7 @@ index 9c24fdab1744a5af71d8dfb63736483272476f40..ebfebbb9b7de93dd43ee6d0531832a71 - Thread.sleep(TimeUnit.SECONDS.toMillis(20)); + //System.err.println("*** Server will start in 20 seconds ***"); + //Thread.sleep(TimeUnit.SECONDS.toMillis(20)); -+ // Paper End ++ // Paper end } } diff --git a/patches/server/0158-revert-serverside-behavior-of-keepalives.patch b/patches/server/0158-revert-serverside-behavior-of-keepalives.patch index b884c333a9ca..6d8b7cea8476 100644 --- a/patches/server/0158-revert-serverside-behavior-of-keepalives.patch +++ b/patches/server/0158-revert-serverside-behavior-of-keepalives.patch @@ -17,7 +17,7 @@ from networking or during connections flood of chunk packets on slower clients, at the cost of dead connections being kept open for longer. diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 910b9a2918ec58ecb9fff77cca36abb48c7db7dd..cf81671a32874d89588a829e6ad6696e41e1cfa4 100644 +index c08371fdf0c10135e235efa2b2c7e4819f3b19c2..494069d69d8d0f9f1b6700349310ec6d2031abdd 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -48,12 +48,13 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -43,7 +43,7 @@ index 910b9a2918ec58ecb9fff77cca36abb48c7db7dd..cf81671a32874d89588a829e6ad6696e - - if (i - this.keepAliveTime >= 25000L) { // CraftBukkit - if (this.keepAlivePending) { -+ // Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings ++ // Paper start - give clients a longer time to respond to pings as per pre 1.12.2 timings + // This should effectively place the keepalive handling back to "as it was" before 1.12.2 + long currentTime = Util.getMillis(); + long elapsedTime = currentTime - this.keepAliveTime; diff --git a/patches/server/0238-Optimize-BlockPosition-helper-methods.patch b/patches/server/0238-Optimize-BlockPosition-helper-methods.patch index 892d0f155408..43c92ef89eb1 100644 --- a/patches/server/0238-Optimize-BlockPosition-helper-methods.patch +++ b/patches/server/0238-Optimize-BlockPosition-helper-methods.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimize BlockPosition helper methods Resolves #1338 diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 1834f3efb05fd70c8c1c67733bff514829ae1154..fbdbf61f49bd6867eea609d5572fb31ece094944 100644 +index 2bb5e51f71cbf66819d198505aa4a5ecffd246c6..ef5f897164136767e9c6dd61b76c2a1dedd4f350 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -132,67 +132,84 @@ public class BlockPos extends Vec3i { @@ -85,7 +85,7 @@ index 1834f3efb05fd70c8c1c67733bff514829ae1154..fbdbf61f49bd6867eea609d5572fb31e @Override public BlockPos relative(Direction direction) { -+ // Paper Start - Optimize BlockPosition ++ // Paper start - Optimize BlockPosition + switch(direction) { + case UP: + return new BlockPos(this.getX(), this.getY() + 1, this.getZ()); @@ -102,7 +102,7 @@ index 1834f3efb05fd70c8c1c67733bff514829ae1154..fbdbf61f49bd6867eea609d5572fb31e + default: return new BlockPos(this.getX() + direction.getStepX(), this.getY() + direction.getStepY(), this.getZ() + direction.getStepZ()); + } -+ // Paper End ++ // Paper end } @Override diff --git a/patches/server/0307-Allow-Saving-of-Oversized-Chunks.patch b/patches/server/0307-Allow-Saving-of-Oversized-Chunks.patch index 56f3a3abe810..6d5da9f63e04 100644 --- a/patches/server/0307-Allow-Saving-of-Oversized-Chunks.patch +++ b/patches/server/0307-Allow-Saving-of-Oversized-Chunks.patch @@ -141,7 +141,7 @@ index 2a7f17726a161ddbcd0397fb4332de6980199c38..72dacdc271325c814fb43cd6daaf3a20 private final ChunkPos pos; diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 465ad0bae446a20e941e8f2dbf2d85f2627482b9..c46320794e9673d7ff24aae5e9086cc90988791c 100644 +index 465ad0bae446a20e941e8f2dbf2d85f2627482b9..2ab7060f5c9a54bc7beb819f381a202c977f0a80 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -121,6 +121,71 @@ public class RegionFileStorage implements AutoCloseable { @@ -211,7 +211,7 @@ index 465ad0bae446a20e941e8f2dbf2d85f2627482b9..c46320794e9673d7ff24aae5e9086cc9 + } + } + -+ // Paper End ++ // Paper end + @Nullable public CompoundTag read(ChunkPos pos) throws IOException { diff --git a/patches/server/0473-Item-no-age-no-player-pickup.patch b/patches/server/0473-Item-no-age-no-player-pickup.patch index f7228c3b9950..1fffbaf558e7 100644 --- a/patches/server/0473-Item-no-age-no-player-pickup.patch +++ b/patches/server/0473-Item-no-age-no-player-pickup.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item no age & no player pickup diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -index 4456b7c438cadb4bfabad030b6871b3a8a7fd439..cbdac5a439795d429a1364a7eafc4783cff51d54 100644 +index 5620a0849fda49313c68edfd747fedd09641a3d5..4a15c3786edbfeae3367c0b20fb6aee11d62aea6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java @@ -9,6 +9,11 @@ import org.bukkit.inventory.ItemStack; @@ -44,6 +44,6 @@ index 4456b7c438cadb4bfabad030b6871b3a8a7fd439..cbdac5a439795d429a1364a7eafc4783 + public void setWillAge(boolean willAge) { + this.getHandle().age = willAge ? 0 : NO_AGE_TIME; + } - // Paper End + // Paper end @Override diff --git a/patches/server/0500-Implement-API-to-get-Material-from-Boats-and-Minecar.patch b/patches/server/0500-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 97% rename from patches/server/0500-Implement-API-to-get-Material-from-Boats-and-Minecar.patch rename to patches/server/0500-API-to-get-Material-from-Boats-and-Minecarts.patch index 754c03c42cdc..9bcb17ad1410 100644 --- a/patches/server/0500-Implement-API-to-get-Material-from-Boats-and-Minecar.patch +++ b/patches/server/0500-API-to-get-Material-from-Boats-and-Minecarts.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Madeline Miller Date: Thu, 31 Dec 2020 12:48:19 +1000 -Subject: [PATCH] Implement API to get Material from Boats and Minecarts +Subject: [PATCH] API to get Material from Boats and Minecarts diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java diff --git a/patches/server/0501-Cache-burn-durations.patch b/patches/server/0501-Cache-burn-durations.patch index 153295f240c3..ab7b04c1342b 100644 --- a/patches/server/0501-Cache-burn-durations.patch +++ b/patches/server/0501-Cache-burn-durations.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cache burn durations diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 939a192dd66d5fb8da5beada7c22eeca5a7589cd..7bcc4ede30f9cd1af2b0560bd3eca18e11a5524c 100644 +index 939a192dd66d5fb8da5beada7c22eeca5a7589cd..5c65be04ac88f1308eae6a8cde36d5f7e8aad879 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -134,7 +134,13 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @@ -18,7 +18,7 @@ index 939a192dd66d5fb8da5beada7c22eeca5a7589cd..7bcc4ede30f9cd1af2b0560bd3eca18e + if(cachedBurnDurations != null) { + return cachedBurnDurations; + } -+ // Paper end ++ // Paper end - cache burn durations Map map = Maps.newLinkedHashMap(); AbstractFurnaceBlockEntity.add(map, (ItemLike) Items.LAVA_BUCKET, 20000); @@ -30,7 +30,7 @@ index 939a192dd66d5fb8da5beada7c22eeca5a7589cd..7bcc4ede30f9cd1af2b0560bd3eca18e + // Paper start - cache burn durations + cachedBurnDurations = com.google.common.collect.ImmutableMap.copyOf(map); + return cachedBurnDurations; -+ // Paper end ++ // Paper end - cache burn durations } // CraftBukkit start - add fields and methods diff --git a/patches/server/0502-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0502-Allow-disabling-mob-spawner-spawn-egg-transformation.patch index 7580ba7931f5..40171ab9205a 100644 --- a/patches/server/0502-Allow-disabling-mob-spawner-spawn-egg-transformation.patch +++ b/patches/server/0502-Allow-disabling-mob-spawner-spawn-egg-transformation.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Allow disabling mob spawner spawn egg transformation diff --git a/src/main/java/net/minecraft/world/item/SpawnEggItem.java b/src/main/java/net/minecraft/world/item/SpawnEggItem.java -index 8176b64e49166cc24ef7f011881fda38bc68c2a4..4f10f801dc126e9135432939b6663770c0e7a0bc 100644 +index 8176b64e49166cc24ef7f011881fda38bc68c2a4..3bfbf7daa190b03f978b9fc72233c18c383b6659 100644 --- a/src/main/java/net/minecraft/world/item/SpawnEggItem.java +++ b/src/main/java/net/minecraft/world/item/SpawnEggItem.java @@ -63,6 +63,8 @@ public class SpawnEggItem extends Item { EntityType entitytypes; if (tileentity instanceof Spawner) { -+ if (world.paperConfig().entities.spawning.disableMobSpawnerSpawnEggTransformation) return InteractionResult.FAIL; // Paper ++ if (world.paperConfig().entities.spawning.disableMobSpawnerSpawnEggTransformation) return InteractionResult.FAIL; // Paper - Allow disabling mob spawner spawn egg transformation + Spawner spawner = (Spawner) tileentity; diff --git a/patches/server/0504-Implement-PlayerFlowerPotManipulateEvent.patch b/patches/server/0504-Add-PlayerFlowerPotManipulateEvent.patch similarity index 87% rename from patches/server/0504-Implement-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0504-Add-PlayerFlowerPotManipulateEvent.patch index 112c7c7ddeb4..478c953ad583 100644 --- a/patches/server/0504-Implement-PlayerFlowerPotManipulateEvent.patch +++ b/patches/server/0504-Add-PlayerFlowerPotManipulateEvent.patch @@ -1,18 +1,18 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MisterVector Date: Tue, 13 Aug 2019 19:45:06 -0700 -Subject: [PATCH] Implement PlayerFlowerPotManipulateEvent +Subject: [PATCH] Add PlayerFlowerPotManipulateEvent diff --git a/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java b/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java -index c450faf8c043665eab020141f3c27e3d9890cb86..d667526aa8132d34437f00dff5457ca9f73cef00 100644 +index c450faf8c043665eab020141f3c27e3d9890cb86..8684b28a0aa4ec9b2a7f15d07410264cf030a19c 100644 --- a/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FlowerPotBlock.java @@ -66,6 +66,25 @@ public class FlowerPotBlock extends Block { boolean bl = blockState.is(Blocks.AIR); boolean bl2 = this.isEmpty(); if (bl != bl2) { -+ // Paper start ++ // Paper start - Add PlayerFlowerPotManipulateEvent + org.bukkit.entity.Player player1 = (org.bukkit.entity.Player) player.getBukkitEntity(); + boolean placing = bl2; + org.bukkit.block.Block bukkitblock = org.bukkit.craftbukkit.block.CraftBlock.at(world, pos); @@ -30,7 +30,7 @@ index c450faf8c043665eab020141f3c27e3d9890cb86..d667526aa8132d34437f00dff5457ca9 + + return InteractionResult.PASS; + } -+ // Paper end ++ // Paper end - Add PlayerFlowerPotManipulateEvent if (bl2) { world.setBlock(pos, blockState, 3); player.awardStat(Stats.POT_FLOWER); diff --git a/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch index f5e0fb2f2559..66e2052f2c7f 100644 --- a/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch +++ b/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch @@ -11,7 +11,7 @@ Subject: [PATCH] Fix interact event not being called sometimes Co-authored-by: Moulberry diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3683e3b56da96e5528d63319892b5ec76075d86c..48815e94a0eacbdd03ea8630ae4a53f1a4747520 100644 +index 3683e3b56da96e5528d63319892b5ec76075d86c..046ee4ce24248d1b24ee4e731324f6d1d600da7e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1765,7 +1765,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -19,7 +19,7 @@ index 3683e3b56da96e5528d63319892b5ec76075d86c..48815e94a0eacbdd03ea8630ae4a53f1 this.player.sendSystemMessage(ichatmutablecomponent, true); - } else if (enuminteractionresult.shouldSwing()) { -+ } else if (enuminteractionresult.shouldSwing() && !this.player.gameMode.interactResult) { // Paper ++ } else if (enuminteractionresult.shouldSwing() && !this.player.gameMode.interactResult) { // Paper - Call interact event this.player.swing(enumhand, true); } } @@ -28,21 +28,21 @@ index 3683e3b56da96e5528d63319892b5ec76075d86c..48815e94a0eacbdd03ea8630ae4a53f1 // SPIGOT-5607: Only call interact event if no block or entity is being clicked. Use bukkit ray trace method, because it handles blocks and entities at the same time // SPIGOT-7429: Make sure to call PlayerInteractEvent for spectators and non-pickable entities - org.bukkit.util.RayTraceResult result = this.player.level().getWorld().rayTrace(origin, origin.getDirection(), d3, org.bukkit.FluidCollisionMode.NEVER, false, 0.1, entity -> { -+ org.bukkit.util.RayTraceResult result = this.player.level().getWorld().rayTrace(origin, origin.getDirection(), d3, org.bukkit.FluidCollisionMode.NEVER, false, 0.0, entity -> { // Paper - change raySize from 0.1 to 0.0 ++ org.bukkit.util.RayTraceResult result = this.player.level().getWorld().rayTrace(origin, origin.getDirection(), d3, org.bukkit.FluidCollisionMode.NEVER, false, 0.0, entity -> { // Paper - Call interact event; change raySize from 0.1 to 0.0 Entity handle = ((CraftEntity) entity).getHandle(); return entity != this.player.getBukkitEntity() && this.player.getBukkitEntity().canSee(entity) && !handle.isSpectator() && handle.isPickable() && !handle.isPassengerOfSameVehicle(this.player); }); if (result == null) { CraftEventFactory.callPlayerInteractEvent(this.player, Action.LEFT_CLICK_AIR, this.player.getInventory().getSelected(), InteractionHand.MAIN_HAND); - } -+ } else { // Paper start - Fix interact event not being called sometimes ++ } else { // Paper start - Call interact event + GameType gameType = this.player.gameMode.getGameModeForPlayer(); + if (gameType == GameType.ADVENTURE && result.getHitBlock() != null) { + CraftEventFactory.callPlayerInteractEvent(this.player, Action.LEFT_CLICK_BLOCK, ((org.bukkit.craftbukkit.block.CraftBlock) result.getHitBlock()).getPosition(), org.bukkit.craftbukkit.block.CraftBlock.blockFaceToNotch(result.getHitBlockFace()), this.player.getInventory().getSelected(), InteractionHand.MAIN_HAND); + } else if (gameType != GameType.CREATIVE && result.getHitEntity() != null && origin.toVector().distanceSquared(result.getHitPosition()) > 3.0D * 3.0D) { + CraftEventFactory.callPlayerInteractEvent(this.player, Action.LEFT_CLICK_AIR, this.player.getInventory().getSelected(), InteractionHand.MAIN_HAND); + } -+ } // Paper end ++ } // Paper end - Call interact event // Arm swing animation PlayerAnimationEvent event = new PlayerAnimationEvent(this.getCraftPlayer(), (packet.getHand() == InteractionHand.MAIN_HAND) ? PlayerAnimationType.ARM_SWING : PlayerAnimationType.OFF_ARM_SWING); diff --git a/patches/server/0507-Fix-nerfed-slime-when-splitting.patch b/patches/server/0507-Fix-nerfed-slime-when-splitting.patch index 02b201e9ce83..387c55135a9c 100644 --- a/patches/server/0507-Fix-nerfed-slime-when-splitting.patch +++ b/patches/server/0507-Fix-nerfed-slime-when-splitting.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Fix nerfed slime when splitting diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index fa014c04cc51a55345a1c50098f486161051741d..37724831ba9db2d0fb2e7756816e0355bc760815 100644 +index fa014c04cc51a55345a1c50098f486161051741d..a89dec53d68579271d2a259e1a53537262bd0df6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java @@ -243,6 +243,7 @@ public class Slime extends Mob implements Enemy { entityslime.setPersistenceRequired(); } -+ entityslime.aware = this.aware; // Paper ++ entityslime.aware = this.aware; // Paper - Fix nerfed slime when splitting entityslime.setCustomName(ichatbasecomponent); entityslime.setNoAi(flag); entityslime.setInvulnerable(this.isInvulnerable()); diff --git a/patches/server/0508-Add-EntityLoadCrossbowEvent.patch b/patches/server/0508-Add-EntityLoadCrossbowEvent.patch index 07e5946fbfc7..72f3ed09fbb2 100644 --- a/patches/server/0508-Add-EntityLoadCrossbowEvent.patch +++ b/patches/server/0508-Add-EntityLoadCrossbowEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityLoadCrossbowEvent diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java -index ba570f1c9654e1004e068a1efe2118f36c954505..eede02c3f125d230af537bb67bebed9b88f7d1b4 100644 +index ba570f1c9654e1004e068a1efe2118f36c954505..06689ee8799079510a1a4e7b68029b9629e318fb 100644 --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java @@ -89,7 +89,14 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { @@ -13,14 +13,14 @@ index ba570f1c9654e1004e068a1efe2118f36c954505..eede02c3f125d230af537bb67bebed9b float f = CrossbowItem.getPowerForTime(j, stack); - if (f >= 1.0F && !CrossbowItem.isCharged(stack) && CrossbowItem.tryLoadProjectiles(user, stack)) { -+ // Paper start - EntityLoadCrossbowEvent ++ // Paper start - Add EntityLoadCrossbowEvent + if (f >= 1.0F && !CrossbowItem.isCharged(stack) /*&& CrossbowItem.tryLoadProjectiles(entityliving, itemstack)*/) { + final io.papermc.paper.event.entity.EntityLoadCrossbowEvent event = new io.papermc.paper.event.entity.EntityLoadCrossbowEvent(user.getBukkitLivingEntity(), stack.asBukkitMirror(), user.getUsedItemHand() == InteractionHand.MAIN_HAND ? org.bukkit.inventory.EquipmentSlot.HAND : org.bukkit.inventory.EquipmentSlot.OFF_HAND); + if (!event.callEvent() || !tryLoadProjectiles(user, stack, event.shouldConsumeItem())) { + if (user instanceof ServerPlayer player) player.containerMenu.sendAllDataToRemote(); + return; + } -+ // Paper end ++ // Paper end - Add EntityLoadCrossbowEvent CrossbowItem.setCharged(stack, true); SoundSource soundcategory = user instanceof Player ? SoundSource.PLAYERS : SoundSource.HOSTILE; @@ -28,17 +28,17 @@ index ba570f1c9654e1004e068a1efe2118f36c954505..eede02c3f125d230af537bb67bebed9b } -+ @io.papermc.paper.annotation.DoNotUse // Paper ++ @io.papermc.paper.annotation.DoNotUse // Paper - Add EntityLoadCrossbowEvent private static boolean tryLoadProjectiles(LivingEntity shooter, ItemStack crossbow) { -+ // Paper start ++ // Paper start - Add EntityLoadCrossbowEvent + return CrossbowItem.tryLoadProjectiles(shooter, crossbow, true); + } + private static boolean tryLoadProjectiles(LivingEntity shooter, ItemStack crossbow, boolean consume) { -+ // Paper end ++ // Paper end - Add EntityLoadCrossbowEvent int i = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.MULTISHOT, crossbow); int j = i == 0 ? 1 : 3; - boolean flag = shooter instanceof Player && ((Player) shooter).getAbilities().instabuild; -+ boolean flag = !consume || shooter instanceof Player && ((Player) shooter).getAbilities().instabuild; // Paper - add consume ++ boolean flag = !consume || shooter instanceof Player && ((Player) shooter).getAbilities().instabuild; // Paper - Add EntityLoadCrossbowEvent ItemStack itemstack1 = shooter.getProjectile(crossbow); ItemStack itemstack2 = itemstack1.copy(); diff --git a/patches/server/0509-Added-WorldGameRuleChangeEvent.patch b/patches/server/0509-Add-WorldGameRuleChangeEvent.patch similarity index 81% rename from patches/server/0509-Added-WorldGameRuleChangeEvent.patch rename to patches/server/0509-Add-WorldGameRuleChangeEvent.patch index 02a675af5cbc..7780bdbe4f6e 100644 --- a/patches/server/0509-Added-WorldGameRuleChangeEvent.patch +++ b/patches/server/0509-Add-WorldGameRuleChangeEvent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 20 Dec 2020 16:41:44 -0800 -Subject: [PATCH] Added WorldGameRuleChangeEvent +Subject: [PATCH] Add WorldGameRuleChangeEvent diff --git a/src/main/java/net/minecraft/server/commands/GameRuleCommand.java b/src/main/java/net/minecraft/server/commands/GameRuleCommand.java -index c8c358531dbc167e249bac2af246c5e34fbdd4df..307854468ac985560b4c63b6e9897c444a7b8a3a 100644 +index c8c358531dbc167e249bac2af246c5e34fbdd4df..10c1790226e25da3b9b599c9a40de57d5727ddc4 100644 --- a/src/main/java/net/minecraft/server/commands/GameRuleCommand.java +++ b/src/main/java/net/minecraft/server/commands/GameRuleCommand.java @@ -33,7 +33,7 @@ public class GameRuleCommand { @@ -13,12 +13,12 @@ index c8c358531dbc167e249bac2af246c5e34fbdd4df..307854468ac985560b4c63b6e9897c44 T t0 = commandlistenerwrapper.getLevel().getGameRules().getRule(key); // CraftBukkit - t0.setFromArgument(context, "value"); -+ t0.setFromArgument(context, "value", key); // Paper ++ t0.setFromArgument(context, "value", key); // Paper - Add WorldGameRuleChangeEvent commandlistenerwrapper.sendSuccess(() -> { return Component.translatable("commands.gamerule.set", key.getId(), t0.toString()); }, true); diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index 334001cb749600c973c82391e1c11f0e40bd2dfb..2a480026c3bfb06e6556fe5b11d9712c8e02debe 100644 +index 334001cb749600c973c82391e1c11f0e40bd2dfb..f3cdf1fa7731eb7bb1cb89aa6a37204d81257cb0 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java @@ -285,10 +285,10 @@ public class GameRules { @@ -26,12 +26,12 @@ index 334001cb749600c973c82391e1c11f0e40bd2dfb..2a480026c3bfb06e6556fe5b11d9712c } - protected abstract void updateFromArgument(CommandContext context, String name); -+ protected abstract void updateFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey); // Paper ++ protected abstract void updateFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey); // Paper - Add WorldGameRuleChangeEvent - public void setFromArgument(CommandContext context, String name) { - this.updateFromArgument(context, name); -+ public void setFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey) { // Paper -+ this.updateFromArgument(context, name, gameRuleKey); // Paper ++ public void setFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey) { // Paper - Add WorldGameRuleChangeEvent ++ this.updateFromArgument(context, name, gameRuleKey); // Paper - Add WorldGameRuleChangeEvent this.onChanged(((CommandSourceStack) context.getSource()).getServer()); } @@ -41,11 +41,11 @@ index 334001cb749600c973c82391e1c11f0e40bd2dfb..2a480026c3bfb06e6556fe5b11d9712c @Override - protected void updateFromArgument(CommandContext context, String name) { - this.value = BoolArgumentType.getBool(context, name); -+ protected void updateFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey) { // Paper start ++ protected void updateFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey) { // Paper start - Add WorldGameRuleChangeEvent + io.papermc.paper.event.world.WorldGameRuleChangeEvent event = new io.papermc.paper.event.world.WorldGameRuleChangeEvent(context.getSource().getBukkitWorld(), context.getSource().getBukkitSender(), (org.bukkit.GameRule) org.bukkit.GameRule.getByName(gameRuleKey.toString()), String.valueOf(BoolArgumentType.getBool(context, name))); + if (!event.callEvent()) return; + this.value = Boolean.parseBoolean(event.getValue()); -+ // Paper end ++ // Paper end - Add WorldGameRuleChangeEvent } public boolean get() { @@ -55,30 +55,30 @@ index 334001cb749600c973c82391e1c11f0e40bd2dfb..2a480026c3bfb06e6556fe5b11d9712c @Override - protected void updateFromArgument(CommandContext context, String name) { - this.value = IntegerArgumentType.getInteger(context, name); -+ protected void updateFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey) { // Paper start ++ protected void updateFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey) { // Paper start - Add WorldGameRuleChangeEvent + io.papermc.paper.event.world.WorldGameRuleChangeEvent event = new io.papermc.paper.event.world.WorldGameRuleChangeEvent(context.getSource().getBukkitWorld(), context.getSource().getBukkitSender(), (org.bukkit.GameRule) org.bukkit.GameRule.getByName(gameRuleKey.toString()), String.valueOf(IntegerArgumentType.getInteger(context, name))); + if (!event.callEvent()) return; + this.value = Integer.parseInt(event.getValue()); -+ // Paper end ++ // Paper end - Add WorldGameRuleChangeEvent } public int get() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 6a6bdc23767d4b0413352eda860f3fd3076f492e..b70239ff42f5c7f4754bae311385e4804891fd86 100644 +index 6a6bdc23767d4b0413352eda860f3fd3076f492e..a99d7a75ce12ffb49a6489044db74d18080b2b35 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1930,8 +1930,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { if (!this.isGameRule(rule)) return false; -+ // Paper start ++ // Paper start - Add WorldGameRuleChangeEvent + GameRule gameRule = GameRule.getByName(rule); + io.papermc.paper.event.world.WorldGameRuleChangeEvent event = new io.papermc.paper.event.world.WorldGameRuleChangeEvent(this, null, gameRule, value); + if (!event.callEvent()) return false; -+ // Paper end ++ // Paper end - Add WorldGameRuleChangeEvent GameRules.Value handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule)); - handle.deserialize(value); -+ handle.deserialize(event.getValue()); // Paper ++ handle.deserialize(event.getValue()); // Paper - Add WorldGameRuleChangeEvent handle.onChanged(this.getHandle().getServer()); return true; } @@ -86,13 +86,13 @@ index 6a6bdc23767d4b0413352eda860f3fd3076f492e..b70239ff42f5c7f4754bae311385e480 if (!this.isGameRule(rule.getName())) return false; -+ // Paper start ++ // Paper start - Add WorldGameRuleChangeEvent + io.papermc.paper.event.world.WorldGameRuleChangeEvent event = new io.papermc.paper.event.world.WorldGameRuleChangeEvent(this, null, rule, String.valueOf(newValue)); + if (!event.callEvent()) return false; -+ // Paper end ++ // Paper end - Add WorldGameRuleChangeEvent GameRules.Value handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule.getName())); - handle.deserialize(newValue.toString()); -+ handle.deserialize(event.getValue()); // Paper ++ handle.deserialize(event.getValue()); // Paper - Add WorldGameRuleChangeEvent handle.onChanged(this.getHandle().getServer()); return true; } diff --git a/patches/server/0510-Added-ServerResourcesReloadedEvent.patch b/patches/server/0510-Add-ServerResourcesReloadedEvent.patch similarity index 84% rename from patches/server/0510-Added-ServerResourcesReloadedEvent.patch rename to patches/server/0510-Add-ServerResourcesReloadedEvent.patch index 1bfd02f43ffc..260e67aa8192 100644 --- a/patches/server/0510-Added-ServerResourcesReloadedEvent.patch +++ b/patches/server/0510-Add-ServerResourcesReloadedEvent.patch @@ -1,24 +1,24 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Wed, 2 Dec 2020 20:04:01 -0800 -Subject: [PATCH] Added ServerResourcesReloadedEvent +Subject: [PATCH] Add ServerResourcesReloadedEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6a23b1ad4c7fd9deaff05e8d00ad6a77a6ed0cec..a75c6825eaee07bbde9b7c81c4232bc982a98326 100644 +index c0546f796cac661684e3fe394d93f1a7d2a55a74..8d3b3524a939d483aa4d451a8ca0fed3a9c87d26 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2094,7 +2094,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop reloadResources(Collection dataPacks) { + return this.reloadResources(dataPacks, io.papermc.paper.event.server.ServerResourcesReloadedEvent.Cause.PLUGIN); + } + public CompletableFuture reloadResources(Collection dataPacks, io.papermc.paper.event.server.ServerResourcesReloadedEvent.Cause cause) { -+ // Paper end ++ // Paper end - Add ServerResourcesReloadedEvent RegistryAccess.Frozen iregistrycustom_dimension = this.registries.getAccessForLoading(RegistryLayer.RELOADABLE); CompletableFuture completablefuture = CompletableFuture.supplyAsync(() -> { Stream stream = dataPacks.stream(); // CraftBukkit - decompile error @@ -26,12 +26,12 @@ index 6a23b1ad4c7fd9deaff05e8d00ad6a77a6ed0cec..a75c6825eaee07bbde9b7c81c4232bc9 this.functionManager.replaceLibrary(this.resources.managers.getFunctionLibrary()); this.structureTemplateManager.onResourceManagerReload(this.resources.resourceManager); org.bukkit.craftbukkit.block.data.CraftBlockData.reloadCache(); // Paper - cache block data strings, they can be defined by datapacks so refresh it here -+ new io.papermc.paper.event.server.ServerResourcesReloadedEvent(cause).callEvent(); // Paper - fire after everything has been reloaded ++ new io.papermc.paper.event.server.ServerResourcesReloadedEvent(cause).callEvent(); // Paper - Add ServerResourcesReloadedEvent; fire after everything has been reloaded }, this); if (this.isSameThread()) { diff --git a/src/main/java/net/minecraft/server/commands/ReloadCommand.java b/src/main/java/net/minecraft/server/commands/ReloadCommand.java -index fa18d018a8458b30c0048f7e59aea39f928d974a..87d32af973b84fbbea5dcdb34273f3b3fc82d054 100644 +index fa18d018a8458b30c0048f7e59aea39f928d974a..c020c86194723a5c89816f91e0b7c5eeaf132b7e 100644 --- a/src/main/java/net/minecraft/server/commands/ReloadCommand.java +++ b/src/main/java/net/minecraft/server/commands/ReloadCommand.java @@ -20,7 +20,7 @@ public class ReloadCommand { @@ -39,7 +39,7 @@ index fa18d018a8458b30c0048f7e59aea39f928d974a..87d32af973b84fbbea5dcdb34273f3b3 public static void reloadPacks(Collection dataPacks, CommandSourceStack source) { - source.getServer().reloadResources(dataPacks).exceptionally((throwable) -> { -+ source.getServer().reloadResources(dataPacks, io.papermc.paper.event.server.ServerResourcesReloadedEvent.Cause.COMMAND).exceptionally((throwable) -> { ++ source.getServer().reloadResources(dataPacks, io.papermc.paper.event.server.ServerResourcesReloadedEvent.Cause.COMMAND).exceptionally((throwable) -> { // Paper - Add ServerResourcesReloadedEvent ReloadCommand.LOGGER.warn("Failed to execute reload", throwable); source.sendFailure(Component.translatable("commands.reload.failure")); return null; @@ -48,7 +48,7 @@ index fa18d018a8458b30c0048f7e59aea39f928d974a..87d32af973b84fbbea5dcdb34273f3b3 Collection collection = resourcepackrepository.getSelectedIds(); Collection collection1 = ReloadCommand.discoverNewPacks(resourcepackrepository, savedata, collection); - minecraftserver.reloadResources(collection1); -+ minecraftserver.reloadResources(collection1, io.papermc.paper.event.server.ServerResourcesReloadedEvent.Cause.PLUGIN); // Paper ++ minecraftserver.reloadResources(collection1, io.papermc.paper.event.server.ServerResourcesReloadedEvent.Cause.PLUGIN); // Paper - Add ServerResourcesReloadedEvent } // CraftBukkit end diff --git a/patches/server/0511-Added-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0511-Add-world-settings-for-mobs-picking-up-loot.patch similarity index 84% rename from patches/server/0511-Added-world-settings-for-mobs-picking-up-loot.patch rename to patches/server/0511-Add-world-settings-for-mobs-picking-up-loot.patch index 9198f417c1d9..2f9929da44d1 100644 --- a/patches/server/0511-Added-world-settings-for-mobs-picking-up-loot.patch +++ b/patches/server/0511-Add-world-settings-for-mobs-picking-up-loot.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 28 Nov 2020 18:43:52 -0800 -Subject: [PATCH] Added world settings for mobs picking up loot +Subject: [PATCH] Add world settings for mobs picking up loot diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -index dadb419a04b343d6ba59353c6caa1a50aa07b67f..6be9e8d693bbb084791d7b30a1891ddb803d6b02 100644 +index dadb419a04b343d6ba59353c6caa1a50aa07b67f..117d466e1b4f545f6fd5006c3822c5586db96032 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java @@ -153,7 +153,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -13,12 +13,12 @@ index dadb419a04b343d6ba59353c6caa1a50aa07b67f..6be9e8d693bbb084791d7b30a1891ddb this.populateDefaultEquipmentEnchantments(randomsource, difficulty); this.reassessWeaponGoal(); - this.setCanPickUpLoot(randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); -+ this.setCanPickUpLoot(this.level().paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper ++ this.setCanPickUpLoot(this.level().paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper - Add world settings for mobs picking up loot if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) { LocalDate localdate = LocalDate.now(); int i = localdate.get(ChronoField.DAY_OF_MONTH); diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index c82730d52f2ec6cb4a5e17fa512be6497f3ab6dc..8d66d90973931575a6c071965d582da6a9d30b10 100644 +index c82730d52f2ec6cb4a5e17fa512be6497f3ab6dc..c635ca601a4f4a3c0684ab3b6c3a568c6b5515f7 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -507,7 +507,7 @@ public class Zombie extends Monster { @@ -26,7 +26,7 @@ index c82730d52f2ec6cb4a5e17fa512be6497f3ab6dc..8d66d90973931575a6c071965d582da6 float f = difficulty.getSpecialMultiplier(); - this.setCanPickUpLoot(randomsource.nextFloat() < 0.55F * f); -+ this.setCanPickUpLoot(this.level().paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.zombies || randomsource.nextFloat() < 0.55F * f); // Paper ++ this.setCanPickUpLoot(this.level().paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.zombies || randomsource.nextFloat() < 0.55F * f); // Paper - Add world settings for mobs picking up loot if (object == null) { object = new Zombie.ZombieGroupData(Zombie.getSpawnAsBabyOdds(randomsource), true); } diff --git a/patches/server/0512-Implemented-BlockFailedDispenseEvent.patch b/patches/server/0512-Add-BlockFailedDispenseEvent.patch similarity index 85% rename from patches/server/0512-Implemented-BlockFailedDispenseEvent.patch rename to patches/server/0512-Add-BlockFailedDispenseEvent.patch index 04cf1f8abd8f..45d06c51254d 100644 --- a/patches/server/0512-Implemented-BlockFailedDispenseEvent.patch +++ b/patches/server/0512-Add-BlockFailedDispenseEvent.patch @@ -1,33 +1,33 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: TheViperShow <29604693+TheViperShow@users.noreply.github.com> Date: Wed, 22 Apr 2020 09:40:38 +0200 -Subject: [PATCH] Implemented BlockFailedDispenseEvent +Subject: [PATCH] Add BlockFailedDispenseEvent diff --git a/src/main/java/net/minecraft/world/level/block/DispenserBlock.java b/src/main/java/net/minecraft/world/level/block/DispenserBlock.java -index d77ca08832105e82cee265eea222e0d64a8876ef..21c37ad365e09a296c3e7a2d0cde7a29ced09c33 100644 +index d77ca08832105e82cee265eea222e0d64a8876ef..5593a0aa9e618071b6521b213dde0f628348c3dc 100644 --- a/src/main/java/net/minecraft/world/level/block/DispenserBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DispenserBlock.java @@ -95,8 +95,10 @@ public class DispenserBlock extends BaseEntityBlock { int i = tileentitydispenser.getRandomSlot(world.random); if (i < 0) { -+ if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFailedDispenseEvent(world, pos)) { // Paper - BlockFailedDispenseEvent is called here ++ if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFailedDispenseEvent(world, pos)) { // Paper - Add BlockFailedDispenseEvent world.levelEvent(1001, pos, 0); world.gameEvent(GameEvent.BLOCK_ACTIVATE, pos, GameEvent.Context.of(tileentitydispenser.getBlockState())); -+ } // Paper ++ } // Paper - Add BlockFailedDispenseEvent } else { ItemStack itemstack = tileentitydispenser.getItem(i); DispenseItemBehavior idispensebehavior = this.getDispenseMethod(itemstack); diff --git a/src/main/java/net/minecraft/world/level/block/DropperBlock.java b/src/main/java/net/minecraft/world/level/block/DropperBlock.java -index 913ed110d8402d377152753325901eb7f3ac82d6..675644974ae6fb5380a6496a2ac3ec4d1ef7c924 100644 +index 913ed110d8402d377152753325901eb7f3ac82d6..1d13f8a1009d6eda351c697052d499d594a6aaa8 100644 --- a/src/main/java/net/minecraft/world/level/block/DropperBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DropperBlock.java @@ -59,6 +59,7 @@ public class DropperBlock extends DispenserBlock { int i = tileentitydispenser.getRandomSlot(world.random); if (i < 0) { -+ if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFailedDispenseEvent(world, pos)) // Paper - BlockFailedDispenseEvent is called here ++ if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFailedDispenseEvent(world, pos)) // Paper - Add BlockFailedDispenseEvent world.levelEvent(1001, pos, 0); } else { ItemStack itemstack = tileentitydispenser.getItem(i); diff --git a/patches/server/0513-Added-PlayerLecternPageChangeEvent.patch b/patches/server/0513-Add-PlayerLecternPageChangeEvent.patch similarity index 84% rename from patches/server/0513-Added-PlayerLecternPageChangeEvent.patch rename to patches/server/0513-Add-PlayerLecternPageChangeEvent.patch index 57485f4ee746..2e62d2becf99 100644 --- a/patches/server/0513-Added-PlayerLecternPageChangeEvent.patch +++ b/patches/server/0513-Add-PlayerLecternPageChangeEvent.patch @@ -1,18 +1,18 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Mon, 23 Nov 2020 12:58:51 -0800 -Subject: [PATCH] Added PlayerLecternPageChangeEvent +Subject: [PATCH] Add PlayerLecternPageChangeEvent diff --git a/src/main/java/net/minecraft/world/inventory/LecternMenu.java b/src/main/java/net/minecraft/world/inventory/LecternMenu.java -index 19858ecd7cfaaf0fb09552292bf573bb02b3a6ec..84795cd53720a618360644702b22abe8d015dadc 100644 +index 19858ecd7cfaaf0fb09552292bf573bb02b3a6ec..ccba06c419732c63f6b255f5f8c1f7a95f3ecbee 100644 --- a/src/main/java/net/minecraft/world/inventory/LecternMenu.java +++ b/src/main/java/net/minecraft/world/inventory/LecternMenu.java @@ -64,6 +64,7 @@ public class LecternMenu extends AbstractContainerMenu { @Override public boolean clickMenuButton(net.minecraft.world.entity.player.Player player, int id) { int j; -+ io.papermc.paper.event.player.PlayerLecternPageChangeEvent playerLecternPageChangeEvent; CraftInventoryLectern bukkitView; // Paper ++ io.papermc.paper.event.player.PlayerLecternPageChangeEvent playerLecternPageChangeEvent; CraftInventoryLectern bukkitView; // Paper - Add PlayerLecternPageChangeEvent if (id >= 100) { j = id - 100; @@ -21,26 +21,26 @@ index 19858ecd7cfaaf0fb09552292bf573bb02b3a6ec..84795cd53720a618360644702b22abe8 case 1: j = this.lecternData.get(0); - this.setData(0, j - 1); -+ // Paper start ++ // Paper start - Add PlayerLecternPageChangeEvent + bukkitView = (CraftInventoryLectern) getBukkitView().getTopInventory(); + playerLecternPageChangeEvent = new io.papermc.paper.event.player.PlayerLecternPageChangeEvent((org.bukkit.entity.Player) player.getBukkitEntity(), bukkitView.getHolder(), bukkitView.getBook(), io.papermc.paper.event.player.PlayerLecternPageChangeEvent.PageChangeDirection.LEFT, j, j - 1); + if (!playerLecternPageChangeEvent.callEvent()) { + return false; + } + this.setData(0, playerLecternPageChangeEvent.getNewPage()); -+ // Paper end ++ // Paper end - Add PlayerLecternPageChangeEvent return true; case 2: j = this.lecternData.get(0); - this.setData(0, j + 1); -+ // Paper start ++ // Paper start - Add PlayerLecternPageChangeEvent + bukkitView = (CraftInventoryLectern) getBukkitView().getTopInventory(); + playerLecternPageChangeEvent = new io.papermc.paper.event.player.PlayerLecternPageChangeEvent((org.bukkit.entity.Player) player.getBukkitEntity(), bukkitView.getHolder(), bukkitView.getBook(), io.papermc.paper.event.player.PlayerLecternPageChangeEvent.PageChangeDirection.RIGHT, j, j + 1); + if (!playerLecternPageChangeEvent.callEvent()) { + return false; + } + this.setData(0, playerLecternPageChangeEvent.getNewPage()); -+ // Paper end ++ // Paper end - Add PlayerLecternPageChangeEvent return true; case 3: if (!player.mayBuild()) { diff --git a/patches/server/0514-Added-PlayerLoomPatternSelectEvent.patch b/patches/server/0514-Add-PlayerLoomPatternSelectEvent.patch similarity index 90% rename from patches/server/0514-Added-PlayerLoomPatternSelectEvent.patch rename to patches/server/0514-Add-PlayerLoomPatternSelectEvent.patch index 93e862a64345..11a0aa196d03 100644 --- a/patches/server/0514-Added-PlayerLoomPatternSelectEvent.patch +++ b/patches/server/0514-Add-PlayerLoomPatternSelectEvent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Wed, 25 Nov 2020 16:33:27 -0800 -Subject: [PATCH] Added PlayerLoomPatternSelectEvent +Subject: [PATCH] Add PlayerLoomPatternSelectEvent diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java -index 757ee83a0ec5d381eb328f31f3bef636a9b72d57..e28c1cdf4763e9db3e29b3c0f08d65f978017931 100644 +index 757ee83a0ec5d381eb328f31f3bef636a9b72d57..aee37b2fc205cef98d2ff0f42e9cba0a6de6bf45 100644 --- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java +++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java @@ -173,8 +173,35 @@ public class LoomMenu extends AbstractContainerMenu { @@ -14,7 +14,7 @@ index 757ee83a0ec5d381eb328f31f3bef636a9b72d57..e28c1cdf4763e9db3e29b3c0f08d65f9 if (id >= 0 && id < this.selectablePatterns.size()) { - this.selectedBannerPatternIndex.set(id); - this.setupResultSlot((Holder) this.selectablePatterns.get(id)); -+ // Paper start ++ // Paper start - Add PlayerLoomPatternSelectEvent + int selectablePatternIndex = id; + io.papermc.paper.event.player.PlayerLoomPatternSelectEvent event = new io.papermc.paper.event.player.PlayerLoomPatternSelectEvent((Player) player.getBukkitEntity(), ((CraftInventoryLoom) getBukkitView().getTopInventory()), org.bukkit.block.banner.PatternType.getByIdentifier(this.selectablePatterns.get(selectablePatternIndex).value().getHashname())); + if (!event.callEvent()) { @@ -42,7 +42,7 @@ index 757ee83a0ec5d381eb328f31f3bef636a9b72d57..e28c1cdf4763e9db3e29b3c0f08d65f9 + ((Player) player.getBukkitEntity()).updateInventory(); + this.selectedBannerPatternIndex.set(selectablePatternIndex); + this.setupResultSlot(java.util.Objects.requireNonNull(selectedPattern, "selectedPattern was null, this is unexpected")); -+ // Paper end ++ // Paper end - Add PlayerLoomPatternSelectEvent return true; } else { return false; diff --git a/patches/server/0515-Configurable-door-breaking-difficulty.patch b/patches/server/0515-Configurable-door-breaking-difficulty.patch index 63aebe80985b..a29c6a814bce 100644 --- a/patches/server/0515-Configurable-door-breaking-difficulty.patch +++ b/patches/server/0515-Configurable-door-breaking-difficulty.patch @@ -10,7 +10,7 @@ public net.minecraft.world.entity.monster.Zombie DOOR_BREAKING_PREDICATE Co-authored-by: Doc diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index 9fec5823d99d1ae8e41d9e21f7ddb8b8e94bf887..ad41bbbf5395ed18c2c9e1e692c7661a6e0cb98c 100644 +index 9fec5823d99d1ae8e41d9e21f7ddb8b8e94bf887..a6af5ac9d09834940d3dd4c80b16450b90484edb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -197,7 +197,7 @@ public class Vindicator extends AbstractIllager { @@ -18,12 +18,12 @@ index 9fec5823d99d1ae8e41d9e21f7ddb8b8e94bf887..ad41bbbf5395ed18c2c9e1e692c7661a static class VindicatorBreakDoorGoal extends BreakDoorGoal { public VindicatorBreakDoorGoal(Mob mob) { - super(mob, 6, Vindicator.DOOR_BREAKING_PREDICATE); -+ super(mob, 6, com.google.common.base.Predicates.in(mob.level().paperConfig().entities.behavior.doorBreakingDifficulty.getOrDefault(mob.getType(), mob.level().paperConfig().entities.behavior.doorBreakingDifficulty.get(EntityType.VINDICATOR)))); // Paper ++ super(mob, 6, com.google.common.base.Predicates.in(mob.level().paperConfig().entities.behavior.doorBreakingDifficulty.getOrDefault(mob.getType(), mob.level().paperConfig().entities.behavior.doorBreakingDifficulty.get(EntityType.VINDICATOR)))); // Paper - Configurable door breaking difficulty this.setFlags(EnumSet.of(Goal.Flag.MOVE)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 8d66d90973931575a6c071965d582da6a9d30b10..b31f6b267693c409d58eee688a3b79a1cf14e391 100644 +index c635ca601a4f4a3c0684ab3b6c3a568c6b5515f7..359319846c5f9c25e5e2b019777fd938165fd312 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -100,7 +100,7 @@ public class Zombie extends Monster { @@ -31,7 +31,7 @@ index 8d66d90973931575a6c071965d582da6a9d30b10..b31f6b267693c409d58eee688a3b79a1 public Zombie(EntityType type, Level world) { super(type, world); - this.breakDoorGoal = new BreakDoorGoal(this, Zombie.DOOR_BREAKING_PREDICATE); -+ this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(world.paperConfig().entities.behavior.doorBreakingDifficulty.getOrDefault(type, world.paperConfig().entities.behavior.doorBreakingDifficulty.get(EntityType.ZOMBIE)))); // Paper ++ this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(world.paperConfig().entities.behavior.doorBreakingDifficulty.getOrDefault(type, world.paperConfig().entities.behavior.doorBreakingDifficulty.get(EntityType.ZOMBIE)))); // Paper - Configurable door breaking difficulty } public Zombie(Level world) { diff --git a/patches/server/0517-Remove-stale-POIs.patch b/patches/server/0517-Remove-stale-POIs.patch index b7bb2e5aa767..53210a7ad415 100644 --- a/patches/server/0517-Remove-stale-POIs.patch +++ b/patches/server/0517-Remove-stale-POIs.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Remove stale POIs diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 902f3a7ae5ba9c15b634bb2f214be7d85c6d5a00..efbdcaff160e1c8e666d54a9babe35ac325ec8a5 100644 +index 902f3a7ae5ba9c15b634bb2f214be7d85c6d5a00..7b76cba12680d7a8720c597b3a98b08ee5313f63 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2103,6 +2103,11 @@ public class ServerLevel extends Level implements WorldGenLevel { }); optional1.ifPresent((holder) -> { this.getServer().execute(() -> { -+ // Paper start ++ // Paper start - Remove stale POIs + if (optional.isEmpty() && this.getPoiManager().exists(blockposition1, poiType -> true)) { + this.getPoiManager().remove(blockposition1); + } -+ // Paper end ++ // Paper end - Remove stale POIs this.getPoiManager().add(blockposition1, holder); DebugPackets.sendPoiAddedPacket(this, blockposition1); }); diff --git a/patches/server/0518-Fix-villager-boat-exploit.patch b/patches/server/0518-Fix-villager-boat-exploit.patch index f83f80d55a93..2f2ca31e427f 100644 --- a/patches/server/0518-Fix-villager-boat-exploit.patch +++ b/patches/server/0518-Fix-villager-boat-exploit.patch @@ -5,21 +5,21 @@ Subject: [PATCH] Fix villager boat exploit diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d727e401b311eea832315cc681fa7d73886c3f99..0c495698438e4dd29d4bcddb0c88978fc58db8f3 100644 +index d727e401b311eea832315cc681fa7d73886c3f99..617f8776797e07b5d2ad632b5e049b287984d504 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -604,6 +604,14 @@ public abstract class PlayerList { PlayerList.LOGGER.debug("Removing player mount"); entityplayer.stopRiding(); entity.getPassengersAndSelf().forEach((entity1) -> { -+ // Paper start ++ // Paper start - Fix villager boat exploit + if (entity1 instanceof net.minecraft.world.entity.npc.AbstractVillager villager) { + final net.minecraft.world.entity.player.Player human = villager.getTradingPlayer(); + if (human != null) { + villager.setTradingPlayer(null); + } + } -+ // Paper end ++ // Paper end - Fix villager boat exploit entity1.setRemoved(Entity.RemovalReason.UNLOADED_WITH_PLAYER); }); } diff --git a/patches/server/0519-Add-sendOpLevel-API.patch b/patches/server/0519-Add-sendOpLevel-API.patch index c7a574b1ac5c..3bf32f15f3bc 100644 --- a/patches/server/0519-Add-sendOpLevel-API.patch +++ b/patches/server/0519-Add-sendOpLevel-API.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0c495698438e4dd29d4bcddb0c88978fc58db8f3..3aeaf4cb425b141d1a90a40cdee95bc98b2aeb56 100644 +index 617f8776797e07b5d2ad632b5e049b287984d504..d80b05fb33d1f519923f8ef189ff9025335d9390 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1103,6 +1103,11 @@ public abstract class PlayerList { } private void sendPlayerPermissionLevel(ServerPlayer player, int permissionLevel) { -+ // Paper start - add recalculatePermissions parameter ++ // Paper start - Add sendOpLevel API + this.sendPlayerPermissionLevel(player, permissionLevel, true); + } + public void sendPlayerPermissionLevel(ServerPlayer player, int permissionLevel, boolean recalculatePermissions) { -+ // Paper end ++ // Paper end - Add sendOpLevel API if (player.connection != null) { byte b0; @@ -24,29 +24,29 @@ index 0c495698438e4dd29d4bcddb0c88978fc58db8f3..3aeaf4cb425b141d1a90a40cdee95bc9 player.connection.send(new ClientboundEntityEventPacket(player, b0)); } -+ if (recalculatePermissions) { // Paper ++ if (recalculatePermissions) { // Paper - Add sendOpLevel API player.getBukkitEntity().recalculatePermissions(); // CraftBukkit this.server.getCommands().sendCommands(player); -+ } // Paper ++ } // Paper - Add sendOpLevel API } public boolean isWhiteListed(GameProfile profile) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ba30c5e17a294cee9f408fdd4e31849c0e5d28ed..8a924ae677a93a177651aa1ec0728e3b8d5528a6 100644 +index ba30c5e17a294cee9f408fdd4e31849c0e5d28ed..298380e217f41f01d0818767a6d8f1da5a004037 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -633,6 +633,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } // Paper end -+ // Paper start - sendOpLevel API ++ // Paper start - Add sendOpLevel API + @Override + public void sendOpLevel(byte level) { + Preconditions.checkArgument(level >= 0 && level <= 4, "Level must be within [0, 4]"); + + this.getHandle().getServer().getPlayerList().sendPlayerPermissionLevel(this.getHandle(), level, false); + } -+ // Paper end - sendOpLevel API ++ // Paper end - Add sendOpLevel API + @Override public void setCompassTarget(Location loc) { diff --git a/patches/server/0522-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0522-Collision-option-for-requiring-a-player-participant.patch index c3fe393aff24..966dededfeae 100644 --- a/patches/server/0522-Collision-option-for-requiring-a-player-participant.patch +++ b/patches/server/0522-Collision-option-for-requiring-a-player-participant.patch @@ -5,38 +5,38 @@ Subject: [PATCH] Collision option for requiring a player participant diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5436949cd928303cf80b606c747f386f0189f774..025ec74fe0ada57e1809d7e16c27b3a08007ad78 100644 +index 3a8572ded5c9bdf621a8c16123707da9ceb70d54..1249e086d022a68e1d27a7731c0aff92f1457e43 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1934,6 +1934,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void push(Entity entity) { if (!this.isPassengerOfSameVehicle(entity)) { if (!entity.noPhysics && !this.noPhysics) { -+ if (this.level.paperConfig().collisions.onlyPlayersCollide && !(entity instanceof ServerPlayer || this instanceof ServerPlayer)) return; // Paper ++ if (this.level.paperConfig().collisions.onlyPlayersCollide && !(entity instanceof ServerPlayer || this instanceof ServerPlayer)) return; // Paper - Collision option for requiring a player participant double d0 = entity.getX() - this.getX(); double d1 = entity.getZ() - this.getZ(); double d2 = Mth.absMax(d0, d1); diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index 82ffd50017dc234a9718db551fca0e73a6deded0..9780232286052d2cbbd604e71caf47dfb81fc1dc 100644 +index 82ffd50017dc234a9718db551fca0e73a6deded0..71361cc7339483936b18d2e0e938669bf08d68d2 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java @@ -792,6 +792,7 @@ public abstract class AbstractMinecart extends VehicleEntity { public void push(Entity entity) { if (!this.level().isClientSide) { if (!entity.noPhysics && !this.noPhysics) { -+ if (!this.level().paperConfig().collisions.allowVehicleCollisions && this.level().paperConfig().collisions.onlyPlayersCollide && !(entity instanceof Player)) return; // Paper ++ if (!this.level().paperConfig().collisions.allowVehicleCollisions && this.level().paperConfig().collisions.onlyPlayersCollide && !(entity instanceof Player)) return; // Paper - Collision option for requiring a player participant if (!this.hasPassenger(entity)) { // CraftBukkit start VehicleEntityCollisionEvent collisionEvent = new VehicleEntityCollisionEvent((Vehicle) this.getBukkitEntity(), entity.getBukkitEntity()); diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -index 6b0ec9da5a368775924f5b97c74acc5bfd609fa1..8b0efc4d78a04effddae0799b7ee5759ed5c720f 100644 +index 6b0ec9da5a368775924f5b97c74acc5bfd609fa1..8a1cd9227d6f889dd8036ec593ee48862966af75 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java @@ -207,6 +207,7 @@ public class Boat extends VehicleEntity implements VariantHolder { @Override public void push(Entity entity) { -+ if (!this.level().paperConfig().collisions.allowVehicleCollisions && this.level().paperConfig().collisions.onlyPlayersCollide && !(entity instanceof Player)) return; // Paper ++ if (!this.level().paperConfig().collisions.allowVehicleCollisions && this.level().paperConfig().collisions.onlyPlayersCollide && !(entity instanceof Player)) return; // Paper - Collision option for requiring a player participant if (entity instanceof Boat) { if (entity.getBoundingBox().minY < this.getBoundingBox().maxY) { // CraftBukkit start diff --git a/patches/server/0524-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0524-Return-chat-component-with-empty-text-instead-of-thr.patch index ea9a7d39b0fb..d569ec5f4884 100644 --- a/patches/server/0524-Return-chat-component-with-empty-text-instead-of-thr.patch +++ b/patches/server/0524-Return-chat-component-with-empty-text-instead-of-thr.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Return chat component with empty text instead of throwing diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index c6ac55cdece9e2901e5d17a23408171c6c49ff69..b22cf4636108794092d8e289368b72a10a16d3cd 100644 +index c6ac55cdece9e2901e5d17a23408171c6c49ff69..d18c7ac003e8537b9bf389ad3ad58e80242ec502 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -89,7 +89,12 @@ public abstract class AbstractContainerMenu { @@ -16,10 +16,10 @@ index c6ac55cdece9e2901e5d17a23408171c6c49ff69..b22cf4636108794092d8e289368b72a1 - Preconditions.checkState(this.title != null, "Title not set"); + // Paper start - return chat component with empty text instead of throwing error + // Preconditions.checkState(this.title != null, "Title not set"); -+ if(this.title == null){ ++ if (this.title == null){ + return Component.literal(""); + } -+ // Paper end ++ // Paper end - return chat component with empty text instead of throwing error return this.title; } public final void setTitle(Component title) { diff --git a/patches/server/0525-Make-schedule-command-per-world.patch b/patches/server/0525-Make-schedule-command-per-world.patch index 25654c4b8507..f1854ba4c9b0 100644 --- a/patches/server/0525-Make-schedule-command-per-world.patch +++ b/patches/server/0525-Make-schedule-command-per-world.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make schedule command per-world diff --git a/src/main/java/net/minecraft/server/commands/ScheduleCommand.java b/src/main/java/net/minecraft/server/commands/ScheduleCommand.java -index 569b645c6d795401c974069d0be7195590cd354a..6fae14c03cb75375cee726df7f3ba9ab586c17f4 100644 +index 569b645c6d795401c974069d0be7195590cd354a..7b4ee914fb7681760446f864cf3f2f8cab180dd6 100644 --- a/src/main/java/net/minecraft/server/commands/ScheduleCommand.java +++ b/src/main/java/net/minecraft/server/commands/ScheduleCommand.java @@ -30,7 +30,7 @@ public class ScheduleCommand { @@ -13,7 +13,7 @@ index 569b645c6d795401c974069d0be7195590cd354a..6fae14c03cb75375cee726df7f3ba9ab }); private static final SuggestionProvider SUGGEST_SCHEDULE = (commandcontext, suggestionsbuilder) -> { - return SharedSuggestionProvider.suggest((Iterable) ((CommandSourceStack) commandcontext.getSource()).getServer().getWorldData().overworldData().getScheduledEvents().getEventsIds(), suggestionsbuilder); -+ return SharedSuggestionProvider.suggest((Iterable) ((net.minecraft.commands.CommandSourceStack) commandcontext.getSource()).getLevel().serverLevelData.getScheduledEvents().getEventsIds(), suggestionsbuilder); // Paper ++ return SharedSuggestionProvider.suggest((Iterable) ((net.minecraft.commands.CommandSourceStack) commandcontext.getSource()).getLevel().serverLevelData.getScheduledEvents().getEventsIds(), suggestionsbuilder); // Paper - Make schedule command per-world }; public ScheduleCommand() {} @@ -22,7 +22,7 @@ index 569b645c6d795401c974069d0be7195590cd354a..6fae14c03cb75375cee726df7f3ba9ab private static int remove(CommandSourceStack source, String eventName) throws CommandSyntaxException { - int i = source.getServer().getWorldData().overworldData().getScheduledEvents().remove(eventName); -+ int i = source.getLevel().serverLevelData.getScheduledEvents().remove(eventName); // Paper ++ int i = source.getLevel().serverLevelData.getScheduledEvents().remove(eventName); // Paper - Make schedule command per-world if (i == 0) { throw ScheduleCommand.ERROR_CANT_REMOVE.create(eventName); diff --git a/patches/server/0526-Configurable-max-leash-distance.patch b/patches/server/0526-Configurable-max-leash-distance.patch index c1ac4b56342e..6f899de2d2da 100644 --- a/patches/server/0526-Configurable-max-leash-distance.patch +++ b/patches/server/0526-Configurable-max-leash-distance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable max leash distance diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -index b5964614823059261c28eb2e998ad54249f07e7b..452f219fde958fb4dc775cd2c56c0576c45a8045 100644 +index b5964614823059261c28eb2e998ad54249f07e7b..08245016186c47077294f758409f8bf14398199f 100644 --- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java +++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java @@ -56,7 +56,7 @@ public abstract class PathfinderMob extends Mob { @@ -13,7 +13,7 @@ index b5964614823059261c28eb2e998ad54249f07e7b..452f219fde958fb4dc775cd2c56c0576 if (this instanceof TamableAnimal && ((TamableAnimal) this).isInSittingPose()) { - if (f > 10.0F) { -+ if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper ++ if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper - Configurable max leash distance this.level().getCraftServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit this.dropLeash(true, true); } @@ -22,7 +22,7 @@ index b5964614823059261c28eb2e998ad54249f07e7b..452f219fde958fb4dc775cd2c56c0576 this.onLeashDistance(f); - if (f > 10.0F) { -+ if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper ++ if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper - Configurable max leash distance this.level().getCraftServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit this.dropLeash(true, true); this.goalSelector.disableControlFlag(Goal.Flag.MOVE); diff --git a/patches/server/0527-Implement-BlockPreDispenseEvent.patch b/patches/server/0527-Add-BlockPreDispenseEvent.patch similarity index 91% rename from patches/server/0527-Implement-BlockPreDispenseEvent.patch rename to patches/server/0527-Add-BlockPreDispenseEvent.patch index a840af8a0a2c..68e5b69f0cac 100644 --- a/patches/server/0527-Implement-BlockPreDispenseEvent.patch +++ b/patches/server/0527-Add-BlockPreDispenseEvent.patch @@ -1,18 +1,18 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Madeline Miller Date: Sun, 17 Jan 2021 13:16:09 +1000 -Subject: [PATCH] Implement BlockPreDispenseEvent +Subject: [PATCH] Add BlockPreDispenseEvent diff --git a/src/main/java/net/minecraft/world/level/block/DispenserBlock.java b/src/main/java/net/minecraft/world/level/block/DispenserBlock.java -index 21c37ad365e09a296c3e7a2d0cde7a29ced09c33..52e92ffd6bf5d3d721807a0b3a8e2d301951f934 100644 +index 5593a0aa9e618071b6521b213dde0f628348c3dc..1ee863ec252872deb15a6b96f1d937c672ce5898 100644 --- a/src/main/java/net/minecraft/world/level/block/DispenserBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DispenserBlock.java @@ -104,6 +104,7 @@ public class DispenserBlock extends BaseEntityBlock { DispenseItemBehavior idispensebehavior = this.getDispenseMethod(itemstack); if (idispensebehavior != DispenseItemBehavior.NOOP) { -+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockPreDispenseEvent(world, pos, itemstack, i)) return; // Paper - BlockPreDispenseEvent is called here ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockPreDispenseEvent(world, pos, itemstack, i)) return; // Paper - Add BlockPreDispenseEvent DispenserBlock.eventFired = false; // CraftBukkit - reset event status tileentitydispenser.setItem(i, idispensebehavior.dispense(sourceblock, itemstack)); } diff --git a/patches/server/0528-Added-firing-of-PlayerChangeBeaconEffectEvent.patch b/patches/server/0528-Add-PlayerChangeBeaconEffectEvent.patch similarity index 83% rename from patches/server/0528-Added-firing-of-PlayerChangeBeaconEffectEvent.patch rename to patches/server/0528-Add-PlayerChangeBeaconEffectEvent.patch index 03d8cdf4c812..d27d4c4e85c8 100644 --- a/patches/server/0528-Added-firing-of-PlayerChangeBeaconEffectEvent.patch +++ b/patches/server/0528-Add-PlayerChangeBeaconEffectEvent.patch @@ -1,40 +1,39 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Wed, 24 Jun 2020 15:14:51 -0600 -Subject: [PATCH] Added firing of PlayerChangeBeaconEffectEvent +Subject: [PATCH] Add PlayerChangeBeaconEffectEvent diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index e6a4e8dcdbc49b427c2802f1a358f8f9ad04d0f0..685c35419de7e3c4e854a28118a243e65250ef59 100644 +index e6a4e8dcdbc49b427c2802f1a358f8f9ad04d0f0..611cbe0e47474f94cd203ac86ca9e80cab621134 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -@@ -169,13 +169,27 @@ public class BeaconMenu extends AbstractContainerMenu { +@@ -169,13 +169,26 @@ public class BeaconMenu extends AbstractContainerMenu { public MobEffect getSecondaryEffect() { return BeaconMenu.decodeEffect(this.beaconData.get(2)); } -+ // Paper start ++ // Paper start - Add PlayerChangeBeaconEffectEvent + private static @Nullable org.bukkit.potion.PotionEffectType convert(Optional effect) { + return effect.flatMap(net.minecraft.core.registries.BuiltInRegistries.MOB_EFFECT::getResourceKey).map(key -> { + return org.bukkit.potion.PotionEffectType.getByKey(org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(key.location())); + }).orElse(null); + } -+ // Paper end ++ // Paper end - Add PlayerChangeBeaconEffectEvent public void updateEffects(Optional primary, Optional secondary) { if (this.paymentSlot.hasItem()) { - this.beaconData.set(1, BeaconMenu.encodeEffect((MobEffect) primary.orElse(null))); // CraftBukkit - decompile error - this.beaconData.set(2, BeaconMenu.encodeEffect((MobEffect) secondary.orElse(null))); // CraftBukkit - decompile error -+ // Paper start ++ // Paper start - Add PlayerChangeBeaconEffectEvent + io.papermc.paper.event.player.PlayerChangeBeaconEffectEvent event = new io.papermc.paper.event.player.PlayerChangeBeaconEffectEvent((org.bukkit.entity.Player) this.player.player.getBukkitEntity(), convert(primary), convert(secondary), this.access.getLocation().getBlock()); + if (event.callEvent()) { + this.beaconData.set(1, BeaconMenu.encodeEffect(event.getPrimary() == null ? null : org.bukkit.craftbukkit.potion.CraftPotionEffectType.bukkitToMinecraft(event.getPrimary()))); + this.beaconData.set(2, BeaconMenu.encodeEffect(event.getSecondary() == null ? null : org.bukkit.craftbukkit.potion.CraftPotionEffectType.bukkitToMinecraft(event.getSecondary()))); + if (event.willConsumeItem()) { -+ // Paper end this.paymentSlot.remove(1); + } this.access.execute(Level::blockEntityChanged); -+ } // Paper end ++ } // Paper end - Add PlayerChangeBeaconEffectEvent } } diff --git a/patches/server/0529-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0529-Add-toggle-for-always-placing-the-dragon-egg.patch index 39e24e604478..60fe38c25cce 100644 --- a/patches/server/0529-Add-toggle-for-always-placing-the-dragon-egg.patch +++ b/patches/server/0529-Add-toggle-for-always-placing-the-dragon-egg.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add toggle for always placing the dragon egg diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 7741b27816636aaa48277b2fe14fd7b88cd3d78a..99321471d2c8c154059ebf345c63f8918a4cd75a 100644 +index 7741b27816636aaa48277b2fe14fd7b88cd3d78a..3c5e18a5d136917c65bbfe1311c881d1b8bbd164 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -407,7 +407,7 @@ public class EndDragonFight { @@ -13,7 +13,7 @@ index 7741b27816636aaa48277b2fe14fd7b88cd3d78a..99321471d2c8c154059ebf345c63f891 this.spawnExitPortal(true); this.spawnNewGateway(); - if (!this.previouslyKilled) { -+ if (this.level.paperConfig().entities.behavior.enderDragonsDeathAlwaysPlacesDragonEgg || !this.previouslyKilled) { // Paper - always place dragon egg ++ if (this.level.paperConfig().entities.behavior.enderDragonsDeathAlwaysPlacesDragonEgg || !this.previouslyKilled) { // Paper - Add toggle for always placing the dragon egg this.level.setBlockAndUpdate(this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.origin)), Blocks.DRAGON_EGG.defaultBlockState()); } diff --git a/patches/server/0530-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0530-Add-PlayerStonecutterRecipeSelectEvent.patch similarity index 89% rename from patches/server/0530-Added-PlayerStonecutterRecipeSelectEvent.patch rename to patches/server/0530-Add-PlayerStonecutterRecipeSelectEvent.patch index 9750570e7398..8a91e4983d9b 100644 --- a/patches/server/0530-Added-PlayerStonecutterRecipeSelectEvent.patch +++ b/patches/server/0530-Add-PlayerStonecutterRecipeSelectEvent.patch @@ -1,12 +1,12 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Fri, 27 Nov 2020 17:14:27 -0800 -Subject: [PATCH] Added PlayerStonecutterRecipeSelectEvent +Subject: [PATCH] Add PlayerStonecutterRecipeSelectEvent Co-Authored-By: MiniDigger diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java -index 70ecc3f673ebd56b65ad901e10f40c28368cbfac..aa1d1466d0a7b76967a41d948b7a4114fe06242f 100644 +index 70ecc3f673ebd56b65ad901e10f40c28368cbfac..a5763abd3137e993ec856874b8fe7ef82dd6f570 100644 --- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java +++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java @@ -63,7 +63,7 @@ public class StonecutterMenu extends AbstractContainerMenu { @@ -14,7 +14,7 @@ index 70ecc3f673ebd56b65ad901e10f40c28368cbfac..aa1d1466d0a7b76967a41d948b7a4114 public StonecutterMenu(int syncId, Inventory playerInventory, final ContainerLevelAccess context) { super(MenuType.STONECUTTER, syncId); - this.selectedRecipeIndex = DataSlot.standalone(); -+ this.selectedRecipeIndex = DataSlot.shared(new int[1], 0); // Paper - allow replication ++ this.selectedRecipeIndex = DataSlot.shared(new int[1], 0); // Paper - Add PlayerStonecutterRecipeSelectEvent this.recipes = Lists.newArrayList(); this.input = ItemStack.EMPTY; this.slotUpdateListener = () -> { @@ -23,7 +23,7 @@ index 70ecc3f673ebd56b65ad901e10f40c28368cbfac..aa1d1466d0a7b76967a41d948b7a4114 public boolean clickMenuButton(net.minecraft.world.entity.player.Player player, int id) { if (this.isValidRecipeIndex(id)) { - this.selectedRecipeIndex.set(id); -+ // Paper start ++ // Paper start - Add PlayerStonecutterRecipeSelectEvent + int recipeIndex = id; + this.selectedRecipeIndex.set(recipeIndex); + this.selectedRecipeIndex.checkAndClearUpdateFlag(); // mark as changed @@ -45,7 +45,7 @@ index 70ecc3f673ebd56b65ad901e10f40c28368cbfac..aa1d1466d0a7b76967a41d948b7a4114 + } + ((Player) player.getBukkitEntity()).updateInventory(); + this.selectedRecipeIndex.set(recipeIndex); // set new index, so that listeners can read it -+ // Paper end ++ // Paper end - Add PlayerStonecutterRecipeSelectEvent this.setupResultSlot(); } diff --git a/patches/server/0531-Expand-EntityUnleashEvent.patch b/patches/server/0531-Expand-EntityUnleashEvent.patch index 990b7010b8e2..7753ca31d79a 100644 --- a/patches/server/0531-Expand-EntityUnleashEvent.patch +++ b/patches/server/0531-Expand-EntityUnleashEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand EntityUnleashEvent diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index d330b6d291cd2967358e892ccbc480bb3bd8022d..16d84042e2575418880897c728a99d1b8bbcdd15 100644 +index 3da1debb3ad884d9ba2f8ebea52643e8fcb3a747..c64c8efc7fcf77a78c7807bf8def32cbd748b84d 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1305,12 +1305,15 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -13,16 +13,16 @@ index d330b6d291cd2967358e892ccbc480bb3bd8022d..16d84042e2575418880897c728a99d1b } else if (this.getLeashHolder() == player) { // CraftBukkit start - fire PlayerUnleashEntityEvent - if (CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand).isCancelled()) { -+ // Paper start - drop leash variable ++ // Paper start - Expand EntityUnleashEvent + org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.getAbilities().instabuild); + if (event.isCancelled()) { -+ // Paper end ++ // Paper end - Expand EntityUnleashEvent ((ServerPlayer) player).connection.send(new ClientboundSetEntityLinkPacket(this, this.getLeashHolder())); return InteractionResult.PASS; } // CraftBukkit end - this.dropLeash(true, !player.getAbilities().instabuild); -+ this.dropLeash(true, event.isDropLeash()); // Paper - drop leash variable ++ this.dropLeash(true, event.isDropLeash()); // Paper - Expand EntityUnleashEvent this.gameEvent(GameEvent.ENTITY_INTERACT, player); return InteractionResult.sidedSuccess(this.level().isClientSide); } else { @@ -32,11 +32,11 @@ index d330b6d291cd2967358e892ccbc480bb3bd8022d..16d84042e2575418880897c728a99d1b if (!this.isAlive() || !this.leashHolder.isAlive()) { - this.level().getCraftServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), (!this.isAlive()) ? UnleashReason.PLAYER_UNLEASH : UnleashReason.HOLDER_GONE)); // CraftBukkit - this.dropLeash(true, !this.leashHolder.pluginRemoved);// CraftBukkit - SPIGOT-7487: Don't drop leash, when the holder was removed by a plugin -+ // Paper start - drop leash variable ++ // Paper start - Expand EntityUnleashEvent + EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), (!this.isAlive()) ? EntityUnleashEvent.UnleashReason.PLAYER_UNLEASH : EntityUnleashEvent.UnleashReason.HOLDER_GONE, !this.leashHolder.pluginRemoved); + this.level().getCraftServer().getPluginManager().callEvent(event); // CraftBukkit + this.dropLeash(true, event.isDropLeash()); -+ // Paper end ++ // Paper end - Expand EntityUnleashEvent } } @@ -46,11 +46,11 @@ index d330b6d291cd2967358e892ccbc480bb3bd8022d..16d84042e2575418880897c728a99d1b if (flag1 && this.isLeashed()) { - this.level().getCraftServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), UnleashReason.UNKNOWN)); // CraftBukkit - this.dropLeash(true, true); -+ // Paper start - drop leash variable ++ // Paper start - Expand EntityUnleashEvent + EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.UNKNOWN, true); + if (!event.callEvent()) { return flag1; } + this.dropLeash(true, event.isDropLeash()); -+ // Paper end ++ // Paper end - Expand EntityUnleashEvent } return flag1; @@ -60,48 +60,48 @@ index d330b6d291cd2967358e892ccbc480bb3bd8022d..16d84042e2575418880897c728a99d1b super.removeAfterChangingDimensions(); - this.level().getCraftServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), UnleashReason.UNKNOWN)); // CraftBukkit - this.dropLeash(true, false); -+ // Paper start - drop leash variable ++ // Paper start - Expand EntityUnleashEvent + EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.UNKNOWN, false); + this.level().getCraftServer().getPluginManager().callEvent(event); // CraftBukkit + this.dropLeash(true, event.isDropLeash()); -+ // Paper end ++ // Paper end - Expand EntityUnleashEvent this.getAllSlots().forEach((itemstack) -> { if (!itemstack.isEmpty()) { itemstack.setCount(0); diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -index 452f219fde958fb4dc775cd2c56c0576c45a8045..7ed610c67fcfa200c30e13a49146907f765bc5ed 100644 +index 08245016186c47077294f758409f8bf14398199f..3d95257d2203fe40bb1fab58ad2a1f9e815184a9 100644 --- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java +++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java @@ -57,8 +57,11 @@ public abstract class PathfinderMob extends Mob { if (this instanceof TamableAnimal && ((TamableAnimal) this).isInSittingPose()) { - if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper + if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper - Configurable max leash distance - this.level().getCraftServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit - this.dropLeash(true, true); -+ // Paper start - drop leash variable ++ // Paper start - Expand EntityUnleashEvent + EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE, true); + if (!event.callEvent()) return; + this.dropLeash(true, event.isDropLeash()); -+ // Paper end ++ // Paper end - Expand EntityUnleashEvent } return; @@ -66,8 +69,11 @@ public abstract class PathfinderMob extends Mob { this.onLeashDistance(f); - if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper + if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper - Configurable max leash distance - this.level().getCraftServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit - this.dropLeash(true, true); -+ // Paper start - drop leash variable ++ // Paper start - Expand EntityUnleashEvent + EntityUnleashEvent event = new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE, true); + if (!event.callEvent()) return; + this.dropLeash(true, event.isDropLeash()); -+ // Paper end ++ // Paper end - Expand EntityUnleashEvent this.goalSelector.disableControlFlag(Goal.Flag.MOVE); } else if (f > 6.0F) { double d0 = (entity.getX() - this.getX()) / (double) f; diff --git a/src/main/java/net/minecraft/world/entity/decoration/LeashFenceKnotEntity.java b/src/main/java/net/minecraft/world/entity/decoration/LeashFenceKnotEntity.java -index 16784fcc853e23689a854e7dc6c03ed8182a164e..4eb97572a97a8d98af37c4223f42fc63659bc0ca 100644 +index 16784fcc853e23689a854e7dc6c03ed8182a164e..006aba8bbb34a0d45ef626a1d299e81909cf9ba1 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/LeashFenceKnotEntity.java +++ b/src/main/java/net/minecraft/world/entity/decoration/LeashFenceKnotEntity.java @@ -126,11 +126,14 @@ public class LeashFenceKnotEntity extends HangingEntity { @@ -109,20 +109,20 @@ index 16784fcc853e23689a854e7dc6c03ed8182a164e..4eb97572a97a8d98af37c4223f42fc63 if (entityinsentient1.isLeashed() && entityinsentient1.getLeashHolder() == this) { // CraftBukkit start - if (CraftEventFactory.callPlayerUnleashEntityEvent(entityinsentient1, player, hand).isCancelled()) { -+ // Paper start - drop leash variable ++ // Paper start - Expand EntityUnleashEvent + org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(entityinsentient1, player, hand, !player.getAbilities().instabuild); + if (event.isCancelled()) { -+ // Paper end ++ // Paper end - Expand EntityUnleashEvent die = false; continue; } - entityinsentient1.dropLeash(true, !player.getAbilities().instabuild); // false -> survival mode boolean -+ entityinsentient1.dropLeash(true, event.isDropLeash()); // false -> survival mode boolean // Paper - drop leash variable ++ entityinsentient1.dropLeash(true, event.isDropLeash()); // false -> survival mode boolean // Paper - Expand EntityUnleashEvent // CraftBukkit end flag1 = true; } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 3fef79f0e3b8a05b11b77802b80acc8e5c584653..2d9d6d735a13e0e0fc1f277f48c7bdb05aa3352a 100644 +index 3fef79f0e3b8a05b11b77802b80acc8e5c584653..8761bb7b61d322bc1e29d217631a9d2c70e5bcc4 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1637,8 +1637,10 @@ public class CraftEventFactory { @@ -131,10 +131,10 @@ index 3fef79f0e3b8a05b11b77802b80acc8e5c584653..2d9d6d735a13e0e0fc1f277f48c7bdb0 - public static PlayerUnleashEntityEvent callPlayerUnleashEntityEvent(Mob entity, net.minecraft.world.entity.player.Player player, InteractionHand enumhand) { - PlayerUnleashEntityEvent event = new PlayerUnleashEntityEvent(entity.getBukkitEntity(), (Player) player.getBukkitEntity(), CraftEquipmentSlot.getHand(enumhand)); -+ // Paper start - drop leash variable ++ // Paper start - Expand EntityUnleashEvent + public static PlayerUnleashEntityEvent callPlayerUnleashEntityEvent(Mob entity, net.minecraft.world.entity.player.Player player, InteractionHand enumhand, boolean dropLeash) { + PlayerUnleashEntityEvent event = new PlayerUnleashEntityEvent(entity.getBukkitEntity(), (Player) player.getBukkitEntity(), CraftEquipmentSlot.getHand(enumhand), dropLeash); -+ // Paper end ++ // Paper end - Expand EntityUnleashEvent entity.level().getCraftServer().getPluginManager().callEvent(event); return event; } diff --git a/patches/server/0532-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0532-Reset-shield-blocking-on-dimension-change.patch index d95df4f1e8b0..909fcb71e2f6 100644 --- a/patches/server/0532-Reset-shield-blocking-on-dimension-change.patch +++ b/patches/server/0532-Reset-shield-blocking-on-dimension-change.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Reset shield blocking on dimension change diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ff75234d76e4f6a939841c982a6fc3e33b36ea61..33477a639304c1491b5eea8585051e266ec93bc7 100644 +index ff75234d76e4f6a939841c982a6fc3e33b36ea61..468d96f4b1e83d81fec8997557964931c7512a35 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1247,6 +1247,11 @@ public class ServerPlayer extends Player { this.level().getCraftServer().getPluginManager().callEvent(changeEvent); // CraftBukkit end } -+ // Paper start ++ // Paper start - Reset shield blocking on dimension change + if (this.isBlocking()) { + this.stopUsingItem(); + } -+ // Paper end ++ // Paper end - Reset shield blocking on dimension change return this; } diff --git a/patches/server/0533-add-DragonEggFormEvent.patch b/patches/server/0533-Add-DragonEggFormEvent.patch similarity index 81% rename from patches/server/0533-add-DragonEggFormEvent.patch rename to patches/server/0533-Add-DragonEggFormEvent.patch index e4c888b12de3..c2dce8ce18e8 100644 --- a/patches/server/0533-add-DragonEggFormEvent.patch +++ b/patches/server/0533-Add-DragonEggFormEvent.patch @@ -1,35 +1,34 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Trigary Date: Mon, 25 Jan 2021 14:53:57 +0100 -Subject: [PATCH] add DragonEggFormEvent +Subject: [PATCH] Add DragonEggFormEvent diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 99321471d2c8c154059ebf345c63f8918a4cd75a..c29ccc66c95faba425acb0ca06af15e2783b4bae 100644 +index 3c5e18a5d136917c65bbfe1311c881d1b8bbd164..5ba7bf72f08980b1c16240a5376ad8c3c9379100 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -@@ -407,9 +407,23 @@ public class EndDragonFight { +@@ -407,8 +407,22 @@ public class EndDragonFight { this.dragonEvent.setVisible(false); this.spawnExitPortal(true); this.spawnNewGateway(); -+ // Paper start - DragonEggFormEvent ++ // Paper start - Add DragonEggFormEvent + BlockPos eggPosition = this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.origin)); + org.bukkit.craftbukkit.block.CraftBlockState eggState = org.bukkit.craftbukkit.block.CraftBlockStates.getBlockState(this.level, eggPosition); + eggState.setData(Blocks.DRAGON_EGG.defaultBlockState()); + io.papermc.paper.event.block.DragonEggFormEvent eggEvent = new io.papermc.paper.event.block.DragonEggFormEvent(org.bukkit.craftbukkit.block.CraftBlock.at(this.level, eggPosition), eggState, + new org.bukkit.craftbukkit.boss.CraftDragonBattle(this)); -+ // Paper end - DragonEggFormEvent - if (this.level.paperConfig().entities.behavior.enderDragonsDeathAlwaysPlacesDragonEgg || !this.previouslyKilled) { // Paper - always place dragon egg ++ // Paper end - Add DragonEggFormEvent + if (this.level.paperConfig().entities.behavior.enderDragonsDeathAlwaysPlacesDragonEgg || !this.previouslyKilled) { // Paper - Add toggle for always placing the dragon egg - this.level.setBlockAndUpdate(this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.origin)), Blocks.DRAGON_EGG.defaultBlockState()); -+ // Paper start - DragonEggFormEvent ++ // Paper start - Add DragonEggFormEvent + // this.level.setBlockAndUpdate(this.level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, EndPodiumFeature.getLocation(this.origin)), Blocks.DRAGON_EGG.defaultBlockState()); + } else { + eggEvent.setCancelled(true); + } + if (eggEvent.callEvent()) { + eggEvent.getNewState().update(true); ++ // Paper end - Add DragonEggFormEvent } -+ // Paper end - DragonEggFormEvent this.previouslyKilled = true; - this.dragonKilled = true; diff --git a/patches/server/0534-EntityMoveEvent.patch b/patches/server/0534-Add-EntityMoveEvent.patch similarity index 83% rename from patches/server/0534-EntityMoveEvent.patch rename to patches/server/0534-Add-EntityMoveEvent.patch index 06c846fb45af..0410b84f0cf3 100644 --- a/patches/server/0534-EntityMoveEvent.patch +++ b/patches/server/0534-Add-EntityMoveEvent.patch @@ -1,42 +1,42 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 11 Feb 2020 21:56:48 -0600 -Subject: [PATCH] EntityMoveEvent +Subject: [PATCH] Add EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a75c6825eaee07bbde9b7c81c4232bc982a98326..f89d2dc9ec8bfe0b401b96bffd59502bf903a24d 100644 +index 8d3b3524a939d483aa4d451a8ca0fed3a9c87d26..37a5775a96a894a5419f01886fba471f0c62aba0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1584,6 +1584,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper -+ worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper ++ worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index efbdcaff160e1c8e666d54a9babe35ac325ec8a5..3396f940f5c7c4e7b77a4570c34fbe5ad2c7da01 100644 +index 7b76cba12680d7a8720c597b3a98b08ee5313f63..9f39445a78bfea25a12278b4410a44caf3cf929e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final LevelStorageSource.LevelStorageAccess convertable; public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper -+ public boolean hasEntityMoveEvent = false; // Paper ++ public boolean hasEntityMoveEvent = false; // Paper - Add EntityMoveEvent public static Throwable getAddToWorldStackTrace(Entity entity) { final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7d72477cdeaa8238da1291c0a902d090463b95c8..51916ff6f45090cf5e2da6b12640c130533fc4d9 100644 +index 7d72477cdeaa8238da1291c0a902d090463b95c8..1681b63e49cb4f84b1caf0e1b02db19ede08ba13 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3361,6 +3361,20 @@ public abstract class LivingEntity extends Entity implements Attackable { this.pushEntities(); this.level().getProfiler().pop(); -+ // Paper start ++ // Paper start - Add EntityMoveEvent + if (((ServerLevel) this.level()).hasEntityMoveEvent && !(this instanceof net.minecraft.world.entity.player.Player)) { + if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) { + Location from = new Location(this.level().getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO); @@ -49,7 +49,7 @@ index 7d72477cdeaa8238da1291c0a902d090463b95c8..51916ff6f45090cf5e2da6b12640c130 + } + } + } -+ // Paper end ++ // Paper end - Add EntityMoveEvent if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { this.hurt(this.damageSources().drown(), 1.0F); } diff --git a/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch index a07a4b85aa19..de2f6c6af1b0 100644 --- a/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch @@ -5,7 +5,7 @@ Subject: [PATCH] added option to disable pathfinding updates on block changes diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3396f940f5c7c4e7b77a4570c34fbe5ad2c7da01..a3288d3cd160978e8bab4ca34d1fe6dbee042e28 100644 +index 9f39445a78bfea25a12278b4410a44caf3cf929e..da32aad077fb36cc17f420cc445530eec173e110 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1677,6 +1677,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -20,7 +20,7 @@ index 3396f940f5c7c4e7b77a4570c34fbe5ad2c7da01..a3288d3cd160978e8bab4ca34d1fe6db } } -+ } // Paper ++ } // Paper - option to disable pathfinding updates } @Override diff --git a/patches/server/0536-Inline-shift-direction-fields.patch b/patches/server/0536-Inline-shift-direction-fields.patch index f0c71d61f20a..4f26750f0e66 100644 --- a/patches/server/0536-Inline-shift-direction-fields.patch +++ b/patches/server/0536-Inline-shift-direction-fields.patch @@ -7,18 +7,18 @@ Removes a layer of indirection for EnumDirection.getAdjacent(X|Y|Z)(), which is critical section for much of the server, including the lighting engine. diff --git a/src/main/java/net/minecraft/core/Direction.java b/src/main/java/net/minecraft/core/Direction.java -index 3abec6de94f0ef1d788320e33653c598887f17ca..d0a8092bf57a29ab7c00ec0ddf52a9fdb2a33267 100644 +index 3abec6de94f0ef1d788320e33653c598887f17ca..073c717bb676b9e99aada00c349fb7eee91df1e7 100644 --- a/src/main/java/net/minecraft/core/Direction.java +++ b/src/main/java/net/minecraft/core/Direction.java @@ -52,6 +52,11 @@ public enum Direction implements StringRepresentable { })).toArray((i) -> { return new Direction[i]; }); -+ // Paper start ++ // Paper start - Perf: Inline shift direction fields + private final int adjX; + private final int adjY; + private final int adjZ; -+ // Paper end ++ // Paper end - Perf: Inline shift direction fields private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) { this.data3d = id; @@ -26,11 +26,11 @@ index 3abec6de94f0ef1d788320e33653c598887f17ca..d0a8092bf57a29ab7c00ec0ddf52a9fd this.axis = axis; this.axisDirection = direction; this.normal = vector; -+ // Paper start ++ // Paper start - Perf: Inline shift direction fields + this.adjX = vector.getX(); + this.adjY = vector.getY(); + this.adjZ = vector.getZ(); -+ // Paper end ++ // Paper end - Perf: Inline shift direction fields } public static Direction[] orderedByNearest(Entity entity) { @@ -39,17 +39,17 @@ index 3abec6de94f0ef1d788320e33653c598887f17ca..d0a8092bf57a29ab7c00ec0ddf52a9fd public int getStepX() { - return this.normal.getX(); -+ return this.adjX; // Paper ++ return this.adjX; // Paper - Perf: Inline shift direction fields } public int getStepY() { - return this.normal.getY(); -+ return this.adjY; // Paper ++ return this.adjY; // Paper - Perf: Inline shift direction fields } public int getStepZ() { - return this.normal.getZ(); -+ return this.adjZ; // Paper ++ return this.adjZ; // Paper - Perf: Inline shift direction fields } public Vector3f step() { diff --git a/patches/server/0537-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0537-Allow-adding-items-to-BlockDropItemEvent.patch index 4aa5e9a47f8f..0d056ea3be4b 100644 --- a/patches/server/0537-Allow-adding-items-to-BlockDropItemEvent.patch +++ b/patches/server/0537-Allow-adding-items-to-BlockDropItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow adding items to BlockDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 2d9d6d735a13e0e0fc1f277f48c7bdb05aa3352a..8a7c90014beb5e044abc1fd6f8832bb3c78ffb12 100644 +index 8761bb7b61d322bc1e29d217631a9d2c70e5bcc4..4caddfe884748543f1153dbf066bb2d3f4cd78d4 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -450,13 +450,30 @@ public class CraftEventFactory { @@ -13,19 +13,19 @@ index 2d9d6d735a13e0e0fc1f277f48c7bdb05aa3352a..8a7c90014beb5e044abc1fd6f8832bb3 public static void handleBlockDropItemEvent(Block block, BlockState state, ServerPlayer player, List items) { - BlockDropItemEvent event = new BlockDropItemEvent(block, state, player.getBukkitEntity(), Lists.transform(items, (item) -> (org.bukkit.entity.Item) item.getBukkitEntity())); -+ // Paper start ++ // Paper start - Allow adding items to BlockDropItemEvent + List list = new ArrayList<>(); + for (ItemEntity item : items) { + list.add((Item) item.getBukkitEntity()); + } + BlockDropItemEvent event = new BlockDropItemEvent(block, state, player.getBukkitEntity(), list); -+ // Paper end ++ // Paper end - Allow adding items to BlockDropItemEvent Bukkit.getPluginManager().callEvent(event); if (!event.isCancelled()) { - for (ItemEntity item : items) { - item.level().addFreshEntity(item); -+ // Paper start ++ // Paper start - Allow adding items to BlockDropItemEvent + for (Item bukkit : list) { + if (!bukkit.isValid()) { + Entity item = ((org.bukkit.craftbukkit.entity.CraftItem) bukkit).getHandle(); @@ -38,7 +38,7 @@ index 2d9d6d735a13e0e0fc1f277f48c7bdb05aa3352a..8a7c90014beb5e044abc1fd6f8832bb3 + bukkit.remove(); + } } -+ // Paper end ++ // Paper end - Allow adding items to BlockDropItemEvent } } diff --git a/patches/server/0539-living-entity-allow-attribute-registration.patch b/patches/server/0539-living-entity-allow-attribute-registration.patch index 0ef69567719e..a70a3964d8c3 100644 --- a/patches/server/0539-living-entity-allow-attribute-registration.patch +++ b/patches/server/0539-living-entity-allow-attribute-registration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] living entity allow attribute registration diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java -index d5dfb08f550f5644ff5164170d6c16a3b25a3748..7204b973c3ad9239e82355513f6d538107102e48 100644 +index d5dfb08f550f5644ff5164170d6c16a3b25a3748..897d7632ecfea40890433474870dd7a5e534d8ab 100644 --- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java @@ -152,4 +152,12 @@ public class AttributeMap { @@ -13,44 +13,44 @@ index d5dfb08f550f5644ff5164170d6c16a3b25a3748..7204b973c3ad9239e82355513f6d5381 } + -+ // Paper - start ++ // Paper - start - living entity allow attribute registration + public void registerAttribute(Attribute attributeBase) { + AttributeInstance attributeModifiable = new AttributeInstance(attributeBase, AttributeInstance::getAttribute); + attributes.put(attributeBase, attributeModifiable); + } -+ // Paper - end ++ // Paper - end - living entity allow attribute registration + } diff --git a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java -index ea48f1119a940056c37d1d203437bfbfdf13663b..a3f989fd1775adbb84d197c51e22c1889a2f8e18 100644 +index ea48f1119a940056c37d1d203437bfbfdf13663b..8a678df56fcf30535957e111d81ad07be5b501ec 100644 --- a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java +++ b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java @@ -35,4 +35,11 @@ public class CraftAttributeMap implements Attributable { return (nms == null) ? null : new CraftAttributeInstance(nms, attribute); } -+ // Paper start ++ // Paper start - living entity allow attribute registration + @Override + public void registerAttribute(Attribute attribute) { + Preconditions.checkArgument(attribute != null, "attribute"); + handle.registerAttribute(CraftAttribute.bukkitToMinecraft(attribute)); + } -+ // Paper end ++ // Paper end - living entity allow attribute registration } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index f108af0f9047ce8d0ee402838ecbf7840d55ba54..d3f97ba1b03e050b10553ea536bc26a7bfc5b976 100644 +index f108af0f9047ce8d0ee402838ecbf7840d55ba54..f874712c1569a30c825c1a904a3bcfbe1085200b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -713,6 +713,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return this.getHandle().craftAttributes.getAttribute(attribute); } -+ // Paper start ++ // Paper start - living entity allow attribute registration + @Override + public void registerAttribute(Attribute attribute) { + getHandle().craftAttributes.registerAttribute(attribute); + } -+ // Paper end ++ // Paper end - living entity allow attribute registration + @Override public void setAI(boolean ai) { diff --git a/patches/server/0543-Improve-ServerGUI.patch b/patches/server/0543-Improve-ServerGUI.patch index 2ae5d9262ea8..ad7dfc7afda2 100644 --- a/patches/server/0543-Improve-ServerGUI.patch +++ b/patches/server/0543-Improve-ServerGUI.patch @@ -39,34 +39,34 @@ index 48e0b8a50090735ac44d03bdff22010c60b0d7e5..066b9e4c4f0e7773548eda045cdd1ca8 + } } diff --git a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java -index 2e93eec8733c5b548a15269a322fe4dd1f189b7d..dd9f611efc95f7d06fd3011fedd5d0317b1d0a85 100644 +index 2e93eec8733c5b548a15269a322fe4dd1f189b7d..69b18e312db984eaffa8bae2439c88f73b872c53 100644 --- a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java +++ b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java @@ -59,6 +59,15 @@ public class MinecraftServerGui extends JComponent { jframe.pack(); jframe.setLocationRelativeTo((Component) null); jframe.setVisible(true); -+ jframe.setName("Minecraft server"); // Paper ++ jframe.setName("Minecraft server"); // Paper - Improve ServerGUI + -+ // Paper start - Add logo as frame image ++ // Paper start - Improve ServerGUI + try { + jframe.setIconImage(javax.imageio.ImageIO.read(Objects.requireNonNull(MinecraftServerGui.class.getClassLoader().getResourceAsStream("logo.png")))); + } catch (java.io.IOException ignore) { + } -+ // Paper end ++ // Paper end - Improve ServerGUI + jframe.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowevent) { if (!servergui.isClosing.getAndSet(true)) { diff --git a/src/main/java/net/minecraft/server/gui/StatsComponent.java b/src/main/java/net/minecraft/server/gui/StatsComponent.java -index 7938029cb7aa6f09f78fb1c648357c36edb68510..4073484fefbf1ec6072013f6903f9237eb3ebfbc 100644 +index 7938029cb7aa6f09f78fb1c648357c36edb68510..ed94bc86ed47719c2f6c338374edf741bd202c24 100644 --- a/src/main/java/net/minecraft/server/gui/StatsComponent.java +++ b/src/main/java/net/minecraft/server/gui/StatsComponent.java @@ -36,8 +36,17 @@ public class StatsComponent extends JComponent { private void tick() { long l = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory(); -+ // Paper start - Add tps entry ++ // Paper start - Improve ServerGUI + double[] tps = org.bukkit.Bukkit.getTPS(); + String[] tpsAvg = new String[tps.length]; + @@ -76,7 +76,7 @@ index 7938029cb7aa6f09f78fb1c648357c36edb68510..4073484fefbf1ec6072013f6903f9237 this.msgs[0] = "Memory use: " + l / 1024L / 1024L + " mb (" + Runtime.getRuntime().freeMemory() * 100L / Runtime.getRuntime().maxMemory() + "% free)"; this.msgs[1] = "Avg tick: " + DECIMAL_FORMAT.format((double)this.server.getAverageTickTimeNanos() / (double)TimeUtil.NANOSECONDS_PER_MILLISECOND) + " ms"; + this.msgs[2] = "TPS from last 1m, 5m, 15m: " + String.join(", ", tpsAvg); -+ // Paper end ++ // Paper end - Improve ServerGUI this.values[this.vp++ & 255] = (int)(l * 100L / Runtime.getRuntime().maxMemory()); this.repaint(); } @@ -85,11 +85,11 @@ index 7938029cb7aa6f09f78fb1c648357c36edb68510..4073484fefbf1ec6072013f6903f9237 this.timer.stop(); } + -+ // Paper - start Add tps entry ++ // Paper - Improve ServerGUI + private static String format(double tps) { + return (( tps > 21.0 ) ? "*" : "") + Math.min(Math.round(tps * 100.0) / 100.0, 20.0); // only print * at 21, we commonly peak to 20.02 as the tick sleep is not accurate enough, stop the noise + } -+ // Paper end ++ // Paper end - Improve ServerGUI } diff --git a/src/main/resources/logo.png b/src/main/resources/logo.png new file mode 100644 diff --git a/patches/server/0544-fix-converting-txt-to-json-file.patch b/patches/server/0544-fix-converting-txt-to-json-file.patch index c8419ed7993b..4c5b8abd0b7b 100644 --- a/patches/server/0544-fix-converting-txt-to-json-file.patch +++ b/patches/server/0544-fix-converting-txt-to-json-file.patch @@ -5,35 +5,35 @@ Subject: [PATCH] fix converting txt to json file diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java b/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java -index a20d47f54f12dfc0a5f76dd969238e34c958b618..935dac757280731bfeb0a8f033cbe315ecac46da 100644 +index a20d47f54f12dfc0a5f76dd969238e34c958b618..1c9cf5e1c4ee05724ffcdbd77a19bca1ab2be4d3 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java @@ -18,6 +18,11 @@ public class DedicatedPlayerList extends PlayerList { this.setViewDistance(dedicatedServerProperties.viewDistance); this.setSimulationDistance(dedicatedServerProperties.simulationDistance); super.setUsingWhiteList(dedicatedServerProperties.whiteList.get()); -+ // Paper start - moved from constructor ++ // Paper start - fix converting txt to json file; moved from constructor + } + @Override + public void loadAndSaveFiles() { -+ // Paper end ++ // Paper end - fix converting txt to json file this.loadUserBanList(); this.saveUserBanList(); this.loadIpBanList(); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 2d5e8d624b153f55e28d8a4e008dce11853179cf..b5acccc3339e3e2b817116ecf2af228cb641b175 100644 +index 2d5e8d624b153f55e28d8a4e008dce11853179cf..f6da2fcc1709d0942ed8332b4f59c6b4131a0b78 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -199,6 +199,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface this.paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); // Paper end - initialize global and world-defaults configuration -+ // Paper start - convert old users earlier after PlayerList creation but before file load/save ++ // Paper start - fix converting txt to json file; convert old users earlier after PlayerList creation but before file load/save + if (this.convertOldUsers()) { + this.getProfileCache().save(false); // Paper + } + this.getPlayerList().loadAndSaveFiles(); // Must be after convertNames -+ // Paper end - convert old users earlier after PlayerList creation but before file load/save ++ // Paper end - fix converting txt to json file org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); // Paper - start watchdog thread io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics @@ -48,14 +48,14 @@ index 2d5e8d624b153f55e28d8a4e008dce11853179cf..b5acccc3339e3e2b817116ecf2af228c if (!OldUsersConverter.serverReadyAfterUserconversion(this)) { return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 3aeaf4cb425b141d1a90a40cdee95bc98b2aeb56..72b9c50024e82356491a3d35bf248223f3088b5c 100644 +index d80b05fb33d1f519923f8ef189ff9025335d9390..95c2dfe3d37e1fb7673b03089e53caf5fdfc9c0e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -176,6 +176,7 @@ public abstract class PlayerList { this.maxPlayers = maxPlayers; this.playerIo = saveHandler; } -+ abstract public void loadAndSaveFiles(); // Paper - moved from DedicatedPlayerList constructor ++ abstract public void loadAndSaveFiles(); // Paper - fix converting txt to json file; moved from DedicatedPlayerList constructor public void placeNewPlayer(Connection connection, ServerPlayer player, CommonListenerCookie clientData) { player.isRealPlayer = true; // Paper diff --git a/patches/server/0545-Add-worldborder-events.patch b/patches/server/0545-Add-worldborder-events.patch index 176d1259e459..aa20cc3a084c 100644 --- a/patches/server/0545-Add-worldborder-events.patch +++ b/patches/server/0545-Add-worldborder-events.patch @@ -5,21 +5,21 @@ Subject: [PATCH] Add worldborder events diff --git a/src/main/java/net/minecraft/world/level/border/WorldBorder.java b/src/main/java/net/minecraft/world/level/border/WorldBorder.java -index dd74e8a034022fe72a1652f92712182b4910f651..204f008dc36212e696fba781fede88044b2f735a 100644 +index dd74e8a034022fe72a1652f92712182b4910f651..8e441aafff788eab9e3d6d2fc7b70183d90b9ef4 100644 --- a/src/main/java/net/minecraft/world/level/border/WorldBorder.java +++ b/src/main/java/net/minecraft/world/level/border/WorldBorder.java @@ -123,6 +123,14 @@ public class WorldBorder { } public void setCenter(double x, double z) { -+ // Paper start ++ // Paper start - Add worldborder events + if (this.world != null) { + io.papermc.paper.event.world.border.WorldBorderCenterChangeEvent event = new io.papermc.paper.event.world.border.WorldBorderCenterChangeEvent(world.getWorld(), world.getWorld().getWorldBorder(), new org.bukkit.Location(world.getWorld(), this.getCenterX(), 0, this.getCenterZ()), new org.bukkit.Location(world.getWorld(), x, 0, z)); + if (!event.callEvent()) return; + x = event.getNewCenter().getX(); + z = event.getNewCenter().getZ(); + } -+ // Paper end ++ // Paper end - Add worldborder events this.centerX = x; this.centerZ = z; this.extent.onCenterChange(); @@ -27,7 +27,7 @@ index dd74e8a034022fe72a1652f92712182b4910f651..204f008dc36212e696fba781fede8804 } public void setSize(double size) { -+ // Paper start ++ // Paper start - Add worldborder events + if (this.world != null) { + io.papermc.paper.event.world.border.WorldBorderBoundsChangeEvent event = new io.papermc.paper.event.world.border.WorldBorderBoundsChangeEvent(world.getWorld(), world.getWorld().getWorldBorder(), io.papermc.paper.event.world.border.WorldBorderBoundsChangeEvent.Type.INSTANT_MOVE, getSize(), size, 0); + if (!event.callEvent()) return; @@ -37,7 +37,7 @@ index dd74e8a034022fe72a1652f92712182b4910f651..204f008dc36212e696fba781fede8804 + } + size = event.getNewSize(); + } -+ // Paper end ++ // Paper end - Add worldborder events this.extent = new WorldBorder.StaticBorderExtent(size); Iterator iterator = this.getListeners().iterator(); @@ -45,7 +45,7 @@ index dd74e8a034022fe72a1652f92712182b4910f651..204f008dc36212e696fba781fede8804 } public void lerpSizeBetween(double fromSize, double toSize, long time) { -+ // Paper start ++ // Paper start - Add worldborder events + if (this.world != null) { + io.papermc.paper.event.world.border.WorldBorderBoundsChangeEvent.Type type; + if (fromSize == toSize) { // new size = old size @@ -58,7 +58,7 @@ index dd74e8a034022fe72a1652f92712182b4910f651..204f008dc36212e696fba781fede8804 + toSize = event.getNewSize(); + time = event.getDuration(); + } -+ // Paper end ++ // Paper end - Add worldborder events this.extent = (WorldBorder.BorderExtent) (fromSize == toSize ? new WorldBorder.StaticBorderExtent(toSize) : new WorldBorder.MovingBorderExtent(fromSize, toSize, time)); Iterator iterator = this.getListeners().iterator(); @@ -66,7 +66,7 @@ index dd74e8a034022fe72a1652f92712182b4910f651..204f008dc36212e696fba781fede8804 @Override public WorldBorder.BorderExtent update() { -+ if (world != null && this.getLerpRemainingTime() <= 0L) new io.papermc.paper.event.world.border.WorldBorderBoundsChangeFinishEvent(world.getWorld(), world.getWorld().getWorldBorder(), this.from, this.to, this.lerpDuration).callEvent(); // Paper ++ if (world != null && this.getLerpRemainingTime() <= 0L) new io.papermc.paper.event.world.border.WorldBorderBoundsChangeFinishEvent(world.getWorld(), world.getWorld().getWorldBorder(), this.from, this.to, this.lerpDuration).callEvent(); // Paper - Add worldborder events return (WorldBorder.BorderExtent) (this.getLerpRemainingTime() <= 0L ? WorldBorder.this.new StaticBorderExtent(this.to) : this); } diff --git a/patches/server/0546-added-PlayerNameEntityEvent.patch b/patches/server/0546-Add-PlayerNameEntityEvent.patch similarity index 87% rename from patches/server/0546-added-PlayerNameEntityEvent.patch rename to patches/server/0546-Add-PlayerNameEntityEvent.patch index d5a806015382..805158471a8d 100644 --- a/patches/server/0546-added-PlayerNameEntityEvent.patch +++ b/patches/server/0546-Add-PlayerNameEntityEvent.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sun, 5 Jul 2020 00:33:54 -0700 -Subject: [PATCH] added PlayerNameEntityEvent +Subject: [PATCH] Add PlayerNameEntityEvent diff --git a/src/main/java/net/minecraft/world/item/NameTagItem.java b/src/main/java/net/minecraft/world/item/NameTagItem.java -index af072de68435d1678651bdf2fa13b314ca9c9d58..2941c16ef486345b57ab2dfcd26f0272285d3b5a 100644 +index af072de68435d1678651bdf2fa13b314ca9c9d58..d12b3fb8b5e28ba4524d163878be978b1b42d019 100644 --- a/src/main/java/net/minecraft/world/item/NameTagItem.java +++ b/src/main/java/net/minecraft/world/item/NameTagItem.java @@ -15,9 +15,14 @@ public class NameTagItem extends Item { @@ -15,14 +15,14 @@ index af072de68435d1678651bdf2fa13b314ca9c9d58..2941c16ef486345b57ab2dfcd26f0272 - entity.setCustomName(stack.getHoverName()); - if (entity instanceof Mob) { - ((Mob)entity).setPersistenceRequired(); -+ // Paper start ++ // Paper start - Add PlayerNameEntityEvent + io.papermc.paper.event.player.PlayerNameEntityEvent event = new io.papermc.paper.event.player.PlayerNameEntityEvent(((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity(), entity.getBukkitLivingEntity(), io.papermc.paper.adventure.PaperAdventure.asAdventure(stack.getHoverName()), true); + if (!event.callEvent()) return InteractionResult.PASS; + LivingEntity newEntityLiving = ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getEntity()).getHandle(); + newEntityLiving.setCustomName(event.getName() != null ? io.papermc.paper.adventure.PaperAdventure.asVanilla(event.getName()) : null); + if (event.isPersistent() && newEntityLiving instanceof Mob) { + ((Mob) newEntityLiving).setPersistenceRequired(); -+ // Paper end ++ // Paper end - Add PlayerNameEntityEvent } stack.shrink(1); diff --git a/patches/server/0547-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0547-Prevent-grindstones-from-overstacking-items.patch index 896e20afbadc..8762f5ed4109 100644 --- a/patches/server/0547-Prevent-grindstones-from-overstacking-items.patch +++ b/patches/server/0547-Prevent-grindstones-from-overstacking-items.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent grindstones from overstacking items diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java -index 811d7415ae843347da374d73b4edfe89642d518a..24187a7ce812cb83a9a736bec8dce9e68ccc0798 100644 +index 811d7415ae843347da374d73b4edfe89642d518a..0ebd139f2f51730c190570dc4abb5ff2f2ed2cfa 100644 --- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java +++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java @@ -198,13 +198,13 @@ public class GrindstoneMenu extends AbstractContainerMenu { @@ -20,7 +20,7 @@ index 811d7415ae843347da374d73b4edfe89642d518a..24187a7ce812cb83a9a736bec8dce9e6 } - b0 = 2; -+ b0 = 2; // Paper - the problem line for above change, causing over-stacking ++ b0 = 2; // Paper - add max stack size check & config value; the problem line for above change, causing over-stacking } } else { boolean flag3 = !itemstack.isEmpty(); diff --git a/patches/server/0548-Add-recipe-to-cook-events.patch b/patches/server/0548-Add-recipe-to-cook-events.patch index a2cd4180a6a1..8d7c9824101f 100644 --- a/patches/server/0548-Add-recipe-to-cook-events.patch +++ b/patches/server/0548-Add-recipe-to-cook-events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add recipe to cook events diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 7bcc4ede30f9cd1af2b0560bd3eca18e11a5524c..97b8dc205fb22e17ab457e8d1f4d73a7b2f8cc47 100644 +index 5c65be04ac88f1308eae6a8cde36d5f7e8aad879..14406c07dc505525ddcd257ca7e3779c1338eb05 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -438,7 +438,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @@ -13,33 +13,32 @@ index 7bcc4ede30f9cd1af2b0560bd3eca18e11a5524c..97b8dc205fb22e17ab457e8d1f4d73a7 org.bukkit.inventory.ItemStack result = CraftItemStack.asBukkitCopy(itemstack1); - FurnaceSmeltEvent furnaceSmeltEvent = new FurnaceSmeltEvent(CraftBlock.at(world, blockposition), source, result); -+ FurnaceSmeltEvent furnaceSmeltEvent = new FurnaceSmeltEvent(CraftBlock.at(world, blockposition), source, result, (org.bukkit.inventory.CookingRecipe) recipeholder.toBukkitRecipe()); // Paper ++ FurnaceSmeltEvent furnaceSmeltEvent = new FurnaceSmeltEvent(CraftBlock.at(world, blockposition), source, result, (org.bukkit.inventory.CookingRecipe) recipeholder.toBukkitRecipe()); // Paper - Add recipe to cook events world.getCraftServer().getPluginManager().callEvent(furnaceSmeltEvent); if (furnaceSmeltEvent.isCancelled()) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java -index f706c787f7608f7440a5f5e05e7e9c4cb582368c..f776289eea00bd741ad55bb9bc338dd2c05c8b39 100644 +index f706c787f7608f7440a5f5e05e7e9c4cb582368c..daeced350310020b99ab0244daf7f7a69c29b069 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java -@@ -63,8 +63,10 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { +@@ -63,7 +63,10 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { if (campfire.cookingProgress[i] >= campfire.cookingTime[i]) { SimpleContainer inventorysubcontainer = new SimpleContainer(new ItemStack[]{itemstack}); - ItemStack itemstack1 = (ItemStack) campfire.quickCheck.getRecipeFor(inventorysubcontainer, world).map((recipeholder) -> { -- return ((CampfireCookingRecipe) recipeholder.value()).assemble(inventorysubcontainer, world.registryAccess()); -+ Optional> recipeHolderOptional = campfire.quickCheck.getRecipeFor( inventorysubcontainer, world); ++ // Paper start - Add recipe to cook events; re-use recipeHolderOptional below ++ Optional> recipeHolderOptional = campfire.quickCheck.getRecipeFor(inventorysubcontainer, world); + ItemStack itemstack1 = (ItemStack) recipeHolderOptional.map((recipeholder) -> { -+ // Paper end -+ return recipeholder.value().assemble(inventorysubcontainer, world.registryAccess()); ++ // Paper end - Add recipe to cook events + return ((CampfireCookingRecipe) recipeholder.value()).assemble(inventorysubcontainer, world.registryAccess()); }).orElse(itemstack); - if (itemstack1.isItemEnabled(world.enabledFeatures())) { -@@ -72,7 +74,7 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { +@@ -72,7 +75,7 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { CraftItemStack source = CraftItemStack.asCraftMirror(itemstack); org.bukkit.inventory.ItemStack result = CraftItemStack.asBukkitCopy(itemstack1); - BlockCookEvent blockCookEvent = new BlockCookEvent(CraftBlock.at(world, pos), source, result); -+ BlockCookEvent blockCookEvent = new BlockCookEvent(CraftBlock.at(world, pos), source, result, (org.bukkit.inventory.CookingRecipe) recipeHolderOptional.map(RecipeHolder::toBukkitRecipe).orElse(null)); // Paper ++ BlockCookEvent blockCookEvent = new BlockCookEvent(CraftBlock.at(world, pos), source, result, (org.bukkit.inventory.CookingRecipe) recipeHolderOptional.map(RecipeHolder::toBukkitRecipe).orElse(null)); // Paper - Add recipe to cook events world.getCraftServer().getPluginManager().callEvent(blockCookEvent); if (blockCookEvent.isCancelled()) { diff --git a/patches/server/0558-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0558-Enhance-console-tab-completions-for-brigadier-comman.patch index b0a14d7816d0..84118c31b39e 100644 --- a/patches/server/0558-Enhance-console-tab-completions-for-brigadier-comman.patch +++ b/patches/server/0558-Enhance-console-tab-completions-for-brigadier-comman.patch @@ -208,7 +208,7 @@ index 0000000000000000000000000000000000000000..dd9d77d7c7f1a5a130a1f4c15e5b1e68 + public void setErrorIndex(final int errorIndex) {} +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index b5acccc3339e3e2b817116ecf2af228cb641b175..d0551eb2aae8a26222827fdd7c1b7ee81c8c95b9 100644 +index f6da2fcc1709d0942ed8332b4f59c6b4131a0b78..6d3468cc85b8eb7f44994f0c8365cb63e1cede0d 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -173,7 +173,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -222,7 +222,7 @@ index b5acccc3339e3e2b817116ecf2af228cb641b175..d0551eb2aae8a26222827fdd7c1b7ee8 DedicatedServer.LOGGER.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); @@ -206,6 +206,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface this.getPlayerList().loadAndSaveFiles(); // Must be after convertNames - // Paper end - convert old users earlier after PlayerList creation but before file load/save + // Paper end - fix converting txt to json file org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); // Paper - start watchdog thread + thread.start(); // Paper - Enhance console tab completions for brigadier commands; start console thread after MinecraftServer.console & PaperConfig are initialized io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command diff --git a/patches/server/0611-Missing-Entity-API.patch b/patches/server/0611-Missing-Entity-API.patch index 41f60f26112b..7c40f305359e 100644 --- a/patches/server/0611-Missing-Entity-API.patch +++ b/patches/server/0611-Missing-Entity-API.patch @@ -212,21 +212,21 @@ index 71a08510a928d4570822282bb31f14013ec3834a..4aeab90e778629c355189dfe79c39c4b } diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -index a13a1725356ca4430f1f0a6d121fc08679de62db..bd0165d9ca52665a52fbd9678ed895bf4bed2fe7 100644 +index a13a1725356ca4430f1f0a6d121fc08679de62db..7a990fb47f39da00026d3005d5bb11d3abd14026 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java @@ -695,6 +695,15 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, } -+ // Paper Start - Horse API ++ // Paper start - Horse API + public void setMouthOpen(boolean open) { + this.setFlag(FLAG_OPEN_MOUTH, open); + } + public boolean isMouthOpen() { + return this.getFlag(FLAG_OPEN_MOUTH); + } -+ // Paper End - Horse API ++ // Paper end - Horse API + @Override public InteractionResult mobInteract(Player player, InteractionHand hand) { @@ -235,11 +235,11 @@ index a13a1725356ca4430f1f0a6d121fc08679de62db..bd0165d9ca52665a52fbd9678ed895bf this.setFlag(16, eatingGrass); } -+ // Paper Start - Horse API ++ // Paper start - Horse API + public void setForceStanding(boolean standing) { + this.setFlag(FLAG_STANDING, standing); + } -+ // Paper End - Horse API ++ // Paper end - Horse API public void setStanding(boolean angry) { if (angry) { this.setEating(false); @@ -511,7 +511,7 @@ index cfff1be6a4a4936a2dadb2590abc3d33c123d048..3dac93b0ab5d5acf5b33dc4b0efed603 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java -index b49d1e5c7389e1c2ccfe3a196b5325e5f5b190e7..0ccc20157fb9fdb9c99b942dcb4675db5f928b23 100644 +index b49d1e5c7389e1c2ccfe3a196b5325e5f5b190e7..42342628227742aa7ee6b84caa0e1f13b498babe 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java @@ -66,4 +66,26 @@ public class CraftCat extends CraftTameableAnimal implements Cat { @@ -519,7 +519,7 @@ index b49d1e5c7389e1c2ccfe3a196b5325e5f5b190e7..0ccc20157fb9fdb9c99b942dcb4675db } } + -+ // Paper Start - More cat api ++ // Paper start - More cat api + @Override + public void setLyingDown(boolean lyingDown) { + this.getHandle().setLying(lyingDown); @@ -539,7 +539,7 @@ index b49d1e5c7389e1c2ccfe3a196b5325e5f5b190e7..0ccc20157fb9fdb9c99b942dcb4675db + public boolean isHeadUp() { + return this.getHandle().isRelaxStateOne(); + } -+ // Paper End - More cat api ++ // Paper end - More cat api } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftChicken.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftChicken.java index 64b75682a936e071353707f7615d6ff512fd617d..96f6e2fd9c6b20d34122abfe5c7fba732502d5a0 100644 @@ -748,7 +748,7 @@ index 2cec61a1bb050c1ef81c5fc3d0afafe9ff29d459..97fa4e1e70203194bd939618b2fad926 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 1d94e8276b49de47cdd7570774c7bb13f757d966..db846e623bdf8231991d30c88dcf858d66836ca4 100644 +index 7ff701f2421ca766cc35580f1c93b24f8c843f10..796412196f26f22b639b82192a3288a81ebd10b4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -887,6 +887,22 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0616-Add-PlayerArmSwingEvent.patch b/patches/server/0616-Add-PlayerArmSwingEvent.patch index 4de7fd714c5c..acbbe8938c57 100644 --- a/patches/server/0616-Add-PlayerArmSwingEvent.patch +++ b/patches/server/0616-Add-PlayerArmSwingEvent.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Add PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b502b3bf5f4f0a820b75434e8f620b3df01e18e2..17cf920cc7bbd662a08b075466b8c534f0493802 100644 +index 7e4868e776c95820385d31aaccb9b821f9d62403..bf93470be313017c125e58fdb24a0d6a14e2bb33 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2333,7 +2333,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - } // Paper end + } // Paper end - Call interact event // Arm swing animation - PlayerAnimationEvent event = new PlayerAnimationEvent(this.getCraftPlayer(), (packet.getHand() == InteractionHand.MAIN_HAND) ? PlayerAnimationType.ARM_SWING : PlayerAnimationType.OFF_ARM_SWING); diff --git a/patches/server/0622-Stinger-API.patch b/patches/server/0622-Stinger-API.patch index a23231bd03dd..73ff5d1ee106 100644 --- a/patches/server/0622-Stinger-API.patch +++ b/patches/server/0622-Stinger-API.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Stinger API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index db846e623bdf8231991d30c88dcf858d66836ca4..bd5e80a04a035f670160a5eef94805ab90372cf6 100644 +index 796412196f26f22b639b82192a3288a81ebd10b4..711f4ca8ee42a14e40af86d93a9685b4b9a2ba99 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -337,7 +337,28 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } // Paper end } -+ // Paper Start - Bee Stinger API ++ // Paper start - Bee Stinger API + @Override + public int getBeeStingerCooldown() { + return getHandle().removeStingerTime; @@ -33,7 +33,7 @@ index db846e623bdf8231991d30c88dcf858d66836ca4..bd5e80a04a035f670160a5eef94805ab + Preconditions.checkArgument(count >= 0, "New bee stinger amount must be >= 0"); + getHandle().setStingerCount(count); + } -+ // Paper End - Bee Stinger API ++ // Paper end - Bee Stinger API @Override public void damage(double amount) { this.damage(amount, null); diff --git a/patches/server/0639-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0639-Option-to-prevent-NBT-copy-in-smithing-recipes.patch index c718e90b28bf..32a2c262126e 100644 --- a/patches/server/0639-Option-to-prevent-NBT-copy-in-smithing-recipes.patch +++ b/patches/server/0639-Option-to-prevent-NBT-copy-in-smithing-recipes.patch @@ -86,7 +86,7 @@ index e0b24c140e04a159a7b8aaef64ab94e19fc03dfd..a3686cede266c0205247abcec3ce082a // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTransformRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTransformRecipe.java -index 8c381e2745e7d5b63e72a60c5541b549f0d1b9bf..ced6dc7db823ecabe91d438dbcbd78f5a4bbdcae 100644 +index 8c381e2745e7d5b63e72a60c5541b549f0d1b9bf..3301711afbcf39a5db15d9a7b37bbd95a63dd375 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTransformRecipe.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftSmithingTransformRecipe.java @@ -12,12 +12,17 @@ public class CraftSmithingTransformRecipe extends SmithingTransformRecipe implem @@ -97,7 +97,7 @@ index 8c381e2745e7d5b63e72a60c5541b549f0d1b9bf..ced6dc7db823ecabe91d438dbcbd78f5 + public CraftSmithingTransformRecipe(NamespacedKey key, ItemStack result, RecipeChoice template, RecipeChoice base, RecipeChoice addition, boolean copyNbt) { + super(key, result, template, base, addition, copyNbt); + } -+ // Paper endv ++ // Paper end - Option to prevent NBT copy public static CraftSmithingTransformRecipe fromBukkitRecipe(SmithingTransformRecipe recipe) { if (recipe instanceof CraftSmithingTransformRecipe) { diff --git a/patches/server/0662-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0662-Manually-inline-methods-in-BlockPosition.patch index 3921497e1b52..77789c472c22 100644 --- a/patches/server/0662-Manually-inline-methods-in-BlockPosition.patch +++ b/patches/server/0662-Manually-inline-methods-in-BlockPosition.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Manually inline methods in BlockPosition diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index e5dfc4009cb06e500c6b54ee4228117061758b53..3a9715a81a8551c07ba61850e82b1ccb8a324c80 100644 +index 2e5678554313d0e14d2d855a24c71acce1e1a155..0e75ee7dbb601b795cdbf6079992b4dbfc3cd4ce 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -515,9 +515,9 @@ public class BlockPos extends Vec3i { @@ -15,9 +15,9 @@ index e5dfc4009cb06e500c6b54ee4228117061758b53..3a9715a81a8551c07ba61850e82b1ccb - this.setX(x); - this.setY(y); - this.setZ(z); -+ this.x = x; // Paper - force inline -+ this.y = y; // Paper - force inline -+ this.z = z; // Paper - force inline ++ this.x = x; // Paper - Perf: Manually inline methods in BlockPosition ++ this.y = y; // Paper - Perf: Manually inline methods in BlockPosition ++ this.z = z; // Paper - Perf: Manually inline methods in BlockPosition return this; } @@ -26,26 +26,26 @@ index e5dfc4009cb06e500c6b54ee4228117061758b53..3a9715a81a8551c07ba61850e82b1ccb @Override public BlockPos.MutableBlockPos setX(int i) { - super.setX(i); -+ this.x = i; // Paper - force line ++ this.x = i; // Paper - Perf: Manually inline methods in BlockPosition return this; } @Override public BlockPos.MutableBlockPos setY(int i) { - super.setY(i); -+ this.y = i; // Paper - force line ++ this.y = i; // Paper - Perf: Manually inline methods in BlockPosition return this; } @Override public BlockPos.MutableBlockPos setZ(int i) { - super.setZ(i); -+ this.z = i; // Paper - force line ++ this.z = i; // Paper - Perf: Manually inline methods in BlockPosition return this; } diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java -index e87ef99260bff134529e00b9a75381cecaec01a4..0f8766ea9dc1893f88c5b1e7d6e2a474100efcbb 100644 +index e87ef99260bff134529e00b9a75381cecaec01a4..f14cc137fc0a56495487d64542074b31746b965a 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java +++ b/src/main/java/net/minecraft/core/Vec3i.java @@ -19,9 +19,9 @@ public class Vec3i implements Comparable { @@ -55,9 +55,9 @@ index e87ef99260bff134529e00b9a75381cecaec01a4..0f8766ea9dc1893f88c5b1e7d6e2a474 - private int x; - private int y; - private int z; -+ protected int x; // Paper - force line; protected -+ protected int y; // Paper - force line; protected -+ protected int z; // Paper - force line; protected ++ protected int x; // Paper - Perf: Manually inline methods in BlockPosition; protected ++ protected int y; // Paper - Perf: Manually inline methods in BlockPosition; protected ++ protected int z; // Paper - Perf: Manually inline methods in BlockPosition; protected public static Codec offsetCodec(int maxAbsValue) { return ExtraCodecs.validate(CODEC, (vec) -> { diff --git a/patches/server/0701-Fix-Spigot-growth-modifiers.patch b/patches/server/0701-Fix-Spigot-growth-modifiers.patch index ddc7bdbf9b8b..abf48a38c52d 100644 --- a/patches/server/0701-Fix-Spigot-growth-modifiers.patch +++ b/patches/server/0701-Fix-Spigot-growth-modifiers.patch @@ -13,14 +13,14 @@ Co-authored-by: Noah van der Aa Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java -index 95f897b9ef73c880aff1cfe35fe490683badfd44..788d8a04398482fdfd0fe89e519b2a6c57410ec3 100644 +index 95f897b9ef73c880aff1cfe35fe490683badfd44..1ec8c2d24ec8468d20f322d67143b9454ff266eb 100644 --- a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java @@ -51,9 +51,18 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl return to.setValue(BERRIES, from.getValue(BERRIES)); } -+ // Paper start - Fix Spigot growth modifiers ++ // Paper start - Fix Spigot growth modifiers + @Override + protected BlockState getGrowIntoState(BlockState state, RandomSource random, @javax.annotation.Nullable Level level) { + final boolean value = random.nextFloat() < (level != null ? (0.11F * (level.spigotConfig.glowBerryModifier / 100.0F)) : 0.11F); diff --git a/patches/server/0706-Collision-optimisations.patch b/patches/server/0706-Collision-optimisations.patch index c430a0452cb6..b683eaa08087 100644 --- a/patches/server/0706-Collision-optimisations.patch +++ b/patches/server/0706-Collision-optimisations.patch @@ -2153,19 +2153,19 @@ index 0000000000000000000000000000000000000000..1f42bdfdb052056e62a939ab0d1944f8 + +} diff --git a/src/main/java/net/minecraft/core/Direction.java b/src/main/java/net/minecraft/core/Direction.java -index d0a8092bf57a29ab7c00ec0ddf52a9fdb2a33267..392406722b0a040c1d41fdc1154d75d39f6e9c86 100644 +index 073c717bb676b9e99aada00c349fb7eee91df1e7..2a9fc1f1dfc0c5894c1e74dad5a79ae9b02ac74f 100644 --- a/src/main/java/net/minecraft/core/Direction.java +++ b/src/main/java/net/minecraft/core/Direction.java @@ -57,6 +57,21 @@ public enum Direction implements StringRepresentable { private final int adjY; private final int adjZ; - // Paper end + // Paper end - Perf: Inline shift direction fields + // Paper start - optimise collisions + private static final int RANDOM_OFFSET = 2017601568; + private Direction opposite; + static { + for (final Direction direction : VALUES) { -+ direction.opposite = from3DDataValue(direction.oppositeIndex);; ++ direction.opposite = from3DDataValue(direction.oppositeIndex); + } + } + @@ -2179,7 +2179,7 @@ index d0a8092bf57a29ab7c00ec0ddf52a9fdb2a33267..392406722b0a040c1d41fdc1154d75d3 private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) { this.data3d = id; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6571692d00f88947316454e2f10cac30e3756ac0..0492704f7f365310d7ea930c30330a468a39c0de 100644 +index f35bd06e3ae16922dfde76abda5b6f938f5b50f7..cb18d1a0ad8c06336d4bfe53b5231fdb9164ae60 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -469,7 +469,7 @@ public class ServerPlayer extends Player { @@ -2201,7 +2201,7 @@ index 6571692d00f88947316454e2f10cac30e3756ac0..0492704f7f365310d7ea930c30330a46 } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 1bbcae2411205799b00dba7ee82c3ceb461289cf..5921b4c5c38354c4782783d0debddb8bf4e356c7 100644 +index 91fa10899f7f10dc056b4668c1f9758a8de09b9b..81303bc614b47fdd6db90ad1fbdaf9fed65b6cf3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -909,7 +909,7 @@ public abstract class PlayerList { @@ -2214,7 +2214,7 @@ index 1bbcae2411205799b00dba7ee82c3ceb461289cf..5921b4c5c38354c4782783d0debddb8b entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3086ded2c65b2d623a50401fb0a1612d073da450..5be92231bf62285f29dcf32b2ef65baaf5755804 100644 +index 9b9c09f57905d52721e9ab911dbb4df67d235ea7..e19204ff0d29d522ae653805429dc76f628f2ebc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1217,9 +1217,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0709-Add-more-Campfire-API.patch b/patches/server/0709-Add-more-Campfire-API.patch index c211e5932fc1..6f1d195e6626 100644 --- a/patches/server/0709-Add-more-Campfire-API.patch +++ b/patches/server/0709-Add-more-Campfire-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add more Campfire API diff --git a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java -index f776289eea00bd741ad55bb9bc338dd2c05c8b39..423550424e82ed74e0b38cbafd89649539cc1012 100644 +index daeced350310020b99ab0244daf7f7a69c29b069..6b4ced63bf489a02b1e11ab9b1dd768e2ea0861d 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java @@ -42,6 +42,7 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { @@ -34,7 +34,7 @@ index f776289eea00bd741ad55bb9bc338dd2c05c8b39..423550424e82ed74e0b38cbafd896495 if (campfire.cookingProgress[i] >= campfire.cookingTime[i]) { SimpleContainer inventorysubcontainer = new SimpleContainer(new ItemStack[]{itemstack}); -@@ -171,6 +175,16 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { +@@ -172,6 +176,16 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { System.arraycopy(aint, 0, this.cookingTime, 0, Math.min(this.cookingTime.length, aint.length)); } @@ -51,7 +51,7 @@ index f776289eea00bd741ad55bb9bc338dd2c05c8b39..423550424e82ed74e0b38cbafd896495 } @Override -@@ -179,6 +193,13 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { +@@ -180,6 +194,13 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { ContainerHelper.saveAllItems(nbt, this.items, true); nbt.putIntArray("CookingTimes", this.cookingProgress); nbt.putIntArray("CookingTotalTimes", this.cookingTime); diff --git a/patches/server/0715-Add-API-for-item-entity-health.patch b/patches/server/0715-Add-API-for-item-entity-health.patch index 902552710c0d..c7354d7143e9 100644 --- a/patches/server/0715-Add-API-for-item-entity-health.patch +++ b/patches/server/0715-Add-API-for-item-entity-health.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add API for item entity health public net.minecraft.world.entity.item.ItemEntity health diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -index cbdac5a439795d429a1364a7eafc4783cff51d54..b1bbab951ef9a3d2bd98cc54665ba824263542eb 100644 +index 4a15c3786edbfeae3367c0b20fb6aee11d62aea6..cbfd4cf1d7d32757cf124d1aaa4b83d8a155868f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java @@ -98,6 +98,21 @@ public class CraftItem extends CraftEntity implements Item { @@ -29,6 +29,6 @@ index cbdac5a439795d429a1364a7eafc4783cff51d54..b1bbab951ef9a3d2bd98cc54665ba824 + this.getHandle().health = health; + } + } - // Paper End + // Paper end @Override diff --git a/patches/server/0730-Add-configurable-height-for-slime-spawn.patch b/patches/server/0730-Add-configurable-height-for-slime-spawn.patch index 0f64c618613a..6a98e03ab7b9 100644 --- a/patches/server/0730-Add-configurable-height-for-slime-spawn.patch +++ b/patches/server/0730-Add-configurable-height-for-slime-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add configurable height for slime spawn diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index 37724831ba9db2d0fb2e7756816e0355bc760815..0ce75b221241b412fe7d8873bdc4a49370b6410b 100644 +index a89dec53d68579271d2a259e1a53537262bd0df6..c3dc61f096c0c27c83c34e023994a65dc82706bc 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java @@ -336,7 +336,11 @@ public class Slime extends Mob implements Enemy { @@ -29,7 +29,7 @@ index 37724831ba9db2d0fb2e7756816e0355bc760815..0ce75b221241b412fe7d8873bdc4a493 + // Paper start - Replace rules for Height in Slime Chunks + final double maxHeightSlimeChunk = world.getMinecraftWorld().paperConfig().entities.spawning.slimeSpawnHeight.slimeChunk.maximum; + if (random.nextInt(10) == 0 && flag && pos.getY() < maxHeightSlimeChunk) { -+ // Paper end - Replace rules for Height in Swamp Biome ++ // Paper end - Replace rules for Height in Slime Chunks return checkMobSpawnRules(type, world, spawnReason, pos, random); } } diff --git a/patches/server/0734-Freeze-Tick-Lock-API.patch b/patches/server/0734-Freeze-Tick-Lock-API.patch index 2bd66a4d419c..4bdca68930ce 100644 --- a/patches/server/0734-Freeze-Tick-Lock-API.patch +++ b/patches/server/0734-Freeze-Tick-Lock-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a5820d750e88918ef819be0d0896e31b628ab302..e61cb14e9451b242c8324d81b462e80832ef73aa 100644 +index f3cb6eac54b245ff6cbe3a1659ac9b7a1b0856a0..276c7dd6af228f404cec7aeb58dad10f2a23a18b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -409,6 +409,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -46,7 +46,7 @@ index a5820d750e88918ef819be0d0896e31b628ab302..e61cb14e9451b242c8324d81b462e808 } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d3a1fcd144f513d20fbc9a5688a45fa750f512ae..9561bbe37c57f36edee9f77d69fff363db886b2d 100644 +index 95442c5e5abfd916a1b0add6381a8f57b36125e7..13b4a2eae01ee51546e6e5e3c4093e5389971d7d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3452,7 +3452,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -59,14 +59,14 @@ index d3a1fcd144f513d20fbc9a5688a45fa750f512ae..9561bbe37c57f36edee9f77d69fff363 if (this.isInPowderSnow && this.canFreeze()) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 47be73dbb0dd1b6cef0113042be6a80cb6209252..1879ec9e275194cb83f30ec47930a3814fbe1da3 100644 +index 47be73dbb0dd1b6cef0113042be6a80cb6209252..b7df71633527dce2e4f954caee249e3b31b82226 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -320,6 +320,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return this.getHandle().isFullyFrozen(); } -+ // Paper Start - Freeze Tick Lock API ++ // Paper start - Freeze Tick Lock API + @Override + public boolean isFreezeTickingLocked() { + return this.entity.freezeLocked; diff --git a/patches/server/0755-More-Projectile-API.patch b/patches/server/0755-More-Projectile-API.patch index 1bf37aade4ee..6b204f0fc1fb 100644 --- a/patches/server/0755-More-Projectile-API.patch +++ b/patches/server/0755-More-Projectile-API.patch @@ -213,7 +213,7 @@ index 73cb7aa01af3eed71b05b1a539f082b26dcd8d60..2783e218d5e5c24787429237974e1967 @Override public Vector getDirection() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java -index c9e15a9d82dee935293b2e7e233f5b9b2d822448..13b09465952dca2e95647ddb9753a7fe2db51720 100644 +index c9e15a9d82dee935293b2e7e233f5b9b2d822448..fedbfbac02b73382aacc69f8a1e5a3e746c55ea2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java @@ -15,24 +15,26 @@ import org.bukkit.inventory.meta.FireworkMeta; @@ -239,7 +239,7 @@ index c9e15a9d82dee935293b2e7e233f5b9b2d822448..13b09465952dca2e95647ddb9753a7fe - if (this.item.getType() != Material.FIREWORK_ROCKET) { - this.item.setType(Material.FIREWORK_ROCKET); - } -+// Paper Start - Expose firework item directly ++// Paper start - Expose firework item directly +// ItemStack item = this.getHandle().getEntityData().get(FireworkRocketEntity.DATA_ID_FIREWORKS_ITEM); +// +// if (item.isEmpty()) { @@ -253,7 +253,7 @@ index c9e15a9d82dee935293b2e7e233f5b9b2d822448..13b09465952dca2e95647ddb9753a7fe +// if (this.item.getType() != Material.FIREWORK_ROCKET) { +// this.item.setType(Material.FIREWORK_ROCKET); +// } -+ // Paper End - Expose firework item directly ++ // Paper end - Expose firework item directly } @Override @@ -509,7 +509,7 @@ index 20f9735c7cb76024e15dbdca7684f5c560876175..8a6af0db8e0aa0cffbf19584be747076 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 1894fddf867df210d041307d72118eacde9fe5cb..de35569880efc2267e17c44b5011533fd348c2f3 100644 +index 22125565e647f1eb0dd99493b2b33090a8335541..bd453bdcf44f94fea312b58282bb0e8c23ea7189 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -831,19 +831,19 @@ public class CraftEventFactory { diff --git a/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch index af0055bdcd46..616ea7f9e77e 100644 --- a/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Pass ServerLevel for gamerule callbacks diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 753bec96a829a153dc54b5e1013359b86f1776b3..d721c96b2b76209176f295896bff3bd03c241c4f 100644 +index 3fb0d020493db8e5bde9f6fc76637c74b80fd791..0f562a8e0c5d4b2907174c9409977570869bd331 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -304,7 +304,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -18,7 +18,7 @@ index 753bec96a829a153dc54b5e1013359b86f1776b3..d721c96b2b76209176f295896bff3bd0 if (dedicatedserverproperties.enableQuery) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5e0466b0522ea325b2c37e3d4c80f3d61c1816fe..5433681fc3765d744193556217169995fbbb3c7d 100644 +index 7eba2244e1e92dec7b81dea44b05d5e59887d242..2301445fb77cb8777632d81b60cbc04a42d86533 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2761,7 +2761,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -31,7 +31,7 @@ index 5e0466b0522ea325b2c37e3d4c80f3d61c1816fe..5433681fc3765d744193556217169995 } break; diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..dd03426943dd380cefe12afe3e63c3180a22ec4f 100644 +index f3cdf1fa7731eb7bb1cb89aa6a37204d81257cb0..0112ef51815c4fab38b95d5e917d335eeaaa21cd 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java @@ -52,7 +52,7 @@ public class GameRules { @@ -92,8 +92,8 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..dd03426943dd380cefe12afe3e63c318 this.callback = changeCallback; @@ -289,10 +289,10 @@ public class GameRules { - public void setFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey) { // Paper - this.updateFromArgument(context, name, gameRuleKey); // Paper + public void setFromArgument(CommandContext context, String name, GameRules.Key gameRuleKey) { // Paper - Add WorldGameRuleChangeEvent + this.updateFromArgument(context, name, gameRuleKey); // Paper - Add WorldGameRuleChangeEvent - this.onChanged(((CommandSourceStack) context.getSource()).getServer()); + this.onChanged(((CommandSourceStack) context.getSource()).getLevel()); // Paper - Pass ServerLevel for gamerule callbacks } @@ -167,22 +167,22 @@ index 2a480026c3bfb06e6556fe5b11d9712c8e02debe..dd03426943dd380cefe12afe3e63c318 this.onChanged(server); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index cd7367672b91829d1ffef73e32062af730df7d95..19f91e08664c996b540447a46cc79e89c8e55023 100644 +index f41d56da115c14d22d7256be6f16409fdf0e49cd..6b40538ecf9b42473114c3f2acfff5ff0bcf2167 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2038,7 +2038,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { - // Paper end + // Paper end - Add WorldGameRuleChangeEvent GameRules.Value handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule)); - handle.deserialize(event.getValue()); // Paper + handle.deserialize(event.getValue()); // Paper - Add WorldGameRuleChangeEvent - handle.onChanged(this.getHandle().getServer()); + handle.onChanged(this.getHandle()); // Paper - Pass ServerLevel for gamerule callbacks return true; } @@ -2079,7 +2079,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { - // Paper end + // Paper end - Add WorldGameRuleChangeEvent GameRules.Value handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule.getName())); - handle.deserialize(event.getValue()); // Paper + handle.deserialize(event.getValue()); // Paper - Add WorldGameRuleChangeEvent - handle.onChanged(this.getHandle().getServer()); + handle.onChanged(this.getHandle()); // Paper - Pass ServerLevel for gamerule callbacks return true; diff --git a/patches/server/0779-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0779-Fire-CauldronLevelChange-on-initial-fill.patch index a5bfb82f016c..0ad967e4e4b2 100644 --- a/patches/server/0779-Fire-CauldronLevelChange-on-initial-fill.patch +++ b/patches/server/0779-Fire-CauldronLevelChange-on-initial-fill.patch @@ -7,7 +7,7 @@ Also don't fire level events or game events if stalactite drip is cancelled diff --git a/src/main/java/net/minecraft/core/cauldron/CauldronInteraction.java b/src/main/java/net/minecraft/core/cauldron/CauldronInteraction.java -index 4c9334dde0734a3550a810845cee53f474e9c96b..dc1d20691ae5bd9026143e143a9bfdc1b6cfd6eb 100644 +index 4c9334dde0734a3550a810845cee53f474e9c96b..50fd3e43b4971cd72efd1f609f0cdc4b0f57bed4 100644 --- a/src/main/java/net/minecraft/core/cauldron/CauldronInteraction.java +++ b/src/main/java/net/minecraft/core/cauldron/CauldronInteraction.java @@ -80,7 +80,7 @@ public interface CauldronInteraction { @@ -15,7 +15,7 @@ index 4c9334dde0734a3550a810845cee53f474e9c96b..dc1d20691ae5bd9026143e143a9bfdc1 if (!world.isClientSide) { // CraftBukkit start - if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, Blocks.WATER_CAULDRON.defaultBlockState(), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY)) { -+ if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, Blocks.WATER_CAULDRON.defaultBlockState(), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY, false)) { // Paper - Call CauldronLevelChange ++ if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, Blocks.WATER_CAULDRON.defaultBlockState(), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY, false)) { // Paper - Call CauldronLevelChangeEvent return InteractionResult.SUCCESS; } // CraftBukkit end @@ -24,7 +24,7 @@ index 4c9334dde0734a3550a810845cee53f474e9c96b..dc1d20691ae5bd9026143e143a9bfdc1 if (!world.isClientSide) { // CraftBukkit start - if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, iblockdata.cycle(LayeredCauldronBlock.LEVEL), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY)) { -+ if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, iblockdata.cycle(LayeredCauldronBlock.LEVEL), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY, false)) { // Paper - Call CauldronLevelChange ++ if (!LayeredCauldronBlock.changeLevel(iblockdata, world, blockposition, iblockdata.cycle(LayeredCauldronBlock.LEVEL), entityhuman, CauldronLevelChangeEvent.ChangeReason.BOTTLE_EMPTY, false)) { // Paper - Call CauldronLevelChangeEvent return InteractionResult.SUCCESS; } // CraftBukkit end @@ -33,7 +33,7 @@ index 4c9334dde0734a3550a810845cee53f474e9c96b..dc1d20691ae5bd9026143e143a9bfdc1 if (!world.isClientSide) { // CraftBukkit start - if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.CAULDRON.defaultBlockState(), player, CauldronLevelChangeEvent.ChangeReason.BUCKET_FILL)) { -+ if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.CAULDRON.defaultBlockState(), player, CauldronLevelChangeEvent.ChangeReason.BUCKET_FILL, false)) { // Paper - Call CauldronLevelChange ++ if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.CAULDRON.defaultBlockState(), player, CauldronLevelChangeEvent.ChangeReason.BUCKET_FILL, false)) { // Paper - Call CauldronLevelChangeEvent return InteractionResult.SUCCESS; } // CraftBukkit end @@ -42,12 +42,12 @@ index 4c9334dde0734a3550a810845cee53f474e9c96b..dc1d20691ae5bd9026143e143a9bfdc1 if (!world.isClientSide) { // CraftBukkit start - if (!LayeredCauldronBlock.changeLevel(state, world, pos, state, player, CauldronLevelChangeEvent.ChangeReason.BUCKET_EMPTY)) { -+ if (!LayeredCauldronBlock.changeLevel(state, world, pos, state, player, CauldronLevelChangeEvent.ChangeReason.BUCKET_EMPTY, false)) { // Paper - Call CauldronLevelChange ++ if (!LayeredCauldronBlock.changeLevel(state, world, pos, state, player, CauldronLevelChangeEvent.ChangeReason.BUCKET_EMPTY, false)) { // Paper - Call CauldronLevelChangeEvent return InteractionResult.SUCCESS; } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/CauldronBlock.java b/src/main/java/net/minecraft/world/level/block/CauldronBlock.java -index 588b3e911d9b22dad2928ea9e32e8a8a3a8e9b96..274dc56a71fb05060de42169df34dfd8097f2b62 100644 +index 588b3e911d9b22dad2928ea9e32e8a8a3a8e9b96..47b6b83842201620bd6620f5acf11bb14334e35d 100644 --- a/src/main/java/net/minecraft/world/level/block/CauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CauldronBlock.java @@ -43,10 +43,18 @@ public class CauldronBlock extends AbstractCauldronBlock { @@ -55,19 +55,19 @@ index 588b3e911d9b22dad2928ea9e32e8a8a3a8e9b96..274dc56a71fb05060de42169df34dfd8 if (CauldronBlock.shouldHandlePrecipitation(world, precipitation)) { if (precipitation == Biome.Precipitation.RAIN) { - world.setBlockAndUpdate(pos, Blocks.WATER_CAULDRON.defaultBlockState()); -+ // Paper start - Call CauldronLevelChange ++ // Paper start - Call CauldronLevelChangeEvent + if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.WATER_CAULDRON.defaultBlockState(), null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL, false)) { // avoid duplicate game event + return; + } -+ // Paper end - Call CauldronLevelChange ++ // Paper end - Call CauldronLevelChangeEvent world.gameEvent((Entity) null, GameEvent.BLOCK_CHANGE, pos); } else if (precipitation == Biome.Precipitation.SNOW) { - world.setBlockAndUpdate(pos, Blocks.POWDER_SNOW_CAULDRON.defaultBlockState()); -+ // Paper start - Call CauldronLevelChange ++ // Paper start - Call CauldronLevelChangeEvent + if (!LayeredCauldronBlock.changeLevel(state, world, pos, Blocks.POWDER_SNOW_CAULDRON.defaultBlockState(), null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL, false)) { // avoid duplicate game event + return; + } -+ // Paper end - Call CauldronLevelChange ++ // Paper end - Call CauldronLevelChangeEvent world.gameEvent((Entity) null, GameEvent.BLOCK_CHANGE, pos); } @@ -76,25 +76,25 @@ index 588b3e911d9b22dad2928ea9e32e8a8a3a8e9b96..274dc56a71fb05060de42169df34dfd8 if (fluid == Fluids.WATER) { iblockdata1 = Blocks.WATER_CAULDRON.defaultBlockState(); - LayeredCauldronBlock.changeLevel(state, world, pos, iblockdata1, null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL); // CraftBukkit -+ // Paper start - Call CauldronLevelChange; don't send level event or game event if cancelled ++ // Paper start - Call CauldronLevelChangeEvent; don't send level event or game event if cancelled + if (!LayeredCauldronBlock.changeLevel(state, world, pos, iblockdata1, null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL)) { // CraftBukkit + return; + } -+ // Paper end - Call CauldronLevelChange ++ // Paper end - Call CauldronLevelChangeEvent world.levelEvent(1047, pos, 0); } else if (fluid == Fluids.LAVA) { iblockdata1 = Blocks.LAVA_CAULDRON.defaultBlockState(); - LayeredCauldronBlock.changeLevel(state, world, pos, iblockdata1, null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL); // CraftBukkit -+ // Paper start - Call CauldronLevelChange; don't send level event or game event if cancelled ++ // Paper start - Call CauldronLevelChangeEvent; don't send level event or game event if cancelled + if (!LayeredCauldronBlock.changeLevel(state, world, pos, iblockdata1, null, CauldronLevelChangeEvent.ChangeReason.NATURAL_FILL)) { // CraftBukkit + return; + } -+ // Paper end - Call CauldronLevelChange ++ // Paper end - Call CauldronLevelChangeEvent world.levelEvent(1046, pos, 0); } diff --git a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java -index 18ca086e28f4295cb9303919222d7c8ae0ca5d9a..9c828328f5b8c1fe723437ed4a42cc1fe6a23d3d 100644 +index 18ca086e28f4295cb9303919222d7c8ae0ca5d9a..542bc6be48d5c53eee988156e7aa6ecfccb51069 100644 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java @@ -101,7 +101,13 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock { @@ -102,13 +102,13 @@ index 18ca086e28f4295cb9303919222d7c8ae0ca5d9a..9c828328f5b8c1fe723437ed4a42cc1f // CraftBukkit start - public static boolean changeLevel(BlockState iblockdata, Level world, BlockPos blockposition, BlockState newBlock, Entity entity, CauldronLevelChangeEvent.ChangeReason reason) { -+ // Paper start - Call CauldronLevelChange ++ // Paper start - Call CauldronLevelChangeEvent + public static boolean changeLevel(BlockState iblockdata, Level world, BlockPos blockposition, BlockState newBlock, @javax.annotation.Nullable Entity entity, CauldronLevelChangeEvent.ChangeReason reason) { // Paper - entity is nullable + return changeLevel(iblockdata, world, blockposition, newBlock, entity, reason, true); + } + + public static boolean changeLevel(BlockState iblockdata, Level world, BlockPos blockposition, BlockState newBlock, @javax.annotation.Nullable Entity entity, CauldronLevelChangeEvent.ChangeReason reason, boolean sendGameEvent) { // Paper - entity is nullable -+ // Paper end - Call CauldronLevelChange ++ // Paper end - Call CauldronLevelChangeEvent CraftBlockState newState = CraftBlockStates.getBlockState(world, blockposition); newState.setData(newBlock); @@ -117,7 +117,7 @@ index 18ca086e28f4295cb9303919222d7c8ae0ca5d9a..9c828328f5b8c1fe723437ed4a42cc1f } newState.update(true); - world.gameEvent(GameEvent.BLOCK_CHANGE, blockposition, GameEvent.Context.of(newBlock)); -+ if (sendGameEvent) world.gameEvent(GameEvent.BLOCK_CHANGE, blockposition, GameEvent.Context.of(newBlock)); // Paper - Call CauldronLevelChange ++ if (sendGameEvent) world.gameEvent(GameEvent.BLOCK_CHANGE, blockposition, GameEvent.Context.of(newBlock)); // Paper - Call CauldronLevelChangeEvent return true; } // CraftBukkit end diff --git a/patches/server/0783-Expand-FallingBlock-API.patch b/patches/server/0783-Expand-FallingBlock-API.patch index 61bcc91c7626..4e95766e5889 100644 --- a/patches/server/0783-Expand-FallingBlock-API.patch +++ b/patches/server/0783-Expand-FallingBlock-API.patch @@ -54,7 +54,7 @@ index fc33d05cf1a3cceb220dab1ee1da33ffe37834db..21a4669b01e9c57100224e20500bc23f public void setHurtsEntities(float fallHurtAmount, int fallHurtMax) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java -index a7a3f74b846112d752fe04162b30805961457b11..2ba8f461d32a7c517a93461bf6f8f5cd4defdef4 100644 +index a7a3f74b846112d752fe04162b30805961457b11..1359d25a32b4a5d5e8e68ce737bd19f7b5afaf69 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java @@ -33,6 +33,31 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock { @@ -93,7 +93,7 @@ index a7a3f74b846112d752fe04162b30805961457b11..2ba8f461d32a7c517a93461bf6f8f5cd this.setHurtEntities(true); } } -+ // Paper Start - Expand FallingBlock API ++ // Paper start - Expand FallingBlock API + @Override + public boolean doesAutoExpire() { + return this.getHandle().autoExpire; @@ -103,5 +103,5 @@ index a7a3f74b846112d752fe04162b30805961457b11..2ba8f461d32a7c517a93461bf6f8f5cd + public void shouldAutoExpire(boolean autoExpires) { + this.getHandle().autoExpire = autoExpires; + } -+ // Paper End - Expand FallingBlock API ++ // Paper end - Expand FallingBlock API } diff --git a/patches/server/0792-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0792-Add-Alternate-Current-redstone-implementation.patch index 28ea7638a84e..406677760eb3 100644 --- a/patches/server/0792-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/0792-Add-Alternate-Current-redstone-implementation.patch @@ -2008,13 +2008,13 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index cb2f5d727971c809bcb3eea0db04de4fa91459fb..17f753ac54e73f3644d71c3ef5cbdfb850f5766c 100644 +index cd20322f88c2952b451b226c4c5c3f41879d0305..092be422770ceb11446b99f6e2d746d1c9ce4f88 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper - public boolean hasEntityMoveEvent = false; // Paper + public boolean hasEntityMoveEvent = false; // Paper - Add EntityMoveEvent + private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current) public static Throwable getAddToWorldStackTrace(Entity entity) { final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); diff --git a/patches/server/0811-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0811-Custom-Chat-Completion-Suggestions-API.patch index 059a0f3ae22c..42d78c2ac69c 100644 --- a/patches/server/0811-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/server/0811-Custom-Chat-Completion-Suggestions-API.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8850e7af1bc3668a7bec95ffc8c25053cfb07f21..80856e4dc50bbcc3b210a6599f12a85f64865bba 100644 +index 0de707a3400d42249b49e8f1899879d7e361b2a8..fe87c5ad1f206c71088342ca8f3865a0fdbdc2fb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -647,6 +647,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } - // Paper end - sendOpLevel API + // Paper end - Add sendOpLevel API + // Paper start - custom chat completions API + @Override diff --git a/patches/server/0813-Collision-API.patch b/patches/server/0813-Collision-API.patch index 1a0f00b2eae1..5bc997b2687b 100644 --- a/patches/server/0813-Collision-API.patch +++ b/patches/server/0813-Collision-API.patch @@ -22,14 +22,14 @@ index 42def68f0c682afe7628ff0b9a537e74d77e558c..884343c4ecdecdecb4117ce61d14e057 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 027fa02e855e14b1554ddd141d0a937a64ec99e0..763462e4cf8abdd654b582150fab09f05e64f990 100644 +index ee1dc74b2f48bf8d684562de895ab631cf792a30..dab7108644aefe69448b5e361099d97354c8db1a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1124,4 +1124,19 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed. } // Paper end -+ // Paper Start - Collision API ++ // Paper start - Collision API + @Override + public boolean collidesAt(@org.jetbrains.annotations.NotNull Location location) { + net.minecraft.world.phys.AABB aabb = this.getHandle().getBoundingBoxAt(location.getX(), location.getY(), location.getZ()); @@ -43,5 +43,5 @@ index 027fa02e855e14b1554ddd141d0a937a64ec99e0..763462e4cf8abdd654b582150fab09f0 + + return !this.getHandle().level().noCollision(this.getHandle(), aabb); + } -+ // Paper End - Collision API ++ // Paper end - Collision API } diff --git a/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch index 38b9535b2db7..e6a806fdc5df 100644 --- a/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch @@ -67,9 +67,6 @@ https://bugs.mojang.com/browse/MC-200092 https://bugs.mojang.com/browse/MC-158900 Fix error when joining after tempban expired -https://bugs.mojang.com/browse/MC-259571 - Fix last gamemode not being saved on death or reload - == AT == public net/minecraft/world/entity/Mob leashInfoTag @@ -129,7 +126,7 @@ index 534493aaddced9200e1618d5eabf2b176a1f35b6..a58c47b16254262ec705a8f986ef42c7 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1089c0ad619784d25b1384db2f09eebb53fa4536..4ffb462f051744d5f7f7b4cf0c49f5d1533d1d53 100644 +index 82a71a150c555dd4dfe0ce03a3addba53fda5387..9ef3445aadf98d205a60803f459d07c4ac820ba9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1032,7 +1032,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -142,7 +139,7 @@ index 1089c0ad619784d25b1384db2f09eebb53fa4536..4ffb462f051744d5f7f7b4cf0c49f5d1 if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c03ea45afb5537058cdeecc654184338b9aa0bd8..6251e68eff87a0b26d6123fdb658749e90fcfc42 100644 +index d27793e21f9352896a96d5ccfdd0281b0b102a03..6cf989b4827b78d25bcb0ad4b683b6b1569e12dd 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -468,14 +468,14 @@ public class ServerPlayer extends Player { @@ -176,7 +173,7 @@ index c14ab35c4336c025c242e8a350ac4b8d1b1d5c78..15f6bd2e61c02392e8383dc93d734990 this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6e47d01db9e7f8519e560681922a0f15980d6acc..cd0f6f3c1cf2a4004e238d0e23104209d6384c4e 100644 +index 92b88e82e9a49a0e967a7e694f1d2f4ade8adbf1..fbf388fe93383daf5e87e54a8a413a2239bfdc69 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -711,8 +711,10 @@ public abstract class PlayerList { @@ -301,7 +298,7 @@ index 110dd5418b0512a2f27f0c4d5a5f1812356a6a12..5d247ac38fe8a61603b3d934f3000bcd } diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -index bd0165d9ca52665a52fbd9678ed895bf4bed2fe7..8fe5a4ccf474c094b8081828c93e8973cdabb6ed 100644 +index 7a990fb47f39da00026d3005d5bb11d3abd14026..ea5fffa7e045d854ce9522f00246e3746f40f028 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java @@ -252,7 +252,13 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, @@ -375,11 +372,11 @@ index 4a0f4c83228187a2082ad029680056b1801f77bd..31831811ce16265e9828fa34d9e67d8a player.awardStat(Stats.RAID_TRIGGER); CriteriaTriggers.BAD_OMEN.trigger(player); diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index 685c35419de7e3c4e854a28118a243e65250ef59..0b1a0be964d799f1706c273092dc653fa04e8014 100644 +index 611cbe0e47474f94cd203ac86ca9e80cab621134..de919d72e6e3ef160c7d22ca6a4e9f79a1fe493e 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java @@ -178,6 +178,11 @@ public class BeaconMenu extends AbstractContainerMenu { - // Paper end + // Paper end - Add PlayerChangeBeaconEffectEvent public void updateEffects(Optional primary, Optional secondary) { + // Paper start - fix MC-174630 - validate secondary power @@ -388,7 +385,7 @@ index 685c35419de7e3c4e854a28118a243e65250ef59..0b1a0be964d799f1706c273092dc653f + } + // Paper end if (this.paymentSlot.hasItem()) { - // Paper start + // Paper start - Add PlayerChangeBeaconEffectEvent io.papermc.paper.event.player.PlayerChangeBeaconEffectEvent event = new io.papermc.paper.event.player.PlayerChangeBeaconEffectEvent((org.bukkit.entity.Player) this.player.player.getBukkitEntity(), convert(primary), convert(secondary), this.access.getLocation().getBlock()); diff --git a/src/main/java/net/minecraft/world/item/BundleItem.java b/src/main/java/net/minecraft/world/item/BundleItem.java index 10b0720ce7eed58fa3cd8c8051efa6225f7d73e1..ac0bc87f60c4e1562d1301522183e449558d42f8 100644 @@ -442,7 +439,7 @@ index 6e45582f8ea7dd2a46f58369c5581764538bff0d..3ecc92439fc85d224ff52f41c5e34079 + // Paper end } diff --git a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java -index 5199ad9ca36ccd18eb2ff191feaf4331404049d2..f41ffeb9062b661c2b8cf09c0d6848550591eaa7 100644 +index 333cc37e4f3ca3ea95191dcaafda6be59ef79b96..91071fa934222c9246547c788e3e6cb18fcaa990 100644 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java @@ -68,7 +68,7 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock { @@ -455,7 +452,7 @@ index 5199ad9ca36ccd18eb2ff191feaf4331404049d2..f41ffeb9062b661c2b8cf09c0d684855 return; } diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index b7760cc0f85b5db37d5a309aae3c26a00a65e32e..d493136283ae5100c0dc22f8da5f7e5b64fdc5f5 100644 +index 0813e7510c43ed6916e83635f2be6d39ce2feb5b..137ee0271f1d7adbf3c463b96e9c4627fd5ca74b 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -675,13 +675,10 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit diff --git a/patches/server/0886-Add-Entity-Body-Yaw-API.patch b/patches/server/0886-Add-Entity-Body-Yaw-API.patch index feebad147ca1..782143031806 100644 --- a/patches/server/0886-Add-Entity-Body-Yaw-API.patch +++ b/patches/server/0886-Add-Entity-Body-Yaw-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 75d24e0d9f3c84f436d967415ee469e5969d3368..e7f967e8f88e6fc5bcfdc033d14bb2b65dda3e67 100644 +index 35b6aa33b7715032686acdfd8e5b07d63729593b..e1a3d047743befa9fbc26e7491cb982df19b2f0c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1139,6 +1139,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -38,10 +38,10 @@ index 75d24e0d9f3c84f436d967415ee469e5969d3368..e7f967e8f88e6fc5bcfdc033d14bb2b6 + return this.entity.getBukkitYaw(); + } // Paper end - // Paper Start - Collision API + // Paper start - Collision API @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 45ebd9ffc37163e3a11c80c15b41c5aeed2b6983..33e977f87e06c4f022b913006c20ac53eb28f172 100644 +index 97c7bb2032584847f2f8a946c1f8d13fef908edf..310ce32708601d95cda2647e101d02d48ccdbb77 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -1075,6 +1075,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0898-Optimize-Hoppers.patch b/patches/server/0898-Optimize-Hoppers.patch index 9b9fd8f6da21..c7b7da208581 100644 --- a/patches/server/0898-Optimize-Hoppers.patch +++ b/patches/server/0898-Optimize-Hoppers.patch @@ -50,7 +50,7 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index bb8381c51bc6b37111b837710da7e1ccbca6df5d..5868f13fa3a3791704ba8e344b9c51d88786f41b 100644 +index 44ca57d91c64a062c379de38c2a5af2d6fae1af3..e9ec17c4dfb44f6f562dedd20d123064492ef736 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1672,6 +1672,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper + net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers - worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper + worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent this.profiler.push(() -> { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java diff --git a/patches/server/0943-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0943-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch index b2837d4486f7..96b4aa8c4112 100644 --- a/patches/server/0943-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch +++ b/patches/server/0943-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Make Amethyst throw both Spread and Grow Events diff --git a/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java b/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java -index 79f1fb45447350b5bedee8ce3efe6c150aa9772c..617c35f8e2877be193693548b5af17c50d013e47 100644 +index 79f1fb45447350b5bedee8ce3efe6c150aa9772c..7f58c9f5935cd14ea1096de14633f653eb486d7e 100644 --- a/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BuddingAmethystBlock.java @@ -45,7 +45,13 @@ public class BuddingAmethystBlock extends AmethystBlock { if (block != null) { BlockState iblockdata2 = (BlockState) ((BlockState) block.defaultBlockState().setValue(AmethystClusterBlock.FACING, enumdirection)).setValue(AmethystClusterBlock.WATERLOGGED, iblockdata1.getFluidState().getType() == Fluids.WATER); -+ // Paper Start - Have Amethyst throw both spread and grow events ++ // Paper start - Have Amethyst throw both spread and grow events + if (block == Blocks.SMALL_AMETHYST_BUD) { org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockSpreadEvent(world, pos, blockposition1, iblockdata2); // CraftBukkit + } else { diff --git a/patches/server/0959-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0959-API-for-an-entity-s-scoreboard-name.patch index 77dcdfe01ead..13423e20d2ab 100644 --- a/patches/server/0959-API-for-an-entity-s-scoreboard-name.patch +++ b/patches/server/0959-API-for-an-entity-s-scoreboard-name.patch @@ -7,13 +7,13 @@ Was obtainable through different methods, but you had to use different methods depending on the implementation of Entity you were working with. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index e20aa42c570185566577e6b72547e416ac23240d..875f6380a03f030a45f63dbb3e1a2a3bbcbb9b6f 100644 +index a7ae0e0c69a4b78bcef746763a208897f7678a94..7abc465b815ed645e84fa6fdd8eda7f4ba87b104 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1195,4 +1195,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return !this.getHandle().level().noCollision(this.getHandle(), aabb); } - // Paper End - Collision API + // Paper end - Collision API + + // Paper start - entity scoreboard name + @Override diff --git a/patches/server/0972-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0972-Deep-clone-unhandled-nbt-tags.patch index f9f9e518d8b7..895a34cdc05d 100644 --- a/patches/server/0972-Deep-clone-unhandled-nbt-tags.patch +++ b/patches/server/0972-Deep-clone-unhandled-nbt-tags.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Deep clone unhandled nbt tags diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index b7c0c9a40dac3e828f880ef928ca34206a898cb9..baf31c109ee8b5e59acd7ff5fc537ea46f27d164 100644 +index b7c0c9a40dac3e828f880ef928ca34206a898cb9..678cebb12e290a9a3967177d97a67bebb9116104 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -305,7 +305,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @@ -13,7 +13,7 @@ index b7c0c9a40dac3e828f880ef928ca34206a898cb9..baf31c109ee8b5e59acd7ff5fc537ea4 private CompoundTag internalTag; - final Map unhandledTags = new TreeMap(); // Visible for testing only // Paper -+ Map unhandledTags = new TreeMap(); // Visible for testing only // Paper // Paper - Deep clone unhandled nbt tags; remove final ++ Map unhandledTags = new TreeMap(); // Visible for testing only // Paper & Deep clone unhandled nbt tags; remove final private CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftMetaItem.DATA_TYPE_REGISTRY); private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only diff --git a/patches/server/0996-Lag-compensation-ticks.patch b/patches/server/0996-Lag-compensation-ticks.patch index 0bcd96d0b1f0..aff28fc7f673 100644 --- a/patches/server/0996-Lag-compensation-ticks.patch +++ b/patches/server/0996-Lag-compensation-ticks.patch @@ -8,7 +8,7 @@ Areas affected by lag comepnsation: - Eating food items diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2344efd039773a0b3052d6e08ba204b1efe8963c..712708f62fadb6698c4231f38deeb39bed91e529 100644 +index ffb87573b1c5df4e6f4d36d0331738da221e0f38..947190e48a05f1212c85a507e52a7f56618efaf6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -311,6 +311,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers - worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper + worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index df40ffecfa6d34aa3cdffbbec03e049a271364ab..048bcbd730ee87cf2f040bda1080ae1f6e4ef414 100644 +index f66857ee0cdb3b110a0c3afedbc1c70bb3357a81..24145582ceb89406deb3d7fc3dfbe473c3d85229 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -65,7 +65,7 @@ index 27d22a6aef3f71179ea102062f1338cce5d46fea..52aadf7336c1486ccf0d192e27b742f9 if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e9839d0dc8339ce62a6eb01c7094a2a3cf0fa816..f9de831797bff3707115f03c24bdca78889003a3 100644 +index 768f1cb6b9a5f234be02f07a7ba84156e629fa03..5b2169737f831ba57ce7925cbe9a82c3cd712974 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3819,6 +3819,10 @@ public abstract class LivingEntity extends Entity implements Attackable { From 8e41ef4cc593db213fbb4f334b6a5a8f26e216ec Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Sat, 20 Jan 2024 00:01:12 +0100 Subject: [PATCH 26/45] Add visual blockdata api for primed tnt (#10146) --- patches/api/0299-Missing-Entity-API.patch | 31 ++++++++++++++++++++ patches/server/0611-Missing-Entity-API.patch | 22 ++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/patches/api/0299-Missing-Entity-API.patch b/patches/api/0299-Missing-Entity-API.patch index dfc8107821ad..16b4ca0bfdbc 100644 --- a/patches/api/0299-Missing-Entity-API.patch +++ b/patches/api/0299-Missing-Entity-API.patch @@ -1115,6 +1115,37 @@ index a52a7af219633d575dcbe8ac4b219834bfd4d4d2..1e839b247182af6873a4d74b236d6412 */ -public interface Salmon extends Fish { } +public interface Salmon extends io.papermc.paper.entity.SchoolableFish { } // Paper - Schooling Fish API +diff --git a/src/main/java/org/bukkit/entity/TNTPrimed.java b/src/main/java/org/bukkit/entity/TNTPrimed.java +index 0813bd913c8fdb2001963ce3e82c07c2af105418..87e717c9ea61b0cbf536bc62fa829ddcfae5ad8c 100644 +--- a/src/main/java/org/bukkit/entity/TNTPrimed.java ++++ b/src/main/java/org/bukkit/entity/TNTPrimed.java +@@ -64,4 +64,26 @@ public interface TNTPrimed extends Explosive { + default org.bukkit.Location getSourceLoc() { + return this.getOrigin(); + } ++ ++ // Paper start ++ /** ++ * Sets the visual block data of this ++ * primed tnt. ++ *
++ * The explosion of the tnt stays the ++ * same and is not affected by this change. ++ * ++ * @param data the visual block data ++ */ ++ void setBlockData(@org.jetbrains.annotations.NotNull org.bukkit.block.data.BlockData data); ++ ++ /** ++ * Gets the visual block data of this ++ * primed tnt. ++ * ++ * @return the visual block data ++ */ ++ @org.jetbrains.annotations.NotNull ++ org.bukkit.block.data.BlockData getBlockData(); ++ // Paper end + } diff --git a/src/main/java/org/bukkit/entity/Tadpole.java b/src/main/java/org/bukkit/entity/Tadpole.java index d64979ebdd018f0f63b6115809b48374ba454249..8e097ad55d208a6980c320e2a849efdcc504cff1 100644 --- a/src/main/java/org/bukkit/entity/Tadpole.java diff --git a/patches/server/0611-Missing-Entity-API.patch b/patches/server/0611-Missing-Entity-API.patch index 7c40f305359e..af2725df0781 100644 --- a/patches/server/0611-Missing-Entity-API.patch +++ b/patches/server/0611-Missing-Entity-API.patch @@ -1118,6 +1118,28 @@ index b8140aa25a25870259b5644091c6643da1e14b54..d4d8ce60098c74508e2de9541bf65349 public CraftSalmon(CraftServer server, net.minecraft.world.entity.animal.Salmon entity) { super(server, entity); +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java +index 3f32c683ddc6999b89f2e4051eb6ae784b296b8f..dac3d34677688ac560bc1be2087a08479ef71b87 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java +@@ -67,4 +67,17 @@ public class CraftTNTPrimed extends CraftEntity implements TNTPrimed { + this.getHandle().owner = null; + } + } ++ ++ // Paper start ++ @Override ++ public void setBlockData(org.bukkit.block.data.BlockData data) { ++ com.google.common.base.Preconditions.checkArgument(data != null, "The visual block data of this tnt cannot be null. To reset it just set to the TNT default block data"); ++ this.getHandle().setBlockState(((org.bukkit.craftbukkit.block.data.CraftBlockData) data).getState()); ++ } ++ ++ @Override ++ public org.bukkit.block.data.BlockData getBlockData() { ++ return org.bukkit.craftbukkit.block.data.CraftBlockData.fromData(this.getHandle().getBlockState()); ++ } ++ // Paper end + } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java index 451a9bfd9b9b6945e224f1bb05c7951ed934b4e3..d7c6a0bbc5671ea8f2488230c94df5146a1e98b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java From 68c3297947bbdc382cc54424c5e27a512721f146 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 20 Jan 2024 12:50:16 +0100 Subject: [PATCH 27/45] [ci skip] Add more identifying patch comments --- .../0450-Cache-block-data-strings.patch | 10 +-- ...ortation-and-cancel-velocity-if-tele.patch | 18 ++--- ...taFixerUpper-Rewrite-Rules-on-demand.patch | 8 +- ...p-capture-to-capture-all-items-added.patch | 14 ++-- ...y-Counter-to-allow-plugins-to-use-va.patch | 6 +- ...-track-plugin-scoreboards-by-default.patch | 6 +- patches/server/0457-Entity-isTicking.patch | 4 +- ...-non-whitelisted-player-when-white-l.patch | 4 +- ...x-Concurrency-issue-in-ShufflingList.patch | 20 ++--- ...Reset-Ender-Crystals-on-Dragon-Spawn.patch | 4 +- ...r-large-move-vectors-crashing-server.patch | 15 ++-- .../server/0463-Villager-resetOffers.patch | 12 +-- ...ace-order-when-capturing-blockstates.patch | 4 +- ...blockpos-allocation-from-pathfinding.patch | 6 +- ...tem-locations-dropped-from-campfires.patch | 6 +- ...7-Fix-bell-block-entity-memory-leak.patch} | 14 ++-- .../0470-Add-ignore-discounts-API.patch | 22 +++--- ...-Toggle-for-removing-existing-dragon.patch | 4 +- ...ix-client-lag-on-advancement-loading.patch | 6 +- ...der-Remove-Streams-Optimized-collect.patch | 24 +++--- ...0475-Beacon-API-custom-effect-ranges.patch | 28 +++---- .../server/0476-Add-API-for-quit-reason.patch | 20 ++--- ...ing-Trader-spawn-rate-config-options.patch | 10 +-- .../0478-Expose-world-spawn-angle.patch | 4 +- .../0482-Add-PlayerItemCooldownEvent.patch | 6 +- ...prove-performance-of-the-end-generat.patch | 12 +-- ...-should-not-bypass-cramming-gamerule.patch | 48 ++++++------ ...-missing-default-perms-for-commands.patch} | 2 +- .../0487-Add-PlayerShearBlockEvent.patch | 12 +-- .../server/0488-Limit-recipe-packets.patch | 10 +-- ...0490-Player-Chunk-Load-Unload-Events.patch | 6 +- ...91-Optimize-Dynamic-get-Missing-Keys.patch | 6 +- ...valid-ingredient-lists-in-VillagerA.patch} | 8 +- ...erTradeEvent-and-PlayerPurchaseEvent.patch | 78 +++++++++---------- ...nt.patch => 0496-Add-TargetHitEvent.patch} | 12 +-- .../0497-MC-4-Fix-item-position-desync.patch | 12 +-- ... 0498-Additional-Block-Material-API.patch} | 2 +- .../server/0499-Fix-harming-potion-dupe.patch | 6 +- ...act-event-not-being-called-sometimes.patch | 6 +- ...510-Add-ServerResourcesReloadedEvent.patch | 4 +- ...-using-signs-inside-spawn-protection.patch | 4 +- ...ignore-result-of-PlayerEditBookEvent.patch | 4 +- ...fix-PlayerItemHeldEvent-firing-twice.patch | 4 +- ...pawnEvent-fix-passed-parameter-issue.patch | 6 +- ...583-Expand-PlayerGameModeChangeEvent.patch | 10 +-- ...ove-range-check-for-block-placing-up.patch | 4 +- .../0589-Add-Unix-domain-socket-support.patch | 6 +- .../0595-Add-PlayerKickEvent-causes.patch | 52 ++++++------- ...nect-for-book-edit-is-called-on-main.patch | 4 +- .../server/0616-Add-PlayerArmSwingEvent.patch | 4 +- ...k-event-leave-message-not-being-sent.patch | 23 ++---- ...0657-Improve-and-expand-AsyncCatcher.patch | 10 +-- ...l-more-information-in-watchdog-dumps.patch | 8 +- ...-ServerboundCommandSuggestionPacket-.patch | 4 +- ...de-unnecessary-itemmeta-from-clients.patch | 6 +- ...on-checking-in-player-move-packet-ha.patch | 20 ++--- ...nt-tile-entity-copies-loading-chunks.patch | 4 +- ...s-ServerLevel-for-gamerule-callbacks.patch | 4 +- ...o-not-accept-invalid-client-settings.patch | 4 +- ...g-not-using-commands.spam-exclusions.patch | 4 +- patches/server/0806-More-Teleport-API.patch | 8 +- ...ck-entities-after-destroy-prediction.patch | 6 +- .../0865-Properly-resend-entities.patch | 8 +- .../0872-Improve-logging-and-errors.patch | 4 +- ...ssing-SpigotConfig-logCommands-check.patch | 4 +- ...le-player-info-update-packet-on-join.patch | 6 +- ...uence-violations-like-they-should-be.patch | 4 +- ...expired-keys-from-impacting-new-join.patch | 4 +- .../0927-Properly-cancel-usable-items.patch | 8 +- ...-Optimize-player-lookups-for-beacons.patch | 4 +- .../0945-Implement-PlayerFailMoveEvent.patch | 14 ++-- ...Folia-scheduler-and-owned-region-API.patch | 8 +- ...te-namespaced-commands-if-send-names.patch | 4 +- .../server/0973-Add-PlayerPickItemEvent.patch | 4 +- ...ot-sanity-checks-in-container-clicks.patch | 6 +- 75 files changed, 381 insertions(+), 395 deletions(-) rename patches/server/{0467-Fixed-TileEntityBell-memory-leak.patch => 0467-Fix-bell-block-entity-memory-leak.patch} (70%) rename patches/server/{0486-Added-missing-default-perms-for-commands.patch => 0486-Add-missing-default-perms-for-commands.patch} (99%) rename patches/server/{0494-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch => 0494-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch} (79%) rename patches/server/{0496-Implement-TargetHitEvent.patch => 0496-Add-TargetHitEvent.patch} (88%) rename patches/server/{0498-Additional-Block-Material-API-s.patch => 0498-Additional-Block-Material-API.patch} (96%) diff --git a/patches/server/0450-Cache-block-data-strings.patch b/patches/server/0450-Cache-block-data-strings.patch index 776d479b98c6..1dcf3e688e1a 100644 --- a/patches/server/0450-Cache-block-data-strings.patch +++ b/patches/server/0450-Cache-block-data-strings.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Cache block data strings diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 706e8a5e17ccd87266a5c154cd938974d380cb21..1eaf509c37c176ad94035d0612f69d6ef53b3626 100644 +index 1b67fbad7c14186e70919946938a512950077635..eb77196548f5cac77d0814f3523c35074d57fd6c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2134,6 +2134,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop>, Enum[]> ENUM_VALUES = new HashMap<>(); -+ private static final Map>, Enum[]> ENUM_VALUES = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - make thread safe ++ private static final Map>, Enum[]> ENUM_VALUES = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - cache block data strings; make thread safe /** * Convert an NMS Enum (usually a BlockStateEnum) to its appropriate Bukkit @@ -46,7 +46,7 @@ index 85ee8a3d6db6610104f8a10d77d7cad5dc9b667e..bbf58089dd5de3e38a236bb662ea3e13 + stringDataCache.clear(); + Block.BLOCK_STATE_REGISTRY.forEach(blockData -> stringDataCache.put(blockData.toString(), blockData.createCraftBlockData())); + } -+ // Paper end ++ // Paper end - cache block data strings + public static CraftBlockData newData(Material material, String data) { Preconditions.checkArgument(material == null || material.isBlock(), "Cannot get data for not block %s", material); diff --git a/patches/server/0451-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0451-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch index efbf40f12d0e..392cef8f5bed 100644 --- a/patches/server/0451-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch +++ b/patches/server/0451-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch @@ -9,7 +9,7 @@ as this is how Vanilla teleports entities. Cancel any pending motion when teleported. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 101871664077577c5cbe159d5d1a31b0e30ec68d..5550f60424d827616c935e3b0036f1b4f6144e5c 100644 +index 101871664077577c5cbe159d5d1a31b0e30ec68d..0a2f711b7feba83b39c042df71b3dc6546601ed8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -657,7 +657,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -17,7 +17,7 @@ index 101871664077577c5cbe159d5d1a31b0e30ec68d..5550f60424d827616c935e3b0036f1b4 } - this.player.absMoveTo(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot()); -+ this.player.moveTo(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot()); // Paper - use proper moveTo for teleportation ++ this.player.moveTo(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot()); // Paper - Fix Entity Teleportation and cancel velocity if teleported this.lastGoodX = this.awaitingPositionFromClient.x; this.lastGoodY = this.awaitingPositionFromClient.y; this.lastGoodZ = this.awaitingPositionFromClient.z; @@ -26,19 +26,19 @@ index 101871664077577c5cbe159d5d1a31b0e30ec68d..5550f60424d827616c935e3b0036f1b4 this.awaitingTeleportTime = this.tickCount; - this.player.absMoveTo(d0, d1, d2, f, f1); -+ this.player.moveTo(d0, d1, d2, f, f1); // Paper - use proper moveTo for teleportation ++ this.player.moveTo(d0, d1, d2, f, f1); // Paper - Fix Entity Teleportation and cancel velocity if teleported this.player.connection.send(new ClientboundPlayerPositionPacket(d0 - d3, d1 - d4, d2 - d5, f - f2, f1 - f3, set, this.awaitingTeleport)); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a1172531baf637915a65fbdee8ca08f08034811d..ec224193e9ca7734fe533d5cfc0e316d5eed2adb 100644 +index e1ce61dcadf325633ed809eef92fc07bac4cbf05..8a613a8a874b8b3949630fcadc25cf39b7fb0659 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -162,6 +162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit start private static final int CURRENT_LEVEL = 2; -+ public boolean preserveMotion = true; // Paper - keep initial motion on first setPositionRotation ++ public boolean preserveMotion = true; // Paper - Fix Entity Teleportation and cancel velocity if teleported; keep initial motion on first setPositionRotation static boolean isLevelAtLeast(CompoundTag tag, int level) { return tag.contains("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level; } @@ -46,25 +46,25 @@ index a1172531baf637915a65fbdee8ca08f08034811d..ec224193e9ca7734fe533d5cfc0e316d } public void moveTo(double x, double y, double z, float yaw, float pitch) { -+ // Paper - cancel entity velocity if teleported ++ // Paper - Fix Entity Teleportation and cancel velocity if teleported + if (!preserveMotion) { + this.deltaMovement = Vec3.ZERO; + } else { + this.preserveMotion = false; + } -+ // Paper end ++ // Paper end - Fix Entity Teleportation and cancel velocity if teleported this.setPosRaw(x, y, z); this.setYRot(yaw); this.setXRot(pitch); diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 0578ac12d92f9af0b0113587db9351b4a41bedd5..9f677a695bdb8ebde457452e4b70c674e2016830 100644 +index 0578ac12d92f9af0b0113587db9351b4a41bedd5..76486e2045739d3e8706194f4d71f5108d055780 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java @@ -169,6 +169,7 @@ public abstract class BaseSpawner { return; } -+ entity.preserveMotion = true; // Paper - preserve entity motion from tag ++ entity.preserveMotion = true; // Paper - Fix Entity Teleportation and cancel velocity if teleported; preserve entity motion from tag entity.moveTo(entity.getX(), entity.getY(), entity.getZ(), randomsource.nextFloat() * 360.0F, 0.0F); if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; diff --git a/patches/server/0453-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0453-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch index b5d192ac201b..572dc995c0cc 100644 --- a/patches/server/0453-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch +++ b/patches/server/0453-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch @@ -30,17 +30,17 @@ This patch will significantly reduce CPU use on startup, reduce memory usage, and improve server startup time. diff --git a/src/main/java/com/mojang/datafixers/DataFixerBuilder.java b/src/main/java/com/mojang/datafixers/DataFixerBuilder.java -index cd812f3fe362de5ddc414862dedab2e9727ca776..f6598fcf4ed1bd61e1c87cd7107869d49ffe4566 100644 +index cd812f3fe362de5ddc414862dedab2e9727ca776..2bc69e84b4e2ba8f816322d649e42570ab9242e5 100644 --- a/src/main/java/com/mojang/datafixers/DataFixerBuilder.java +++ b/src/main/java/com/mojang/datafixers/DataFixerBuilder.java @@ -30,8 +30,10 @@ public class DataFixerBuilder { private final Int2ObjectSortedMap schemas = new Int2ObjectAVLTreeMap<>(); private final List globalList = Lists.newArrayList(); private final IntSortedSet fixerVersions = new IntAVLTreeSet(); -+ private final int minDataFixPrecacheVersion; // Paper ++ private final int minDataFixPrecacheVersion; // Paper - Perf: Cache DataFixerUpper Rewrite Rules on demand public DataFixerBuilder(final int dataVersion) { -+ minDataFixPrecacheVersion = Integer.getInteger("Paper.minPrecachedDatafixVersion", dataVersion+1) * 10; // Paper - default to precache nothing - mojang stores versions * 10 to allow for 'sub versions' ++ minDataFixPrecacheVersion = Integer.getInteger("Paper.minPrecachedDatafixVersion", dataVersion+1) * 10; // Paper - Perf: default to precache nothing - mojang stores versions * 10 to allow for 'sub versions' this.dataVersion = dataVersion; } @@ -48,7 +48,7 @@ index cd812f3fe362de5ddc414862dedab2e9727ca776..f6598fcf4ed1bd61e1c87cd7107869d4 final IntBidirectionalIterator iterator = fixerUpper.fixerVersions().iterator(); while (iterator.hasNext()) { final int versionKey = iterator.nextInt(); -+ if (versionKey < minDataFixPrecacheVersion) continue; // Paper ++ if (versionKey < minDataFixPrecacheVersion) continue; // Paper - Perf: Cache DataFixerUpper Rewrite Rules on demand final Schema schema = schemas.get(versionKey); for (final String typeName : schema.types()) { if (!requiredTypeNames.contains(typeName)) { diff --git a/patches/server/0454-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0454-Extend-block-drop-capture-to-capture-all-items-added.patch index 415fdddb48db..399d7534645c 100644 --- a/patches/server/0454-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/patches/server/0454-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Extend block drop capture to capture all items added to the diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 307f2d8adae141cfb7f5fd3c08e68863ce3ed75f..902f3a7ae5ba9c15b634bb2f214be7d85c6d5a00 100644 +index 307f2d8adae141cfb7f5fd3c08e68863ce3ed75f..897c149c38fc17a7af4d922ff6eecc08d43cd366 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1532,6 +1532,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -18,26 +18,26 @@ index 307f2d8adae141cfb7f5fd3c08e68863ce3ed75f..902f3a7ae5ba9c15b634bb2f214be7d8 + captureDrops.add((net.minecraft.world.entity.item.ItemEntity) entity); + return true; + } -+ // Paper end ++ // Paper end - capture all item additions to the world // SPIGOT-6415: Don't call spawn event when reason is null. For example when an entity teleports to a new world. if (spawnReason != null && !CraftEventFactory.doEntityAddEventCalling(this, entity, spawnReason)) { return false; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index a9ede0d719e866655ab48fb5d0263c7d1bdcff60..c61754976fab6654f55b1403d769eb1721871dca 100644 +index a9ede0d719e866655ab48fb5d0263c7d1bdcff60..49d29e4b3395d2ebea1ed13338f26c7cfbaa5f72 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -431,10 +431,12 @@ public class ServerPlayerGameMode { // return true; // CraftBukkit } // CraftBukkit start -+ java.util.List itemsToDrop = this.level.captureDrops; // Paper - store current list -+ this.level.captureDrops = null; // Paper - Remove this earlier so that we can actually drop stuff ++ java.util.List itemsToDrop = this.level.captureDrops; // Paper - capture all item additions to the world ++ this.level.captureDrops = null; // Paper - capture all item additions to the world; Remove this earlier so that we can actually drop stuff if (event.isDropItems()) { - org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDropItemEvent(bblock, state, this.player, this.level.captureDrops); -+ org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDropItemEvent(bblock, state, this.player, itemsToDrop); // Paper - use stored ref ++ org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockDropItemEvent(bblock, state, this.player, itemsToDrop); // Paper - capture all item additions to the world } - this.level.captureDrops = null; -+ //this.level.captureDrops = null; // Paper - move up ++ //this.level.captureDrops = null; // Paper - capture all item additions to the world; move up // Drop event experience if (flag && event != null) { diff --git a/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index 2b209689ca73..975aeee0a8e5 100644 --- a/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1f245a40358309f2e71f473af6df8e71739e8082..2b8706dfccd263c2843dd8661a260536134ad3f8 100644 +index 8a613a8a874b8b3949630fcadc25cf39b7fb0659..9b723b5c429fcb356cc056dc56e1c7be1d20a728 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4510,4 +4510,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -14,11 +14,11 @@ index 1f245a40358309f2e71f473af6df8e71739e8082..2b8706dfccd263c2843dd8661a260536 void accept(Entity entity, double x, double y, double z); } + -+ // Paper start ++ // Paper start - Expose entity id counter + public static int nextEntityId() { + return ENTITY_COUNTER.incrementAndGet(); + } -+ // Paper end ++ // Paper end - Expose entity id counter } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java index 2ff5d2c357a4832e2624ef53fb0110d61fddc6fc..88deea72f7456c178f54f6a245c84a64ffab6926 100644 diff --git a/patches/server/0456-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0456-Lazily-track-plugin-scoreboards-by-default.patch index 4780bb1dec26..28ae9df0434e 100644 --- a/patches/server/0456-Lazily-track-plugin-scoreboards-by-default.patch +++ b/patches/server/0456-Lazily-track-plugin-scoreboards-by-default.patch @@ -14,14 +14,14 @@ this breaks your workflow you can always force all scoreboards to be tracked wit settings.track-plugin-scoreboards in paper.yml. diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java -index 5681630159bb52628e6cc391db324bbafe333414..fdb30a7e728798c59742b812ef28c5094d6093fc 100644 +index 5681630159bb52628e6cc391db324bbafe333414..c650fc3712de01184509a03f1d1b388859e163d7 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java @@ -20,6 +20,7 @@ import org.bukkit.scoreboard.Team; public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard { final Scoreboard board; -+ boolean registeredGlobally = false; // Paper ++ boolean registeredGlobally = false; // Paper - Lazily track plugin scoreboards by default CraftScoreboard(Scoreboard board) { this.board = board; @@ -34,7 +34,7 @@ index 5681630159bb52628e6cc391db324bbafe333414..fdb30a7e728798c59742b812ef28c509 + net.minecraft.server.MinecraftServer.getServer().server.getScoreboardManager().registerScoreboardForVanilla(this); + this.registeredGlobally = true; + } -+ // Paper end ++ // Paper end - lazily track plugin scoreboards net.minecraft.world.scores.Objective objective = this.board.addObjective(name, ((CraftCriteria) criteria).criteria, io.papermc.paper.adventure.PaperAdventure.asVanilla(displayName), CraftScoreboardTranslations.fromBukkitRender(renderType), true, null); return new CraftObjective(this, objective); } diff --git a/patches/server/0457-Entity-isTicking.patch b/patches/server/0457-Entity-isTicking.patch index 9321b7588031..be89df1d7187 100644 --- a/patches/server/0457-Entity-isTicking.patch +++ b/patches/server/0457-Entity-isTicking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2b8706dfccd263c2843dd8661a260536134ad3f8..cdfc00e4bee78fc7ac7dc9f52301f16cd7846698 100644 +index 9b723b5c429fcb356cc056dc56e1c7be1d20a728..bf7d307c26c52035f3799ca80dccc8e8798d8f89 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4515,5 +4515,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -16,7 +16,7 @@ index 2b8706dfccd263c2843dd8661a260536134ad3f8..cdfc00e4bee78fc7ac7dc9f52301f16c + public boolean isTicking() { + return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); + } - // Paper end + // Paper end - Expose entity id counter } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index d5e8c8ed7528cdac203a7594ccf9576db0e5f019..6e302dff4c0b48694d234091b1637ff3b7b4b098 100644 diff --git a/patches/server/0458-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0458-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch index 1e991a4ab796..753a6c174177 100644 --- a/patches/server/0458-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch +++ b/patches/server/0458-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Fix deop kicking non-whitelisted player when white list is diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1eaf509c37c176ad94035d0612f69d6ef53b3626..6a23b1ad4c7fd9deaff05e8d00ad6a77a6ed0cec 100644 +index eb77196548f5cac77d0814f3523c35074d57fd6c..7d08e0750db1653685d31f1595593943c65770a1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2217,13 +2217,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list = Lists.newArrayList(playerlist.getPlayers()); Iterator iterator = list.iterator(); diff --git a/patches/server/0459-Fix-Concurrency-issue-in-ShufflingList.patch b/patches/server/0459-Fix-Concurrency-issue-in-ShufflingList.patch index 95287f83e5c1..d97d2734d5e7 100644 --- a/patches/server/0459-Fix-Concurrency-issue-in-ShufflingList.patch +++ b/patches/server/0459-Fix-Concurrency-issue-in-ShufflingList.patch @@ -7,7 +7,7 @@ if multiple threads from worldgen sort at same time, it will crash. So make a copy of the list for sorting purposes. diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java -index 281b5cf91135984a37ad013614c910f7d4d2fee3..4190acc01b8bf91b02d92143391979df58f6935c 100644 +index 281b5cf91135984a37ad013614c910f7d4d2fee3..79e7a7adf9f9d8b9fee7ae3bb3bebab86fa7fd72 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java @@ -17,7 +17,7 @@ public class GateBehavior implements BehaviorControl @@ -15,37 +15,37 @@ index 281b5cf91135984a37ad013614c910f7d4d2fee3..4190acc01b8bf91b02d92143391979df private final GateBehavior.OrderPolicy orderPolicy; private final GateBehavior.RunningPolicy runningPolicy; - private final ShufflingList> behaviors = new ShufflingList<>(); -+ private final ShufflingList> behaviors = new ShufflingList<>(false); // Paper - don't use a clone ++ private final ShufflingList> behaviors = new ShufflingList<>(false); // Paper - Fix Concurrency issue in ShufflingList during worldgen private Behavior.Status status = Behavior.Status.STOPPED; public GateBehavior(Map, MemoryStatus> requiredMemoryState, Set> memoriesToForgetWhenStopped, GateBehavior.OrderPolicy order, GateBehavior.RunningPolicy runMode, List, Integer>> tasks) { diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java -index 9fb20cd00568aeea25284ea0e80fe52cb1c3eede..731ef21dbbd25d6924717de42f4569a9b5935643 100644 +index 9fb20cd00568aeea25284ea0e80fe52cb1c3eede..9d01471da0571c92a60cd57ebd22a5f0b5648fb4 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/ShufflingList.java @@ -16,12 +16,25 @@ import net.minecraft.util.RandomSource; public class ShufflingList implements Iterable { protected final List> entries; private final RandomSource random = RandomSource.create(); -+ private final boolean isUnsafe; // Paper ++ private final boolean isUnsafe; // Paper - Fix Concurrency issue in ShufflingList during worldgen public ShufflingList() { -+ // Paper start ++ // Paper start - Fix Concurrency issue in ShufflingList during worldgen + this(true); + } + public ShufflingList(boolean isUnsafe) { + this.isUnsafe = isUnsafe; -+ // Paper end ++ // Paper end - Fix Concurrency issue in ShufflingList during worldgen this.entries = Lists.newArrayList(); } private ShufflingList(List> list) { -+ // Paper start ++ // Paper start - Fix Concurrency issue in ShufflingList during worldgen + this(list, true); + } + private ShufflingList(List> list, boolean isUnsafe) { + this.isUnsafe = isUnsafe; -+ // Paper end ++ // Paper end - Fix Concurrency issue in ShufflingList during worldgen this.entries = Lists.newArrayList(list); } @@ -58,12 +58,12 @@ index 9fb20cd00568aeea25284ea0e80fe52cb1c3eede..731ef21dbbd25d6924717de42f4569a9 - }); - this.entries.sort(Comparator.comparingDouble(ShufflingList.WeightedEntry::getRandWeight)); - return this; -+ // Paper start - make concurrent safe, work off a clone of the list ++ // Paper start - Fix Concurrency issue in ShufflingList during worldgen + List> list = this.isUnsafe ? Lists.newArrayList(this.entries) : this.entries; + list.forEach(entry -> entry.setRandom(this.random.nextFloat())); + list.sort(Comparator.comparingDouble(ShufflingList.WeightedEntry::getRandWeight)); + return this.isUnsafe ? new ShufflingList<>(list, this.isUnsafe) : this; -+ // Paper end ++ // Paper end - Fix Concurrency issue in ShufflingList during worldgen } public Stream stream() { diff --git a/patches/server/0460-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0460-Reset-Ender-Crystals-on-Dragon-Spawn.patch index fd459bdab5f9..1cc49e3cac77 100644 --- a/patches/server/0460-Reset-Ender-Crystals-on-Dragon-Spawn.patch +++ b/patches/server/0460-Reset-Ender-Crystals-on-Dragon-Spawn.patch @@ -11,14 +11,14 @@ This ensures the crystals/pillars are in expected state when the dragon spawns. See #3522 diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index e70273664b4a38ef4ba803c60409a24a07d5bed7..7be3405a93fbb9f43075983825d1ac9299cbe7b9 100644 +index e70273664b4a38ef4ba803c60409a24a07d5bed7..359438ba07b48bb7bf7079f026485bb13d2c3ac2 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -472,6 +472,7 @@ public class EndDragonFight { entityenderdragon.moveTo((double) this.origin.getX(), (double) (128 + this.origin.getY()), (double) this.origin.getZ(), this.level.random.nextFloat() * 360.0F, 0.0F); this.level.addFreshEntity(entityenderdragon); this.dragonUUID = entityenderdragon.getUUID(); -+ this.resetSpikeCrystals(); // Paper ++ this.resetSpikeCrystals(); // Paper - Reset ender crystals on dragon spawn } return entityenderdragon; diff --git a/patches/server/0461-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0461-Fix-for-large-move-vectors-crashing-server.patch index 9077c29c5fa4..8bddcc938024 100644 --- a/patches/server/0461-Fix-for-large-move-vectors-crashing-server.patch +++ b/patches/server/0461-Fix-for-large-move-vectors-crashing-server.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix for large move vectors crashing server Check movement distance also based on current position. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5550f60424d827616c935e3b0036f1b4f6144e5c..27b84c1db793af21c947ab31e7732a3b371da40a 100644 +index 0a2f711b7feba83b39c042df71b3dc6546601ed8..6e1bfe5342e23a0dd97dfbc06a43bf77dfab23cc 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -473,9 +473,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -22,7 +22,7 @@ index 5550f60424d827616c935e3b0036f1b4f6144e5c..27b84c1db793af21c947ab31e7732a3b double d3 = ServerGamePacketListenerImpl.clampHorizontal(packet.getX()); final double toX = d3; // Paper - OBFHELPER double d4 = ServerGamePacketListenerImpl.clampVertical(packet.getY()); final double toY = d4; // Paper - OBFHELPER double d5 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ()); final double toZ = d5; // Paper - OBFHELPER -@@ -485,7 +485,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -485,7 +485,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl double d7 = d4 - this.vehicleFirstGoodY; double d8 = d5 - this.vehicleFirstGoodZ; double d9 = entity.getDeltaMovement().lengthSqr(); @@ -32,9 +32,6 @@ index 5550f60424d827616c935e3b0036f1b4f6144e5c..27b84c1db793af21c947ab31e7732a3b + double currDeltaY = toY - fromY; + 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 -+ -+ // Paper start - fix large move vectors killing the server + double otherFieldX = d3 - this.vehicleLastGoodX; + double otherFieldY = d4 - this.vehicleLastGoodY - 1.0E-6D; + double otherFieldZ = d5 - this.vehicleLastGoodZ; @@ -43,7 +40,7 @@ index 5550f60424d827616c935e3b0036f1b4f6144e5c..27b84c1db793af21c947ab31e7732a3b // CraftBukkit start - handle custom speeds and skipped ticks this.allowedPlayerTicks += (System.currentTimeMillis() / 50) - this.lastTick; -@@ -531,9 +543,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -531,9 +540,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean flag = worldserver.noCollision(entity, entity.getBoundingBox().deflate(0.0625D)); @@ -56,7 +53,7 @@ index 5550f60424d827616c935e3b0036f1b4f6144e5c..27b84c1db793af21c947ab31e7732a3b boolean flag1 = entity.verticalCollisionBelow; if (entity instanceof LivingEntity) { -@@ -1272,7 +1284,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1272,7 +1281,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl double d7 = d1 - this.firstGoodY; double d8 = d2 - this.firstGoodZ; double d9 = this.player.getDeltaMovement().lengthSqr(); @@ -66,8 +63,6 @@ index 5550f60424d827616c935e3b0036f1b4f6144e5c..27b84c1db793af21c947ab31e7732a3b + double currDeltaY = toY - prevY; + double currDeltaZ = toZ - prevZ; + 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 -+ // Paper start - fix large move vectors killing the server + double otherFieldX = d0 - this.lastGoodX; + double otherFieldY = d1 - this.lastGoodY; + double otherFieldZ = d2 - this.lastGoodZ; @@ -76,7 +71,7 @@ index 5550f60424d827616c935e3b0036f1b4f6144e5c..27b84c1db793af21c947ab31e7732a3b if (this.player.isSleeping()) { if (d10 > 1.0D) { -@@ -1326,9 +1349,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1326,9 +1344,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl AABB axisalignedbb = this.player.getBoundingBox(); diff --git a/patches/server/0463-Villager-resetOffers.patch b/patches/server/0463-Villager-resetOffers.patch index f094a1397ce7..6068c580b9a4 100644 --- a/patches/server/0463-Villager-resetOffers.patch +++ b/patches/server/0463-Villager-resetOffers.patch @@ -5,25 +5,25 @@ Subject: [PATCH] Villager#resetOffers diff --git a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java -index 0ded8ee2deb51bea7506a8fa2d21f5e160694d54..66b7a2c9a7dc18a98bf2c3aac863a10cbc3ae9f9 100644 +index 0ded8ee2deb51bea7506a8fa2d21f5e160694d54..ddc002f269527201724457c0b820788200441e0c 100644 --- a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java @@ -114,6 +114,13 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa return this.tradingPlayer != null; } -+ // Paper start ++ // Paper start - Villager#resetOffers + public void resetOffers() { + this.offers = new MerchantOffers(); + this.updateTrades(); + } -+ // Paper end ++ // Paper end - Villager#resetOffers + @Override public MerchantOffers getOffers() { if (this.offers == null) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java -index 19833c1fc6ee85e031e3c6aac3b00f44730c5e02..8db2c70d3600555bcb419260cafd56409478b227 100644 +index 19833c1fc6ee85e031e3c6aac3b00f44730c5e02..34e4c763c7ec971885147ab2509281fad56e1ca6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java @@ -70,4 +70,11 @@ public class CraftAbstractVillager extends CraftAgeable implements AbstractVilla @@ -31,10 +31,10 @@ index 19833c1fc6ee85e031e3c6aac3b00f44730c5e02..8db2c70d3600555bcb419260cafd5640 return this.getMerchant().getTrader(); } + -+ // Paper start ++ // Paper start - Villager#resetOffers + @Override + public void resetOffers() { + getHandle().resetOffers(); + } -+ // Paper end ++ // Paper end - Villager#resetOffers } diff --git a/patches/server/0464-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0464-Retain-block-place-order-when-capturing-blockstates.patch index 8ddc270c44c9..27a211f51260 100644 --- a/patches/server/0464-Retain-block-place-order-when-capturing-blockstates.patch +++ b/patches/server/0464-Retain-block-place-order-when-capturing-blockstates.patch @@ -10,7 +10,7 @@ In general, look at making this logic more robust (i.e properly handling cases where a captured entry is overriden) - but for now this will do. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a7fca2d662e013809fef088213cf0275b596629d..3588ad0b5e8510a00b1a65c73defec39ee7fb108 100644 +index a7fca2d662e013809fef088213cf0275b596629d..0aebd1d8555b6aab24c11cd543e24eb1a6d6cb6f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -160,7 +160,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -18,7 +18,7 @@ index a7fca2d662e013809fef088213cf0275b596629d..3588ad0b5e8510a00b1a65c73defec39 public boolean captureTreeGeneration = false; public Map capturedBlockStates = new java.util.LinkedHashMap<>(); // Paper - public Map capturedTileEntities = new HashMap<>(); -+ public Map capturedTileEntities = new java.util.LinkedHashMap<>(); // Paper ++ public Map capturedTileEntities = new java.util.LinkedHashMap<>(); // Paper - Retain block place order when capturing blockstates public List captureDrops; public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); // Paper start diff --git a/patches/server/0465-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0465-Reduce-blockpos-allocation-from-pathfinding.patch index a3846cba0b52..eae9a412e2ab 100644 --- a/patches/server/0465-Reduce-blockpos-allocation-from-pathfinding.patch +++ b/patches/server/0465-Reduce-blockpos-allocation-from-pathfinding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Reduce blockpos allocation from pathfinding diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java -index 8e90b284fb576738b834626bb52c9962ccbc5ad2..2aca9b193db5dadc4fb90b8d7548277b698924aa 100644 +index 8e90b284fb576738b834626bb52c9962ccbc5ad2..1e96bac6f22b1fddd22fc239126ff2f823c2abd0 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java @@ -479,7 +479,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { @@ -13,7 +13,7 @@ index 8e90b284fb576738b834626bb52c9962ccbc5ad2..2aca9b193db5dadc4fb90b8d7548277b } - if (world.getFluidState(pos).is(FluidTags.WATER)) { -+ if (blockState.getFluidState().is(FluidTags.WATER)) { ++ if (blockState.getFluidState().is(FluidTags.WATER)) { // Paper - Perf: Reduce blockpos allocation from pathfinding return BlockPathTypes.WATER_BORDER; } @@ -22,7 +22,7 @@ index 8e90b284fb576738b834626bb52c9962ccbc5ad2..2aca9b193db5dadc4fb90b8d7548277b return BlockPathTypes.COCOA; } else if (!blockState.is(Blocks.WITHER_ROSE) && !blockState.is(Blocks.POINTED_DRIPSTONE)) { - FluidState fluidState = world.getFluidState(pos); -+ FluidState fluidState = blockState.getFluidState(); // Paper - remove another getFluidState call ++ FluidState fluidState = blockState.getFluidState(); // Paper - Perf: Reduce blockpos allocation from pathfinding if (fluidState.is(FluidTags.LAVA)) { return BlockPathTypes.LAVA; } else if (isBurningBlock(blockState)) { diff --git a/patches/server/0466-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0466-Fix-item-locations-dropped-from-campfires.patch index a7ee5b4033b7..d96bf626d4bf 100644 --- a/patches/server/0466-Fix-item-locations-dropped-from-campfires.patch +++ b/patches/server/0466-Fix-item-locations-dropped-from-campfires.patch @@ -7,7 +7,7 @@ Fixes #4259 by not flooring the blockposition among other weirdness Vanilla Issue: MC-267622 diff --git a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java -index c4cf6abf0a962794ddbb4d7a691406054062ffee..f706c787f7608f7440a5f5e05e7e9c4cb582368c 100644 +index c4cf6abf0a962794ddbb4d7a691406054062ffee..3a2afa6c1f6dfad7dc18d93b743cbea1eef0e4b8 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java @@ -82,7 +82,14 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { @@ -15,14 +15,14 @@ index c4cf6abf0a962794ddbb4d7a691406054062ffee..f706c787f7608f7440a5f5e05e7e9c4c itemstack1 = CraftItemStack.asNMSCopy(result); // CraftBukkit end - Containers.dropItemStack(world, (double) pos.getX(), (double) pos.getY(), (double) pos.getZ(), itemstack1); -+ // Paper start ++ // Paper start - Fix item locations dropped from campfires + double deviation = 0.05F * RandomSource.GAUSSIAN_SPREAD_FACTOR; + while (!itemstack1.isEmpty()) { + net.minecraft.world.entity.item.ItemEntity droppedItem = new net.minecraft.world.entity.item.ItemEntity(world, pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D, itemstack1.split(world.random.nextInt(21) + 10)); + droppedItem.setDeltaMovement(world.random.triangle(0.0D, deviation), world.random.triangle(0.2D, deviation), world.random.triangle(0.0D, deviation)); + world.addFreshEntity(droppedItem); + } -+ // Paper end ++ // Paper end - Fix item locations dropped from campfires campfire.items.set(i, ItemStack.EMPTY); world.sendBlockUpdated(pos, state, state, 3); world.gameEvent(GameEvent.BLOCK_CHANGE, pos, GameEvent.Context.of(state)); diff --git a/patches/server/0467-Fixed-TileEntityBell-memory-leak.patch b/patches/server/0467-Fix-bell-block-entity-memory-leak.patch similarity index 70% rename from patches/server/0467-Fixed-TileEntityBell-memory-leak.patch rename to patches/server/0467-Fix-bell-block-entity-memory-leak.patch index 0cd7feb8d4ea..91b7136c9d7b 100644 --- a/patches/server/0467-Fixed-TileEntityBell-memory-leak.patch +++ b/patches/server/0467-Fix-bell-block-entity-memory-leak.patch @@ -1,23 +1,23 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: giacomo <32515303+giacomozama@users.noreply.github.com> Date: Sat, 10 Oct 2020 12:15:33 +0200 -Subject: [PATCH] Fixed TileEntityBell memory leak +Subject: [PATCH] Fix bell block entity memory leak -TileEntityBell has a list of entities (entitiesAtRing) that was not being cleared at the right time, causing leaks whenever a bell would be rung near a crowd of entities. +BellBlockEntity has a list of entities (entitiesAtRing) that was not being cleared at the right time, causing leaks whenever a bell would be rung near a crowd of entities. diff --git a/src/main/java/net/minecraft/world/level/block/entity/BellBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BellBlockEntity.java -index 30e9d4b20005dc6d20baf578f2ae958bdfcea02a..b446d6549922f3dabaaa05793d8ee3eb45566ac3 100644 +index 30e9d4b20005dc6d20baf578f2ae958bdfcea02a..d21f7e9712ac2d9088ce19d415e4ba7863d8cebf 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BellBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BellBlockEntity.java @@ -63,6 +63,11 @@ public class BellBlockEntity extends BlockEntity { if (blockEntity.ticks >= 50) { blockEntity.shaking = false; -+ // Paper start ++ // Paper start - Fix bell block entity memory leak + if (!blockEntity.resonating) { + blockEntity.nearbyEntities.clear(); + } -+ // Paper end ++ // Paper end - Fix bell block entity memory leak blockEntity.ticks = 0; } @@ -25,7 +25,7 @@ index 30e9d4b20005dc6d20baf578f2ae958bdfcea02a..b446d6549922f3dabaaa05793d8ee3eb ++blockEntity.resonationTicks; } else { bellEffect.run(world, pos, blockEntity.nearbyEntities); -+ blockEntity.nearbyEntities.clear(); // Paper ++ blockEntity.nearbyEntities.clear(); // Paper - Fix bell block entity memory leak blockEntity.resonating = false; } } @@ -33,7 +33,7 @@ index 30e9d4b20005dc6d20baf578f2ae958bdfcea02a..b446d6549922f3dabaaa05793d8ee3eb } } -+ this.nearbyEntities.removeIf(e -> !e.isAlive()); // Paper ++ this.nearbyEntities.removeIf(e -> !e.isAlive()); // Paper - Fix bell block entity memory leak } private static boolean areRaidersNearby(BlockPos pos, List hearingEntities) { diff --git a/patches/server/0470-Add-ignore-discounts-API.patch b/patches/server/0470-Add-ignore-discounts-API.patch index 84d0e086b793..6e28c282b0c0 100644 --- a/patches/server/0470-Add-ignore-discounts-API.patch +++ b/patches/server/0470-Add-ignore-discounts-API.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add ignore discounts API diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index c0aa370367856a159412dd141f683b7d51e11c8b..363d1f469862c2e980624ff69f74be015c19412d 100644 +index c0aa370367856a159412dd141f683b7d51e11c8b..b33fa26d6e3cf8999fb24137069d0a4178f82caf 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -508,6 +508,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler while (iterator.hasNext()) { MerchantOffer merchantrecipe = (MerchantOffer) iterator.next(); -+ if (merchantrecipe.ignoreDiscounts) continue; // Paper ++ if (merchantrecipe.ignoreDiscounts) continue; // Paper - Add ignore discounts API merchantrecipe.addToSpecialPriceDiff(-Mth.floor((float) i * merchantrecipe.getPriceMultiplier())); } @@ -20,19 +20,19 @@ index c0aa370367856a159412dd141f683b7d51e11c8b..363d1f469862c2e980624ff69f74be01 while (iterator1.hasNext()) { MerchantOffer merchantrecipe1 = (MerchantOffer) iterator1.next(); -+ if (merchantrecipe1.ignoreDiscounts) continue; // Paper ++ if (merchantrecipe1.ignoreDiscounts) continue; // Paper - Add ignore discounts API double d0 = 0.3D + 0.0625D * (double) j; int k = (int) Math.floor(d0 * (double) merchantrecipe1.getBaseCostA().getCount()); diff --git a/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java b/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java -index 1d755d04515f20dbd69931084b4cc894e52d35c9..4f7457578ab3118d10e0d5dfc23d79c9b20c2f44 100644 +index 1d755d04515f20dbd69931084b4cc894e52d35c9..4cedc095bc9d1d119e2b1ae54969007ced788877 100644 --- a/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java +++ b/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java @@ -19,6 +19,7 @@ public class MerchantOffer { public int demand; public float priceMultiplier; public int xp; -+ public boolean ignoreDiscounts; // Paper ++ public boolean ignoreDiscounts; // Paper - Add ignore discounts API // CraftBukkit start private CraftMerchantRecipe bukkitHandle; @@ -41,7 +41,7 @@ index 1d755d04515f20dbd69931084b4cc894e52d35c9..4f7457578ab3118d10e0d5dfc23d79c9 public MerchantOffer(ItemStack itemstack, ItemStack itemstack1, ItemStack itemstack2, int uses, int maxUses, int experience, float priceMultiplier, int demand, CraftMerchantRecipe bukkit) { - this(itemstack, itemstack1, itemstack2, uses, maxUses, experience, priceMultiplier, demand); -+ // Paper start - add ignoreDiscounts param ++ // Paper start - Add ignore discounts API + this(itemstack, itemstack1, itemstack2, uses, maxUses, experience, priceMultiplier, demand, false, bukkit); + } + public MerchantOffer(ItemStack itemstack, ItemStack itemstack1, ItemStack itemstack2, int uses, int maxUses, int experience, float priceMultiplier, boolean ignoreDiscounts, CraftMerchantRecipe bukkit) { @@ -49,7 +49,7 @@ index 1d755d04515f20dbd69931084b4cc894e52d35c9..4f7457578ab3118d10e0d5dfc23d79c9 + } + public MerchantOffer(ItemStack itemstack, ItemStack itemstack1, ItemStack itemstack2, int uses, int maxUses, int experience, float priceMultiplier, int demand, boolean ignoreDiscounts, CraftMerchantRecipe bukkit) { + this(itemstack, itemstack1, itemstack2, uses, maxUses, experience, priceMultiplier, demand, ignoreDiscounts); -+ // Paper end ++ // Paper end - Add ignore discounts API this.bukkitHandle = bukkit; } // CraftBukkit end @@ -57,7 +57,7 @@ index 1d755d04515f20dbd69931084b4cc894e52d35c9..4f7457578ab3118d10e0d5dfc23d79c9 this.specialPriceDiff = nbt.getInt("specialPrice"); this.demand = nbt.getInt("demand"); -+ this.ignoreDiscounts = nbt.getBoolean("Paper.IgnoreDiscounts"); // Paper ++ this.ignoreDiscounts = nbt.getBoolean("Paper.IgnoreDiscounts"); // Paper - Add ignore discounts API } public MerchantOffer(ItemStack buyItem, ItemStack sellItem, int maxUses, int merchantExperience, float priceMultiplier) { @@ -66,7 +66,7 @@ index 1d755d04515f20dbd69931084b4cc894e52d35c9..4f7457578ab3118d10e0d5dfc23d79c9 public MerchantOffer(ItemStack firstBuyItem, ItemStack secondBuyItem, ItemStack sellItem, int uses, int maxUses, int merchantExperience, float priceMultiplier) { - this(firstBuyItem, secondBuyItem, sellItem, uses, maxUses, merchantExperience, priceMultiplier, 0); -+ // Paper start - add ignoreDiscounts param ++ // Paper start - Add ignore discounts API + this(firstBuyItem, secondBuyItem, sellItem, uses, maxUses, merchantExperience, priceMultiplier, false); + } + public MerchantOffer(ItemStack firstBuyItem, ItemStack secondBuyItem, ItemStack sellItem, int uses, int maxUses, int merchantExperience, float priceMultiplier, boolean ignoreDiscounts) { @@ -78,7 +78,7 @@ index 1d755d04515f20dbd69931084b4cc894e52d35c9..4f7457578ab3118d10e0d5dfc23d79c9 + } + public MerchantOffer(ItemStack firstBuyItem, ItemStack secondBuyItem, ItemStack sellItem, int uses, int maxUses, int merchantExperience, float priceMultiplier, int demandBonus, boolean ignoreDiscounts) { + this.ignoreDiscounts = ignoreDiscounts; -+ // Paper end ++ // Paper end - Add ignore discounts API this.rewardExp = true; this.xp = 1; this.baseCostA = firstBuyItem; @@ -86,7 +86,7 @@ index 1d755d04515f20dbd69931084b4cc894e52d35c9..4f7457578ab3118d10e0d5dfc23d79c9 nbttagcompound.putFloat("priceMultiplier", this.priceMultiplier); nbttagcompound.putInt("specialPrice", this.specialPriceDiff); nbttagcompound.putInt("demand", this.demand); -+ nbttagcompound.putBoolean("Paper.IgnoreDiscounts", this.ignoreDiscounts); // Paper ++ nbttagcompound.putBoolean("Paper.IgnoreDiscounts", this.ignoreDiscounts); // Paper - Add ignore discounts API return nbttagcompound; } diff --git a/patches/server/0471-Toggle-for-removing-existing-dragon.patch b/patches/server/0471-Toggle-for-removing-existing-dragon.patch index 0ec8e9d4efb1..d68e4f090688 100644 --- a/patches/server/0471-Toggle-for-removing-existing-dragon.patch +++ b/patches/server/0471-Toggle-for-removing-existing-dragon.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Toggle for removing existing dragon diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 7be3405a93fbb9f43075983825d1ac9299cbe7b9..7741b27816636aaa48277b2fe14fd7b88cd3d78a 100644 +index 7be3405a93fbb9f43075983825d1ac9299cbe7b9..23fa0f0683874fb43b1160a27e05646282bb66e1 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -209,7 +209,7 @@ public class EndDragonFight { @@ -13,7 +13,7 @@ index 7be3405a93fbb9f43075983825d1ac9299cbe7b9..7741b27816636aaa48277b2fe14fd7b8 EndDragonFight.LOGGER.info("Found that there's a dragon still alive ({})", entityenderdragon); this.dragonKilled = false; - if (!flag) { -+ if (!flag && this.level.paperConfig().entities.behavior.shouldRemoveDragon) { ++ if (!flag && this.level.paperConfig().entities.behavior.shouldRemoveDragon) { // Paper - Toggle for removing existing dragon EndDragonFight.LOGGER.info("But we didn't have a portal, let's remove it."); entityenderdragon.discard(); this.dragonUUID = null; diff --git a/patches/server/0472-Fix-client-lag-on-advancement-loading.patch b/patches/server/0472-Fix-client-lag-on-advancement-loading.patch index 68881e20e87c..a7c34bcee82a 100644 --- a/patches/server/0472-Fix-client-lag-on-advancement-loading.patch +++ b/patches/server/0472-Fix-client-lag-on-advancement-loading.patch @@ -15,7 +15,7 @@ manually reload the advancement data for all players, which normally takes place as a part of the datapack reloading. diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 88deea72f7456c178f54f6a245c84a64ffab6926..bcf88a137616b83f3400afd18c6fe9f3b2b2db34 100644 +index 88deea72f7456c178f54f6a245c84a64ffab6926..f48702923beb6d99b23dfa2466396bf4d4e8fbc8 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -329,7 +329,13 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -23,13 +23,13 @@ index 88deea72f7456c178f54f6a245c84a64ffab6926..bcf88a137616b83f3400afd18c6fe9f3 } - MinecraftServer.getServer().getPlayerList().reloadResources(); -+ // Paper start ++ // Paper start - Fix client lag on advancement loading + //MinecraftServer.getServer().getPlayerList().reload(); + MinecraftServer.getServer().getPlayerList().getPlayers().forEach(player -> { + player.getAdvancements().reload(MinecraftServer.getServer().getAdvancements()); + player.getAdvancements().flushDirty(player); + }); -+ // Paper end ++ // Paper end - Fix client lag on advancement loading return bukkit; } diff --git a/patches/server/0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch index 18c0ed99c8b3..5f964e6bd4f7 100644 --- a/patches/server/0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch +++ b/patches/server/0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch @@ -16,7 +16,7 @@ This lets us get faster foreach iteration, as well as avoids map lookups on the values when needed. diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java -index 8519383a9abd45434c1e9888e77548941a80c79c..d23481453717f715124156b5d83f6448f720d049 100644 +index 8519383a9abd45434c1e9888e77548941a80c79c..1d51e113b17a5c522fa7812b1c1f38bf790d8335 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java @@ -38,9 +38,12 @@ public class PathFinder { @@ -26,12 +26,12 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..d23481453717f715124156b5d83f6448 - Map map = positions.stream().collect(Collectors.toMap((pos) -> { - return this.nodeEvaluator.getGoal((double)pos.getX(), (double)pos.getY(), (double)pos.getZ()); - }, Function.identity())); -+ // Paper start - remove streams - and optimize collection ++ // Paper start - Perf: remove streams and optimize collection + List> map = Lists.newArrayList(); + for (BlockPos pos : positions) { + map.add(new java.util.AbstractMap.SimpleEntry<>(this.nodeEvaluator.getGoal(pos.getX(), pos.getY(), pos.getZ()), pos)); + } -+ // Paper end ++ // Paper end - Perf: remove streams and optimize collection Path path = this.findPath(world.getProfiler(), node, map, followRange, distance, rangeMultiplier); this.nodeEvaluator.done(); return path; @@ -40,7 +40,7 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..d23481453717f715124156b5d83f6448 @Nullable - private Path findPath(ProfilerFiller profiler, Node startNode, Map positions, float followRange, int distance, float rangeMultiplier) { -+ // Paper start - optimize collection ++ // Paper start - Perf: remove streams and optimize collection - optimize collection + private Path findPath(ProfilerFiller profiler, Node startNode, List> positions, float followRange, int distance, float rangeMultiplier) { profiler.push("find_path"); profiler.markForCharting(MetricCategory.PATH_FINDING); @@ -73,12 +73,12 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..d23481453717f715124156b5d83f6448 target.setReached(); - set3.add(target); + entryList.add(entry); -+ // Paper end ++ // Paper end - Perf: remove streams and optimize collection } } - if (!set3.isEmpty()) { -+ if (!entryList.isEmpty()) { // Paper - rename variable ++ if (!entryList.isEmpty()) { // Paper - Perf: remove streams and optimize collection; rename break; } @@ -87,7 +87,7 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..d23481453717f715124156b5d83f6448 node2.cameFrom = node; node2.g = g; - node2.h = this.getBestH(node2, set) * 1.5F; -+ node2.h = this.getBestH(node2, positions) * 1.5F; // Paper - list instead of set ++ node2.h = this.getBestH(node2, positions) * 1.5F; // Paper - Perf: remove streams and optimize collection if (node2.inOpenSet()) { this.openSet.changeCost(node2, node2.g + node2.h); } else { @@ -102,7 +102,7 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..d23481453717f715124156b5d83f6448 - }).min(Comparator.comparingDouble(Path::getDistToTarget).thenComparingInt(Path::getNodeCount)); - profiler.pop(); - return optional.isEmpty() ? null : optional.get(); -+ // Paper start - remove streams - and optimize collection ++ // Paper start - Perf: remove streams and optimize collection + Path best = null; + boolean entryListIsEmpty = entryList.isEmpty(); + Comparator comparator = entryListIsEmpty ? Comparator.comparingInt(Path::getNodeCount) @@ -113,7 +113,7 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..d23481453717f715124156b5d83f6448 + best = path; + } + return best; -+ // Paper end ++ // Paper end - Perf: remove streams and optimize collection } protected float distance(Node a, Node b) { @@ -121,14 +121,14 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..d23481453717f715124156b5d83f6448 } - private float getBestH(Node node, Set targets) { -+ private float getBestH(Node node, List> targets) { // Paper - optimize collection - Set -> List> ++ private float getBestH(Node node, List> targets) { // Paper - Perf: remove streams and optimize collection; Set -> List> float f = Float.MAX_VALUE; - for(Target target : targets) { -+ // Paper start - optimize collection ++ // Paper start - Perf: remove streams and optimize collection + for (int i = 0, targetsSize = targets.size(); i < targetsSize; i++) { + final Target target = targets.get(i).getKey(); -+ // Paper end ++ // Paper end - Perf: remove streams and optimize collection float g = node.distanceTo(target); target.updateBest(g, node); f = Math.min(g, f); diff --git a/patches/server/0475-Beacon-API-custom-effect-ranges.patch b/patches/server/0475-Beacon-API-custom-effect-ranges.patch index f3b72c6e9c59..3e5c249bba7d 100644 --- a/patches/server/0475-Beacon-API-custom-effect-ranges.patch +++ b/patches/server/0475-Beacon-API-custom-effect-ranges.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Beacon API - custom effect ranges diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..3a50fe20294048a1c818ae717a918bb1aed74dea 100644 +index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..0669219b230b127a09741d0073929b2ff68c64af 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -82,6 +82,26 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name return (BeaconBlockEntity.hasSecondaryEffect(this.levels, this.primaryPower, this.secondaryPower)) ? CraftPotionUtil.toBukkit(new MobEffectInstance(this.secondaryPower, BeaconBlockEntity.getLevel(this.levels), BeaconBlockEntity.getAmplification(this.levels, this.primaryPower, this.secondaryPower), true, true)) : null; } // CraftBukkit end -+ // Paper start - add field/methods for custom range ++ // Paper start - Custom beacon ranges + private final String PAPER_RANGE_TAG = "Paper.Range"; + private double effectRange = -1; + @@ -31,7 +31,7 @@ index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..3a50fe20294048a1c818ae717a918bb1 + public void resetEffectRange() { + this.effectRange = -1; + } -+ // Paper end ++ // Paper end - Custom beacon ranges @Nullable static MobEffect filterEffect(@Nullable MobEffect effect) { @@ -40,7 +40,7 @@ index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..3a50fe20294048a1c818ae717a918bb1 if (blockEntity.levels > 0 && !blockEntity.beamSections.isEmpty()) { - BeaconBlockEntity.applyEffects(world, pos, blockEntity.levels, blockEntity.primaryPower, blockEntity.secondaryPower); -+ BeaconBlockEntity.applyEffects(world, pos, blockEntity.levels, blockEntity.primaryPower, blockEntity.secondaryPower, blockEntity); // Paper ++ BeaconBlockEntity.applyEffects(world, pos, blockEntity.levels, blockEntity.primaryPower, blockEntity.secondaryPower, blockEntity); // Paper - Custom beacon ranges BeaconBlockEntity.playSound(world, pos, SoundEvents.BEACON_AMBIENT); } } @@ -48,14 +48,14 @@ index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..3a50fe20294048a1c818ae717a918bb1 } public static List getHumansInRange(Level world, BlockPos blockposition, int i) { -+ // Paper start ++ // Paper start - Custom beacon ranges + return BeaconBlockEntity.getHumansInRange(world, blockposition, i, null); + } + public static List getHumansInRange(Level world, BlockPos blockposition, int i, @Nullable BeaconBlockEntity blockEntity) { -+ // Paper end ++ // Paper end - Custom beacon ranges { - double d0 = (double) (i * 10 + 10); -+ double d0 = blockEntity != null ? blockEntity.getEffectRange() : (i * 10 + 10);// Paper - custom beacon ranges ++ double d0 = blockEntity != null ? blockEntity.getEffectRange() : (i * 10 + 10);// Paper - Custom beacon ranges AABB axisalignedbb = (new AABB(blockposition)).inflate(d0).expandTowards(0.0D, (double) world.getHeight(), 0.0D); List list = world.getEntitiesOfClass(Player.class, axisalignedbb); @@ -63,18 +63,18 @@ index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..3a50fe20294048a1c818ae717a918bb1 } private static void applyEffects(Level world, BlockPos pos, int beaconLevel, @Nullable MobEffect primaryEffect, @Nullable MobEffect secondaryEffect) { -+ // Paper start ++ // Paper start - Custom beacon ranges + BeaconBlockEntity.applyEffects(world, pos, beaconLevel, primaryEffect, secondaryEffect, null); + } + private static void applyEffects(Level world, BlockPos pos, int beaconLevel, @Nullable MobEffect primaryEffect, @Nullable MobEffect secondaryEffect, @Nullable BeaconBlockEntity blockEntity) { -+ // Paper end ++ // Paper end - Custom beacon ranges if (!world.isClientSide && primaryEffect != null) { double d0 = (double) (beaconLevel * 10 + 10); byte b0 = BeaconBlockEntity.getAmplification(beaconLevel, primaryEffect, secondaryEffect); int j = BeaconBlockEntity.getLevel(beaconLevel); - List list = BeaconBlockEntity.getHumansInRange(world, pos, beaconLevel); -+ List list = BeaconBlockEntity.getHumansInRange(world, pos, beaconLevel, blockEntity); // Paper ++ List list = BeaconBlockEntity.getHumansInRange(world, pos, beaconLevel, blockEntity); // Paper - Custom beacon ranges BeaconBlockEntity.applyEffect(list, primaryEffect, j, b0, true, pos); // Paper - BeaconEffectEvent @@ -82,7 +82,7 @@ index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..3a50fe20294048a1c818ae717a918bb1 } this.lockKey = LockCode.fromTag(nbt); -+ this.effectRange = nbt.contains(PAPER_RANGE_TAG, 6) ? nbt.getDouble(PAPER_RANGE_TAG) : -1; // Paper ++ this.effectRange = nbt.contains(PAPER_RANGE_TAG, 6) ? nbt.getDouble(PAPER_RANGE_TAG) : -1; // Paper - Custom beacon ranges } @Override @@ -90,12 +90,12 @@ index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..3a50fe20294048a1c818ae717a918bb1 } this.lockKey.addToTag(nbt); -+ nbt.putDouble(PAPER_RANGE_TAG, this.effectRange); // Paper ++ nbt.putDouble(PAPER_RANGE_TAG, this.effectRange); // Paper - Custom beacon ranges } public void setCustomName(@Nullable Component customName) { diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBeacon.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBeacon.java -index c4890927419e27fd35e4e373fb09dcb182234fbf..7d90360bac08d6ec796ba44f1809793f3a3c1b3f 100644 +index c4890927419e27fd35e4e373fb09dcb182234fbf..2d77ee30f87491bd413d11687d9fd6def843104c 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBeacon.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBeacon.java @@ -32,7 +32,7 @@ public class CraftBeacon extends CraftBlockEntityState implem @@ -103,7 +103,7 @@ index c4890927419e27fd35e4e373fb09dcb182234fbf..7d90360bac08d6ec796ba44f1809793f BeaconBlockEntity beacon = (BeaconBlockEntity) tileEntity; - Collection nms = BeaconBlockEntity.getHumansInRange(beacon.getLevel(), beacon.getBlockPos(), beacon.levels); -+ Collection nms = BeaconBlockEntity.getHumansInRange(beacon.getLevel(), beacon.getBlockPos(), beacon.levels, beacon); // Paper ++ Collection nms = BeaconBlockEntity.getHumansInRange(beacon.getLevel(), beacon.getBlockPos(), beacon.levels, beacon); // Paper - Custom beacon ranges Collection bukkit = new ArrayList(nms.size()); for (Player human : nms) { diff --git a/patches/server/0476-Add-API-for-quit-reason.patch b/patches/server/0476-Add-API-for-quit-reason.patch index ff5d7979f6b1..0dd6812fc283 100644 --- a/patches/server/0476-Add-API-for-quit-reason.patch +++ b/patches/server/0476-Add-API-for-quit-reason.patch @@ -5,51 +5,51 @@ Subject: [PATCH] Add API for quit reason diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 4df0342c38f8ff763a08a145ec94325bcd50689d..2db208427447b94cdfdb22b38b6dc6697b1067bd 100644 +index 4df0342c38f8ff763a08a145ec94325bcd50689d..673dfdcd212a9a02e2e690084c280b4af904a470 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -183,12 +183,15 @@ public class Connection extends SimpleChannelInboundHandler> { this.handlingFault = true; if (this.channel.isOpen()) { -+ net.minecraft.server.level.ServerPlayer player = this.getPlayer(); // Paper ++ net.minecraft.server.level.ServerPlayer player = this.getPlayer(); // Paper - Add API for quit reason if (throwable instanceof TimeoutException) { Connection.LOGGER.debug("Timeout", throwable); -+ if (player != null) player.quitReason = org.bukkit.event.player.PlayerQuitEvent.QuitReason.TIMED_OUT; // Paper ++ if (player != null) player.quitReason = org.bukkit.event.player.PlayerQuitEvent.QuitReason.TIMED_OUT; // Paper - Add API for quit reason this.disconnect(Component.translatable("disconnect.timeout")); } else { MutableComponent ichatmutablecomponent = Component.translatable("disconnect.genericReason", "Internal Exception: " + throwable); -+ if (player != null) player.quitReason = org.bukkit.event.player.PlayerQuitEvent.QuitReason.ERRONEOUS_STATE; // Paper ++ if (player != null) player.quitReason = org.bukkit.event.player.PlayerQuitEvent.QuitReason.ERRONEOUS_STATE; // Paper - Add API for quit reason if (flag) { Connection.LOGGER.debug("Failed to sent packet", throwable); if (this.getSending() == PacketFlow.CLIENTBOUND) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8eb1d297ff0317ac679e85e03d0b4546fa1ed315..ff75234d76e4f6a939841c982a6fc3e33b36ea61 100644 +index 8eb1d297ff0317ac679e85e03d0b4546fa1ed315..d1de7aedc4ecaffed53c356224e3e670fd70256c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -279,6 +279,7 @@ public class ServerPlayer extends Player { public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper public @Nullable String clientBrandName = null; // Paper - Brand name -+ 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 org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index f489b207cd3b62a33723f2e9ed0f46020d7f4fd1..0616a8e89931680602da2dbc640906708aebd5ca 100644 +index 81d4613a23dd0ffc442f0a4e2cbc84d82134dda7..98751a16f1dc372e2f517d48e8a7584b0370e65e 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -315,6 +315,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack final Component ichatbasecomponent = io.papermc.paper.adventure.PaperAdventure.asVanilla(event.reason()); // Paper - Adventure // CraftBukkit end -+ this.player.quitReason = org.bukkit.event.player.PlayerQuitEvent.QuitReason.KICKED; // Paper ++ this.player.quitReason = org.bukkit.event.player.PlayerQuitEvent.QuitReason.KICKED; // Paper - Add API for quit reason this.connection.send(new ClientboundDisconnectPacket(ichatbasecomponent), PacketSendListener.thenRun(() -> { this.connection.disconnect(ichatbasecomponent); })); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 29b535dae6eff1c6b47a5d2818fbf0653cd32b8f..ccdb911e723d8cf5ffbfc162778ab948eb4d1bc2 100644 +index 29b535dae6eff1c6b47a5d2818fbf0653cd32b8f..35d9aae5ae0618e6509a3d452e0609326e2737c0 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -579,7 +579,7 @@ public abstract class PlayerList { @@ -57,7 +57,7 @@ index 29b535dae6eff1c6b47a5d2818fbf0653cd32b8f..ccdb911e723d8cf5ffbfc162778ab948 } - PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName()))); // Paper - Adventure -+ PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName())), entityplayer.quitReason); // Paper - Adventure & quit reason ++ PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName())), entityplayer.quitReason); // Paper - Adventure & Add API for quit reason this.cserver.getPluginManager().callEvent(playerQuitEvent); entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); diff --git a/patches/server/0477-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0477-Add-Wandering-Trader-spawn-rate-config-options.patch index 09e0c87600b8..e14e51ab4844 100644 --- a/patches/server/0477-Add-Wandering-Trader-spawn-rate-config-options.patch +++ b/patches/server/0477-Add-Wandering-Trader-spawn-rate-config-options.patch @@ -11,7 +11,7 @@ in IWorldServerData are removed as they were only used in certain places, with h values used in other places. diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java -index 83d0db5a9f03ee3ead10d9f61e5f425330eae0e9..5d199fe497bd852827d3d18fb7566a09e70331a3 100644 +index 83d0db5a9f03ee3ead10d9f61e5f425330eae0e9..a089f72695b5fb49c7918e89fd5015e8c3a3dd0e 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java @@ -40,43 +40,53 @@ public class WanderingTraderSpawner implements CustomSpawner { @@ -27,7 +27,7 @@ index 83d0db5a9f03ee3ead10d9f61e5f425330eae0e9..5d199fe497bd852827d3d18fb7566a09 - this.spawnChance = 25; - properties.setWanderingTraderSpawnChance(this.spawnChance); - } -+ // Paper start ++ // Paper start - Add Wandering Trader spawn rate config options + this.tickDelay = Integer.MIN_VALUE; + //this.spawnDelay = properties.getWanderingTraderSpawnDelay(); // Paper - This value is read from the world file only for the first spawn, after which vanilla uses a hardcoded value + //this.spawnChance = properties.getWanderingTraderSpawnChance(); // Paper - This value is read from the world file only for the first spawn, after which vanilla uses a hardcoded value @@ -37,13 +37,13 @@ index 83d0db5a9f03ee3ead10d9f61e5f425330eae0e9..5d199fe497bd852827d3d18fb7566a09 + // this.spawnChance = 25; + // properties.setWanderingTraderSpawnChance(this.spawnChance); + //} -+ // Paper end ++ // Paper end - Add Wandering Trader spawn rate config options } @Override public int tick(ServerLevel world, boolean spawnMonsters, boolean spawnAnimals) { -+ // Paper start ++ // Paper start - Add Wandering Trader spawn rate config options + if (this.tickDelay == Integer.MIN_VALUE) { + this.tickDelay = world.paperConfig().entities.spawning.wanderingTrader.spawnMinuteLength; + this.spawnDelay = world.paperConfig().entities.spawning.wanderingTrader.spawnDayLength; @@ -81,7 +81,7 @@ index 83d0db5a9f03ee3ead10d9f61e5f425330eae0e9..5d199fe497bd852827d3d18fb7566a09 } else if (this.spawn(world)) { - this.spawnChance = 25; + this.spawnChance = world.paperConfig().entities.spawning.wanderingTrader.spawnChanceMin; -+ // Paper end ++ // Paper end - Add Wandering Trader spawn rate config options return 1; } else { return 0; diff --git a/patches/server/0478-Expose-world-spawn-angle.patch b/patches/server/0478-Expose-world-spawn-angle.patch index a70c649155ba..c454e5988f5c 100644 --- a/patches/server/0478-Expose-world-spawn-angle.patch +++ b/patches/server/0478-Expose-world-spawn-angle.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose world spawn angle diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ccdb911e723d8cf5ffbfc162778ab948eb4d1bc2..d727e401b311eea832315cc681fa7d73886c3f99 100644 +index 35d9aae5ae0618e6509a3d452e0609326e2737c0..f81ca5918b43eb9ac74925988abcd0cfc65fe3d3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -849,7 +849,7 @@ public abstract class PlayerList { @@ -13,7 +13,7 @@ index ccdb911e723d8cf5ffbfc162778ab948eb4d1bc2..d727e401b311eea832315cc681fa7d73 worldserver1 = this.server.getLevel(Level.OVERWORLD); blockposition = entityplayer1.getSpawnPoint(worldserver1); - location = CraftLocation.toBukkit(blockposition, worldserver1.getWorld()).add(0.5F, 0.1F, 0.5F); -+ location = CraftLocation.toBukkit(blockposition, worldserver1.getWorld(), worldserver1.levelData.getSpawnAngle(), 0.0F).add(0.5F, 0.1F, 0.5F); // Paper - use world spawn angle ++ location = CraftLocation.toBukkit(blockposition, worldserver1.getWorld(), worldserver1.levelData.getSpawnAngle(), 0.0F).add(0.5F, 0.1F, 0.5F); // Paper - Expose world spawn angle } Player respawnPlayer = entityplayer1.getBukkitEntity(); diff --git a/patches/server/0482-Add-PlayerItemCooldownEvent.patch b/patches/server/0482-Add-PlayerItemCooldownEvent.patch index 751841d11783..4867c4cc9d18 100644 --- a/patches/server/0482-Add-PlayerItemCooldownEvent.patch +++ b/patches/server/0482-Add-PlayerItemCooldownEvent.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add PlayerItemCooldownEvent diff --git a/src/main/java/net/minecraft/world/item/ServerItemCooldowns.java b/src/main/java/net/minecraft/world/item/ServerItemCooldowns.java -index 47283d2a49209839002212e663a503a82ea86587..ce026600b3b5c846d991a0dfe599708caf2a2962 100644 +index 47283d2a49209839002212e663a503a82ea86587..2cc8be27ac71d281ac62a2612723caca111f522e 100644 --- a/src/main/java/net/minecraft/world/item/ServerItemCooldowns.java +++ b/src/main/java/net/minecraft/world/item/ServerItemCooldowns.java @@ -10,6 +10,16 @@ public class ServerItemCooldowns extends ItemCooldowns { this.player = player; } -+ // Paper start ++ // Paper start - Add PlayerItemCooldownEvent + @Override + public void addCooldown(Item item, int duration) { + io.papermc.paper.event.player.PlayerItemCooldownEvent event = new io.papermc.paper.event.player.PlayerItemCooldownEvent(this.player.getBukkitEntity(), org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(item), duration); @@ -20,7 +20,7 @@ index 47283d2a49209839002212e663a503a82ea86587..ce026600b3b5c846d991a0dfe599708c + super.addCooldown(item, event.getCooldown()); + } + } -+ // Paper end ++ // Paper end - Add PlayerItemCooldownEvent + @Override protected void onCooldownStarted(Item item, int duration) { diff --git a/patches/server/0483-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0483-Significantly-improve-performance-of-the-end-generat.patch index 95f0914262f5..dc7812a211ad 100644 --- a/patches/server/0483-Significantly-improve-performance-of-the-end-generat.patch +++ b/patches/server/0483-Significantly-improve-performance-of-the-end-generat.patch @@ -12,14 +12,14 @@ Co-authored-by: Dylan Xaldin Co-authored-by: pop4959 diff --git a/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java b/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java -index fac92f37c32e0398ebc05d9a0378446fcabaef1a..1beacd84bb0eee1f3e8f451fc1c514e23cc62826 100644 +index fac92f37c32e0398ebc05d9a0378446fcabaef1a..01b60aaf484e1e327ca42d3573fd86d2abd749fa 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java +++ b/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java @@ -490,6 +490,16 @@ public final class DensityFunctions { public static final KeyDispatchDataCodec CODEC = KeyDispatchDataCodec.of(MapCodec.unit(new DensityFunctions.EndIslandDensityFunction(0L))); private static final float ISLAND_THRESHOLD = -0.9F; private final SimplexNoise islandNoise; -+ // Paper start ++ // Paper start - Perf: Optimize end generation + private static final class NoiseCache { + public long[] keys = new long[8192]; + public float[] values = new float[8192]; @@ -28,7 +28,7 @@ index fac92f37c32e0398ebc05d9a0378446fcabaef1a..1beacd84bb0eee1f3e8f451fc1c514e2 + } + } + private static final ThreadLocal> noiseCache = ThreadLocal.withInitial(java.util.WeakHashMap::new); -+ // Paper end ++ // Paper end - Perf: Optimize end generation public EndIslandDensityFunction(long seed) { RandomSource randomSource = new LegacyRandomSource(seed); @@ -36,14 +36,14 @@ index fac92f37c32e0398ebc05d9a0378446fcabaef1a..1beacd84bb0eee1f3e8f451fc1c514e2 float f = 100.0F - Mth.sqrt((long) x * (long) x + (long) z * (long) z) * 8.0F; // Paper - cast ints to long to avoid integer overflow f = Mth.clamp(f, -100.0F, 80.0F); -+ NoiseCache cache = noiseCache.get().computeIfAbsent(sampler, noiseKey -> new NoiseCache()); // Paper ++ NoiseCache cache = noiseCache.get().computeIfAbsent(sampler, noiseKey -> new NoiseCache()); // Paper - Perf: Optimize end generation for(int m = -12; m <= 12; ++m) { for(int n = -12; n <= 12; ++n) { long o = (long)(i + m); long p = (long)(j + n); - if (o * o + p * p > 4096L && sampler.getValue((double)o, (double)p) < (double)-0.9F) { - float g = (Mth.abs((float)o) * 3439.0F + Mth.abs((float)p) * 147.0F) % 13.0F + 9.0F; -+ // Paper start - Significantly improve end generation performance by using a noise cache ++ // Paper start - Perf: Optimize end generation by using a noise cache + long key = net.minecraft.world.level.ChunkPos.asLong((int) o, (int) p); + int index = (int) it.unimi.dsi.fastutil.HashCommon.mix(key) & 8191; + float g = Float.MIN_VALUE; @@ -57,7 +57,7 @@ index fac92f37c32e0398ebc05d9a0378446fcabaef1a..1beacd84bb0eee1f3e8f451fc1c514e2 + cache.values[index] = g; + } + if (g != Float.MIN_VALUE) { -+ // Paper end ++ // Paper end - Perf: Optimize end generation float h = (float)(k - m * 2); float q = (float)(l - n * 2); float r = 100.0F - Mth.sqrt(h * h + q * q) * g; diff --git a/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch index e3bd0d60408e..6ab51cf1c771 100644 --- a/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,46 +5,46 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4a1245fb3ad821ee997b35f180390a07bc871982..82eb980dd463c423b2b30a3149166a227608bb96 100644 +index cdfc00e4bee78fc7ac7dc9f52301f16cd7846698..180f87a67c84fc0cf3f54755da9801365d4158f8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2064,6 +2064,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean isPushable() { -+ // Paper start ++ // Paper start - Climbing should not bypass cramming gamerule + return isCollidable(false); + } + + public boolean isCollidable(boolean ignoreClimbing) { -+ // Paper end ++ // Paper end - Climbing should not bypass cramming gamerule return false; } diff --git a/src/main/java/net/minecraft/world/entity/EntitySelector.java b/src/main/java/net/minecraft/world/entity/EntitySelector.java -index 68e4440765636295a74ea942862d772d47282ad6..93a41156a01a1638f3ef469b1518a07e7961f378 100644 +index 68e4440765636295a74ea942862d772d47282ad6..7bd719db017425627c982728abec7b7f99edbc66 100644 --- a/src/main/java/net/minecraft/world/entity/EntitySelector.java +++ b/src/main/java/net/minecraft/world/entity/EntitySelector.java @@ -46,11 +46,16 @@ public final class EntitySelector { } public static Predicate pushableBy(Entity entity) { -+ // Paper start - ignoreClimbing param ++ // Paper start - Climbing should not bypass cramming gamerule + return pushable(entity, false); + } + public static Predicate pushable(Entity entity, boolean ignoreClimbing) { -+ // Paper end ++ // Paper end - Climbing should not bypass cramming gamerule PlayerTeam scoreboardteam = entity.getTeam(); Team.CollisionRule scoreboardteambase_enumteampush = scoreboardteam == null ? Team.CollisionRule.ALWAYS : scoreboardteam.getCollisionRule(); return (Predicate) (scoreboardteambase_enumteampush == Team.CollisionRule.NEVER ? Predicates.alwaysFalse() : EntitySelector.NO_SPECTATORS.and((entity1) -> { - if (!entity1.canCollideWithBukkit(entity) || !entity.canCollideWithBukkit(entity1)) { // CraftBukkit - collidable API -+ if (!entity1.isCollidable(ignoreClimbing) || !entity1.canCollideWithBukkit(entity) || !entity.canCollideWithBukkit(entity1)) { // CraftBukkit - collidable API // Paper - isCollidable ++ if (!entity1.isCollidable(ignoreClimbing) || !entity1.canCollideWithBukkit(entity) || !entity.canCollideWithBukkit(entity1)) { // CraftBukkit - collidable API // Paper - Climbing should not bypass cramming gamerule return false; } else if (entity.level().isClientSide && (!(entity1 instanceof Player) || !((Player) entity1).isLocalPlayer())) { return false; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 05fe4828af59e3cd894c9979ecb08ad0e1c6b2d3..7d72477cdeaa8238da1291c0a902d090463b95c8 100644 +index 05fe4828af59e3cd894c9979ecb08ad0e1c6b2d3..720b889796cd023308cf6f8e8a75b2548ca0e45f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3426,7 +3426,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -52,7 +52,7 @@ index 05fe4828af59e3cd894c9979ecb08ad0e1c6b2d3..7d72477cdeaa8238da1291c0a902d090 } // Paper end - don't run getEntities if we're not going to use its result - List list = this.level().getEntities((Entity) this, this.getBoundingBox(), EntitySelector.pushableBy(this)); -+ List list = this.level().getEntities((Entity) this, this.getBoundingBox(), EntitySelector.pushable(this, this.level().paperConfig().collisions.fixClimbingBypassingCrammingRule)); // Paper - fix climbing bypassing cramming rule ++ List list = this.level().getEntities((Entity) this, this.getBoundingBox(), EntitySelector.pushable(this, this.level().paperConfig().collisions.fixClimbingBypassingCrammingRule)); // Paper - Climbing should not bypass cramming gamerule if (!list.isEmpty()) { // Paper - moved up @@ -60,7 +60,7 @@ index 05fe4828af59e3cd894c9979ecb08ad0e1c6b2d3..7d72477cdeaa8238da1291c0a902d090 return !this.isRemoved() && this.collides; // CraftBukkit } -+ // Paper start ++ // Paper start - Climbing should not bypass cramming gamerule @Override public boolean isPushable() { - return this.isAlive() && !this.isSpectator() && !this.onClimbable() && this.collides; // CraftBukkit @@ -70,12 +70,12 @@ index 05fe4828af59e3cd894c9979ecb08ad0e1c6b2d3..7d72477cdeaa8238da1291c0a902d090 + @Override + public boolean isCollidable(boolean ignoreClimbing) { + return this.isAlive() && !this.isSpectator() && (ignoreClimbing || !this.onClimbable()) && this.collides; // CraftBukkit -+ // Paper end ++ // Paper end - Climbing should not bypass cramming gamerule } // CraftBukkit start - collidable API diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index bc9a710a92662b1f69b0f5b289780fe0a0d5ed32..6b614818b14ecfc8fc82b523eeb7e21fdf9bf1ba 100644 +index bc9a710a92662b1f69b0f5b289780fe0a0d5ed32..44fa2d4f90389f5526746bd94a2450c03340bd0b 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -90,7 +90,7 @@ public class Bat extends AmbientCreature { @@ -83,12 +83,12 @@ index bc9a710a92662b1f69b0f5b289780fe0a0d5ed32..6b614818b14ecfc8fc82b523eeb7e21f @Override - public boolean isPushable() { -+ public boolean isCollidable(boolean ignoreClimbing) { // Paper ++ public boolean isCollidable(boolean ignoreClimbing) { // Paper - Climbing should not bypass cramming gamerule return false; } diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java -index fbad0e512b990c3d6885ecf92766ba6fd851cc20..4c34edc55fa0e136ccf49a3aef001f413274dfac 100644 +index fbad0e512b990c3d6885ecf92766ba6fd851cc20..f3f48225c2a1e4bd3d0091d1b4b7e4e150850ed2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java @@ -383,8 +383,8 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder { @@ -150,7 +150,7 @@ index e6a7bf9a27fb66d8c2210678dbe8afa8bbf5e7c8..6b0ec9da5a368775924f5b97c74acc5b @Override - public boolean isPushable() { -+ public boolean isCollidable(boolean ignoreClimbing) { // Paper ++ public boolean isCollidable(boolean ignoreClimbing) { // Paper - Climbing should not bypass cramming gamerule return true; } diff --git a/patches/server/0486-Added-missing-default-perms-for-commands.patch b/patches/server/0486-Add-missing-default-perms-for-commands.patch similarity index 99% rename from patches/server/0486-Added-missing-default-perms-for-commands.patch rename to patches/server/0486-Add-missing-default-perms-for-commands.patch index d2a26cc7c120..c2cc3ce8cc5a 100644 --- a/patches/server/0486-Added-missing-default-perms-for-commands.patch +++ b/patches/server/0486-Add-missing-default-perms-for-commands.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Mon, 16 Nov 2020 12:01:52 -0800 -Subject: [PATCH] Added missing default perms for commands +Subject: [PATCH] Add missing default perms for commands diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java diff --git a/patches/server/0487-Add-PlayerShearBlockEvent.patch b/patches/server/0487-Add-PlayerShearBlockEvent.patch index a3a7ee694b95..ce29a63c9c03 100644 --- a/patches/server/0487-Add-PlayerShearBlockEvent.patch +++ b/patches/server/0487-Add-PlayerShearBlockEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerShearBlockEvent diff --git a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java -index 44e72176a0da08a77fa192ee31c0fcd53f0dc22d..f82cd3677da96d3cf051c983d08a8ff302400b18 100644 +index 44e72176a0da08a77fa192ee31c0fcd53f0dc22d..65d3311cfa251b0d3246413d0714acff7d31e844 100644 --- a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java @@ -127,7 +127,7 @@ public class BeehiveBlock extends BaseEntityBlock { @@ -13,7 +13,7 @@ index 44e72176a0da08a77fa192ee31c0fcd53f0dc22d..f82cd3677da96d3cf051c983d08a8ff3 public static void dropHoneycomb(Level world, BlockPos pos) { - popResource(world, pos, new ItemStack(Items.HONEYCOMB, 3)); -+ popResource(world, pos, new ItemStack(Items.HONEYCOMB, 3)); // Paper - conflict on change, item needs to be set below ++ popResource(world, pos, new ItemStack(Items.HONEYCOMB, 3)); // Paper - Add PlayerShearBlockEvent; conflict on change, item needs to be set below } @Override @@ -34,12 +34,12 @@ index 44e72176a0da08a77fa192ee31c0fcd53f0dc22d..f82cd3677da96d3cf051c983d08a8ff3 + for (org.bukkit.inventory.ItemStack itemDrop : event.getDrops()) { + popResource(world, pos, org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(itemDrop)); + } -+ // Paper end ++ // Paper end - Add PlayerShearBlockEvent itemstack.hurtAndBreak(1, player, (entityhuman1) -> { entityhuman1.broadcastBreakEvent(hand); }); diff --git a/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java b/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java -index df11efd22682c2ed799dabf15d2cfa5973e8dca9..58bc92f70892a1ff1af3bd2c1b6d8eb57e92aced 100644 +index df11efd22682c2ed799dabf15d2cfa5973e8dca9..0f07ba8e01d437eb5fe32566616f27dd2e2f0bbd 100644 --- a/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PumpkinBlock.java @@ -35,13 +35,24 @@ public class PumpkinBlock extends Block { @@ -52,7 +52,7 @@ index df11efd22682c2ed799dabf15d2cfa5973e8dca9..58bc92f70892a1ff1af3bd2c1b6d8eb5 + if (!event.callEvent()) { + return InteractionResult.PASS; + } -+ // Paper end ++ // Paper end - Add PlayerShearBlockEvent Direction direction = hit.getDirection(); Direction direction2 = direction.getAxis() == Direction.Axis.Y ? player.getDirection().getOpposite() : direction; world.playSound((Player)null, pos, SoundEvents.PUMPKIN_CARVE, SoundSource.BLOCKS, 1.0F, 1.0F); @@ -61,7 +61,7 @@ index df11efd22682c2ed799dabf15d2cfa5973e8dca9..58bc92f70892a1ff1af3bd2c1b6d8eb5 + // Paper start - Add PlayerShearBlockEvent + for (org.bukkit.inventory.ItemStack item : event.getDrops()) { + ItemEntity itemEntity = new ItemEntity(world, (double) pos.getX() + 0.5D + (double) direction2.getStepX() * 0.65D, (double) pos.getY() + 0.1D, (double) pos.getZ() + 0.5D + (double) direction2.getStepZ() * 0.65D, org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item)); -+ // Paper end ++ // Paper end - Add PlayerShearBlockEvent itemEntity.setDeltaMovement(0.05D * (double)direction2.getStepX() + world.random.nextDouble() * 0.02D, 0.05D, 0.05D * (double)direction2.getStepZ() + world.random.nextDouble() * 0.02D); world.addFreshEntity(itemEntity); + } // Paper - Add PlayerShearBlockEvent diff --git a/patches/server/0488-Limit-recipe-packets.patch b/patches/server/0488-Limit-recipe-packets.patch index 738970877fb3..30573f9a25c4 100644 --- a/patches/server/0488-Limit-recipe-packets.patch +++ b/patches/server/0488-Limit-recipe-packets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Limit recipe packets diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 27b84c1db793af21c947ab31e7732a3b371da40a..3683e3b56da96e5528d63319892b5ec76075d86c 100644 +index 6e1bfe5342e23a0dd97dfbc06a43bf77dfab23cc..a3715ab0d5f7ae33ba64e69b391e12a00b2e59e9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -258,6 +258,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -20,22 +20,22 @@ index 27b84c1db793af21c947ab31e7732a3b371da40a..3683e3b56da96e5528d63319892b5ec7 // CraftBukkit start for (int spam; (spam = this.chatSpamTickCount.get()) > 0 && !this.chatSpamTickCount.compareAndSet(spam, spam - 1); ) ; if (tabSpamLimiter.get() > 0) tabSpamLimiter.getAndDecrement(); // Paper - split to seperate variable -+ if (recipeSpamPackets.get() > 0) recipeSpamPackets.getAndDecrement(); // Paper ++ if (recipeSpamPackets.get() > 0) recipeSpamPackets.getAndDecrement(); // Paper - auto recipe limit /* Use thread-safe field access instead if (this.chatSpamTickCount > 0) { --this.chatSpamTickCount; -@@ -2990,6 +2992,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2985,6 +2987,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) { -+ // Paper start ++ // Paper start - auto recipe limit + if (!org.bukkit.Bukkit.isPrimaryThread()) { + if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { + this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", new Object[0]))); // Paper + return; + } + } -+ // Paper end ++ // Paper end - auto recipe limit PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); this.player.resetLastActionTime(); if (!this.player.isSpectator() && this.player.containerMenu.containerId == packet.getContainerId() && this.player.containerMenu instanceof RecipeBookMenu) { diff --git a/patches/server/0490-Player-Chunk-Load-Unload-Events.patch b/patches/server/0490-Player-Chunk-Load-Unload-Events.patch index 504b607773ff..213aeca6b7ea 100644 --- a/patches/server/0490-Player-Chunk-Load-Unload-Events.patch +++ b/patches/server/0490-Player-Chunk-Load-Unload-Events.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Player Chunk Load/Unload Events diff --git a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java -index 19b3f4fa7678a038bf25efc2a8b46ddad0193fde..cfeb85b89a7f3dbc856fe7ebdf0bd6a9f3761f1c 100644 +index 19b3f4fa7678a038bf25efc2a8b46ddad0193fde..fb1863d235a61ec977e8ad87a289d935a9c5d0e4 100644 --- a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java +++ b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java @@ -46,6 +46,11 @@ public class PlayerChunkSender { public static void dropChunkStatic(ServerPlayer player, ChunkPos pos) { player.serverLevel().chunkSource.chunkMap.getVisibleChunkIfPresent(pos.toLong()).removePlayer(player); player.connection.send(new ClientboundForgetLevelChunkPacket(pos)); -+ // Paper start ++ // Paper start - PlayerChunkUnloadEvent + if (io.papermc.paper.event.packet.PlayerChunkUnloadEvent.getHandlerList().getRegisteredListeners().length > 0) { + new io.papermc.paper.event.packet.PlayerChunkUnloadEvent(player.getBukkitEntity().getWorld().getChunkAt(pos.longKey), player.getBukkitEntity()).callEvent(); + } -+ // Paper end ++ // Paper end - PlayerChunkUnloadEvent } // Paper end - rewrite player chunk loader diff --git a/patches/server/0491-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0491-Optimize-Dynamic-get-Missing-Keys.patch index d664f7ff694a..e58939559a09 100644 --- a/patches/server/0491-Optimize-Dynamic-get-Missing-Keys.patch +++ b/patches/server/0491-Optimize-Dynamic-get-Missing-Keys.patch @@ -12,14 +12,14 @@ JSON representation of the NBT object. Now we will just skip the value when 99.9999% of the time the text is never even printed. diff --git a/src/main/java/com/mojang/serialization/Dynamic.java b/src/main/java/com/mojang/serialization/Dynamic.java -index a24cc02a62585d7c04d36456739b11bddccf1a15..683f516b86f246792dcb3d6f9a738fc14155d2f6 100644 +index a24cc02a62585d7c04d36456739b11bddccf1a15..984e41619230db4579b028af18670c471aa13096 100644 --- a/src/main/java/com/mojang/serialization/Dynamic.java +++ b/src/main/java/com/mojang/serialization/Dynamic.java @@ -17,6 +17,7 @@ import java.util.stream.Stream; @SuppressWarnings("unused") public class Dynamic extends DynamicLike { -+ private static final boolean DEBUG_MISSING_KEYS = Boolean.getBoolean("Paper.debugDynamicMissingKeys"); // Paper ++ private static final boolean DEBUG_MISSING_KEYS = Boolean.getBoolean("Paper.debugDynamicMissingKeys"); // Paper - Perf: Skip toString on values like NBT private final T value; public Dynamic(final DynamicOps ops) { @@ -28,7 +28,7 @@ index a24cc02a62585d7c04d36456739b11bddccf1a15..683f516b86f246792dcb3d6f9a738fc1 final T value = m.get(key); if (value == null) { - return DataResult.error(() -> "key missing: " + key + " in " + this.value); -+ return DataResult.error(() -> DEBUG_MISSING_KEYS ? "key missing: " + key + " in " + this.value : "key missing: " + key); // Paper ++ return DataResult.error(() -> DEBUG_MISSING_KEYS ? "key missing: " + key + " in " + this.value : "key missing: " + key); // Paper - Perf: Skip toString on values like NBT } return DataResult.success(new Dynamic<>(ops, value)); })); diff --git a/patches/server/0494-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch b/patches/server/0494-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch similarity index 79% rename from patches/server/0494-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch rename to patches/server/0494-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch index 429087e774a4..6d784edade6d 100644 --- a/patches/server/0494-Do-not-crash-from-invalid-ingredient-lists-in-Villag.patch +++ b/patches/server/0494-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch @@ -1,12 +1,12 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 27 Dec 2020 11:31:06 +0000 -Subject: [PATCH] Do not crash from invalid ingredient lists in +Subject: [PATCH] Fix crash from invalid ingredient lists in VillagerAcquireTradeEvent diff --git a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java -index 66b7a2c9a7dc18a98bf2c3aac863a10cbc3ae9f9..73bc45000b5285ccf5b06e2f372d6c82bf843b82 100644 +index 66b7a2c9a7dc18a98bf2c3aac863a10cbc3ae9f9..1ec236f6c141c28a26658f6a0c43df4ab2ec2f7a 100644 --- a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java @@ -261,7 +261,11 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa @@ -14,11 +14,11 @@ index 66b7a2c9a7dc18a98bf2c3aac863a10cbc3ae9f9..73bc45000b5285ccf5b06e2f372d6c82 } if (!event.isCancelled()) { - recipeList.add(CraftMerchantRecipe.fromBukkit(event.getRecipe()).toMinecraft()); -+ // Paper start ++ // Paper start - Fix crash from invalid ingredient list + final CraftMerchantRecipe craftMerchantRecipe = CraftMerchantRecipe.fromBukkit(event.getRecipe()); + if (craftMerchantRecipe.getIngredients().isEmpty()) return; + recipeList.add(craftMerchantRecipe.toMinecraft()); -+ // Paper end ++ // Paper end - Fix crash from invalid ingredient list } // CraftBukkit end ++j; diff --git a/patches/server/0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch index f32afc053ede..88bac3edc670 100644 --- a/patches/server/0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch +++ b/patches/server/0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Add PlayerTradeEvent and PlayerPurchaseEvent Co-authored-by: Alexander diff --git a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java -index 73bc45000b5285ccf5b06e2f372d6c82bf843b82..5a591c439c5cef6b7e7e6f836ab813cb4f29b08c 100644 +index 1ec236f6c141c28a26658f6a0c43df4ab2ec2f7a..c3b100b8d1068b2a77a344de7fcd205a1c36e5a7 100644 --- a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java @@ -137,11 +137,24 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa @Override public void overrideXp(int experience) {} -+ // Paper start ++ // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent + @Override + public void processTrade(MerchantOffer recipe, @Nullable io.papermc.paper.event.player.PlayerPurchaseEvent event) { // The MerchantRecipe passed in here is the one set by the PlayerPurchaseEvent + if (event == null || event.willIncreaseTradeUses()) { @@ -24,34 +24,34 @@ index 73bc45000b5285ccf5b06e2f372d6c82bf843b82..5a591c439c5cef6b7e7e6f836ab813cb + } + this.notifyTrade(recipe); + } -+ // Paper end ++ // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent + @Override public void notifyTrade(MerchantOffer offer) { - offer.increaseUses(); -+ // offer.increaseUses(); // Paper - handled in processTrade ++ // offer.increaseUses(); // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent this.ambientSoundTime = -this.getAmbientSoundInterval(); - this.rewardTradeXp(offer); -+ // this.rewardTradeXp(offer); // Paper - handled in processTrade ++ // this.rewardTradeXp(offer); // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent if (this.tradingPlayer instanceof ServerPlayer) { CriteriaTriggers.TRADE.trigger((ServerPlayer) this.tradingPlayer, this, offer.getResult()); } diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 52e57fa3b25dce10c17682964cbd4bcb4c130dc6..c6ac55cdece9e2901e5d17a23408171c6c49ff69 100644 +index 52e57fa3b25dce10c17682964cbd4bcb4c130dc6..1465dbc29fc34bfe6ebb53e95fa6a4cbf2127a6c 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -760,6 +760,14 @@ public abstract class AbstractContainerMenu { public abstract boolean stillValid(Player player); protected boolean moveItemStackTo(ItemStack stack, int startIndex, int endIndex, boolean fromLast) { -+ // Paper start ++ // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent + return this.moveItemStackTo(stack, startIndex, endIndex, fromLast, false); + } + protected boolean moveItemStackTo(ItemStack stack, int startIndex, int endIndex, boolean fromLast, boolean isCheck) { + if (isCheck) { + stack = stack.copy(); + } -+ // Paper end ++ // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent boolean flag1 = false; int k = startIndex; @@ -59,27 +59,27 @@ index 52e57fa3b25dce10c17682964cbd4bcb4c130dc6..c6ac55cdece9e2901e5d17a23408171c slot = (Slot) this.slots.get(k); itemstack1 = slot.getItem(); -+ // Paper start - clone if only a check ++ // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent; clone if only a check + if (isCheck) { + itemstack1 = itemstack1.copy(); + } -+ // Paper end ++ // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent if (!itemstack1.isEmpty() && ItemStack.isSameItemSameTags(stack, itemstack1)) { int l = itemstack1.getCount() + stack.getCount(); if (l <= stack.getMaxStackSize()) { stack.setCount(0); itemstack1.setCount(l); -+ if (!isCheck) { // Paper - dont update if only a check ++ if (!isCheck) { // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent slot.setChanged(); -+ } // Paper ++ } // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent flag1 = true; } else if (itemstack1.getCount() < stack.getMaxStackSize()) { stack.shrink(stack.getMaxStackSize() - itemstack1.getCount()); itemstack1.setCount(stack.getMaxStackSize()); -+ if (!isCheck) { // Paper - dont update if only a check ++ if (!isCheck) { // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent slot.setChanged(); -+ } // Paper ++ } // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent flag1 = true; } } @@ -87,38 +87,38 @@ index 52e57fa3b25dce10c17682964cbd4bcb4c130dc6..c6ac55cdece9e2901e5d17a23408171c slot = (Slot) this.slots.get(k); itemstack1 = slot.getItem(); -+ // Paper start - clone if only a check ++ // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent + if (isCheck) { + itemstack1 = itemstack1.copy(); + } -+ // Paper end ++ // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent if (itemstack1.isEmpty() && slot.mayPlace(stack)) { if (stack.getCount() > slot.getMaxStackSize()) { -+ // Paper start - dont set slot if only check ++ // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent + if (isCheck) { + stack.shrink(slot.getMaxStackSize()); + } else { -+ // Paper end ++ // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent slot.setByPlayer(stack.split(slot.getMaxStackSize())); -+ } // Paper ++ } // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent } else { -+ // Paper start - dont set slot if only check ++ // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent + if (isCheck) { + stack.shrink(stack.getCount()); + } else { -+ // Paper end ++ // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent slot.setByPlayer(stack.split(stack.getCount())); -+ } // Paper ++ } // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent } -+ if (!isCheck) { // Paper - dont update if only check ++ if (!isCheck) { // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent slot.setChanged(); -+ } // Paper ++ } // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent flag1 = true; break; } diff --git a/src/main/java/net/minecraft/world/inventory/MerchantMenu.java b/src/main/java/net/minecraft/world/inventory/MerchantMenu.java -index 743a2adc465be5477d204185967265389d7102de..8eab7596e1f7d1beb9ab0d70d1310d26822262e9 100644 +index 743a2adc465be5477d204185967265389d7102de..9c17c14de888ef3fbf4139cbad3889ece1d74aa1 100644 --- a/src/main/java/net/minecraft/world/inventory/MerchantMenu.java +++ b/src/main/java/net/minecraft/world/inventory/MerchantMenu.java @@ -134,12 +134,12 @@ public class MerchantMenu extends AbstractContainerMenu { @@ -126,13 +126,13 @@ index 743a2adc465be5477d204185967265389d7102de..8eab7596e1f7d1beb9ab0d70d1310d26 itemstack = itemstack1.copy(); if (slot == 2) { - if (!this.moveItemStackTo(itemstack1, 3, 39, true)) { -+ if (!this.moveItemStackTo(itemstack1, 3, 39, true, true)) { // Paper ++ if (!this.moveItemStackTo(itemstack1, 3, 39, true, true)) { // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent return ItemStack.EMPTY; } - slot1.onQuickCraft(itemstack1, itemstack); - this.playTradeSound(); -+ // slot1.onQuickCraft(itemstack1, itemstack); // Paper - moved to after the non-check moveItemStackTo call ++ // slot1.onQuickCraft(itemstack1, itemstack); // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent; moved to after the non-check moveItemStackTo call + // this.playTradeSound(); } else if (slot != 0 && slot != 1) { if (slot >= 3 && slot < 30) { @@ -141,7 +141,7 @@ index 743a2adc465be5477d204185967265389d7102de..8eab7596e1f7d1beb9ab0d70d1310d26 return ItemStack.EMPTY; } -+ if (slot != 2) { // Paper - moved down for slot 2 ++ if (slot != 2) { // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent; moved down for slot 2 if (itemstack1.isEmpty()) { slot1.setByPlayer(ItemStack.EMPTY); } else { @@ -149,7 +149,7 @@ index 743a2adc465be5477d204185967265389d7102de..8eab7596e1f7d1beb9ab0d70d1310d26 } slot1.onTake(player, itemstack1); -+ } // Paper start - handle slot 2 ++ } // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent; handle slot 2 + if (slot == 2) { // is merchant result slot + slot1.onTake(player, itemstack1); + if (itemstack1.isEmpty()) { @@ -163,12 +163,12 @@ index 743a2adc465be5477d204185967265389d7102de..8eab7596e1f7d1beb9ab0d70d1310d26 + this.playTradeSound(); + slot1.set(ItemStack.EMPTY); // itemstack1 should ALWAYS be empty + } -+ // Paper end ++ // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent } return itemstack; diff --git a/src/main/java/net/minecraft/world/inventory/MerchantResultSlot.java b/src/main/java/net/minecraft/world/inventory/MerchantResultSlot.java -index e49bbb803399ef696665c5844a18b55a551654f6..1f2b9a9a3fa167e2ba021c823dd142b0bb18a695 100644 +index e49bbb803399ef696665c5844a18b55a551654f6..23c1ba476869c9846a63138a8a11154bfd9379a2 100644 --- a/src/main/java/net/minecraft/world/inventory/MerchantResultSlot.java +++ b/src/main/java/net/minecraft/world/inventory/MerchantResultSlot.java @@ -47,13 +47,32 @@ public class MerchantResultSlot extends Slot { @@ -176,9 +176,9 @@ index e49bbb803399ef696665c5844a18b55a551654f6..1f2b9a9a3fa167e2ba021c823dd142b0 @Override public void onTake(Player player, ItemStack stack) { - this.checkTakeAchievements(stack); -+ // this.checkTakeAchievements(stack); // Paper - move to after event is called and not cancelled ++ // this.checkTakeAchievements(stack); // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent; move to after event is called and not cancelled MerchantOffer merchantOffer = this.slots.getActiveOffer(); -+ // Paper start ++ // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent + io.papermc.paper.event.player.PlayerPurchaseEvent event = null; + if (merchantOffer != null && player instanceof net.minecraft.server.level.ServerPlayer serverPlayer) { + if (this.merchant instanceof net.minecraft.world.entity.npc.AbstractVillager abstractVillager) { @@ -196,13 +196,13 @@ index e49bbb803399ef696665c5844a18b55a551654f6..1f2b9a9a3fa167e2ba021c823dd142b0 + } + } + this.checkTakeAchievements(stack); -+ // Paper end ++ // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent if (merchantOffer != null) { ItemStack itemStack = this.slots.getItem(0); ItemStack itemStack2 = this.slots.getItem(1); if (merchantOffer.take(itemStack, itemStack2) || merchantOffer.take(itemStack2, itemStack)) { - this.merchant.notifyTrade(merchantOffer); -+ this.merchant.processTrade(merchantOffer, event); // Paper ++ this.merchant.processTrade(merchantOffer, event); // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent player.awardStat(Stats.TRADED_WITH_VILLAGER); this.slots.setItem(0, itemStack); this.slots.setItem(1, itemStack2); @@ -219,14 +219,14 @@ index 5a350948a4735902f5c612592bc9d100445a0c8a..716b30dcd7e63c66736c448dd136c9f7 void notifyTradeUpdated(ItemStack stack); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java -index adf22ce4f0bcd3bd57dc2030c6c92d3df96566e3..05af1f1cfb38e4ae4ea0ecc2d0a943cbc4063c77 100644 +index adf22ce4f0bcd3bd57dc2030c6c92d3df96566e3..e33ddcd967a427abfda9e6692338da4996a81c6c 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchantCustom.java @@ -74,10 +74,25 @@ public class CraftMerchantCustom extends CraftMerchant { return this.trades; } -+ // Paper start ++ // Paper start - Add PlayerTradeEvent and PlayerPurchaseEvent + @Override + public void processTrade(MerchantOffer merchantRecipe, @javax.annotation.Nullable io.papermc.paper.event.player.PlayerPurchaseEvent event) { // The MerchantRecipe passed in here is the one set by the PlayerPurchaseEvent + /** Based on {@link net.minecraft.world.entity.npc.AbstractVillager#processTrade(MerchantOffer, io.papermc.paper.event.player.PlayerPurchaseEvent)} */ @@ -240,12 +240,12 @@ index adf22ce4f0bcd3bd57dc2030c6c92d3df96566e3..05af1f1cfb38e4ae4ea0ecc2d0a943cb + } + this.notifyTrade(merchantRecipe); + } -+ // Paper end ++ // Paper end - Add PlayerTradeEvent and PlayerPurchaseEvent @Override public void notifyTrade(MerchantOffer offer) { // increase recipe's uses - offer.increaseUses(); -+ // offer.increaseUses(); // Paper - handled above in processTrade ++ // offer.increaseUses(); // Paper - Add PlayerTradeEvent and PlayerPurchaseEvent; handled above in processTrade } @Override diff --git a/patches/server/0496-Implement-TargetHitEvent.patch b/patches/server/0496-Add-TargetHitEvent.patch similarity index 88% rename from patches/server/0496-Implement-TargetHitEvent.patch rename to patches/server/0496-Add-TargetHitEvent.patch index 917dc86b4149..f623f8091b96 100644 --- a/patches/server/0496-Implement-TargetHitEvent.patch +++ b/patches/server/0496-Add-TargetHitEvent.patch @@ -1,21 +1,21 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Wed, 25 Nov 2020 23:20:44 -0800 -Subject: [PATCH] Implement TargetHitEvent +Subject: [PATCH] Add TargetHitEvent diff --git a/src/main/java/net/minecraft/world/level/block/TargetBlock.java b/src/main/java/net/minecraft/world/level/block/TargetBlock.java -index 5ea231aadfafdfc6d08aae472827ff1e3d62f4eb..3fdc994a9b27eb099e5483c019d673c1b390434c 100644 +index 5ea231aadfafdfc6d08aae472827ff1e3d62f4eb..e885f8defd5fd5059c895ee7906664f9e4561de0 100644 --- a/src/main/java/net/minecraft/world/level/block/TargetBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TargetBlock.java @@ -42,6 +42,10 @@ public class TargetBlock extends Block { @Override public void onProjectileHit(Level world, BlockState state, BlockHitResult hit, Projectile projectile) { int i = updateRedstoneOutput(world, state, hit, projectile); -+ // Paper start ++ // Paper start - Add TargetHitEvent + } + private static void awardTargetHitCriteria(Projectile projectile, BlockHitResult hit, int i) { -+ // Paper end ++ // Paper end - Add TargetHitEvent Entity entity = projectile.getOwner(); if (entity instanceof ServerPlayer serverPlayer) { serverPlayer.awardStat(Stats.TARGET_HIT); @@ -23,7 +23,7 @@ index 5ea231aadfafdfc6d08aae472827ff1e3d62f4eb..3fdc994a9b27eb099e5483c019d673c1 private static int updateRedstoneOutput(LevelAccessor world, BlockState state, BlockHitResult hitResult, Entity entity) { int i = getRedstoneStrength(hitResult, hitResult.getLocation()); int j = entity instanceof AbstractArrow ? 20 : 8; -+ // Paper start ++ // Paper start - Add TargetHitEvent + if (entity instanceof Projectile) { + final Projectile projectile = (Projectile) entity; + final org.bukkit.craftbukkit.block.CraftBlock craftBlock = org.bukkit.craftbukkit.block.CraftBlock.at(world, hitResult.getBlockPos()); @@ -36,7 +36,7 @@ index 5ea231aadfafdfc6d08aae472827ff1e3d62f4eb..3fdc994a9b27eb099e5483c019d673c1 + return i; + } + } -+ // Paper end ++ // Paper end - Add TargetHitEvent if (!world.getBlockTicks().hasScheduledTick(hitResult.getBlockPos(), state.getBlock())) { setOutputPower(world, state, i, hitResult.getBlockPos(), j); } diff --git a/patches/server/0497-MC-4-Fix-item-position-desync.patch b/patches/server/0497-MC-4-Fix-item-position-desync.patch index 1f65133aff82..2739c75f453a 100644 --- a/patches/server/0497-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0497-MC-4-Fix-item-position-desync.patch @@ -9,7 +9,7 @@ loss, which forces the server to lose the same precision as the client keeping them in sync. diff --git a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java -index 05ac41e136da43284fb24a6b698ebd36318278fb..33d9131e9c75ef23cd637f5d6c39a2704a0c92a5 100644 +index 05ac41e136da43284fb24a6b698ebd36318278fb..3c4ac79c094dc2fff7de94150a34b7bf814ac0de 100644 --- a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java +++ b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java @@ -9,12 +9,12 @@ public class VecDeltaCodec { @@ -17,25 +17,25 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..33d9131e9c75ef23cd637f5d6c39a270 @VisibleForTesting static long encode(double value) { - return Math.round(value * 4096.0D); -+ return Math.round(value * 4096.0D); // Paper - diff on change ++ return Math.round(value * 4096.0D); // Paper - Fix MC-4; diff on change } @VisibleForTesting static double decode(long value) { - return (double)value / 4096.0D; -+ return (double)value / 4096.0D; // Paper - diff on change ++ return (double)value / 4096.0D; // Paper - Fix MC-4; diff on change } public Vec3 decode(long x, long y, long z) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 02b102b2d3e8e8ca9d0c95d3a44a56a88bee3b18..3a8572ded5c9bdf621a8c16123707da9ceb70d54 100644 +index 180f87a67c84fc0cf3f54755da9801365d4158f8..9085eeffaa7b50e5e59a794d0323cae83248f242 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4286,6 +4286,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } // Paper end - rewrite chunk system -+ // Paper start - fix MC-4 ++ // Paper start - Fix MC-4 + if (this instanceof ItemEntity) { + if (io.papermc.paper.configuration.GlobalConfiguration.get().misc.fixEntityPositionDesync) { + // encode/decode from ClientboundMoveEntityPacket @@ -44,7 +44,7 @@ index 02b102b2d3e8e8ca9d0c95d3a44a56a88bee3b18..3a8572ded5c9bdf621a8c16123707da9 + z = Mth.lfloor(z * 4096.0D) * (1 / 4096.0D); + } + } -+ // Paper end - fix MC-4 ++ // Paper end - Fix MC-4 if (this.position.x != x || this.position.y != y || this.position.z != z) { this.position = new Vec3(x, y, z); int i = Mth.floor(x); diff --git a/patches/server/0498-Additional-Block-Material-API-s.patch b/patches/server/0498-Additional-Block-Material-API.patch similarity index 96% rename from patches/server/0498-Additional-Block-Material-API-s.patch rename to patches/server/0498-Additional-Block-Material-API.patch index d688dc87dc13..81728edf4850 100644 --- a/patches/server/0498-Additional-Block-Material-API-s.patch +++ b/patches/server/0498-Additional-Block-Material-API.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 30 Dec 2020 19:43:01 -0500 -Subject: [PATCH] Additional Block Material API's +Subject: [PATCH] Additional Block Material API Faster version for isSolid() that utilizes NMS's state for isSolid instead of the slower process to do this in the Bukkit API diff --git a/patches/server/0499-Fix-harming-potion-dupe.patch b/patches/server/0499-Fix-harming-potion-dupe.patch index 545b594e9496..d7fda01e2c4a 100644 --- a/patches/server/0499-Fix-harming-potion-dupe.patch +++ b/patches/server/0499-Fix-harming-potion-dupe.patch @@ -8,7 +8,7 @@ Before this patch, instant effects would be applied before the potion ItemStack This patch makes it so that instant effects are applied after the potion ItemStack is removed, and the glass bottle is only put into the player's inventory if the player is not dead. Otherwise, the glass bottle is dropped on the ground. diff --git a/src/main/java/net/minecraft/world/item/PotionItem.java b/src/main/java/net/minecraft/world/item/PotionItem.java -index bb19a00c24e92058e05076b2ca0278dcae1890ae..d7ef159cc44787558ba41964f57a79f048371e97 100644 +index bb19a00c24e92058e05076b2ca0278dcae1890ae..5c62741e3a3854a7f674bfec49758f837f3bb9a0 100644 --- a/src/main/java/net/minecraft/world/item/PotionItem.java +++ b/src/main/java/net/minecraft/world/item/PotionItem.java @@ -50,6 +50,7 @@ public class PotionItem extends Item { @@ -36,14 +36,14 @@ index bb19a00c24e92058e05076b2ca0278dcae1890ae..d7ef159cc44787558ba41964f57a79f0 + for (MobEffectInstance mobeffect : instantLater) { + mobeffect.getEffect().applyInstantenousEffect(entityhuman, entityhuman, user, mobeffect.getAmplifier(), 1.0D); + } -+ // Paper end ++ // Paper end - Fix harming potion dupe if (entityhuman == null || !entityhuman.getAbilities().instabuild) { + // Paper start - Fix harming potion dupe + if (user.getHealth() <= 0 && !user.level().getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_KEEPINVENTORY)) { + user.spawnAtLocation(new ItemStack(Items.GLASS_BOTTLE), 0); + return ItemStack.EMPTY; + } -+ // Paper end ++ // Paper end - Fix harming potion dupe if (stack.isEmpty()) { return new ItemStack(Items.GLASS_BOTTLE); } diff --git a/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch index 66e2052f2c7f..f031bbf69f02 100644 --- a/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch +++ b/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch @@ -11,10 +11,10 @@ Subject: [PATCH] Fix interact event not being called sometimes Co-authored-by: Moulberry diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3683e3b56da96e5528d63319892b5ec76075d86c..046ee4ce24248d1b24ee4e731324f6d1d600da7e 100644 +index a3715ab0d5f7ae33ba64e69b391e12a00b2e59e9..54ca7e759897c054127e8532b9df62dca33b8e9d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1765,7 +1765,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1760,7 +1760,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl MutableComponent ichatmutablecomponent = Component.translatable("build.tooHigh", i - 1).withStyle(ChatFormatting.RED); this.player.sendSystemMessage(ichatmutablecomponent, true); @@ -23,7 +23,7 @@ index 3683e3b56da96e5528d63319892b5ec76075d86c..046ee4ce24248d1b24ee4e731324f6d1 this.player.swing(enumhand, true); } } -@@ -2311,13 +2311,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2306,13 +2306,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl double d3 = this.player.gameMode.getGameModeForPlayer() == GameType.CREATIVE ? 5.0D : 4.5D; // SPIGOT-5607: Only call interact event if no block or entity is being clicked. Use bukkit ray trace method, because it handles blocks and entities at the same time // SPIGOT-7429: Make sure to call PlayerInteractEvent for spectators and non-pickable entities diff --git a/patches/server/0510-Add-ServerResourcesReloadedEvent.patch b/patches/server/0510-Add-ServerResourcesReloadedEvent.patch index 260e67aa8192..06aa0254ca95 100644 --- a/patches/server/0510-Add-ServerResourcesReloadedEvent.patch +++ b/patches/server/0510-Add-ServerResourcesReloadedEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ServerResourcesReloadedEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c0546f796cac661684e3fe394d93f1a7d2a55a74..8d3b3524a939d483aa4d451a8ca0fed3a9c87d26 100644 +index 7d08e0750db1653685d31f1595593943c65770a1..7dfc7a01f2604cb9a5e305a689ecfdeea35f7a31 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2094,7 +2094,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= 0 && packet.getSlot() < Inventory.getSelectionSize()) { diff --git a/patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch index c035a6b430b2..5f6a82365421 100644 --- a/patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch +++ b/patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expand PlayerRespawnEvent, fix passed parameter issues Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d58d0748e218349fca1927263ad986ca824d4bda..8a6d9ae5b0735884a39fa2ded6f1d94909043eb7 100644 +index d5e002dd0d17f3c5087ace3440d5bf348cd40d5a..ba02b3004de6efe2d1f69cda0ba759c9f0192767 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2644,7 +2644,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2639,7 +2639,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl case PERFORM_RESPAWN: if (this.player.wonGame) { this.player.wonGame = false; @@ -19,7 +19,7 @@ index d58d0748e218349fca1927263ad986ca824d4bda..8a6d9ae5b0735884a39fa2ded6f1d949 } else { if (this.player.getHealth() > 0.0F) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5c63a7719b2a4a4bb2c64d460b007d2976cbdbf9..a622d91ecdea6ab4deaf0ef4ae90cba71c49b319 100644 +index abfa9d1a12caca37b4af203887689bd9c43a7d0f..a0f1d9ca16551adef2cacb16576b91810eefa292 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -781,6 +781,12 @@ public abstract class PlayerList { diff --git a/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch index 61a2d175ef1a..8690691c364f 100644 --- a/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch @@ -45,7 +45,7 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..f7c9127346261d83413ca03a1cdaa849 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 33477a639304c1491b5eea8585051e266ec93bc7..ce9555b3ccb3c3caa85e549e05e471230ee27680 100644 +index 300bae3e97bf5bc0c2340a8e360312e77b7f4c6f..4f8239829565568c1381e2f1ebc1d633cb301ac6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1989,8 +1989,16 @@ public class ServerPlayer extends Player { @@ -94,7 +94,7 @@ index 33477a639304c1491b5eea8585051e266ec93bc7..ce9555b3ccb3c3caa85e549e05e47123 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index c61754976fab6654f55b1403d769eb1721871dca..2e80e2d80bc2ec981e47a42b9c30257898afa4ad 100644 +index 49d29e4b3395d2ebea1ed13338f26c7cfbaa5f72..45f7270fb15aa091772aa921d1e7d82e2547b358 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -73,21 +73,28 @@ public class ServerPlayerGameMode { @@ -131,10 +131,10 @@ index c61754976fab6654f55b1403d769eb1721871dca..2e80e2d80bc2ec981e47a42b9c302578 } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8a6d9ae5b0735884a39fa2ded6f1d94909043eb7..f6f57a349fc7385a88299526f563df6e022f1feb 100644 +index ba02b3004de6efe2d1f69cda0ba759c9f0192767..6a32c25dbef4d8d8b9db96a69ac8c6baf1d640a6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2653,7 +2653,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2648,7 +2648,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH); if (this.server.isHardcore()) { @@ -144,7 +144,7 @@ index 8a6d9ae5b0735884a39fa2ded6f1d94909043eb7..f6f57a349fc7385a88299526f563df6e } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8a924ae677a93a177651aa1ec0728e3b8d5528a6..b7abab7eaa4f7401396a27fee79bf6367c3d4cc8 100644 +index 298380e217f41f01d0818767a6d8f1da5a004037..b602c6dfece70580971baedd638e465e8e25bd02 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1559,7 +1559,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0586-Move-range-check-for-block-placing-up.patch b/patches/server/0586-Move-range-check-for-block-placing-up.patch index cdcaf9df802a..313354cd9062 100644 --- a/patches/server/0586-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0586-Move-range-check-for-block-placing-up.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Move range check for block placing up diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f6f57a349fc7385a88299526f563df6e022f1feb..886b47805a1abdabcd05e8463620c1e211b9ece1 100644 +index 6a32c25dbef4d8d8b9db96a69ac8c6baf1d640a6..a16cd74540eca9aed47afe53af518335fcf92f33 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1743,6 +1743,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1738,6 +1738,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (itemstack.isItemEnabled(worldserver.enabledFeatures())) { BlockHitResult movingobjectpositionblock = packet.getHitResult(); Vec3 vec3d = movingobjectpositionblock.getLocation(); diff --git a/patches/server/0589-Add-Unix-domain-socket-support.patch b/patches/server/0589-Add-Unix-domain-socket-support.patch index b80ece90b659..6f98ed7836ce 100644 --- a/patches/server/0589-Add-Unix-domain-socket-support.patch +++ b/patches/server/0589-Add-Unix-domain-socket-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Unix domain socket support diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index e30efd5b0715ac777b9284ba441358bc4b7a5d03..3389fca10dac966b8ec61e5bb3ef3f78c3d1dc7f 100644 +index c89430f2274473be72ebaf2243517092f8b93899..373b39ffefd57d0e737705c748ef13e450446405 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -219,6 +219,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -87,10 +87,10 @@ index 4414b12218a5693fecaa8c1e7c7676a58bcad324..c0ae3ccf4ddf14a4967c86548ec7305c } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 886b47805a1abdabcd05e8463620c1e211b9ece1..364c010be9cc32efa05f58e9a4cdd9acd8a23200 100644 +index a16cd74540eca9aed47afe53af518335fcf92f33..8b45e0fa29cd4bfb31e3d19df876da38567899f6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2476,6 +2476,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2471,6 +2471,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Spigot Start public SocketAddress getRawAddress() { diff --git a/patches/server/0595-Add-PlayerKickEvent-causes.patch b/patches/server/0595-Add-PlayerKickEvent-causes.patch index e9e78a487dec..0334bf9757fb 100644 --- a/patches/server/0595-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0595-Add-PlayerKickEvent-causes.patch @@ -48,7 +48,7 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..ba12919c3f9aec34a9e64993b143ae92 public boolean shouldDisconnect() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7bfd8307555a9447d4c546a8945341806041cc32..970dafebf8143ab6de44bfffdeff2475685f99fa 100644 +index 6f51ff7e3486049ee6f5186bfe54078d13eae805..eeead619212e475007557a2826e69e45b441bf14 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2236,7 +2236,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable @@ -266,7 +266,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea return; } // Paper start -@@ -884,7 +884,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -881,7 +881,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Paper start - validate pick item position if (!(packet.getSlot() >= 0 && packet.getSlot() < this.player.getInventory().items.size())) { ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString()); @@ -275,7 +275,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea return; } this.player.getInventory().pickSlot(packet.getSlot()); // Paper - Diff above if changed -@@ -1069,7 +1069,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1066,7 +1066,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; if (byteLength > 256 * 4) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send a book with with a page too large!"); @@ -284,7 +284,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea return; } byteTotal += byteLength; -@@ -1092,14 +1092,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1089,14 +1089,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); @@ -301,7 +301,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea return; } this.lastBookTick = MinecraftServer.currentTick; -@@ -1243,7 +1243,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1240,7 +1240,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (ServerGamePacketListenerImpl.containsInvalidValues(packet.getX(0.0D), packet.getY(0.0D), packet.getZ(0.0D), packet.getYRot(0.0F), packet.getXRot(0.0F))) { @@ -310,7 +310,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } else { ServerLevel worldserver = this.player.serverLevel(); -@@ -1665,7 +1665,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1660,7 +1660,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.dropCount++; if (this.dropCount >= 20) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " dropped their items too quickly!"); @@ -319,7 +319,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea return; } } -@@ -1948,7 +1948,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1943,7 +1943,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.resetLastActionTime(); } else { ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString()); @@ -328,7 +328,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } } -@@ -1961,7 +1961,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1956,7 +1956,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // CraftBukkit end if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) { @@ -337,7 +337,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } else { Optional optional = this.tryHandleChat(packet.lastSeenMessages()); -@@ -1993,7 +1993,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1988,7 +1988,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleChatCommand(ServerboundChatCommandPacket packet) { if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) { @@ -346,7 +346,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } else { Optional optional = this.tryHandleChat(packet.lastSeenMessages()); -@@ -2049,7 +2049,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2044,7 +2044,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void handleMessageDecodeFailure(SignedMessageChain.DecodeException exception) { ServerGamePacketListenerImpl.LOGGER.warn("Failed to update secure chat state for {}: '{}'", this.player.getGameProfile().getName(), exception.getComponent().getString()); if (exception.shouldDisconnect()) { @@ -355,7 +355,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } else { this.player.sendSystemMessage(exception.getComponent().copy().withStyle(ChatFormatting.RED)); } -@@ -2097,7 +2097,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2092,7 +2092,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (optional.isEmpty()) { ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString()); @@ -364,7 +364,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } return optional; -@@ -2283,7 +2283,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2278,7 +2278,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // this.chatSpamTickCount += 20; if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // CraftBukkit end @@ -373,7 +373,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } } -@@ -2295,7 +2295,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2290,7 +2290,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl synchronized (this.lastSeenMessages) { if (!this.lastSeenMessages.applyOffset(packet.offset())) { ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString()); @@ -382,7 +382,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } } -@@ -2448,7 +2448,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2443,7 +2443,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (i > 4096) { @@ -391,7 +391,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } } -@@ -2505,7 +2505,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2500,7 +2500,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Spigot Start if ( entity == this.player && !this.player.isSpectator() ) { @@ -400,7 +400,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea return; } // Spigot End -@@ -2604,7 +2604,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2599,7 +2599,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // CraftBukkit end } } else { @@ -409,8 +409,8 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea ServerGamePacketListenerImpl.LOGGER.warn("Player {} tried to attack an invalid entity", ServerGamePacketListenerImpl.this.player.getName().getString()); } } -@@ -3013,7 +3013,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - // Paper start +@@ -3008,7 +3008,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + // Paper start - auto recipe limit if (!org.bukkit.Bukkit.isPrimaryThread()) { if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { - this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", new Object[0]))); // Paper @@ -418,7 +418,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea return; } } -@@ -3248,7 +3248,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3243,7 +3243,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (!Objects.equals(profilepublickey_a, profilepublickey_a1)) { if (profilepublickey_a != null && profilepublickey_a1.expiresAt().isBefore(profilepublickey_a.expiresAt())) { @@ -427,7 +427,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } else { try { SignatureValidator signaturevalidator = this.server.getProfileKeySignatureValidator(); -@@ -3261,7 +3261,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3256,7 +3256,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator)); } catch (ProfilePublicKey.ValidationException profilepublickey_b) { ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage()); @@ -437,7 +437,7 @@ index 364c010be9cc32efa05f58e9a4cdd9acd8a23200..4f7dea59cd4aed5a9acb6be5fbbbc9ea } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a622d91ecdea6ab4deaf0ef4ae90cba71c49b319..f3f8c7b7391370455fe913206a1bc9b80bdaadf8 100644 +index a0f1d9ca16551adef2cacb16576b91810eefa292..3e88b648cf4fcc19598fb50ca5651af1a52a0a84 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -684,7 +684,7 @@ public abstract class PlayerList { @@ -491,7 +491,7 @@ index 6724d0a1af13e97bc1d3bd94fd43fef742a0deab..20ba0a0c9eae28658888a77dd2170f62 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b7abab7eaa4f7401396a27fee79bf6367c3d4cc8..f1b52cccb8bb82def47c6dee8a63d51a095c112b 100644 +index b602c6dfece70580971baedd638e465e8e25bd02..c1e35f2a37b7078e484669d4bbb411df118e6d34 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -591,7 +591,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch index dd15248d3f46..7b0fa29d88cf 100644 --- a/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4f7dea59cd4aed5a9acb6be5fbbbc9ea492ee1dd..b502b3bf5f4f0a820b75434e8f620b3df01e18e2 100644 +index 29f1a054c31d00fe7ba4c5d171c47efa9275f32d..60be2ae945514aaec70a2350df2044df53ed3224 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1099,7 +1099,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1096,7 +1096,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Paper end // CraftBukkit start if (this.lastBookTick + 20 > MinecraftServer.currentTick) { diff --git a/patches/server/0616-Add-PlayerArmSwingEvent.patch b/patches/server/0616-Add-PlayerArmSwingEvent.patch index acbbe8938c57..6ddfa486f121 100644 --- a/patches/server/0616-Add-PlayerArmSwingEvent.patch +++ b/patches/server/0616-Add-PlayerArmSwingEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7e4868e776c95820385d31aaccb9b821f9d62403..bf93470be313017c125e58fdb24a0d6a14e2bb33 100644 +index 60be2ae945514aaec70a2350df2044df53ed3224..c477c6c47d6b707fcee671152bfb516eeea2cebd 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2333,7 +2333,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2328,7 +2328,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // Paper end - Call interact event // Arm swing animation diff --git a/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch index c36233af11b0..939dfabba05f 100644 --- a/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 592f8a1277cba26bf07623782bf85110e959be8c..c9842d0641b43c10b857ccc89f90b167150f359d 100644 +index eabab52143ff490c4ec646628a9dc96cf15efb72..d848119476e5ba254ce86873f1d997d0fe3da876 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -273,7 +273,6 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index 592f8a1277cba26bf07623782bf85110e959be8c..c9842d0641b43c10b857ccc89f90b167 public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 70458ff8c9bf6f3263868b0f5570840fe3d89ed2..134a84841a1e05b212794c00477f20eb30e53ec5 100644 +index 761dd36bcf0318e28613d852f95566879d835912..5d0500ee2740977c6b6eb89ed51e29b5a2e66760 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -77,6 +77,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -50,10 +50,10 @@ index 70458ff8c9bf6f3263868b0f5570840fe3d89ed2..134a84841a1e05b212794c00477f20eb MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 17cf920cc7bbd662a08b075466b8c534f0493802..d3d1195522e50b00663b274f68fae1cc5ed9d021 100644 +index c477c6c47d6b707fcee671152bfb516eeea2cebd..8fb479bcf55f71857404d9b34eef6cd26cf0babf 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1887,6 +1887,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1882,6 +1882,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void onDisconnect(Component reason) { @@ -66,7 +66,7 @@ index 17cf920cc7bbd662a08b075466b8c534f0493802..d3d1195522e50b00663b274f68fae1cc // CraftBukkit start - Rarely it would send a disconnect line twice if (this.processedDisconnect) { return; -@@ -1895,11 +1901,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1890,11 +1896,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // CraftBukkit end ServerGamePacketListenerImpl.LOGGER.info("{} lost connection: {}", this.player.getName().getString(), reason.getString()); @@ -86,7 +86,7 @@ index 17cf920cc7bbd662a08b075466b8c534f0493802..d3d1195522e50b00663b274f68fae1cc this.chatMessageChain.close(); // CraftBukkit start - Replace vanilla quit message handling with our own. /* -@@ -1909,7 +1921,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1904,7 +1916,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.disconnect(); // Paper start - Adventure @@ -96,7 +96,7 @@ index 17cf920cc7bbd662a08b075466b8c534f0493802..d3d1195522e50b00663b274f68fae1cc this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); // 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 f3f8c7b7391370455fe913206a1bc9b80bdaadf8..2a1b64e5d30cde7b2b2696a6cf5f3163071ab2d6 100644 +index 3e88b648cf4fcc19598fb50ca5651af1a52a0a84..60e60166485bc87a5ff9919f9c1603dc4eaeecc9 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -570,6 +570,11 @@ public abstract class PlayerList { @@ -111,12 +111,3 @@ index f3f8c7b7391370455fe913206a1bc9b80bdaadf8..2a1b64e5d30cde7b2b2696a6cf5f3163 ServerLevel worldserver = entityplayer.serverLevel(); entityplayer.awardStat(Stats.LEAVE_GAME); -@@ -580,7 +585,7 @@ public abstract class PlayerList { - entityplayer.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DISCONNECT); // Paper - } - -- PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName())), entityplayer.quitReason); // Paper - Adventure & quit reason -+ PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), leaveMessage, entityplayer.quitReason); // Paper - Adventure & quit reason - this.cserver.getPluginManager().callEvent(playerQuitEvent); - entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); - diff --git a/patches/server/0657-Improve-and-expand-AsyncCatcher.patch b/patches/server/0657-Improve-and-expand-AsyncCatcher.patch index dd10d6429975..3d5d345fb450 100644 --- a/patches/server/0657-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0657-Improve-and-expand-AsyncCatcher.patch @@ -17,10 +17,10 @@ Async catch modifications to critical entity state Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a1cb119e52005e09138930f5a07f919015402424..2168a16bd954f07de004d9b98ea1dbfecf1f23ae 100644 +index 09ce054d260bd7143eb9d58611144de2666166f3..5bc6b7298c253bd2ee1d5a16b8f237c824f8719a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1575,6 +1575,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1570,6 +1570,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set set) { // Paper @@ -29,7 +29,7 @@ index a1cb119e52005e09138930f5a07f919015402424..2168a16bd954f07de004d9b98ea1dbfe if (player.isRemoved()) { LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName()); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 394af8382455d2a039534b87142679f52dc8f2a6..b49ae2a36a426deb5ce393d854df762c5a256fbd 100644 +index 0292ca014fd8319fe9f5e7a1465ee5c112ef6515..4516b12d1856653c0a28f8edfc28d4644316f763 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1118,7 +1118,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -166,7 +166,7 @@ index bbbf6dd8e566ecdca8794e3b03765fe7e426a2bd..66ab901956ca394c251c420338643d39 PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason}); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index ca0af0011159834919c8e071ceac051a0e600b84..305a525815d7a3ea3f5dd3c093a76af0252c2f7e 100644 +index 40ca827fed0e69c50ad8857ec29cfa99570b1d07..e3faafc565c180467c235aa1695e80b746c03cf1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1803,6 +1803,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -202,7 +202,7 @@ index ca0af0011159834919c8e071ceac051a0e600b84..305a525815d7a3ea3f5dd3c093a76af0 ClientboundSoundEntityPacket packet = new ClientboundSoundEntityPacket(Holder.direct(SoundEvent.createVariableRangeEvent(new ResourceLocation(sound))), net.minecraft.sounds.SoundSource.valueOf(category.name()), craftEntity.getHandle(), volume, pitch, seed); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index bd5e80a04a035f670160a5eef94805ab90372cf6..3e79a73e42875936e373f797dcde6a60a904a880 100644 +index 711f4ca8ee42a14e40af86d93a9685b4b9a2ba99..269664d3894835e5bafc39e65ee5245ae1d74d78 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -463,6 +463,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch index 2b3363f4c16d..ea4a589d3429 100644 --- a/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Detail more information in watchdog dumps - Dump player name, player uuid, position, and world for packet handling diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 634b20f73d51141cb36115d2a0dda4c6d10cf266..f4807a005442111909fa0a1cffa2decb85667a63 100644 +index c48316527013dce0d572524c28b2f5d135e82c71..db18b41e300cb48b3bede8670295aa76e89069ad 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -521,7 +521,13 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -76,7 +76,7 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index bff754626913969c6946757cee968c02281f59b3..b4711272fb36b631d4426ee5b5e29fb6f11e3d1d 100644 +index e61a5e2b1ba1f8f54aac14bb61efb8c5ffca2bf9..bf88a776a600a63ddcc079aa981c5838c995521a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1244,7 +1244,26 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -122,7 +122,7 @@ index bff754626913969c6946757cee968c02281f59b3..b4711272fb36b631d4426ee5b5e29fb6 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 82db53692f3fc38625d63f9371f2d842159c454c..873ae06dc0b5de6cc69e2e8a24a882ca90ee8663 100644 +index 563c26b7f25f51ae8f256d516b2085ccedac7bcd..d84d696146214f5075bb13a484c4535149faa72f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1031,7 +1031,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -194,7 +194,7 @@ index 82db53692f3fc38625d63f9371f2d842159c454c..873ae06dc0b5de6cc69e2e8a24a882ca public void addDeltaMovement(Vec3 velocity) { @@ -4375,7 +4419,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } - // Paper end - fix MC-4 + // Paper end - Fix MC-4 if (this.position.x != x || this.position.y != y || this.position.z != z) { + synchronized (this.posLock) { // Paper this.position = new Vec3(x, y, z); diff --git a/patches/server/0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index d1b33c32f334..bc49646fe667 100644 --- a/patches/server/0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/server/0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2168a16bd954f07de004d9b98ea1dbfecf1f23ae..c067bbd0f333c0604554c6314cc19d4a121b7e27 100644 +index 5bc6b7298c253bd2ee1d5a16b8f237c824f8719a..f93d3a933fb980c3fdc1f136c79807ce8517a235 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -736,6 +736,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -733,6 +733,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // Paper end // CraftBukkit end diff --git a/patches/server/0700-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0700-Hide-unnecessary-itemmeta-from-clients.patch index 32711be5fa0e..11f579a459b8 100644 --- a/patches/server/0700-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0700-Hide-unnecessary-itemmeta-from-clients.patch @@ -18,10 +18,10 @@ index 945a0317e9e49a159a1f42882a0a267a2141e86d..e9fd9590e90e58fd4c31985a704a4511 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c067bbd0f333c0604554c6314cc19d4a121b7e27..c44c07776006cd447946a53f2a1aca17e6067986 100644 +index f93d3a933fb980c3fdc1f136c79807ce8517a235..643b98097bf77c55961cf1722faad6fb63504abd 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2566,8 +2566,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2561,8 +2561,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Refresh the current entity metadata entity.getEntityData().refresh(ServerGamePacketListenerImpl.this.player); // SPIGOT-7136 - Allays @@ -33,7 +33,7 @@ index c067bbd0f333c0604554c6314cc19d4a121b7e27..c44c07776006cd447946a53f2a1aca17 } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index de1e496c2cb75932dee84eb2b7532ad48340c504..d3a1fcd144f513d20fbc9a5688a45fa750f512ae 100644 +index e7d72a7495d07c793ce3f5110d476f1cc3ed4469..551100c72bd20d7ff224acf3750fe3dc9d73a483 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3190,7 +3190,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0707-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0707-Optimise-collision-checking-in-player-move-packet-ha.patch index 41a6ec808fad..a6d5db3ba1e9 100644 --- a/patches/server/0707-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/0707-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -8,10 +8,10 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN CHECK ME diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c44c07776006cd447946a53f2a1aca17e6067986..af43b1cf239a319f765058ff082485764528e01e 100644 +index 643b98097bf77c55961cf1722faad6fb63504abd..ffe050bed7096b147b327f3adb7d1d0d699bce7a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -543,7 +543,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -540,7 +540,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return; } @@ -20,7 +20,7 @@ index c44c07776006cd447946a53f2a1aca17e6067986..af43b1cf239a319f765058ff08248576 d6 = d3 - this.vehicleLastGoodX; // Paper - diff on change, used for checking large move vectors above d7 = d4 - this.vehicleLastGoodY - 1.0E-6D; // Paper - diff on change, used for checking large move vectors above -@@ -559,6 +559,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -556,6 +556,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } entity.move(MoverType.PLAYER, new Vec3(d6, d7, d8)); @@ -28,7 +28,7 @@ index c44c07776006cd447946a53f2a1aca17e6067986..af43b1cf239a319f765058ff08248576 double d11 = d7; d6 = d3 - entity.getX(); -@@ -572,15 +573,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -569,15 +570,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean flag2 = false; if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot @@ -55,7 +55,7 @@ index c44c07776006cd447946a53f2a1aca17e6067986..af43b1cf239a319f765058ff08248576 entity.absMoveTo(d0, d1, d2, f, f1); this.player.absMoveTo(d0, d1, d2, this.player.getYRot(), this.player.getXRot()); // CraftBukkit this.send(new ClientboundMoveVehiclePacket(entity)); -@@ -659,7 +668,32 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -656,7 +665,32 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } private boolean noBlocksAround(Entity entity) { @@ -89,7 +89,7 @@ index c44c07776006cd447946a53f2a1aca17e6067986..af43b1cf239a319f765058ff08248576 } @Override -@@ -1258,7 +1292,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1255,7 +1289,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (this.awaitingPositionFromClient != null) { @@ -98,7 +98,7 @@ index c44c07776006cd447946a53f2a1aca17e6067986..af43b1cf239a319f765058ff08248576 this.awaitingTeleportTime = this.tickCount; this.teleport(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot()); } -@@ -1354,7 +1388,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1349,7 +1383,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } @@ -107,7 +107,7 @@ index c44c07776006cd447946a53f2a1aca17e6067986..af43b1cf239a319f765058ff08248576 d6 = d0 - this.lastGoodX; // Paper - diff on change, used for checking large move vectors above d7 = d1 - this.lastGoodY; // Paper - diff on change, used for checking large move vectors above -@@ -1396,6 +1430,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1391,6 +1425,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.move(MoverType.PLAYER, new Vec3(d6, d7, d8)); this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move @@ -115,7 +115,7 @@ index c44c07776006cd447946a53f2a1aca17e6067986..af43b1cf239a319f765058ff08248576 // Paper start - prevent position desync if (this.awaitingPositionFromClient != null) { return; // ... thanks Mojang for letting move calls teleport across dimensions. -@@ -1414,11 +1449,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1409,11 +1444,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean flag2 = false; if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot @@ -141,7 +141,7 @@ index c44c07776006cd447946a53f2a1aca17e6067986..af43b1cf239a319f765058ff08248576 this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet. this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround()); } else { -@@ -1509,6 +1556,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1504,6 +1551,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } diff --git a/patches/server/0771-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0771-Prevent-tile-entity-copies-loading-chunks.patch index 331b456be105..a85195229085 100644 --- a/patches/server/0771-Prevent-tile-entity-copies-loading-chunks.patch +++ b/patches/server/0771-Prevent-tile-entity-copies-loading-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent tile entity copies loading chunks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index fb8b6fa69bf516bbaf50541e742e5375fc8c00ff..5e0466b0522ea325b2c37e3d4c80f3d61c1816fe 100644 +index 55f4dcaa58142f8710b54505d42f7f3e74bb7ce1..cae9c718ddd7b1f1978fe00d8adfbb5edef64ded 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3197,7 +3197,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3192,7 +3192,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound); if (this.player.level().isLoaded(blockposition)) { diff --git a/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch index 616ea7f9e77e..3a71f164e5e2 100644 --- a/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -18,10 +18,10 @@ index 3fb0d020493db8e5bde9f6fc76637c74b80fd791..0f562a8e0c5d4b2907174c9409977570 if (dedicatedserverproperties.enableQuery) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7eba2244e1e92dec7b81dea44b05d5e59887d242..2301445fb77cb8777632d81b60cbc04a42d86533 100644 +index cae9c718ddd7b1f1978fe00d8adfbb5edef64ded..4500a638c48c224dc38e0cfbc2f04e8bea0277ed 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2761,7 +2761,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2756,7 +2756,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH); if (this.server.isHardcore()) { this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper - Expand PlayerGameModeChangeEvent diff --git a/patches/server/0784-Do-not-accept-invalid-client-settings.patch b/patches/server/0784-Do-not-accept-invalid-client-settings.patch index 9de555bfd884..46cef750c55e 100644 --- a/patches/server/0784-Do-not-accept-invalid-client-settings.patch +++ b/patches/server/0784-Do-not-accept-invalid-client-settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Do not accept invalid client settings diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5433681fc3765d744193556217169995fbbb3c7d..97f95c0732aef7dd9d125f183994373414584432 100644 +index 4500a638c48c224dc38e0cfbc2f04e8bea0277ed..2a603cd36fc98d9c80a6c7d9ea2be51cde369297 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3321,6 +3321,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3316,6 +3316,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleClientInformation(ServerboundClientInformationPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); diff --git a/patches/server/0805-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0805-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch index 5818b76836f2..75d3e8a3654d 100644 --- a/patches/server/0805-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch +++ b/patches/server/0805-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix Spigot Config not using commands.spam-exclusions diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 97f95c0732aef7dd9d125f183994373414584432..4f26336ce8c9a6ca245b95a0014b8190b54466fe 100644 +index 2a603cd36fc98d9c80a6c7d9ea2be51cde369297..7342cc06b5b88f7dce5cd499a5aecd057463ec8f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2378,7 +2378,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2373,7 +2373,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // Spigot end // this.chatSpamTickCount += 20; diff --git a/patches/server/0806-More-Teleport-API.patch b/patches/server/0806-More-Teleport-API.patch index 431378fe2066..351e548dad15 100644 --- a/patches/server/0806-More-Teleport-API.patch +++ b/patches/server/0806-More-Teleport-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] More Teleport API diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4f26336ce8c9a6ca245b95a0014b8190b54466fe..aa37c08c4ede225439f4c52ac7787b757461f3e1 100644 +index 7342cc06b5b88f7dce5cd499a5aecd057463ec8f..e610c0209c65a7f8c645f3a626c662a78bd7382c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1637,11 +1637,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1632,11 +1632,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return false; // CraftBukkit - Return event status } @@ -29,7 +29,7 @@ index 4f26336ce8c9a6ca245b95a0014b8190b54466fe..aa37c08c4ede225439f4c52ac7787b75 d0 = to.getX(); d1 = to.getY(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 1879ec9e275194cb83f30ec47930a3814fbe1da3..027fa02e855e14b1554ddd141d0a937a64ec99e0 100644 +index b7df71633527dce2e4f954caee249e3b31b82226..ee1dc74b2f48bf8d684562de895ab631cf792a30 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -218,15 +218,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -72,7 +72,7 @@ index 1879ec9e275194cb83f30ec47930a3814fbe1da3..027fa02e855e14b1554ddd141d0a937a // Let the server handle cross world teleports if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4a900f3026d9fffbf528c944871b8763f9807352..8850e7af1bc3668a7bec95ffc8c25053cfb07f21 100644 +index 1d43b01c96f00cb08c6e72d2f9496f2300da6634..0de707a3400d42249b49e8f1899879d7e361b2a8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1207,13 +1207,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0809-Send-block-entities-after-destroy-prediction.patch b/patches/server/0809-Send-block-entities-after-destroy-prediction.patch index 7ebc3b0cddbb..d942ba6461d1 100644 --- a/patches/server/0809-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0809-Send-block-entities-after-destroy-prediction.patch @@ -7,7 +7,7 @@ Minecraft's prediction system does not handle block entities, so if we are manua block breaking we need to set it after the prediction is finished. This fixes block entities not showing when cancelling the BlockBreakEvent. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 3574fe0ce7c161a13a78b66ab881463def8cc461..c14ab35c4336c025c242e8a350ac4b8d1b1d5c78 100644 +index 313c989a0148bbcbeb756f88c0480887ef91a5be..4b0c44dff5c532a5ed7304bf4438aec2d7959fdb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -62,6 +62,8 @@ public class ServerPlayerGameMode { @@ -57,10 +57,10 @@ index 3574fe0ce7c161a13a78b66ab881463def8cc461..c14ab35c4336c025c242e8a350ac4b8d } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index aa37c08c4ede225439f4c52ac7787b757461f3e1..ff7a6977166892421e3ae8348aa15a847ebde30e 100644 +index e610c0209c65a7f8c645f3a626c662a78bd7382c..1db6455f72ce9b91b04d0b5ba76d0a1d29b98110 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1783,8 +1783,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1778,8 +1778,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return; } // Paper end - Don't allow digging in unloaded chunks diff --git a/patches/server/0865-Properly-resend-entities.patch b/patches/server/0865-Properly-resend-entities.patch index 68df7df39659..cfc0a45b15d4 100644 --- a/patches/server/0865-Properly-resend-entities.patch +++ b/patches/server/0865-Properly-resend-entities.patch @@ -85,10 +85,10 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0d public static class DataItem { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ff7a6977166892421e3ae8348aa15a847ebde30e..3af7160fc36b6f706e9448f584c19b8859919cea 100644 +index 1db6455f72ce9b91b04d0b5ba76d0a1d29b98110..3d7dd28e73c3d4419766ad37b9c494b3ce2e2d21 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2658,7 +2658,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2653,7 +2653,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Entity in bucket - SPIGOT-4048 and SPIGOT-6859a if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { @@ -98,7 +98,7 @@ index ff7a6977166892421e3ae8348aa15a847ebde30e..3af7160fc36b6f706e9448f584c19b88 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index cd0f6f3c1cf2a4004e238d0e23104209d6384c4e..824bd2bf2ad24001b7f3aa3d8f5a78f36b0baef4 100644 +index 12a3aa585ca60b47107da85d88b3a7d502a0ae9f..66296aa930a1afe3c3d89afe69d5619e5ed146bc 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -376,7 +376,7 @@ public abstract class PlayerList { @@ -125,7 +125,7 @@ index 37596c7b65f280be00e8e59ae18bd1aceae21080..eca18540aeb0b0d4098477d73b14c78a } entity.playSound(((Bucketable) entity).getPickupSound(), 1.0F, 1.0F); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 763462e4cf8abdd654b582150fab09f05e64f990..7cda23cf7400edcfa1436f6457edd7566cd42323 100644 +index dab7108644aefe69448b5e361099d97354c8db1a..49e5a9fa95ebf4568eb875953f3032b8a7142080 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -947,7 +947,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0872-Improve-logging-and-errors.patch b/patches/server/0872-Improve-logging-and-errors.patch index feaac0554c70..23e62762ada7 100644 --- a/patches/server/0872-Improve-logging-and-errors.patch +++ b/patches/server/0872-Improve-logging-and-errors.patch @@ -40,10 +40,10 @@ index 536f0c496ce36ca3248fc6eeac9bbd77214a36f9..31718823250a1490b783f426fff65bf5 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3af7160fc36b6f706e9448f584c19b8859919cea..8ccfa8b68b1f43da0a4730d3b09e100bf846ef73 100644 +index 3d7dd28e73c3d4419766ad37b9c494b3ce2e2d21..332464e238ea49544f28306c1a4a8ed3f8381761 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3395,7 +3395,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3390,7 +3390,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator)); } catch (ProfilePublicKey.ValidationException profilepublickey_b) { diff --git a/patches/server/0875-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0875-Add-missing-SpigotConfig-logCommands-check.patch index 9a642caca1e4..2ff358385689 100644 --- a/patches/server/0875-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0875-Add-missing-SpigotConfig-logCommands-check.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8ccfa8b68b1f43da0a4730d3b09e100bf846ef73..21331fb6f71aeb80504f516271c5eb99dd94727a 100644 +index 332464e238ea49544f28306c1a4a8ed3f8381761..0a70260f8d01ebbf6d35f852461a1d7710bb4b1b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2139,7 +2139,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2134,7 +2134,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void performChatCommand(ServerboundChatCommandPacket packet, LastSeenMessages lastSeenMessages) { // CraftBukkit start String command = "/" + packet.command(); diff --git a/patches/server/0881-Use-single-player-info-update-packet-on-join.patch b/patches/server/0881-Use-single-player-info-update-packet-on-join.patch index 493e289d70f9..ff4b5e759bfa 100644 --- a/patches/server/0881-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0881-Use-single-player-info-update-packet-on-join.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 21331fb6f71aeb80504f516271c5eb99dd94727a..2d67f8126850bf3efe91cd6a7c6180776b8e83fc 100644 +index 0a70260f8d01ebbf6d35f852461a1d7710bb4b1b..8bcd8a7fa65e05ccef0a205319cad9e84b4341b5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3425,7 +3425,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3420,7 +3420,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.signedMessageDecoder = session.createMessageDecoder(this.player.getUUID()); this.chatMessageChain.append(() -> { this.player.setChatSession(session); @@ -18,7 +18,7 @@ index 21331fb6f71aeb80504f516271c5eb99dd94727a..2d67f8126850bf3efe91cd6a7c618077 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 824bd2bf2ad24001b7f3aa3d8f5a78f36b0baef4..0e3f2b10a3edf129263783c68c4b25c1f7dfb8f1 100644 +index 66296aa930a1afe3c3d89afe69d5619e5ed146bc..79e2fbad2c03d6187671a073553a573022aeb060 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { diff --git a/patches/server/0901-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0901-Treat-sequence-violations-like-they-should-be.patch index d2ea0a2c8ce0..033fb9eb6472 100644 --- a/patches/server/0901-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0901-Treat-sequence-violations-like-they-should-be.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2d67f8126850bf3efe91cd6a7c6180776b8e83fc..73494f622e86bb6141f49e6d73aca1a0c1a78d21 100644 +index 8bcd8a7fa65e05ccef0a205319cad9e84b4341b5..166dbfb6a06ac69774ecfe2e8c0b0c6f22a44d19 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2043,6 +2043,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2038,6 +2038,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void ackBlockChangesUpTo(int sequence) { if (sequence < 0) { diff --git a/patches/server/0903-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0903-Prevent-causing-expired-keys-from-impacting-new-join.patch index 24d6bab05dca..47148814337e 100644 --- a/patches/server/0903-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0903-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -24,7 +24,7 @@ index 0e54e8faa48751a651b953bec72543a94edf74bc..d43106eb89b14667e85cd6e8fa047d64 UPDATE_GAME_MODE((serialized, buf) -> { serialized.gameMode = GameType.byId(buf.readVarInt()); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 73494f622e86bb6141f49e6d73aca1a0c1a78d21..a6870c5f386905a4a2f4b884683aff7640649a50 100644 +index 166dbfb6a06ac69774ecfe2e8c0b0c6f22a44d19..253d37d7e8677e438d8463eee557682aade86a1e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -287,6 +287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -49,7 +49,7 @@ index 73494f622e86bb6141f49e6d73aca1a0c1a78d21..a6870c5f386905a4a2f4b884683aff76 } public void resetPosition() { -@@ -3423,6 +3431,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3418,6 +3426,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void resetPlayerChatState(RemoteChatSession session) { this.chatSession = session; diff --git a/patches/server/0927-Properly-cancel-usable-items.patch b/patches/server/0927-Properly-cancel-usable-items.patch index cd167bc646fb..ef9ac9fa177d 100644 --- a/patches/server/0927-Properly-cancel-usable-items.patch +++ b/patches/server/0927-Properly-cancel-usable-items.patch @@ -10,7 +10,7 @@ The underlying issue of this is that the client modifies their synced data value them in order for the client to reset their using item state. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 6c415090035fdbba6e0e3533aa2f1c3b401ab9ff..41c647c46585d454f3b10a860a2b6d979d1199a3 100644 +index d0210fb4347cce1010499b9e2f7986e55ee9022c..4fdcff0ab2fb83cebbd05b00f5d6ed287cfc58ac 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -557,6 +557,7 @@ public class ServerPlayerGameMode { @@ -34,10 +34,10 @@ index 6c415090035fdbba6e0e3533aa2f1c3b401ab9ff..41c647c46585d454f3b10a860a2b6d97 return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a6870c5f386905a4a2f4b884683aff7640649a50..ead7c202ba8ed11ee180767f3acaa003f60c2b28 100644 +index 253d37d7e8677e438d8463eee557682aade86a1e..5d1a1b2abc62f15251d954e90e8e51dac184e8dd 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1955,6 +1955,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1950,6 +1950,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (cancelled) { @@ -46,7 +46,7 @@ index a6870c5f386905a4a2f4b884683aff7640649a50..ead7c202ba8ed11ee180767f3acaa003 return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 202819877d5920e8d0429a8c1bf06af4b9af950f..e9839d0dc8339ce62a6eb01c7094a2a3cf0fa816 100644 +index 75ab201ecd32b1ff2cf84466ff6a2a2029134ca2..ec37b97abd1d47331b31fc9f6637ac59ee3e7f97 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3814,6 +3814,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0934-Optimize-player-lookups-for-beacons.patch b/patches/server/0934-Optimize-player-lookups-for-beacons.patch index d1184a5b92ab..16cc0d33c85b 100644 --- a/patches/server/0934-Optimize-player-lookups-for-beacons.patch +++ b/patches/server/0934-Optimize-player-lookups-for-beacons.patch @@ -7,11 +7,11 @@ For larger ranges, it's better to iterate over the player list than the entity slices. diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index c7b0590b742a57d524de41151fc08fc596097d9c..6efd46c2c5a83a3e4f5ab8fee4519476de3459c0 100644 +index 720d798e9eb38aa97f39c5aa8c3c03671d72bdad..2250d77b0ec5ea77e3b757e03b62b26ced89a02f 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -329,7 +329,22 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name - double d0 = blockEntity != null ? blockEntity.getEffectRange() : (i * 10 + 10);// Paper - custom beacon ranges + double d0 = blockEntity != null ? blockEntity.getEffectRange() : (i * 10 + 10);// Paper - Custom beacon ranges AABB axisalignedbb = (new AABB(blockposition)).inflate(d0).expandTowards(0.0D, (double) world.getHeight(), 0.0D); - List list = world.getEntitiesOfClass(Player.class, axisalignedbb); diff --git a/patches/server/0945-Implement-PlayerFailMoveEvent.patch b/patches/server/0945-Implement-PlayerFailMoveEvent.patch index f047d7f3bd41..e334ec176278 100644 --- a/patches/server/0945-Implement-PlayerFailMoveEvent.patch +++ b/patches/server/0945-Implement-PlayerFailMoveEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement PlayerFailMoveEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ead7c202ba8ed11ee180767f3acaa003f60c2b28..4453c4238182bdee6a955a51bc219a4d8a92e3f2 100644 +index 5d1a1b2abc62f15251d954e90e8e51dac184e8dd..894eec92eaa993c0cb5335f780195e204a64ef2d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1316,8 +1316,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1313,8 +1313,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl double d0 = ServerGamePacketListenerImpl.clampHorizontal(packet.getX(this.player.getX())); final double toX = d0; // Paper - OBFHELPER double d1 = ServerGamePacketListenerImpl.clampVertical(packet.getY(this.player.getY())); final double toY = d1; double d2 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ(this.player.getZ())); final double toZ = d2; // Paper - OBFHELPER @@ -19,7 +19,7 @@ index ead7c202ba8ed11ee180767f3acaa003f60c2b28..4453c4238182bdee6a955a51bc219a4d if (this.player.isPassenger()) { this.player.absMoveTo(this.player.getX(), this.player.getY(), this.player.getZ(), f, f1); -@@ -1384,8 +1384,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1379,8 +1379,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // Paper start - Prevent moving into unloaded chunks if (this.player.level().paperConfig().chunks.preventMovingIntoUnloadedChunks && (this.player.getX() != toX || this.player.getZ() != toZ) && !worldserver.areChunksLoadedForMove(this.player.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(this.player.position())))) { @@ -36,7 +36,7 @@ index ead7c202ba8ed11ee180767f3acaa003f60c2b28..4453c4238182bdee6a955a51bc219a4d } // Paper end -@@ -1394,9 +1400,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1389,9 +1395,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (d10 - d9 > Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) { // CraftBukkit end @@ -56,7 +56,7 @@ index ead7c202ba8ed11ee180767f3acaa003f60c2b28..4453c4238182bdee6a955a51bc219a4d } } } -@@ -1462,8 +1475,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1457,8 +1470,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean flag2 = false; if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot @@ -72,7 +72,7 @@ index ead7c202ba8ed11ee180767f3acaa003f60c2b28..4453c4238182bdee6a955a51bc219a4d } // Paper start - optimise out extra getCubes -@@ -1476,6 +1496,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1471,6 +1491,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (didCollide || !axisalignedbb.equals(newBox)) { // note: only call after setLocation, or else getBoundingBox is wrong teleportBack = this.hasNewCollision(worldserver, this.player, axisalignedbb, newBox); @@ -88,7 +88,7 @@ index ead7c202ba8ed11ee180767f3acaa003f60c2b28..4453c4238182bdee6a955a51bc219a4d } // else: no collision at all detected, why do we care? } if (!this.player.noPhysics && !this.player.isSleeping() && teleportBack) { // Paper end - optimise out extra getCubes -@@ -1569,6 +1598,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1564,6 +1593,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } diff --git a/patches/server/0946-Folia-scheduler-and-owned-region-API.patch b/patches/server/0946-Folia-scheduler-and-owned-region-API.patch index f054695a56d9..06f48655a844 100644 --- a/patches/server/0946-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0946-Folia-scheduler-and-owned-region-API.patch @@ -1148,7 +1148,7 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5868f13fa3a3791704ba8e344b9c51d88786f41b..2344efd039773a0b3052d6e08ba204b1efe8963c 100644 +index e9ec17c4dfb44f6f562dedd20d123064492ef736..ffb87573b1c5df4e6f4d36d0331738da221e0f38 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1629,6 +1629,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { diff --git a/patches/server/0973-Add-PlayerPickItemEvent.patch b/patches/server/0973-Add-PlayerPickItemEvent.patch index 608b6329d79a..d1e7e6fc936e 100644 --- a/patches/server/0973-Add-PlayerPickItemEvent.patch +++ b/patches/server/0973-Add-PlayerPickItemEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerPickItemEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index cf94050bc6dc4b2f0aff9bf3ca5241d9caafb0bf..1abbd10f1d5c298fbc5e18e80ee8854c3f0ba187 100644 +index 57e7a1d60ae3644fa33ed619e8fdb4441fc3f8ce..96d44798583ee876ca8121c381638cd741d8338c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -944,8 +944,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -941,8 +941,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.disconnect("Invalid hotbar selection (Hacking?)", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause return; } diff --git a/patches/server/0984-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0984-Add-slot-sanity-checks-in-container-clicks.patch index 66a58e33cf23..9cf439e965f4 100644 --- a/patches/server/0984-Add-slot-sanity-checks-in-container-clicks.patch +++ b/patches/server/0984-Add-slot-sanity-checks-in-container-clicks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add slot sanity checks in container clicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1abbd10f1d5c298fbc5e18e80ee8854c3f0ba187..e5d734234ae0543b0772e8a12da3f60b3a97a6cb 100644 +index 96d44798583ee876ca8121c381638cd741d8338c..ba6d22426398546b70760c2205ce625cead11803 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2992,6 +2992,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2987,6 +2987,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl break; case SWAP: if ((packet.getButtonNum() >= 0 && packet.getButtonNum() < 9) || packet.getButtonNum() == 40) { @@ -22,7 +22,7 @@ index 1abbd10f1d5c298fbc5e18e80ee8854c3f0ba187..e5d734234ae0543b0772e8a12da3f60b Slot clickedSlot = this.player.containerMenu.getSlot(packet.getSlotNum()); if (clickedSlot.mayPickup(this.player)) { diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 9eef711958443726249a75e6b4fac70a1714397e..fd4caf18698ad51c789a57dec58e135c5de7ca19 100644 +index cdd23fb468f30bff52fdf8555b6106f13d0f5552..4183afe565a46ebc52ff520b046fef405e3b22f7 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -423,6 +423,7 @@ public abstract class AbstractContainerMenu { From 4a98986e2881439fc018d847df2808e2f17f3a7d Mon Sep 17 00:00:00 2001 From: "Pantera (Mad_Daniel)" <89838384+Pantera07@users.noreply.github.com> Date: Sun, 21 Jan 2024 02:26:51 +0900 Subject: [PATCH 28/45] Add back Reduce allocation of Vec3D by entity tracker patch (#10179) --- ...location-of-Vec3D-by-entity-tracker.patch} | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) rename patches/{removed/1.20.2/0403-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => server/1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (80%) diff --git a/patches/removed/1.20.2/0403-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 80% rename from patches/removed/1.20.2/0403-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index 1d5553e5a4d8..4c8651549405 100644 --- a/patches/removed/1.20.2/0403-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Reduce allocation of Vec3D by entity tracker diff --git a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java -index 05ac41e136da43284fb24a6b698ebd36318278fb..5ca3ad7b3d7606accd0a58b3c708fadb349608f7 100644 +index 3c4ac79c094dc2fff7de94150a34b7bf814ac0de..38b56923a642afc1cb411480ba03cc784ed7cd24 100644 --- a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java +++ b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java @@ -5,7 +5,7 @@ import org.jetbrains.annotations.VisibleForTesting; @@ -18,30 +18,31 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..5ca3ad7b3d7606accd0a58b3c708fadb @VisibleForTesting static long encode(double value) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 48586780da5d260894fe59efaa97cb1facfe73fe..dadf403ac91887f0fae87889170deb6d5732cbc1 100644 +index 2458bc75ece2d5eadc49df0f1c94702bd20e779f..673f0d1ee4e4228a52c07fc1b570822257e59300 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1348,9 +1348,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1418,10 +1418,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void updatePlayer(ServerPlayer player) { org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot if (player != this.entity) { +- Vec3 vec3d = player.position().subtract(this.entity.position()); + // Paper start - remove allocation of Vec3D here + // Vec3 vec3d = player.position().subtract(this.entity.position()); + double vec3d_dx = player.getX() - this.entity.getX(); + double vec3d_dz = player.getZ() - this.entity.getZ(); + // Paper end - remove allocation of Vec3D here - Vec3 vec3d = player.position().subtract(this.entity.position()); - double d0 = (double) Math.min(this.getEffectiveRange(), io.papermc.paper.chunk.system.ChunkSystem.getSendViewDistance(player) * 16); // Paper - per player view distance + int i = ChunkMap.this.getPlayerViewDistance(player); + double d0 = (double) Math.min(this.getEffectiveRange(), i * 16); - double d1 = vec3d.x * vec3d.x + vec3d.z * vec3d.z; + double d1 = vec3d_dx * vec3d_dx + vec3d_dz * vec3d_dz; // Paper double d2 = d0 * d0; - boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player); - + boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z); + // Paper start - Configurable entity tracking range by Y diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index ae3d1077b42fb288938a8a65471f00b3f52cb18f..d1bcc1f9816826391b7ba7c79e3b1c2c013933de 100644 +index ba9843cd0e922fb2fee3b3ff753767ec1bc1816b..ae188ae314336d971303023c7b7b8ecf32bae253 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -161,7 +161,13 @@ public class ServerEntity { +@@ -164,7 +164,13 @@ public class ServerEntity { i = Mth.floor(this.entity.getYRot() * 256.0F / 360.0F); j = Mth.floor(this.entity.getXRot() * 256.0F / 360.0F); Vec3 vec3d = this.entity.trackingPosition(); From b48d737759e64cdd6d5467f60533ad2d195598ee Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sat, 20 Jan 2024 21:51:15 +0000 Subject: [PATCH 29/45] Async world data IO saving (#10171) Co-authored-by: Cryptite --- .../1060-Write-SavedData-IO-async.patch | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 patches/server/1060-Write-SavedData-IO-async.patch diff --git a/patches/server/1060-Write-SavedData-IO-async.patch b/patches/server/1060-Write-SavedData-IO-async.patch new file mode 100644 index 000000000000..08c6c25da994 --- /dev/null +++ b/patches/server/1060-Write-SavedData-IO-async.patch @@ -0,0 +1,190 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Cryptite +Date: Tue, 27 Jun 2023 11:35:52 -0500 +Subject: [PATCH] Write SavedData IO async + +Co-Authored-By: Shane Freeder + +diff --git a/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java b/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java +index 513833c2ea23df5b079d157bc5cb89d5c9754c0b..9017907c0ec67a37a506f09b7e4499cef7885279 100644 +--- a/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java ++++ b/src/main/java/io/papermc/paper/world/ThreadedWorldUpgrader.java +@@ -97,6 +97,15 @@ public class ThreadedWorldUpgrader { + } + + this.threadPool.execute(new ConvertTask(info, regionPos.x >> 5, regionPos.z >> 5)); ++ // Paper start - Write SavedData IO async ++ this.threadPool.execute(() -> { ++ try { ++ worldPersistentData.close(); ++ } catch (IOException exception) { ++ LOGGER.error("Failed to close persistent world data", exception); ++ } ++ }); ++ // Paper end - Write SavedData IO async + } + this.threadPool.shutdown(); + +diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java +index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..2aaf1cc630f9cf4b61ad58d1adde5f93ba237fd6 100644 +--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java ++++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java +@@ -467,6 +467,13 @@ public class ServerChunkCache extends ChunkSource { + + public void close(boolean save) { // Paper - rewrite chunk system + this.level.chunkTaskScheduler.chunkHolderManager.close(save, true); // Paper - rewrite chunk system ++ // Paper start - Write SavedData IO async ++ try { ++ this.dataStorage.close(); ++ } catch (IOException exception) { ++ LOGGER.error("Failed to close persistent world data", exception); ++ } ++ // Paper end - Write SavedData IO async + } + + // CraftBukkit start - modelled on below +diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java +index 676087c3addd712939c865b39ddb5d9f0bc7ce25..a52ca83572c21f5977d7d0573de443ef5f931279 100644 +--- a/src/main/java/net/minecraft/server/level/ServerLevel.java ++++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +@@ -1492,7 +1492,7 @@ public class ServerLevel extends Level implements WorldGenLevel { + + try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) { + if (doFull) { +- this.saveLevelData(); ++ this.saveLevelData(true); // Paper - Write SavedData IO async + } + + this.timings.worldSaveChunks.startTiming(); // Paper +@@ -1528,7 +1528,7 @@ public class ServerLevel extends Level implements WorldGenLevel { + progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); + } + +- this.saveLevelData(); ++ this.saveLevelData(!close); // Paper - Write SavedData IO async + if (progressListener != null) { + progressListener.progressStage(Component.translatable("menu.savingChunks")); + } +@@ -1551,12 +1551,12 @@ public class ServerLevel extends Level implements WorldGenLevel { + // CraftBukkit end + } + +- private void saveLevelData() { ++ private void saveLevelData(boolean async) { // Paper - Write SavedData IO async + if (this.dragonFight != null) { + this.serverLevelData.setEndDragonFightData(this.dragonFight.saveData()); // CraftBukkit + } + +- this.getChunkSource().getDataStorage().save(); ++ this.getChunkSource().getDataStorage().save(async); // Paper - Write SavedData IO async + } + + public List getEntities(EntityTypeTest filter, Predicate predicate) { +diff --git a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java +index f2a7cb6ebed7a4b4019a09af2a025f624f6fe9c9..77dd632a266f4abed30b87b7909d77857c01e316 100644 +--- a/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java ++++ b/src/main/java/net/minecraft/util/worldupdate/WorldUpgrader.java +@@ -224,7 +224,13 @@ public class WorldUpgrader { + } + } + +- this.overworldDataStorage.save(); ++ // Paper start - Write SavedData IO async ++ try { ++ this.overworldDataStorage.close(); ++ } catch (IOException exception) { ++ LOGGER.error("Failed to close persistent world data", exception); ++ } ++ // Paper end - Write SavedData IO async + i = Util.getMillis() - i; + WorldUpgrader.LOGGER.info("World optimizaton finished after {} ms", i); + this.finished = true; +diff --git a/src/main/java/net/minecraft/world/level/saveddata/SavedData.java b/src/main/java/net/minecraft/world/level/saveddata/SavedData.java +index 697df9a9f050c0130246ce2b08a859965bddf184..0655a26a58b3df19d81b18abf6b8ab81fd000ef7 100644 +--- a/src/main/java/net/minecraft/world/level/saveddata/SavedData.java ++++ b/src/main/java/net/minecraft/world/level/saveddata/SavedData.java +@@ -29,20 +29,34 @@ public abstract class SavedData { + return this.dirty; + } + ++ @io.papermc.paper.annotation.DoNotUse // Paper - Write SavedData IO async - This is dead + public void save(File file) { ++ save(file, null).join(); // Paper - Write SavedData IO async - joining is evil, but we assume the old blocking behavior here just for safety ++ } ++ ++ public java.util.concurrent.CompletableFuture save(File file, @org.jetbrains.annotations.Nullable java.util.concurrent.ExecutorService ioExecutor) { // Paper - Write SavedData IO async + if (this.isDirty()) { + CompoundTag compoundTag = new CompoundTag(); + compoundTag.put("data", this.save(new CompoundTag())); + NbtUtils.addCurrentDataVersion(compoundTag); + ++ Runnable writeRunnable = () -> { // Paper - Write SavedData IO async + try { + NbtIo.writeCompressed(compoundTag, file.toPath()); + } catch (IOException var4) { + LOGGER.error("Could not save data {}", this, var4); + } ++ }; // Paper - Write SavedData IO async + + this.setDirty(false); ++ // Paper start - Write SavedData IO async ++ if (ioExecutor == null) { ++ return java.util.concurrent.CompletableFuture.runAsync(writeRunnable); // No executor, just use common pool ++ } ++ return java.util.concurrent.CompletableFuture.runAsync(writeRunnable, ioExecutor); + } ++ return java.util.concurrent.CompletableFuture.completedFuture(null); ++ // Paper end - Write SavedData IO async + } + + public static record Factory(Supplier constructor, Function deserializer, DataFixTypes type) { +diff --git a/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java b/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java +index d051e8c1db6b5c42b8df0be54d9d48ba0e7b0077..1c16f43872d9cf9b087f247e9aaa04e7abe3d4ae 100644 +--- a/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java ++++ b/src/main/java/net/minecraft/world/level/storage/DimensionDataStorage.java +@@ -20,15 +20,18 @@ import net.minecraft.util.datafix.DataFixTypes; + import net.minecraft.world.level.saveddata.SavedData; + import org.slf4j.Logger; + +-public class DimensionDataStorage { ++public class DimensionDataStorage implements java.io.Closeable { // Paper - Write SavedData IO async + private static final Logger LOGGER = LogUtils.getLogger(); + public final Map cache = Maps.newHashMap(); + private final DataFixer fixerUpper; + private final File dataFolder; ++ protected final java.util.concurrent.ExecutorService ioExecutor; // Paper - Write SavedData IO async + + public DimensionDataStorage(File directory, DataFixer dataFixer) { + this.fixerUpper = dataFixer; + this.dataFolder = directory; ++ String worldFolder = dataFolder.getParent(); // Paper - Write SavedData IO async ++ this.ioExecutor = java.util.concurrent.Executors.newSingleThreadExecutor(new com.google.common.util.concurrent.ThreadFactoryBuilder().setNameFormat("DimensionDataIO - " + worldFolder + " - %d").setDaemon(true).build()); // Paper - Write SavedData IO async + } + + private File getDataFile(String id) { +@@ -118,10 +121,23 @@ public class DimensionDataStorage { + return bl; + } + +- public void save() { ++ // Paper start - Write SavedData IO async ++ @Override ++ public void close() throws IOException { ++ save(false); ++ this.ioExecutor.shutdown(); ++ } ++ // Paper end - Write SavedData IO async ++ ++ public void save(boolean async) { // Paper - Write SavedData IO async + this.cache.forEach((id, state) -> { + if (state != null) { +- state.save(this.getDataFile(id)); ++ // Paper start - Write SavedData IO async ++ final java.util.concurrent.CompletableFuture save = state.save(this.getDataFile(id), ioExecutor); ++ if (!async) { ++ save.join(); ++ } ++ // Paper end - Write SavedData IO async + } + + }); From 8d94596e309ed6d8d00c501336b7899b7c53562f Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 20 Jan 2024 23:13:41 +0100 Subject: [PATCH 30/45] [ci skip] Add more identifying patch comments --- ...me-Streams-usage-in-Entity-Collision.patch | 2 +- ...on-Full-Status-Chunk-NBT-Memory-Leak.patch | 2 +- ...ze-NibbleArray-to-use-pooled-buffers.patch | 2 +- ...19-Asynchronous-chunk-IO-and-loading.patch | 2 +- .../0355-Fix-Light-Command.patch | 2 +- patches/server/0014-Timings-v2.patch | 4 +- .../server/0018-Rewrite-chunk-system.patch | 12 ++--- ...le-Keep-Spawn-Loaded-range-per-world.patch | 6 +-- ...-position-desync-causing-tp-exploit.patch} | 3 +- ...0405-Add-PlayerRecipeBookClickEvent.patch} | 16 +++--- ...7-Hide-sync-chunk-writes-behind-flag.patch | 4 +- ...ld-Difficulty-Remembering-Difficulty.patch | 26 ++++----- ...-Legacy-Component-serialization-size.patch | 10 ++-- ...-Optimize-Bit-Operations-by-inlining.patch | 6 +-- ...-incremental-chunk-and-player-saving.patch | 36 ++++++------- ...0416-Support-old-UUID-format-for-NBT.patch | 20 +++---- ...pdate-itemstack-legacy-name-and-lore.patch | 4 +- .../server/0423-Add-PrepareResultEvent.patch | 54 +++++++++---------- ...-Vanilla-Command-permission-checking.patch | 14 ++--- patches/server/0427-Fix-SPIGOT-5989.patch | 6 +-- ...ataPlayer-leak-due-from-quitting-ear.patch | 4 +- ...ze-NetworkManager-Exception-Handling.patch | 10 ++-- ...Fix-some-rails-connecting-improperly.patch | 26 ++++----- patches/server/0434-Brand-support.patch | 14 ++--- .../0436-Don-t-require-FACING-data.patch | 4 +- ...geEvent-not-firing-for-all-use-cases.patch | 14 ++--- ...erver-load-chunks-from-newer-version.patch | 8 +-- ...-headless-pistons-from-being-created.patch | 4 +- ...Add-zombie-targets-turtle-egg-config.patch | 4 +- .../server/0443-Buffer-joins-to-world.patch | 16 +++--- ...rs-not-working-in-some-kick-messages.patch | 4 +- ...CreateEvent-needs-to-know-its-entity.patch | 16 +++--- patches/server/0447-Add-more-Evoker-API.patch | 6 +-- ...ortation-and-cancel-velocity-if-tele.patch | 4 +- ...der-Remove-Streams-Optimized-collect.patch | 4 +- ...0475-Beacon-API-custom-effect-ranges.patch | 4 +- .../server/0476-Add-API-for-quit-reason.patch | 10 ++-- .../server/0488-Limit-recipe-packets.patch | 4 +- .../0527-Add-BlockPreDispenseEvent.patch | 4 +- patches/server/0543-Improve-ServerGUI.patch | 4 +- ...583-Expand-PlayerGameModeChangeEvent.patch | 8 +-- .../0595-Add-PlayerKickEvent-causes.patch | 10 ++-- ...6-Improve-boat-collision-performance.patch | 10 ++-- ...l-more-information-in-watchdog-dumps.patch | 8 +-- .../0844-Add-fire-tick-delay-option.patch | 4 +- ...-Optimize-player-lookups-for-beacons.patch | 4 +- .../0972-Deep-clone-unhandled-nbt-tags.patch | 4 +- .../0991-Actually-optimise-explosions.patch | 4 +- ...ch => 1044-Write-SavedData-IO-async.patch} | 8 +-- 49 files changed, 226 insertions(+), 229 deletions(-) rename patches/server/{0402-Prevent-position-desync-in-playerconnection-causing-.patch => 0402-Prevent-position-desync-causing-tp-exploit.patch} (95%) rename patches/server/{0405-Add-and-implement-PlayerRecipeBookClickEvent.patch => 0405-Add-PlayerRecipeBookClickEvent.patch} (86%) rename patches/server/{1060-Write-SavedData-IO-async.patch => 1044-Write-SavedData-IO-async.patch} (97%) diff --git a/patches/removed/1.16/0512-Remove-some-Streams-usage-in-Entity-Collision.patch b/patches/removed/1.16/0512-Remove-some-Streams-usage-in-Entity-Collision.patch index 308a1606f445..354e5f089a54 100644 --- a/patches/removed/1.16/0512-Remove-some-Streams-usage-in-Entity-Collision.patch +++ b/patches/removed/1.16/0512-Remove-some-Streams-usage-in-Entity-Collision.patch @@ -90,7 +90,7 @@ index 5e20dba0d011d20b714d784cb4a545a05bbf6f9c..5a21205a49606b294de4cd27b60438c6 if (!flag && flag1) { - consumer.accept(voxelshape1); - return true; -+ collisions.add(voxelshape1);// Paper ++ collisions.add(voxelshape1); // Paper + if (returnFast) return collisions; } } diff --git a/patches/removed/1.18/No longer needed/0432-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch b/patches/removed/1.18/No longer needed/0432-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch index a6a911f3a2c6..0350128805e8 100644 --- a/patches/removed/1.18/No longer needed/0432-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch +++ b/patches/removed/1.18/No longer needed/0432-Fix-Non-Full-Status-Chunk-NBT-Memory-Leak.patch @@ -45,7 +45,7 @@ index 79f2b3942a3ccccd8fe8719db12de458212e8659..d113b4835e86a789c0ba124eb839e1c5 - }); + object = new LevelChunk(world.getLevel(), pos, biomestorage, chunkconverter, (TickList) object1, (TickList) object2, k, achunksection, // Paper start - fix massive nbt memory leak due to lambda. move lambda into a container method to not leak scope. Only clone needed NBT keys. + createLoadEntitiesConsumer(new SafeNBTCopy(nbttagcompound1, "TileEntities", "Entities", "ChunkBukkitValues")) // Paper - move CB Chunk PDC into here -+ );// Paper end ++ ); // Paper end } else { ProtoChunk protochunk = new ProtoChunk(pos, chunkconverter, achunksection, protochunkticklist, protochunkticklist1, world, world); // Paper - add level diff --git a/patches/removed/1.18/No longer needed/0463-Optimize-NibbleArray-to-use-pooled-buffers.patch b/patches/removed/1.18/No longer needed/0463-Optimize-NibbleArray-to-use-pooled-buffers.patch index e85cb4e1ec6e..bff1c4bc3418 100644 --- a/patches/removed/1.18/No longer needed/0463-Optimize-NibbleArray-to-use-pooled-buffers.patch +++ b/patches/removed/1.18/No longer needed/0463-Optimize-NibbleArray-to-use-pooled-buffers.patch @@ -216,7 +216,7 @@ index 81701abd11fbc4671393a76a42973f53835ca234..e8cf0088e94925934acd02ba05b9411b if (this.data == null) { - this.data = new byte[2048]; + this.data = BYTE_2048.acquire(); // Paper -+ registerCleaner();// Paper ++ registerCleaner(); // Paper } int k = DataLayer.getByteIndex(index); diff --git a/patches/removed/1.19.2-legacy-chunksystem/0019-Asynchronous-chunk-IO-and-loading.patch b/patches/removed/1.19.2-legacy-chunksystem/0019-Asynchronous-chunk-IO-and-loading.patch index c3a209b03491..f6e909b84e28 100644 --- a/patches/removed/1.19.2-legacy-chunksystem/0019-Asynchronous-chunk-IO-and-loading.patch +++ b/patches/removed/1.19.2-legacy-chunksystem/0019-Asynchronous-chunk-IO-and-loading.patch @@ -2273,7 +2273,7 @@ index 4dd3af1416cbdad330365a19ad664079f3598c15..45db9f1b1d19319e7f92bd4e61be9ea9 convertable_conversionsession.saveDataTag(iregistrycustom_dimension, savedata); */ -+ Class.forName(net.minecraft.world.entity.npc.VillagerTrades.class.getName());// Paper - load this sync so it won't fail later async ++ Class.forName(net.minecraft.world.entity.npc.VillagerTrades.class.getName()); // Paper - load this sync so it won't fail later async final DedicatedServer dedicatedserver = (DedicatedServer) MinecraftServer.spin((thread) -> { DedicatedServer dedicatedserver1 = new DedicatedServer(optionset, config.get(), ops.get(), thread, convertable_conversionsession, resourcepackrepository, worldstem, dedicatedserversettings, DataFixers.getDataFixer(), services, LoggerChunkProgressListener::new); diff --git a/patches/removed/1.19.2-legacy-chunksystem/0355-Fix-Light-Command.patch b/patches/removed/1.19.2-legacy-chunksystem/0355-Fix-Light-Command.patch index a411a251f164..dd54adf3a4f5 100644 --- a/patches/removed/1.19.2-legacy-chunksystem/0355-Fix-Light-Command.patch +++ b/patches/removed/1.19.2-legacy-chunksystem/0355-Fix-Light-Command.patch @@ -180,7 +180,7 @@ index 4b24e4d947e96ea0720f8f6bc33470e07c00310d..d60173b03baee4a66da1109795bf6a19 this.queueSorter = new ChunkTaskPriorityQueueSorter(ImmutableList.of(threadedmailbox, mailbox, threadedmailbox1), executor, Integer.MAX_VALUE); this.worldgenMailbox = this.queueSorter.getProcessor(threadedmailbox, false); this.mainThreadMailbox = this.queueSorter.getProcessor(mailbox, false); -+ this.mailboxLight = this.queueSorter.getProcessor(lightthreaded, false);// Paper ++ this.mailboxLight = this.queueSorter.getProcessor(lightthreaded, false); // Paper this.lightEngine = new ThreadedLevelLightEngine(chunkProvider, this, this.level.dimensionType().hasSkyLight(), threadedmailbox1, this.queueSorter.getProcessor(threadedmailbox1, false)); this.distanceManager = new ChunkMap.ChunkDistanceManager(executor, mainThreadExecutor); this.overworldDataStorage = persistentStateManagerFactory; diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch index cdefaab7314a..4021cecfe85a 100644 --- a/patches/server/0014-Timings-v2.patch +++ b/patches/server/0014-Timings-v2.patch @@ -712,7 +712,7 @@ index daedf825e68655492f5ab776bc206a5eb87c0170..7de24c39b460e43d27839b3821e67213 } catch (Exception exception) { label25: diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3691fd58c7baf98b15c50fa4dacf3a35f4f9b4b8..069af49a03e0d313499f8d1815c8299ec034de61 100644 +index 3691fd58c7baf98b15c50fa4dacf3a35f4f9b4b8..a6a8b5079ceaad90a79a09cab5c38a6fde6d33ee 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -186,7 +186,7 @@ import org.bukkit.craftbukkit.Main; @@ -736,7 +736,7 @@ index 3691fd58c7baf98b15c50fa4dacf3a35f4f9b4b8..069af49a03e0d313499f8d1815c8299e private boolean haveTime() { // CraftBukkit start -+ if (isOversleep) return canOversleep();// Paper - because of our changes, this logic is broken ++ if (isOversleep) return canOversleep(); // Paper - because of our changes, this logic is broken return this.forceTicks || this.runningTask() || Util.getNanos() < (this.mayHaveDelayedTasks ? this.delayedTasksMaxNextTickTimeNanos : this.nextTickTimeNanos); } diff --git a/patches/server/0018-Rewrite-chunk-system.patch b/patches/server/0018-Rewrite-chunk-system.patch index 0545ea7ce143..a5b05ebf0212 100644 --- a/patches/server/0018-Rewrite-chunk-system.patch +++ b/patches/server/0018-Rewrite-chunk-system.patch @@ -16644,19 +16644,19 @@ index a5e438a834826161c52ca9db57d234d9ff80a591..b8bc1b9b8e8a33df90a963f9f9769292 @Override diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index ba58580f4c60205d1c7a7b7dfcdc22c4fafc9bc6..9d32d03ad59a6e2dfef2c157e621f9ef43098534 100644 +index ba58580f4c60205d1c7a7b7dfcdc22c4fafc9bc6..9ead836c08ff48430bc6d3ba225864f48d335eee 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -305,6 +305,7 @@ public class Main { convertable_conversionsession.saveDataTag(iregistrycustom_dimension, savedata); */ -+ Class.forName(net.minecraft.world.entity.npc.VillagerTrades.class.getName());// Paper - load this sync so it won't fail later async ++ Class.forName(net.minecraft.world.entity.npc.VillagerTrades.class.getName()); // Paper - load this sync so it won't fail later async final DedicatedServer dedicatedserver = (DedicatedServer) MinecraftServer.spin((thread) -> { DedicatedServer dedicatedserver1 = new DedicatedServer(optionset, worldLoader.get(), thread, convertable_conversionsession, resourcepackrepository, worldstem, dedicatedserversettings, DataFixers.getDataFixer(), services, LoggerChunkProgressListener::new); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 069af49a03e0d313499f8d1815c8299ec034de61..cfab6bdf3c3eaf456b60653377df05fcf74c53e3 100644 +index a6a8b5079ceaad90a79a09cab5c38a6fde6d33ee..75b39c8a8471bc37add3a012453c74217357535a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -300,7 +300,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Date: Fri, 12 Jun 2020 16:51:39 -0700 -Subject: [PATCH] Prevent position desync in playerconnection causing tp - exploit +Subject: [PATCH] Prevent position desync causing tp exploit Caused the server to revert to the player's overworld coordinates after teleporting into the end. diff --git a/patches/server/0405-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/server/0405-Add-PlayerRecipeBookClickEvent.patch similarity index 86% rename from patches/server/0405-Add-and-implement-PlayerRecipeBookClickEvent.patch rename to patches/server/0405-Add-PlayerRecipeBookClickEvent.patch index 06f658fd8746..413767fe542e 100644 --- a/patches/server/0405-Add-and-implement-PlayerRecipeBookClickEvent.patch +++ b/patches/server/0405-Add-PlayerRecipeBookClickEvent.patch @@ -1,18 +1,18 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: JRoy Date: Fri, 5 Jun 2020 18:24:06 -0400 -Subject: [PATCH] Add and implement PlayerRecipeBookClickEvent +Subject: [PATCH] Add PlayerRecipeBookClickEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b0f546190f4e5985e2532bb3647856ebc5efb92f..ab167cbce4e8c3ee4d755b778bd7b92a8be917de 100644 +index b0f546190f4e5985e2532bb3647856ebc5efb92f..85392f2bc3e51aa03385ffaead73baec2580771b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2973,16 +2973,40 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (!this.player.containerMenu.stillValid(this.player)) { ServerGamePacketListenerImpl.LOGGER.debug("Player {} interacted with invalid menu {}", this.player, this.player.containerMenu); } else { -+ // Paper start ++ // Paper start - Add PlayerRecipeBookClickEvent + ResourceLocation recipeName = packet.getRecipe(); + boolean makeAll = packet.isShiftDown(); + com.destroystokyo.paper.event.player.PlayerRecipeBookClickEvent paperEvent = new com.destroystokyo.paper.event.player.PlayerRecipeBookClickEvent( @@ -24,7 +24,7 @@ index b0f546190f4e5985e2532bb3647856ebc5efb92f..ab167cbce4e8c3ee4d755b778bd7b92a + recipeName = CraftNamespacedKey.toMinecraft(paperEvent.getRecipe()); + makeAll = paperEvent.isMakeAll(); + if (org.bukkit.event.player.PlayerRecipeBookClickEvent.getHandlerList().getRegisteredListeners().length > 0) { -+ // Paper end ++ // Paper end - Add PlayerRecipeBookClickEvent // CraftBukkit start - implement PlayerRecipeBookClickEvent - org.bukkit.inventory.Recipe recipe = this.cserver.getRecipe(CraftNamespacedKey.fromMinecraft(packet.getRecipe())); + org.bukkit.inventory.Recipe recipe = this.cserver.getRecipe(CraftNamespacedKey.fromMinecraft(recipeName)); // Paper @@ -32,7 +32,7 @@ index b0f546190f4e5985e2532bb3647856ebc5efb92f..ab167cbce4e8c3ee4d755b778bd7b92a return; } - org.bukkit.event.player.PlayerRecipeBookClickEvent event = CraftEventFactory.callRecipeBookClickEvent(this.player, recipe, packet.isShiftDown()); -+ // Paper start ++ // Paper start - Add PlayerRecipeBookClickEvent + org.bukkit.event.player.PlayerRecipeBookClickEvent event = CraftEventFactory.callRecipeBookClickEvent(this.player, recipe, makeAll); + recipeName = CraftNamespacedKey.toMinecraft(((org.bukkit.Keyed) event.getRecipe()).getKey()); + makeAll = event.isShiftClick(); @@ -40,16 +40,16 @@ index b0f546190f4e5985e2532bb3647856ebc5efb92f..ab167cbce4e8c3ee4d755b778bd7b92a + if (!(this.player.containerMenu instanceof RecipeBookMenu recipeBookMenu)) { + return; + } -+ // Paper end ++ // Paper end - Add PlayerRecipeBookClickEvent // Cast to keyed should be safe as the recipe will never be a MerchantRecipe. - this.server.getRecipeManager().byKey(CraftNamespacedKey.toMinecraft(((org.bukkit.Keyed) event.getRecipe()).getKey())).ifPresent((recipeholder) -> { - ((RecipeBookMenu) this.player.containerMenu).handlePlacement(event.isShiftClick(), recipeholder, this.player); -+ // Paper start ++ // Paper start - Add PlayerRecipeBookClickEvent + final boolean finalMakeAll = makeAll; + this.server.getRecipeManager().byKey(recipeName).ifPresent((recipeholder) -> { + recipeBookMenu.handlePlacement(finalMakeAll, recipeholder, this.player); -+ // Paper end ++ // Paper end - Add PlayerRecipeBookClickEvent }); // CraftBukkit end } diff --git a/patches/server/0407-Hide-sync-chunk-writes-behind-flag.patch b/patches/server/0407-Hide-sync-chunk-writes-behind-flag.patch index d3846bbd23c9..e46537bbd1c6 100644 --- a/patches/server/0407-Hide-sync-chunk-writes-behind-flag.patch +++ b/patches/server/0407-Hide-sync-chunk-writes-behind-flag.patch @@ -9,7 +9,7 @@ on harddrives. -DPaper.enable-sync-chunk-writes=true to enable diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java -index 7edce6f8d1f313a9e1e100704d625e317f779fa0..1643186bcb2caf5d29fd551afd35830726dbb80a 100644 +index 7edce6f8d1f313a9e1e100704d625e317f779fa0..c58d03898edc49b4451c82d4ccdb86980bc1a40a 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java @@ -144,7 +144,7 @@ public class DedicatedServerProperties extends Settings { return Component.translatable("commands.difficulty.success", difficulty.getDisplayName()); }, true); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 684e9e9d78f0d410176fa8b9c9d0fbfda6a156dc..2d5e8d624b153f55e28d8a4e008dce11853179cf 100644 +index 684e9e9d78f0d410176fa8b9c9d0fbfda6a156dc..6c009f7443eabce73ace587a9fc686c320f707a7 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -325,7 +325,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -71,12 +71,12 @@ index 684e9e9d78f0d410176fa8b9c9d0fbfda6a156dc..2d5e8d624b153f55e28d8a4e008dce11 @Override public void forceDifficulty() { - this.setDifficulty(this.getProperties().difficulty, true); -+ // this.setDifficulty(this.getProperties().difficulty, true); // Paper - Don't overwrite level.dat's difficulty, keep current ++ // this.setDifficulty(this.getProperties().difficulty, true); // Paper - per level difficulty; Don't overwrite level.dat's difficulty, keep current } @Override diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 71068a285ff039b609f4551d522481f2dff8235e..d43bf7ff39e9424f5cdcc93d29779570c8735869 100644 +index 71068a285ff039b609f4551d522481f2dff8235e..da445644b1f2de9f80e8198a8ed150103627187b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1209,7 +1209,7 @@ public class ServerPlayer extends Player { @@ -84,12 +84,12 @@ index 71068a285ff039b609f4551d522481f2dff8235e..d43bf7ff39e9424f5cdcc93d29779570 this.connection.send(new ClientboundRespawnPacket(this.createCommonSpawnInfo(worldserver), (byte) 3)); - this.connection.send(new ClientboundChangeDifficultyPacket(this.level().getDifficulty(), this.level().getLevelData().isDifficultyLocked())); -+ this.connection.send(new ClientboundChangeDifficultyPacket(worldserver.getDifficulty(), this.level().getLevelData().isDifficultyLocked())); // Paper - fix difficulty sync issue ++ this.connection.send(new ClientboundChangeDifficultyPacket(worldserver.getDifficulty(), this.level().getLevelData().isDifficultyLocked())); // Paper - per level difficulty PlayerList playerlist = this.server.getPlayerList(); playerlist.sendPlayerPermissionLevel(this); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 448cbe86cefdf779c7faae84748e04374f16162d..101871664077577c5cbe159d5d1a31b0e30ec68d 100644 +index ea0628515793f9a4aad5d41def90eb3034a81680..de8c48f6d3ab7eb15e934b323986ea1120ac585a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3176,7 +3176,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -97,7 +97,7 @@ index 448cbe86cefdf779c7faae84748e04374f16162d..101871664077577c5cbe159d5d1a31b0 PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (this.player.hasPermissions(2) || this.isSingleplayerOwner()) { - this.server.setDifficulty(packet.getDifficulty(), false); -+ // this.server.setDifficulty(packet.getDifficulty(), false); // Paper - don't allow clients to change this ++ // this.server.setDifficulty(packet.getDifficulty(), false); // Paper - per level difficulty; don't allow clients to change this } } @@ -117,7 +117,7 @@ index 33894e96a54039d5b406c552d8a5db6e17037151..4bb4df79dbe65fd5a6f53df64890eaa5 for (SpawnCategory spawnCategory : SpawnCategory.values()) { if (CraftSpawnCategory.isValidForLimits(spawnCategory)) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 357b82e110b789b7a12735a844a9c7e720b4f479..cb053e6c8f3cc1346a679354696e0fa0b6d3a150 100644 +index 357b82e110b789b7a12735a844a9c7e720b4f479..664389b1f37acee12cdd4bdd6fc0b9d3e6f568fb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1158,7 +1158,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -125,7 +125,7 @@ index 357b82e110b789b7a12735a844a9c7e720b4f479..cb053e6c8f3cc1346a679354696e0fa0 @Override public void setDifficulty(Difficulty difficulty) { - this.getHandle().serverLevelData.setDifficulty(net.minecraft.world.Difficulty.byId(difficulty.getValue())); -+ this.getHandle().getServer().setDifficulty(this.getHandle(), net.minecraft.world.Difficulty.byId(difficulty.getValue()), true); // Paper - don't skip other difficulty-changing logic ++ this.getHandle().getServer().setDifficulty(this.getHandle(), net.minecraft.world.Difficulty.byId(difficulty.getValue()), true); // Paper - per level difficulty; don't skip other difficulty-changing logic } @Override diff --git a/patches/server/0412-Improve-Legacy-Component-serialization-size.patch b/patches/server/0412-Improve-Legacy-Component-serialization-size.patch index 91a66f007297..00450d094b2e 100644 --- a/patches/server/0412-Improve-Legacy-Component-serialization-size.patch +++ b/patches/server/0412-Improve-Legacy-Component-serialization-size.patch @@ -7,14 +7,14 @@ Don't constantly send format: false for all formatting options when parent alrea has it false diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java -index 516b3fef4d388366df09f0dd88deadbcc0b7d344..730d8e3cf2d9ca05b2d6219cf1856b8721871a37 100644 +index 516b3fef4d388366df09f0dd88deadbcc0b7d344..753200057e74b8e2d5274894b982e6ee946a559e 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java @@ -46,6 +46,7 @@ public final class CraftChatMessage { // Separate pattern with no group 3, new lines are part of previous string private static final Pattern INCREMENTAL_PATTERN_KEEP_NEWLINES = Pattern.compile("(" + String.valueOf(org.bukkit.ChatColor.COLOR_CHAR) + "[0-9a-fk-orx])|((?:(?:https?):\\/\\/)?(?:[-\\w_\\.]{2,}\\.[a-z]{2,4}.*?(?=[\\.\\?!,;:]?(?:[" + String.valueOf(org.bukkit.ChatColor.COLOR_CHAR) + " ]|$))))", Pattern.CASE_INSENSITIVE); // ChatColor.b does not explicitly reset, its more of empty -+ private static final Style EMPTY = Style.EMPTY.withItalic(false); // Paper - OBFHELPER ++ private static final Style EMPTY = Style.EMPTY.withItalic(false); // Paper - Improve Legacy Component serialization size private static final Style RESET = Style.EMPTY.withBold(false).withItalic(false).withUnderlined(false).withStrikethrough(false).withObfuscated(false); private final List list = new ArrayList(); @@ -22,7 +22,7 @@ index 516b3fef4d388366df09f0dd88deadbcc0b7d344..730d8e3cf2d9ca05b2d6219cf1856b87 Matcher matcher = (keepNewlines ? StringMessage.INCREMENTAL_PATTERN_KEEP_NEWLINES : StringMessage.INCREMENTAL_PATTERN).matcher(message); String match = null; boolean needsAdd = false; -+ boolean hasReset = false; // Paper ++ boolean hasReset = false; // Paper - Improve Legacy Component serialization size while (matcher.find()) { int groupId = 0; while ((match = matcher.group(++groupId)) == null) { @@ -31,7 +31,7 @@ index 516b3fef4d388366df09f0dd88deadbcc0b7d344..730d8e3cf2d9ca05b2d6219cf1856b87 } } else { // Color resets formatting - this.modifier = StringMessage.RESET.withColor(format); -+ // Paper start - improve legacy formatting ++ // Paper start - Improve Legacy Component serialization size + Style previous = modifier; + modifier = (!hasReset ? RESET : EMPTY).withColor(format); + hasReset = true; @@ -50,7 +50,7 @@ index 516b3fef4d388366df09f0dd88deadbcc0b7d344..730d8e3cf2d9ca05b2d6219cf1856b87 + if (previous.isUnderlined()) { + modifier = modifier.withUnderlined(false); + } -+ // Paper end ++ // Paper end - Improve Legacy Component serialization size } needsAdd = true; break; diff --git a/patches/server/0413-Optimize-Bit-Operations-by-inlining.patch b/patches/server/0413-Optimize-Bit-Operations-by-inlining.patch index 862cb08aa3bc..d03caf7d5746 100644 --- a/patches/server/0413-Optimize-Bit-Operations-by-inlining.patch +++ b/patches/server/0413-Optimize-Bit-Operations-by-inlining.patch @@ -7,7 +7,7 @@ Inline bit operations and reduce instruction count to make these hot operations faster diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index e039551efc83af1453a115099b78e16dff2cf190..e5dfc4009cb06e500c6b54ee4228117061758b53 100644 +index ef5f897164136767e9c6dd61b76c2a1dedd4f350..46aeeaade74bde10472e209df61a75adc4461eeb 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -37,15 +37,16 @@ public class BlockPos extends Vec3i { @@ -23,7 +23,7 @@ index e039551efc83af1453a115099b78e16dff2cf190..e5dfc4009cb06e500c6b54ee42281170 - private static final int Y_OFFSET = 0; - private static final int Z_OFFSET = PACKED_Y_LENGTH; - private static final int X_OFFSET = PACKED_Y_LENGTH + PACKED_Z_LENGTH; -+ // Paper start - static constants ++ // Paper start - Optimize Bit Operations by inlining + private static final int PACKED_X_LENGTH = 26; + private static final int PACKED_Z_LENGTH = 26; + public static final int PACKED_Y_LENGTH = 12; @@ -32,7 +32,7 @@ index e039551efc83af1453a115099b78e16dff2cf190..e5dfc4009cb06e500c6b54ee42281170 + private static final long PACKED_Z_MASK = 67108863; + private static final int Z_OFFSET = 12; + private static final int X_OFFSET = 38; -+ // Paper end ++ // Paper end - Optimize Bit Operations by inlining public BlockPos(int x, int y, int z) { super(x, y, z); diff --git a/patches/server/0415-incremental-chunk-and-player-saving.patch b/patches/server/0415-incremental-chunk-and-player-saving.patch index 50b81d92b97c..6243fbde37b3 100644 --- a/patches/server/0415-incremental-chunk-and-player-saving.patch +++ b/patches/server/0415-incremental-chunk-and-player-saving.patch @@ -5,7 +5,7 @@ Subject: [PATCH] incremental chunk and player saving diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8a037e12ba9419ec29c62799e30312c50b7ee4ad..706e8a5e17ccd87266a5c154cd938974d380cb21 100644 +index 6ffb81f09e7422adeb29f0651a9d3b6e7f6860d3..2ebfa60a2b0175a9cb107648652c9150d9f93732 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -901,7 +901,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && this.tickCount % autosavePeriod == 0; + try { @@ -49,41 +49,41 @@ index 8a037e12ba9419ec29c62799e30312c50b7ee4ad..706e8a5e17ccd87266a5c154cd938974 + } + } finally { + this.isSaving = false; -+ } + } + this.profiler.pop(); -+ // Paper end ++ // Paper end - Incremental chunk and player saving io.papermc.paper.util.CachedLists.reset(); // Paper // Paper start - move executeAll() into full server tick timing try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 974b4970be214ca36a801d39932abcc751e540a5..63fad53a9184d7ab97f143b7d85ae9ef2ca9f8bc 100644 +index 974b4970be214ca36a801d39932abcc751e540a5..c7a8078e4bb4df5ad2345125d49c6b40611da539 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -450,6 +450,15 @@ public class ServerChunkCache extends ChunkSource { } // Paper - Timings } -+ // Paper start - duplicate save, but call incremental ++ // Paper start - Incremental chunk and player saving; duplicate save, but call incremental + public void saveIncrementally() { + this.runDistanceManagerUpdates(); + try (co.aikar.timings.Timing timed = level.timings.chunkSaveData.startTiming()) { // Paper - Timings + this.chunkMap.saveIncrementally(); + } // Paper - Timings + } -+ // Paper end ++ // Paper end - Incremental chunk and player saving + @Override public void close() throws IOException { // CraftBukkit start diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 51379dc93af2eaa3294179debe067d62627b60e1..8a7dd236435b08e0857041641eec9edcef936503 100644 +index 51379dc93af2eaa3294179debe067d62627b60e1..b0d5eca878e391fa29dd81947b6e79b113122ab3 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1306,6 +1306,37 @@ public class ServerLevel extends Level implements WorldGenLevel { return !this.server.isUnderSpawnProtection(this, pos, player) && this.getWorldBorder().isWithinBounds(pos); } -+ // Paper start - derived from below ++ // Paper start - Incremental chunk and player saving + public void saveIncrementally(boolean doFull) { + ServerChunkCache chunkproviderserver = this.getChunkSource(); + @@ -112,32 +112,32 @@ index 51379dc93af2eaa3294179debe067d62627b60e1..8a7dd236435b08e0857041641eec9edc + // CraftBukkit end + } + } -+ // Paper end ++ // Paper end - Incremental chunk and player saving + public void save(@Nullable ProgressListener progressListener, boolean flush, boolean savingDisabled) { // Paper start - rewrite chunk system - add close param this.save(progressListener, flush, savingDisabled, false); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d43bf7ff39e9424f5cdcc93d29779570c8735869..fddbd703071ec93d6e3a9ecc1ff17b3e74eb8986 100644 +index da445644b1f2de9f80e8198a8ed150103627187b..6d083f49ba3700ff3bc222e594b6d9545dd4edba 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -190,6 +190,7 @@ import org.bukkit.inventory.MainHand; public class ServerPlayer extends Player { private static final Logger LOGGER = LogUtils.getLogger(); -+ public long lastSave = MinecraftServer.currentTick; // Paper ++ public long lastSave = MinecraftServer.currentTick; // Paper - Incremental chunk and player saving private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_XZ = 32; private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10; private static final int FLY_STAT_RECORDING_SPEED = 25; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5c5d1e387ea00a17db99b3ef1f68eede01b09789..43bdada020a5a28cbe9eb18ec24529be633a49f3 100644 +index 5c5d1e387ea00a17db99b3ef1f68eede01b09789..38ff44cdcf9720d916de228f02d579b5e37bc45a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -552,6 +552,7 @@ public abstract class PlayerList { protected void save(ServerPlayer player) { if (!player.getBukkitEntity().isPersistent()) return; // CraftBukkit -+ player.lastSave = MinecraftServer.currentTick; // Paper ++ player.lastSave = MinecraftServer.currentTick; // Paper - Incremental chunk and player saving this.playerIo.save(player); ServerStatsCounter serverstatisticmanager = (ServerStatsCounter) player.getStats(); // CraftBukkit @@ -145,7 +145,7 @@ index 5c5d1e387ea00a17db99b3ef1f68eede01b09789..43bdada020a5a28cbe9eb18ec24529be } public void saveAll() { -+ // Paper start - incremental player saving ++ // Paper start - Incremental chunk and player saving + this.saveAll(-1); + } + @@ -161,7 +161,7 @@ index 5c5d1e387ea00a17db99b3ef1f68eede01b09789..43bdada020a5a28cbe9eb18ec24529be + this.save(entityplayer); + if (interval != -1 && ++numSaved >= io.papermc.paper.configuration.GlobalConfiguration.get().playerAutoSave.maxPerTick()) { break; } + } -+ // Paper end ++ // Paper end - Incremental chunk and player saving } MinecraftTimings.savePlayers.stopTiming(); // Paper return null; }); // Paper - ensure main diff --git a/patches/server/0416-Support-old-UUID-format-for-NBT.patch b/patches/server/0416-Support-old-UUID-format-for-NBT.patch index 15609535efa3..5c61b24ac508 100644 --- a/patches/server/0416-Support-old-UUID-format-for-NBT.patch +++ b/patches/server/0416-Support-old-UUID-format-for-NBT.patch @@ -8,19 +8,19 @@ We have stored UUID in plenty of places that did not get DFU'd So just look for old format and load it if it exists. diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java -index 135530bc9d7ecd0348ace6474f4ca6d2e1bad283..4c8f2dbdd6e384be026ae1c890096f89fd744eb0 100644 +index 135530bc9d7ecd0348ace6474f4ca6d2e1bad283..22106323902ceb4fc58a95918c754234a581f7a1 100644 --- a/src/main/java/net/minecraft/nbt/CompoundTag.java +++ b/src/main/java/net/minecraft/nbt/CompoundTag.java @@ -237,6 +237,12 @@ public class CompoundTag implements Tag { } public void putUUID(String key, UUID value) { -+ // Paper start - support old format ++ // Paper start - Support old UUID format + if (this.contains(key + "Most", net.minecraft.nbt.Tag.TAG_ANY_NUMERIC) && this.contains(key + "Least", net.minecraft.nbt.Tag.TAG_ANY_NUMERIC)) { + this.tags.remove(key + "Most"); + this.tags.remove(key + "Least"); + } -+ // Paper end ++ // Paper end - Support old UUID format this.tags.put(key, NbtUtils.createUUID(value)); } @@ -28,39 +28,39 @@ index 135530bc9d7ecd0348ace6474f4ca6d2e1bad283..4c8f2dbdd6e384be026ae1c890096f89 * You must use {@link #hasUUID(String)} before or else it will throw an NPE. */ public UUID getUUID(String key) { -+ // Paper start - support old format ++ // Paper start - Support old UUID format + if (!contains(key, 11) && this.contains(key + "Most", net.minecraft.nbt.Tag.TAG_ANY_NUMERIC) && this.contains(key + "Least", net.minecraft.nbt.Tag.TAG_ANY_NUMERIC)) { + return new UUID(this.getLong(key + "Most"), this.getLong(key + "Least")); + } -+ // Paper end ++ // Paper end - Support old UUID format return NbtUtils.loadUUID(this.get(key)); } public boolean hasUUID(String key) { -+ // Paper start - support old format ++ // Paper start - Support old UUID format + if (this.contains(key + "Most", net.minecraft.nbt.Tag.TAG_ANY_NUMERIC) && this.contains(key + "Least", net.minecraft.nbt.Tag.TAG_ANY_NUMERIC)) { + return true; + } -+ // Paper end ++ // Paper end - Support old UUID format Tag tag = this.get(key); return tag != null && tag.getType() == IntArrayTag.TYPE && ((IntArrayTag)tag).getAsIntArray().length == 4; } diff --git a/src/main/java/net/minecraft/nbt/NbtUtils.java b/src/main/java/net/minecraft/nbt/NbtUtils.java -index 4388f2a8b05f5ed2f0934c1693299a4c92072adc..18fad4f083862ace2bc56579883f548f6d697091 100644 +index 4388f2a8b05f5ed2f0934c1693299a4c92072adc..ba0726157417cdde1c9bca93a9e37e68d9b2286d 100644 --- a/src/main/java/net/minecraft/nbt/NbtUtils.java +++ b/src/main/java/net/minecraft/nbt/NbtUtils.java @@ -72,6 +72,14 @@ public final class NbtUtils { @Nullable public static GameProfile readGameProfile(CompoundTag nbt) { UUID uUID = nbt.hasUUID("Id") ? nbt.getUUID("Id") : Util.NIL_UUID; -+ // Paper start - Support string UUIDs ++ // Paper start - Support old UUID format + if (nbt.contains("Id", Tag.TAG_STRING)) { + try { + uUID = UUID.fromString(nbt.getString("Id")); + } catch (IllegalArgumentException ignored){ + } + } -+ // Paper end - Support string UUIDs ++ // Paper end - Support old UUID format String string = nbt.getString("Name"); try { diff --git a/patches/server/0422-Update-itemstack-legacy-name-and-lore.patch b/patches/server/0422-Update-itemstack-legacy-name-and-lore.patch index 5f75a5e37de8..1ff492bba87d 100644 --- a/patches/server/0422-Update-itemstack-legacy-name-and-lore.patch +++ b/patches/server/0422-Update-itemstack-legacy-name-and-lore.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Update itemstack legacy name and lore diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 0c4727f383313762893b0a7af7bdeb746c80861a..c5e36e7e96902fc0e8e9bb409907c6424cf223bd 100644 +index 0c4727f383313762893b0a7af7bdeb746c80861a..0e700a9530cbf883a9037621794a601c0386a387 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -195,6 +195,44 @@ public final class ItemStack { @@ -57,7 +57,7 @@ index 0c4727f383313762893b0a7af7bdeb746c80861a..c5e36e7e96902fc0e8e9bb409907c642 if (nbttagcompound.contains("tag", 10)) { this.tag = nbttagcompound.getCompound("tag").copy(); this.processEnchantOrder(this.tag); // Paper -+ this.processText(); // Paper ++ this.processText(); // Paper - Update itemstack legacy name and lore this.getItem().verifyTagAfterLoad(this.tag); } diff --git a/patches/server/0423-Add-PrepareResultEvent.patch b/patches/server/0423-Add-PrepareResultEvent.patch index 45a8d11a2c63..2b9f34e9b6ba 100644 --- a/patches/server/0423-Add-PrepareResultEvent.patch +++ b/patches/server/0423-Add-PrepareResultEvent.patch @@ -8,55 +8,55 @@ Adds a new event for all crafting stations that generate a result slot item Anvil, Grindstone and Smithing now extend this event diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index e97953e3dad164862d7e2f86bd86a6eff5b80ae2..f00638e9d7baf8b803dd610f2bf6250da34efab3 100644 +index e97953e3dad164862d7e2f86bd86a6eff5b80ae2..8e0da4fb2a8f62156e953e0c71a82306d29c5fc4 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java @@ -338,6 +338,7 @@ public class AnvilMenu extends ItemCombinerMenu { } this.createResult(); -+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, RESULT_SLOT); // Paper ++ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, RESULT_SLOT); // Paper - Add PrepareResultEvent return true; } else { return false; diff --git a/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java b/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java -index fe1ce65b35e83ee0ada77e44b080729346bb3c2d..819187dbcf468d9278ce33bd97688476aab53f8e 100644 +index fe1ce65b35e83ee0ada77e44b080729346bb3c2d..ca3c8b31967a6efd7b0caacb091ab2151e7c0bee 100644 --- a/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java +++ b/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java @@ -150,6 +150,7 @@ public class CartographyTableMenu extends AbstractContainerMenu { this.setupResultSlot(itemstack, itemstack1, itemstack2); } -+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, RESULT_SLOT); // Paper ++ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, RESULT_SLOT); // Paper - Add PrepareResultEvent } private void setupResultSlot(ItemStack map, ItemStack item, ItemStack oldResult) { diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java -index 45242f0ed5a0f98953df5f27fb76874d2d9e3473..811d7415ae843347da374d73b4edfe89642d518a 100644 +index 45242f0ed5a0f98953df5f27fb76874d2d9e3473..1783661f38a6f5fb655ea83953b9467bd91a1302 100644 --- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java +++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java @@ -159,6 +159,7 @@ public class GrindstoneMenu extends AbstractContainerMenu { super.slotsChanged(inventory); if (inventory == this.repairSlots) { this.createResult(); -+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, RESULT_SLOT); // Paper ++ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, RESULT_SLOT); // Paper - Add PrepareResultEvent } } diff --git a/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java b/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java -index 4087e381b2250be387b608d8742f6a6009a52879..ff770b9ce68a62418de0c7ed389650626fa1dcb2 100644 +index 4087e381b2250be387b608d8742f6a6009a52879..eb36a69b8da492aec9609cc9ef80d7d68ff9af03 100644 --- a/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java @@ -110,6 +110,7 @@ public abstract class ItemCombinerMenu extends AbstractContainerMenu { super.slotsChanged(inventory); if (inventory == this.inputSlots) { this.createResult(); -+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, this instanceof SmithingMenu ? 3 : 2); // Paper ++ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, this instanceof SmithingMenu ? 3 : 2); // Paper - Add PrepareResultEvent } } diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java -index 5c209a3d81db5326f63c506077fa0bfd241b4b12..757ee83a0ec5d381eb328f31f3bef636a9b72d57 100644 +index 5c209a3d81db5326f63c506077fa0bfd241b4b12..a98157f600837898dd8ef12671c4bb713e30f30c 100644 --- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java +++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java @@ -248,7 +248,8 @@ public class LoomMenu extends AbstractContainerMenu { @@ -64,37 +64,37 @@ index 5c209a3d81db5326f63c506077fa0bfd241b4b12..757ee83a0ec5d381eb328f31f3bef636 } - this.broadcastChanges(); -+ // this.broadcastChanges(); // Paper - done below -+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, 3); // Paper ++ // this.broadcastChanges(); // Paper - Add PrepareResultEvent; done below ++ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, 3); // Paper - Add PrepareResultEvent } else { this.resultSlot.set(ItemStack.EMPTY); this.selectablePatterns = List.of(); diff --git a/src/main/java/net/minecraft/world/inventory/SmithingMenu.java b/src/main/java/net/minecraft/world/inventory/SmithingMenu.java -index 59d9f990a87ab5214fa51e3a6e933bf5ae71b613..857f65be8c4d9ec3a0586017b3f3e8e35cb78b97 100644 +index 59d9f990a87ab5214fa51e3a6e933bf5ae71b613..1e9e70263996afa294458364aa70e738b5aabea1 100644 --- a/src/main/java/net/minecraft/world/inventory/SmithingMenu.java +++ b/src/main/java/net/minecraft/world/inventory/SmithingMenu.java @@ -115,6 +115,7 @@ public class SmithingMenu extends ItemCombinerMenu { } } -+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, RESULT_SLOT); // Paper ++ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, RESULT_SLOT); // Paper - Add PrepareResultEvent } @Override diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java -index 9c2fe69ced7a46bbd8b0fbe10fa67d0a39b0f375..70ecc3f673ebd56b65ad901e10f40c28368cbfac 100644 +index 9c2fe69ced7a46bbd8b0fbe10fa67d0a39b0f375..e40d9dbdbe5359c38af6d764d01c9be422654aaa 100644 --- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java +++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java @@ -181,6 +181,7 @@ public class StonecutterMenu extends AbstractContainerMenu { this.setupRecipeList(inventory, itemstack); } -+ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, RESULT_SLOT); // Paper ++ org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(this, RESULT_SLOT); // Paper - Add PrepareResultEvent } private void setupRecipeList(Container input, ItemStack stack) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 90b93b7139f9a11028b0d78b109b478b8052e982..afccfcab4c1682c47bffe7e3c10a9ec60092e8a0 100644 +index 90b93b7139f9a11028b0d78b109b478b8052e982..0e920a0b413c2322832416ef4a2aa661eaae1a89 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1714,26 +1714,53 @@ public class CraftEventFactory { @@ -104,41 +104,41 @@ index 90b93b7139f9a11028b0d78b109b478b8052e982..afccfcab4c1682c47bffe7e3c10a9ec6 - public static PrepareAnvilEvent callPrepareAnvilEvent(InventoryView view, ItemStack item) { - PrepareAnvilEvent event = new PrepareAnvilEvent(view, CraftItemStack.asCraftMirror(item).clone()); - event.getView().getPlayer().getServer().getPluginManager().callEvent(event); -+ // Paper start - disable this method, handled below ++ // Paper start - Add PrepareResultEvent; disable this method, handled below + public static void callPrepareAnvilEvent(InventoryView view, ItemStack item) { // Paper - verify nothing uses return - handled below in PrepareResult + PrepareAnvilEvent event = new PrepareAnvilEvent(view, CraftItemStack.asCraftMirror(item)); // Paper - remove clone + //event.getView().getPlayer().getServer().getPluginManager().callEvent(event); // Paper - disable event event.getInventory().setItem(2, event.getResult()); - return event; -+ //return event; // Paper ++ //return event; } -+ // Paper end ++ // Paper end - Add PrepareResultEvent - public static PrepareGrindstoneEvent callPrepareGrindstoneEvent(InventoryView view, ItemStack item) { - PrepareGrindstoneEvent event = new PrepareGrindstoneEvent(view, CraftItemStack.asCraftMirror(item).clone()); - event.getView().getPlayer().getServer().getPluginManager().callEvent(event); -+ // Paper start - disable this method, handled below ++ // Paper start - Add PrepareResultEvent; disable this method, handled below + public static void callPrepareGrindstoneEvent(InventoryView view, ItemStack item) { + PrepareGrindstoneEvent event = new PrepareGrindstoneEvent(view, CraftItemStack.asCraftMirror(item)); // Paper - remove clone + // event.getView().getPlayer().getServer().getPluginManager().callEvent(event); // Paper - disable event event.getInventory().setItem(2, event.getResult()); - return event; -+ // return event; // Paper ++ // return event; } -+ // Paper end ++ // Paper end - Add PrepareResultEvent - public static PrepareSmithingEvent callPrepareSmithingEvent(InventoryView view, ItemStack item) { - PrepareSmithingEvent event = new PrepareSmithingEvent(view, CraftItemStack.asCraftMirror(item).clone()); - event.getView().getPlayer().getServer().getPluginManager().callEvent(event); -+ // Paper start - disable this method, handled in callPrepareResultEvent ++ // Paper start - Add PrepareResultEvent; disable this method, handled in callPrepareResultEvent + public static void callPrepareSmithingEvent(InventoryView view, ItemStack item) { // Paper - verify nothing uses return - handled below in PrepareResult + PrepareSmithingEvent event = new PrepareSmithingEvent(view, CraftItemStack.asCraftMirror(item)); // Paper - remove clone + //event.getView().getPlayer().getServer().getPluginManager().callEvent(event); // Paper - disable event event.getInventory().setResult(event.getResult()); - return event; + //return event; // Paper - } -+ // Paper end ++ } ++ // Paper end - Add PrepareResultEvent + + // Paper start - support specific overrides for prepare result + public static void callPrepareResultEvent(AbstractContainerMenu container, int resultSlot) { @@ -158,8 +158,8 @@ index 90b93b7139f9a11028b0d78b109b478b8052e982..afccfcab4c1682c47bffe7e3c10a9ec6 + event.callEvent(); + event.getInventory().setItem(resultSlot, event.getResult()); + container.broadcastChanges();; -+ } -+ // Paper end + } ++ // Paper end - Add PrepareResultEvent /** * Mob spawner event. diff --git a/patches/server/0426-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0426-Thread-Safe-Vanilla-Command-permission-checking.patch index a6303d1a68e1..2d4faf3292d7 100644 --- a/patches/server/0426-Thread-Safe-Vanilla-Command-permission-checking.patch +++ b/patches/server/0426-Thread-Safe-Vanilla-Command-permission-checking.patch @@ -9,7 +9,7 @@ to race conditions. Plus, .canUse we want to be safe for async anyways. diff --git a/src/main/java/com/mojang/brigadier/tree/CommandNode.java b/src/main/java/com/mojang/brigadier/tree/CommandNode.java -index 3384501f83d445f45aa8233e98c7597daa67b8ef..6875e15aac37d3566bf04f1a6ee79a21537d2939 100644 +index 3384501f83d445f45aa8233e98c7597daa67b8ef..bd12d372a04172504b3664a8136e534ca1b1712d 100644 --- a/src/main/java/com/mojang/brigadier/tree/CommandNode.java +++ b/src/main/java/com/mojang/brigadier/tree/CommandNode.java @@ -75,10 +75,10 @@ public abstract class CommandNode implements Comparable> { @@ -17,16 +17,16 @@ index 3384501f83d445f45aa8233e98c7597daa67b8ef..6875e15aac37d3566bf04f1a6ee79a21 if (source instanceof CommandSourceStack) { try { - ((CommandSourceStack) source).currentCommand = this; -+ ((CommandSourceStack) source).currentCommand.put(Thread.currentThread(), this); // Paper ++ ((CommandSourceStack) source).currentCommand.put(Thread.currentThread(), this); // Paper - Thread Safe Vanilla Command permission checking return this.requirement.test(source); } finally { - ((CommandSourceStack) source).currentCommand = null; -+ ((CommandSourceStack) source).currentCommand.remove(Thread.currentThread()); // Paper ++ ((CommandSourceStack) source).currentCommand.remove(Thread.currentThread()); // Paper - Thread Safe Vanilla Command permission checking } } // CraftBukkit end diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index c772fa3b7a1276b0b41c45c6e0f5584b9c3a90cd..79732086bc4cdbca8364d78eb60d68c758055966 100644 +index c772fa3b7a1276b0b41c45c6e0f5584b9c3a90cd..55c394fb00d0c7caee3a06720c37f04db571fe93 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -64,7 +64,7 @@ public class CommandSourceStack implements ExecutionCommandSource currentCommand = new java.util.concurrent.ConcurrentHashMap<>(); // CraftBukkit // Paper - make thread-safe ++ public java.util.Map currentCommand = new java.util.concurrent.ConcurrentHashMap<>(); // CraftBukkit // Paper - Thread Safe Vanilla Command permission checking public boolean bypassSelectorPermissions = false; // Paper - add bypass for selector permissions public CommandSourceStack(CommandSource output, Vec3 pos, Vec2 rot, ServerLevel world, int level, String name, Component displayName, MinecraftServer server, @Nullable Entity entity) { @@ -43,11 +43,11 @@ index c772fa3b7a1276b0b41c45c6e0f5584b9c3a90cd..79732086bc4cdbca8364d78eb60d68c7 public boolean hasPermission(int level) { // CraftBukkit start - CommandNode currentCommand = this.currentCommand; -+ // Paper start - fix concurrency issue ++ // Paper start - Thread Safe Vanilla Command permission checking + CommandNode currentCommand = this.currentCommand.get(Thread.currentThread()); if (currentCommand != null) { return this.hasPermission(level, org.bukkit.craftbukkit.command.VanillaCommandWrapper.getPermission(currentCommand)); -+ // Paper end ++ // Paper end - Thread Safe Vanilla Command permission checking } // CraftBukkit end diff --git a/patches/server/0427-Fix-SPIGOT-5989.patch b/patches/server/0427-Fix-SPIGOT-5989.patch index 54358339de93..e381b319b8b3 100644 --- a/patches/server/0427-Fix-SPIGOT-5989.patch +++ b/patches/server/0427-Fix-SPIGOT-5989.patch @@ -10,7 +10,7 @@ This fixes that by checking if the modified spawn location is still at a respawn anchor. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 43bdada020a5a28cbe9eb18ec24529be633a49f3..29b535dae6eff1c6b47a5d2818fbf0653cd32b8f 100644 +index 43bdada020a5a28cbe9eb18ec24529be633a49f3..a50c8728f6ece2ab1f08cacb64cf98790b8a6871 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -806,6 +806,7 @@ public abstract class PlayerList { @@ -40,7 +40,7 @@ index 43bdada020a5a28cbe9eb18ec24529be633a49f3..29b535dae6eff1c6b47a5d2818fbf065 + location = respawnEvent.getRespawnLocation(); + isLocAltered = true; + } -+ // Paper end ++ // Paper end - Fix SPIGOT-5989 if (!flag) entityplayer.reset(); // SPIGOT-4785 isRespawn = true; // Paper } else { @@ -57,7 +57,7 @@ index 43bdada020a5a28cbe9eb18ec24529be633a49f3..29b535dae6eff1c6b47a5d2818fbf065 + worldserver1.setBlock(blockposition, data.setValue(net.minecraft.world.level.block.RespawnAnchorBlock.CHARGE, data.getValue(net.minecraft.world.level.block.RespawnAnchorBlock.CHARGE) - 1), 3); + } + entityplayer1.connection.send(new ClientboundSoundPacket(SoundEvents.RESPAWN_ANCHOR_DEPLETE, SoundSource.BLOCKS, (double) location.getX(), (double) location.getY(), (double) location.getZ(), 1.0F, 1.0F, worldserver1.getRandom().nextLong())); -+ // Paper end ++ // Paper end - Fix SPIGOT-5989 } // Added from changeDimension this.sendAllPlayerInfo(entityplayer); // Update health, etc... diff --git a/patches/server/0430-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/patches/server/0430-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch index e1b138744734..8d0427e70af0 100644 --- a/patches/server/0430-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch +++ b/patches/server/0430-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch @@ -9,7 +9,7 @@ itself, so the criterion object stores no references - and thus needs no cleanup. diff --git a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java -index 5450734060428426981e2c1f1025b1aa5aa4d271..0a22ed467d04c6421f4f8ef227a665ae135a5b0b 100644 +index 5450734060428426981e2c1f1025b1aa5aa4d271..805459ba815520165c86a537fbb1f3e04b85bfbd 100644 --- a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java +++ b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java @@ -15,22 +15,22 @@ import net.minecraft.server.level.ServerPlayer; @@ -17,7 +17,7 @@ index 5450734060428426981e2c1f1025b1aa5aa4d271..0a22ed467d04c6421f4f8ef227a665ae public abstract class SimpleCriterionTrigger implements CriterionTrigger { - private final Map>> players = Maps.newIdentityHashMap(); -+ // private final Map>> players = Maps.newIdentityHashMap(); // Paper - moved into AdvancementDataPlayer to fix memory leak ++ // private final Map>> players = Maps.newIdentityHashMap(); // Paper - fix AdvancementDataPlayer leak; moved into AdvancementDataPlayer to fix memory leak @Override public final void addPlayerListener(PlayerAdvancements manager, CriterionTrigger.Listener conditions) { diff --git a/patches/server/0431-Optimize-NetworkManager-Exception-Handling.patch b/patches/server/0431-Optimize-NetworkManager-Exception-Handling.patch index a98c46b0d838..e369586f764d 100644 --- a/patches/server/0431-Optimize-NetworkManager-Exception-Handling.patch +++ b/patches/server/0431-Optimize-NetworkManager-Exception-Handling.patch @@ -5,31 +5,31 @@ Subject: [PATCH] Optimize NetworkManager Exception Handling diff --git a/src/main/java/net/minecraft/network/ConnectionProtocol.java b/src/main/java/net/minecraft/network/ConnectionProtocol.java -index ac1aa37329bd4d411964ea34ea8147f6db945b9a..41899d6c141895fc6c2c5da763bbe36864d557f7 100644 +index ac1aa37329bd4d411964ea34ea8147f6db945b9a..cc96aeebfe96fabc399ba8772a488e48b504e65d 100644 --- a/src/main/java/net/minecraft/network/ConnectionProtocol.java +++ b/src/main/java/net/minecraft/network/ConnectionProtocol.java @@ -341,6 +341,7 @@ public enum ConnectionProtocol { @Nullable public Packet createPacket(int id, FriendlyByteBuf buf) { -+ if (id < 0 || id >= this.idToDeserializer.size()) return null; // Paper ++ if (id < 0 || id >= this.idToDeserializer.size()) return null; // Paper - Perf: Optmize exception handling Function> function = this.idToDeserializer.get(id); return function != null ? function.apply(buf) : null; } diff --git a/src/main/java/net/minecraft/network/Varint21FrameDecoder.java b/src/main/java/net/minecraft/network/Varint21FrameDecoder.java -index 00c170a16a57f41f881c6b282cba474ce485b34c..1f71357a4caef4b2cbff95b560d0f3df268b3621 100644 +index 00c170a16a57f41f881c6b282cba474ce485b34c..e3c30a096aee3ae0df933647a0c3079e3ae02868 100644 --- a/src/main/java/net/minecraft/network/Varint21FrameDecoder.java +++ b/src/main/java/net/minecraft/network/Varint21FrameDecoder.java @@ -39,6 +39,12 @@ public class Varint21FrameDecoder extends ByteToMessageDecoder { } protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List list) { -+ // Paper start - if channel is not active just discard the packet ++ // Paper start - Perf: Optmize exception handling; if channel is not active just discard the packet + if (!channelHandlerContext.channel().isActive()) { + byteBuf.skipBytes(byteBuf.readableBytes()); + return; + } -+ // Paper end - if channel is not active just discard the packet ++ // Paper end - Perf: Optmize exception handling byteBuf.markReaderIndex(); this.helperBuf.clear(); if (!copyVarint(byteBuf, this.helperBuf)) { diff --git a/patches/server/0432-Fix-some-rails-connecting-improperly.patch b/patches/server/0432-Fix-some-rails-connecting-improperly.patch index f7cfa8c50992..85d4d5d18d6d 100644 --- a/patches/server/0432-Fix-some-rails-connecting-improperly.patch +++ b/patches/server/0432-Fix-some-rails-connecting-improperly.patch @@ -5,42 +5,42 @@ Subject: [PATCH] Fix some rails connecting improperly diff --git a/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java b/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java -index d8dd9f26fe4344541d0544e35bbc66c5d567a80b..dcf49e21208c78b471e6c38cdb0746a0c88fe5a7 100644 +index d8dd9f26fe4344541d0544e35bbc66c5d567a80b..6bd4e4d173f34e0234f4474e49ce2d897f85386f 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java @@ -68,6 +68,7 @@ public abstract class BaseRailBlock extends Block implements SimpleWaterloggedBl state = this.updateDir(world, pos, state, true); if (this.isStraight) { world.neighborChanged(state, pos, this, pos, notify); -+ state = world.getBlockState(pos); // Paper - don't desync, update again ++ state = world.getBlockState(pos); // Paper - Fix some rails connecting improperly } return state; diff --git a/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java b/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java -index 41452abc7b761858ff2f3ff6a833b09c16fded4f..8eff69cb70ba094f9dcc0849f0436d4a3498fceb 100644 +index 41452abc7b761858ff2f3ff6a833b09c16fded4f..17242c24d73c9ffb1c976a45925f85d1aa9e96b3 100644 --- a/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java @@ -77,6 +77,7 @@ public class DetectorRailBlock extends BaseRailBlock { private void checkPressed(Level world, BlockPos pos, BlockState state) { if (this.canSurvive(state, world, pos)) { -+ if (state.getBlock() != this) { return; } // Paper - not our block, don't do anything ++ if (state.getBlock() != this) { return; } // Paper - Fix some rails connecting improperly boolean flag = (Boolean) state.getValue(DetectorRailBlock.POWERED); boolean flag1 = false; List list = this.getInteractingMinecartOfType(world, pos, AbstractMinecart.class, (entity) -> { diff --git a/src/main/java/net/minecraft/world/level/block/RailState.java b/src/main/java/net/minecraft/world/level/block/RailState.java -index 0cbfad97371b59de95963a09aa16f3dad7a37222..d873625c1b8439a727d39ce207b5e84a1d86e5eb 100644 +index 0cbfad97371b59de95963a09aa16f3dad7a37222..939665cbe4cce36cd64c299908a738a4d1c2140e 100644 --- a/src/main/java/net/minecraft/world/level/block/RailState.java +++ b/src/main/java/net/minecraft/world/level/block/RailState.java @@ -17,6 +17,12 @@ public class RailState { private final boolean isStraight; private final List connections = Lists.newArrayList(); -+ // Paper start - prevent desync ++ // Paper start - Fix some rails connecting improperly + public boolean isValid() { + return this.level.getBlockState(this.pos).getBlock() == this.state.getBlock(); + } -+ // Paper end - prevent desync ++ // Paper end - Fix some rails connecting improperly + public RailState(Level world, BlockPos pos, BlockState state) { this.level = world; @@ -49,11 +49,11 @@ index 0cbfad97371b59de95963a09aa16f3dad7a37222..d873625c1b8439a727d39ce207b5e84a } private void connectTo(RailState placementHelper) { -+ // Paper start - prevent desync ++ // Paper start - Fix some rails connecting improperly + if (!this.isValid() || !placementHelper.isValid()) { + return; + } -+ // Paper end - prevent desync ++ // Paper end - Fix some rails connecting improperly this.connections.add(placementHelper.pos); BlockPos blockPos = this.pos.north(); BlockPos blockPos2 = this.pos.south(); @@ -61,16 +61,16 @@ index 0cbfad97371b59de95963a09aa16f3dad7a37222..d873625c1b8439a727d39ce207b5e84a this.state = this.state.setValue(this.block.getShapeProperty(), railShape2); if (forceUpdate || this.level.getBlockState(this.pos) != this.state) { this.level.setBlock(this.pos, this.state, 3); -+ // Paper start - prevent desync ++ // Paper start - Fix some rails connecting improperly + if (!this.isValid()) { + return this; + } -+ // Paper end - prevent desync ++ // Paper end - Fix some rails connecting improperly for(int i = 0; i < this.connections.size(); ++i) { RailState railState = this.getRail(this.connections.get(i)); - if (railState != null) { -+ if (railState != null && railState.isValid()) { // Paper - prevent desync ++ if (railState != null && railState.isValid()) { // Paper - Fix some rails connecting improperly railState.removeSoftConnections(); if (railState.canConnectTo(this)) { railState.connectTo(this); @@ -79,6 +79,6 @@ index 0cbfad97371b59de95963a09aa16f3dad7a37222..d873625c1b8439a727d39ce207b5e84a public BlockState getState() { - return this.state; -+ return this.level.getBlockState(this.pos); // Paper - prevent desync ++ return this.level.getBlockState(this.pos); // Paper - Fix some rails connecting improperly } } diff --git a/patches/server/0434-Brand-support.patch b/patches/server/0434-Brand-support.patch index 0aca87477ddf..1676a6348e57 100644 --- a/patches/server/0434-Brand-support.patch +++ b/patches/server/0434-Brand-support.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index fddbd703071ec93d6e3a9ecc1ff17b3e74eb8986..8eb1d297ff0317ac679e85e03d0b4546fa1ed315 100644 +index fddbd703071ec93d6e3a9ecc1ff17b3e74eb8986..1635cd4a6e03005c1cdfce82bf3ffa657c3c25ed 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -278,6 +278,7 @@ public class ServerPlayer extends Player { public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper -+ public @Nullable String clientBrandName = null; // Paper - Brand name ++ public @Nullable String clientBrandName = null; // Paper - Brand support // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 44aa178968c87fa72023a2c0f33c1a8123f3db72..f489b207cd3b62a33723f2e9ed0f46020d7f4fd1 100644 +index b68301f4cf650891140d3be6aebdc7ddf0d2a54f..f453b3023b713877b286e61d3c60b0b3cfce2cdd 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -55,6 +55,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -32,11 +32,11 @@ index 44aa178968c87fa72023a2c0f33c1a8123f3db72..f489b207cd3b62a33723f2e9ed0f4602 @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { -+ // Paper start - handle brand payload packet ++ // Paper start - Brand support + if (packet.payload() instanceof net.minecraft.network.protocol.common.custom.BrandPayload brandPayload) { + this.player.clientBrandName = brandPayload.brand(); + } -+ // Paper end - handle brand payload ++ // Paper end - Brand support if (!(packet.payload() instanceof ServerboundCustomPayloadPacket.UnknownPayload)) { return; } @@ -44,7 +44,7 @@ index 44aa178968c87fa72023a2c0f33c1a8123f3db72..f489b207cd3b62a33723f2e9ed0f4602 try { byte[] data = new byte[payload.readableBytes()]; payload.readBytes(data); -+ // Paper start - Brand support - Retain this incase upstream decides to 'break' the new mechanism in favour of backwards compat... ++ // Paper start - Brand support; Retain this incase upstream decides to 'break' the new mechanism in favour of backwards compat... + if (identifier.equals(MINECRAFT_BRAND)) { + try { + this.player.clientBrandName = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.copiedBuffer(data)).readUtf(256); @@ -52,7 +52,7 @@ index 44aa178968c87fa72023a2c0f33c1a8123f3db72..f489b207cd3b62a33723f2e9ed0f4602 + this.player.clientBrandName = "illegal"; + } + } -+ // Paper end ++ // Paper end - Brand support this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), identifier.toString(), data); } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); diff --git a/patches/server/0436-Don-t-require-FACING-data.patch b/patches/server/0436-Don-t-require-FACING-data.patch index 3191bbac8660..98d0ef923fbf 100644 --- a/patches/server/0436-Don-t-require-FACING-data.patch +++ b/patches/server/0436-Don-t-require-FACING-data.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Don't require FACING data diff --git a/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java -index f25e28098df0a21fd1ae55f5527cddcef9a36b0d..6c78d90e73b47b62c4052727730850d4b67a9cd2 100644 +index f25e28098df0a21fd1ae55f5527cddcef9a36b0d..f28705547a62da790f5df071400986aacba39367 100644 --- a/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DefaultDispenseItemBehavior.java @@ -14,6 +14,7 @@ import org.bukkit.event.block.BlockDispenseEvent; // CraftBukkit end public class DefaultDispenseItemBehavior implements DispenseItemBehavior { -+ private Direction enumdirection; // Paper ++ private Direction enumdirection; // Paper - cache facing direction // CraftBukkit start private boolean dropper; diff --git a/patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 01a8c26fd014..20f9571a3fec 100644 --- a/patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,23 +5,23 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8a7dd236435b08e0857041641eec9edcef936503..307f2d8adae141cfb7f5fd3c08e68863ce3ed75f 100644 +index 8a7dd236435b08e0857041641eec9edcef936503..3be046b4062e9eb9e642c17ba43b4d446e6ba9d7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2034,9 +2034,11 @@ public class ServerLevel extends Level implements WorldGenLevel { public void setDefaultSpawnPos(BlockPos pos, float angle) { // Paper - configurable spawn radius BlockPos prevSpawn = this.getSharedSpawnPos(); -+ Location prevSpawnLoc = this.getWorld().getSpawnLocation(); // Paper ++ Location prevSpawnLoc = this.getWorld().getSpawnLocation(); // Paper - Call SpawnChangeEvent //ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(new BlockPosition(this.worldData.a(), 0, this.worldData.c())); this.levelData.setSpawn(pos, angle); -+ new org.bukkit.event.world.SpawnChangeEvent(this.getWorld(), prevSpawnLoc).callEvent(); // Paper ++ new org.bukkit.event.world.SpawnChangeEvent(this.getWorld(), prevSpawnLoc).callEvent(); // Paper - Call SpawnChangeEvent if (this.keepSpawnInMemory) { // if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add this.removeTicketsForSpawn(this.paperConfig().spawn.keepSpawnLoadedRange * 16, prevSpawn); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 36d7c41505d41443e6034dfc88ce177fe47d980f..6a6bdc23767d4b0413352eda860f3fd3076f492e 100644 +index 36d7c41505d41443e6034dfc88ce177fe47d980f..4fe507969849f8abd12aadb6943a8a2fce27b5b5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -262,12 +262,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -30,16 +30,16 @@ index 36d7c41505d41443e6034dfc88ce177fe47d980f..6a6bdc23767d4b0413352eda860f3fd3 try { - Location previousLocation = this.getSpawnLocation(); - this.world.levelData.setSpawn(new BlockPos(x, y, z), angle); -+ // Location previousLocation = this.getSpawnLocation(); // Paper - moved to nms.ServerLevel ++ // Location previousLocation = this.getSpawnLocation(); // Paper - Call SpawnChangeEvent; moved to nms.ServerLevel + this.world.setDefaultSpawnPos(new BlockPos(x, y, z), angle); // Paper - use ServerLevel#setDefaultSpawnPos -+ // Paper start - move to nms.ServerLevel ++ // Paper start - Call SpawnChangeEvent; move to nms.ServerLevel // Notify anyone who's listening. - SpawnChangeEvent event = new SpawnChangeEvent(this, previousLocation); - this.server.getPluginManager().callEvent(event); + // SpawnChangeEvent event = new SpawnChangeEvent(this, previousLocation); + // server.getPluginManager().callEvent(event); -+ // Paper end ++ // Paper end - Call SpawnChangeEvent return true; } catch (Exception e) { diff --git a/patches/server/0439-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0439-Do-not-let-the-server-load-chunks-from-newer-version.patch index 7e56aa8fb726..257d244efb37 100644 --- a/patches/server/0439-Do-not-let-the-server-load-chunks-from-newer-version.patch +++ b/patches/server/0439-Do-not-let-the-server-load-chunks-from-newer-version.patch @@ -9,20 +9,20 @@ the game, immediately stop the server to prevent data corruption. You can override this functionality at your own peril. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 02beedb84a8bec001270116c6ce496db012e6b8a..a95909bc818f395ce5772c5129f9cc9b789ce133 100644 +index 02beedb84a8bec001270116c6ce496db012e6b8a..08abe8064f01b20aae0c7a018e11fe2ef42de71b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -124,8 +124,20 @@ public class ChunkSerializer { InProgressChunkHolder holder = loadChunk(world, poiStorage, chunkPos, nbt, true); return holder.protoChunk; } -+ // Paper start ++ // Paper start - Do not let the server load chunks from newer versions + private static final int CURRENT_DATA_VERSION = net.minecraft.SharedConstants.getCurrentVersion().getDataVersion().getVersion(); + private static final boolean JUST_CORRUPT_IT = Boolean.getBoolean("Paper.ignoreWorldDataVersion"); -+ // Paper end ++ // Paper end - Do not let the server load chunks from newer versions public static InProgressChunkHolder loadChunk(ServerLevel world, PoiManager poiStorage, ChunkPos chunkPos, CompoundTag nbt, boolean distinguish) { -+ // Paper start - Do NOT attempt to load chunks saved with newer versions ++ // Paper start - Do not let the server load chunks from newer versions + if (nbt.contains("DataVersion", net.minecraft.nbt.Tag.TAG_ANY_NUMERIC)) { + int dataVersion = nbt.getInt("DataVersion"); + if (!JUST_CORRUPT_IT && dataVersion > CURRENT_DATA_VERSION) { diff --git a/patches/server/0440-Prevent-headless-pistons-from-being-created.patch b/patches/server/0440-Prevent-headless-pistons-from-being-created.patch index b52eb6291ff7..fcf861a34188 100644 --- a/patches/server/0440-Prevent-headless-pistons-from-being-created.patch +++ b/patches/server/0440-Prevent-headless-pistons-from-being-created.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Prevent headless pistons from being created Prevent headless pistons from being created by explosions or tree/mushroom growth. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index b7cf13fe4a0af243c0e76d75439b28d5018dadb9..5a2e322d349340fa58f133c2034765f90319b2be 100644 +index b7cf13fe4a0af243c0e76d75439b28d5018dadb9..6a6dd85da2832ba81643031a2e962daf5c27a697 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -206,6 +206,15 @@ public class Explosion { @@ -21,7 +21,7 @@ index b7cf13fe4a0af243c0e76d75439b28d5018dadb9..5a2e322d349340fa58f133c2034765f9 + set.add(blockposition.relative(direction.getOpposite())); + } + } -+ // Paper end ++ // Paper end - prevent headless pistons from forming } d4 += d0 * 0.30000001192092896D; diff --git a/patches/server/0442-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0442-Add-zombie-targets-turtle-egg-config.patch index 232c618025be..51a33c890cee 100644 --- a/patches/server/0442-Add-zombie-targets-turtle-egg-config.patch +++ b/patches/server/0442-Add-zombie-targets-turtle-egg-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add zombie targets turtle egg config diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 79634693899f50e34ffe0898f75e5b31fd11ab53..c82730d52f2ec6cb4a5e17fa512be6497f3ab6dc 100644 +index 79634693899f50e34ffe0898f75e5b31fd11ab53..4208f11e031ea8891d22e2da9e513108f0e2d9f3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -109,7 +109,7 @@ public class Zombie extends Monster { @@ -13,7 +13,7 @@ index 79634693899f50e34ffe0898f75e5b31fd11ab53..c82730d52f2ec6cb4a5e17fa512be649 @Override protected void registerGoals() { - this.goalSelector.addGoal(4, new Zombie.ZombieAttackTurtleEggGoal(this, 1.0D, 3)); -+ if (this.level().paperConfig().entities.behavior.zombiesTargetTurtleEggs) this.goalSelector.addGoal(4, new Zombie.ZombieAttackTurtleEggGoal(this, 1.0D, 3)); // Paper ++ if (this.level().paperConfig().entities.behavior.zombiesTargetTurtleEggs) this.goalSelector.addGoal(4, new Zombie.ZombieAttackTurtleEggGoal(this, 1.0D, 3)); // Paper - Add zombie targets turtle egg config this.goalSelector.addGoal(8, new LookAtPlayerGoal(this, Player.class, 8.0F)); this.goalSelector.addGoal(8, new RandomLookAroundGoal(this)); this.addBehaviourGoals(); diff --git a/patches/server/0443-Buffer-joins-to-world.patch b/patches/server/0443-Buffer-joins-to-world.patch index dd56fa6133c4..b1d8c716aa43 100644 --- a/patches/server/0443-Buffer-joins-to-world.patch +++ b/patches/server/0443-Buffer-joins-to-world.patch @@ -8,36 +8,36 @@ the world per tick, this attempts to reduce the impact that join floods has on the server diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 38650109c1d2683a27da5788dc6013d8d0db26ad..4df0342c38f8ff763a08a145ec94325bcd50689d 100644 +index 38650109c1d2683a27da5788dc6013d8d0db26ad..337010178db21cb71fde1a5a7b263bf3609a7f4c 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -498,14 +498,29 @@ public class Connection extends SimpleChannelInboundHandler> { } // Paper end - Optimize network -+ private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper -+ private static int joinAttemptsThisTick; // Paper -+ private static int currTick; // Paper ++ private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world ++ private static int joinAttemptsThisTick; // Paper - Buffer joins to world ++ private static int currTick; // Paper - Buffer joins to world public void tick() { this.flushQueue(); -+ // Paper start ++ // Paper start - Buffer joins to world + if (Connection.currTick != net.minecraft.server.MinecraftServer.currentTick) { + Connection.currTick = net.minecraft.server.MinecraftServer.currentTick; + Connection.joinAttemptsThisTick = 0; + } -+ // Paper end ++ // Paper end - Buffer joins to world PacketListener packetlistener = this.packetListener; if (packetlistener instanceof TickablePacketListener) { TickablePacketListener tickablepacketlistener = (TickablePacketListener) packetlistener; -+ // Paper start - limit the number of joins which can be processed each tick ++ // Paper start - Buffer joins to world + if (!(this.packetListener instanceof net.minecraft.server.network.ServerLoginPacketListenerImpl loginPacketListener) + || loginPacketListener.state != net.minecraft.server.network.ServerLoginPacketListenerImpl.State.VERIFYING + || Connection.joinAttemptsThisTick++ < MAX_PER_TICK) { tickablepacketlistener.tick(); + } -+ // Paper end ++ // Paper end - Buffer joins to world } if (!this.isConnected() && !this.disconnectionHandled) { diff --git a/patches/server/0445-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0445-Fix-hex-colors-not-working-in-some-kick-messages.patch index efe0e50025fa..4d1e146d3e01 100644 --- a/patches/server/0445-Fix-hex-colors-not-working-in-some-kick-messages.patch +++ b/patches/server/0445-Fix-hex-colors-not-working-in-some-kick-messages.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix hex colors not working in some kick messages diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 21aafb1ea51769659462d722aa318460b37cbc1c..5d7f092e966d5b0496f48bd5c9d274157ac6d250 100644 +index 21aafb1ea51769659462d722aa318460b37cbc1c..228359f13511262a0e4afeb9deff982ca0f46d9a 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -77,14 +77,16 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL @@ -23,7 +23,7 @@ index 21aafb1ea51769659462d722aa318460b37cbc1c..5d7f092e966d5b0496f48bd5c9d27415 + adventureComponent = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(java.text.MessageFormat.format(org.spigotmc.SpigotConfig.outdatedServerMessage.replaceAll("'", "''"), SharedConstants.getCurrentVersion().getName())); // Spigot // Paper - Fix hex colors not working in some kick messages } -+ Component ichatmutablecomponent = io.papermc.paper.adventure.PaperAdventure.asVanilla(adventureComponent); // Paper ++ Component ichatmutablecomponent = io.papermc.paper.adventure.PaperAdventure.asVanilla(adventureComponent); // Paper - Fix hex colors not working in some kick messages + this.connection.send(new ClientboundLoginDisconnectPacket(ichatmutablecomponent)); this.connection.disconnect(ichatmutablecomponent); diff --git a/patches/server/0446-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0446-PortalCreateEvent-needs-to-know-its-entity.patch index 12f0ccc20050..dad05459bff1 100644 --- a/patches/server/0446-PortalCreateEvent-needs-to-know-its-entity.patch +++ b/patches/server/0446-PortalCreateEvent-needs-to-know-its-entity.patch @@ -18,7 +18,7 @@ index c5e36e7e96902fc0e8e9bb409907c6424cf223bd..761a46c21aaddcd43b4c33f477658605 world.notifyAndUpdatePhysics(newblockposition, null, oldBlock, block, world.getBlockState(newblockposition), updateFlag, 512); // send null chunk as chunk.k() returns false by this point diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index e707553bbddf84bc48ec7186da00c3eb0632946d..0e56fbe8836020a0e36c0b6df01ae82d0aa8cf38 100644 +index e707553bbddf84bc48ec7186da00c3eb0632946d..91400c16b8bd8953265bf37ec1cd34ac95133e32 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java @@ -142,20 +142,23 @@ public abstract class BaseFireBlock extends Block { @@ -31,7 +31,7 @@ index e707553bbddf84bc48ec7186da00c3eb0632946d..0e56fbe8836020a0e36c0b6df01ae82d - public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) { - if (!oldState.is(state.getBlock())) { + public void onPlace(BlockState iblockdata, Level world, BlockPos blockposition, BlockState iblockdata1, boolean flag, net.minecraft.world.item.context.UseOnContext itemActionContext) { -+ // Paper end ++ // Paper end - ItemActionContext param + if (!iblockdata1.is(iblockdata.getBlock())) { if (BaseFireBlock.inPortalDimension(world)) { - Optional optional = PortalShape.findEmptyPortalShape(world, pos, Direction.Axis.X); @@ -52,7 +52,7 @@ index e707553bbddf84bc48ec7186da00c3eb0632946d..0e56fbe8836020a0e36c0b6df01ae82d } diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index 8fce3ad36a6ee8166f4abd9e0e369b641d487af9..3fb197ee3bfd3f36881b7d67f7a37f035bb27daf 100644 +index 8fce3ad36a6ee8166f4abd9e0e369b641d487af9..0006aec00ab708b1906fbb87d79a9506397c9226 100644 --- a/src/main/java/net/minecraft/world/level/block/FireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java @@ -14,6 +14,7 @@ import net.minecraft.server.level.ServerLevel; @@ -73,13 +73,13 @@ index 8fce3ad36a6ee8166f4abd9e0e369b641d487af9..3fb197ee3bfd3f36881b7d67f7a37f03 + // Paper start - ItemActionContext param + public void onPlace(BlockState iblockdata, Level world, BlockPos blockposition, BlockState iblockdata1, boolean flag, UseOnContext itemActionContext) { + super.onPlace(iblockdata, world, blockposition, iblockdata1, flag, itemActionContext); -+ // Paper end ++ // Paper end - ItemActionContext param + world.scheduleTick(blockposition, this, getFireTickDelay(world.random)); } private static int getFireTickDelay(RandomSource random) { diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 79ff216e473ebc4bf7ab3ade42b0fa224f7e4c19..fb46c66d916931fd80a99c59030ca05e12d29953 100644 +index 79ff216e473ebc4bf7ab3ade42b0fa224f7e4c19..b144bf37fc4ee93b77d4bbef750b2531ebfef813 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -43,6 +43,7 @@ import net.minecraft.world.item.DyeColor; @@ -99,12 +99,12 @@ index 79ff216e473ebc4bf7ab3ade42b0fa224f7e4c19..fb46c66d916931fd80a99c59030ca05e + public void onPlace(BlockState iblockdata, Level world, BlockPos blockposition, BlockState iblockdata1, boolean flag, UseOnContext itemActionContext) { + this.onPlace(iblockdata, world, blockposition, iblockdata1, flag); + } -+ // Paper end ++ // Paper end - ItemActionContext param /** @deprecated */ @Deprecated public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) { diff --git a/src/main/java/net/minecraft/world/level/portal/PortalShape.java b/src/main/java/net/minecraft/world/level/portal/PortalShape.java -index 9fc4997277dd199cf6cffccceb3a9735398c5356..590cd053a1b1c2a489772a2879998725fe0d783c 100644 +index 9fc4997277dd199cf6cffccceb3a9735398c5356..39321dd4e60be218cb839a89f6cdf32702b72939 100644 --- a/src/main/java/net/minecraft/world/level/portal/PortalShape.java +++ b/src/main/java/net/minecraft/world/level/portal/PortalShape.java @@ -11,6 +11,7 @@ import net.minecraft.tags.BlockTags; @@ -123,7 +123,7 @@ index 9fc4997277dd199cf6cffccceb3a9735398c5356..590cd053a1b1c2a489772a2879998725 + // Paper start - ItemActionContext param + @Deprecated public boolean createPortalBlocks() { return this.createPortalBlocks(null); } + public boolean createPortalBlocks(UseOnContext itemActionContext) { -+ // Paper end ++ // Paper end - ItemActionContext param org.bukkit.World bworld = this.level.getMinecraftWorld().getWorld(); // Copy below for loop diff --git a/patches/server/0447-Add-more-Evoker-API.patch b/patches/server/0447-Add-more-Evoker-API.patch index 742d85985ecd..f44eceff5533 100644 --- a/patches/server/0447-Add-more-Evoker-API.patch +++ b/patches/server/0447-Add-more-Evoker-API.patch @@ -8,7 +8,7 @@ public net.minecraft.world.entity.monster.Evoker setWololoTarget(Lnet/minecraft/ public net.minecraft.world.entity.monster.Evoker getWololoTarget()Lnet/minecraft/world/entity/animal/Sheep; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java -index 93ffe2ac37b03aa289881f5f12c7aa7f1d835eda..b66dd5c5c5d98c9285e0d0a4ad4b99a66419f732 100644 +index 93ffe2ac37b03aa289881f5f12c7aa7f1d835eda..3a890cccf1766758794f3a3b5d31428f42590049 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java @@ -1,5 +1,6 @@ @@ -23,7 +23,7 @@ index 93ffe2ac37b03aa289881f5f12c7aa7f1d835eda..b66dd5c5c5d98c9285e0d0a4ad4b99a6 this.getHandle().setIsCastingSpell(spell == null ? SpellcasterIllager.IllagerSpell.NONE : SpellcasterIllager.IllagerSpell.byId(spell.ordinal())); } + -+ // Paper start ++ // Paper start - Add more Evoker API + @Override + public org.bukkit.entity.Sheep getWololoTarget() { + Sheep sheep = getHandle().getWololoTarget(); @@ -34,5 +34,5 @@ index 93ffe2ac37b03aa289881f5f12c7aa7f1d835eda..b66dd5c5c5d98c9285e0d0a4ad4b99a6 + public void setWololoTarget(org.bukkit.entity.Sheep sheep) { + getHandle().setWololoTarget(sheep == null ? null : ((org.bukkit.craftbukkit.entity.CraftSheep) sheep).getHandle()); + } -+ // Paper end ++ // Paper end - Add more Evoker API } diff --git a/patches/server/0451-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0451-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch index 392cef8f5bed..c4f38ed93f04 100644 --- a/patches/server/0451-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch +++ b/patches/server/0451-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch @@ -31,7 +31,7 @@ index 101871664077577c5cbe159d5d1a31b0e30ec68d..0a2f711b7feba83b39c042df71b3dc65 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e1ce61dcadf325633ed809eef92fc07bac4cbf05..8a613a8a874b8b3949630fcadc25cf39b7fb0659 100644 +index e1ce61dcadf325633ed809eef92fc07bac4cbf05..e8ef81a7224ed134e3042534c96f13a0d4bf7035 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -162,6 +162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -46,7 +46,7 @@ index e1ce61dcadf325633ed809eef92fc07bac4cbf05..8a613a8a874b8b3949630fcadc25cf39 } public void moveTo(double x, double y, double z, float yaw, float pitch) { -+ // Paper - Fix Entity Teleportation and cancel velocity if teleported ++ // Paper start - Fix Entity Teleportation and cancel velocity if teleported + if (!preserveMotion) { + this.deltaMovement = Vec3.ZERO; + } else { diff --git a/patches/server/0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch index 5f964e6bd4f7..30e9a2414650 100644 --- a/patches/server/0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch +++ b/patches/server/0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch @@ -16,7 +16,7 @@ This lets us get faster foreach iteration, as well as avoids map lookups on the values when needed. diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java -index 8519383a9abd45434c1e9888e77548941a80c79c..1d51e113b17a5c522fa7812b1c1f38bf790d8335 100644 +index 8519383a9abd45434c1e9888e77548941a80c79c..eb18494bd7257fa5eb00dea16cf4d5667b796f2b 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java @@ -38,9 +38,12 @@ public class PathFinder { @@ -40,7 +40,7 @@ index 8519383a9abd45434c1e9888e77548941a80c79c..1d51e113b17a5c522fa7812b1c1f38bf @Nullable - private Path findPath(ProfilerFiller profiler, Node startNode, Map positions, float followRange, int distance, float rangeMultiplier) { -+ // Paper start - Perf: remove streams and optimize collection - optimize collection ++ // Paper start - Perf: remove streams and optimize collection + private Path findPath(ProfilerFiller profiler, Node startNode, List> positions, float followRange, int distance, float rangeMultiplier) { profiler.push("find_path"); profiler.markForCharting(MetricCategory.PATH_FINDING); diff --git a/patches/server/0475-Beacon-API-custom-effect-ranges.patch b/patches/server/0475-Beacon-API-custom-effect-ranges.patch index 3e5c249bba7d..14faa92e4b24 100644 --- a/patches/server/0475-Beacon-API-custom-effect-ranges.patch +++ b/patches/server/0475-Beacon-API-custom-effect-ranges.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Beacon API - custom effect ranges diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..0669219b230b127a09741d0073929b2ff68c64af 100644 +index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..7205d0ea78af545108719c1373ba7946ede34ae6 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -82,6 +82,26 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name @@ -55,7 +55,7 @@ index cd28ee0cbc69713a641a21c9a626c694a4bcbfc9..0669219b230b127a09741d0073929b2f + // Paper end - Custom beacon ranges { - double d0 = (double) (i * 10 + 10); -+ double d0 = blockEntity != null ? blockEntity.getEffectRange() : (i * 10 + 10);// Paper - Custom beacon ranges ++ double d0 = blockEntity != null ? blockEntity.getEffectRange() : (i * 10 + 10); // Paper - Custom beacon ranges AABB axisalignedbb = (new AABB(blockposition)).inflate(d0).expandTowards(0.0D, (double) world.getHeight(), 0.0D); List list = world.getEntitiesOfClass(Player.class, axisalignedbb); diff --git a/patches/server/0476-Add-API-for-quit-reason.patch b/patches/server/0476-Add-API-for-quit-reason.patch index 0dd6812fc283..988800c80ae8 100644 --- a/patches/server/0476-Add-API-for-quit-reason.patch +++ b/patches/server/0476-Add-API-for-quit-reason.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add API for quit reason diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 4df0342c38f8ff763a08a145ec94325bcd50689d..673dfdcd212a9a02e2e690084c280b4af904a470 100644 +index 337010178db21cb71fde1a5a7b263bf3609a7f4c..0bc07a1748a5a979c6f6404c620331c3bbdb401f 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -183,12 +183,15 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -25,19 +25,19 @@ index 4df0342c38f8ff763a08a145ec94325bcd50689d..673dfdcd212a9a02e2e690084c280b4a Connection.LOGGER.debug("Failed to sent packet", throwable); if (this.getSending() == PacketFlow.CLIENTBOUND) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8eb1d297ff0317ac679e85e03d0b4546fa1ed315..d1de7aedc4ecaffed53c356224e3e670fd70256c 100644 +index 1635cd4a6e03005c1cdfce82bf3ffa657c3c25ed..ea38d4eb1b4f98ba230ce44deedfd5cb2065edac 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -279,6 +279,7 @@ public class ServerPlayer extends Player { public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - public @Nullable String clientBrandName = null; // Paper - Brand name + public @Nullable String clientBrandName = null; // Paper - Brand support + public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 81d4613a23dd0ffc442f0a4e2cbc84d82134dda7..98751a16f1dc372e2f517d48e8a7584b0370e65e 100644 +index f453b3023b713877b286e61d3c60b0b3cfce2cdd..825b8f541fe3f5e4cb53f465232c19398b8e66ab 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -315,6 +315,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -49,7 +49,7 @@ index 81d4613a23dd0ffc442f0a4e2cbc84d82134dda7..98751a16f1dc372e2f517d48e8a7584b this.connection.disconnect(ichatbasecomponent); })); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 29b535dae6eff1c6b47a5d2818fbf0653cd32b8f..35d9aae5ae0618e6509a3d452e0609326e2737c0 100644 +index a50c8728f6ece2ab1f08cacb64cf98790b8a6871..1639c7dda7a4eb29cff489b49590152029d89ea3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -579,7 +579,7 @@ public abstract class PlayerList { diff --git a/patches/server/0488-Limit-recipe-packets.patch b/patches/server/0488-Limit-recipe-packets.patch index 30573f9a25c4..d0c0c85c5c29 100644 --- a/patches/server/0488-Limit-recipe-packets.patch +++ b/patches/server/0488-Limit-recipe-packets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Limit recipe packets diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6e1bfe5342e23a0dd97dfbc06a43bf77dfab23cc..a3715ab0d5f7ae33ba64e69b391e12a00b2e59e9 100644 +index 6e1bfe5342e23a0dd97dfbc06a43bf77dfab23cc..4bf01aff2716a26e3db7d3778ef3f9e1e529dc74 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -258,6 +258,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -31,7 +31,7 @@ index 6e1bfe5342e23a0dd97dfbc06a43bf77dfab23cc..a3715ab0d5f7ae33ba64e69b391e12a0 + // Paper start - auto recipe limit + if (!org.bukkit.Bukkit.isPrimaryThread()) { + if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { -+ this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", new Object[0]))); // Paper ++ this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", new Object[0]))); + return; + } + } diff --git a/patches/server/0527-Add-BlockPreDispenseEvent.patch b/patches/server/0527-Add-BlockPreDispenseEvent.patch index 68e5b69f0cac..c2ee9d8110ca 100644 --- a/patches/server/0527-Add-BlockPreDispenseEvent.patch +++ b/patches/server/0527-Add-BlockPreDispenseEvent.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add BlockPreDispenseEvent diff --git a/src/main/java/net/minecraft/world/level/block/DispenserBlock.java b/src/main/java/net/minecraft/world/level/block/DispenserBlock.java -index 5593a0aa9e618071b6521b213dde0f628348c3dc..1ee863ec252872deb15a6b96f1d937c672ce5898 100644 +index 5593a0aa9e618071b6521b213dde0f628348c3dc..644e64850479cea20a98b8a65503ccf3a34fd32a 100644 --- a/src/main/java/net/minecraft/world/level/block/DispenserBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DispenserBlock.java @@ -104,6 +104,7 @@ public class DispenserBlock extends BaseEntityBlock { DispenseItemBehavior idispensebehavior = this.getDispenseMethod(itemstack); if (idispensebehavior != DispenseItemBehavior.NOOP) { -+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockPreDispenseEvent(world, pos, itemstack, i)) return; // Paper - Add BlockPreDispenseEvent ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockPreDispenseEvent(world, pos, itemstack, i)) return; // Paper - Add BlockPreDispenseEvent DispenserBlock.eventFired = false; // CraftBukkit - reset event status tileentitydispenser.setItem(i, idispensebehavior.dispense(sourceblock, itemstack)); } diff --git a/patches/server/0543-Improve-ServerGUI.patch b/patches/server/0543-Improve-ServerGUI.patch index ad7dfc7afda2..b4986e426904 100644 --- a/patches/server/0543-Improve-ServerGUI.patch +++ b/patches/server/0543-Improve-ServerGUI.patch @@ -59,7 +59,7 @@ index 2e93eec8733c5b548a15269a322fe4dd1f189b7d..69b18e312db984eaffa8bae2439c88f7 public void windowClosing(WindowEvent windowevent) { if (!servergui.isClosing.getAndSet(true)) { diff --git a/src/main/java/net/minecraft/server/gui/StatsComponent.java b/src/main/java/net/minecraft/server/gui/StatsComponent.java -index 7938029cb7aa6f09f78fb1c648357c36edb68510..ed94bc86ed47719c2f6c338374edf741bd202c24 100644 +index 7938029cb7aa6f09f78fb1c648357c36edb68510..38fe7e5014332f45e41a3d5d91c28dd0acfdc3b0 100644 --- a/src/main/java/net/minecraft/server/gui/StatsComponent.java +++ b/src/main/java/net/minecraft/server/gui/StatsComponent.java @@ -36,8 +36,17 @@ public class StatsComponent extends JComponent { @@ -85,7 +85,7 @@ index 7938029cb7aa6f09f78fb1c648357c36edb68510..ed94bc86ed47719c2f6c338374edf741 this.timer.stop(); } + -+ // Paper - Improve ServerGUI ++ // Paper start - Improve ServerGUI + private static String format(double tps) { + return (( tps > 21.0 ) ? "*" : "") + Math.min(Math.round(tps * 100.0) / 100.0, 20.0); // only print * at 21, we commonly peak to 20.02 as the tick sleep is not accurate enough, stop the noise + } diff --git a/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch index 8690691c364f..41be876057df 100644 --- a/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch @@ -45,7 +45,7 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..f7c9127346261d83413ca03a1cdaa849 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 300bae3e97bf5bc0c2340a8e360312e77b7f4c6f..4f8239829565568c1381e2f1ebc1d633cb301ac6 100644 +index 8184aaff18d2372ae1de0fe1c53e63e1e6e3b2b0..68f6bb415d4b9624f147dc641543bce56bbbca09 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1989,8 +1989,16 @@ public class ServerPlayer extends Player { @@ -94,14 +94,14 @@ index 300bae3e97bf5bc0c2340a8e360312e77b7f4c6f..4f8239829565568c1381e2f1ebc1d633 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 49d29e4b3395d2ebea1ed13338f26c7cfbaa5f72..45f7270fb15aa091772aa921d1e7d82e2547b358 100644 +index 49d29e4b3395d2ebea1ed13338f26c7cfbaa5f72..d04669c1d2434c1dbc617777b769e9004359f208 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -73,21 +73,28 @@ public class ServerPlayerGameMode { } public boolean changeGameModeForPlayer(GameType gameMode) { -+ // Paper end - Expand PlayerGameModeChangeEvent ++ // Paper start - Expand PlayerGameModeChangeEvent + PlayerGameModeChangeEvent event = this.changeGameModeForPlayer(gameMode, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.UNKNOWN, null); + return event != null && event.isCancelled(); + } @@ -131,7 +131,7 @@ index 49d29e4b3395d2ebea1ed13338f26c7cfbaa5f72..45f7270fb15aa091772aa921d1e7d82e } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ba02b3004de6efe2d1f69cda0ba759c9f0192767..6a32c25dbef4d8d8b9db96a69ac8c6baf1d640a6 100644 +index 5c54f56a350def1c4c7180c05e853fe10d687f74..f1a684e8af0b05c68ccb16cdb9c0e236d1a5834a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2648,7 +2648,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0595-Add-PlayerKickEvent-causes.patch b/patches/server/0595-Add-PlayerKickEvent-causes.patch index 0334bf9757fb..027f404657f3 100644 --- a/patches/server/0595-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0595-Add-PlayerKickEvent-causes.patch @@ -48,7 +48,7 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..ba12919c3f9aec34a9e64993b143ae92 public boolean shouldDisconnect() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6f51ff7e3486049ee6f5186bfe54078d13eae805..eeead619212e475007557a2826e69e45b441bf14 100644 +index 448bc8800860f0632a70998375efa5133024c06b..2d330b40cc604c8883a33e56322e419eff9e39cb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2236,7 +2236,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { -- this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", new Object[0]))); // Paper +- this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", new Object[0]))); + this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause return; } @@ -437,7 +437,7 @@ index 8b45e0fa29cd4bfb31e3d19df876da38567899f6..29f1a054c31d00fe7ba4c5d171c47efa } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a0f1d9ca16551adef2cacb16576b91810eefa292..3e88b648cf4fcc19598fb50ca5651af1a52a0a84 100644 +index 62a005826cd4a26927cde13cfb3551c1f187bfbe..3ae5efb964f3c791b58d4d336881cf189169f7f3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -684,7 +684,7 @@ public abstract class PlayerList { diff --git a/patches/server/0626-Improve-boat-collision-performance.patch b/patches/server/0626-Improve-boat-collision-performance.patch index 42d74007a732..698493e81a6c 100644 --- a/patches/server/0626-Improve-boat-collision-performance.patch +++ b/patches/server/0626-Improve-boat-collision-performance.patch @@ -17,7 +17,7 @@ index 90f5e7d36719dc9b464dd6ba0335da035bab29d3..006a7876a0c8e1180dada6694992f596 }; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6518d7972f7902b3f7b65d7e5f6629491b531f22..394af8382455d2a039534b87142679f52dc8f2a6 100644 +index cfac6c239189c322fba11c86230f3ad34e0eae67..0292ca014fd8319fe9f5e7a1465ee5c112ef6515 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1413,7 +1413,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -54,17 +54,15 @@ index 6518d7972f7902b3f7b65d7e5f6629491b531f22..394af8382455d2a039534b87142679f5 } } diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -index 8b0efc4d78a04effddae0799b7ee5759ed5c720f..dfd53ca465c9d4864020c14a49f4e74b717df5d6 100644 +index 1ced6d60a74fac028804b3c2d938e89af4706823..db6aa75d642f4a7258f197933671907faf79c8f2 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -@@ -689,8 +689,8 @@ public class Boat extends VehicleEntity implements VariantHolder { +@@ -689,7 +689,7 @@ public class Boat extends VehicleEntity implements VariantHolder { this.invFriction = 0.05F; if (this.oldStatus == Boat.Status.IN_AIR && this.status != Boat.Status.IN_AIR && this.status != Boat.Status.ON_LAND) { this.waterLevel = this.getY(1.0D); - this.setPos(this.getX(), (double) (this.getWaterLevelAbove() - this.getBbHeight()) + 0.101D, this.getZ()); -- this.setDeltaMovement(this.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D)); + this.move(MoverType.SELF, new Vec3(0.0, ((double) (this.getWaterLevelAbove() - this.getBbHeight()) + 0.101D) - this.getY(), 0.0)); // Paper - Improve boat collision performance -+ this.setDeltaMovement(this.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D)); // Paper - Improve boat collision performance + this.setDeltaMovement(this.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D)); this.lastYd = 0.0D; this.status = Boat.Status.IN_WATER; - } else { diff --git a/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch index ea4a589d3429..c06e5b82103d 100644 --- a/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Detail more information in watchdog dumps - Dump player name, player uuid, position, and world for packet handling diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index c48316527013dce0d572524c28b2f5d135e82c71..db18b41e300cb48b3bede8670295aa76e89069ad 100644 +index 872ad936dd86b510f24676fe565eb547b35bcb5e..20cd5c5d197d92f7127aadad063c4aabfc4863a6 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -521,7 +521,13 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -22,7 +22,7 @@ index c48316527013dce0d572524c28b2f5d135e82c71..db18b41e300cb48b3bede8670295aa76 + net.minecraft.network.protocol.PacketUtils.packetProcessing.pop(); + } // Paper end - detailed watchdog information } - // Paper end + // Paper end - Buffer joins to world } diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d99436afafc1 100644 @@ -76,7 +76,7 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e61a5e2b1ba1f8f54aac14bb61efb8c5ffca2bf9..bf88a776a600a63ddcc079aa981c5838c995521a 100644 +index 922639eee09ff9878a979ebfdaa36f865746cbdd..c6c69ea8a471eff84256f1a66d4eda98f55c269e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1244,7 +1244,26 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -122,7 +122,7 @@ index e61a5e2b1ba1f8f54aac14bb61efb8c5ffca2bf9..bf88a776a600a63ddcc079aa981c5838 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 563c26b7f25f51ae8f256d516b2085ccedac7bcd..d84d696146214f5075bb13a484c4535149faa72f 100644 +index f3f12e2394a85fd49ba0bc14944b0f073ca5fecc..bbc8a7f27ffdeda8f994b04213e631e1b82ee67c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1031,7 +1031,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0844-Add-fire-tick-delay-option.patch b/patches/server/0844-Add-fire-tick-delay-option.patch index 610fc4a818d7..9c65fa7731b1 100644 --- a/patches/server/0844-Add-fire-tick-delay-option.patch +++ b/patches/server/0844-Add-fire-tick-delay-option.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add fire-tick-delay option diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index 3fb197ee3bfd3f36881b7d67f7a37f035bb27daf..03310fe5d05bc9c61df221977c071757a488c352 100644 +index 0006aec00ab708b1906fbb87d79a9506397c9226..f239755b7ca75de1cf5a194e49d8dbc5a44af6f8 100644 --- a/src/main/java/net/minecraft/world/level/block/FireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java @@ -172,7 +172,7 @@ public class FireBlock extends BaseFireBlock { @@ -20,7 +20,7 @@ index 3fb197ee3bfd3f36881b7d67f7a37f035bb27daf..03310fe5d05bc9c61df221977c071757 @@ -373,11 +373,13 @@ public class FireBlock extends BaseFireBlock { public void onPlace(BlockState iblockdata, Level world, BlockPos blockposition, BlockState iblockdata1, boolean flag, UseOnContext itemActionContext) { super.onPlace(iblockdata, world, blockposition, iblockdata1, flag, itemActionContext); - // Paper end + // Paper end - ItemActionContext param - world.scheduleTick(blockposition, this, getFireTickDelay(world.random)); + world.scheduleTick(blockposition, this, getFireTickDelay(world)); // Paper - Add fire-tick-delay option } diff --git a/patches/server/0934-Optimize-player-lookups-for-beacons.patch b/patches/server/0934-Optimize-player-lookups-for-beacons.patch index 16cc0d33c85b..a71b654065cd 100644 --- a/patches/server/0934-Optimize-player-lookups-for-beacons.patch +++ b/patches/server/0934-Optimize-player-lookups-for-beacons.patch @@ -7,11 +7,11 @@ For larger ranges, it's better to iterate over the player list than the entity slices. diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index 720d798e9eb38aa97f39c5aa8c3c03671d72bdad..2250d77b0ec5ea77e3b757e03b62b26ced89a02f 100644 +index 44660b9f3d8ef6df42dc05e774a5804fdbfa5d14..3ccc0a8d2091d45100198f2853c17edf62c27728 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -329,7 +329,22 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name - double d0 = blockEntity != null ? blockEntity.getEffectRange() : (i * 10 + 10);// Paper - Custom beacon ranges + double d0 = blockEntity != null ? blockEntity.getEffectRange() : (i * 10 + 10); // Paper - Custom beacon ranges AABB axisalignedbb = (new AABB(blockposition)).inflate(d0).expandTowards(0.0D, (double) world.getHeight(), 0.0D); - List list = world.getEntitiesOfClass(Player.class, axisalignedbb); diff --git a/patches/server/0972-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0972-Deep-clone-unhandled-nbt-tags.patch index 895a34cdc05d..261a9077cf5c 100644 --- a/patches/server/0972-Deep-clone-unhandled-nbt-tags.patch +++ b/patches/server/0972-Deep-clone-unhandled-nbt-tags.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Deep clone unhandled nbt tags diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index b7c0c9a40dac3e828f880ef928ca34206a898cb9..678cebb12e290a9a3967177d97a67bebb9116104 100644 +index b7c0c9a40dac3e828f880ef928ca34206a898cb9..2a79d94abf911c9c973e84f81283e8e64fbef2b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -305,7 +305,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { @@ -13,7 +13,7 @@ index b7c0c9a40dac3e828f880ef928ca34206a898cb9..678cebb12e290a9a3967177d97a67beb private CompoundTag internalTag; - final Map unhandledTags = new TreeMap(); // Visible for testing only // Paper -+ Map unhandledTags = new TreeMap(); // Visible for testing only // Paper & Deep clone unhandled nbt tags; remove final ++ Map unhandledTags = new TreeMap(); // Visible for testing only // Paper - Deep clone unhandled nbt tags; remove final private CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftMetaItem.DATA_TYPE_REGISTRY); private int version = CraftMagicNumbers.INSTANCE.getDataVersion(); // Internal use only diff --git a/patches/server/0991-Actually-optimise-explosions.patch b/patches/server/0991-Actually-optimise-explosions.patch index 4010a9587534..a91b2d5ee805 100644 --- a/patches/server/0991-Actually-optimise-explosions.patch +++ b/patches/server/0991-Actually-optimise-explosions.patch @@ -34,7 +34,7 @@ The results indicate that this logic is 5 times faster than Vanilla and 2.3 times faster than Lithium. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 7bb8dc1f4697960cdc6bac0daec4b7a06a2dd7c4..210b6d71207b99e66ba014b176b2c1445053b1d1 100644 +index d8a57d38d263e1d402327c7df21641b0f1ba0668..1fa02130dcb65b3109fde0cb612b538b1c4cd4cb 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -111,6 +111,271 @@ public class Explosion { @@ -424,7 +424,7 @@ index 7bb8dc1f4697960cdc6bac0daec4b7a06a2dd7c4..210b6d71207b99e66ba014b176b2c144 @@ -215,11 +528,12 @@ public class Explosion { } } - // Paper end + // Paper end - prevent headless pistons from forming + } // Paper - optimise explosions } diff --git a/patches/server/1060-Write-SavedData-IO-async.patch b/patches/server/1044-Write-SavedData-IO-async.patch similarity index 97% rename from patches/server/1060-Write-SavedData-IO-async.patch rename to patches/server/1044-Write-SavedData-IO-async.patch index 08c6c25da994..8804c3761dfe 100644 --- a/patches/server/1060-Write-SavedData-IO-async.patch +++ b/patches/server/1044-Write-SavedData-IO-async.patch @@ -44,10 +44,10 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..2aaf1cc630f9cf4b61ad58d1adde5f93 // CraftBukkit start - modelled on below diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 676087c3addd712939c865b39ddb5d9f0bc7ce25..a52ca83572c21f5977d7d0573de443ef5f931279 100644 +index 3a2f0a4ae00c63bcae3ee1e068d10bebe33fab7e..5b0749987a78ce830a882b4fa1210e846c188718 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1492,7 +1492,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1491,7 +1491,7 @@ public class ServerLevel extends Level implements WorldGenLevel { try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) { if (doFull) { @@ -56,7 +56,7 @@ index 676087c3addd712939c865b39ddb5d9f0bc7ce25..a52ca83572c21f5977d7d0573de443ef } this.timings.worldSaveChunks.startTiming(); // Paper -@@ -1528,7 +1528,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1527,7 +1527,7 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } @@ -65,7 +65,7 @@ index 676087c3addd712939c865b39ddb5d9f0bc7ce25..a52ca83572c21f5977d7d0573de443ef if (progressListener != null) { progressListener.progressStage(Component.translatable("menu.savingChunks")); } -@@ -1551,12 +1551,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1550,12 +1550,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit end } From f7dd304b1f9ad11fefd86ed97b1d87546a1f4a1b Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 21 Jan 2024 12:11:43 +0100 Subject: [PATCH 31/45] [ci skip] Add more identifying patch comments --- ...-Add-tick-times-API-and-mspt-command.patch | 14 +++---- ...spawn-settings-and-per-player-option.patch | 12 +++--- ...nnections-shouldn-t-hold-up-shutdown.patch | 6 +-- ...low-bees-to-load-chunks-for-beehives.patch | 10 ++--- ...-PlayerChunkMap-adds-crashing-server.patch | 8 ++-- ...move-existing-players-to-world-spawn.patch | 8 ++-- .../server/0363-Optimize-Pathfinding.patch | 14 +++---- ...64-Reduce-Either-Optional-allocation.patch | 10 ++--- ...uce-memory-footprint-of-CompoundTag.patch} | 12 +++--- ...vent-opening-inventories-when-frozen.patch | 12 +++--- ...-entity-collision-code-if-not-needed.patch | 4 +- ...-Implement-Player-Client-Options-API.patch | 4 +- ...layer-is-attempted-to-be-removed-fro.patch | 4 +- ...Event-when-Player-is-actually-ready.patch} | 34 +++++++-------- ...pawn-point-if-spawn-in-unloaded-worl.patch | 8 ++-- ...PlayerAttackEntityCooldownResetEvent.patch | 4 +- ...t-fire-BlockFade-on-worldgen-threads.patch | 5 +-- ...ntom-creative-and-insomniac-controls.patch | 12 +++--- ...tem-duplication-and-teleport-issues.patch} | 18 ++++---- ...PickItem-Packet-and-kick-for-invalid.patch | 4 +- ...-per-thread-native-byte-buffer-cache.patch | 4 +- .../server/0381-misc-debugging-dumps.patch | 24 +++++------ ...82-Prevent-teleporting-dead-entities.patch | 6 +-- ...ktraces-in-log-messages-crash-report.patch | 8 ++-- .../server/0384-Implement-Mob-Goal-API.patch | 12 +++--- .../0385-Add-villager-reputation-API.patch | 4 +- ...-maximum-exp-value-when-merging-orbs.patch | 6 +-- ...Wait-for-Async-Tasks-during-shutdown.patch | 10 ++--- ...and-End-Portal-Frames-from-being-des.patch | 42 +++++++++---------- .../0393-Ensure-safe-gateway-teleport.patch | 6 +-- ...ix-villager-trading-demand-MC-163962.patch | 4 +- ...ookup-for-Treasure-Maps-Fixes-lag-fr.patch | 4 +- ...ston-physics-inconsistency-MC-188840.patch | 6 +-- ...-should-not-bypass-cramming-gamerule.patch | 8 ++-- ...k-event-leave-message-not-being-sent.patch | 10 ++--- ...0657-Improve-and-expand-AsyncCatcher.patch | 8 ++-- ...-pistons-and-BlockPistonRetractEvent.patch | 4 +- ...751-Force-close-world-loading-screen.patch | 6 +-- ...ntrol-player-s-insomnia-and-phantoms.patch | 6 +-- .../0865-Properly-resend-entities.patch | 6 +-- ...le-player-info-update-packet-on-join.patch | 8 ++-- ...enceOrb-should-call-EntitySpawnEvent.patch | 10 ++--- .../server/0973-Add-PlayerPickItemEvent.patch | 4 +- ...-titleOverride-to-InventoryOpenEvent.patch | 18 ++++---- .../0991-Actually-optimise-explosions.patch | 9 ++-- .../0995-Optimise-chunk-tick-iteration.patch | 10 ++--- ...estore-vanilla-entity-drops-behavior.patch | 16 +++---- .../1035-Add-drops-to-shear-events.patch | 4 +- 48 files changed, 231 insertions(+), 235 deletions(-) rename patches/server/{0365-Reduce-memory-footprint-of-NBTTagCompound.patch => 0365-Reduce-memory-footprint-of-CompoundTag.patch} (83%) rename patches/server/{0370-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch => 0370-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch} (74%) rename patches/server/{0375-Fix-numerous-item-duplication-issues-and-teleport-is.patch => 0375-Fix-item-duplication-and-teleport-issues.patch} (92%) diff --git a/patches/server/0350-Add-tick-times-API-and-mspt-command.patch b/patches/server/0350-Add-tick-times-API-and-mspt-command.patch index 48271b685637..4a333224d615 100644 --- a/patches/server/0350-Add-tick-times-API-and-mspt-command.patch +++ b/patches/server/0350-Add-tick-times-API-and-mspt-command.patch @@ -125,18 +125,18 @@ index 72f2e81b9905a0d57ed8e2a88578f62d5235c456..7b58b2d6297800c2dcdbf7539e5ab8e7 public static void registerCommands(final MinecraftServer server) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6024a9e0dca38b1c21332f5c131d824190a2be90..ce113cc2bc52c1135799190a22e0be21744b58cc 100644 +index 6407af497c719d0f6a4446192bed622af34d6bc6..7a6b3f50f4379a29a59b33db965a86ef4d5539b0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -252,6 +252,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0) { -+ // Paper start - Patrol settings ++ // Paper start - Pillager patrol spawn settings and per player options + // Random player selection moved up for per player spawning and configuration + int j = world.players().size(); + if (j < 1) { @@ -82,7 +82,7 @@ index e5918fa3be107ac3a2fc8831fd78733a7506730a..a908652f1ebb426d265ef614746f70cd - if (randomsource.nextInt(5) != 0) { + if (days >= world.paperConfig().entities.behavior.pillagerPatrols.start.day && world.isDay()) { + if (randomsource.nextDouble() >= world.paperConfig().entities.behavior.pillagerPatrols.spawnChance) { -+ // Paper end ++ // Paper end - Pillager patrol spawn settings and per player options return 0; } else { - int j = world.players().size(); diff --git a/patches/server/0354-Remote-Connections-shouldn-t-hold-up-shutdown.patch b/patches/server/0354-Remote-Connections-shouldn-t-hold-up-shutdown.patch index 4000b9b25443..9cb8e0b2775d 100644 --- a/patches/server/0354-Remote-Connections-shouldn-t-hold-up-shutdown.patch +++ b/patches/server/0354-Remote-Connections-shouldn-t-hold-up-shutdown.patch @@ -24,21 +24,21 @@ index 7bc90a4b0cbbb2251122038d374860ff02f5edee..5f4f993243f19f1e88b7f2bc5e40a6b2 System.exit(0); // CraftBukkit diff --git a/src/main/java/net/minecraft/server/rcon/thread/RconThread.java b/src/main/java/net/minecraft/server/rcon/thread/RconThread.java -index 3bf60f640aa9fa4cabd2b3e5d3931e8467b9df24..2c1289aa2bf8b7bb67709190263b82b811c17fff 100644 +index 3bf60f640aa9fa4cabd2b3e5d3931e8467b9df24..b939da2d6309c6d2b3d1ef089adf7cbf70865196 100644 --- a/src/main/java/net/minecraft/server/rcon/thread/RconThread.java +++ b/src/main/java/net/minecraft/server/rcon/thread/RconThread.java @@ -107,6 +107,14 @@ public class RconThread extends GenericThread { this.clients.clear(); } -+ // Paper start ++ // Paper start - don't wait for remote connections + public void stopNonBlocking() { + this.running = false; + for (RconClient client : this.clients) { + client.running = false; + } + } -+ // Paper stop ++ // Paper stop - don't wait for remote connections private void closeSocket(ServerSocket socket) { LOGGER.debug("closeSocket: {}", (Object)socket); diff --git a/patches/server/0355-Do-not-allow-bees-to-load-chunks-for-beehives.patch b/patches/server/0355-Do-not-allow-bees-to-load-chunks-for-beehives.patch index 8de3e9bd41e3..30a38841ad2c 100644 --- a/patches/server/0355-Do-not-allow-bees-to-load-chunks-for-beehives.patch +++ b/patches/server/0355-Do-not-allow-bees-to-load-chunks-for-beehives.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Do not allow bees to load chunks for beehives diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index d9297c0b2934084a065af7d7c93af8d44c3de8e1..c6235be64d6fb234734dd816052695ac44aea3ae 100644 +index d9297c0b2934084a065af7d7c93af8d44c3de8e1..3f1502b489e6b3a371572abe3ac045313e8def5e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -420,6 +420,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { if (this.hivePos == null) { return false; } else { -+ if (!this.level().isLoadedAndInBounds(this.hivePos)) return false; // Paper ++ if (!this.level().isLoadedAndInBounds(this.hivePos)) return false; // Paper - Do not allow bees to load chunks for beehives BlockEntity tileentity = this.level().getBlockEntity(this.hivePos); return tileentity instanceof BeehiveBlockEntity && ((BeehiveBlockEntity) tileentity).isFireNearby(); @@ -20,7 +20,7 @@ index d9297c0b2934084a065af7d7c93af8d44c3de8e1..c6235be64d6fb234734dd816052695ac } private boolean doesHiveHaveSpace(BlockPos pos) { -+ if (!this.level().isLoadedAndInBounds(pos)) return false; // Paper ++ if (!this.level().isLoadedAndInBounds(pos)) return false; // Paper - Do not allow bees to load chunks for beehives BlockEntity tileentity = this.level().getBlockEntity(pos); return tileentity instanceof BeehiveBlockEntity ? !((BeehiveBlockEntity) tileentity).isFull() : false; @@ -28,7 +28,7 @@ index d9297c0b2934084a065af7d7c93af8d44c3de8e1..c6235be64d6fb234734dd816052695ac @Override public boolean canBeeUse() { if (Bee.this.hasHive() && Bee.this.wantsToEnterHive() && Bee.this.hivePos.closerToCenterThan(Bee.this.position(), 2.0D)) { -+ if (!Bee.this.level().isLoadedAndInBounds(Bee.this.hivePos)) return false; // Paper ++ if (!Bee.this.level().isLoadedAndInBounds(Bee.this.hivePos)) return false; // Paper - Do not allow bees to load chunks for beehives BlockEntity tileentity = Bee.this.level().getBlockEntity(Bee.this.hivePos); if (tileentity instanceof BeehiveBlockEntity) { @@ -36,7 +36,7 @@ index d9297c0b2934084a065af7d7c93af8d44c3de8e1..c6235be64d6fb234734dd816052695ac @Override public void start() { -+ if (!Bee.this.level().isLoadedAndInBounds(Bee.this.hivePos)) return; // Paper ++ if (!Bee.this.level().isLoadedAndInBounds(Bee.this.hivePos)) return; // Paper - Do not allow bees to load chunks for beehives BlockEntity tileentity = Bee.this.level().getBlockEntity(Bee.this.hivePos); if (tileentity instanceof BeehiveBlockEntity) { diff --git a/patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch index e97ae2aba81d..a792a698bf9b 100644 --- a/patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch +++ b/patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch @@ -7,7 +7,7 @@ Suspected case would be around the technique used in .stopRiding Stack will identify any causer of this and warn instead of crashing. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 1f9efff4ddccf2569fdfe42e6cbc92792643d0ea..876200db872bce89976329c4d6c6fbe9fd155f24 100644 +index 1f9efff4ddccf2569fdfe42e6cbc92792643d0ea..3b7a82761682e29fb42f683b232c789c522b632e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -993,6 +993,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -20,12 +20,12 @@ index 1f9efff4ddccf2569fdfe42e6cbc92792643d0ea..876200db872bce89976329c4d6c6fbe9 + + ": " + entity + (this.entityMap.containsKey(entity.getId()) ? " ALREADY CONTAINED (This would have crashed your server)" : ""), new Throwable()); + return; + } -+ // Paper end ++ // Paper end - ignore and warn about illegal addEntity calls instead of crashing server if (!(entity instanceof EnderDragonPart)) { EntityType entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 63437e0cd8ad76e05a3ae40de673d8ff6cae00c6..1c0d2aad70b3817913e93354ccc055b82ae321bc 100644 +index 63437e0cd8ad76e05a3ae40de673d8ff6cae00c6..46101e6bef0f81968cb194303e19e437a3417733 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2514,7 +2514,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -33,7 +33,7 @@ index 63437e0cd8ad76e05a3ae40de673d8ff6cae00c6..1c0d2aad70b3817913e93354ccc055b8 public void onTrackingStart(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot - ServerLevel.this.getChunkSource().addEntity(entity); -+ // ServerLevel.this.getChunkSource().addEntity(entity); // Paper - moved down below valid=true ++ // ServerLevel.this.getChunkSource().addEntity(entity); // Paper - ignore and warn about illegal addEntity calls instead of crashing server; moved down below valid=true if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; diff --git a/patches/server/0360-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0360-Don-t-move-existing-players-to-world-spawn.patch index e4f380afa586..341028c2d4f7 100644 --- a/patches/server/0360-Don-t-move-existing-players-to-world-spawn.patch +++ b/patches/server/0360-Don-t-move-existing-players-to-world-spawn.patch @@ -13,7 +13,7 @@ By skipping this, we avoid potential for a large spike on server start. public net.minecraft.server.level.ServerPlayer fudgeSpawnLocation(Lnet/minecraft/server/level/ServerLevel;)V diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index daedb7b5ef086ccbf091274088170cf7eb331f91..3738680d935695930be19cdc18478c62ccb93d3a 100644 +index 9fcd1a7c1532c6343707665d96b1d147ed4d424f..e8470f0cc918ae20caa9aa4de7a81edf31f2f556 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -385,7 +385,7 @@ public class ServerPlayer extends Player { @@ -21,7 +21,7 @@ index daedb7b5ef086ccbf091274088170cf7eb331f91..3738680d935695930be19cdc18478c62 this.advancements = server.getPlayerList().getPlayerAdvancements(this); this.setMaxUpStep(1.0F); - this.fudgeSpawnLocation(world); -+ // this.fudgeSpawnLocation(world); // Paper - don't move to spawn on login, only first join ++ // this.fudgeSpawnLocation(world); // Paper - Don't move existing players to world spawn this.updateOptions(clientOptions); this.cachedSingleHashSet = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper @@ -35,14 +35,14 @@ index daedb7b5ef086ccbf091274088170cf7eb331f91..3738680d935695930be19cdc18478c62 this.gameMode.setLevel((ServerLevel) world); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d4ae0a201838dbc9c73f7c1a8a67072b344b71bc..03f8e1775e05293665f995b6c3ee52ed11447e79 100644 +index d4ae0a201838dbc9c73f7c1a8a67072b344b71bc..02cb0a3d2331002a64ceb32027b9112cb7a81808 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -226,6 +226,7 @@ public abstract class PlayerList { // Paper start if (nbttagcompound == null) { player.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; // set Player SpawnReason to DEFAULT on first login -+ player.fudgeSpawnLocation(worldserver1); // only move to spawn on first login, otherwise, stay where you are.... ++ player.fudgeSpawnLocation(worldserver1); // Paper - Don't move existing players to world spawn } // Paper end player.setServerLevel(worldserver1); diff --git a/patches/server/0363-Optimize-Pathfinding.patch b/patches/server/0363-Optimize-Pathfinding.patch index 8fca2b48b16c..72f4ca5ac6af 100644 --- a/patches/server/0363-Optimize-Pathfinding.patch +++ b/patches/server/0363-Optimize-Pathfinding.patch @@ -7,27 +7,27 @@ Prevents pathfinding from spamming failures for things such as arrow attacks. diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index 68edd488087a6ec1e65797cfbd4118bd0efbab50..b37415d45dda8e658c8995a4519e552dc378bb41 100644 +index 68edd488087a6ec1e65797cfbd4118bd0efbab50..a9922074b6aa6a9898615385bb11d2a758662970 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java @@ -192,9 +192,29 @@ public abstract class PathNavigation { return this.moveTo(this.createPath(x, y, z, 1), speed); } -+ // Paper start - optimise pathfinding ++ // Paper start - Perf: Optimise pathfinding + private int lastFailure = 0; + private int pathfindFailures = 0; -+ // Paper end ++ // Paper end - Perf: Optimise pathfinding + public boolean moveTo(Entity entity, double speed) { -+ // Paper start - Pathfinding optimizations ++ // Paper start - Perf: Optimise pathfinding + if (this.pathfindFailures > 10 && this.path == null && net.minecraft.server.MinecraftServer.currentTick < this.lastFailure + 40) { + return false; + } -+ // Paper end ++ // Paper end - Perf: Optimise pathfinding Path path = this.createPath(entity, 1); - return path != null && this.moveTo(path, speed); -+ // Paper start - Pathfinding optimizations ++ // Paper start - Perf: Optimise pathfinding + if (path != null && this.moveTo(path, speed)) { + this.lastFailure = 0; + this.pathfindFailures = 0; @@ -37,7 +37,7 @@ index 68edd488087a6ec1e65797cfbd4118bd0efbab50..b37415d45dda8e658c8995a4519e552d + this.lastFailure = net.minecraft.server.MinecraftServer.currentTick; + return false; + } -+ // Paper end ++ // Paper end - Perf: Optimise pathfinding } public boolean moveTo(@Nullable Path path, double speed) { diff --git a/patches/server/0364-Reduce-Either-Optional-allocation.patch b/patches/server/0364-Reduce-Either-Optional-allocation.patch index 1833cacdfe14..cafe54198d21 100644 --- a/patches/server/0364-Reduce-Either-Optional-allocation.patch +++ b/patches/server/0364-Reduce-Either-Optional-allocation.patch @@ -7,7 +7,7 @@ In order to get chunk values, we shouldn't need to create an optional each time. diff --git a/src/main/java/com/mojang/datafixers/util/Either.java b/src/main/java/com/mojang/datafixers/util/Either.java -index de524d485fada3c3cca8c2fe6c63db0e0b33dad8..6eb0c94965a6e96ec8ae112125e98c6c4809805b 100644 +index de524d485fada3c3cca8c2fe6c63db0e0b33dad8..a51e8e3eafff17f4f2ff790bf96a2f0e89abca2a 100644 --- a/src/main/java/com/mojang/datafixers/util/Either.java +++ b/src/main/java/com/mojang/datafixers/util/Either.java @@ -22,7 +22,7 @@ public abstract class Either implements App, L> { @@ -15,7 +15,7 @@ index de524d485fada3c3cca8c2fe6c63db0e0b33dad8..6eb0c94965a6e96ec8ae112125e98c6c private static final class Left extends Either { - private final L value; -+ private final L value; private Optional valueOptional; // Paper - reduce the optional allocation... ++ private final L value; private Optional valueOptional; // Paper - Perf: Reduce Either Optional allocation public Left(final L value) { this.value = value; @@ -24,7 +24,7 @@ index de524d485fada3c3cca8c2fe6c63db0e0b33dad8..6eb0c94965a6e96ec8ae112125e98c6c @Override public Optional left() { - return Optional.of(value); -+ return this.valueOptional == null ? this.valueOptional = Optional.of(this.value) : this.valueOptional; // Paper - reduce the optional allocation... ++ return this.valueOptional == null ? this.valueOptional = Optional.of(this.value) : this.valueOptional; // Paper - Perf: Reduce Either Optional allocation } @Override @@ -33,7 +33,7 @@ index de524d485fada3c3cca8c2fe6c63db0e0b33dad8..6eb0c94965a6e96ec8ae112125e98c6c private static final class Right extends Either { - private final R value; -+ private final R value; private Optional valueOptional; // Paper - reduce the optional allocation... ++ private final R value; private Optional valueOptional; // Paper - Perf: Reduce Either Optional allocation public Right(final R value) { this.value = value; @@ -42,7 +42,7 @@ index de524d485fada3c3cca8c2fe6c63db0e0b33dad8..6eb0c94965a6e96ec8ae112125e98c6c @Override public Optional right() { - return Optional.of(value); -+ return this.valueOptional == null ? this.valueOptional = Optional.of(this.value) : this.valueOptional; // Paper - reduce the optional allocation... ++ return this.valueOptional == null ? this.valueOptional = Optional.of(this.value) : this.valueOptional; // Paper - Perf: Reduce Either Optional allocation } @Override diff --git a/patches/server/0365-Reduce-memory-footprint-of-NBTTagCompound.patch b/patches/server/0365-Reduce-memory-footprint-of-CompoundTag.patch similarity index 83% rename from patches/server/0365-Reduce-memory-footprint-of-NBTTagCompound.patch rename to patches/server/0365-Reduce-memory-footprint-of-CompoundTag.patch index 691d9fdb4f67..c714de8792af 100644 --- a/patches/server/0365-Reduce-memory-footprint-of-NBTTagCompound.patch +++ b/patches/server/0365-Reduce-memory-footprint-of-CompoundTag.patch @@ -1,14 +1,14 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Mon, 6 Apr 2020 17:39:25 -0700 -Subject: [PATCH] Reduce memory footprint of NBTTagCompound +Subject: [PATCH] Reduce memory footprint of CompoundTag Fastutil maps are going to have a lower memory footprint - which is important because we clone chunk data after reading it for safety. So, reduce the impact of the clone on GC. diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java -index c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b..135530bc9d7ecd0348ace6474f4ca6d2e1bad283 100644 +index c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b..2c760084cd1b84a1f2c4f6a6db8d396a1b3c5395 100644 --- a/src/main/java/net/minecraft/nbt/CompoundTag.java +++ b/src/main/java/net/minecraft/nbt/CompoundTag.java @@ -50,7 +50,7 @@ public class CompoundTag implements Tag { @@ -16,7 +16,7 @@ index c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b..135530bc9d7ecd0348ace6474f4ca6d2 private static CompoundTag loadCompound(DataInput input, NbtAccounter tracker) throws IOException { tracker.accountBytes(48L); - Map map = Maps.newHashMap(); -+ it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap map = new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(8, 0.8f); // Paper - reduce memory footprint of NBTTagCompound ++ it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap map = new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(8, 0.8f); // Paper - Reduce memory footprint of CompoundTag byte b; while((b = input.readByte()) != 0) { @@ -25,7 +25,7 @@ index c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b..135530bc9d7ecd0348ace6474f4ca6d2 public CompoundTag() { - this(Maps.newHashMap()); -+ this(new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(8, 0.8f)); // Paper - reduce memory footprint of NBTTagCompound ++ this(new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(8, 0.8f)); // Paper - Reduce memory footprint of CompoundTag } @Override @@ -35,7 +35,7 @@ index c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b..135530bc9d7ecd0348ace6474f4ca6d2 public CompoundTag copy() { - Map map = Maps.newHashMap(Maps.transformValues(this.tags, Tag::copy)); - return new CompoundTag(map); -+ // Paper start - reduce memory footprint of NBTTagCompound ++ // Paper start - Reduce memory footprint of CompoundTag + it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap ret = new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(this.tags.size(), 0.8f); + java.util.Iterator> iterator = (this.tags instanceof it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap) ? ((it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap)this.tags).object2ObjectEntrySet().fastIterator() : this.tags.entrySet().iterator(); + while (iterator.hasNext()) { @@ -44,7 +44,7 @@ index c77a6bb6885ffaaa4d9e1aa9d4770d5e847a590b..135530bc9d7ecd0348ace6474f4ca6d2 + } + + return new CompoundTag(ret); -+ // Paper end - reduce memory footprint of NBTTagCompound ++ // Paper end - Reduce memory footprint of CompoundTag } @Override diff --git a/patches/server/0366-Prevent-opening-inventories-when-frozen.patch b/patches/server/0366-Prevent-opening-inventories-when-frozen.patch index f6702d49e475..0b9ec25c075d 100644 --- a/patches/server/0366-Prevent-opening-inventories-when-frozen.patch +++ b/patches/server/0366-Prevent-opening-inventories-when-frozen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent opening inventories when frozen diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3738680d935695930be19cdc18478c62ccb93d3a..f0dd4bd0fd71c90577a5b42a803007de8e97d344 100644 +index e8470f0cc918ae20caa9aa4de7a81edf31f2f556..f84be7bff9c054baf5ce0c0183ec986c7d30c352 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -701,7 +701,7 @@ public class ServerPlayer extends Player { @@ -13,7 +13,7 @@ index 3738680d935695930be19cdc18478c62ccb93d3a..f0dd4bd0fd71c90577a5b42a803007de } // Paper end - if (!this.level().isClientSide && !this.containerMenu.stillValid(this)) { -+ if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - auto close while frozen ++ if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - Prevent opening inventories when frozen this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper this.containerMenu = this.inventoryMenu; } @@ -22,12 +22,12 @@ index 3738680d935695930be19cdc18478c62ccb93d3a..f0dd4bd0fd71c90577a5b42a803007de // CraftBukkit start this.containerMenu = container; - this.connection.send(new ClientboundOpenScreenPacket(container.containerId, container.getType(), container.getTitle())); -+ if (!this.isImmobile()) this.connection.send(new ClientboundOpenScreenPacket(container.containerId, container.getType(), container.getTitle())); // Paper ++ if (!this.isImmobile()) this.connection.send(new ClientboundOpenScreenPacket(container.containerId, container.getType(), container.getTitle())); // Paper - Prevent opening inventories when frozen // CraftBukkit end this.initMenu(container); return OptionalInt.of(this.containerCounter); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 0d07501bb9e8721771f5c3fd099f022e41a54337..fa585b6bf914362a7f9e55a20e78811519353608 100644 +index 0d07501bb9e8721771f5c3fd099f022e41a54337..0effc7dfe2c1f2bad7bd00b6a615497d4aa0ba91 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -325,7 +325,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -35,7 +35,7 @@ index 0d07501bb9e8721771f5c3fd099f022e41a54337..fa585b6bf914362a7f9e55a20e788115 //player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment - player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper -+ if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper ++ if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper - Prevent opening inventories when frozen player.containerMenu = container; player.initMenu(container); } @@ -44,7 +44,7 @@ index 0d07501bb9e8721771f5c3fd099f022e41a54337..fa585b6bf914362a7f9e55a20e788115 if (adventure$title == null) adventure$title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(inventory.getTitle()); // Paper //player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment - player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper -+ if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper ++ if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper - Prevent opening inventories when frozen player.containerMenu = container; player.initMenu(container); } diff --git a/patches/server/0367-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0367-Don-t-run-entity-collision-code-if-not-needed.patch index 36a11c3c1f20..5351a728aafb 100644 --- a/patches/server/0367-Don-t-run-entity-collision-code-if-not-needed.patch +++ b/patches/server/0367-Don-t-run-entity-collision-code-if-not-needed.patch @@ -12,7 +12,7 @@ The entity's current team collision rule causes them to NEVER collide. Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f9e2d3cba01fcf39bc29dc8b5b5879ddc3add0e5..0f364937ee7caa0496cfff1f9e5692d83a4dcd97 100644 +index f9e2d3cba01fcf39bc29dc8b5b5879ddc3add0e5..cf946ea3367b7b7656343b48bf8140efc38d07a2 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3398,10 +3398,24 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -37,7 +37,7 @@ index f9e2d3cba01fcf39bc29dc8b5b5879ddc3add0e5..0f364937ee7caa0496cfff1f9e5692d8 if (!list.isEmpty()) { - int i = this.level().getGameRules().getInt(GameRules.RULE_MAX_ENTITY_CRAMMING); -+ // Paper - moved up ++ // Paper - don't run getEntities if we're not going to use its result; moved up if (i > 0 && list.size() > i - 1 && this.random.nextInt(4) == 0) { int j = 0; diff --git a/patches/server/0368-Implement-Player-Client-Options-API.patch b/patches/server/0368-Implement-Player-Client-Options-API.patch index bad37099c083..385a131978b9 100644 --- a/patches/server/0368-Implement-Player-Client-Options-API.patch +++ b/patches/server/0368-Implement-Player-Client-Options-API.patch @@ -87,13 +87,13 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f0dd4bd0fd71c90577a5b42a803007de8e97d344..37af010c2af4b485d19bbf5fef978d6347054c83 100644 +index f84be7bff9c054baf5ce0c0183ec986c7d30c352..cb137fe3aaa14fd4862baa0444bc62d818cf9509 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -386,7 +386,7 @@ public class ServerPlayer extends Player { this.advancements = server.getPlayerList().getPlayerAdvancements(this); this.setMaxUpStep(1.0F); - // this.fudgeSpawnLocation(world); // Paper - don't move to spawn on login, only first join + // this.fudgeSpawnLocation(world); // Paper - Don't move existing players to world spawn - this.updateOptions(clientOptions); + this.updateOptionsNoEvents(clientOptions); // Paper - don't call options events on login diff --git a/patches/server/0369-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/patches/server/0369-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch index e5cdd1f624e2..fdccb382267f 100644 --- a/patches/server/0369-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch +++ b/patches/server/0369-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Don't crash if player is attempted to be removed from I suspect it deals with teleporting as it uses players current x/y/z diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java -index b01006ade4750f60ceba951812bbc6e2ca04bf9c..33b0be8eb9bff8068ca7bdeffe34b7f2eaa6dbfb 100644 +index 36686a92bd7dc0e29049f72c0e953ff56c2645eb..c80a625f7289e3bb33c6851d2072957e153ca1fb 100644 --- a/src/main/java/net/minecraft/server/level/DistanceManager.java +++ b/src/main/java/net/minecraft/server/level/DistanceManager.java @@ -146,8 +146,8 @@ public abstract class DistanceManager { @@ -16,7 +16,7 @@ index b01006ade4750f60ceba951812bbc6e2ca04bf9c..33b0be8eb9bff8068ca7bdeffe34b7f2 - objectset.remove(player); - if (objectset.isEmpty()) { -+ if (objectset != null) objectset.remove(player); // Paper - some state corruption happens here, don't crash, clean up gracefully. ++ if (objectset != null) objectset.remove(player); // Paper - some state corruption happens here, don't crash, clean up gracefully + if (objectset == null || objectset.isEmpty()) { // Paper this.playersPerChunk.remove(i); this.naturalSpawnChunkCounter.update(i, Integer.MAX_VALUE, false); diff --git a/patches/server/0370-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch b/patches/server/0370-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch similarity index 74% rename from patches/server/0370-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch rename to patches/server/0370-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch index 40f07de9715a..f60e83e579d2 100644 --- a/patches/server/0370-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch +++ b/patches/server/0370-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 19 Apr 2020 00:05:46 -0400 -Subject: [PATCH] Fix Longstanding Broken behavior of PlayerJoinEvent +Subject: [PATCH] Fire PlayerJoinEvent when Player is actually ready For years, plugin developers have had to delay many things they do inside of the PlayerJoinEvent by 1 tick to make it actually work. @@ -31,43 +31,43 @@ delays anymore. public net.minecraft.server.level.ChunkMap addEntity(Lnet/minecraft/world/entity/Entity;)V diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 876200db872bce89976329c4d6c6fbe9fd155f24..2db3236bc9d676c86b0af38bd4bfaf9d3332c250 100644 +index 3b7a82761682e29fb42f683b232c789c522b632e..cafc332e5828e53999210b06980c4bdb09d5cedb 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -999,6 +999,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - + ": " + entity + (this.entityMap.containsKey(entity.getId()) ? " ALREADY CONTAINED (This would have crashed your server)" : ""), new Throwable()); +@@ -1000,6 +1000,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return; } -+ if (entity instanceof ServerPlayer && ((ServerPlayer) entity).supressTrackerForLogin) return; // Delay adding to tracker until after list packets - // Paper end + // Paper end - ignore and warn about illegal addEntity calls instead of crashing server ++ if (entity instanceof ServerPlayer && ((ServerPlayer) entity).supressTrackerForLogin) return; // Paper - Fire PlayerJoinEvent when Player is actually ready; Delay adding to tracker until after list packets if (!(entity instanceof EnderDragonPart)) { EntityType entitytypes = entity.getType(); + int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 37af010c2af4b485d19bbf5fef978d6347054c83..71068a285ff039b609f4551d522481f2dff8235e 100644 +index cb137fe3aaa14fd4862baa0444bc62d818cf9509..32b41d88af7565665a19663227475d984cbfd7b2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -271,6 +271,7 @@ public class ServerPlayer extends Player { public double maxHealthCache; public boolean joining = true; public boolean sentListPacket = false; -+ public boolean supressTrackerForLogin = false; // Paper ++ public boolean supressTrackerForLogin = false; // Paper - Fire PlayerJoinEvent when Player is actually ready public String kickLeaveMessage = null; // SPIGOT-3034: Forward leave message to PlayerQuitEvent // CraftBukkit end public boolean isRealPlayer; // Paper diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8c9dcd895f73765327ac00d7cc706b6ae8b9d81f..66a39d00c23bf6bced8ea9c177d84d1409cd2c11 100644 +index 077ae008b817d38082a068f4bbd76181510403bf..ffdd5b7417bb748ee5e8ad4d126bf3489c5d32ed 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -295,6 +295,12 @@ public abstract class PlayerList { this.playersByUUID.put(player.getUUID(), player); // this.broadcastAll(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(entityplayer))); // CraftBukkit - replaced with loop below -+ // Paper start - correctly register player BEFORE PlayerJoinEvent, so the entity is valid and doesn't require tick delay hacks ++ // Paper start - Fire PlayerJoinEvent when Player is actually ready; correctly register player BEFORE PlayerJoinEvent, so the entity is valid and doesn't require tick delay hacks + player.supressTrackerForLogin = true; + worldserver1.addNewPlayer(player); + this.server.getCustomBossEvents().onPlayerConnect(player); // see commented out section below worldserver.addPlayerJoin(entityplayer); + mountSavedVehicle(player, worldserver1, nbttagcompound); -+ // Paper end ++ // Paper end - Fire PlayerJoinEvent when Player is actually ready // CraftBukkit start CraftPlayer bukkitPlayer = player.getBukkitEntity(); @@ -75,8 +75,8 @@ index 8c9dcd895f73765327ac00d7cc706b6ae8b9d81f..66a39d00c23bf6bced8ea9c177d84d14 player.connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(entityplayer1))); } player.sentListPacket = true; -+ player.supressTrackerForLogin = false; // Paper -+ ((ServerLevel)player.level()).getChunkSource().chunkMap.addEntity(player); // Paper - track entity now ++ player.supressTrackerForLogin = false; // Paper - Fire PlayerJoinEvent when Player is actually ready ++ ((ServerLevel)player.level()).getChunkSource().chunkMap.addEntity(player); // Paper - Fire PlayerJoinEvent when Player is actually ready; track entity now // CraftBukkit end player.getEntityData().refresh(player); // CraftBukkit - BungeeCord#2321, send complete data to self on spawn @@ -84,11 +84,11 @@ index 8c9dcd895f73765327ac00d7cc706b6ae8b9d81f..66a39d00c23bf6bced8ea9c177d84d14 playerconnection.send(new ClientboundUpdateMobEffectPacket(player.getId(), mobeffect)); } -+ // Paper start - move vehicle into method so it can be called above - short circuit around that code ++ // Paper start - Fire PlayerJoinEvent when Player is actually ready; move vehicle into method so it can be called above - short circuit around that code + onPlayerJoinFinish(player, worldserver1, s1); + } + private void mountSavedVehicle(ServerPlayer player, ServerLevel worldserver1, CompoundTag nbttagcompound) { -+ // Paper end ++ // Paper end - Fire PlayerJoinEvent when Player is actually ready if (nbttagcompound != null && nbttagcompound.contains("RootVehicle", 10)) { CompoundTag nbttagcompound1 = nbttagcompound.getCompound("RootVehicle"); // CraftBukkit start @@ -96,10 +96,10 @@ index 8c9dcd895f73765327ac00d7cc706b6ae8b9d81f..66a39d00c23bf6bced8ea9c177d84d14 } } -+ // Paper start ++ // Paper start - Fire PlayerJoinEvent when Player is actually ready + } + public void onPlayerJoinFinish(ServerPlayer player, ServerLevel worldserver1, String s1) { -+ // Paper end ++ // Paper end - Fire PlayerJoinEvent when Player is actually ready player.initInventoryMenu(); // CraftBukkit - Moved from above, added world // Paper start - Add to collideRule team if needed diff --git a/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch index a80ab4fdbf4e..b2bba66ea450 100644 --- a/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch +++ b/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch @@ -10,7 +10,7 @@ Co-authored-by: Wyatt Childers Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 66a39d00c23bf6bced8ea9c177d84d1409cd2c11..5c5d1e387ea00a17db99b3ef1f68eede01b09789 100644 +index ffdd5b7417bb748ee5e8ad4d126bf3489c5d32ed..538ba950d194ec823443d1bdaf38a32eddf85df7 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -194,7 +194,7 @@ public abstract class PlayerList { @@ -79,11 +79,11 @@ index 66a39d00c23bf6bced8ea9c177d84d1409cd2c11..5c5d1e387ea00a17db99b3ef1f68eede // Paper start if (nbttagcompound == null) { player.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; // set Player SpawnReason to DEFAULT on first login -+ // Paper start - reset to main world spawn if first spawn or invalid world ++ // Paper start - reset to main world spawn if first spawn or invalid world + } + if (nbttagcompound == null || invalidPlayerWorld) { -+ // Paper end - player.fudgeSpawnLocation(worldserver1); // only move to spawn on first login, otherwise, stay where you are.... ++ // Paper end - reset to main world spawn if first spawn or invalid world + player.fudgeSpawnLocation(worldserver1); // Paper - Don't move existing players to world spawn } // Paper end diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/patches/server/0372-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0372-Add-PlayerAttackEntityCooldownResetEvent.patch index 63d51833e108..e25e7d250726 100644 --- a/patches/server/0372-Add-PlayerAttackEntityCooldownResetEvent.patch +++ b/patches/server/0372-Add-PlayerAttackEntityCooldownResetEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerAttackEntityCooldownResetEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0f364937ee7caa0496cfff1f9e5692d83a4dcd97..a4b1066bbb36cce7505e5e6dc033b0266ce85974 100644 +index cf946ea3367b7b7656343b48bf8140efc38d07a2..d3bb5a6ee350043e7f5c173b9496c1d71b3957b1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2190,7 +2190,16 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -22,7 +22,7 @@ index 0f364937ee7caa0496cfff1f9e5692d83a4dcd97..a4b1066bbb36cce7505e5e6dc033b026 + } else { + ((net.minecraft.world.entity.player.Player) damagesource.getEntity()).resetAttackStrengthTicker(); + } -+ // Paper end ++ // Paper end - PlayerAttackEntityCooldownResetEvent } if (event.isCancelled()) { return false; diff --git a/patches/server/0373-Don-t-fire-BlockFade-on-worldgen-threads.patch b/patches/server/0373-Don-t-fire-BlockFade-on-worldgen-threads.patch index 2d41b1259cd7..833140ffaae1 100644 --- a/patches/server/0373-Don-t-fire-BlockFade-on-worldgen-threads.patch +++ b/patches/server/0373-Don-t-fire-BlockFade-on-worldgen-threads.patch @@ -3,10 +3,9 @@ From: Aikar Date: Thu, 23 Apr 2020 01:36:39 -0400 Subject: [PATCH] Don't fire BlockFade on worldgen threads -Caused a deadlock diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index 80e90bae3c05bbaf978a66629d9c4132c22efd1a..8fce3ad36a6ee8166f4abd9e0e369b641d487af9 100644 +index 80e90bae3c05bbaf978a66629d9c4132c22efd1a..a447231db1362ebda706d6069a92be4ead196c21 100644 --- a/src/main/java/net/minecraft/world/level/block/FireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java @@ -108,6 +108,7 @@ public class FireBlock extends BaseFireBlock { @@ -22,7 +21,7 @@ index 80e90bae3c05bbaf978a66629d9c4132c22efd1a..8fce3ad36a6ee8166f4abd9e0e369b64 } } - return this.getStateWithAge(world, pos, (Integer) state.getValue(FireBlock.AGE)); -+ return this.getStateWithAge(world, pos, (Integer) state.getValue(FireBlock.AGE)); // Paper - diff on change, see "don't fire events in world generation" ++ return this.getStateWithAge(world, pos, (Integer) state.getValue(FireBlock.AGE)); // Paper - don't fire events in world generation; diff on change, see "don't fire events in world generation" // CraftBukkit end } diff --git a/patches/server/0374-Add-phantom-creative-and-insomniac-controls.patch b/patches/server/0374-Add-phantom-creative-and-insomniac-controls.patch index 47e6a4674622..5a377dbb7fdb 100644 --- a/patches/server/0374-Add-phantom-creative-and-insomniac-controls.patch +++ b/patches/server/0374-Add-phantom-creative-and-insomniac-controls.patch @@ -5,31 +5,31 @@ Subject: [PATCH] Add phantom creative and insomniac controls diff --git a/src/main/java/net/minecraft/world/entity/EntitySelector.java b/src/main/java/net/minecraft/world/entity/EntitySelector.java -index 170fbb1d80947b9b21c2106497baae5c37bcdc0c..68e4440765636295a74ea942862d772d47282ad6 100644 +index 170fbb1d80947b9b21c2106497baae5c37bcdc0c..c9c7833755af3c7bef1d40f2ca425cbec59efa68 100644 --- a/src/main/java/net/minecraft/world/entity/EntitySelector.java +++ b/src/main/java/net/minecraft/world/entity/EntitySelector.java @@ -28,6 +28,7 @@ public final class EntitySelector { return !entity.isSpectator(); }; public static final Predicate CAN_BE_COLLIDED_WITH = EntitySelector.NO_SPECTATORS.and(Entity::canBeCollidedWith); -+ public static Predicate IS_INSOMNIAC = (player) -> net.minecraft.util.Mth.clamp(((net.minecraft.server.level.ServerPlayer) player).getStats().getValue(net.minecraft.stats.Stats.CUSTOM.get(net.minecraft.stats.Stats.TIME_SINCE_REST)), 1, Integer.MAX_VALUE) >= 72000; // Paper ++ public static Predicate IS_INSOMNIAC = (player) -> net.minecraft.util.Mth.clamp(((net.minecraft.server.level.ServerPlayer) player).getStats().getValue(net.minecraft.stats.Stats.CUSTOM.get(net.minecraft.stats.Stats.TIME_SINCE_REST)), 1, Integer.MAX_VALUE) >= 72000; // Paper - Add phantom creative and insomniac controls private EntitySelector() {} // Paper start diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 658393f451e46a93c5665fe3c580aa395ace68d1..a40852acf5d175cc3a06bc17fb021c76f0c11a28 100644 +index 658393f451e46a93c5665fe3c580aa395ace68d1..ea980c2fdf01988ba25bffc7f8963d775101bee1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -568,6 +568,7 @@ public class Phantom extends FlyingMob implements Enemy { Player entityhuman = (Player) iterator.next(); if (Phantom.this.canAttack(entityhuman, TargetingConditions.DEFAULT)) { -+ if (!level().paperConfig().entities.behavior.phantomsOnlyAttackInsomniacs || EntitySelector.IS_INSOMNIAC.test(entityhuman)) // Paper ++ if (!level().paperConfig().entities.behavior.phantomsOnlyAttackInsomniacs || EntitySelector.IS_INSOMNIAC.test(entityhuman)) // Paper - Add phantom creative and insomniac controls Phantom.this.setTarget(entityhuman, org.bukkit.event.entity.EntityTargetEvent.TargetReason.CLOSEST_PLAYER, true); // CraftBukkit - reason return true; } diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java -index 94ee9c399f59e0198b4d9bc2a4255e8b821bcd36..b1fc786970b5288a02cc3a46e3fe7784ac566c07 100644 +index 94ee9c399f59e0198b4d9bc2a4255e8b821bcd36..8c9caa324402568ce9f55e733f4d14430159347a 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java @@ -49,7 +49,7 @@ public class PhantomSpawner implements CustomSpawner { @@ -37,7 +37,7 @@ index 94ee9c399f59e0198b4d9bc2a4255e8b821bcd36..b1fc786970b5288a02cc3a46e3fe7784 ServerPlayer entityplayer = (ServerPlayer) iterator.next(); - if (!entityplayer.isSpectator()) { -+ if (!entityplayer.isSpectator() && (!world.paperConfig().entities.behavior.phantomsDoNotSpawnOnCreativePlayers || !entityplayer.isCreative())) { // Paper ++ if (!entityplayer.isSpectator() && (!world.paperConfig().entities.behavior.phantomsDoNotSpawnOnCreativePlayers || !entityplayer.isCreative())) { // Paper - Add phantom creative and insomniac controls BlockPos blockposition = entityplayer.blockPosition(); if (!world.dimensionType().hasSkyLight() || blockposition.getY() >= world.getSeaLevel() && world.canSeeSky(blockposition)) { diff --git a/patches/server/0375-Fix-numerous-item-duplication-issues-and-teleport-is.patch b/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch similarity index 92% rename from patches/server/0375-Fix-numerous-item-duplication-issues-and-teleport-is.patch rename to patches/server/0375-Fix-item-duplication-and-teleport-issues.patch index e18ab6411f08..265b5f87266a 100644 --- a/patches/server/0375-Fix-numerous-item-duplication-issues-and-teleport-is.patch +++ b/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 25 Apr 2020 06:46:35 -0400 -Subject: [PATCH] Fix numerous item duplication issues and teleport issues +Subject: [PATCH] Fix item duplication and teleport issues This notably fixes the newest "Donkey Dupe", but also fixes a lot of dupe bugs in general around nether portals and entity world transfer @@ -16,7 +16,7 @@ So even if something NEW comes up, it would be impossible to drop the same item twice because the source was destroyed. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b2dc3729a8312179d219bd93a755729c86f4dece..88632cf1baea828f6442ac37b8c13a3356445fe3 100644 +index b2dc3729a8312179d219bd93a755729c86f4dece..d13759736cf802cae56e68c11f09f15e1e08d09c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2467,11 +2467,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -38,12 +38,12 @@ index b2dc3729a8312179d219bd93a755729c86f4dece..88632cf1baea828f6442ac37b8c13a33 @Nullable public Entity teleportTo(ServerLevel worldserver, Vec3 location) { // CraftBukkit end -+ // Paper start - fix bad state entities causing dupes ++ // Paper start - Fix item duplication and teleport issues + if (!this.isAlive() || !this.valid) { + LOGGER.warn("Illegal Entity Teleport " + this + " to " + worldserver + ":" + location, new Throwable()); + return null; + } -+ // Paper end ++ // Paper end - Fix item duplication and teleport issues if (this.level() instanceof ServerLevel && !this.isRemoved()) { this.level().getProfiler().push("changeDimension"); // CraftBukkit start @@ -51,11 +51,11 @@ index b2dc3729a8312179d219bd93a755729c86f4dece..88632cf1baea828f6442ac37b8c13a33 // CraftBukkit end this.level().getProfiler().popPush("reloading"); -+ // Paper start - Change lead drop timing to prevent dupe ++ // Paper start - Fix item duplication and teleport issues + if (this instanceof Mob) { + ((Mob) this).dropLeash(true, true); // Paper drop lead + } -+ // Paper end ++ // Paper end - Fix item duplication and teleport issues Entity entity = this.getType().create(worldserver); if (entity != null) { @@ -75,12 +75,12 @@ index b2dc3729a8312179d219bd93a755729c86f4dece..88632cf1baea828f6442ac37b8c13a33 public boolean canChangeDimensions() { - return !this.isPassenger() && !this.isVehicle(); -+ return !this.isPassenger() && !this.isVehicle() && isAlive() && valid; // Paper ++ return !this.isPassenger() && !this.isVehicle() && isAlive() && valid; // Paper - Fix item duplication and teleport issues } public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a4b1066bbb36cce7505e5e6dc033b0266ce85974..2fa60d96da53ca954dc1421745fafaeb2e806ed0 100644 +index d3bb5a6ee350043e7f5c173b9496c1d71b3957b1..0af0b62a4bd9b3c027a5a608b81831864d54fd11 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1705,9 +1705,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -90,7 +90,7 @@ index a4b1066bbb36cce7505e5e6dc033b0266ce85974..2fa60d96da53ca954dc1421745fafaeb - if (this.deathScore >= 0 && entityliving != null) { - entityliving.awardKillScore(this, this.deathScore, damageSource); - } -+ // if (this.deathScore >= 0 && entityliving != null) { // Paper moved to be run earlier in #dropAllDeathLoot before destroying the drop items in CraftEventFactory#callEntityDeathEvent ++ // if (this.deathScore >= 0 && entityliving != null) { // Paper - Fix item duplication and teleport issues; moved to be run earlier in #dropAllDeathLoot before destroying the drop items in CraftEventFactory#callEntityDeathEvent + // entityliving.awardKillScore(this, this.deathScore, damageSource); + // } // Paper start - clear equipment if event is not cancelled diff --git a/patches/server/0377-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0377-Validate-PickItem-Packet-and-kick-for-invalid.patch index 9010a829f854..28e4d939a3cf 100644 --- a/patches/server/0377-Validate-PickItem-Packet-and-kick-for-invalid.patch +++ b/patches/server/0377-Validate-PickItem-Packet-and-kick-for-invalid.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 00fa6126ca51b6ffdb46b59f07725ffdcca9f20a..a6d72d4ace089c76deb87ade48194ccd0517bee0 100644 +index 00fa6126ca51b6ffdb46b59f07725ffdcca9f20a..18c8dc09b75dbaff13a3cf7ba8594c49ed168c45 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -867,7 +867,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -20,7 +20,7 @@ index 00fa6126ca51b6ffdb46b59f07725ffdcca9f20a..a6d72d4ace089c76deb87ade48194ccd + return; + } + this.player.getInventory().pickSlot(packet.getSlot()); // Paper - Diff above if changed -+ // Paper end ++ // Paper end - validate pick item position this.player.connection.send(new ClientboundContainerSetSlotPacket(-2, 0, this.player.getInventory().selected, this.player.getInventory().getItem(this.player.getInventory().selected))); this.player.connection.send(new ClientboundContainerSetSlotPacket(-2, 0, packet.getSlot(), this.player.getInventory().getItem(packet.getSlot()))); this.player.connection.send(new ClientboundSetCarriedItemPacket(this.player.getInventory().selected)); diff --git a/patches/server/0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/patches/server/0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch index cdc77436975e..7a21f2b2156f 100644 --- a/patches/server/0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch +++ b/patches/server/0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch @@ -17,14 +17,14 @@ keeping long lived large direct buffers in cache. Set system properly at server startup if not set already to help protect from this. diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index fa9c17c49a17b8325a7510316de89e3ff3b6f1cf..37faa5ce82ae9ca2893250d86cc2eb21c00cc81f 100644 +index 787dc5702bce3b5171f834ad3177013ac684be72..01b616143562d41aeba7f1340e0affa21d0655b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -26,6 +26,7 @@ public class Main { } // Paper end // Todo: Installation script -+ if (System.getProperty("jdk.nio.maxCachedBufferSize") == null) System.setProperty("jdk.nio.maxCachedBufferSize", "262144"); // Paper - cap per-thread NIO cache size ++ if (System.getProperty("jdk.nio.maxCachedBufferSize") == null) System.setProperty("jdk.nio.maxCachedBufferSize", "262144"); // Paper - cap per-thread NIO cache size; https://www.evanjones.ca/java-bytebuffer-leak.html OptionParser parser = new OptionParser() { { this.acceptsAll(Main.asList("?", "help"), "Show the help"); diff --git a/patches/server/0381-misc-debugging-dumps.patch b/patches/server/0381-misc-debugging-dumps.patch index 8fda4d258f2d..ac8206b2e87a 100644 --- a/patches/server/0381-misc-debugging-dumps.patch +++ b/patches/server/0381-misc-debugging-dumps.patch @@ -29,7 +29,7 @@ index 0000000000000000000000000000000000000000..2d5494d2813b773e60ddba6790b750a9 + } +} diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index b27256d251e5db5781197319f79f89cc7638c80b..337ff2b3e8ea6f106656cf4bef029d81998e0e58 100644 +index b27256d251e5db5781197319f79f89cc7638c80b..043541d0c93ed7c06c2c01fe6065dd57dd4c0916 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -341,7 +341,7 @@ public class Commands { @@ -37,19 +37,19 @@ index b27256d251e5db5781197319f79f89cc7638c80b..337ff2b3e8ea6f106656cf4bef029d81 MutableComponent ichatmutablecomponent = Component.literal(exception.getMessage() == null ? exception.getClass().getName() : exception.getMessage()); - if (Commands.LOGGER.isDebugEnabled()) { -+ if (commandlistenerwrapper.getServer().isDebugging() || Commands.LOGGER.isDebugEnabled()) { // Paper ++ if (commandlistenerwrapper.getServer().isDebugging() || Commands.LOGGER.isDebugEnabled()) { // Paper - Debugging Commands.LOGGER.error("Command exception: /{}", s, exception); StackTraceElement[] astacktraceelement = exception.getStackTrace(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9a25d351df1141e9218d37c0f90e2d67f9c8c3ef..eab8da0689dcb159cb54b418804e86b6364273fb 100644 +index 3f33f6764665e79433226ebe495bf4cfa8100123..b61dd9730ed56fc0c1a10f9c4e0a9630bb668206 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -918,6 +918,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop set) { // Paper -+ // Paper start ++ // Paper start - Prevent teleporting dead entities + if (player.isRemoved()) { + LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName()); + if (server.isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Attempt to teleport removed player"); + return; + } -+ // Paper end ++ // Paper end - Prevent teleporting dead entities // CraftBukkit start if (Float.isNaN(f)) { f = 0; diff --git a/patches/server/0383-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0383-Deobfuscate-stacktraces-in-log-messages-crash-report.patch index 0343b8f952f9..582d9f7ef8bf 100644 --- a/patches/server/0383-Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/0383-Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -557,7 +557,7 @@ index c9cca6ba3500791485bf19155156c38c24f1c761..684e9e9d78f0d410176fa8b9c9d0fbfd this.paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1c0d2aad70b3817913e93354ccc055b82ae321bc..51379dc93af2eaa3294179debe067d62627b60e1 100644 +index 46101e6bef0f81968cb194303e19e437a3417733..1bab7d1c76a087e5bd22d7adbee5e065e8e2241e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -222,7 +222,9 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -581,17 +581,17 @@ index 1c0d2aad70b3817913e93354ccc055b82ae321bc..51379dc93af2eaa3294179debe067d62 } // Paper end diff --git a/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java -index e48b287d6229f8043fba8a417f0b7558d6079783..cae10b963d153fb1777b18054796a45b2809342b 100644 +index d130f843975236018df4fa2ccc3ca6aaca7a06b8..76f31845fe50200d09e5ab6a6c08da00444414ad 100644 --- a/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java @@ -133,7 +133,7 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis ServerConfigurationPacketListenerImpl.LOGGER.error("Couldn't place player in world", exception); - // Paper start + // Paper start - Debugging if (MinecraftServer.getServer().isDebugging()) { - exception.printStackTrace(); + io.papermc.paper.util.TraceUtil.printStackTrace(exception); } - // Paper end + // Paper end - Debugging this.connection.send(new ClientboundDisconnectPacket(ServerConfigurationPacketListenerImpl.DISCONNECT_REASON_INVALID_DATA)); diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java index caeead6c6082855f1651ee28263cc9f60423ca0c..b2bfb3893200362ac35ae60982f203f86a1148ec 100644 diff --git a/patches/server/0384-Implement-Mob-Goal-API.patch b/patches/server/0384-Implement-Mob-Goal-API.patch index 46c638806357..e5f9766f2ece 100644 --- a/patches/server/0384-Implement-Mob-Goal-API.patch +++ b/patches/server/0384-Implement-Mob-Goal-API.patch @@ -744,20 +744,20 @@ index 0000000000000000000000000000000000000000..0d30e0b21b9024df939a9d070bd4a99b + } +} diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java -index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..3f081183521603824430709886a9cc313c28e7cb 100644 +index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..b0ee4fbd4a52e30a9dff4179aa0fbf62ee1767ad 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java @@ -7,6 +7,14 @@ public abstract class Goal { private final EnumSet flags = EnumSet.noneOf(Goal.Flag.class); // Paper unused, but dummy to prevent plugins from crashing as hard. Theyll need to support paper in a special case if this is super important, but really doesn't seem like it would be. private final com.destroystokyo.paper.util.set.OptimizedSmallEnumSet goalTypes = new com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<>(Goal.Flag.class); // Paper - remove streams from pathfindergoalselector -+ // Paper start make sure goaltypes is never empty ++ // Paper start - Mob goal API; make sure goaltypes is never empty + public Goal() { + if (this.goalTypes.size() == 0) { + this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR); + } + } -+ // Paper end ++ // Paper end - Mob goal API + public abstract boolean canUse(); @@ -777,7 +777,7 @@ index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..3f081183521603824430709886a9cc31 return Mth.positiveCeilDiv(serverTicks, 2); } -+ // Paper start - mob goal api ++ // Paper start - Mob goal api + private com.destroystokyo.paper.entity.ai.PaperVanillaGoal vanillaGoal = null; + public com.destroystokyo.paper.entity.ai.Goal asPaperVanillaGoal() { + if(this.vanillaGoal == null) { @@ -786,7 +786,7 @@ index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..3f081183521603824430709886a9cc31 + //noinspection unchecked + return (com.destroystokyo.paper.entity.ai.Goal) this.vanillaGoal; + } -+ // Paper end - mob goal api ++ // Paper end - Mob goal api + public static enum Flag { + UNKNOWN_BEHAVIOR, // Paper - add UNKNOWN_BEHAVIOR @@ -794,7 +794,7 @@ index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..3f081183521603824430709886a9cc31 LOOK, JUMP, diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2d799bd4903113e35acfc7068996a85ddf3d119e..1931e33d8a187a5adbd4fa9591f681ee6adc5cc3 100644 +index 2333858596a76ff8dddb014f31ad2a3d7e926baf..6fd94e54abe92b1a081591a64af8da09b9303d08 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2881,5 +2881,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0385-Add-villager-reputation-API.patch b/patches/server/0385-Add-villager-reputation-API.patch index 95494c8d0963..04891189ff2b 100644 --- a/patches/server/0385-Add-villager-reputation-API.patch +++ b/patches/server/0385-Add-villager-reputation-API.patch @@ -9,7 +9,7 @@ public net.minecraft.world.entity.ai.gossip.GossipContainer$EntityGossips public net.minecraft.world.entity.ai.gossip.GossipContainer gossips diff --git a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java -index a28f359202e6502c6ea5e9c918ec0b3e9a3fca61..76dffb2705e5207db96895f82f1c7c5638f817c6 100644 +index a28f359202e6502c6ea5e9c918ec0b3e9a3fca61..f1e717dc8320a00c0cc0ff53d97b74e7c1e109fe 100644 --- a/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java +++ b/src/main/java/net/minecraft/world/entity/ai/gossip/GossipContainer.java @@ -231,6 +231,43 @@ public class GossipContainer { @@ -52,7 +52,7 @@ index a28f359202e6502c6ea5e9c918ec0b3e9a3fca61..76dffb2705e5207db96895f82f1c7c56 + case TRADING -> com.destroystokyo.paper.entity.villager.ReputationType.TRADING; + }; + } -+ // Paper end ++ // Paper end - Add villager reputation API } static record GossipEntry(UUID target, GossipType type, int value) { diff --git a/patches/server/0386-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0386-Option-for-maximum-exp-value-when-merging-orbs.patch index ad51f871bb01..e5b269cb1df2 100644 --- a/patches/server/0386-Option-for-maximum-exp-value-when-merging-orbs.patch +++ b/patches/server/0386-Option-for-maximum-exp-value-when-merging-orbs.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Option for maximum exp value when merging orbs diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 5d28312a03f1571bb44c31f82e27288d02776a5a..85cad0c7437642c72d806f59cb077db4056a4282 100644 +index 5d28312a03f1571bb44c31f82e27288d02776a5a..7fe49c85e3bebe460c7d61864ed3878ef8cd999f 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -702,16 +702,30 @@ public class CraftEventFactory { if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) { double radius = world.spigotConfig.expMerge; if (radius > 0) { -+ // Paper start - Maximum exp value when merging - Whole section has been tweaked, see comments for specifics ++ // Paper start - Maximum exp value when merging; Whole section has been tweaked, see comments for specifics + final int maxValue = world.paperConfig().entities.behavior.experienceMergeMaxValue; + final boolean mergeUnconditionally = world.paperConfig().entities.behavior.experienceMergeMaxValue <= 0; + if (mergeUnconditionally || xp.value < maxValue) { // Paper - Skip iteration if unnecessary @@ -31,7 +31,7 @@ index 5d28312a03f1571bb44c31f82e27288d02776a5a..85cad0c7437642c72d806f59cb077db4 + } else { xp.value += loopItem.value; loopItem.discard(); -+ } // Paper end ++ } // Paper end - Maximum exp value when merging } } } diff --git a/patches/server/0390-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0390-Wait-for-Async-Tasks-during-shutdown.patch index 2a06bb5735e5..61437d4f286d 100644 --- a/patches/server/0390-Wait-for-Async-Tasks-during-shutdown.patch +++ b/patches/server/0390-Wait-for-Async-Tasks-during-shutdown.patch @@ -10,26 +10,26 @@ Adds a 5 second grace period for any async tasks to finish and warns if any are still running after that delay just as reload does. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index eab8da0689dcb159cb54b418804e86b6364273fb..728858a2a52bd23c7b42d0e7340abf5f09d24fc5 100644 +index b61dd9730ed56fc0c1a10f9c4e0a9630bb668206..e6271f1c0bb5a3debeb5bf2e33e02fb0f6af6976 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -958,6 +958,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0.0F; f -= 0.22500001F) { BlockPos blockposition = BlockPos.containing(d4, d5, d6); BlockState iblockdata = this.level.getBlockState(blockposition); -+ if (!iblockdata.isDestroyable()) continue; // Paper ++ if (!iblockdata.isDestroyable()) continue; // Paper - Protect Bedrock and End Portal/Frames from being destroyed FluidState fluid = iblockdata.getFluidState(); // Paper if (!this.level.isInWorldBounds(blockposition)) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1bb5867bb2e99be1696c89ec47cd3aa0d655fdfb..a7fca2d662e013809fef088213cf0275b596629d 100644 +index 1bb5867bb2e99be1696c89ec47cd3aa0d655fdfb..6941a14b37d4637a1414c4a6c9380a5d7a72711d 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -521,6 +521,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { -+ // Paper start ++ // Paper start - Protect Bedrock and End Portal/Frames from being destroyed + BlockState type = getBlockState(pos); + if (!type.isDestroyable()) return false; -+ // Paper end ++ // Paper end - Protect Bedrock and End Portal/Frames from being destroyed CraftBlockState blockstate = this.capturedBlockStates.get(pos); if (blockstate == null) { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); @@ -64,19 +64,19 @@ index 89a62fbeeb78c864938a1cea84178478c6dc1b34..5e5199b50847958f7abc6d8e42cfb680 public co.aikar.timings.Timing getTiming() { if (timing == null) { diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -index b3732a6246a2b011e36c5c35fa2ac7749e75db16..bb6c38bb7a054b94a63690f6fd6036d6f376dae4 100644 +index b3732a6246a2b011e36c5c35fa2ac7749e75db16..e4a3c937950b26e81b89d6ddcf3d6c2794ed934d 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java @@ -212,6 +212,12 @@ public class PistonBaseBlock extends DirectionalBlock { @Override public boolean triggerEvent(BlockState state, Level world, BlockPos pos, int type, int data) { Direction enumdirection = (Direction) state.getValue(PistonBaseBlock.FACING); -+ // Paper start - prevent retracting when we're facing the wrong way (we were replaced before retraction could occur) ++ // Paper start - Protect Bedrock and End Portal/Frames from being destroyed; prevent retracting when we're facing the wrong way (we were replaced before retraction could occur) + Direction directionQueuedAs = Direction.from3DDataValue(data & 7); // Paper - copied from below + if (!io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits && enumdirection != directionQueuedAs) { + return false; + } -+ // Paper end - prevent retracting when we're facing the wrong way ++ // Paper end - Protect Bedrock and End Portal/Frames from being destroyed BlockState iblockdata1 = (BlockState) state.setValue(PistonBaseBlock.EXTENDED, true); if (!world.isClientSide) { @@ -85,7 +85,7 @@ index b3732a6246a2b011e36c5c35fa2ac7749e75db16..bb6c38bb7a054b94a63690f6fd6036d6 world.setBlock(pos, iblockdata2, 20); - world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); -+ world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); // Paper - diff on change ++ world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); // Paper - Protect Bedrock and End Portal/Frames from being destroyed; diff on change world.blockUpdated(pos, iblockdata2.getBlock()); iblockdata2.updateNeighbourShapes(world, pos, 2); if (this.isSticky) { @@ -94,19 +94,19 @@ index b3732a6246a2b011e36c5c35fa2ac7749e75db16..bb6c38bb7a054b94a63690f6fd6036d6 } } else { - world.removeBlock(pos.relative(enumdirection), false); -+ // Paper start - fix headless pistons breaking blocks ++ // Paper start - Protect Bedrock and End Portal/Frames from being destroyed; fix headless pistons breaking blocks + BlockPos headPos = pos.relative(enumdirection); + if (io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits || world.getBlockState(headPos) == Blocks.PISTON_HEAD.defaultBlockState().setValue(FACING, enumdirection)) { // double check to make sure we're not a headless piston. + world.removeBlock(headPos, false); + } else { -+ ((ServerLevel)world).getChunkSource().blockChanged(headPos); // ... fix client desync ++ ((ServerLevel) world).getChunkSource().blockChanged(headPos); // ... fix client desync + } -+ // Paper end - fix headless pistons breaking blocks ++ // Paper end - Protect Bedrock and End Portal/Frames from being destroyed } world.playSound((Player) null, pos, SoundEvents.PISTON_CONTRACT, SoundSource.BLOCKS, 0.5F, world.random.nextFloat() * 0.15F + 0.6F); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 2c7d025b2af3a66772c3f394620483045fb80242..79ff216e473ebc4bf7ab3ade42b0fa224f7e4c19 100644 +index 2c7d025b2af3a66772c3f394620483045fb80242..0475c153ac1ba73a56bae35820d1d2a31e771865 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -182,7 +182,7 @@ public abstract class BlockBehaviour implements FeatureElement { @@ -114,7 +114,7 @@ index 2c7d025b2af3a66772c3f394620483045fb80242..79ff216e473ebc4bf7ab3ade42b0fa22 @Deprecated public void onExplosionHit(BlockState state, Level world, BlockPos pos, Explosion explosion, BiConsumer stackMerger) { - if (!state.isAir() && explosion.getBlockInteraction() != Explosion.BlockInteraction.TRIGGER_BLOCK) { -+ if (!state.isAir() && explosion.getBlockInteraction() != Explosion.BlockInteraction.TRIGGER_BLOCK && state.isDestroyable()) { // Paper ++ if (!state.isAir() && explosion.getBlockInteraction() != Explosion.BlockInteraction.TRIGGER_BLOCK && state.isDestroyable()) { // Paper - Protect Bedrock and End Portal/Frames from being destroyed Block block = state.getBlock(); boolean flag = explosion.getIndirectSourceEntity() instanceof Player; @@ -123,7 +123,7 @@ index 2c7d025b2af3a66772c3f394620483045fb80242..79ff216e473ebc4bf7ab3ade42b0fa22 @Deprecated public boolean canBeReplaced(BlockState state, BlockPlaceContext context) { - return state.canBeReplaced() && (context.getItemInHand().isEmpty() || !context.getItemInHand().is(this.asItem())); -+ return state.canBeReplaced() && (context.getItemInHand().isEmpty() || !context.getItemInHand().is(this.asItem())) && (state.isDestroyable() || (context.getPlayer() != null && context.getPlayer().getAbilities().instabuild)); // Paper; ++ return state.canBeReplaced() && (context.getItemInHand().isEmpty() || !context.getItemInHand().is(this.asItem())) && (state.isDestroyable() || (context.getPlayer() != null && context.getPlayer().getAbilities().instabuild)); // Paper - Protect Bedrock and End Portal/Frames from being destroyed } /** @deprecated */ @@ -131,11 +131,11 @@ index 2c7d025b2af3a66772c3f394620483045fb80242..79ff216e473ebc4bf7ab3ade42b0fa22 return this.legacySolid; } -+ // Paper start ++ // Paper start - Protect Bedrock and End Portal/Frames from being destroyed + public final boolean isDestroyable() { + return getBlock().isDestroyable(); + } -+ // Paper end ++ // Paper end - Protect Bedrock and End Portal/Frames from being destroyed + public boolean isValidSpawn(BlockGetter world, BlockPos pos, EntityType type) { return this.getBlock().properties.isValidSpawn.test(this.asState(), world, pos, type); @@ -145,25 +145,25 @@ index 2c7d025b2af3a66772c3f394620483045fb80242..79ff216e473ebc4bf7ab3ade42b0fa22 public PushReaction getPistonPushReaction() { - return this.pushReaction; -+ return !this.isDestroyable() ? PushReaction.BLOCK : this.pushReaction; // Paper ++ return !this.isDestroyable() ? PushReaction.BLOCK : this.pushReaction; // Paper - Protect Bedrock and End Portal/Frames from being destroyed } public boolean isSolidRender(BlockGetter world, BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java -index ed5210c63d964be7c28f59df315766794ec3ea1f..08325c055b04355089d75031522c7b74d83c6cca 100644 +index ed5210c63d964be7c28f59df315766794ec3ea1f..f610ece91a04bd321fdd75814a7b40e622c2bd1e 100644 --- a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java +++ b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java @@ -221,6 +221,13 @@ public class PortalForcer { for (int j = -1; j < 3; ++j) { for (int k = -1; k < 4; ++k) { temp.setWithOffset(pos, portalDirection.getStepX() * j + enumdirection1.getStepX() * distanceOrthogonalToPortal, k, portalDirection.getStepZ() * j + enumdirection1.getStepZ() * distanceOrthogonalToPortal); -+ // Paper start - prevent destroying unbreakable blocks ++ // Paper start - Protect Bedrock and End Portal/Frames from being destroyed + if (!io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits) { + if (!this.level.getBlockState(temp).isDestroyable()) { + return false; + } + } -+ // Paper end - prevent destroying unbreakable blocks ++ // Paper end - Protect Bedrock and End Portal/Frames from being destroyed if (k < 0 && !this.level.getBlockState(temp).isSolid()) { return false; } diff --git a/patches/server/0393-Ensure-safe-gateway-teleport.patch b/patches/server/0393-Ensure-safe-gateway-teleport.patch index 6ca5181f906d..f0c0928d233f 100644 --- a/patches/server/0393-Ensure-safe-gateway-teleport.patch +++ b/patches/server/0393-Ensure-safe-gateway-teleport.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure safe gateway teleport diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index 223550eccdf0a5596b8595a30f02ad891ffd91ea..b7a0d8ffd1823a1d1edee6baaa62c15f69e6af3d 100644 +index 223550eccdf0a5596b8595a30f02ad891ffd91ea..d0e8842a2c4f7dbd0d6ac3694b2a6a5395d8a542 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java @@ -105,7 +105,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { @@ -13,14 +13,14 @@ index 223550eccdf0a5596b8595a30f02ad891ffd91ea..b7a0d8ffd1823a1d1edee6baaa62c15f if (!list.isEmpty()) { - TheEndGatewayBlockEntity.teleportEntity(world, pos, state, (Entity) list.get(world.random.nextInt(list.size())), blockEntity); -+ // Paper start ++ // Paper start - Ensure safe gateway teleport + for (Entity entity : list) { + if (entity.canChangeDimensions()) { + TheEndGatewayBlockEntity.teleportEntity(world, pos, state, entity, blockEntity); + break; + } + } -+ // Paper end ++ // Paper end - Ensure safe gateway teleport } if (blockEntity.age % 2400L == 0L) { diff --git a/patches/server/0395-Fix-villager-trading-demand-MC-163962.patch b/patches/server/0395-Fix-villager-trading-demand-MC-163962.patch index 79eb053dbad9..5396bba5abe8 100644 --- a/patches/server/0395-Fix-villager-trading-demand-MC-163962.patch +++ b/patches/server/0395-Fix-villager-trading-demand-MC-163962.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix villager trading demand - MC-163962 Prevent demand from going negative and tending to negative infinity diff --git a/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java b/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java -index a580011cd3b2b7129f2d09f37a3c26cdaafeefe8..1d755d04515f20dbd69931084b4cc894e52d35c9 100644 +index a580011cd3b2b7129f2d09f37a3c26cdaafeefe8..7da5c4a45f8fd46fedd4386e0faac57445475e3a 100644 --- a/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java +++ b/src/main/java/net/minecraft/world/item/trading/MerchantOffer.java @@ -130,7 +130,7 @@ public class MerchantOffer { @@ -14,7 +14,7 @@ index a580011cd3b2b7129f2d09f37a3c26cdaafeefe8..1d755d04515f20dbd69931084b4cc894 public void updateDemand() { - this.demand = this.demand + this.uses - (this.maxUses - this.uses); -+ this.demand = Math.max(0, this.demand + this.uses - (this.maxUses - this.uses)); // Paper ++ this.demand = Math.max(0, this.demand + this.uses - (this.maxUses - this.uses)); // Paper - Fix MC-163962 } public ItemStack assemble() { diff --git a/patches/server/0397-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch b/patches/server/0397-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch index 2fe070866938..ff8699f85d9a 100644 --- a/patches/server/0397-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch +++ b/patches/server/0397-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use seed based lookup for Treasure Maps - Fixes lag from diff --git a/src/main/java/net/minecraft/world/item/MapItem.java b/src/main/java/net/minecraft/world/item/MapItem.java -index e46ceae916f6396d96226db6d8e90bd29088f765..d4b4da03dcd98336a15eaa045d6b0ce361b15b76 100644 +index e46ceae916f6396d96226db6d8e90bd29088f765..f643d3c06bd8fc37f6c571a19d5691694b0ce8d3 100644 --- a/src/main/java/net/minecraft/world/item/MapItem.java +++ b/src/main/java/net/minecraft/world/item/MapItem.java @@ -242,14 +242,13 @@ public class MapItem extends ComplexItem { @@ -21,7 +21,7 @@ index e46ceae916f6396d96226db6d8e90bd29088f765..d4b4da03dcd98336a15eaa045d6b0ce3 for (j1 = 0; j1 < 128; ++j1) { for (k1 = 0; k1 < 128; ++k1) { - Holder holder = world.getBiome(blockposition_mutableblockposition.set((l + k1) * i, 0, (i1 + j1) * i)); -+ Holder holder = world.getUncachedNoiseBiome((l + k1) * i, 0, (i1 + j1) * i); // Paper ++ Holder holder = world.getUncachedNoiseBiome((l + k1) * i, 0, (i1 + j1) * i); // Paper - Perf: Use seed based lookup for treasure maps aboolean[j1 * 128 + k1] = holder.is(BiomeTags.WATER_ON_MAP_OUTLINES); } diff --git a/patches/server/0399-Fix-piston-physics-inconsistency-MC-188840.patch b/patches/server/0399-Fix-piston-physics-inconsistency-MC-188840.patch index 3bef753cf553..564e1578cec7 100644 --- a/patches/server/0399-Fix-piston-physics-inconsistency-MC-188840.patch +++ b/patches/server/0399-Fix-piston-physics-inconsistency-MC-188840.patch @@ -32,7 +32,7 @@ This patch fixes https://bugs.mojang.com/browse/MC-188840 This patch also fixes rail duping and carpet duping. diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -index bb6c38bb7a054b94a63690f6fd6036d6f376dae4..565da027ca7c395f9b965505cbe9e85e62367834 100644 +index e4a3c937950b26e81b89d6ddcf3d6c2794ed934d..c34b34a6be594c502d1cb59703ace8ad8dd96915 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java @@ -426,14 +426,26 @@ public class PistonBaseBlock extends DirectionalBlock { @@ -66,7 +66,7 @@ index bb6c38bb7a054b94a63690f6fd6036d6f376dae4..565da027ca7c395f9b965505cbe9e85e } diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -index 17a6327ab7b26dfab38881bbc0689b0b25f8f025..1ef87580574919796dbba707f44a413ee5c5781b 100644 +index 17a6327ab7b26dfab38881bbc0689b0b25f8f025..c71690dbc3dc52803945f1608f0ee3ba94146354 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java @@ -288,7 +288,7 @@ public class PistonMovingBlockEntity extends BlockEntity { @@ -74,7 +74,7 @@ index 17a6327ab7b26dfab38881bbc0689b0b25f8f025..1ef87580574919796dbba707f44a413e BlockState blockState = Block.updateFromNeighbourShapes(blockEntity.movedState, world, pos); if (blockState.isAir()) { - world.setBlock(pos, blockEntity.movedState, 84); -+ world.setBlock(pos, blockEntity.movedState, io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPistonDuplication ? 84 : (84 | Block.UPDATE_CLIENTS)); // Paper - force notify (flag 2), it's possible the set type by the piston block (which doesn't notify) set this block to air ++ world.setBlock(pos, blockEntity.movedState, io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPistonDuplication ? 84 : (84 | Block.UPDATE_CLIENTS)); // Paper - fix a variety of piston desync dupes; force notify (flag 2), it's possible the set type by the piston block (which doesn't notify) set this block to air Block.updateOrDestroy(blockEntity.movedState, blockState, world, pos, 3); } else { if (blockState.hasProperty(BlockStateProperties.WATERLOGGED) && blockState.getValue(BlockStateProperties.WATERLOGGED)) { diff --git a/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch index 6ab51cf1c771..a987291004dd 100644 --- a/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cdfc00e4bee78fc7ac7dc9f52301f16cd7846698..180f87a67c84fc0cf3f54755da9801365d4158f8 100644 +index af49c7e0531ef73646d74c9770fea302a8b8fea3..1471bfcb0a7b193866cfa7ee0e14e7b044755e88 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2064,6 +2064,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -22,7 +22,7 @@ index cdfc00e4bee78fc7ac7dc9f52301f16cd7846698..180f87a67c84fc0cf3f54755da980136 } diff --git a/src/main/java/net/minecraft/world/entity/EntitySelector.java b/src/main/java/net/minecraft/world/entity/EntitySelector.java -index 68e4440765636295a74ea942862d772d47282ad6..7bd719db017425627c982728abec7b7f99edbc66 100644 +index c9c7833755af3c7bef1d40f2ca425cbec59efa68..75cdddbfbbc4c0c521194dde27ba5f5d17221842 100644 --- a/src/main/java/net/minecraft/world/entity/EntitySelector.java +++ b/src/main/java/net/minecraft/world/entity/EntitySelector.java @@ -46,11 +46,16 @@ public final class EntitySelector { @@ -44,7 +44,7 @@ index 68e4440765636295a74ea942862d772d47282ad6..7bd719db017425627c982728abec7b7f } else if (entity.level().isClientSide && (!(entity1 instanceof Player) || !((Player) entity1).isLocalPlayer())) { return false; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 05fe4828af59e3cd894c9979ecb08ad0e1c6b2d3..720b889796cd023308cf6f8e8a75b2548ca0e45f 100644 +index a3fd295ce44bce34c7f0a364abc27b70e546a383..428a5e8c4a4fb9e00402dd6164cebeec008e192e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3426,7 +3426,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -55,7 +55,7 @@ index 05fe4828af59e3cd894c9979ecb08ad0e1c6b2d3..720b889796cd023308cf6f8e8a75b254 + List list = this.level().getEntities((Entity) this, this.getBoundingBox(), EntitySelector.pushable(this, this.level().paperConfig().collisions.fixClimbingBypassingCrammingRule)); // Paper - Climbing should not bypass cramming gamerule if (!list.isEmpty()) { - // Paper - moved up + // Paper - don't run getEntities if we're not going to use its result; moved up @@ -3616,9 +3616,16 @@ public abstract class LivingEntity extends Entity implements Attackable { return !this.isRemoved() && this.collides; // CraftBukkit } diff --git a/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch index 939dfabba05f..1e7706bbb11b 100644 --- a/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Fix kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index eabab52143ff490c4ec646628a9dc96cf15efb72..d848119476e5ba254ce86873f1d997d0fe3da876 100644 +index 61d439af863603c669c45f38045dbad9068f285a..ade79a794a7485e0141a430d62236daf1e566b21 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -273,7 +273,6 @@ public class ServerPlayer extends Player { public boolean joining = true; public boolean sentListPacket = false; - public boolean supressTrackerForLogin = false; // Paper + public boolean supressTrackerForLogin = false; // Paper - Fire PlayerJoinEvent when Player is actually ready - public String kickLeaveMessage = null; // SPIGOT-3034: Forward leave message to PlayerQuitEvent // CraftBukkit end public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 761dd36bcf0318e28613d852f95566879d835912..5d0500ee2740977c6b6eb89ed51e29b5a2e66760 100644 +index 3049377685ee4fe75f0c4b68eab39a916ac20785..f5f2d65d2e02b0d79352585d9d4ef588ab59dce7 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -77,6 +77,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -50,7 +50,7 @@ index 761dd36bcf0318e28613d852f95566879d835912..5d0500ee2740977c6b6eb89ed51e29b5 MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c477c6c47d6b707fcee671152bfb516eeea2cebd..8fb479bcf55f71857404d9b34eef6cd26cf0babf 100644 +index 5dfebe60caa47af3bab4a667ca5d0b6438367161..fe8ba3890d5b21273aca68777de56d7f7f644c0d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1882,6 +1882,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -96,7 +96,7 @@ index c477c6c47d6b707fcee671152bfb516eeea2cebd..8fb479bcf55f71857404d9b34eef6cd2 this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); // 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 3e88b648cf4fcc19598fb50ca5651af1a52a0a84..60e60166485bc87a5ff9919f9c1603dc4eaeecc9 100644 +index 0f04b29ff000c0b0f0692eecf26675f5520d9e07..3f8f7d7db41b73d0d449b653d3ba55a097c00566 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -570,6 +570,11 @@ public abstract class PlayerList { diff --git a/patches/server/0657-Improve-and-expand-AsyncCatcher.patch b/patches/server/0657-Improve-and-expand-AsyncCatcher.patch index 3d5d345fb450..7c1452f4d81c 100644 --- a/patches/server/0657-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0657-Improve-and-expand-AsyncCatcher.patch @@ -17,7 +17,7 @@ Async catch modifications to critical entity state Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 09ce054d260bd7143eb9d58611144de2666166f3..5bc6b7298c253bd2ee1d5a16b8f237c824f8719a 100644 +index f111ab02d91e936284fc183969117c172127a000..db12ed933d09090f45ff2aa1045d2990901b27a2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1570,6 +1570,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -25,11 +25,11 @@ index 09ce054d260bd7143eb9d58611144de2666166f3..5bc6b7298c253bd2ee1d5a16b8f237c8 public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set set) { // Paper + org.spigotmc.AsyncCatcher.catchOp("teleport"); // Paper - // Paper start + // Paper start - Prevent teleporting dead entities if (player.isRemoved()) { LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName()); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0292ca014fd8319fe9f5e7a1465ee5c112ef6515..4516b12d1856653c0a28f8edfc28d4644316f763 100644 +index 48d5f1522e1bfda886e1791055bbddab510d464b..93c9fae42a1115f4442e8633946dc0ebde4606bb 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1118,7 +1118,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -166,7 +166,7 @@ index bbbf6dd8e566ecdca8794e3b03765fe7e426a2bd..66ab901956ca394c251c420338643d39 PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason}); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 40ca827fed0e69c50ad8857ec29cfa99570b1d07..e3faafc565c180467c235aa1695e80b746c03cf1 100644 +index 9fd6e12aedc670fcb3523e8093e922bf385723d7..189c0ab39f56e7a6d92aa6ee24f29a232b446cdf 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1803,6 +1803,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0718-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0718-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch index 5eefef38a3a0..1a1afc823fe9 100644 --- a/patches/server/0718-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch +++ b/patches/server/0718-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch @@ -27,7 +27,7 @@ Co-authored-by: Zach Brown Co-authored-by: Madeline Miller diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -index de9102f943fe90122b2fe7f94228b4248244374a..1818ab63209017b45a46a80802d500f2d042a208 100644 +index 4342bc4535ea812fef3fab56917e5de15947c42d..be74adc86f0ca467f3b59e7b57fd47a8f381d86e 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java @@ -159,15 +159,15 @@ public class PistonBaseBlock extends DirectionalBlock { @@ -67,7 +67,7 @@ index de9102f943fe90122b2fe7f94228b4248244374a..1818ab63209017b45a46a80802d500f2 + } + // Paper end - Fix sticky pistons and BlockPistonRetractEvent world.setBlock(pos, iblockdata2, 20); - world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); // Paper - diff on change + world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); // Paper - Protect Bedrock and End Portal/Frames from being destroyed; diff on change world.blockUpdated(pos, iblockdata2.getBlock()); @@ -276,6 +283,13 @@ public class PistonBaseBlock extends DirectionalBlock { if (type == 1 && !iblockdata3.isAir() && PistonBaseBlock.isPushable(iblockdata3, world, blockposition1, enumdirection.getOpposite(), false, enumdirection) && (iblockdata3.getPistonPushReaction() == PushReaction.NORMAL || iblockdata3.is(Blocks.PISTON) || iblockdata3.is(Blocks.STICKY_PISTON))) { diff --git a/patches/server/0751-Force-close-world-loading-screen.patch b/patches/server/0751-Force-close-world-loading-screen.patch index bc5f26e53042..7988006f3a29 100644 --- a/patches/server/0751-Force-close-world-loading-screen.patch +++ b/patches/server/0751-Force-close-world-loading-screen.patch @@ -10,12 +10,12 @@ so we do not need that. The client only needs the chunk it is currently in to be loaded to close the loading screen, so we just send an empty one. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8364d86a75174d1b37cfbf6cf9dbc5ed952c432e..f173b0f4cd2cffc90a0f609cbc8bf29fdc1cf122 100644 +index d0be35600770a25b208ef72816798928847ff9ce..b9d1ee41775719050c14f172cf8fb308804d8097 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -398,6 +398,16 @@ public abstract class PlayerList { - // Paper start - move vehicle into method so it can be called above - short circuit around that code + // Paper start - Fire PlayerJoinEvent when Player is actually ready; move vehicle into method so it can be called above - short circuit around that code onPlayerJoinFinish(player, worldserver1, s1); + // Paper start - Send empty chunk, so players aren't stuck in the world loading screen with our chunk system not sending chunks when dead + if (player.isDeadOrDying()) { @@ -29,4 +29,4 @@ index 8364d86a75174d1b37cfbf6cf9dbc5ed952c432e..f173b0f4cd2cffc90a0f609cbc8bf29f + // Paper end - Send empty chunk } private void mountSavedVehicle(ServerPlayer player, ServerLevel worldserver1, CompoundTag nbttagcompound) { - // Paper end + // Paper end - Fire PlayerJoinEvent when Player is actually ready diff --git a/patches/server/0860-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0860-Ability-to-control-player-s-insomnia-and-phantoms.patch index 620ab413a9b7..3e5f525d0d63 100644 --- a/patches/server/0860-Ability-to-control-player-s-insomnia-and-phantoms.patch +++ b/patches/server/0860-Ability-to-control-player-s-insomnia-and-phantoms.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Ability to control player's insomnia and phantoms diff --git a/src/main/java/net/minecraft/world/entity/EntitySelector.java b/src/main/java/net/minecraft/world/entity/EntitySelector.java -index 93a41156a01a1638f3ef469b1518a07e7961f378..dbbce471c35849ea7d7ad07e9db9b7d8d85690df 100644 +index 75cdddbfbbc4c0c521194dde27ba5f5d17221842..b350d41a724048af06f9aa9bbef039d3d719c3a8 100644 --- a/src/main/java/net/minecraft/world/entity/EntitySelector.java +++ b/src/main/java/net/minecraft/world/entity/EntitySelector.java @@ -28,7 +28,18 @@ public final class EntitySelector { return !entity.isSpectator(); }; public static final Predicate CAN_BE_COLLIDED_WITH = EntitySelector.NO_SPECTATORS.and(Entity::canBeCollidedWith); -- public static Predicate IS_INSOMNIAC = (player) -> net.minecraft.util.Mth.clamp(((net.minecraft.server.level.ServerPlayer) player).getStats().getValue(net.minecraft.stats.Stats.CUSTOM.get(net.minecraft.stats.Stats.TIME_SINCE_REST)), 1, Integer.MAX_VALUE) >= 72000; // Paper +- public static Predicate IS_INSOMNIAC = (player) -> net.minecraft.util.Mth.clamp(((net.minecraft.server.level.ServerPlayer) player).getStats().getValue(net.minecraft.stats.Stats.CUSTOM.get(net.minecraft.stats.Stats.TIME_SINCE_REST)), 1, Integer.MAX_VALUE) >= 72000; // Paper - Add phantom creative and insomniac controls + // Paper start - Ability to control player's insomnia and phantoms + public static Predicate IS_INSOMNIAC = (player) -> { + net.minecraft.server.level.ServerPlayer serverPlayer = (net.minecraft.server.level.ServerPlayer) player; @@ -29,7 +29,7 @@ index 93a41156a01a1638f3ef469b1518a07e7961f378..dbbce471c35849ea7d7ad07e9db9b7d8 private EntitySelector() {} // Paper start diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java -index b1fc786970b5288a02cc3a46e3fe7784ac566c07..7d7d37334321c844958ce09e77547dd61dcba6c8 100644 +index 8c9caa324402568ce9f55e733f4d14430159347a..eab7b0c18389a6980c621c2a0a0879dca9b53121 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java @@ -33,13 +33,22 @@ public class PhantomSpawner implements CustomSpawner { diff --git a/patches/server/0865-Properly-resend-entities.patch b/patches/server/0865-Properly-resend-entities.patch index cfc0a45b15d4..7ca3f625022f 100644 --- a/patches/server/0865-Properly-resend-entities.patch +++ b/patches/server/0865-Properly-resend-entities.patch @@ -85,7 +85,7 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0d public static class DataItem { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1db6455f72ce9b91b04d0b5ba76d0a1d29b98110..3d7dd28e73c3d4419766ad37b9c494b3ce2e2d21 100644 +index e14c4e09fbfcd19bd53fcc1560aae317587cee0f..903d04140739f6c1df58bdfcc6a3aa690b289d66 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2653,7 +2653,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -98,11 +98,11 @@ index 1db6455f72ce9b91b04d0b5ba76d0a1d29b98110..3d7dd28e73c3d4419766ad37b9c494b3 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 12a3aa585ca60b47107da85d88b3a7d502a0ae9f..66296aa930a1afe3c3d89afe69d5619e5ed146bc 100644 +index b8213713b54e0bfaa0ddca41ec76f6840c0e1d20..7968ebbd3c56ff1b33491ffcfdab254f799ddeef 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -376,7 +376,7 @@ public abstract class PlayerList { - ((ServerLevel)player.level()).getChunkSource().chunkMap.addEntity(player); // Paper - track entity now + ((ServerLevel)player.level()).getChunkSource().chunkMap.addEntity(player); // Paper - Fire PlayerJoinEvent when Player is actually ready; track entity now // CraftBukkit end - player.getEntityData().refresh(player); // CraftBukkit - BungeeCord#2321, send complete data to self on spawn diff --git a/patches/server/0881-Use-single-player-info-update-packet-on-join.patch b/patches/server/0881-Use-single-player-info-update-packet-on-join.patch index ff4b5e759bfa..2ab5c52eb057 100644 --- a/patches/server/0881-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0881-Use-single-player-info-update-packet-on-join.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0a70260f8d01ebbf6d35f852461a1d7710bb4b1b..8bcd8a7fa65e05ccef0a205319cad9e84b4341b5 100644 +index b9d4e5e49088065a60087ee2587e7e25ca72f5db..ad086107f9be8da3816ab1d80576be0718dc0054 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3420,7 +3420,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -18,7 +18,7 @@ index 0a70260f8d01ebbf6d35f852461a1d7710bb4b1b..8bcd8a7fa65e05ccef0a205319cad9e8 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 66296aa930a1afe3c3d89afe69d5619e5ed146bc..79e2fbad2c03d6187671a073553a573022aeb060 100644 +index 7968ebbd3c56ff1b33491ffcfdab254f799ddeef..09397946cb9fa82e20772ea981bdadbc6a5c93c7 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { @@ -47,5 +47,5 @@ index 66296aa930a1afe3c3d89afe69d5619e5ed146bc..79e2fbad2c03d6187671a073553a5730 + } + // Paper end - Use single player info update packet on join player.sentListPacket = true; - player.supressTrackerForLogin = false; // Paper - ((ServerLevel)player.level()).getChunkSource().chunkMap.addEntity(player); // Paper - track entity now + player.supressTrackerForLogin = false; // Paper - Fire PlayerJoinEvent when Player is actually ready + ((ServerLevel)player.level()).getChunkSource().chunkMap.addEntity(player); // Paper - Fire PlayerJoinEvent when Player is actually ready; track entity now diff --git a/patches/server/0942-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0942-ExperienceOrb-should-call-EntitySpawnEvent.patch index afca54d6a630..7a1b5662c321 100644 --- a/patches/server/0942-ExperienceOrb-should-call-EntitySpawnEvent.patch +++ b/patches/server/0942-ExperienceOrb-should-call-EntitySpawnEvent.patch @@ -5,18 +5,16 @@ Subject: [PATCH] ExperienceOrb should call EntitySpawnEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 3f8195475fbad4d517d5417ece9555831377d1cc..cf4e32d5199b15bd8d72e412982dfbecde183f91 100644 +index 4697d69180d7ef9eafe742948067001478cc934b..f8999d0b4cb068618cf196a9da9b8be793d30491 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -734,7 +734,10 @@ public class CraftEventFactory { +@@ -734,7 +734,8 @@ public class CraftEventFactory { // Spigot start - SPIGOT-7523: Merge after spawn event and only merge if the event was not cancelled (gets checked above) if (entity instanceof net.minecraft.world.entity.ExperienceOrb xp) { double radius = world.spigotConfig.expMerge; - if (radius > 0) { -+ // Paper start - Call EntitySpawnEvent for ExperienceOrb entities -+ event = CraftEventFactory.callEntitySpawnEvent(entity); ++ event = CraftEventFactory.callEntitySpawnEvent(entity); // Call spawn event for ExperienceOrb entities + if (radius > 0 && !event.isCancelled() && !entity.isRemoved()) { -+ // Paper end - Call EntitySpawnEvent for ExperienceOrb entities - // Paper start - Maximum exp value when merging - Whole section has been tweaked, see comments for specifics + // Paper start - Maximum exp value when merging; Whole section has been tweaked, see comments for specifics final int maxValue = world.paperConfig().entities.behavior.experienceMergeMaxValue; final boolean mergeUnconditionally = world.paperConfig().entities.behavior.experienceMergeMaxValue <= 0; diff --git a/patches/server/0973-Add-PlayerPickItemEvent.patch b/patches/server/0973-Add-PlayerPickItemEvent.patch index d1e7e6fc936e..33b9f608e2e3 100644 --- a/patches/server/0973-Add-PlayerPickItemEvent.patch +++ b/patches/server/0973-Add-PlayerPickItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerPickItemEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 57e7a1d60ae3644fa33ed619e8fdb4441fc3f8ce..96d44798583ee876ca8121c381638cd741d8338c 100644 +index eab3edcd040269ecd920c15ec96b25499aef83e1..4563032ea2acca60014b90c696c0e7d59cdd8132 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -941,8 +941,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -13,7 +13,7 @@ index 57e7a1d60ae3644fa33ed619e8fdb4441fc3f8ce..96d44798583ee876ca8121c381638cd7 return; } - this.player.getInventory().pickSlot(packet.getSlot()); // Paper - Diff above if changed - // Paper end + // Paper end - validate pick item position + // Paper start - Add PlayerPickItemEvent + Player bukkitPlayer = this.player.getBukkitEntity(); + int targetSlot = this.player.getInventory().getSuitableHotbarSlot(); diff --git a/patches/server/0980-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0980-Add-titleOverride-to-InventoryOpenEvent.patch index 3a604472c7f7..79db0dc05d2d 100644 --- a/patches/server/0980-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/0980-Add-titleOverride-to-InventoryOpenEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e32a2ea53f61410f0470bdccf1e479af1a571469..23ede7bc9fcf923a70715a6f60449779ae52c62a 100644 +index 33ba61a71d3989ca53366d7c40a6d625fee524e8..6f06262d358a7f63a2ea35c0fd70b0c5aaa96182 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1573,12 +1573,17 @@ public class ServerPlayer extends Player { @@ -31,13 +31,13 @@ index e32a2ea53f61410f0470bdccf1e479af1a571469..23ede7bc9fcf923a70715a6f60449779 } else { // CraftBukkit start this.containerMenu = container; -- if (!this.isImmobile()) this.connection.send(new ClientboundOpenScreenPacket(container.containerId, container.getType(), container.getTitle())); // Paper +- if (!this.isImmobile()) this.connection.send(new ClientboundOpenScreenPacket(container.containerId, container.getType(), container.getTitle())); // Paper - Prevent opening inventories when frozen + if (!this.isImmobile()) this.connection.send(new ClientboundOpenScreenPacket(container.containerId, container.getType(), Objects.requireNonNullElseGet(title, container::getTitle))); // Paper - Add titleOverride to InventoryOpenEvent // CraftBukkit end this.initMenu(container); return OptionalInt.of(this.containerCounter); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 897e693492bdf9293154535d5772929bc2b1a523..827fe201a7b74f485abb46b127a28bf0cb479c3b 100644 +index da586f935efa62f7ddd2ea27a8ec364a6b46bc86..5d4d45703212da37417aa98fa61ee479dac03ae5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -357,12 +357,16 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -57,7 +57,7 @@ index 897e693492bdf9293154535d5772929bc2b1a523..827fe201a7b74f485abb46b127a28bf0 + if (result.getFirst() != null) adventure$title = result.getFirst(); // Paper - Add titleOverride to InventoryOpenEvent //player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment - if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper + if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper - Prevent opening inventories when frozen @@ -438,7 +442,10 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { } @@ -74,15 +74,15 @@ index 897e693492bdf9293154535d5772929bc2b1a523..827fe201a7b74f485abb46b127a28bf0 //String title = inventory.getTitle(); // Paper - comment net.kyori.adventure.text.Component adventure$title = inventory.title(); // Paper if (adventure$title == null) adventure$title = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(inventory.getTitle()); // Paper -+ if (result.getFirst() != null) adventure$title = result.getFirst(); // Paper - Add titleOverride to InventoryOpenEvent ++ if (result.getFirst() != null) adventure$title = result.getFirst(); // Paper - Add titleOverride to InventoryOpenEvent //player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment //player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, CraftChatMessage.fromString(title)[0])); // Paper - comment - if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper + if (!player.isImmobile()) player.connection.send(new ClientboundOpenScreenPacket(container.containerId, windowType, io.papermc.paper.adventure.PaperAdventure.asVanilla(adventure$title))); // Paper - Prevent opening inventories when frozen player.containerMenu = container; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 92584ad04d35c021e1f16ca2338eafe9b07e8ff7..6e3d13d6c60491b7147f8bb3d60354b01d047cc7 100644 +index a57341356e3813423bb551902544ea9edb5950d7..9f279f469304ad83035035100eeb2559b4e8ea2e 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1440,10 +1440,21 @@ public class CraftEventFactory { +@@ -1438,10 +1438,21 @@ public class CraftEventFactory { } public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container) { @@ -105,7 +105,7 @@ index 92584ad04d35c021e1f16ca2338eafe9b07e8ff7..6e3d13d6c60491b7147f8bb3d60354b0 if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper } -@@ -1458,10 +1469,10 @@ public class CraftEventFactory { +@@ -1456,10 +1467,10 @@ public class CraftEventFactory { if (event.isCancelled()) { container.transferTo(player.containerMenu, craftPlayer); diff --git a/patches/server/0991-Actually-optimise-explosions.patch b/patches/server/0991-Actually-optimise-explosions.patch index a91b2d5ee805..f6cc1519c032 100644 --- a/patches/server/0991-Actually-optimise-explosions.patch +++ b/patches/server/0991-Actually-optimise-explosions.patch @@ -34,7 +34,7 @@ The results indicate that this logic is 5 times faster than Vanilla and 2.3 times faster than Lithium. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index d8a57d38d263e1d402327c7df21641b0f1ba0668..1fa02130dcb65b3109fde0cb612b538b1c4cd4cb 100644 +index 10f17478a148060ad2724bb5c79868cea3047ded..1fa02130dcb65b3109fde0cb612b538b1c4cd4cb 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -111,6 +111,271 @@ public class Explosion { @@ -370,7 +370,7 @@ index d8a57d38d263e1d402327c7df21641b0f1ba0668..1fa02130dcb65b3109fde0cb612b538b for (float f1 = 0.3F; f > 0.0F; f -= 0.22500001F) { - BlockPos blockposition = BlockPos.containing(d4, d5, d6); - BlockState iblockdata = this.level.getBlockState(blockposition); -- if (!iblockdata.isDestroyable()) continue; // Paper +- if (!iblockdata.isDestroyable()) continue; // Paper - Protect Bedrock and End Portal/Frames from being destroyed - FluidState fluid = iblockdata.getFluidState(); // Paper + // Paper start - optimise explosions + final int blockX = Mth.floor(d4); @@ -403,11 +403,10 @@ index d8a57d38d263e1d402327c7df21641b0f1ba0668..1fa02130dcb65b3109fde0cb612b538b - if (optional.isPresent()) { - f -= ((Float) optional.get() + 0.3F) * 0.3F; - } -- -- if (f > 0.0F && this.damageCalculator.shouldBlockExplode(this, this.level, blockposition, iblockdata, f)) { + if (!iblockdata.isDestroyable()) continue; // Paper + // Paper - optimise explosions -+ + +- if (f > 0.0F && this.damageCalculator.shouldBlockExplode(this, this.level, blockposition, iblockdata, f)) { + f -= cachedBlock.resistance; // Paper - optimise explosions + + if (f > 0.0F && cachedBlock.shouldExplode == null) { // Paper - optimise explosions diff --git a/patches/server/0995-Optimise-chunk-tick-iteration.patch b/patches/server/0995-Optimise-chunk-tick-iteration.patch index 617d6849fd10..f92bae64b8ce 100644 --- a/patches/server/0995-Optimise-chunk-tick-iteration.patch +++ b/patches/server/0995-Optimise-chunk-tick-iteration.patch @@ -108,7 +108,7 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754 List list; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 6e51837a99bb69240f82a061f2c808f78a8346a6..c6e764f140d3fe6342c6f224fe0d9643a3185cba 100644 +index 8984a159dbdaab16a1a69e98a504f6d9621bf69a..6a106d4b9db8265d1a62e7ae13b0f05596fa3587 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -140,7 +140,7 @@ index 6e51837a99bb69240f82a061f2c808f78a8346a6..c6e764f140d3fe6342c6f224fe0d9643 double d1 = (double) SectionPos.sectionToBlockCoord(pos.z, 8); double d2 = d0 - entity.getX(); diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java -index 33b0be8eb9bff8068ca7bdeffe34b7f2eaa6dbfb..328aba4a638f6147eb0c521cc464163ad7bd5840 100644 +index c80a625f7289e3bb33c6851d2072957e153ca1fb..7c425ac50c83757b66a2178bc19d4c920b82f12f 100644 --- a/src/main/java/net/minecraft/server/level/DistanceManager.java +++ b/src/main/java/net/minecraft/server/level/DistanceManager.java @@ -50,7 +50,7 @@ public abstract class DistanceManager { @@ -162,7 +162,7 @@ index 33b0be8eb9bff8068ca7bdeffe34b7f2eaa6dbfb..328aba4a638f6147eb0c521cc464163a //this.tickingTicketsTracker.addTicket(TicketType.PLAYER, chunkcoordintpair, this.getPlayerTicketLevel(), chunkcoordintpair); // Paper - no longer used } @@ -149,7 +149,7 @@ public abstract class DistanceManager { - if (objectset != null) objectset.remove(player); // Paper - some state corruption happens here, don't crash, clean up gracefully. + if (objectset != null) objectset.remove(player); // Paper - some state corruption happens here, don't crash, clean up gracefully if (objectset == null || objectset.isEmpty()) { // Paper this.playersPerChunk.remove(i); - this.naturalSpawnChunkCounter.update(i, Integer.MAX_VALUE, false); @@ -187,7 +187,7 @@ index 33b0be8eb9bff8068ca7bdeffe34b7f2eaa6dbfb..328aba4a638f6147eb0c521cc464163a public String getDebugStatus() { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 5152979bf81345fc365e7b16028c7d970d2f5856..44ada45d9bf2d9b48e5de1c3cb1a855902f3884b 100644 +index 5d8a3d4bd7be3092a1e2959d122f5bc1c87f0ae1..a9ec46a5a751b8b06046c58525f7f6d0894adc8f 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -516,18 +516,10 @@ public class ServerChunkCache extends ChunkSource { @@ -365,7 +365,7 @@ index 5152979bf81345fc365e7b16028c7d970d2f5856..44ada45d9bf2d9b48e5de1c3cb1a8559 gameprofilerfiller.pop(); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 23ede7bc9fcf923a70715a6f60449779ae52c62a..86038d8e2998b1100706171c814b0ef34a20ee14 100644 +index 6f06262d358a7f63a2ea35c0fd70b0c5aaa96182..ad6fd14f7f19c20967906a8e01a4f76ee80aaf84 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -325,6 +325,9 @@ public class ServerPlayer extends Player { diff --git a/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch index 6e519296401b..42a6b5c0cb4c 100644 --- a/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 86038d8e2998b1100706171c814b0ef34a20ee14..6872e223ff4b450af89a838f4caf7cf2ebcb818e 100644 +index ad6fd14f7f19c20967906a8e01a4f76ee80aaf84..ce2e29de3628aba893a96688c9bbc58d1fc984bc 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -944,22 +944,20 @@ public class ServerPlayer extends Player { @@ -50,7 +50,7 @@ index 86038d8e2998b1100706171c814b0ef34a20ee14..6872e223ff4b450af89a838f4caf7cf2 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a70633d9585f94e673c58fc69660d984ca169561..8814ffc0f3ebe352cd72f50d9f68704e4ee0e88c 100644 +index 18c73edca59c8bbd4ee57196c4455fb18d7869d9..0de5d58c9ed08292a2d0b478c5ce9f50a67f8a05 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -104,7 +104,7 @@ index a70633d9585f94e673c58fc69660d984ca169561..8814ffc0f3ebe352cd72f50d9f68704e return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6860e588ad9daaf3d9afa11132967a50eeefe860..7fc84405bc96d768fd373dd6844de4204a39cd6a 100644 +index 14880c5cd67eec5f92e4c7058b41c332bc0f871c..d59a38c62c1b13e6ecb2841fba65017104ed46dc 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -134,7 +134,7 @@ index 45906d273e6d6ec20cf44b4d07efdac68752ee9b..ac9eaeaf7df1e84ee588f371628c0a10 } diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index ab708b256183fc54fe8e13f341d8a38acf611739..a9c1f99ba2461333bd154ac16e812031f234f7a6 100644 +index 1e42372f038757b48990643aa2f118be415e0463..69f29af64c55e68d1906a0d46943751d7de66cf4 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -610,7 +610,7 @@ public class ArmorStand extends LivingEntity { @@ -165,10 +165,10 @@ index ab708b256183fc54fe8e13f341d8a38acf611739..a9c1f99ba2461333bd154ac16e812031 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6e3d13d6c60491b7147f8bb3d60354b01d047cc7..24917c3996d06677e9da72ab53902c9868e00d86 100644 +index 9f279f469304ad83035035100eeb2559b4e8ea2e..311175ea5979d22766d897bd9a5172abcb91f1be 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -939,17 +939,21 @@ public class CraftEventFactory { +@@ -937,17 +937,21 @@ public class CraftEventFactory { } public static EntityDeathEvent callEntityDeathEvent(net.minecraft.world.entity.LivingEntity victim) { @@ -194,7 +194,7 @@ index 6e3d13d6c60491b7147f8bb3d60354b01d047cc7..24917c3996d06677e9da72ab53902c98 populateFields(victim, event); // Paper - make cancellable CraftWorld world = (CraftWorld) entity.getWorld(); Bukkit.getServer().getPluginManager().callEvent(event); -@@ -963,19 +967,23 @@ public class CraftEventFactory { +@@ -961,19 +965,23 @@ public class CraftEventFactory { victim.expToDrop = event.getDroppedExp(); lootCheck.run(); // Paper - advancement triggers before destroying items @@ -222,7 +222,7 @@ index 6e3d13d6c60491b7147f8bb3d60354b01d047cc7..24917c3996d06677e9da72ab53902c98 event.setKeepInventory(keepInventory); event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel populateFields(victim, event); // Paper - make cancellable -@@ -994,10 +1002,14 @@ public class CraftEventFactory { +@@ -992,10 +1000,14 @@ public class CraftEventFactory { victim.expToDrop = event.getDroppedExp(); victim.newExp = event.getNewExp(); diff --git a/patches/server/1035-Add-drops-to-shear-events.patch b/patches/server/1035-Add-drops-to-shear-events.patch index d65d09d7d022..e8dc631fb52b 100644 --- a/patches/server/1035-Add-drops-to-shear-events.patch +++ b/patches/server/1035-Add-drops-to-shear-events.patch @@ -233,10 +233,10 @@ index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..b5d6857eaf2bed14adcb5f5e80d91b44 } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 24917c3996d06677e9da72ab53902c9868e00d86..55c26840957f69860816c917c16f59d02074b388 100644 +index 311175ea5979d22766d897bd9a5172abcb91f1be..0620857b4a248657c8fdcb9b12715fa02379a291 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1718,20 +1718,20 @@ public class CraftEventFactory { +@@ -1716,20 +1716,20 @@ public class CraftEventFactory { return event; } From 98e6d20ebd40be86f56d7710f037b27303ba970e Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 21 Jan 2024 12:53:04 +0100 Subject: [PATCH 32/45] [ci skip] Add more identifying patch comments --- patches/api/0345-Add-GameEvent-tags.patch | 12 +-- ...add-missing-Experimental-annotations.patch | 4 +- ...ptimize-Captured-BlockEntity-Lookup.patch} | 8 +- .../0302-Mob-Spawner-API-Enhancements.patch | 4 +- ...le-Keep-Spawn-Loaded-range-per-world.patch | 47 ++++++------ ...307-Allow-Saving-of-Oversized-Chunks.patch | 40 ++-------- ...309-Fix-World-isChunkGenerated-calls.patch | 24 +++--- ...ate-location-if-we-failed-to-read-it.patch | 8 +- ...al-Spawned-mobs-towards-natural-spaw.patch | 4 +- .../0313-offset-item-frame-ticking.patch | 4 +- ...revent-consuming-the-wrong-itemstack.patch | 10 +-- ...15-Dont-send-unnecessary-sign-update.patch | 4 +- ...d-option-to-disable-pillager-patrols.patch | 4 +- ...0317-Flat-bedrock-generator-settings.patch | 34 ++++----- ...nk-loads-when-villagers-try-to-find-.patch | 6 +- ...5656-Fix-Follow-Range-Initial-Target.patch | 12 +-- .../0320-Duplicate-UUID-Resolve-Option.patch | 8 +- ...Chunks-from-Hoppers-and-other-things.patch | 6 +- ...ptimise-EntityGetter-getPlayerByUUID.patch | 4 +- ...mize-call-to-getFluid-for-explosions.patch | 4 +- ...k-in-stack-not-having-effects-when-d.patch | 1 - ...rializing-mismatching-chunk-coordina.patch | 12 +-- ... 0330-Alternative-item-despawn-rate.patch} | 16 ++-- ...x-items-vanishing-through-end-portal.patch | 8 +- ...0333-Optional-per-player-mob-spawns.patch} | 74 +++++++++---------- ...get-gravity-in-void.-Fixes-MC-167279.patch | 6 +- ...336-Improve-Block-breakNaturally-API.patch | 6 +- ...e-getChunkAt-calls-for-loaded-chunks.patch | 8 +- .../0338-Add-debug-for-sync-chunk-loads.patch | 4 +- .../0339-Improve-java-version-check.patch | 6 +- .../server/0340-Add-ThrownEggHatchEvent.patch | 6 +- patches/server/0341-Entity-Jump-API.patch | 18 ++--- ...n-to-nerf-pigmen-from-nether-portals.patch | 10 +-- .../0343-Make-the-GUI-graph-fancier.patch | 4 +- ...ripwire-hook-placement-before-update.patch | 4 +- ...to-allow-iron-golems-to-spawn-in-air.patch | 4 +- ...-chance-of-villager-zombie-infection.patch | 6 +- .../server/0348-Optimise-Chunk-getFluid.patch | 16 ++-- ...spawn-settings-and-per-player-option.patch | 8 +- ...item-duplication-and-teleport-issues.patch | 6 +- ...and-End-Portal-Frames-from-being-des.patch | 4 +- ...-position-and-AABB-are-never-invalid.patch | 6 +- ...ld-Difficulty-Remembering-Difficulty.patch | 12 +-- ...-Plugin-Tickets-to-API-Chunk-Methods.patch | 6 +- ...geEvent-not-firing-for-all-use-cases.patch | 6 +- ...erver-load-chunks-from-newer-version.patch | 4 +- ...y-Counter-to-allow-plugins-to-use-va.patch | 4 +- patches/server/0457-Entity-isTicking.patch | 4 +- .../0497-MC-4-Fix-item-position-desync.patch | 4 +- ...ptimize-indirect-passenger-iteration.patch | 6 +- ...aper-mobcaps-and-paper-playermobcaps.patch | 8 +- ...culate-regionfile-header-if-it-is-co.patch | 12 +-- ...l-more-information-in-watchdog-dumps.patch | 8 +- ...-data-to-disk-if-it-serializes-witho.patch | 14 ++-- ...711-Fix-tripwire-state-inconsistency.patch | 4 +- .../0831-Fix-a-bunch-of-vanilla-bugs.patch | 16 ++-- patches/server/0859-Friction-API.patch | 10 +-- .../0863-Player-Entity-Tracking-Events.patch | 6 +- .../server/0873-Improve-PortalEvents.patch | 4 +- ...Folia-scheduler-and-owned-region-API.patch | 12 +-- ...ng-PreCreatureSpawnEvent-with-per-pl.patch | 14 ++-- ...y-handle-BlockBreakEvent-isDropItems.patch | 8 +- ...nfigurable-Region-Compression-Format.patch | 4 +- .../0991-Actually-optimise-explosions.patch | 4 +- .../0995-Optimise-chunk-tick-iteration.patch | 8 +- .../server/0996-Lag-compensation-ticks.patch | 12 +-- 66 files changed, 315 insertions(+), 355 deletions(-) rename patches/server/{0300-Optimize-Captured-TileEntity-Lookup.patch => 0300-Optimize-Captured-BlockEntity-Lookup.patch} (84%) rename patches/server/{0330-Implement-alternative-item-despawn-rate.patch => 0330-Alternative-item-despawn-rate.patch} (84%) rename patches/server/{0333-implement-optional-per-player-mob-spawns.patch => 0333-Optional-per-player-mob-spawns.patch} (84%) diff --git a/patches/api/0345-Add-GameEvent-tags.patch b/patches/api/0345-Add-GameEvent-tags.patch index 12634980d685..ca433ecee70b 100644 --- a/patches/api/0345-Add-GameEvent-tags.patch +++ b/patches/api/0345-Add-GameEvent-tags.patch @@ -5,18 +5,10 @@ Subject: [PATCH] Add GameEvent tags diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java -index 31bdecf8cbea40129a568c1761f27fa1ae0f535a..35d52539f264202d50d70e6aaab4678571dc8ad2 100644 +index 31bdecf8cbea40129a568c1761f27fa1ae0f535a..741c34b74811666c3b38e9d6fbb74b0a7bc64699 100644 --- a/src/main/java/org/bukkit/Tag.java +++ b/src/main/java/org/bukkit/Tag.java -@@ -968,6 +968,7 @@ public interface Tag extends Keyed { - * Vanilla tag representing entities which are dismounted when underwater. - */ - Tag ENTITY_TYPES_DISMOUNTS_UNDERWATER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("dismounts_underwater"), EntityType.class); -+ - /** - * Vanilla tag representing entities which are not controlled by their mount. - */ -@@ -985,6 +986,25 @@ public interface Tag extends Keyed { +@@ -985,6 +985,25 @@ public interface Tag extends Keyed { */ Tag ENTITY_TYPES_CAN_TURN_IN_BOATS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_turn_in_boats"), EntityType.class); diff --git a/patches/api/0446-add-missing-Experimental-annotations.patch b/patches/api/0446-add-missing-Experimental-annotations.patch index 67d311bcc876..0cebb60f97c1 100644 --- a/patches/api/0446-add-missing-Experimental-annotations.patch +++ b/patches/api/0446-add-missing-Experimental-annotations.patch @@ -579,10 +579,10 @@ index 72ea6ddd00eed73459d700d657929f83ba1ca7ee..bb1b6bc9349af6dec369420035e86092 ITEM_CHORUS_FRUIT_TELEPORT("item.chorus_fruit.teleport"), ITEM_CROP_PLANT("item.crop.plant"), diff --git a/src/main/java/org/bukkit/Tag.java b/src/main/java/org/bukkit/Tag.java -index 35d52539f264202d50d70e6aaab4678571dc8ad2..8b584130c039ba915f28dc87f13c2538f26134f2 100644 +index 741c34b74811666c3b38e9d6fbb74b0a7bc64699..1137a21afa0283fa3d391415e98171e3c160aa1f 100644 --- a/src/main/java/org/bukkit/Tag.java +++ b/src/main/java/org/bukkit/Tag.java -@@ -976,14 +976,17 @@ public interface Tag extends Keyed { +@@ -975,14 +975,17 @@ public interface Tag extends Keyed { /** * Vanilla tag representing entities which deflect arrows. */ diff --git a/patches/server/0300-Optimize-Captured-TileEntity-Lookup.patch b/patches/server/0300-Optimize-Captured-BlockEntity-Lookup.patch similarity index 84% rename from patches/server/0300-Optimize-Captured-TileEntity-Lookup.patch rename to patches/server/0300-Optimize-Captured-BlockEntity-Lookup.patch index 88c17cf948a0..4fb0ee109e93 100644 --- a/patches/server/0300-Optimize-Captured-TileEntity-Lookup.patch +++ b/patches/server/0300-Optimize-Captured-BlockEntity-Lookup.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 6 Apr 2019 10:16:48 -0400 -Subject: [PATCH] Optimize Captured TileEntity Lookup +Subject: [PATCH] Optimize Captured BlockEntity Lookup upstream was doing a containsKey/get pattern, and always doing it at that. that scenario is only even valid if were in the middle of a block place. @@ -10,7 +10,7 @@ Optimize to check if the captured list even has values in it, and also to just do a get call since the value can never be null. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b10c93cbcf264a3e13d48f30a2c09ae5568a510e..3fdec0ff323ac94517f1ab9a13764a8959148127 100644 +index b10c93cbcf264a3e13d48f30a2c09ae5568a510e..c8b2399c55c8ea4fcb953202c0ea74d95b47c359 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -998,9 +998,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -19,12 +19,12 @@ index b10c93cbcf264a3e13d48f30a2c09ae5568a510e..3fdec0ff323ac94517f1ab9a13764a89 public BlockEntity getBlockEntity(BlockPos blockposition, boolean validate) { - if (this.capturedTileEntities.containsKey(blockposition)) { - return this.capturedTileEntities.get(blockposition); -+ // Paper start - Optimize capturedTileEntities lookup ++ // Paper start - Perf: Optimize capturedTileEntities lookup + net.minecraft.world.level.block.entity.BlockEntity blockEntity; + if (!this.capturedTileEntities.isEmpty() && (blockEntity = this.capturedTileEntities.get(blockposition)) != null) { + return blockEntity; } -+ // Paper end ++ // Paper end - Perf: Optimize capturedTileEntities lookup // CraftBukkit end return this.isOutsideBuildHeight(blockposition) ? null : (!this.isClientSide && !io.papermc.paper.util.TickThread.isTickThread() ? null : this.getChunkAt(blockposition).getBlockEntity(blockposition, LevelChunk.EntityCreationType.IMMEDIATE)); // Paper - rewrite chunk system } diff --git a/patches/server/0302-Mob-Spawner-API-Enhancements.patch b/patches/server/0302-Mob-Spawner-API-Enhancements.patch index 512623b3eda9..55919a80ca5c 100644 --- a/patches/server/0302-Mob-Spawner-API-Enhancements.patch +++ b/patches/server/0302-Mob-Spawner-API-Enhancements.patch @@ -9,7 +9,7 @@ public net.minecraft.world.level.BaseSpawner delay(Lnet/minecraft/world/level/Le public net.minecraft.world.level.BaseSpawner setNextSpawnData(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/SpawnData;)V diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 231674f1483ad71630ac71ba92efc50f94a5659b..0578ac12d92f9af0b0113587db9351b4a41bedd5 100644 +index 231674f1483ad71630ac71ba92efc50f94a5659b..3b48d50bd3727647dc2d73cccc3fbd8a4f649715 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java @@ -235,7 +235,13 @@ public abstract class BaseSpawner { @@ -64,7 +64,7 @@ index 231674f1483ad71630ac71ba92efc50f94a5659b..0578ac12d92f9af0b0113587db9351b4 + + nbt.putShort("MinSpawnDelay", (short) Math.min(Short.MAX_VALUE, this.minSpawnDelay)); + nbt.putShort("MaxSpawnDelay", (short) Math.min(Short.MAX_VALUE, this.maxSpawnDelay)); -+ // Paper nbt ++ // Paper end nbt.putShort("SpawnCount", (short) this.spawnCount); nbt.putShort("MaxNearbyEntities", (short) this.maxNearbyEntities); nbt.putShort("RequiredPlayerRange", (short) this.requiredPlayerRange); diff --git a/patches/server/0306-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/patches/server/0306-Configurable-Keep-Spawn-Loaded-range-per-world.patch index fd428506aa5d..b4688094268f 100644 --- a/patches/server/0306-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/patches/server/0306-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -6,50 +6,49 @@ Subject: [PATCH] Configurable Keep Spawn Loaded range per world This lets you disable it for some worlds and lower it for others. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f317b9fdb2bfbae9babd64d4801f190042fc1867..6407af497c719d0f6a4446192bed622af34d6bc6 100644 +index f317b9fdb2bfbae9babd64d4801f190042fc1867..1d069e33f64463e96199fa336336ffc44e3ed10e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -768,30 +768,33 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop extends CraftBlockStat this.tileEntity = tileEntity; -+ try { // Paper - show location on failure ++ try { // Paper - Show blockstate location if we failed to read it // Paper start this.snapshotDisabled = DISABLE_SNAPSHOT; if (DISABLE_SNAPSHOT) { @@ -20,14 +20,14 @@ index f046f507a095e0cb8f839b9b4b06add3a671486b..f7f211b4f08a7f21a183078affd6f875 this.load(this.snapshot); } // Paper end -+ // Paper start - show location on failure ++ // Paper start - Show blockstate location if we failed to read it + } catch (Throwable thr) { + if (thr instanceof ThreadDeath) { + throw (ThreadDeath)thr; + } + throw new RuntimeException("Failed to read BlockState at: world: " + this.getWorld().getName() + " location: (" + this.getX() + ", " + this.getY() + ", " + this.getZ() + ")", thr); + } -+ // Paper end ++ // Paper end - Show blockstate location if we failed to read it } protected CraftBlockEntityState(CraftBlockEntityState state) { diff --git a/patches/server/0311-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch b/patches/server/0311-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch index 239e4cf97445..5e909fa2195a 100644 --- a/patches/server/0311-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch +++ b/patches/server/0311-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch @@ -17,7 +17,7 @@ This should fully solve all of the issues around it so that only natural influences natural spawns. diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 9ed7abddf30d298a5abb04974efd1b470d015b09..fe38079d69f3e9987ad5ab077ae09d05017a681a 100644 +index 9ed7abddf30d298a5abb04974efd1b470d015b09..a19c0e30ebcea8feff035a451ded567dfa86dfff 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -88,6 +88,13 @@ public final class NaturalSpawner { @@ -30,7 +30,7 @@ index 9ed7abddf30d298a5abb04974efd1b470d015b09..fe38079d69f3e9987ad5ab077ae09d05 + entity.spawnReason == org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.CHUNK_GEN)) { + continue; + } -+ // Paper end ++ // Paper end - Only count natural spawns BlockPos blockposition = entity.blockPosition(); chunkSource.query(ChunkPos.asLong(blockposition), (chunk) -> { diff --git a/patches/server/0313-offset-item-frame-ticking.patch b/patches/server/0313-offset-item-frame-ticking.patch index 9d852595f22e..36a404e8ffe0 100644 --- a/patches/server/0313-offset-item-frame-ticking.patch +++ b/patches/server/0313-offset-item-frame-ticking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] offset item frame ticking diff --git a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java -index 469e4cc75eab1344a159ed5addd53f50cea7bd90..5f4c42c4ba44923cabb873bfad33abc2b1362e73 100644 +index 469e4cc75eab1344a159ed5addd53f50cea7bd90..f88918b7c15b72f4cb1dd313734f550432fd5858 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java +++ b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java @@ -38,7 +38,7 @@ public abstract class HangingEntity extends Entity { @@ -13,7 +13,7 @@ index 469e4cc75eab1344a159ed5addd53f50cea7bd90..5f4c42c4ba44923cabb873bfad33abc2 return entity instanceof HangingEntity; }; - private int checkInterval; -+ private int checkInterval; { this.checkInterval = this.getId() % this.level().spigotConfig.hangingTickFrequency; } // Paper ++ private int checkInterval; { this.checkInterval = this.getId() % this.level().spigotConfig.hangingTickFrequency; } // Paper - Perf: offset item frame ticking public BlockPos pos; protected Direction direction; diff --git a/patches/server/0314-Prevent-consuming-the-wrong-itemstack.patch b/patches/server/0314-Prevent-consuming-the-wrong-itemstack.patch index 351fd22e904a..a5a61f6c122d 100644 --- a/patches/server/0314-Prevent-consuming-the-wrong-itemstack.patch +++ b/patches/server/0314-Prevent-consuming-the-wrong-itemstack.patch @@ -5,22 +5,22 @@ Subject: [PATCH] Prevent consuming the wrong itemstack diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8e89eb11e8477c921b30840644b6c3ba9d18c3ef..a3eac4dfe28bc55721d292e2f309b3467a3db140 100644 +index 8e89eb11e8477c921b30840644b6c3ba9d18c3ef..f893b0a8fac50f83ed847281f8283b32c6415777 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3709,9 +3709,14 @@ public abstract class LivingEntity extends Entity implements Attackable { } public void startUsingItem(InteractionHand hand) { -+ // Paper start - forwarder to method with forceUpdate parameter ++ // Paper start - Prevent consuming the wrong itemstack + this.startUsingItem(hand, false); + } + public void startUsingItem(InteractionHand hand, boolean forceUpdate) { -+ // Paper end ++ // Paper end - Prevent consuming the wrong itemstack ItemStack itemstack = this.getItemInHand(hand); - if (!itemstack.isEmpty() && !this.isUsingItem()) { -+ if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper use override flag ++ if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper - Prevent consuming the wrong itemstack this.useItem = itemstack; this.useItemRemaining = itemstack.getUseDuration(); if (!this.level().isClientSide) { @@ -28,7 +28,7 @@ index 8e89eb11e8477c921b30840644b6c3ba9d18c3ef..a3eac4dfe28bc55721d292e2f309b346 this.releaseUsingItem(); } else { if (!this.useItem.isEmpty() && this.isUsingItem()) { -+ this.startUsingItem(this.getUsedItemHand(), true); // Paper ++ this.startUsingItem(this.getUsedItemHand(), true); // Paper - Prevent consuming the wrong itemstack this.triggerItemUseEffects(this.useItem, 16); // CraftBukkit start - fire PlayerItemConsumeEvent ItemStack itemstack; diff --git a/patches/server/0315-Dont-send-unnecessary-sign-update.patch b/patches/server/0315-Dont-send-unnecessary-sign-update.patch index fd7adfb39d90..6d4799456ee9 100644 --- a/patches/server/0315-Dont-send-unnecessary-sign-update.patch +++ b/patches/server/0315-Dont-send-unnecessary-sign-update.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Dont send unnecessary sign update diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index a822b190aeee1d644c3509bb75106fa4dfdd963f..1a54db9f8b2fb3071e79ec26c49242b528b8cd9e 100644 +index a822b190aeee1d644c3509bb75106fa4dfdd963f..9939cad5af2d7873f188f18978029663a8d785de 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java @@ -184,6 +184,7 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C this.level.sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), 3); } else { SignBlockEntity.LOGGER.warn("Player {} just tried to change non-editable sign", player.getName().getString()); -+ if (player.distanceToSqr(this.getBlockPos().getX(), this.getBlockPos().getY(), this.getBlockPos().getZ()) < 32 * 32) // Paper ++ if (player.distanceToSqr(this.getBlockPos().getX(), this.getBlockPos().getY(), this.getBlockPos().getZ()) < 32 * 32) // Paper - Dont send far away sign update ((ServerPlayer) player).connection.send(this.getUpdatePacket()); // CraftBukkit } } diff --git a/patches/server/0316-Add-option-to-disable-pillager-patrols.patch b/patches/server/0316-Add-option-to-disable-pillager-patrols.patch index 65d645b929eb..e648d6662389 100644 --- a/patches/server/0316-Add-option-to-disable-pillager-patrols.patch +++ b/patches/server/0316-Add-option-to-disable-pillager-patrols.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add option to disable pillager patrols diff --git a/src/main/java/net/minecraft/world/level/levelgen/PatrolSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PatrolSpawner.java -index 65d9211b812995869e58900a2873583658122312..e5918fa3be107ac3a2fc8831fd78733a7506730a 100644 +index 65d9211b812995869e58900a2873583658122312..c7aea059de151cf8ae6e660785e176586bc23ff3 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PatrolSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PatrolSpawner.java @@ -25,6 +25,7 @@ public class PatrolSpawner implements CustomSpawner { @Override public int tick(ServerLevel world, boolean spawnMonsters, boolean spawnAnimals) { -+ if (world.paperConfig().entities.behavior.pillagerPatrols.disable) return 0; // Paper ++ if (world.paperConfig().entities.behavior.pillagerPatrols.disable) return 0; // Paper - Add option to disable pillager patrols if (!spawnMonsters) { return 0; } else if (!world.getGameRules().getBoolean(GameRules.RULE_DO_PATROL_SPAWNING)) { diff --git a/patches/server/0317-Flat-bedrock-generator-settings.patch b/patches/server/0317-Flat-bedrock-generator-settings.patch index e0e903d76cf0..7e54f34f2290 100644 --- a/patches/server/0317-Flat-bedrock-generator-settings.patch +++ b/patches/server/0317-Flat-bedrock-generator-settings.patch @@ -101,19 +101,19 @@ index 0000000000000000000000000000000000000000..02d98ec591b676acf64460d14d608860 + } +} diff --git a/src/main/java/net/minecraft/server/Bootstrap.java b/src/main/java/net/minecraft/server/Bootstrap.java -index c887d34171f89c731d76c4ca92c70be2b1edc1e6..5816998cde8504d58732e63eb2179a5d828f35bb 100644 +index c887d34171f89c731d76c4ca92c70be2b1edc1e6..438ae006a8e7da0e5124415b8350ebfd45ac6a10 100644 --- a/src/main/java/net/minecraft/server/Bootstrap.java +++ b/src/main/java/net/minecraft/server/Bootstrap.java @@ -78,6 +78,7 @@ public class Bootstrap { CauldronInteraction.bootStrap(); // Paper start BuiltInRegistries.bootStrap(() -> { -+ io.papermc.paper.world.worldgen.OptionallyFlatBedrockConditionSource.bootstrap(); // Paper - optional flat bedrock ++ io.papermc.paper.world.worldgen.OptionallyFlatBedrockConditionSource.bootstrap(); // Paper - Flat bedrock generator settings io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.enterBootstrappers(); // Paper - Entrypoint for bootstrapping }); // Paper end diff --git a/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java b/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java -index 902156477bdfc9917105f1229f760c26e5af302a..58609a0911c4e32b6f80f050cd3d23f70ad75b1b 100644 +index 902156477bdfc9917105f1229f760c26e5af302a..98c7f695093acbcf9382a5f07a7a89e373709763 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator.java @@ -207,7 +207,7 @@ public final class NoiseBasedChunkGenerator extends ChunkGenerator { @@ -121,7 +121,7 @@ index 902156477bdfc9917105f1229f760c26e5af302a..58609a0911c4e32b6f80f050cd3d23f7 public void buildSurface(WorldGenRegion region, StructureManager structures, RandomState noiseConfig, ChunkAccess chunk) { if (!SharedConstants.debugVoidTerrain(chunk.getPos())) { - WorldGenerationContext worldgenerationcontext = new WorldGenerationContext(this, region); -+ WorldGenerationContext worldgenerationcontext = new WorldGenerationContext(this, region, region.getMinecraftWorld()); // Paper ++ WorldGenerationContext worldgenerationcontext = new WorldGenerationContext(this, region, region.getMinecraftWorld()); // Paper - Flat bedrock generator settings this.buildSurface(chunk, worldgenerationcontext, noiseConfig, structures, region.getBiomeManager(), region.registryAccess().registryOrThrow(Registries.BIOME), Blender.of(region)); } @@ -130,26 +130,26 @@ index 902156477bdfc9917105f1229f760c26e5af302a..58609a0911c4e32b6f80f050cd3d23f7 }); Aquifer aquifer = noisechunk.aquifer(); - CarvingContext carvingcontext = new CarvingContext(this, chunkRegion.registryAccess(), chunk.getHeightAccessorForGeneration(), noisechunk, noiseConfig, ((NoiseGeneratorSettings) this.settings.value()).surfaceRule()); -+ CarvingContext carvingcontext = new CarvingContext(this, chunkRegion.registryAccess(), chunk.getHeightAccessorForGeneration(), noisechunk, noiseConfig, ((NoiseGeneratorSettings) this.settings.value()).surfaceRule(), chunkRegion.getMinecraftWorld()); // Paper ++ CarvingContext carvingcontext = new CarvingContext(this, chunkRegion.registryAccess(), chunk.getHeightAccessorForGeneration(), noisechunk, noiseConfig, ((NoiseGeneratorSettings) this.settings.value()).surfaceRule(), chunkRegion.getMinecraftWorld()); // Paper - Flat bedrock generator settings CarvingMask carvingmask = ((ProtoChunk) chunk).getOrCreateCarvingMask(carverStep); for (int j = -8; j <= 8; ++j) { diff --git a/src/main/java/net/minecraft/world/level/levelgen/WorldGenerationContext.java b/src/main/java/net/minecraft/world/level/levelgen/WorldGenerationContext.java -index b99283c31193e2110f6e3f39c23dbfc2442bab2b..1c9d9ecdafb2bd04348045ba0404da052dcd6437 100644 +index b99283c31193e2110f6e3f39c23dbfc2442bab2b..a34e53249668d917c9d77c6837b91360a2349bbc 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/WorldGenerationContext.java +++ b/src/main/java/net/minecraft/world/level/levelgen/WorldGenerationContext.java @@ -6,10 +6,13 @@ import net.minecraft.world.level.chunk.ChunkGenerator; public class WorldGenerationContext { private final int minY; private final int height; -+ private final @javax.annotation.Nullable net.minecraft.world.level.Level level; // Paper ++ private final @javax.annotation.Nullable net.minecraft.world.level.Level level; // Paper - Flat bedrock generator settings - public WorldGenerationContext(ChunkGenerator generator, LevelHeightAccessor world) { -+ public WorldGenerationContext(ChunkGenerator generator, LevelHeightAccessor world) { this(generator, world, null); } // Paper -+ public WorldGenerationContext(ChunkGenerator generator, LevelHeightAccessor world, @org.jetbrains.annotations.Nullable net.minecraft.world.level.Level level) { // Paper ++ public WorldGenerationContext(ChunkGenerator generator, LevelHeightAccessor world) { this(generator, world, null); } // Paper - Flat bedrock generator settings ++ public WorldGenerationContext(ChunkGenerator generator, LevelHeightAccessor world, @org.jetbrains.annotations.Nullable net.minecraft.world.level.Level level) { // Paper - Flat bedrock generator settings this.minY = Math.max(world.getMinBuildHeight(), generator.getMinY()); this.height = Math.min(world.getHeight(), generator.getGenDepth()); -+ this.level = level; // Paper ++ this.level = level; // Paper - Flat bedrock generator settings } public int getMinGenY() { @@ -158,17 +158,17 @@ index b99283c31193e2110f6e3f39c23dbfc2442bab2b..1c9d9ecdafb2bd04348045ba0404da05 return this.height; } + -+ // Paper start ++ // Paper start - Flat bedrock generator settings + public net.minecraft.world.level.Level getWorld() { + if (this.level == null) { + throw new NullPointerException("WorldGenerationContext was initialized without a Level, but WorldGenerationContext#getWorld was called"); + } + return this.level; + } -+ // Paper end ++ // Paper end - Flat bedrock generator settings } diff --git a/src/main/java/net/minecraft/world/level/levelgen/carver/CarvingContext.java b/src/main/java/net/minecraft/world/level/levelgen/carver/CarvingContext.java -index a745458ea3581ea91a68c863e3fd0a0292d73a61..f84ee8afe95f912a972e37fbae7a06ecdd3aba06 100644 +index a745458ea3581ea91a68c863e3fd0a0292d73a61..6fcb84e4d2cd310bd1e04f4cf7b9bc2bbbf4fdad 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/carver/CarvingContext.java +++ b/src/main/java/net/minecraft/world/level/levelgen/carver/CarvingContext.java @@ -21,8 +21,8 @@ public class CarvingContext extends WorldGenerationContext { @@ -177,13 +177,13 @@ index a745458ea3581ea91a68c863e3fd0a0292d73a61..f84ee8afe95f912a972e37fbae7a06ec - public CarvingContext(NoiseBasedChunkGenerator noiseChunkGenerator, RegistryAccess registryManager, LevelHeightAccessor heightLimitView, NoiseChunk chunkNoiseSampler, RandomState noiseConfig, SurfaceRules.RuleSource materialRule) { - super(noiseChunkGenerator, heightLimitView); -+ public CarvingContext(NoiseBasedChunkGenerator noiseChunkGenerator, RegistryAccess registryManager, LevelHeightAccessor heightLimitView, NoiseChunk chunkNoiseSampler, RandomState noiseConfig, SurfaceRules.RuleSource materialRule, @javax.annotation.Nullable net.minecraft.world.level.Level level) { // Paper -+ super(noiseChunkGenerator, heightLimitView, level); // Paper ++ public CarvingContext(NoiseBasedChunkGenerator noiseChunkGenerator, RegistryAccess registryManager, LevelHeightAccessor heightLimitView, NoiseChunk chunkNoiseSampler, RandomState noiseConfig, SurfaceRules.RuleSource materialRule, @javax.annotation.Nullable net.minecraft.world.level.Level level) { // Paper - Flat bedrock generator settings ++ super(noiseChunkGenerator, heightLimitView, level); // Paper - Flat bedrock generator settings this.registryAccess = registryManager; this.noiseChunk = chunkNoiseSampler; this.randomState = noiseConfig; diff --git a/src/main/java/net/minecraft/world/level/levelgen/placement/PlacementContext.java b/src/main/java/net/minecraft/world/level/levelgen/placement/PlacementContext.java -index 640c2683c842655bbaee8f293f1c2613ef44844e..53d818b0cc602f827d0b907e293515f6810c6792 100644 +index 640c2683c842655bbaee8f293f1c2613ef44844e..c7dfd844c7846281ceff0d443c0160054fd36c5c 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/placement/PlacementContext.java +++ b/src/main/java/net/minecraft/world/level/levelgen/placement/PlacementContext.java @@ -18,7 +18,7 @@ public class PlacementContext extends WorldGenerationContext { @@ -191,7 +191,7 @@ index 640c2683c842655bbaee8f293f1c2613ef44844e..53d818b0cc602f827d0b907e293515f6 public PlacementContext(WorldGenLevel world, ChunkGenerator generator, Optional placedFeature) { - super(generator, world); -+ super(generator, world, world.getLevel()); // Paper ++ super(generator, world, world.getLevel()); // Paper - Flat bedrock generator settings this.level = world; this.generator = generator; this.topFeature = placedFeature; diff --git a/patches/server/0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch b/patches/server/0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch index 1bf426b9ec92..983b04c068c4 100644 --- a/patches/server/0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch +++ b/patches/server/0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent sync chunk loads when villagers try to find beds diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/SleepInBed.java b/src/main/java/net/minecraft/world/entity/ai/behavior/SleepInBed.java -index 964fc8615d071d33c821f0c54ac1ebd4884df0cd..dcfc668503c50927b4a4dbb3988d531215d513f8 100644 +index 964fc8615d071d33c821f0c54ac1ebd4884df0cd..271e913a87a782dbf12686887f768d899bfb0fbf 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/SleepInBed.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/SleepInBed.java @@ -43,7 +43,8 @@ public class SleepInBed extends Behavior { @@ -13,8 +13,8 @@ index 964fc8615d071d33c821f0c54ac1ebd4884df0cd..dcfc668503c50927b4a4dbb3988d5312 } - BlockState blockState = world.getBlockState(globalPos.pos()); -+ BlockState blockState = world.getBlockStateIfLoaded(globalPos.pos()); // Paper -+ if (blockState == null) { return false; } // Paper ++ BlockState blockState = world.getBlockStateIfLoaded(globalPos.pos()); // Paper - Prevent sync chunk loads when villagers try to find beds ++ if (blockState == null) { return false; } // Paper - Prevent sync chunk loads when villagers try to find beds return globalPos.pos().closerToCenterThan(entity.position(), 2.0D) && blockState.is(BlockTags.BEDS) && !blockState.getValue(BedBlock.OCCUPIED); } } diff --git a/patches/server/0319-MC-145656-Fix-Follow-Range-Initial-Target.patch b/patches/server/0319-MC-145656-Fix-Follow-Range-Initial-Target.patch index 4494b2285336..20a9321020a7 100644 --- a/patches/server/0319-MC-145656-Fix-Follow-Range-Initial-Target.patch +++ b/patches/server/0319-MC-145656-Fix-Follow-Range-Initial-Target.patch @@ -5,19 +5,19 @@ Subject: [PATCH] MC-145656 Fix Follow Range Initial Target diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/target/NearestAttackableTargetGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/target/NearestAttackableTargetGoal.java -index 0dad5be671f990d0edf0a155e2534b3812438902..370e601ff5adccc3924055b69b42dd2f1970ae45 100644 +index 0dad5be671f990d0edf0a155e2534b3812438902..175ba1184fc997f562f0834b172e17dc1b5b3027 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/target/NearestAttackableTargetGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/target/NearestAttackableTargetGoal.java @@ -38,6 +38,7 @@ public class NearestAttackableTargetGoal extends TargetG this.randomInterval = reducedTickDelay(reciprocalChance); this.setFlags(EnumSet.of(Goal.Flag.TARGET)); this.targetConditions = TargetingConditions.forCombat().range(this.getFollowDistance()).selector(targetPredicate); -+ if (mob.level().paperConfig().entities.entitiesTargetWithFollowRange) this.targetConditions.useFollowRange(); // Paper ++ if (mob.level().paperConfig().entities.entitiesTargetWithFollowRange) this.targetConditions.useFollowRange(); // Paper - Fix MC-145656 } @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java -index f29823f2e8a54bd4e81e2940b5c505b152f23e88..58422f00c7d64dbd1cf6d7211c9838875cbe7778 100644 +index f29823f2e8a54bd4e81e2940b5c505b152f23e88..fae0dbfb6ac09a0c152c0f74a72583f44316def7 100644 --- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java +++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java @@ -76,7 +76,7 @@ public class TargetingConditions { @@ -25,7 +25,7 @@ index f29823f2e8a54bd4e81e2940b5c505b152f23e88..58422f00c7d64dbd1cf6d7211c983887 if (this.range > 0.0D) { double d = this.testInvisible ? targetEntity.getVisibilityPercent(baseEntity) : 1.0D; - double e = Math.max(this.range * d, 2.0D); -+ double e = Math.max((this.useFollowRange ? this.getFollowRange(baseEntity) : this.range) * d, 2.0D); // Paper ++ double e = Math.max((this.useFollowRange ? this.getFollowRange(baseEntity) : this.range) * d, 2.0D); // Paper - Fix MC-145656 double f = baseEntity.distanceToSqr(targetEntity.getX(), targetEntity.getY(), targetEntity.getZ()); if (f > e * e) { return false; @@ -34,7 +34,7 @@ index f29823f2e8a54bd4e81e2940b5c505b152f23e88..58422f00c7d64dbd1cf6d7211c983887 } } + -+ // Paper start ++ // Paper start - Fix MC-145656 + private boolean useFollowRange = false; + + public TargetingConditions useFollowRange() { @@ -46,5 +46,5 @@ index f29823f2e8a54bd4e81e2940b5c505b152f23e88..58422f00c7d64dbd1cf6d7211c983887 + net.minecraft.world.entity.ai.attributes.AttributeInstance attributeinstance = entityliving.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.FOLLOW_RANGE); + return attributeinstance == null ? 16.0D : attributeinstance.getValue(); + } -+ // Paper end ++ // Paper end - Fix MC-145656 } diff --git a/patches/server/0320-Duplicate-UUID-Resolve-Option.patch b/patches/server/0320-Duplicate-UUID-Resolve-Option.patch index 6ef03d82ccde..37f1b78413fc 100644 --- a/patches/server/0320-Duplicate-UUID-Resolve-Option.patch +++ b/patches/server/0320-Duplicate-UUID-Resolve-Option.patch @@ -56,14 +56,14 @@ index cbeaadaecf816070b3a37938c8e683180939afc4..95e5073a68e4dd38b70e8268daf21609 public static void onChunkHolderCreate(final ServerLevel level, final ChunkHolder holder) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 1faa4e0626022f08faa47327b61b6250814e0b82..1b84c29605fb141ad286f6ae67a726d0a5088d32 100644 +index 56f52d4b9c1af6a04d464640ed06b841a47b4cd9..5b2e4a2c1ae99b4c1ee5e1daaca7ca79a87d3ad1 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -533,6 +533,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.discard(); needsRemoval = true; } -+ checkDupeUUID(world, entity); // Paper ++ checkDupeUUID(world, entity); // Paper - duplicate uuid resolving return !needsRemoval; }), position); // Paper - rewrite chunk system // CraftBukkit end @@ -71,7 +71,7 @@ index 1faa4e0626022f08faa47327b61b6250814e0b82..1b84c29605fb141ad286f6ae67a726d0 throw new UnsupportedOperationException(); // Paper - rewrite chunk system } -+ // Paper start ++ // Paper start - duplicate uuid resolving + // rets true if to prevent the entity from being added + public static boolean checkDupeUUID(ServerLevel level, Entity entity) { + io.papermc.paper.configuration.WorldConfiguration.Entities.Spawning.DuplicateUUID.DuplicateUUIDMode mode = level.paperConfig().entities.spawning.duplicateUuid.mode; @@ -113,7 +113,7 @@ index 1faa4e0626022f08faa47327b61b6250814e0b82..1b84c29605fb141ad286f6ae67a726d0 + } + return false; + } -+ // Paper end ++ // Paper end - duplicate uuid resolving public CompletableFuture> prepareTickingChunk(ChunkHolder holder) { throw new UnsupportedOperationException(); // Paper - rewrite chunk system } diff --git a/patches/server/0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch b/patches/server/0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch index a8372c2321c2..dcdab50579c7 100644 --- a/patches/server/0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch +++ b/patches/server/0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch @@ -13,7 +13,7 @@ This of course is undesirable, so just return the loaded side as "primary" and treat it as a single chest if the other sides are unloaded diff --git a/src/main/java/net/minecraft/world/level/block/DoubleBlockCombiner.java b/src/main/java/net/minecraft/world/level/block/DoubleBlockCombiner.java -index 0a40d9b7e394fa10d6bfb0057440e1b0e55d1fc4..67da7795caebc882f14814217efccd139fc8f1e3 100644 +index 0a40d9b7e394fa10d6bfb0057440e1b0e55d1fc4..c889d2e08b9e7c8ee374f0148e72bb3bc9a1d826 100644 --- a/src/main/java/net/minecraft/world/level/block/DoubleBlockCombiner.java +++ b/src/main/java/net/minecraft/world/level/block/DoubleBlockCombiner.java @@ -25,7 +25,12 @@ public class DoubleBlockCombiner { @@ -21,12 +21,12 @@ index 0a40d9b7e394fa10d6bfb0057440e1b0e55d1fc4..67da7795caebc882f14814217efccd13 } else { BlockPos blockPos = pos.relative(directionMapper.apply(state)); - BlockState blockState = world.getBlockState(blockPos); -+ // Paper start ++ // Paper start - Don't load Chunks from Hoppers and other things + BlockState blockState = world.getBlockStateIfLoaded(blockPos); + if (blockState == null) { + return new DoubleBlockCombiner.NeighborCombineResult.Single<>(blockEntity); + } -+ // Paper end ++ // Paper end - Don't load Chunks from Hoppers and other things if (blockState.is(state.getBlock())) { DoubleBlockCombiner.BlockType blockType2 = typeMapper.apply(blockState); if (blockType2 != DoubleBlockCombiner.BlockType.SINGLE && blockType != blockType2 && blockState.getValue(directionProperty) == state.getValue(directionProperty)) { diff --git a/patches/server/0324-Optimise-EntityGetter-getPlayerByUUID.patch b/patches/server/0324-Optimise-EntityGetter-getPlayerByUUID.patch index e5f5c8fc2d32..2bfc88c4add3 100644 --- a/patches/server/0324-Optimise-EntityGetter-getPlayerByUUID.patch +++ b/patches/server/0324-Optimise-EntityGetter-getPlayerByUUID.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Optimise EntityGetter#getPlayerByUUID Use the PlayerList map instead of iterating over all players diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 978f0f20c3aceb1c6f967c2bec3d010e344aad0c..b10097cd28f0dc360cda9b31e8184ed3a7003780 100644 +index 978f0f20c3aceb1c6f967c2bec3d010e344aad0c..854030f910c6e789cbc9f19aab76437f35bf7668 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -558,6 +558,15 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -20,7 +20,7 @@ index 978f0f20c3aceb1c6f967c2bec3d010e344aad0c..b10097cd28f0dc360cda9b31e8184ed3 + final Player player = this.getServer().getPlayerList().getPlayer(uuid); + return player != null && player.level() == this ? player : null; + } -+ // Paper end ++ // Paper end - optimise getPlayerByUUID + // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { diff --git a/patches/server/0326-Optimize-call-to-getFluid-for-explosions.patch b/patches/server/0326-Optimize-call-to-getFluid-for-explosions.patch index b5c4ed984451..cc693ed9f9d2 100644 --- a/patches/server/0326-Optimize-call-to-getFluid-for-explosions.patch +++ b/patches/server/0326-Optimize-call-to-getFluid-for-explosions.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize call to getFluid for explosions diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index e59348b849a71ff5eba5bd74a9e2819a560787db..120151da61398ea8afcd658a8407efcf738b9476 100644 +index e59348b849a71ff5eba5bd74a9e2819a560787db..b1fdfae75aeea78ca77987e40242bf498447bc08 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -191,7 +191,7 @@ public class Explosion { @@ -13,7 +13,7 @@ index e59348b849a71ff5eba5bd74a9e2819a560787db..120151da61398ea8afcd658a8407efcf BlockPos blockposition = BlockPos.containing(d4, d5, d6); BlockState iblockdata = this.level.getBlockState(blockposition); - FluidState fluid = this.level.getFluidState(blockposition); -+ FluidState fluid = iblockdata.getFluidState(); // Paper ++ FluidState fluid = iblockdata.getFluidState(); // Paper - Perf: Optimize call to getFluid for explosions if (!this.level.isInWorldBounds(blockposition)) { break; diff --git a/patches/server/0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch b/patches/server/0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch index 730b2e87d510..9aec8e51d9dd 100644 --- a/patches/server/0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch +++ b/patches/server/0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch @@ -2,7 +2,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Fri, 17 Jan 2020 18:44:55 -0800 Subject: [PATCH] Fix last firework in stack not having effects when dispensed - - #2871 CB used the resulting item in the dispenser rather than the item dispensed. The resulting item would have size == 0 and therefore diff --git a/patches/server/0329-Guard-against-serializing-mismatching-chunk-coordina.patch b/patches/server/0329-Guard-against-serializing-mismatching-chunk-coordina.patch index ee12496e7a5e..effa64fbb5f9 100644 --- a/patches/server/0329-Guard-against-serializing-mismatching-chunk-coordina.patch +++ b/patches/server/0329-Guard-against-serializing-mismatching-chunk-coordina.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Guard against serializing mismatching chunk coordinate Should help if something dumb happens diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 97cdd8cd7749185230471f34f7d1ce3abcd0fd11..982fb3ef071d6a66f16744717e8e146bef6d9e8c 100644 +index 97cdd8cd7749185230471f34f7d1ce3abcd0fd11..7862caa0f787634cec14af81fe1f39803a43f115 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -94,6 +94,18 @@ public class ChunkSerializer { @@ -24,7 +24,7 @@ index 97cdd8cd7749185230471f34f7d1ce3abcd0fd11..982fb3ef071d6a66f16744717e8e146b + return new ChunkPos(chunkData.getInt("xPos"), chunkData.getInt("zPos")); + } + } -+ // Paper end ++ // Paper end - guard against serializing mismatching coordinates // Paper start public static final class InProgressChunkHolder { @@ -33,25 +33,25 @@ index 97cdd8cd7749185230471f34f7d1ce3abcd0fd11..982fb3ef071d6a66f16744717e8e146b public static InProgressChunkHolder loadChunk(ServerLevel world, PoiManager poiStorage, ChunkPos chunkPos, CompoundTag nbt, boolean distinguish) { // Paper end - ChunkPos chunkcoordintpair1 = new ChunkPos(nbt.getInt("xPos"), nbt.getInt("zPos")); -+ ChunkPos chunkcoordintpair1 = new ChunkPos(nbt.getInt("xPos"), nbt.getInt("zPos")); // Paper - diff on change, see ChunkSerializer#getChunkCoordinate ++ ChunkPos chunkcoordintpair1 = new ChunkPos(nbt.getInt("xPos"), nbt.getInt("zPos")); // Paper - guard against serializing mismatching coordinates; diff on change, see ChunkSerializer#getChunkCoordinate if (!Objects.equals(chunkPos, chunkcoordintpair1)) { ChunkSerializer.LOGGER.error("Chunk file at {} is in the wrong location; relocating. (Expected {}, got {})", new Object[]{chunkPos, chunkPos, chunkcoordintpair1}); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java -index b4e7c9b317d532d4915932f8f79dfebf2b63ff16..e4b3a70ff9f906a10f2ba3c07642193ca3269db7 100644 +index b4e7c9b317d532d4915932f8f79dfebf2b63ff16..af8a8e85742497e8dac7a59a3cd5938e09580e45 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java @@ -178,6 +178,13 @@ public class ChunkStorage implements AutoCloseable { // Paper start - async chunk io public void write(ChunkPos chunkPos, CompoundTag nbt) throws IOException { -+ // Paper start ++ // Paper start - guard against serializing mismatching coordinates + if (nbt != null && !chunkPos.equals(ChunkSerializer.getChunkCoordinate(nbt))) { + String world = (this instanceof net.minecraft.server.level.ChunkMap) ? ((net.minecraft.server.level.ChunkMap)this).level.getWorld().getName() : null; + throw new IllegalArgumentException("Chunk coordinate and serialized data do not have matching coordinates, trying to serialize coordinate " + chunkPos.toString() + + " but compound says coordinate is " + ChunkSerializer.getChunkCoordinate(nbt).toString() + (world == null ? " for an unknown world" : (" for world: " + world))); + } -+ // Paper end ++ // Paper end - guard against serializing mismatching coordinates this.regionFileCache.write(chunkPos, nbt); // Paper end - Async chunk loading if (this.legacyStructureHandler != null) { diff --git a/patches/server/0330-Implement-alternative-item-despawn-rate.patch b/patches/server/0330-Alternative-item-despawn-rate.patch similarity index 84% rename from patches/server/0330-Implement-alternative-item-despawn-rate.patch rename to patches/server/0330-Alternative-item-despawn-rate.patch index 180d0f388472..2928674288ee 100644 --- a/patches/server/0330-Implement-alternative-item-despawn-rate.patch +++ b/patches/server/0330-Alternative-item-despawn-rate.patch @@ -1,19 +1,19 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: kickash32 Date: Mon, 3 Jun 2019 02:02:39 -0400 -Subject: [PATCH] Implement alternative item-despawn-rate +Subject: [PATCH] Alternative item-despawn-rate Co-authored-by: Noah van der Aa diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index bbd0d161f27d0e061c14ad87990e44492bb7fe3d..36ccb7701cc5f6648940256b62321034eff964c6 100644 +index 16c30342ac9ebf5cffa0bf23ab9700b6704a1ec0..ffbeea768cbb09b6f828ef1a9394c9fe50e99914 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -56,6 +56,7 @@ public class ItemEntity extends Entity implements TraceableEntity { public final float bobOffs; private int lastTick = MinecraftServer.currentTick - 1; // CraftBukkit public boolean canMobPickup = true; // Paper -+ private int despawnRate = -1; // Paper ++ private int despawnRate = -1; // Paper - Alternative item-despawn-rate public ItemEntity(EntityType type, Level world) { super(type, world); @@ -22,7 +22,7 @@ index bbd0d161f27d0e061c14ad87990e44492bb7fe3d..36ccb7701cc5f6648940256b62321034 } - if (!this.level().isClientSide && this.age >= this.level().spigotConfig.itemDespawnRate) { // Spigot -+ if (!this.level().isClientSide && this.age >= this.despawnRate) { // Spigot // Paper ++ if (!this.level().isClientSide && this.age >= this.despawnRate) { // Spigot // Paper - Alternative item-despawn-rate // CraftBukkit start - fire ItemDespawnEvent if (CraftEventFactory.callItemDespawnEvent(this).isCancelled()) { this.age = 0; @@ -31,7 +31,7 @@ index bbd0d161f27d0e061c14ad87990e44492bb7fe3d..36ccb7701cc5f6648940256b62321034 // CraftBukkit end - if (!this.level().isClientSide && this.age >= this.level().spigotConfig.itemDespawnRate) { // Spigot -+ if (!this.level().isClientSide && this.age >= this.despawnRate) { // Spigot // Paper ++ if (!this.level().isClientSide && this.age >= this.despawnRate) { // Spigot // Paper - Alternative item-despawn-rate // CraftBukkit start - fire ItemDespawnEvent if (org.bukkit.craftbukkit.event.CraftEventFactory.callItemDespawnEvent(this).isCancelled()) { this.age = 0; @@ -40,7 +40,7 @@ index bbd0d161f27d0e061c14ad87990e44492bb7fe3d..36ccb7701cc5f6648940256b62321034 ItemStack itemstack = this.getItem(); - return this.isAlive() && this.pickupDelay != 32767 && this.age != -32768 && this.age < 6000 && itemstack.getCount() < itemstack.getMaxStackSize(); -+ return this.isAlive() && this.pickupDelay != 32767 && this.age != -32768 && this.age < this.despawnRate && itemstack.getCount() < itemstack.getMaxStackSize(); // Paper - respect despawn rate in pickup check. ++ return this.isAlive() && this.pickupDelay != 32767 && this.age != -32768 && this.age < this.despawnRate && itemstack.getCount() < itemstack.getMaxStackSize(); // Paper - Alternative item-despawn-rate } private void tryToMerge(ItemEntity other) { @@ -48,7 +48,7 @@ index bbd0d161f27d0e061c14ad87990e44492bb7fe3d..36ccb7701cc5f6648940256b62321034 public void setItem(ItemStack stack) { this.getEntityData().set(ItemEntity.DATA_ITEM, stack); -+ this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper ++ this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper - Alternative item-despawn-rate } @Override @@ -57,7 +57,7 @@ index bbd0d161f27d0e061c14ad87990e44492bb7fe3d..36ccb7701cc5f6648940256b62321034 public void makeFakeItem() { this.setNeverPickUp(); - this.age = this.level().spigotConfig.itemDespawnRate - 1; // Spigot -+ this.age = this.despawnRate - 1; // Spigot // Paper ++ this.age = this.despawnRate - 1; // Spigot // Paper - Alternative item-despawn-rate } public float getSpin(float tickDelta) { diff --git a/patches/server/0332-Fix-items-vanishing-through-end-portal.patch b/patches/server/0332-Fix-items-vanishing-through-end-portal.patch index 6d10f0f8ffba..5a1ab289a738 100644 --- a/patches/server/0332-Fix-items-vanishing-through-end-portal.patch +++ b/patches/server/0332-Fix-items-vanishing-through-end-portal.patch @@ -13,16 +13,14 @@ Quickly loading the exact world spawn chunk before searching the heightmap resolves the issue without having to load all spawn chunks. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 26a611b8d75513690811fbbd15dc37e6f4a50dd4..21eac12dcc3571e647b07b313015d809cb0fbcea 100644 +index 26a611b8d75513690811fbbd15dc37e6f4a50dd4..f052c3eb14d5f50fb82889b011387991d5e4aac7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3411,6 +3411,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3411,6 +3411,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (flag1) { blockposition1 = ServerLevel.END_SPAWN_POINT; } else { -+ // Paper start - Ensure spawn chunk is always loaded before calculating Y coordinate -+ destination.getChunkAt(destination.getSharedSpawnPos()); -+ // Paper end ++ destination.getChunkAt(destination.getSharedSpawnPos()); // Paper - Ensure spawn chunk is always loaded before calculating Y coordinate blockposition1 = destination.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, destination.getSharedSpawnPos()); } // CraftBukkit start diff --git a/patches/server/0333-implement-optional-per-player-mob-spawns.patch b/patches/server/0333-Optional-per-player-mob-spawns.patch similarity index 84% rename from patches/server/0333-implement-optional-per-player-mob-spawns.patch rename to patches/server/0333-Optional-per-player-mob-spawns.patch index 6b4cfb1bd63b..3207de9027a1 100644 --- a/patches/server/0333-implement-optional-per-player-mob-spawns.patch +++ b/patches/server/0333-Optional-per-player-mob-spawns.patch @@ -1,18 +1,18 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: kickash32 Date: Mon, 19 Aug 2019 01:27:58 +0500 -Subject: [PATCH] implement optional per player mob spawns +Subject: [PATCH] Optional per player mob spawns diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 2130f15d92bab1d4e35a92a681ac34cd9c929ea9..1f9efff4ddccf2569fdfe42e6cbc92792643d0ea 100644 +index 2130f15d92bab1d4e35a92a681ac34cd9c929ea9..8fdffba03688e9f2fd57a97343b66933a4aee9c6 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -288,6 +288,29 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); } -+ // Paper start ++ // Paper start - Optional per player mob spawns + public void updatePlayerMobTypeMap(Entity entity) { + if (!this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { + return; @@ -33,13 +33,13 @@ index 2130f15d92bab1d4e35a92a681ac34cd9c929ea9..1f9efff4ddccf2569fdfe42e6cbc9279 + public int getMobCountNear(ServerPlayer entityPlayer, net.minecraft.world.entity.MobCategory mobCategory) { + return entityPlayer.mobCounts[mobCategory.ordinal()]; + } -+ // Paper end ++ // Paper end - Optional per player mob spawns + private static double euclideanDistanceSquared(ChunkPos pos, Entity entity) { double d0 = (double) SectionPos.sectionToBlockCoord(pos.x, 8); double d1 = (double) SectionPos.sectionToBlockCoord(pos.z, 8); diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 16028723b36c1ca3a3c5d1bf2a7c82d2b42a0be4..24d9a2c37db4bbf2585b33d06f5ea57eb2adf356 100644 +index 16028723b36c1ca3a3c5d1bf2a7c82d2b42a0be4..488f7e2f1ab0312673983d9079b4d7d99eebe611 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -549,7 +549,19 @@ public class ServerChunkCache extends ChunkSource { @@ -47,7 +47,7 @@ index 16028723b36c1ca3a3c5d1bf2a7c82d2b42a0be4..24d9a2c37db4bbf2585b33d06f5ea57e this.level.timings.countNaturalMobs.startTiming(); // Paper - timings int k = this.distanceManager.getNaturalSpawnChunkCount(); - NaturalSpawner.SpawnState spawnercreature_d = NaturalSpawner.createState(k, this.level.getAllEntities(), this::getFullChunk, new LocalMobCapCalculator(this.chunkMap)); -+ // Paper start - per player mob spawning ++ // Paper start - Optional per player mob spawns + int naturalSpawnChunkCount = k; + NaturalSpawner.SpawnState spawnercreature_d; // moved down + if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled @@ -59,39 +59,39 @@ index 16028723b36c1ca3a3c5d1bf2a7c82d2b42a0be4..24d9a2c37db4bbf2585b33d06f5ea57e + } else { + spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false); + } -+ // Paper end ++ // Paper end - Optional per player mob spawns this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings this.lastSpawnState = spawnercreature_d; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5aef108c5b78cfc02af5c73b9bc03004fba33ca7..26410f43c7bbb368d9ef7206d3b9759f86afba4b 100644 +index 5aef108c5b78cfc02af5c73b9bc03004fba33ca7..fff540886166a60b967cf14e93776e36dcbe1308 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -253,6 +253,10 @@ public class ServerPlayer extends Player { public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; // Paper end -+ // Paper start - mob spawning rework ++ // Paper start - Optional per player mob spawns + public static final int MOBCATEGORY_TOTAL_ENUMS = net.minecraft.world.entity.MobCategory.values().length; + public final int[] mobCounts = new int[MOBCATEGORY_TOTAL_ENUMS]; // Paper -+ // Paper end - mob spawning rework ++ // Paper end - Optional per player mob spawns // CraftBukkit start public String displayName; diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32fe2992331 100644 +index fe38079d69f3e9987ad5ab077ae09d05017a681a..4aa2a174400fe879501571c175d5ac4d09ac7de3 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -70,6 +70,12 @@ public final class NaturalSpawner { private NaturalSpawner() {} public static NaturalSpawner.SpawnState createState(int spawningChunkCount, Iterable entities, NaturalSpawner.ChunkGetter chunkSource, LocalMobCapCalculator densityCapper) { -+ // Paper start - add countMobs parameter ++ // Paper start - Optional per player mob spawns + return createState(spawningChunkCount, entities, chunkSource, densityCapper, false); + } + + public static NaturalSpawner.SpawnState createState(int spawningChunkCount, Iterable entities, NaturalSpawner.ChunkGetter chunkSource, LocalMobCapCalculator densityCapper, boolean countMobs) { -+ // Paper end ++ // Paper end - Optional per player mob spawns PotentialCalculator spawnercreatureprobabilities = new PotentialCalculator(); Object2IntOpenHashMap object2intopenhashmap = new Object2IntOpenHashMap(); Iterator iterator = entities.iterator(); @@ -100,16 +100,16 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f } - if (entity instanceof Mob) { -+ if (densityCapper != null && entity instanceof Mob) { // Paper ++ if (densityCapper != null && entity instanceof Mob) { // Paper - Optional per player mob spawns densityCapper.addMob(chunk.getPos(), enumcreaturetype); } object2intopenhashmap.addTo(enumcreaturetype, 1); -+ // Paper start ++ // Paper start - Optional per player mob spawns + if (countMobs) { + chunk.level.getChunkSource().chunkMap.updatePlayerMobTypeMap(entity); + } -+ // Paper end ++ // Paper end - Optional per player mob spawns }); } } @@ -118,7 +118,7 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f } - if ((spawnAnimals || !enumcreaturetype.isFriendly()) && (spawnMonsters || enumcreaturetype.isFriendly()) && (rareSpawn || !enumcreaturetype.isPersistent()) && info.canSpawnForCategory(enumcreaturetype, chunk.getPos(), limit)) { -+ // Paper start - only allow spawns upto the limit per chunk and update count afterwards ++ // Paper start - Optional per player mob spawns; only allow spawns upto the limit per chunk and update count afterwards + int currEntityCount = info.mobCategoryCounts.getInt(enumcreaturetype); + int k1 = limit * info.getSpawnableChunkCount() / NaturalSpawner.MAGIC_NUMBER; + int difference = k1 - currEntityCount; @@ -136,18 +136,18 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f + difference = (minDiff == Integer.MAX_VALUE) ? 0 : minDiff; + } + if ((spawnAnimals || !enumcreaturetype.isFriendly()) && (spawnMonsters || enumcreaturetype.isFriendly()) && (rareSpawn || !enumcreaturetype.isPersistent()) && difference > 0) { -+ // Paper end ++ // Paper end - Optional per player mob spawns // CraftBukkit end Objects.requireNonNull(info); NaturalSpawner.SpawnPredicate spawnercreature_c = info::canSpawn; Objects.requireNonNull(info); - NaturalSpawner.spawnCategoryForChunk(enumcreaturetype, world, chunk, spawnercreature_c, info::afterSpawn); -+ // Paper start ++ // Paper start - Optional per player mob spawns + int spawnCount = NaturalSpawner.spawnCategoryForChunk(enumcreaturetype, world, chunk, spawnercreature_c, info::afterSpawn, + difference, world.paperConfig().entities.spawning.perPlayerMobSpawns ? world.getChunkSource().chunkMap::updatePlayerMobTypeMap : null); + info.mobCategoryCounts.mergeInt(enumcreaturetype, spawnCount, Integer::sum); -+ // Paper end ++ // Paper end - Optional per player mob spawns } } @@ -155,18 +155,18 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f } public static void spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner) { -+ // Paper start - add parameters and int ret type ++ // Paper start - Optional per player mob spawns + spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null); + } + public static int spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner, int maxSpawns, Consumer trackEntity) { -+ // Paper end - add parameters and int ret type ++ // Paper end - Optional per player mob spawns BlockPos blockposition = NaturalSpawner.getRandomPosWithin(world, chunk); if (blockposition.getY() >= world.getMinBuildHeight() + 1) { - NaturalSpawner.spawnCategoryForPosition(group, world, chunk, blockposition, checker, runner); -+ return NaturalSpawner.spawnCategoryForPosition(group, world, chunk, blockposition, checker, runner, maxSpawns, trackEntity); // Paper ++ return NaturalSpawner.spawnCategoryForPosition(group, world, chunk, blockposition, checker, runner, maxSpawns, trackEntity); // Paper - Optional per player mob spawns } -+ return 0; // Paper ++ return 0; // Paper - Optional per player mob spawns } @VisibleForDebug @@ -174,22 +174,22 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f }); } -+ // Paper start - add maxSpawns parameter and return spawned mobs ++ // Paper start - Optional per player mob spawns public static void spawnCategoryForPosition(MobCategory group, ServerLevel world, ChunkAccess chunk, BlockPos pos, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner) { + spawnCategoryForPosition(group, world,chunk, pos, checker, runner, Integer.MAX_VALUE, null); + } + public static int spawnCategoryForPosition(MobCategory group, ServerLevel world, ChunkAccess chunk, BlockPos pos, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner, int maxSpawns, Consumer trackEntity) { -+ // Paper end - add maxSpawns parameter and return spawned mobs ++ // Paper end - Optional per player mob spawns StructureManager structuremanager = world.structureManager(); ChunkGenerator chunkgenerator = world.getChunkSource().getGenerator(); int i = pos.getY(); BlockState iblockdata = world.getBlockStateIfLoadedAndInBounds(pos); // Paper - don't load chunks for mob spawn -+ int j = 0; // Paper - moved up ++ int j = 0; // Paper - Optional per player mob spawns; moved up if (iblockdata != null && !iblockdata.isRedstoneConductor(chunk, pos)) { // Paper - don't load chunks for mob spawn BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); - int j = 0; -+ //int j = 0; // Paper - moved up ++ //int j = 0; // Paper - Optional per player mob spawns; moved up int k = 0; while (k < 3) { @@ -198,7 +198,7 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f PreSpawnStatus doSpawning = isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2); if (doSpawning == PreSpawnStatus.ABORT) { - return; -+ return j; // Paper ++ return j; // Paper - Optional per player mob spawns } if (doSpawning == PreSpawnStatus.SUCCESS && checker.test(biomesettingsmobs_c.type, blockposition_mutableblockposition, chunk)) { // Paper end @@ -206,7 +206,7 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f if (entityinsentient == null) { - return; -+ return j; // Paper ++ return j; // Paper - Optional per player mob spawns } entityinsentient.moveTo(d0, (double) i, d1, world.random.nextFloat() * 360.0F, 0.0F); @@ -214,17 +214,17 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f ++j; ++k1; runner.run(entityinsentient, chunk); -+ // Paper start ++ // Paper start - Optional per player mob spawns + if (trackEntity != null) { + trackEntity.accept(entityinsentient); + } -+ // Paper end ++ // Paper end - Optional per player mob spawns } // CraftBukkit end - if (j >= entityinsentient.getMaxSpawnClusterSize()) { - return; -+ if (j >= entityinsentient.getMaxSpawnClusterSize() || j >= maxSpawns) { // Paper -+ return j; // Paper ++ if (j >= entityinsentient.getMaxSpawnClusterSize() || j >= maxSpawns) { // Paper - Optional per player mob spawns ++ return j; // Paper - Optional per player mob spawns } if (entityinsentient.isMaxGroupSizeReached(k1)) { @@ -232,7 +232,7 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f } } -+ return j; // Paper ++ return j; // Paper - Optional per player mob spawns } private static boolean isRightDistanceToPlayerAndSpawnPoint(ServerLevel world, ChunkAccess chunk, BlockPos.MutableBlockPos pos, double squaredDistance) { @@ -241,7 +241,7 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f this.mobCategoryCounts.addTo(enumcreaturetype, 1); - this.localMobCapCalculator.addMob(new ChunkPos(blockposition), enumcreaturetype); -+ if (this.localMobCapCalculator != null) this.localMobCapCalculator.addMob(new ChunkPos(blockposition), enumcreaturetype); // Paper ++ if (this.localMobCapCalculator != null) this.localMobCapCalculator.addMob(new ChunkPos(blockposition), enumcreaturetype); // Paper - Optional per player mob spawns } public int getSpawnableChunkCount() { @@ -249,7 +249,7 @@ index fe38079d69f3e9987ad5ab077ae09d05017a681a..9df761f5cf043e8d2dffa711c20ab32f int i = limit * this.spawnableChunkCount / NaturalSpawner.MAGIC_NUMBER; // CraftBukkit end -+ if (this.localMobCapCalculator == null) return this.mobCategoryCounts.getInt(enumcreaturetype) < i; // Paper ++ if (this.localMobCapCalculator == null) return this.mobCategoryCounts.getInt(enumcreaturetype) < i; // Paper - Optional per player mob spawns return this.mobCategoryCounts.getInt(enumcreaturetype) >= i ? false : this.localMobCapCalculator.canSpawn(enumcreaturetype, chunkcoordintpair); } } diff --git a/patches/server/0335-Bees-get-gravity-in-void.-Fixes-MC-167279.patch b/patches/server/0335-Bees-get-gravity-in-void.-Fixes-MC-167279.patch index 60204a58249e..7959db9a1674 100644 --- a/patches/server/0335-Bees-get-gravity-in-void.-Fixes-MC-167279.patch +++ b/patches/server/0335-Bees-get-gravity-in-void.-Fixes-MC-167279.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Bees get gravity in void. Fixes MC-167279 diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index 0f7b02d39b5dc781e65537c1b6d924e6c51e5dc7..d9297c0b2934084a065af7d7c93af8d44c3de8e1 100644 +index 0f7b02d39b5dc781e65537c1b6d924e6c51e5dc7..06e990b6957a4ef48c8778bbd175d3afddf52ca3 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -147,7 +147,22 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -13,7 +13,7 @@ index 0f7b02d39b5dc781e65537c1b6d924e6c51e5dc7..d9297c0b2934084a065af7d7c93af8d4 super(type, world); this.remainingCooldownBeforeLocatingNewFlower = Mth.nextInt(this.random, 20, 60); - this.moveControl = new FlyingMoveControl(this, 20, true); -+ // Paper start - apply gravity to bees when they get stuck in the void, fixes MC-167279 ++ // Paper start - Fix MC-167279 + class BeeFlyingMoveControl extends FlyingMoveControl { + public BeeFlyingMoveControl(final Mob entity, final int maxPitchChange, final boolean noGravity) { + super(entity, maxPitchChange, noGravity); @@ -28,7 +28,7 @@ index 0f7b02d39b5dc781e65537c1b6d924e6c51e5dc7..d9297c0b2934084a065af7d7c93af8d4 + } + } + this.moveControl = new BeeFlyingMoveControl(this, 20, true); -+ // Paper end ++ // Paper end - Fix MC-167279 this.lookControl = new Bee.BeeLookControl(this); this.setPathfindingMalus(BlockPathTypes.DANGER_FIRE, -1.0F); this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); diff --git a/patches/server/0336-Improve-Block-breakNaturally-API.patch b/patches/server/0336-Improve-Block-breakNaturally-API.patch index d424ef61786b..90192e47851b 100644 --- a/patches/server/0336-Improve-Block-breakNaturally-API.patch +++ b/patches/server/0336-Improve-Block-breakNaturally-API.patch @@ -18,18 +18,18 @@ public net.minecraft.world.level.block.TurtleEggBlock decreaseEggs(Lnet/minecraf Co-authored-by: William Blake Galbreath diff --git a/src/main/java/net/minecraft/world/level/block/IceBlock.java b/src/main/java/net/minecraft/world/level/block/IceBlock.java -index c919b5a382b1bfcafd938ff926d9146cc5cf0cdc..f05998e0af1e844f19bf86b74f652a9901088c37 100644 +index c919b5a382b1bfcafd938ff926d9146cc5cf0cdc..52c6c26a300cfd19c478afba411a17c8d5ea0c3c 100644 --- a/src/main/java/net/minecraft/world/level/block/IceBlock.java +++ b/src/main/java/net/minecraft/world/level/block/IceBlock.java @@ -35,6 +35,11 @@ public class IceBlock extends HalfTransparentBlock { @Override public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool) { super.playerDestroy(world, player, pos, state, blockEntity, tool); -+ // Paper start ++ // Paper start - Improve Block#breakNaturally API + this.afterDestroy(world, pos, tool); + } + public void afterDestroy(Level world, BlockPos pos, ItemStack tool) { -+ // Paper end ++ // Paper end - Improve Block#breakNaturally API if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, tool) == 0) { if (world.dimensionType().ultraWarm()) { world.removeBlock(pos, false); diff --git a/patches/server/0337-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/patches/server/0337-Optimise-getChunkAt-calls-for-loaded-chunks.patch index 5a1569ff6823..d99eda95aaa5 100644 --- a/patches/server/0337-Optimise-getChunkAt-calls-for-loaded-chunks.patch +++ b/patches/server/0337-Optimise-getChunkAt-calls-for-loaded-chunks.patch @@ -7,19 +7,19 @@ bypass the need to get a player chunk, then get the either, then unwrap it... diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 24d9a2c37db4bbf2585b33d06f5ea57eb2adf356..4039bd5a80bd2305082d21c0fe826f76d8beb4c4 100644 +index 488f7e2f1ab0312673983d9079b4d7d99eebe611..70f15e3af9e954483ab116500f84a9ee17f67ce4 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -268,6 +268,12 @@ public class ServerChunkCache extends ChunkSource { return this.getChunk(x, z, leastStatus, create); }, this.mainThreadProcessor).join(); } else { -+ // Paper start - optimise for loaded chunks ++ // Paper start - Perf: Optimise getChunkAt calls for loaded chunks + LevelChunk ifLoaded = this.getChunkAtIfLoadedMainThread(x, z); + if (ifLoaded != null) { + return ifLoaded; + } -+ // Paper end ++ // Paper end - Perf: Optimise getChunkAt calls for loaded chunks ProfilerFiller gameprofilerfiller = this.level.getProfiler(); gameprofilerfiller.incrementCounter("getChunk"); @@ -60,7 +60,7 @@ index 24d9a2c37db4bbf2585b33d06f5ea57eb2adf356..4039bd5a80bd2305082d21c0fe826f76 - return null; - } - } -+ return this.getChunkAtIfLoadedMainThread(chunkX, chunkZ); // Paper - optimise for loaded chunks ++ return this.getChunkAtIfLoadedMainThread(chunkX, chunkZ); // Paper - Perf: Optimise getChunkAt calls for loaded chunks } } diff --git a/patches/server/0338-Add-debug-for-sync-chunk-loads.patch b/patches/server/0338-Add-debug-for-sync-chunk-loads.patch index b190c41a641c..4e0245f7f133 100644 --- a/patches/server/0338-Add-debug-for-sync-chunk-loads.patch +++ b/patches/server/0338-Add-debug-for-sync-chunk-loads.patch @@ -300,14 +300,14 @@ index 0000000000000000000000000000000000000000..95d6022c9cfb2e36ec5a71be6e343540 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 4039bd5a80bd2305082d21c0fe826f76d8beb4c4..974b4970be214ca36a801d39932abcc751e540a5 100644 +index 70f15e3af9e954483ab116500f84a9ee17f67ce4..56fe3f4edd15239533a1ae9287e86528b3296bdc 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -292,6 +292,7 @@ public class ServerChunkCache extends ChunkSource { // Paper start - async chunk io/loading io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system // Paper end -+ com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - sync load info ++ com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - Add debug for sync chunk loads this.level.timings.syncChunkLoad.startTiming(); // Paper chunkproviderserver_b.managedBlock(completablefuture::isDone); io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - async chunk debug // Paper - rewrite chunk system diff --git a/patches/server/0339-Improve-java-version-check.patch b/patches/server/0339-Improve-java-version-check.patch index ae9975c54c3d..cb029274c107 100644 --- a/patches/server/0339-Improve-java-version-check.patch +++ b/patches/server/0339-Improve-java-version-check.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Improve java version check Co-Authored-By: MiniDigger diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index ebfebbb9b7de93dd43ee6d0531832a71f8556d33..fdce27bbd60897e7584db627b5f9ff32c930cd78 100644 +index 4d2ebb7af055d1c78a648914c5a1862fe9bc8b8f..5030b865c84d84ed5be9f4987a7f0a829b8ea1e5 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -201,23 +201,27 @@ public class Main { return; } -+ // Paper start - better java version checks ++ // Paper start - Improve java version check + boolean skip = Boolean.getBoolean("Paper.IgnoreJavaVersion"); float javaVersion = Float.parseFloat(System.getProperty("java.class.version")); - if (javaVersion < 61.0) { @@ -40,7 +40,7 @@ index ebfebbb9b7de93dd43ee6d0531832a71f8556d33..fdce27bbd60897e7584db627b5f9ff32 + if (skip && (isOldVersion || isPreRelease)) { + System.err.println("Unsupported Java detected ("+ javaVersionName + "), but the check was skipped. Proceed with caution! "); + } -+ // Paper end - better java version checks ++ // Paper end - Improve java version check + try { // Paper start - Handled by TerminalConsoleAppender diff --git a/patches/server/0340-Add-ThrownEggHatchEvent.patch b/patches/server/0340-Add-ThrownEggHatchEvent.patch index a98738a89e52..ff26a496280d 100644 --- a/patches/server/0340-Add-ThrownEggHatchEvent.patch +++ b/patches/server/0340-Add-ThrownEggHatchEvent.patch @@ -7,20 +7,20 @@ Adds a new event similar to PlayerEggThrowEvent, but without the Player requirem (dispensers can throw eggs to hatch them, too). diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java -index 98d42143e70c5be809deb6c03270987ff9db46d5..b64ecadae45c2126b92963ac8d118dde76126ddd 100644 +index 98d42143e70c5be809deb6c03270987ff9db46d5..785196e6f4677074890ca965e9add85ccfd0e6e3 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java @@ -82,6 +82,13 @@ public class ThrownEgg extends ThrowableItemProjectile { } } // CraftBukkit end -+ // Paper start ++ // Paper start - Add ThrownEggHatchEvent + com.destroystokyo.paper.event.entity.ThrownEggHatchEvent event = new com.destroystokyo.paper.event.entity.ThrownEggHatchEvent((org.bukkit.entity.Egg) getBukkitEntity(), hatching, b0, hatchingType); + event.callEvent(); + hatching = event.isHatching(); + b0 = hatching ? event.getNumHatches() : 0; // If hatching is set to false, ensure child count is 0 + hatchingType = event.getHatchingType(); -+ // Paper end ++ // Paper end - Add ThrownEggHatchEvent for (int i = 0; i < b0; ++i) { Entity entitychicken = this.level().getWorld().makeEntity(new org.bukkit.Location(this.level().getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), 0.0F), hatchingType.getEntityClass()); // CraftBukkit diff --git a/patches/server/0341-Entity-Jump-API.patch b/patches/server/0341-Entity-Jump-API.patch index 75e4351f7fc3..d311a81f66db 100644 --- a/patches/server/0341-Entity-Jump-API.patch +++ b/patches/server/0341-Entity-Jump-API.patch @@ -5,45 +5,45 @@ Subject: [PATCH] Entity Jump API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a3eac4dfe28bc55721d292e2f309b3467a3db140..f9e2d3cba01fcf39bc29dc8b5b5879ddc3add0e5 100644 +index a3eac4dfe28bc55721d292e2f309b3467a3db140..5f7ed9de581ab52fd8e1c674eeaa550619a05d19 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3283,8 +3283,10 @@ public abstract class LivingEntity extends Entity implements Attackable { } else if (this.isInLava() && (!this.onGround() || d3 > d4)) { this.jumpInLiquid(FluidTags.LAVA); } else if ((this.onGround() || flag && d3 <= d4) && this.noJumpDelay == 0) { -+ if (new com.destroystokyo.paper.event.entity.EntityJumpEvent(getBukkitLivingEntity()).callEvent()) { // Paper ++ if (new com.destroystokyo.paper.event.entity.EntityJumpEvent(getBukkitLivingEntity()).callEvent()) { // Paper - Entity Jump API this.jumpFromGround(); this.noJumpDelay = 10; -+ } else { this.setJumping(false); } // Paper - setJumping(false) stops a potential loop ++ } else { this.setJumping(false); } // Paper - Entity Jump API; setJumping(false) stops a potential loop } } else { this.noJumpDelay = 0; diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 3d947293d33407e5d24f8fba738ab872e1d890b6..27e1ed14f2ae4f7922c7c3bc1ac21156bafcb0ba 100644 +index 3d947293d33407e5d24f8fba738ab872e1d890b6..48df7de02e0765bfe62ae1b8a4c0029743430221 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -527,7 +527,9 @@ public class Panda extends Animal { Panda entitypanda = (Panda) iterator.next(); if (!entitypanda.isBaby() && entitypanda.onGround() && !entitypanda.isInWater() && entitypanda.canPerformAction()) { -+ if (new com.destroystokyo.paper.event.entity.EntityJumpEvent(getBukkitLivingEntity()).callEvent()) { // Paper ++ if (new com.destroystokyo.paper.event.entity.EntityJumpEvent(getBukkitLivingEntity()).callEvent()) { // Paper - Entity Jump API entitypanda.jumpFromGround(); -+ } else { this.setJumping(false); } // Paper - setJumping(false) stops a potential loop ++ } else { this.setJumping(false); } // Paper - Entity Jump API; setJumping(false) stops a potential loop } } diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 344e933311f5cdccb66069d486b111a003639dfe..add3cd866452df727107e94fb2039bddebe909be 100644 +index 344e933311f5cdccb66069d486b111a003639dfe..c45a9b4d9a4894919c5c798ada80629493821c61 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -167,7 +167,9 @@ public class Ravager extends Raider { } if (!flag && this.onGround()) { -+ if (new com.destroystokyo.paper.event.entity.EntityJumpEvent(getBukkitLivingEntity()).callEvent()) { // Paper ++ if (new com.destroystokyo.paper.event.entity.EntityJumpEvent(getBukkitLivingEntity()).callEvent()) { // Paper - Entity Jump API this.jumpFromGround(); -+ } else { this.setJumping(false); } // Paper - setJumping(false) stops a potential loop ++ } else { this.setJumping(false); } // Paper - Entity Jump API; setJumping(false) stops a potential loop } } diff --git a/patches/server/0342-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/server/0342-Add-option-to-nerf-pigmen-from-nether-portals.patch index dd18442fb99d..ea9d058847a1 100644 --- a/patches/server/0342-Add-option-to-nerf-pigmen-from-nether-portals.patch +++ b/patches/server/0342-Add-option-to-nerf-pigmen-from-nether-portals.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Add option to nerf pigmen from nether portals diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 21eac12dcc3571e647b07b313015d809cb0fbcea..7f08a5a9c853c1f54e1d3b142c52cfa5dfb8c091 100644 +index 21eac12dcc3571e647b07b313015d809cb0fbcea..d1a256a0a27ebfd91497840334c94dfe1a40c980 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -399,6 +399,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper start public long activatedImmunityTick = Integer.MIN_VALUE; // Paper public boolean isTemporarilyActive = false; // Paper -+ public boolean fromNetherPortal; // Paper ++ public boolean fromNetherPortal; // Paper - Add option to nerf pigmen from nether portals protected int numCollisions = 0; // Paper public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable @@ -35,15 +35,15 @@ index 21eac12dcc3571e647b07b313015d809cb0fbcea..7f08a5a9c853c1f54e1d3b142c52cfa5 String spawnReasonName = nbt.getString("Paper.SpawnReason"); try { diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java -index c9ff8a3fd8d65033ce5a476e8ceaf9d1b8e2d887..4e52e92846428b0d01635b90f3480b4a2c13a0b4 100644 +index c9ff8a3fd8d65033ce5a476e8ceaf9d1b8e2d887..2a8f97d97ae7f268da920b5e3b9719743fa9a8e0 100644 --- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java @@ -71,6 +71,8 @@ public class NetherPortalBlock extends Block { if (entity != null) { entity.setPortalCooldown(); -+ entity.fromNetherPortal = true; // Paper -+ if (world.paperConfig().entities.behavior.nerfPigmenFromNetherPortals) ((net.minecraft.world.entity.Mob) entity).aware = false; // Paper ++ entity.fromNetherPortal = true; // Paper - Add option to nerf pigmen from nether portals ++ if (world.paperConfig().entities.behavior.nerfPigmenFromNetherPortals) ((net.minecraft.world.entity.Mob) entity).aware = false; // Paper - Add option to nerf pigmen from nether portals } } } diff --git a/patches/server/0343-Make-the-GUI-graph-fancier.patch b/patches/server/0343-Make-the-GUI-graph-fancier.patch index 3501af3b645e..b727ad1c2cd5 100644 --- a/patches/server/0343-Make-the-GUI-graph-fancier.patch +++ b/patches/server/0343-Make-the-GUI-graph-fancier.patch @@ -384,7 +384,7 @@ index 0000000000000000000000000000000000000000..c3e54da4ab6440811aab2f9dd1e21880 + } +} diff --git a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java -index d292fdb165436f0b9b46b32110f5e09ad0e517a1..2e93eec8733c5b548a15269a322fe4dd1f189b7d 100644 +index d292fdb165436f0b9b46b32110f5e09ad0e517a1..2bbc57b4869caf690f53618d60359c5133ec62a8 100644 --- a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java +++ b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java @@ -95,7 +95,7 @@ public class MinecraftServerGui extends JComponent { @@ -392,7 +392,7 @@ index d292fdb165436f0b9b46b32110f5e09ad0e517a1..2e93eec8733c5b548a15269a322fe4dd private JComponent buildInfoPanel() { JPanel jpanel = new JPanel(new BorderLayout()); - StatsComponent guistatscomponent = new StatsComponent(this.server); -+ com.destroystokyo.paper.gui.GuiStatsComponent guistatscomponent = new com.destroystokyo.paper.gui.GuiStatsComponent(this.server); // Paper ++ com.destroystokyo.paper.gui.GuiStatsComponent guistatscomponent = new com.destroystokyo.paper.gui.GuiStatsComponent(this.server); // Paper - Make GUI graph fancier Collection collection = this.finalizers; // CraftBukkit - decompile error Objects.requireNonNull(guistatscomponent); diff --git a/patches/server/0345-Validate-tripwire-hook-placement-before-update.patch b/patches/server/0345-Validate-tripwire-hook-placement-before-update.patch index 65b54af1282e..67e04f717c8f 100644 --- a/patches/server/0345-Validate-tripwire-hook-placement-before-update.patch +++ b/patches/server/0345-Validate-tripwire-hook-placement-before-update.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Validate tripwire hook placement before update diff --git a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java -index eed36b6736a4f971022fdbce989da03f42794bb5..02b62ac13d4968f80cb0ae3702755d0f1d95e692 100644 +index eed36b6736a4f971022fdbce989da03f42794bb5..d9b3877257b31ca1b5acc4a47fbf5b993de69ae0 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java @@ -188,6 +188,7 @@ public class TripWireHookBlock extends Block { TripWireHookBlock.emitState(world, pos, flag4, flag5, flag2, flag3); if (!flag) { -+ if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - validate ++ if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - Validate tripwire hook placement before update world.setBlock(pos, (BlockState) iblockdata3.setValue(TripWireHookBlock.FACING, enumdirection), 3); if (flag1) { TripWireHookBlock.notifyNeighbors(block, world, pos, enumdirection); diff --git a/patches/server/0346-Add-option-to-allow-iron-golems-to-spawn-in-air.patch b/patches/server/0346-Add-option-to-allow-iron-golems-to-spawn-in-air.patch index 261a4d131f86..a422731e0f4f 100644 --- a/patches/server/0346-Add-option-to-allow-iron-golems-to-spawn-in-air.patch +++ b/patches/server/0346-Add-option-to-allow-iron-golems-to-spawn-in-air.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to allow iron golems to spawn in air diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java -index ce83fe0b68fcb229dd37fe07e5f21b52a60c32de..f383928fc5b331ddf128bdcb6a23010d8fe088d3 100644 +index ce83fe0b68fcb229dd37fe07e5f21b52a60c32de..6cfe0d6c46caa122db107c607d27a2bdcd82f7a8 100644 --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java @@ -325,7 +325,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob { @@ -13,7 +13,7 @@ index ce83fe0b68fcb229dd37fe07e5f21b52a60c32de..f383928fc5b331ddf128bdcb6a23010d BlockState iblockdata = world.getBlockState(blockposition1); - if (!iblockdata.entityCanStandOn(world, blockposition1, this)) { -+ if (!iblockdata.entityCanStandOn(world, blockposition1, this) && !this.level().paperConfig().entities.spawning.ironGolemsCanSpawnInAir) { // Paper ++ if (!iblockdata.entityCanStandOn(world, blockposition1, this) && !this.level().paperConfig().entities.spawning.ironGolemsCanSpawnInAir) { // Paper - Add option to allow iron golems to spawn in air return false; } else { for (int i = 1; i < 3; ++i) { diff --git a/patches/server/0347-Configurable-chance-of-villager-zombie-infection.patch b/patches/server/0347-Configurable-chance-of-villager-zombie-infection.patch index 7e3bf9fac217..e9b37e4a511b 100644 --- a/patches/server/0347-Configurable-chance-of-villager-zombie-infection.patch +++ b/patches/server/0347-Configurable-chance-of-villager-zombie-infection.patch @@ -8,7 +8,7 @@ This allows you to solve an issue in vanilla behavior where: * On normal difficulty they will have a 50% of getting infected or dying. diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index d4f72024c15d03f70a86f09714403ace6e26885a..79634693899f50e34ffe0898f75e5b31fd11ab53 100644 +index d4f72024c15d03f70a86f09714403ace6e26885a..a073637adbb7bb8fc49cf97da6c0b6e9792d8e16 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -452,12 +452,8 @@ public class Zombie extends Monster { @@ -21,8 +21,8 @@ index d4f72024c15d03f70a86f09714403ace6e26885a..79634693899f50e34ffe0898f75e5b31 - if (world.getDifficulty() != Difficulty.HARD && this.random.nextBoolean()) { - return flag; - } -+ final double fallbackChance = world.getDifficulty() == Difficulty.HARD ? 100d : world.getDifficulty() == Difficulty.NORMAL ? 50d : 0d; // Paper -+ if (this.random.nextDouble() * 100 < world.paperConfig().entities.behavior.zombieVillagerInfectionChance.or(fallbackChance) && other instanceof Villager entityvillager) { // Paper ++ final double fallbackChance = world.getDifficulty() == Difficulty.HARD ? 100d : world.getDifficulty() == Difficulty.NORMAL ? 50d : 0d; // Paper - Configurable chance of villager zombie infection ++ if (this.random.nextDouble() * 100 < world.paperConfig().entities.behavior.zombieVillagerInfectionChance.or(fallbackChance) && other instanceof Villager entityvillager) { // Paper - Configurable chance of villager zombie infection // CraftBukkit start flag = Zombie.zombifyVillager(world, entityvillager, this.blockPosition(), this.isSilent(), CreatureSpawnEvent.SpawnReason.INFECTION) == null; } diff --git a/patches/server/0348-Optimise-Chunk-getFluid.patch b/patches/server/0348-Optimise-Chunk-getFluid.patch index 57ab428da0d0..3dd619df8f56 100644 --- a/patches/server/0348-Optimise-Chunk-getFluid.patch +++ b/patches/server/0348-Optimise-Chunk-getFluid.patch @@ -8,7 +8,7 @@ faster on its own, however removing the try catch makes it easier to inline due to code size diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index e599bfb9a7b0b85bea2940f6bf55118305dd0ce8..3acef646275aa05100e13e149bc5ff6d1ccbbea8 100644 +index e599bfb9a7b0b85bea2940f6bf55118305dd0ce8..796aa86e12cf9062b3467a3678c895af5ad626fe 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -377,18 +377,20 @@ public class LevelChunk extends ChunkAccess { @@ -20,8 +20,8 @@ index e599bfb9a7b0b85bea2940f6bf55118305dd0ce8..3acef646275aa05100e13e149bc5ff6d - - if (l >= 0 && l < this.sections.length) { - LevelChunkSection chunksection = this.sections[l]; -+ // try { // Paper - remove try catch -+ // Paper start - reduce the number of ops in this call ++ // Paper start - Perf: Optimise Chunk#getFluid ++ // try { // Remove try catch + int index = this.getSectionIndex(y); + if (index >= 0 && index < this.sections.length) { + LevelChunkSection chunksection = this.sections[index]; @@ -29,12 +29,12 @@ index e599bfb9a7b0b85bea2940f6bf55118305dd0ce8..3acef646275aa05100e13e149bc5ff6d if (!chunksection.hasOnlyAir()) { - return chunksection.getFluidState(x & 15, y & 15, z & 15); + return chunksection.states.get((y & 15) << 8 | (z & 15) << 4 | x & 15).getFluidState(); -+ // Paper end ++ // Paper end - Perf: Optimise Chunk#getFluid } } return Fluids.EMPTY.defaultFluidState(); -+ /* // Paper - remove try catch ++ /* // Paper - Perf: Optimise Chunk#getFluid } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Getting fluid state"); CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Block being got"); @@ -42,12 +42,12 @@ index e599bfb9a7b0b85bea2940f6bf55118305dd0ce8..3acef646275aa05100e13e149bc5ff6d }); throw new ReportedException(crashreport); } -+ */ // Paper - remove try catch ++ */ // Paper - Perf: Optimise Chunk#getFluid } // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index 4eeb719b40ff1c18a7cdda7ecc6b135dbedd626e..b8fee4f8a0cfe32b9ef7f3f3cf818cbaec0d3fca 100644 +index 4eeb719b40ff1c18a7cdda7ecc6b135dbedd626e..3efd0a462306fbd02a506a3f952d609645b1f874 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -46,7 +46,7 @@ public class LevelChunkSection { @@ -55,7 +55,7 @@ index 4eeb719b40ff1c18a7cdda7ecc6b135dbedd626e..b8fee4f8a0cfe32b9ef7f3f3cf818cba public FluidState getFluidState(int x, int y, int z) { - return ((BlockState) this.states.get(x, y, z)).getFluidState(); -+ return this.states.get(x, y, z).getFluidState(); // Paper - diff on change - we expect this to be effectively just getType(x, y, z).getFluid(). If this changes we need to check other patches that use IBlockData#getFluid. ++ return this.states.get(x, y, z).getFluidState(); // Paper - Perf: Optimise Chunk#getFluid; diff on change - we expect this to be effectively just getType(x, y, z).getFluid(). If this changes we need to check other patches that use IBlockData#getFluid. } public void acquire() { diff --git a/patches/server/0353-Pillager-patrol-spawn-settings-and-per-player-option.patch b/patches/server/0353-Pillager-patrol-spawn-settings-and-per-player-option.patch index 6820eac0fe19..70ba5ed64290 100644 --- a/patches/server/0353-Pillager-patrol-spawn-settings-and-per-player-option.patch +++ b/patches/server/0353-Pillager-patrol-spawn-settings-and-per-player-option.patch @@ -10,7 +10,7 @@ When not per player it will use the Vanilla mechanic of one delay per world and the world age for the start day. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 26410f43c7bbb368d9ef7206d3b9759f86afba4b..e6d9b3ddfaf60fce5e6232bd39c5b6307fa6aa7c 100644 +index fff540886166a60b967cf14e93776e36dcbe1308..070dddc5597cf623e2a29e731739383fd98b94d1 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -249,6 +249,7 @@ public class ServerPlayer extends Player { @@ -22,15 +22,15 @@ index 26410f43c7bbb368d9ef7206d3b9759f86afba4b..e6d9b3ddfaf60fce5e6232bd39c5b630 public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; diff --git a/src/main/java/net/minecraft/world/level/levelgen/PatrolSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PatrolSpawner.java -index e5918fa3be107ac3a2fc8831fd78733a7506730a..60a301b4a21be91bb3c2b84728467a693017e28f 100644 +index c7aea059de151cf8ae6e660785e176586bc23ff3..1c4dafdfb3898b5efe06d66792b1b0841ec5724d 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PatrolSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PatrolSpawner.java @@ -25,7 +25,7 @@ public class PatrolSpawner implements CustomSpawner { @Override public int tick(ServerLevel world, boolean spawnMonsters, boolean spawnAnimals) { -- if (world.paperConfig().entities.behavior.pillagerPatrols.disable) return 0; // Paper -+ if (world.paperConfig().entities.behavior.pillagerPatrols.disable || world.paperConfig().entities.behavior.pillagerPatrols.spawnChance == 0) return 0; // Paper - Pillager patrol spawn settings and per player options +- if (world.paperConfig().entities.behavior.pillagerPatrols.disable) return 0; // Paper - Add option to disable pillager patrols ++ if (world.paperConfig().entities.behavior.pillagerPatrols.disable || world.paperConfig().entities.behavior.pillagerPatrols.spawnChance == 0) return 0; // Paper - Add option to disable pillager patrols & Pillager patrol spawn settings and per player options if (!spawnMonsters) { return 0; } else if (!world.getGameRules().getBoolean(GameRules.RULE_DO_PATROL_SPAWNING)) { diff --git a/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch index 265b5f87266a..495761ea8dca 100644 --- a/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch +++ b/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch @@ -16,7 +16,7 @@ So even if something NEW comes up, it would be impossible to drop the same item twice because the source was destroyed. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b2dc3729a8312179d219bd93a755729c86f4dece..d13759736cf802cae56e68c11f09f15e1e08d09c 100644 +index 85371495d4f11e339a0211145c0303976515ef8f..14be6f3a591fded3ff8690241061a7a07d2a89a6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2467,11 +2467,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -70,7 +70,7 @@ index b2dc3729a8312179d219bd93a755729c86f4dece..d13759736cf802cae56e68c11f09f15e // CraftBukkit end } -@@ -3438,7 +3446,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3436,7 +3444,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean canChangeDimensions() { @@ -80,7 +80,7 @@ index b2dc3729a8312179d219bd93a755729c86f4dece..d13759736cf802cae56e68c11f09f15e public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d3bb5a6ee350043e7f5c173b9496c1d71b3957b1..0af0b62a4bd9b3c027a5a608b81831864d54fd11 100644 +index da68b02c6c66a205254d755e4ab5f379cbe9a666..28ea07dc7796f7fc12d5f11aed22eb35ee60c9b5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1705,9 +1705,9 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0392-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/0392-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch index 4ccb27a61ef0..db4ca8f753b0 100644 --- a/patches/server/0392-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch +++ b/patches/server/0392-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch @@ -13,7 +13,7 @@ A config is provided if you rather let players use these exploits, and let them destroy the worlds End Portals and get on top of the nether easy. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 120151da61398ea8afcd658a8407efcf738b9476..e720be2185b63f2cf3df9270191bac1ba50af2d5 100644 +index b1fdfae75aeea78ca77987e40242bf498447bc08..cf81854facadaf3c1f860bcaaf69db463a31b0c9 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -191,6 +191,7 @@ public class Explosion { @@ -21,7 +21,7 @@ index 120151da61398ea8afcd658a8407efcf738b9476..e720be2185b63f2cf3df9270191bac1b BlockPos blockposition = BlockPos.containing(d4, d5, d6); BlockState iblockdata = this.level.getBlockState(blockposition); + if (!iblockdata.isDestroyable()) continue; // Paper - Protect Bedrock and End Portal/Frames from being destroyed - FluidState fluid = iblockdata.getFluidState(); // Paper + FluidState fluid = iblockdata.getFluidState(); // Paper - Perf: Optimize call to getFluid for explosions if (!this.level.isInWorldBounds(blockposition)) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/patches/server/0409-Ensure-Entity-position-and-AABB-are-never-invalid.patch b/patches/server/0409-Ensure-Entity-position-and-AABB-are-never-invalid.patch index e3db71c18a07..0b2777a605a9 100644 --- a/patches/server/0409-Ensure-Entity-position-and-AABB-are-never-invalid.patch +++ b/patches/server/0409-Ensure-Entity-position-and-AABB-are-never-invalid.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Ensure Entity position and AABB are never invalid Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a1d990aa2e79af9e1ff078892cdb38a382f21da7..e1ce61dcadf325633ed809eef92fc07bac4cbf05 100644 +index 2b3b6b7cda65434c903582a99e42e71762daccf8..44ff63b89056eb2f944ead71d74d17d1fd5351b2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -728,8 +728,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -20,7 +20,7 @@ index a1d990aa2e79af9e1ff078892cdb38a382f21da7..e1ce61dcadf325633ed809eef92fc07b } protected AABB makeBoundingBox() { -@@ -4243,7 +4243,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4241,7 +4241,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.getZ((2.0D * this.random.nextDouble() - 1.0D) * widthScale); } @@ -50,7 +50,7 @@ index a1d990aa2e79af9e1ff078892cdb38a382f21da7..e1ce61dcadf325633ed809eef92fc07b // Paper start - rewrite chunk system if (this.updatingSectionStatus) { LOGGER.error("Refusing to update position for entity " + this + " to position " + new Vec3(x, y, z) + " since it is processing a section status update", new Throwable()); -@@ -4267,6 +4289,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4265,6 +4287,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.levelCallback.onMove(); } diff --git a/patches/server/0410-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0410-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index 3f83fc58c36b..4b93808a2fce 100644 --- a/patches/server/0410-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0410-Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -8,11 +8,11 @@ makes it so that the server keeps the last difficulty used instead of restoring the server.properties every single load. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 739e6cf058f2d85c874d1c4f114963035b8c645f..6ffb81f09e7422adeb29f0651a9d3b6e7f6860d3 100644 +index 72dd2986c366a7840116b2426c4e2e6b807d0cfa..77f6b636c8e9935e51d54a47c0ac7a171aab2e60 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -828,7 +828,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> { diff --git a/patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 20f9571a3fec..62fe81cc1be2 100644 --- a/patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8a7dd236435b08e0857041641eec9edcef936503..3be046b4062e9eb9e642c17ba43b4d446e6ba9d7 100644 +index 135dc03be7e81306dacaf7d10359ea10529d8303..4b7c3b71a15a3e223ea1e8366be31130bc5e5504 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2034,9 +2034,11 @@ public class ServerLevel extends Level implements WorldGenLevel { public void setDefaultSpawnPos(BlockPos pos, float angle) { - // Paper - configurable spawn radius + // Paper start - Configurable Keep Spawn Loaded range per world BlockPos prevSpawn = this.getSharedSpawnPos(); + Location prevSpawnLoc = this.getWorld().getSpawnLocation(); // Paper - Call SpawnChangeEvent //ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(new BlockPosition(this.worldData.a(), 0, this.worldData.c())); @@ -21,7 +21,7 @@ index 8a7dd236435b08e0857041641eec9edcef936503..3be046b4062e9eb9e642c17ba43b4d44 // if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add this.removeTicketsForSpawn(this.paperConfig().spawn.keepSpawnLoadedRange * 16, prevSpawn); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 36d7c41505d41443e6034dfc88ce177fe47d980f..4fe507969849f8abd12aadb6943a8a2fce27b5b5 100644 +index 95f3b5d9293077e2933b0a0a91bfeb43b6efc6fe..d6d49854eede2b9005725969c6c062168c4b2fce 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -262,12 +262,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0439-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0439-Do-not-let-the-server-load-chunks-from-newer-version.patch index 257d244efb37..0d84c00975a1 100644 --- a/patches/server/0439-Do-not-let-the-server-load-chunks-from-newer-version.patch +++ b/patches/server/0439-Do-not-let-the-server-load-chunks-from-newer-version.patch @@ -9,7 +9,7 @@ the game, immediately stop the server to prevent data corruption. You can override this functionality at your own peril. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 02beedb84a8bec001270116c6ce496db012e6b8a..08abe8064f01b20aae0c7a018e11fe2ef42de71b 100644 +index 0341d9e951366b77e7eeac7cdaa950af62c88aab..0ef8ecc7932107029d85e961e2e747d7312d816e 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -124,8 +124,20 @@ public class ChunkSerializer { @@ -31,5 +31,5 @@ index 02beedb84a8bec001270116c6ce496db012e6b8a..08abe8064f01b20aae0c7a018e11fe2e + } + } // Paper end - ChunkPos chunkcoordintpair1 = new ChunkPos(nbt.getInt("xPos"), nbt.getInt("zPos")); // Paper - diff on change, see ChunkSerializer#getChunkCoordinate + ChunkPos chunkcoordintpair1 = new ChunkPos(nbt.getInt("xPos"), nbt.getInt("zPos")); // Paper - guard against serializing mismatching coordinates; diff on change, see ChunkSerializer#getChunkCoordinate diff --git a/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index 975aeee0a8e5..82b299261098 100644 --- a/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8a613a8a874b8b3949630fcadc25cf39b7fb0659..9b723b5c429fcb356cc056dc56e1c7be1d20a728 100644 +index 961cd2886ca2fdafdeb958ee714e3d436bd7f330..b56ee5c771d1316e05eba29a8e9d3e9d4468b83c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4510,4 +4510,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4508,4 +4508,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S void accept(Entity entity, double x, double y, double z); } diff --git a/patches/server/0457-Entity-isTicking.patch b/patches/server/0457-Entity-isTicking.patch index be89df1d7187..35eeca6dad3a 100644 --- a/patches/server/0457-Entity-isTicking.patch +++ b/patches/server/0457-Entity-isTicking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9b723b5c429fcb356cc056dc56e1c7be1d20a728..bf7d307c26c52035f3799ca80dccc8e8798d8f89 100644 +index b56ee5c771d1316e05eba29a8e9d3e9d4468b83c..f8acf77f5157cdee4e40d03b571a830aa726ba70 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4515,5 +4515,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4513,5 +4513,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public static int nextEntityId() { return ENTITY_COUNTER.incrementAndGet(); } diff --git a/patches/server/0497-MC-4-Fix-item-position-desync.patch b/patches/server/0497-MC-4-Fix-item-position-desync.patch index 2739c75f453a..a00bae5e8452 100644 --- a/patches/server/0497-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0497-MC-4-Fix-item-position-desync.patch @@ -28,10 +28,10 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..3c4ac79c094dc2fff7de94150a34b7bf public Vec3 decode(long x, long y, long z) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 180f87a67c84fc0cf3f54755da9801365d4158f8..9085eeffaa7b50e5e59a794d0323cae83248f242 100644 +index dc957fce9f6b5709d6f74fa66a99235d8933d8cc..17152781725a6cf0e1ce5da8374fb3a74cb84351 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4286,6 +4286,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4284,6 +4284,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } // Paper end - rewrite chunk system diff --git a/patches/server/0634-Optimize-indirect-passenger-iteration.patch b/patches/server/0634-Optimize-indirect-passenger-iteration.patch index f0102e4992b4..a4b212cc4135 100644 --- a/patches/server/0634-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0634-Optimize-indirect-passenger-iteration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimize indirect passenger iteration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 72f50fe74695e32167d414c1c9ee38deb95afb79..8b84de55028a9c4d65fe5ae99b808f0d84ce6799 100644 +index e6142fc4ac6fe6149f6094124223cdebd56e7b76..2b34c7bc49fff37b6e0a603b6670103fe959fe2a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3926,20 +3926,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3924,20 +3924,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } private Stream getIndirectPassengersStream() { @@ -43,7 +43,7 @@ index 72f50fe74695e32167d414c1c9ee38deb95afb79..8b84de55028a9c4d65fe5ae99b808f0d return () -> { return this.getIndirectPassengersStream().iterator(); }; -@@ -3962,6 +3976,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3960,6 +3974,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper end - rewrite chunk system public boolean hasExactlyOnePlayerPassenger() { diff --git a/patches/server/0658-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0658-Add-paper-mobcaps-and-paper-playermobcaps.patch index 6f1824e9d367..85903424e391 100644 --- a/patches/server/0658-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0658-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -257,7 +257,7 @@ index 0000000000000000000000000000000000000000..d3b39d88a72ca25057fd8574d32f28db + } +} diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 9df761f5cf043e8d2dffa711c20ab32fe2992331..48cc5623973713e07d95639e5359fc15e59785cc 100644 +index 4aa2a174400fe879501571c175d5ac4d09ac7de3..6fbd136f4bbfa34ef88a7743c63a542ed0cc2c02 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -190,6 +190,16 @@ public final class NaturalSpawner { @@ -275,10 +275,10 @@ index 9df761f5cf043e8d2dffa711c20ab32fe2992331..48cc5623973713e07d95639e5359fc15 + // Paper end - Add mobcaps commands + public static void spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner) { - // Paper start - add parameters and int ret type + // Paper start - Optional per player mob spawns spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f4b1d6ed1e1065e6be175b7b68e29517ebfa2da8..9491eb5b47defd7949fe2e691d63d3767be1f337 100644 +index 775e40dc356406cf289807abb83cda5ca186563f..b603541d56c7cee7aff8d3448d18c76cd72b63cb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2279,6 +2279,11 @@ public final class CraftServer implements Server { @@ -294,7 +294,7 @@ index f4b1d6ed1e1065e6be175b7b68e29517ebfa2da8..9491eb5b47defd7949fe2e691d63d376 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 305a525815d7a3ea3f5dd3c093a76af0252c2f7e..b49580716ff1dc85adcd466d1df9ce678a58546f 100644 +index 189c0ab39f56e7a6d92aa6ee24f29a232b446cdf..3dc6f7f376f845ec36663d147a2e08ecc077700a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1761,9 +1761,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0673-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0673-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch index ac15766a9ad5..563a31ce2125 100644 --- a/patches/server/0673-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch +++ b/patches/server/0673-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch @@ -10,7 +10,7 @@ hoping that at least then we don't swap chunks, and maybe recover them all. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index a95909bc818f395ce5772c5129f9cc9b789ce133..72cfe25cbc2076bc83c9f965ab70b0e636800212 100644 +index 0ef8ecc7932107029d85e961e2e747d7312d816e..c09d42c03e1e430dd65218e8297be9e35cdef030 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -70,6 +70,18 @@ import net.minecraft.world.ticks.ProtoChunkTicks; @@ -42,7 +42,7 @@ index a95909bc818f395ce5772c5129f9cc9b789ce133..72cfe25cbc2076bc83c9f965ab70b0e6 nbttagcompound.putString("Status", BuiltInRegistries.CHUNK_STATUS.getKey(chunk.getStatus()).toString()); BlendingData blendingdata = chunk.getBlendingData(); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java -index 7f7c05c498dfe11842a0c35d6e8c2c428cf7647b..4a84ada69c6abc8f2743579d4451e639836274b4 100644 +index cccc3741227402b24c76d31a339d01323610b9f0..2f7c9e0e62599688c0ed2e05444bce5040035a99 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java @@ -41,7 +41,7 @@ public class ChunkStorage implements AutoCloseable { @@ -87,7 +87,7 @@ index c8298a597818227de33a4afce4698ec0666cf758..6762b0f71ea9e369bb77103b7f193898 this.used.set(start, start + size); } 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 647ce340c81606ab86d33e1f9dec1fb0afc262d8..2c951dfb17a11bd81c19080a1f8f498f8e534cff 100644 +index 0ae3d1ea6f00efcdea5da5bf1a0f984f4473f5a2..1f8fa4a054ed1c76688d1a919ea170587fb4806f 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 @@ -50,6 +50,355 @@ public class RegionFile implements AutoCloseable { @@ -685,7 +685,7 @@ index 647ce340c81606ab86d33e1f9dec1fb0afc262d8..2c951dfb17a11bd81c19080a1f8f498f return bytebuffer; } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 9fa07295bf73317a4c2bbbbaf1918393c891f09a..a2794ec3d846136da64b6888d846587499a5f635 100644 +index 9e30b47ece5549c30f487e5542ae65d5faaa8c39..156cecae8ea7ffbc38974829942a1c92e828eca9 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -24,6 +24,7 @@ public class RegionFileStorage implements AutoCloseable { @@ -727,7 +727,7 @@ index 9fa07295bf73317a4c2bbbbaf1918393c891f09a..a2794ec3d846136da64b6888d8465874 this.regionCache.putAndMoveToFirst(i, regionfile1); // Paper start -@@ -216,6 +223,13 @@ public class RegionFileStorage implements AutoCloseable { +@@ -188,6 +195,13 @@ public class RegionFileStorage implements AutoCloseable { if (regionfile == null) { return null; } @@ -741,7 +741,7 @@ index 9fa07295bf73317a4c2bbbbaf1918393c891f09a..a2794ec3d846136da64b6888d8465874 // CraftBukkit end try { // Paper DataInputStream datainputstream = regionfile.getChunkDataInputStream(pos); -@@ -232,6 +246,20 @@ public class RegionFileStorage implements AutoCloseable { +@@ -204,6 +218,20 @@ public class RegionFileStorage implements AutoCloseable { try { if (datainputstream != null) { nbttagcompound = NbtIo.read((DataInput) datainputstream); diff --git a/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch index c06e5b82103d..3be1d22faee9 100644 --- a/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch @@ -76,7 +76,7 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 922639eee09ff9878a979ebfdaa36f865746cbdd..c6c69ea8a471eff84256f1a66d4eda98f55c269e 100644 +index dcbcb1df7a8c1e5f78b8f202e4207afc1054a414..ec2a8656148b7ccdf519ce6d13494d22dadc0789 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1244,7 +1244,26 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -122,7 +122,7 @@ index 922639eee09ff9878a979ebfdaa36f865746cbdd..c6c69ea8a471eff84256f1a66d4eda98 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f3f12e2394a85fd49ba0bc14944b0f073ca5fecc..bbc8a7f27ffdeda8f994b04213e631e1b82ee67c 100644 +index b9d70f71b2b03190e329d1f843b54ac4c73543ab..054825419c98351af15309ecfa007fd7e1ee1bea 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1031,7 +1031,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -182,7 +182,7 @@ index f3f12e2394a85fd49ba0bc14944b0f073ca5fecc..bbc8a7f27ffdeda8f994b04213e631e1 } private boolean isStateClimbable(BlockState state) { -@@ -4272,7 +4314,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4270,7 +4312,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void setDeltaMovement(Vec3 velocity) { @@ -192,7 +192,7 @@ index f3f12e2394a85fd49ba0bc14944b0f073ca5fecc..bbc8a7f27ffdeda8f994b04213e631e1 } public void addDeltaMovement(Vec3 velocity) { -@@ -4375,7 +4419,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4373,7 +4417,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // Paper end - Fix MC-4 if (this.position.x != x || this.position.y != y || this.position.z != z) { diff --git a/patches/server/0710-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0710-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch index 249347a17147..f83ede080746 100644 --- a/patches/server/0710-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch +++ b/patches/server/0710-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch @@ -8,7 +8,7 @@ This ensures at least a valid version of the chunk exists on disk, even if outdated 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 2c951dfb17a11bd81c19080a1f8f498f8e534cff..b0fa77d298ad1476fdc2433b0308276068e53a71 100644 +index 1f8fa4a054ed1c76688d1a919ea170587fb4806f..50de979a447171ab98de59bf25b6c82871d03543 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 @@ -1003,6 +1003,9 @@ public class RegionFile implements AutoCloseable { @@ -47,15 +47,15 @@ index 2c951dfb17a11bd81c19080a1f8f498f8e534cff..b0fa77d298ad1476fdc2433b03082760 ByteBuffer bytebuffer = ByteBuffer.wrap(this.buf, 0, this.count); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index a2794ec3d846136da64b6888d846587499a5f635..6bec4549fbcfb68a053300451e25babf8ff38e99 100644 +index 156cecae8ea7ffbc38974829942a1c92e828eca9..a25e7183da64f726773aa279707ae67941246b46 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -@@ -342,10 +342,17 @@ public class RegionFileStorage implements AutoCloseable { +@@ -314,10 +314,17 @@ public class RegionFileStorage implements AutoCloseable { NbtIo.write(nbt, (DataOutput) dataoutputstream); - regionfile.setStatus(pos.x, pos.z, ChunkSerializer.getStatus(nbt)); // Paper - cache status on disk + regionfile.setStatus(pos.x, pos.z, ChunkSerializer.getStatus(nbt)); // Paper - Cache chunk status regionfile.setOversized(pos.x, pos.z, false); // Paper - We don't do this anymore, mojang stores differently, but clear old meta flag if it exists to get rid of our own meta file once last oversized is gone + dataoutputstream.close(); // Paper - only write if successful -+ // Paper start - don't write garbage data to disk if writing serialization fails ++ // Paper start - don't write garbage data to disk if writing serialization fails + } catch (RegionFileSizeException e) { + attempts = 5; // Don't retry + regionfile.clear(pos); @@ -69,7 +69,7 @@ index a2794ec3d846136da64b6888d846587499a5f635..6bec4549fbcfb68a053300451e25babf } catch (Throwable throwable1) { throwable.addSuppressed(throwable1); } -@@ -353,10 +360,7 @@ public class RegionFileStorage implements AutoCloseable { +@@ -325,10 +332,7 @@ public class RegionFileStorage implements AutoCloseable { throw throwable; } @@ -81,7 +81,7 @@ index a2794ec3d846136da64b6888d846587499a5f635..6bec4549fbcfb68a053300451e25babf } // Paper start return; -@@ -402,4 +406,13 @@ public class RegionFileStorage implements AutoCloseable { +@@ -374,4 +378,13 @@ public class RegionFileStorage implements AutoCloseable { } } diff --git a/patches/server/0711-Fix-tripwire-state-inconsistency.patch b/patches/server/0711-Fix-tripwire-state-inconsistency.patch index 1933c0261718..6f9de7ceebc5 100644 --- a/patches/server/0711-Fix-tripwire-state-inconsistency.patch +++ b/patches/server/0711-Fix-tripwire-state-inconsistency.patch @@ -41,7 +41,7 @@ index 003fd247b12323cca5fd82a6cdf31bd897afd682..a93a085b2e9564a2ff950fff505d856b } else if (iblockdata1.is((Block) this)) { ++k; diff --git a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java -index 02b62ac13d4968f80cb0ae3702755d0f1d95e692..0f6ea0adb4b99d934e1a3fcb92562dffb2a45f63 100644 +index d9b3877257b31ca1b5acc4a47fbf5b993de69ae0..7f2dcf6a9e69779e6f898284b58fb1e32902000c 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireHookBlock.java @@ -118,7 +118,13 @@ public class TripWireHookBlock extends Block { @@ -82,6 +82,6 @@ index 02b62ac13d4968f80cb0ae3702755d0f1d95e692..0f6ea0adb4b99d934e1a3fcb92562dff TripWireHookBlock.emitState(world, pos, flag4, flag5, flag2, flag3); - if (!flag) { + if (!beingRemoved) { // Paper - fix tripwire state inconsistency - if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - validate + if (world.getBlockState(pos).getBlock() == Blocks.TRIPWIRE_HOOK) // Paper - Validate tripwire hook placement before update world.setBlock(pos, (BlockState) iblockdata3.setValue(TripWireHookBlock.FACING, enumdirection), 3); if (flag1) { diff --git a/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch index e6a806fdc5df..5ebfc6e48723 100644 --- a/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch @@ -113,12 +113,12 @@ index 6cd6d69a20e95e344fc18ab67dc300824537a59b..2e2a7c2cf3081187da817479a9da3eb1 } } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 534493aaddced9200e1618d5eabf2b176a1f35b6..a58c47b16254262ec705a8f986ef42c71503770d 100644 +index b303603178a9de5f14bede9e601f80cfb44ecc91..bf78917f1e356dc3b7d7bcedffab282978a35917 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -898,7 +898,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } - // Paper end + // Paper end - Cache chunk status on disk - boolean anyPlayerCloseEnoughForSpawning(ChunkPos pos) { + public boolean anyPlayerCloseEnoughForSpawning(ChunkPos pos) { // Paper - public @@ -126,7 +126,7 @@ index 534493aaddced9200e1618d5eabf2b176a1f35b6..a58c47b16254262ec705a8f986ef42c7 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 82a71a150c555dd4dfe0ce03a3addba53fda5387..9ef3445aadf98d205a60803f459d07c4ac820ba9 100644 +index 43d14fac84b932c0a5a94dd6b01c22c1a289b8c2..f594998de4ff40b56d039bc48721f6b53f0a1ec0 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1032,7 +1032,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -139,7 +139,7 @@ index 82a71a150c555dd4dfe0ce03a3addba53fda5387..9ef3445aadf98d205a60803f459d07c4 if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d27793e21f9352896a96d5ccfdd0281b0b102a03..6cf989b4827b78d25bcb0ad4b683b6b1569e12dd 100644 +index aad7e1d9e17a0daa8697c13d1ef8cf7331cdf001..142094dcdfd9ba1c4cb77107d17f4c6b28888e7e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -468,14 +468,14 @@ public class ServerPlayer extends Player { @@ -160,7 +160,7 @@ index d27793e21f9352896a96d5ccfdd0281b0b102a03..6cf989b4827b78d25bcb0ad4b683b6b1 while (!world.noCollision(this, this.getBoundingBox(), true) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { // Paper - make sure this loads chunks, we default to NOT loading now this.setPos(this.getX(), this.getY() + 1.0D, this.getZ()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index c14ab35c4336c025c242e8a350ac4b8d1b1d5c78..15f6bd2e61c02392e8383dc93d734990c8c7edca 100644 +index aad371a281486631151388ee2348ffaa2a465bc5..8b339ad425d4021b859126d763adf393cb0e86c5 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -92,7 +92,7 @@ public class ServerPlayerGameMode { @@ -173,7 +173,7 @@ index c14ab35c4336c025c242e8a350ac4b8d1b1d5c78..15f6bd2e61c02392e8383dc93d734990 this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 92b88e82e9a49a0e967a7e694f1d2f4ade8adbf1..fbf388fe93383daf5e87e54a8a413a2239bfdc69 100644 +index b1f13c4d8de125a56b76bc85ccced039ac3c4785..b8213713b54e0bfaa0ddca41ec76f6840c0e1d20 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -711,8 +711,10 @@ public abstract class PlayerList { @@ -298,7 +298,7 @@ index 110dd5418b0512a2f27f0c4d5a5f1812356a6a12..5d247ac38fe8a61603b3d934f3000bcd } diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -index 7a990fb47f39da00026d3005d5bb11d3abd14026..ea5fffa7e045d854ce9522f00246e3746f40f028 100644 +index 56cc6ecf7f95687db7c7c062b4ee979bfe49844b..94dd97662ba07689fbfa16ef5c7d99fe12ce83de 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java @@ -252,7 +252,13 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, @@ -474,7 +474,7 @@ index 0813e7510c43ed6916e83635f2be6d39ce2feb5b..137ee0271f1d7adbf3c463b96e9c4627 } } diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index d3e2fd7fcfeec133a7baa0007c979c9e379c2f10..1ef558bdd27e9b64413e64f0fa9c68a35f43c39d 100644 +index 83a5417d14e89c3e582e400543fe41f129bbbf3b..5ea2cad4031d69f0204e3094d9ac5d127ef2438c 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -291,7 +291,11 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name diff --git a/patches/server/0859-Friction-API.patch b/patches/server/0859-Friction-API.patch index f6d0ae44e491..1939ce5239ad 100644 --- a/patches/server/0859-Friction-API.patch +++ b/patches/server/0859-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c726af466c1156a3b2c1ee18d1ac1b4613ee2431..0e66212733665307840d10bd6ea049d45f674ddb 100644 +index f039ea2716efa3fabf041f75388c2c9b7f41948f..03beb4cf21d98d2b7439c5d548dc1dae51482d9b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -55,13 +55,13 @@ index c726af466c1156a3b2c1ee18d1ac1b4613ee2431..0e66212733665307840d10bd6ea049d4 if (nbt.contains("Attributes", 9) && this.level() != null && !this.level().isClientSide) { this.getAttributes().load(nbt.getList("Attributes", 10)); diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index e19a0f1fac3dd04927f73f3d11a921ffc4608388..491a521f0e5e272fbad7870fa3adefdea22e179f 100644 +index 13efea97d1836a48ef4c0e077a61571d9c171a0e..635f93b4205bd11a8080fbc1db53aa2430aacb77 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -57,6 +57,7 @@ public class ItemEntity extends Entity implements TraceableEntity { private int lastTick = MinecraftServer.currentTick - 1; // CraftBukkit public boolean canMobPickup = true; // Paper - private int despawnRate = -1; // Paper + private int despawnRate = -1; // Paper - Alternative item-despawn-rate + public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API public ItemEntity(EntityType type, Level world) { @@ -110,7 +110,7 @@ index e19a0f1fac3dd04927f73f3d11a921ffc4608388..491a521f0e5e272fbad7870fa3adefde this.setItem(ItemStack.of(nbttagcompound1)); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java -index b1bbab951ef9a3d2bd98cc54665ba824263542eb..81498941748d646ebe6495f4a7ce6953532144c6 100644 +index cbfd4cf1d7d32757cf124d1aaa4b83d8a155868f..832def3c518be8d6d81e71f6022566e6179e2d17 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java @@ -99,6 +99,18 @@ public class CraftItem extends CraftEntity implements Item { @@ -133,7 +133,7 @@ index b1bbab951ef9a3d2bd98cc54665ba824263542eb..81498941748d646ebe6495f4a7ce6953 public int getHealth() { return this.getHandle().health; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 9de132dc39f2af083b2f60d6344b9a9635c1de83..45ebd9ffc37163e3a11c80c15b41c5aeed2b6983 100644 +index d12734b0c6b10ca8997a79e06fc9791abe0e9ed5..97c7bb2032584847f2f8a946c1f8d13fef908edf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -1083,6 +1083,18 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0863-Player-Entity-Tracking-Events.patch b/patches/server/0863-Player-Entity-Tracking-Events.patch index 5a6899fbf481..c5c3e3dc3775 100644 --- a/patches/server/0863-Player-Entity-Tracking-Events.patch +++ b/patches/server/0863-Player-Entity-Tracking-Events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player Entity Tracking Events diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a58c47b16254262ec705a8f986ef42c71503770d..8c5364e6adecc01f4fa9dcd0b4fd18e81324d1a9 100644 +index bf78917f1e356dc3b7d7bcedffab282978a35917..6420a6c16a8c3f0f45649834fe40e1939d1fead7 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1409,7 +1409,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -21,10 +21,10 @@ index a58c47b16254262ec705a8f986ef42c71503770d..8c5364e6adecc01f4fa9dcd0b4fd18e8 } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0c1cb3d5892b81b9f8a1894e429bc237c877298d..ee3dac1d45e0ab85cd21871029650fbed7310a34 100644 +index 98f7248920a25930ac813e22bbd816294f06d057..6e1c088a234ff4c93ea790c46f1e1f015fc24bec 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4107,7 +4107,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4105,7 +4105,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void startSeenByPlayer(ServerPlayer player) {} diff --git a/patches/server/0873-Improve-PortalEvents.patch b/patches/server/0873-Improve-PortalEvents.patch index 481c409ed04a..da472a0bb35b 100644 --- a/patches/server/0873-Improve-PortalEvents.patch +++ b/patches/server/0873-Improve-PortalEvents.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ee3dac1d45e0ab85cd21871029650fbed7310a34..30e831bc4409260047016279aa5f36d2ad2934b4 100644 +index 6e1c088a234ff4c93ea790c46f1e1f015fc24bec..805f438e4b7a03393424c2ba11bf1f7fc4822f52 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3765,7 +3765,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3763,7 +3763,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S Location enter = bukkitEntity.getLocation(); Location exit = CraftLocation.toBukkit(exitPosition, exitWorldServer.getWorld()); diff --git a/patches/server/0946-Folia-scheduler-and-owned-region-API.patch b/patches/server/0946-Folia-scheduler-and-owned-region-API.patch index 06f48655a844..8fbfc6239798 100644 --- a/patches/server/0946-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0946-Folia-scheduler-and-owned-region-API.patch @@ -1148,7 +1148,7 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e9ec17c4dfb44f6f562dedd20d123064492ef736..ffb87573b1c5df4e6f4d36d0331738da221e0f38 100644 +index addb4133295739ea19e0e770e040698411399944..5caa39b529c6c0798d91e8e8468b40988f6fb987 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1629,6 +1629,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - Add EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f66857ee0cdb3b110a0c3afedbc1c70bb3357a81..24145582ceb89406deb3d7fc3dfbe473c3d85229 100644 +index 9d65f0558c7c4db75ed6337dc241c01746933315..3cef73da0ac4cbf8104fa5dff8321f605287a580 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { return player != null && player.level() == this ? player : null; } - // Paper end + // Paper end - optimise getPlayerByUUID + // Paper start - lag compensation + private long lagCompensationTick = net.minecraft.server.MinecraftServer.SERVER_INIT; + @@ -52,7 +52,7 @@ index f66857ee0cdb3b110a0c3afedbc1c70bb3357a81..24145582ceb89406deb3d7fc3dfbe473 // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 27d22a6aef3f71179ea102062f1338cce5d46fea..52aadf7336c1486ccf0d192e27b742f9e63cfe9b 100644 +index 96dd68d55dbcb4f6bf3f3096802e48ca50ab766e..b8c0f11a29ebc738a935d78e7a1e19914d43b533 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -124,7 +124,7 @@ public class ServerPlayerGameMode { @@ -65,7 +65,7 @@ index 27d22a6aef3f71179ea102062f1338cce5d46fea..52aadf7336c1486ccf0d192e27b742f9 if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 768f1cb6b9a5f234be02f07a7ba84156e629fa03..5b2169737f831ba57ce7925cbe9a82c3cd712974 100644 +index a09ad0cdbc9f3eb2ac77836076292822991b3d08..3d8efaaeea5cf7582c23cbb48beecf8eaf98a03e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3819,6 +3819,10 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -95,7 +95,7 @@ index 768f1cb6b9a5f234be02f07a7ba84156e629fa03..5b2169737f831ba57ce7925cbe9a82c3 @@ -3885,7 +3894,10 @@ public abstract class LivingEntity extends Entity implements Attackable { - if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper use override flag + if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper - Prevent consuming the wrong itemstack this.useItem = itemstack; - this.useItemRemaining = itemstack.getUseDuration(); + // Paper start - lag compensate eating From e9e0bc168dd6170fbe27965bef10006d3e90cf32 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 21 Jan 2024 13:56:22 +0100 Subject: [PATCH 33/45] [ci skip] Add more identifying patch comments --- ...ow-chests-to-be-placed-with-NBT-data.patch | 8 ++-- patches/server/0252-Mob-Pathfinding-API.patch | 16 ++++---- ...anPlaceOn-and-CanDestroy-NBT-values.patch} | 32 +++++++-------- ...nt-furnace-cook-speed-multiplier-API.patch | 22 +++++----- .../0257-Honor-EntityAgeable.ageLock.patch | 10 ++--- ...ent-chunk-loading-from-Fluid-Flowing.patch | 25 ++++++------ ...ception-in-entity-and-block-entity-.patch} | 2 +- patches/server/0265-Turtle-API.patch | 26 +++--------- ...tator-target-events-and-improve-impl.patch | 6 +-- ...owned-for-Villager-Aggression-Config.patch | 4 +- ...event-players-from-moving-into-unloa.patch | 6 +-- ...70-Reset-players-airTicks-on-respawn.patch | 4 +- ...-after-profile-lookups-if-not-needed.patch | 8 ++-- ...er-Thread-Pool-and-Thread-Priorities.patch | 14 +++---- .../0273-Optimize-World-Time-Updates.patch | 6 +-- .../0275-Fix-SpongeAbsortEvent-handling.patch | 6 +-- ...t-allow-digging-into-unloaded-chunks.patch | 18 ++++----- ...e-Large-Packets-disconnecting-client.patch | 14 +++---- ...entity-dismount-during-teleportation.patch | 32 +++++++-------- patches/server/0280-Add-more-Zombie-API.patch | 20 +++++----- patches/server/0281-Book-Size-Limits.patch | 6 +-- .../0282-Add-PlayerConnectionCloseEvent.patch | 4 +- ...Replace-OfflinePlayer-getLastPlayed.patch} | 10 ++--- ...vehicle-tracking-issue-on-disconnect.patch | 6 +-- patches/server/0286-BlockDestroyEvent.patch | 10 ++--- .../0287-Async-command-map-building.patch | 14 +++---- ....patch => 0288-Brigadier-Mojang-API.patch} | 38 +++++++++--------- ...rove-exact-choice-recipe-ingredients.patch | 40 +++++++++---------- .../0290-Limit-Client-Sign-length-more.patch | 8 ++-- ...oggleEvent-when-whitelist-is-toggled.patch | 4 +- ...le-Oversized-Tile-Entities-in-chunks.patch | 20 +++++----- .../0293-Entity-getEntitySpawnReason.patch | 28 ++++++------- .../server/0295-Fire-event-on-GS4-query.patch | 6 +-- ... => 0296-Add-PlayerPostRespawnEvent.patch} | 16 ++++---- patches/server/0298-Server-Tick-Events.patch | 8 ++-- ...0299-PlayerDeathEvent-getItemsToKeep.patch | 10 ++--- ...layerDeathEvent-shouldDropExperience.patch | 4 +- .../0328-Entity-Activation-Range-2.0.patch | 28 +++++-------- patches/server/0334-Anti-Xray.patch | 16 ++++---- ...spawn-settings-and-per-player-option.patch | 4 +- ...ptimize-Collision-to-not-load-chunks.patch | 6 +-- ...move-existing-players-to-world-spawn.patch | 8 ++-- ...pawn-point-if-spawn-in-unloaded-worl.patch | 8 ++-- ...k-for-portal-on-world-gen-entity-add.patch | 4 +- patches/server/0427-Fix-SPIGOT-5989.patch | 8 ++-- .../server/0501-Cache-burn-durations.patch | 4 +- ...pawnEvent-fix-passed-parameter-issue.patch | 8 ++-- ...mmands-if-tab-completion-is-disabled.patch | 4 +- .../0595-Add-PlayerKickEvent-causes.patch | 8 ++-- ...nect-for-book-edit-is-called-on-main.patch | 4 +- .../0638-Add-BlockBreakBlockEvent.patch | 8 ++-- .../server/0706-Collision-optimisations.patch | 18 ++++----- ...y-type-tags-suggestions-in-selectors.patch | 6 +-- ...n-on-world-create-while-being-ticked.patch | 6 +-- ...ck-entities-after-destroy-prediction.patch | 6 +-- .../0945-Implement-PlayerFailMoveEvent.patch | 4 +- .../0972-Deep-clone-unhandled-nbt-tags.patch | 4 +- 57 files changed, 324 insertions(+), 349 deletions(-) rename patches/server/{0253-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch => 0253-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch} (93%) rename patches/server/{0264-Catch-JsonParseException-in-Entity-and-TE-names.patch => 0264-Catch-JsonParseException-in-entity-and-block-entity-.patch} (98%) rename patches/server/{0283-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch => 0283-Replace-OfflinePlayer-getLastPlayed.patch} (95%) rename patches/server/{0288-Implement-Brigadier-Mojang-API.patch => 0288-Brigadier-Mojang-API.patch} (90%) rename patches/server/{0296-Implement-PlayerPostRespawnEvent.patch => 0296-Add-PlayerPostRespawnEvent.patch} (75%) diff --git a/patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch b/patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch index a261a829faef..13419c163628 100644 --- a/patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch +++ b/patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Allow chests to be placed with NBT data diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 8e8bcf829818fbbaedb13d9eddca096d457c511a..19e8d10727fc4838cd8261dfec92f3828ea5b09f 100644 +index 7f85121b6830ebf480c5ca7b42d3c835911de836..9b9504ca32d8cc7c037e0a96f2d8aa03d5c5495d 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -407,6 +407,7 @@ public final class ItemStack { enuminteractionresult = InteractionResult.FAIL; // cancel placement // PAIL: Remove this when MC-99075 fixed placeEvent.getPlayer().updateInventory(); -+ world.capturedTileEntities.clear(); // Paper - clear out tile entities as chests and such will pop loot ++ world.capturedTileEntities.clear(); // Paper - Allow chests to be placed with NBT data; clear out block entities as chests and such will pop loot // revert back all captured blocks world.preventPoiUpdated = true; // CraftBukkit - SPIGOT-5710 for (BlockState blockstate : blocks) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java -index d4f5af759bbb6208432ad7b5002af5455dc7958c..a71414397bd45ee7bcacfeef0041d80dfa25f114 100644 +index d4f5af759bbb6208432ad7b5002af5455dc7958c..9b1243d96e0694c62fc9e82e9be540bce0d2b3ad 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java @@ -237,7 +237,7 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement @@ -25,7 +25,7 @@ index d4f5af759bbb6208432ad7b5002af5455dc7958c..a71414397bd45ee7bcacfeef0041d80d @Override public boolean onlyOpCanSetNbt() { - return true; -+ return false; // Paper ++ return false; // Paper - Allow chests to be placed with NBT data } // CraftBukkit end } diff --git a/patches/server/0252-Mob-Pathfinding-API.patch b/patches/server/0252-Mob-Pathfinding-API.patch index e3120486fa02..ec6e875e5d58 100644 --- a/patches/server/0252-Mob-Pathfinding-API.patch +++ b/patches/server/0252-Mob-Pathfinding-API.patch @@ -160,30 +160,30 @@ index 0000000000000000000000000000000000000000..064712e7b27a200b29c72076a82f4f56 + } +} diff --git a/src/main/java/net/minecraft/world/level/pathfinder/Path.java b/src/main/java/net/minecraft/world/level/pathfinder/Path.java -index 539dc45c3c7ffc60cf3fb47ae4df65e604e8627b..eea4c932d909145e7af848cf76e3f49dbb2deff2 100644 +index 539dc45c3c7ffc60cf3fb47ae4df65e604e8627b..3049edb5a8b5967e5242a3896b23665888eb3472 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/Path.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/Path.java @@ -18,6 +18,7 @@ public class Path { private final BlockPos target; private final float distToTarget; private final boolean reached; -+ public boolean hasNext() { return getNextNodeIndex() < this.nodes.size(); } // Paper ++ public boolean hasNext() { return getNextNodeIndex() < this.nodes.size(); } // Paper - Mob Pathfinding API public Path(List nodes, BlockPos target, boolean reachesTarget) { this.nodes = nodes; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -index a75623fd1b2d36530c55c7a380e68b8dc7e58021..c2acbf533b5f3aebe4837512f694fe25abee65d6 100644 +index a75623fd1b2d36530c55c7a380e68b8dc7e58021..018884ced888fcd03d2fb17b3620f8e6125e67da 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java @@ -15,8 +15,11 @@ import org.bukkit.loot.LootTable; public abstract class CraftMob extends CraftLivingEntity implements Mob { public CraftMob(CraftServer server, net.minecraft.world.entity.Mob entity) { super(server, entity); -+ paperPathfinder = new com.destroystokyo.paper.entity.PaperPathfinder(entity); // Paper ++ paperPathfinder = new com.destroystokyo.paper.entity.PaperPathfinder(entity); // Paper - Mob Pathfinding API } -+ private final com.destroystokyo.paper.entity.PaperPathfinder paperPathfinder; // Paper -+ @Override public com.destroystokyo.paper.entity.Pathfinder getPathfinder() { return paperPathfinder; } // Paper ++ private final com.destroystokyo.paper.entity.PaperPathfinder paperPathfinder; // Paper - Mob Pathfinding API ++ @Override public com.destroystokyo.paper.entity.Pathfinder getPathfinder() { return paperPathfinder; } // Paper - Mob Pathfinding API @Override public void setTarget(LivingEntity target) { Preconditions.checkState(!this.getHandle().generation, "Cannot set target during world generation"); @@ -191,13 +191,13 @@ index a75623fd1b2d36530c55c7a380e68b8dc7e58021..c2acbf533b5f3aebe4837512f694fe25 return (net.minecraft.world.entity.Mob) this.entity; } -+ // Paper start ++ // Paper start - Mob Pathfinding API + @Override + public void setHandle(net.minecraft.world.entity.Entity entity) { + super.setHandle(entity); + paperPathfinder.setHandle(getHandle()); + } -+ // Paper end ++ // Paper end - Mob Pathfinding API + @Override public String toString() { diff --git a/patches/server/0253-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch b/patches/server/0253-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch similarity index 93% rename from patches/server/0253-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch rename to patches/server/0253-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch index d92ecbd08c3a..dd3283f69119 100644 --- a/patches/server/0253-Implement-an-API-for-CanPlaceOn-and-CanDestroy-NBT-v.patch +++ b/patches/server/0253-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Vainomaa Date: Wed, 12 Sep 2018 18:53:55 +0300 -Subject: [PATCH] Implement an API for CanPlaceOn and CanDestroy NBT values +Subject: [PATCH] Add API for CanPlaceOn and CanDestroy NBT values diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38814c18e1 100644 +index ff199678850d848c5d2ce76270d674738eec58f7..1ecea757fffb480af0d27c3326093d79cb93c73b 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -85,6 +85,12 @@ import org.bukkit.persistence.PersistentDataContainer; @@ -25,10 +25,10 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 @Specific(Specific.To.NBT) static final ItemMetaKey BLOCK_DATA = new ItemMetaKey("BlockStateTag"); static final ItemMetaKey BUKKIT_CUSTOM_TAG = new ItemMetaKey("PublicBukkitValues"); -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values ++ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values + static final ItemMetaKey CAN_DESTROY = new ItemMetaKey("CanDestroy"); + static final ItemMetaKey CAN_PLACE_ON = new ItemMetaKey("CanPlaceOn"); -+ // Paper end ++ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values // We store the raw original JSON representation of all text data. See SPIGOT-5063, SPIGOT-5656, SPIGOT-5304 private String displayName; @@ -36,10 +36,10 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 private int hideFlag; private boolean unbreakable; private int damage; -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values ++ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values + private Set placeableKeys = Sets.newHashSet(); + private Set destroyableKeys = Sets.newHashSet(); -+ // Paper end ++ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values private static final Set HANDLED_TAGS = Sets.newHashSet(); private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); @@ -47,7 +47,7 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 this.hideFlag = meta.hideFlag; this.unbreakable = meta.unbreakable; this.damage = meta.damage; -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values ++ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values + if (meta.hasPlaceableKeys()) { + this.placeableKeys = new java.util.HashSet<>(meta.placeableKeys); + } @@ -55,7 +55,7 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 + if (meta.hasDestroyableKeys()) { + this.destroyableKeys = new java.util.HashSet<>(meta.destroyableKeys); + } -+ // Paper end ++ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values this.unhandledTags.putAll(meta.unhandledTags); this.persistentDataContainer.putAll(meta.persistentDataContainer.getRaw()); @@ -63,7 +63,7 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 this.persistentDataContainer.put(key, compound.get(key).copy()); } } -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values ++ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values + if (tag.contains(CAN_DESTROY.NBT)) { + ListTag list = tag.getList(CAN_DESTROY.NBT, CraftMagicNumbers.NBT.TAG_STRING); + for (int i = 0; i < list.size(); i++) { @@ -87,7 +87,7 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 + this.placeableKeys.add(namespaced); + } + } -+ // Paper end ++ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values Set keys = tag.getAllKeys(); for (String key : keys) { @@ -95,7 +95,7 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 this.setDamage(damage); } -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values ++ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values + Iterable canPlaceOnSerialized = SerializableMeta.getObject(Iterable.class, map, CAN_PLACE_ON.BUKKIT, true); + if (canPlaceOnSerialized != null) { + for (Object canPlaceOnElement : canPlaceOnSerialized) { @@ -121,7 +121,7 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 + this.destroyableKeys.add(value); + } + } -+ // Paper end ++ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values + String internal = SerializableMeta.getString(map, "internal", true); if (internal != null) { @@ -130,7 +130,7 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 if (this.hasDamage()) { itemTag.putInt(CraftMetaItem.DAMAGE.NBT, this.damage); } -+ // Paper start - Implement an API for CanPlaceOn and CanDestroy NBT values ++ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values + if (hasPlaceableKeys()) { + List items = this.placeableKeys.stream() + .map(this::serializeNamespaced) @@ -146,7 +146,7 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 + + itemTag.put(CAN_DESTROY.NBT, createNonComponentStringList(items)); + } -+ // Paper end ++ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values for (Map.Entry e : this.unhandledTags.entrySet()) { itemTag.put(e.getKey(), e.getValue()); @@ -154,7 +154,7 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 } } -+ // Paper start ++ // Paper start - Add API for CanPlaceOn and CanDestroy NBT values + static ListTag createNonComponentStringList(List list) { + if (list == null || list.isEmpty()) { + return null; @@ -167,7 +167,7 @@ index ff199678850d848c5d2ce76270d674738eec58f7..df7a93208a2a0720fc3cd33f84cace38 + + return tagList; + } -+ // Paper end ++ // Paper end - Add API for CanPlaceOn and CanDestroy NBT values + ListTag createStringList(List list) { if (list == null) { diff --git a/patches/server/0256-Implement-furnace-cook-speed-multiplier-API.patch b/patches/server/0256-Implement-furnace-cook-speed-multiplier-API.patch index 4fa6f319b301..b3fe37e70671 100644 --- a/patches/server/0256-Implement-furnace-cook-speed-multiplier-API.patch +++ b/patches/server/0256-Implement-furnace-cook-speed-multiplier-API.patch @@ -3,15 +3,13 @@ From: Tassu Date: Thu, 13 Sep 2018 08:45:21 +0300 Subject: [PATCH] Implement furnace cook speed multiplier API -Signed-off-by: Tassu - Fixed an issue where a furnace's cook-speed multiplier rounds down to the nearest Integer when updating its current cook time. -Modified by: Eric Su +Co-authored-by: Eric Su diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 7a13042631bea761952490cfd14dc20147405161..939a192dd66d5fb8da5beada7c22eeca5a7589cd 100644 +index 7a13042631bea761952490cfd14dc20147405161..9801b777bc6ab7de91d82b29a142459292ee8605 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -78,11 +78,13 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @@ -24,7 +22,7 @@ index 7a13042631bea761952490cfd14dc20147405161..939a192dd66d5fb8da5beada7c22eeca protected final ContainerData dataAccess; public final Object2IntOpenHashMap recipesUsed; private final RecipeManager.CachedCheck quickCheck; -+ public final RecipeType recipeType; // Paper ++ public final RecipeType recipeType; // Paper - cook speed multiplier API protected AbstractFurnaceBlockEntity(BlockEntityType blockEntityType, BlockPos pos, BlockState state, RecipeType recipeType) { super(blockEntityType, pos, state); @@ -32,7 +30,7 @@ index 7a13042631bea761952490cfd14dc20147405161..939a192dd66d5fb8da5beada7c22eeca }; this.recipesUsed = new Object2IntOpenHashMap(); this.quickCheck = RecipeManager.createCheck((RecipeType) recipeType); // CraftBukkit - decompile error // Eclipse fail -+ this.recipeType = recipeType; // Paper ++ this.recipeType = recipeType; // Paper - cook speed multiplier API } public static Map getFuel() { @@ -40,11 +38,11 @@ index 7a13042631bea761952490cfd14dc20147405161..939a192dd66d5fb8da5beada7c22eeca this.recipesUsed.put(new ResourceLocation(s), nbttagcompound1.getInt(s)); } -+ // Paper start - cook speed API ++ // Paper start - cook speed multiplier API + if (nbt.contains("Paper.CookSpeedMultiplier")) { + this.cookSpeedMultiplier = nbt.getDouble("Paper.CookSpeedMultiplier"); + } -+ // Paper end ++ // Paper end - cook speed multiplier API } @Override @@ -73,7 +71,7 @@ index 7a13042631bea761952490cfd14dc20147405161..939a192dd66d5fb8da5beada7c22eeca + if (blockEntity.cookingProgress >= blockEntity.cookingTotalTime) { // Paper - cook speed multiplier API blockEntity.cookingProgress = 0; - blockEntity.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(world, blockEntity); -+ blockEntity.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(world, blockEntity.recipeType, blockEntity, blockEntity.cookSpeedMultiplier); // Paper ++ blockEntity.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(world, blockEntity.recipeType, blockEntity, blockEntity.cookSpeedMultiplier); // Paper - cook speed multiplier API if (AbstractFurnaceBlockEntity.burn(blockEntity.level, blockEntity.worldPosition, world.registryAccess(), recipeholder, blockEntity.items, i)) { // CraftBukkit blockEntity.setRecipeUsed(recipeholder); } @@ -86,12 +84,12 @@ index 7a13042631bea761952490cfd14dc20147405161..939a192dd66d5fb8da5beada7c22eeca - return (Integer) furnace.quickCheck.getRecipeFor(furnace, world).map((recipeholder) -> { - return ((AbstractCookingRecipe) recipeholder.value()).getCookingTime(); - }).orElse(200); -+ // Paper start ++ // Paper start - cook speed multiplier API + public static int getTotalCookTime(@Nullable Level world, RecipeType recipeType, AbstractFurnaceBlockEntity furnace, double cookSpeedMultiplier) { + /* Scale the recipe's cooking time to the current cookSpeedMultiplier */ + int cookTime = world != null ? furnace.quickCheck.getRecipeFor(furnace, world).map(holder -> holder.value().getCookingTime()).orElse(200) : (net.minecraft.server.MinecraftServer.getServer().getRecipeManager().getRecipeFor(recipeType, furnace, world /* passing a null level here is safe. world is only used for map extending recipes which won't happen here */).map(holder -> holder.value().getCookingTime()).orElse(200)); + return (int) Math.ceil (cookTime / cookSpeedMultiplier); -+ // Paper end ++ // Paper end - cook speed multiplier API } public static boolean isFuel(ItemStack stack) { @@ -100,7 +98,7 @@ index 7a13042631bea761952490cfd14dc20147405161..939a192dd66d5fb8da5beada7c22eeca if (slot == 0 && !flag) { - this.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(this.level, this); -+ this.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(this.level, this.recipeType, this, this.cookSpeedMultiplier); // Paper ++ this.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(this.level, this.recipeType, this, this.cookSpeedMultiplier); // Paper - cook speed multiplier API this.cookingProgress = 0; this.setChanged(); } diff --git a/patches/server/0257-Honor-EntityAgeable.ageLock.patch b/patches/server/0257-Honor-EntityAgeable.ageLock.patch index c1404b2aa7a7..6a5ceecb1fd5 100644 --- a/patches/server/0257-Honor-EntityAgeable.ageLock.patch +++ b/patches/server/0257-Honor-EntityAgeable.ageLock.patch @@ -5,26 +5,26 @@ Subject: [PATCH] Honor EntityAgeable.ageLock diff --git a/src/main/java/net/minecraft/world/entity/AgeableMob.java b/src/main/java/net/minecraft/world/entity/AgeableMob.java -index be5e603d505566feac61cc7e591d35ce483a92df..2061d7ae62c1335c87aa67fd0cc004c42e34e3a7 100644 +index be5e603d505566feac61cc7e591d35ce483a92df..8dcdc664470fcac00c203b9499ea0a45df7d86ef 100644 --- a/src/main/java/net/minecraft/world/entity/AgeableMob.java +++ b/src/main/java/net/minecraft/world/entity/AgeableMob.java @@ -85,6 +85,7 @@ public abstract class AgeableMob extends PathfinderMob { } public void ageUp(int age, boolean overGrow) { -+ if (this.ageLocked) return; // Paper - GH-1459 ++ if (this.ageLocked) return; // Paper - Honor ageLock int j = this.getAge(); int k = j; diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index 2700f7dc650dc19da75e9351f6d558d05be80dc5..5f2042d565974a5509aec8f744e091fe7c576c98 100644 +index 2700f7dc650dc19da75e9351f6d558d05be80dc5..949eda8e743df7ab83f18f15471a33e538aecdc5 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java @@ -299,6 +299,7 @@ public class BeehiveBlockEntity extends BlockEntity { } private static void setBeeReleaseData(int ticks, Bee bee) { -+ if (!bee.ageLocked) { // Paper - respect age lock ++ if (!bee.ageLocked) { // Paper - Honor ageLock int j = bee.getAge(); if (j < 0) { @@ -32,7 +32,7 @@ index 2700f7dc650dc19da75e9351f6d558d05be80dc5..5f2042d565974a5509aec8f744e091fe } else if (j > 0) { bee.setAge(Math.max(0, j - ticks)); } -+ } // Paper - respect age lock ++ } // Paper - Honor ageLock bee.setInLoveTime(Math.max(0, bee.getInLoveTime() - ticks)); } diff --git a/patches/server/0259-Prevent-chunk-loading-from-Fluid-Flowing.patch b/patches/server/0259-Prevent-chunk-loading-from-Fluid-Flowing.patch index 2a66b5c9da8e..a809dac3977f 100644 --- a/patches/server/0259-Prevent-chunk-loading-from-Fluid-Flowing.patch +++ b/patches/server/0259-Prevent-chunk-loading-from-Fluid-Flowing.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent chunk loading from Fluid Flowing diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -index 818c83934a97c4b2ad4db69f4b0fcf0a500ea918..f7527ed1d47901e52df4e3fffbdcd838782c90db 100644 +index 818c83934a97c4b2ad4db69f4b0fcf0a500ea918..0aeb9faa1ce22359361741a591aa3d465d955970 100644 --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java @@ -176,7 +176,8 @@ public abstract class FlowingFluid extends Fluid { @@ -13,29 +13,28 @@ index 818c83934a97c4b2ad4db69f4b0fcf0a500ea918..f7527ed1d47901e52df4e3fffbdcd838 FluidState fluid1 = (FluidState) entry.getValue(); BlockPos blockposition1 = pos.relative(enumdirection); - BlockState iblockdata1 = world.getBlockState(blockposition1); -+ BlockState iblockdata1 = world.getBlockStateIfLoaded(blockposition1); // Paper -+ if (iblockdata1 == null) continue; // Paper ++ BlockState iblockdata1 = world.getBlockStateIfLoaded(blockposition1); // Paper - Prevent chunk loading from fluid flowing ++ if (iblockdata1 == null) continue; // Paper - Prevent chunk loading from fluid flowing if (this.canSpreadTo(world, pos, blockState, enumdirection, blockposition1, iblockdata1, world.getFluidState(blockposition1), fluid1.getType())) { // CraftBukkit start -@@ -203,7 +204,9 @@ public abstract class FlowingFluid extends Fluid { +@@ -203,7 +204,8 @@ public abstract class FlowingFluid extends Fluid { while (iterator.hasNext()) { Direction enumdirection = (Direction) iterator.next(); BlockPos blockposition1 = pos.relative(enumdirection); - BlockState iblockdata1 = world.getBlockState(blockposition1); -+ -+ BlockState iblockdata1 = world.getBlockStateIfLoaded(blockposition1); // Paper -+ if (iblockdata1 == null) continue; // Paper ++ BlockState iblockdata1 = world.getBlockStateIfLoaded(blockposition1); // Paper - Prevent chunk loading from fluid flowing ++ if (iblockdata1 == null) continue; // Paper - Prevent chunk loading from fluid flowing FluidState fluid = iblockdata1.getFluidState(); if (fluid.getType().isSame(this) && this.canPassThroughWall(enumdirection, world, pos, state, blockposition1, iblockdata1)) { -@@ -320,11 +323,18 @@ public abstract class FlowingFluid extends Fluid { +@@ -320,11 +322,18 @@ public abstract class FlowingFluid extends Fluid { if (enumdirection1 != direction) { BlockPos blockposition2 = pos.relative(enumdirection1); short short0 = FlowingFluid.getCacheKey(fromPos, blockposition2); - Pair pair = (Pair) stateCache.computeIfAbsent(short0, (short1) -> { - BlockState iblockdata1 = world.getBlockState(blockposition2); -+ // Paper start - avoid loading chunks ++ // Paper start - Prevent chunk loading from fluid flowing + Pair pair = stateCache.get(short0); + if (pair == null) { + BlockState iblockdatax = world.getBlockStateIfLoaded(blockposition2); @@ -48,11 +47,11 @@ index 818c83934a97c4b2ad4db69f4b0fcf0a500ea918..f7527ed1d47901e52df4e3fffbdcd838 + pair = Pair.of(iblockdatax, iblockdatax.getFluidState()); + stateCache.put(short0, pair); + } -+ // Paper end ++ // Paper end - Prevent chunk loading from fluid flowing BlockState iblockdata1 = (BlockState) pair.getFirst(); FluidState fluid = (FluidState) pair.getSecond(); -@@ -396,11 +406,16 @@ public abstract class FlowingFluid extends Fluid { +@@ -396,11 +405,16 @@ public abstract class FlowingFluid extends Fluid { Direction enumdirection = (Direction) iterator.next(); BlockPos blockposition1 = pos.relative(enumdirection); short short0 = FlowingFluid.getCacheKey(pos, blockposition1); @@ -61,7 +60,7 @@ index 818c83934a97c4b2ad4db69f4b0fcf0a500ea918..f7527ed1d47901e52df4e3fffbdcd838 - - return Pair.of(iblockdata1, iblockdata1.getFluidState()); - }); -+ // Paper start ++ // Paper start - Prevent chunk loading from fluid flowing + Pair pair = (Pair) short2objectmap.get(short0); + if (pair == null) { + BlockState iblockdatax = world.getBlockStateIfLoaded(blockposition1); @@ -70,7 +69,7 @@ index 818c83934a97c4b2ad4db69f4b0fcf0a500ea918..f7527ed1d47901e52df4e3fffbdcd838 + pair = Pair.of(iblockdatax, iblockdatax.getFluidState()); + short2objectmap.put(short0, pair); + } -+ // Paper end ++ // Paper end - Prevent chunk loading from fluid flowing BlockState iblockdata1 = (BlockState) pair.getFirst(); FluidState fluid = (FluidState) pair.getSecond(); FluidState fluid1 = this.getNewLiquid(world, blockposition1, iblockdata1); diff --git a/patches/server/0264-Catch-JsonParseException-in-Entity-and-TE-names.patch b/patches/server/0264-Catch-JsonParseException-in-entity-and-block-entity-.patch similarity index 98% rename from patches/server/0264-Catch-JsonParseException-in-Entity-and-TE-names.patch rename to patches/server/0264-Catch-JsonParseException-in-entity-and-block-entity-.patch index 8cc6dd3b44c1..458c71b9531a 100644 --- a/patches/server/0264-Catch-JsonParseException-in-Entity-and-TE-names.patch +++ b/patches/server/0264-Catch-JsonParseException-in-entity-and-block-entity-.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sat, 22 Sep 2018 15:56:59 -0400 -Subject: [PATCH] Catch JsonParseException in Entity and TE names +Subject: [PATCH] Catch JsonParseException in entity and block entity names As a result, data that no longer parses correctly will not crash the server instead just logging the exception and continuing (and in most cases should diff --git a/patches/server/0265-Turtle-API.patch b/patches/server/0265-Turtle-API.patch index fee89795f4eb..cfcc79e8a827 100644 --- a/patches/server/0265-Turtle-API.patch +++ b/patches/server/0265-Turtle-API.patch @@ -11,35 +11,21 @@ public net.minecraft.world.entity.animal.Turtle setGoingHome(Z)V public net.minecraft.world.entity.animal.Turtle isTravelling()Z public net.minecraft.world.entity.animal.Turtle setTravelling(Z)V -diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java -index 9fc374c17f6b3ee4ab3c582d05e96321b772f2d6..7153e00a640abfeb134ff1dcb93f363b972a4233 100644 ---- a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java -+++ b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java -@@ -14,7 +14,7 @@ public abstract class MoveToBlockGoal extends Goal { - protected int nextStartTick; - protected int tryTicks; - private int maxStayTicks; -- protected BlockPos blockPos = BlockPos.ZERO; -+ protected BlockPos blockPos = BlockPos.ZERO; @Deprecated public final BlockPos getTargetPosition() { return this.blockPos; } // Paper - OBFHELPER - private boolean reachedTarget; - private final int searchRange; - private final int verticalSearchRange; diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 0dab0da65788720e56a568918de458ab7195ef5c..722e323d2ae3f4ac8aa3197fed79f7d926d5ccfa 100644 +index 0dab0da65788720e56a568918de458ab7195ef5c..6bbcdd34fb89ea5774e825de8f9a588552716fc2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -@@ -491,14 +491,18 @@ public class Turtle extends Animal { +@@ -491,14 +491,17 @@ public class Turtle extends Animal { if (!this.turtle.isInWater() && this.isReachedTarget()) { if (this.turtle.layEggCounter < 1) { - this.turtle.setLayingEgg(true); -+ this.turtle.setLayingEgg(new com.destroystokyo.paper.event.entity.TurtleStartDiggingEvent((org.bukkit.entity.Turtle) this.turtle.getBukkitEntity(), io.papermc.paper.util.MCUtil.toLocation(this.turtle.level(), this.getTargetPosition())).callEvent()); // Paper ++ this.turtle.setLayingEgg(new com.destroystokyo.paper.event.entity.TurtleStartDiggingEvent((org.bukkit.entity.Turtle) this.turtle.getBukkitEntity(), io.papermc.paper.util.MCUtil.toLocation(this.turtle.level(), this.blockPos)).callEvent()); // Paper - Turtle API } else if (this.turtle.layEggCounter > this.adjustedTickDelay(200)) { Level world = this.turtle.level(); - if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.turtle, this.blockPos.above(), (BlockState) Blocks.TURTLE_EGG.defaultBlockState().setValue(TurtleEggBlock.EGGS, this.turtle.random.nextInt(4) + 1))) { // CraftBukkit -+ // CraftBukkit start -+ // Paper start ++ // Paper start - Turtle API + int eggCount = this.turtle.random.nextInt(4) + 1; + com.destroystokyo.paper.event.entity.TurtleLayEggEvent layEggEvent = new com.destroystokyo.paper.event.entity.TurtleLayEggEvent((org.bukkit.entity.Turtle) this.turtle.getBukkitEntity(), io.papermc.paper.util.MCUtil.toLocation(this.turtle.level(), this.blockPos.above()), eggCount); + if (layEggEvent.callEvent() && org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.turtle, this.blockPos.above(), Blocks.TURTLE_EGG.defaultBlockState().setValue(TurtleEggBlock.EGGS, layEggEvent.getEggCount()))) { @@ -50,12 +36,12 @@ index 0dab0da65788720e56a568918de458ab7195ef5c..722e323d2ae3f4ac8aa3197fed79f7d9 world.setBlock(blockposition1, iblockdata, 3); world.gameEvent(GameEvent.BLOCK_PLACE, blockposition1, GameEvent.Context.of(this.turtle, iblockdata)); -@@ -568,7 +572,7 @@ public class Turtle extends Animal { +@@ -568,7 +571,7 @@ public class Turtle extends Animal { @Override public boolean canUse() { - return this.turtle.isBaby() ? false : (this.turtle.hasEgg() ? true : (this.turtle.getRandom().nextInt(reducedTickDelay(700)) != 0 ? false : !this.turtle.getHomePos().closerToCenterThan(this.turtle.position(), 64.0D))); -+ return this.turtle.isBaby() ? false : (this.turtle.hasEgg() ? true : (this.turtle.getRandom().nextInt(reducedTickDelay(700)) != 0 ? false : !this.turtle.getHomePos().closerToCenterThan(this.turtle.position(), 64.0D))) && new com.destroystokyo.paper.event.entity.TurtleGoHomeEvent((org.bukkit.entity.Turtle) this.turtle.getBukkitEntity()).callEvent(); // Paper ++ return this.turtle.isBaby() ? false : (this.turtle.hasEgg() ? true : (this.turtle.getRandom().nextInt(reducedTickDelay(700)) != 0 ? false : !this.turtle.getHomePos().closerToCenterThan(this.turtle.position(), 64.0D))) && new com.destroystokyo.paper.event.entity.TurtleGoHomeEvent((org.bukkit.entity.Turtle) this.turtle.getBukkitEntity()).callEvent(); // Paper - Turtle API } @Override diff --git a/patches/server/0266-Call-player-spectator-target-events-and-improve-impl.patch b/patches/server/0266-Call-player-spectator-target-events-and-improve-impl.patch index fa56b77e22f8..3f4102d44591 100644 --- a/patches/server/0266-Call-player-spectator-target-events-and-improve-impl.patch +++ b/patches/server/0266-Call-player-spectator-target-events-and-improve-impl.patch @@ -19,14 +19,14 @@ spectate the target entity. Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b2864db793e8d764cf06229d7868fcf80247f938..aa4257a7d2e676cafeb85ceaeab364a83dead616 100644 +index 6795bfdbdbd4e548c394e02a0e121b26facab8ea..e4d773356ae8b310908f502d12bab08dc6862e40 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2085,6 +2085,21 @@ public class ServerPlayer extends Player { this.camera = (Entity) (entity == null ? this : entity); if (entity1 != this.camera) { -+ // Paper start - Add PlayerStartSpectatingEntityEvent and PlayerStopSpectatingEntity Event ++ // Paper start - Add PlayerStartSpectatingEntityEvent and PlayerStopSpectatingEntity + if (this.camera == this) { + com.destroystokyo.paper.event.player.PlayerStopSpectatingEntityEvent playerStopSpectatingEntityEvent = new com.destroystokyo.paper.event.player.PlayerStopSpectatingEntityEvent(this.getBukkitEntity(), entity1.getBukkitEntity()); + if (!playerStopSpectatingEntityEvent.callEvent()) { @@ -40,7 +40,7 @@ index b2864db793e8d764cf06229d7868fcf80247f938..aa4257a7d2e676cafeb85ceaeab364a8 + return; + } + } -+ // Paper end ++ // Paper end - Add PlayerStartSpectatingEntityEvent and PlayerStopSpectatingEntity Level world = this.camera.level(); if (world instanceof ServerLevel) { diff --git a/patches/server/0268-Check-Drowned-for-Villager-Aggression-Config.patch b/patches/server/0268-Check-Drowned-for-Villager-Aggression-Config.patch index 99463ffb0735..4f39e06ff456 100644 --- a/patches/server/0268-Check-Drowned-for-Villager-Aggression-Config.patch +++ b/patches/server/0268-Check-Drowned-for-Villager-Aggression-Config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Check Drowned for Villager Aggression Config diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index ee2abc0c39a76a74c151ecc8660d2037f3db0636..485d14d71fb26e6e0d00a43da040bf63d696b66a 100644 +index ee2abc0c39a76a74c151ecc8660d2037f3db0636..01897af1e6253b987734a24c052daf2ce1314092 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -78,7 +78,7 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -13,7 +13,7 @@ index ee2abc0c39a76a74c151ecc8660d2037f3db0636..485d14d71fb26e6e0d00a43da040bf63 this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[]{Drowned.class})).setAlertOthers(ZombifiedPiglin.class)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::okTarget)); - this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false)); -+ if (this.level().spigotConfig.zombieAggressiveTowardsVillager) this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false)); // Paper ++ if (this.level().spigotConfig.zombieAggressiveTowardsVillager) this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false)); // Paper - Check drowned for villager aggression config this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, IronGolem.class, true)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Axolotl.class, true, false)); this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR)); diff --git a/patches/server/0269-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/server/0269-Add-option-to-prevent-players-from-moving-into-unloa.patch index db7a6af53172..e8f1192827d9 100644 --- a/patches/server/0269-Add-option-to-prevent-players-from-moving-into-unloa.patch +++ b/patches/server/0269-Add-option-to-prevent-players-from-moving-into-unloa.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add option to prevent players from moving into unloaded diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ea7eb7be6abfcfc3c70eba42cf31cc2030747428..0a9a13404885e13061a8de88c25b01d3db039018 100644 +index dd2ae4c0e4dad3f7c246357a9b45c832a091a576..6b9a53b244f5eca443697d01cc5938d85be4b99f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -475,9 +475,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -34,7 +34,7 @@ index ea7eb7be6abfcfc3c70eba42cf31cc2030747428..0a9a13404885e13061a8de88c25b01d3 + this.connection.send(new ClientboundMoveVehiclePacket(entity)); + return; + } -+ // Paper end ++ // Paper end - Prevent moving into unloaded chunks + if (d10 - d9 > Math.max(100.0D, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) { // CraftBukkit end @@ -61,7 +61,7 @@ index ea7eb7be6abfcfc3c70eba42cf31cc2030747428..0a9a13404885e13061a8de88c25b01d3 + this.internalTeleport(this.player.getX(), this.player.getY(), this.player.getZ(), this.player.getYRot(), this.player.getXRot(), Collections.emptySet()); + return; + } -+ // Paper end ++ // Paper end - Prevent moving into unloaded chunks if (!this.player.isChangingDimension() && (!this.player.level().getGameRules().getBoolean(GameRules.RULE_DISABLE_ELYTRA_MOVEMENT_CHECK) || !this.player.isFallFlying())) { float f2 = this.player.isFallFlying() ? 300.0F : 100.0F; diff --git a/patches/server/0270-Reset-players-airTicks-on-respawn.patch b/patches/server/0270-Reset-players-airTicks-on-respawn.patch index 86a15bde4d63..a99785c81df6 100644 --- a/patches/server/0270-Reset-players-airTicks-on-respawn.patch +++ b/patches/server/0270-Reset-players-airTicks-on-respawn.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Reset players airTicks on respawn diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index aa4257a7d2e676cafeb85ceaeab364a83dead616..471fd247659da0cc327e0695095bf8c0a517d087 100644 +index e4d773356ae8b310908f502d12bab08dc6862e40..2119ad9a167ef50f912e8408702f310a61e1527e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2560,6 +2560,7 @@ public class ServerPlayer extends Player { this.setHealth(this.getMaxHealth()); this.stopUsingItem(); // CraftBukkit - SPIGOT-6682: Clear active item on reset -+ this.setAirSupply(this.getMaxAirSupply()); // Paper ++ this.setAirSupply(this.getMaxAirSupply()); // Paper - Reset players airTicks on respawn this.setRemainingFireTicks(0); this.fallDistance = 0; this.foodData = new FoodData(this); diff --git a/patches/server/0271-Don-t-sleep-after-profile-lookups-if-not-needed.patch b/patches/server/0271-Don-t-sleep-after-profile-lookups-if-not-needed.patch index e419d107b092..d871ee76b69e 100644 --- a/patches/server/0271-Don-t-sleep-after-profile-lookups-if-not-needed.patch +++ b/patches/server/0271-Don-t-sleep-after-profile-lookups-if-not-needed.patch @@ -7,14 +7,14 @@ Mojang was sleeping even if we had no more requests to go after the current one finished, resulting in 100ms lost per profile lookup diff --git a/src/main/java/com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java b/src/main/java/com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java -index b87546f0061458b2b919a1fe00dde1f4eea6cb3e..498623aa5da5fb861615c602019784d66a84e3a0 100644 +index b87546f0061458b2b919a1fe00dde1f4eea6cb3e..55dac5edf694b3bf82b475a71e3524a1bce98882 100644 --- a/src/main/java/com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java +++ b/src/main/java/com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java @@ -44,6 +44,7 @@ public class YggdrasilGameProfileRepository implements GameProfileRepository { .collect(Collectors.toSet()); final int page = 0; -+ boolean hasRequested = false; // Paper ++ boolean hasRequested = false; // Paper - Don't sleep after profile lookups if not needed for (final List request : Iterables.partition(criteria, ENTRIES_PER_PAGE)) { final List normalizedRequest = request.stream().map(YggdrasilGameProfileRepository::normalizeName).toList(); @@ -22,12 +22,12 @@ index b87546f0061458b2b919a1fe00dde1f4eea6cb3e..498623aa5da5fb861615c602019784d6 LOGGER.debug("Couldn't find profile {}", name); callback.onProfileLookupFailed(name, new ProfileNotFoundException("Server did not find the requested profile")); } -+ // Paper start ++ // Paper start - Don't sleep after profile lookups if not needed + if (!hasRequested) { + hasRequested = true; + continue; + } -+ // Paper end ++ // Paper end - Don't sleep after profile lookups if not needed try { Thread.sleep(DELAY_BETWEEN_PAGES); diff --git a/patches/server/0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/patches/server/0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch index 326e17b65e3a..89b81942f068 100644 --- a/patches/server/0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch +++ b/patches/server/0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch @@ -38,7 +38,7 @@ index 0000000000000000000000000000000000000000..b60f59cf5cc8eb84a6055b7861857dec + } +} diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index aa52b271bd556a29f774fde375b713d0d187521b..90f5e7d36719dc9b464dd6ba0335da035bab29d3 100644 +index aa52b271bd556a29f774fde375b713d0d187521b..765e4bc00a0526aab6e263dae7233f63f7f31498 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -86,7 +86,7 @@ public class Util { @@ -46,7 +46,7 @@ index aa52b271bd556a29f774fde375b713d0d187521b..90f5e7d36719dc9b464dd6ba0335da03 private static final int DEFAULT_SAFE_FILE_OPERATION_RETRIES = 10; private static final String MAX_THREADS_SYSTEM_PROPERTY = "max.bg.threads"; - private static final ExecutorService BACKGROUND_EXECUTOR = makeExecutor("Main"); -+ private static final ExecutorService BACKGROUND_EXECUTOR = makeExecutor("Main", -1); // Paper - add -1 priority ++ private static final ExecutorService BACKGROUND_EXECUTOR = makeExecutor("Main", -1); // Paper - Perf: add priority private static final ExecutorService IO_POOL = makeIoExecutor("IO-Worker-", false); private static final ExecutorService DOWNLOAD_POOL = makeIoExecutor("Download-", true); // Paper start - don't submit BLOCKING PROFILE LOOKUPS to the world gen thread @@ -56,8 +56,8 @@ index aa52b271bd556a29f774fde375b713d0d187521b..90f5e7d36719dc9b464dd6ba0335da03 - private static ExecutorService makeExecutor(String name) { - int i = Mth.clamp(Runtime.getRuntime().availableProcessors() - 1, 1, getMaxThreads()); -+ private static ExecutorService makeExecutor(String s, int priorityModifier) { // Paper - add priority -+ // Paper start - use simpler thread pool that allows 1 thread and reduce worldgen thread worker count for low core count CPUs ++ private static ExecutorService makeExecutor(String s, int priorityModifier) { // Paper - Perf: add priority ++ // Paper start - Perf: use simpler thread pool that allows 1 thread and reduce worldgen thread worker count for low core count CPUs + int cpus = Runtime.getRuntime().availableProcessors() / 2; + int i; + if (cpus <= 4) { @@ -87,19 +87,19 @@ index aa52b271bd556a29f774fde375b713d0d187521b..90f5e7d36719dc9b464dd6ba0335da03 return forkJoinWorkerThread; }, Util::onThreadException, true); } -+ }*/ // Paper end ++ }*/ // Paper end - Perf: use simpler thread pool return executorService; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 79a7f64edcfc750bf2753b5b20e4c2ae322e01ab..7a12c0f5a6cb205e8ae7667b9334efe1999e2a6a 100644 +index 85beb9c7a02f7f561716d017f40ae24ad49a61a3..b57661a04bba7d32a338a0ee485f9ee8475ea246 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -312,6 +312,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { MinecraftServer.LOGGER.error("Uncaught exception in server thread", throwable); }); -+ thread.setPriority(Thread.NORM_PRIORITY+2); // Paper - boost priority ++ thread.setPriority(Thread.NORM_PRIORITY+2); // Paper - Perf: Boost priority if (Runtime.getRuntime().availableProcessors() > 4) { thread.setPriority(8); } diff --git a/patches/server/0273-Optimize-World-Time-Updates.patch b/patches/server/0273-Optimize-World-Time-Updates.patch index f555aa8216fb..8dcf90dba7f4 100644 --- a/patches/server/0273-Optimize-World-Time-Updates.patch +++ b/patches/server/0273-Optimize-World-Time-Updates.patch @@ -8,7 +8,7 @@ the updates per world, so that we can re-use the same packet object for every player unless they have per-player time enabled. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7a12c0f5a6cb205e8ae7667b9334efe1999e2a6a..420201b60be7d07fbbb75192f14e4222f4b386aa 100644 +index b57661a04bba7d32a338a0ee485f9ee8475ea246..bfcb155b1e8b04edfdbd26f4cc3bc2b4a7cbf5ea 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1469,12 +1469,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) { -+ if (true) return; // Paper - Don't notify if unreasonably far away ++ if (true) return; // Paper - Don't allow digging into unloaded chunks; Don't notify if unreasonably far away this.debugLogging(pos, false, sequence, "too far"); } else if (pos.getY() >= worldHeight) { this.player.connection.send(new ClientboundBlockUpdatePacket(pos, this.level.getBlockState(pos))); @@ -59,19 +59,19 @@ index e3b7441d875b55ffce295c948f3dc867be09e042..79020edc9fac79e8b186d0f57f956d21 this.level.destroyBlockProgress(this.player.getId(), pos, -1); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0a9a13404885e13061a8de88c25b01d3db039018..20b8fe97ee0b73e3b1a71b8366267d7c5de5da2e 100644 +index 6b9a53b244f5eca443697d01cc5938d85be4b99f..b04323c2e8697c2b406bb861b25aa5b0f7032557 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1592,6 +1592,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl case START_DESTROY_BLOCK: case ABORT_DESTROY_BLOCK: case STOP_DESTROY_BLOCK: -+ // Paper start - Don't allow digging in unloaded chunks ++ // Paper start - Don't allow digging into unloaded chunks + if (this.player.level().getChunkIfLoadedImmediately(blockposition.getX() >> 4, blockposition.getZ() >> 4) == null) { + this.player.connection.ackBlockChangesUpTo(packet.getSequence()); + return; + } -+ // Paper end - Don't allow digging in unloaded chunks ++ // Paper end - Don't allow digging into unloaded chunks this.player.gameMode.handleBlockBreakAction(blockposition, packetplayinblockdig_enumplayerdigtype, packet.getDirection(), this.player.level().getMaxBuildHeight(), packet.getSequence()); this.player.connection.ackBlockChangesUpTo(packet.getSequence()); return; diff --git a/patches/server/0278-Handle-Large-Packets-disconnecting-client.patch b/patches/server/0278-Handle-Large-Packets-disconnecting-client.patch index ecf37a62ee5e..9943a06f4e7b 100644 --- a/patches/server/0278-Handle-Large-Packets-disconnecting-client.patch +++ b/patches/server/0278-Handle-Large-Packets-disconnecting-client.patch @@ -7,14 +7,14 @@ If a players inventory is too big to send in a single packet, split the inventory set into multiple packets instead. diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index df5da9398c903d073485aaa0dce8e70947137cb9..6fcbf8205e1852d5193a42bfe1154f62ab01e7ad 100644 +index df5da9398c903d073485aaa0dce8e70947137cb9..090a130676de3ab458df6bd1e08f0b755a3f685a 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -156,6 +156,22 @@ public class Connection extends SimpleChannelInboundHandler> { } public void exceptionCaught(ChannelHandlerContext channelhandlercontext, Throwable throwable) { -+ // Paper start ++ // Paper start - Handle large packets disconnecting client + if (throwable instanceof io.netty.handler.codec.EncoderException && throwable.getCause() instanceof PacketEncoder.PacketTooLargeException packetTooLargeException) { + final Packet packet = packetTooLargeException.getPacket(); + final io.netty.util.Attribute> codecDataAttribute = channelhandlercontext.channel().attr(packetTooLargeException.codecKey); @@ -29,12 +29,12 @@ index df5da9398c903d073485aaa0dce8e70947137cb9..6fcbf8205e1852d5193a42bfe1154f62 + throwable = throwable.getCause(); + } + } -+ // Paper end ++ // Paper end - Handle large packets disconnecting client if (throwable instanceof SkipPacketException) { Connection.LOGGER.debug("Skipping packet due to errors", throwable.getCause()); } else { diff --git a/src/main/java/net/minecraft/network/PacketEncoder.java b/src/main/java/net/minecraft/network/PacketEncoder.java -index 7070d093c80033b61a9c8495bc56153d986b6b03..2907536f8f9b4b9dccb96f8b4f19d75fa3c5b864 100644 +index 7070d093c80033b61a9c8495bc56153d986b6b03..61f05f34ca33837c643f2915e753ec3935a38314 100644 --- a/src/main/java/net/minecraft/network/PacketEncoder.java +++ b/src/main/java/net/minecraft/network/PacketEncoder.java @@ -41,7 +41,7 @@ public class PacketEncoder extends MessageToByteEncoder> { @@ -42,7 +42,7 @@ index 7070d093c80033b61a9c8495bc56153d986b6b03..2907536f8f9b4b9dccb96f8b4f19d75f packet.write(friendlyByteBuf); int k = friendlyByteBuf.writerIndex() - j; - if (k > 8388608) { -+ if (false && k > 8388608) { // Paper - disable ++ if (false && k > 8388608) { // Paper - Handle large packets disconnecting client; disable throw new IllegalArgumentException("Packet too big (is " + k + ", should be less than 8388608): " + packet); } @@ -50,12 +50,12 @@ index 7070d093c80033b61a9c8495bc56153d986b6b03..2907536f8f9b4b9dccb96f8b4f19d75f throw var13; } finally { -+ // Paper start ++ // Paper start - Handle large packets disconnecting client + int packetLength = friendlyByteBuf.readableBytes(); + if (packetLength > MAX_PACKET_SIZE) { + throw new PacketTooLargeException(packet, this.codecKey, packetLength); + } -+ // Paper end ++ // Paper end - Handle large packets disconnecting client ProtocolSwapHandler.swapProtocolIfNeeded(attribute, packet); } diff --git a/patches/server/0279-force-entity-dismount-during-teleportation.patch b/patches/server/0279-force-entity-dismount-during-teleportation.patch index b8260e785468..d03f86d358cb 100644 --- a/patches/server/0279-force-entity-dismount-during-teleportation.patch +++ b/patches/server/0279-force-entity-dismount-during-teleportation.patch @@ -20,24 +20,24 @@ this is going to be the best soultion all around. Improvements/suggestions welcome! diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6d04954493680bc4fbad67ff2e43411f970f78f5..e44d983e7b44225bdd7395488d2b246761e8e02a 100644 +index 6d04954493680bc4fbad67ff2e43411f970f78f5..1793fbd803bfdb5d43d83d15b238d70da06b8780 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2606,11 +2606,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void removeVehicle() { -+ // Paper start ++ // Paper start - Force entity dismount during teleportation + stopRiding(false); + } + public void stopRiding(boolean suppressCancellation) { -+ // Paper end ++ // Paper end - Force entity dismount during teleportation if (this.vehicle != null) { Entity entity = this.vehicle; this.vehicle = null; - if (!entity.removePassenger(this)) this.vehicle = entity; // CraftBukkit -+ if (!entity.removePassenger(this, suppressCancellation)) this.vehicle = entity; // CraftBukkit // Paper ++ if (!entity.removePassenger(this, suppressCancellation)) this.vehicle = entity; // CraftBukkit // Paper - Force entity dismount during teleportation } } @@ -46,10 +46,10 @@ index 6d04954493680bc4fbad67ff2e43411f970f78f5..e44d983e7b44225bdd7395488d2b2467 } - protected boolean removePassenger(Entity entity) { // CraftBukkit -+ // Paper start ++ // Paper start - Force entity dismount during teleportation + protected boolean removePassenger(Entity entity) { return removePassenger(entity, false);} + protected boolean removePassenger(Entity entity, boolean suppressCancellation) { // CraftBukkit -+ // Paper end ++ // Paper end - Force entity dismount during teleportation if (entity.getVehicle() == this) { throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)"); } else { @@ -58,7 +58,7 @@ index 6d04954493680bc4fbad67ff2e43411f970f78f5..e44d983e7b44225bdd7395488d2b2467 VehicleExitEvent event = new VehicleExitEvent( (Vehicle) this.getBukkitEntity(), - (LivingEntity) entity.getBukkitEntity() -+ (LivingEntity) entity.getBukkitEntity(), !suppressCancellation // Paper ++ (LivingEntity) entity.getBukkitEntity(), !suppressCancellation // Paper - Force entity dismount during teleportation ); // Suppress during worldgen if (this.valid) { @@ -67,33 +67,33 @@ index 6d04954493680bc4fbad67ff2e43411f970f78f5..e44d983e7b44225bdd7395488d2b2467 } - EntityDismountEvent event = new EntityDismountEvent(entity.getBukkitEntity(), this.getBukkitEntity()); -+ EntityDismountEvent event = new EntityDismountEvent(entity.getBukkitEntity(), this.getBukkitEntity(), !suppressCancellation); // Paper ++ EntityDismountEvent event = new EntityDismountEvent(entity.getBukkitEntity(), this.getBukkitEntity(), !suppressCancellation); // Paper - Force entity dismount during teleportation // Suppress during worldgen if (this.valid) { Bukkit.getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0085d4727e9bd1c6f451666e6012b8abcd74d129..8e89eb11e8477c921b30840644b6c3ba9d18c3ef 100644 +index 0085d4727e9bd1c6f451666e6012b8abcd74d129..9e3571220ba3eef5fa950ddd83af13ff45ae38ae 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3471,9 +3471,15 @@ public abstract class LivingEntity extends Entity implements Attackable { @Override public void stopRiding() { -+ // Paper start ++ // Paper start - Force entity dismount during teleportation + stopRiding(false); + } + @Override + public void stopRiding(boolean suppressCancellation) { -+ // Paper end ++ // Paper end - Force entity dismount during teleportation Entity entity = this.getVehicle(); - super.stopRiding(); -+ super.stopRiding(suppressCancellation); // Paper - suppress ++ super.stopRiding(suppressCancellation); // Paper - Force entity dismount during teleportation if (entity != null && entity != this.getVehicle() && !this.level().isClientSide) { this.dismountVehicle(entity); } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 0d8261e15a1a66df17727788c387dca8fbe2ae84..110c751dc108dbdc2fd9fdd25ca07df7acc723e5 100644 +index 0d8261e15a1a66df17727788c387dca8fbe2ae84..76a3e38a49d6ea8cf01604be4da12ad4e4fa3da4 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1149,7 +1149,13 @@ public abstract class Player extends LivingEntity { @@ -101,13 +101,13 @@ index 0d8261e15a1a66df17727788c387dca8fbe2ae84..110c751dc108dbdc2fd9fdd25ca07df7 @Override public void removeVehicle() { - super.removeVehicle(); -+ // Paper start ++ // Paper start - Force entity dismount during teleportation + stopRiding(false); + } + @Override + public void stopRiding(boolean suppressCancellation) { -+ // Paper end -+ super.stopRiding(suppressCancellation); // Paper - suppress ++ super.stopRiding(suppressCancellation); ++ // Paper end - Force entity dismount during teleportation this.boardingCooldown = 0; } diff --git a/patches/server/0280-Add-more-Zombie-API.patch b/patches/server/0280-Add-more-Zombie-API.patch index 552fe1f502e2..f1f71256c479 100644 --- a/patches/server/0280-Add-more-Zombie-API.patch +++ b/patches/server/0280-Add-more-Zombie-API.patch @@ -7,14 +7,14 @@ Subject: [PATCH] Add more Zombie API public net.minecraft.world.entity.monster.Zombie isSunSensitive()Z diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 2aec8e2f45fe6ba56d84e5a51a6e30d36505df42..d4f72024c15d03f70a86f09714403ace6e26885a 100644 +index 2aec8e2f45fe6ba56d84e5a51a6e30d36505df42..37730675250f03ff6786992949813d67583610b3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -96,6 +96,7 @@ public class Zombie extends Monster { private int inWaterTime; public int conversionTime; private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field -+ private boolean shouldBurnInDay = true; // Paper ++ private boolean shouldBurnInDay = true; // Paper - Add more Zombie API public Zombie(EntityType type, Level world) { super(type, world); @@ -22,12 +22,12 @@ index 2aec8e2f45fe6ba56d84e5a51a6e30d36505df42..d4f72024c15d03f70a86f09714403ace super.aiStep(); } -+ // Paper start ++ // Paper start - Add more Zombie API + public void stopDrowning() { + this.conversionTime = -1; + this.getEntityData().set(Zombie.DATA_DROWNED_CONVERSION_ID, false); + } -+ // Paper end ++ // Paper end - Add more Zombie API public void startUnderWaterConversion(int ticksUntilWaterConversion) { this.lastTick = MinecraftServer.currentTick; // CraftBukkit this.conversionTime = ticksUntilWaterConversion; @@ -36,14 +36,14 @@ index 2aec8e2f45fe6ba56d84e5a51a6e30d36505df42..d4f72024c15d03f70a86f09714403ace public boolean isSunSensitive() { - return true; -+ return this.shouldBurnInDay; // Paper - use api value instead ++ return this.shouldBurnInDay; // Paper - Add more Zombie API } -+ // Paper start ++ // Paper start - Add more Zombie API + public void setShouldBurnInDay(boolean shouldBurnInDay) { + this.shouldBurnInDay = shouldBurnInDay; + } -+ // Paper end ++ // Paper end - Add more Zombie API + @Override public boolean hurt(DamageSource source, float amount) { @@ -52,7 +52,7 @@ index 2aec8e2f45fe6ba56d84e5a51a6e30d36505df42..d4f72024c15d03f70a86f09714403ace nbt.putBoolean("CanBreakDoors", this.canBreakDoors()); nbt.putInt("InWaterTime", this.isInWater() ? this.inWaterTime : -1); nbt.putInt("DrownedConversionTime", this.isUnderWaterConverting() ? this.conversionTime : -1); -+ nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Paper ++ nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Paper - Add more Zombie API } @Override @@ -60,11 +60,11 @@ index 2aec8e2f45fe6ba56d84e5a51a6e30d36505df42..d4f72024c15d03f70a86f09714403ace if (nbt.contains("DrownedConversionTime", 99) && nbt.getInt("DrownedConversionTime") > -1) { this.startUnderWaterConversion(nbt.getInt("DrownedConversionTime")); } -+ // Paper start ++ // Paper start - Add more Zombie API + if (nbt.contains("Paper.ShouldBurnInDay")) { + this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay"); + } -+ // Paper end ++ // Paper end - Add more Zombie API } diff --git a/patches/server/0281-Book-Size-Limits.patch b/patches/server/0281-Book-Size-Limits.patch index 281bf0ce7107..1ff2a7c517fd 100644 --- a/patches/server/0281-Book-Size-Limits.patch +++ b/patches/server/0281-Book-Size-Limits.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Book Size Limits Puts some limits on the size of books. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e0954ab93e4b528595fc3be40a30e2e6775bc4a2..564cc26f8201bd864f5f58c740c9de942d384394 100644 +index e0954ab93e4b528595fc3be40a30e2e6775bc4a2..2ee2e497f716f54dc8cd3d9b906d7bc2b7106448 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1026,6 +1026,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleEditBook(ServerboundEditBookPacket packet) { -+ // Paper start ++ // Paper start - Book size limits + if (!this.cserver.isPrimaryThread()) { + List pageList = packet.getPages(); + long byteTotal = 0; @@ -51,7 +51,7 @@ index e0954ab93e4b528595fc3be40a30e2e6775bc4a2..564cc26f8201bd864f5f58c740c9de94 + return; + } + } -+ // Paper end ++ // Paper end - Book size limits // CraftBukkit start if (this.lastBookTick + 20 > MinecraftServer.currentTick) { this.disconnect("Book edited too quickly!"); diff --git a/patches/server/0282-Add-PlayerConnectionCloseEvent.patch b/patches/server/0282-Add-PlayerConnectionCloseEvent.patch index a77f9f089f93..73a6fc81331c 100644 --- a/patches/server/0282-Add-PlayerConnectionCloseEvent.patch +++ b/patches/server/0282-Add-PlayerConnectionCloseEvent.patch @@ -38,7 +38,7 @@ public net.minecraft.server.network.ServerLoginPacketListenerImpl$State public net.minecraft.server.network.ServerLoginPacketListenerImpl state diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 6fcbf8205e1852d5193a42bfe1154f62ab01e7ad..25881c890c643ce90bdcda6b094d912bafb0ed75 100644 +index 6fcbf8205e1852d5193a42bfe1154f62ab01e7ad..8870d97194e1389ca747b74b092b1f8fb9090fb0 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -644,6 +644,26 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -64,7 +64,7 @@ index 6fcbf8205e1852d5193a42bfe1154f62ab01e7ad..25881c890c643ce90bdcda6b094d912b + ((java.net.InetSocketAddress)address).getAddress(), false).callEvent(); + } + } -+ // Paper end ++ // Paper end - Add PlayerConnectionCloseEvent } } diff --git a/patches/server/0283-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0283-Replace-OfflinePlayer-getLastPlayed.patch similarity index 95% rename from patches/server/0283-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch rename to patches/server/0283-Replace-OfflinePlayer-getLastPlayed.patch index 0abfb7274c9b..7fa91d0779d2 100644 --- a/patches/server/0283-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/server/0283-Replace-OfflinePlayer-getLastPlayed.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 2 Jan 2019 00:35:43 -0600 -Subject: [PATCH] Add APIs to replace OfflinePlayer#getLastPlayed +Subject: [PATCH] Replace OfflinePlayer#getLastPlayed Currently OfflinePlayer#getLastPlayed could more accurately be described as "OfflinePlayer#getLastTimeTheirDataWasSaved". @@ -16,26 +16,26 @@ intent to remove) and replace it with two new methods, clearly named and documented as to their purpose. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 54297045b5da66827426ae354883a9709d9cdefc..7a5977aa72a0a198144d7b490abe0685326de260 100644 +index 54297045b5da66827426ae354883a9709d9cdefc..27f0fce3e5e5faec8f2717b5068cb23e2054ce8b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -248,6 +248,7 @@ public class ServerPlayer extends Player { private int containerCounter; public boolean wonGame; private int containerUpdateDelay; // Paper -+ public long loginTime; // Paper ++ public long loginTime; // Paper - Replace OfflinePlayer#getLastPlayed // Paper start - cancellable death event public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6a3961350030e63b27512261402f675c3cd78485..d3f57dfd5156a5df17a5a7a6e5fe51d8804fd38f 100644 +index 6a3961350030e63b27512261402f675c3cd78485..154881ee9a837fea159246c6a826257bcf7a079a 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 { public void placeNewPlayer(Connection connection, ServerPlayer player, CommonListenerCookie clientData) { player.isRealPlayer = true; // Paper -+ player.loginTime = System.currentTimeMillis(); // Paper ++ player.loginTime = System.currentTimeMillis(); // Paper - Replace OfflinePlayer#getLastPlayed GameProfile gameprofile = player.getGameProfile(); GameProfileCache usercache = this.server.getProfileCache(); String s; diff --git a/patches/server/0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch b/patches/server/0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch index 303a80161118..02430343ae2b 100644 --- a/patches/server/0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch +++ b/patches/server/0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Workaround for vehicle tracking issue on disconnect diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7a5977aa72a0a198144d7b490abe0685326de260..8cc33c1b14668c085dbad1f3feabf7b602812471 100644 +index 27f0fce3e5e5faec8f2717b5068cb23e2054ce8b..7c20af6a72603e46b4aec46a079101981eb59c08 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1749,6 +1749,13 @@ public class ServerPlayer extends Player { @@ -13,11 +13,11 @@ index 7a5977aa72a0a198144d7b490abe0685326de260..8cc33c1b14668c085dbad1f3feabf7b6 this.disconnected = true; this.ejectPassengers(); + -+ // Paper start - Workaround an issue where the vehicle doesn't track the passenger disconnection dismount. ++ // Paper start - Workaround vehicle not tracking the passenger disconnection dismount + if (this.isPassenger() && this.getVehicle() instanceof ServerPlayer) { + this.stopRiding(); + } -+ // Paper end ++ // Paper end - Workaround vehicle not tracking the passenger disconnection dismount + if (this.isSleeping()) { this.stopSleepInBed(true, false); diff --git a/patches/server/0286-BlockDestroyEvent.patch b/patches/server/0286-BlockDestroyEvent.patch index 526e9846573e..789cef6bf65e 100644 --- a/patches/server/0286-BlockDestroyEvent.patch +++ b/patches/server/0286-BlockDestroyEvent.patch @@ -11,7 +11,7 @@ floating in the air. This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 14c963d507173dae6015a0c81e3a690768012bed..b10c93cbcf264a3e13d48f30a2c09ae5568a510e 100644 +index 14c963d507173dae6015a0c81e3a690768012bed..a683908b18114cad6100e3d5c8eb5a8dfd33163a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -31,6 +31,7 @@ import net.minecraft.nbt.CompoundTag; @@ -26,7 +26,7 @@ index 14c963d507173dae6015a0c81e3a690768012bed..b10c93cbcf264a3e13d48f30a2c09ae5 return false; } else { FluidState fluid = this.getFluidState(pos); -+ // Paper start - while the above setAir method is named same and looks very similar ++ // Paper start - BlockDestroyEvent; while the above setAir method is named same and looks very similar + // they are NOT used with same intent and the above should not fire this event. The above method is more of a BlockSetToAirEvent, + // it doesn't imply destruction of a block that plays a sound effect / drops an item. + boolean playEffect = true; @@ -42,12 +42,12 @@ index 14c963d507173dae6015a0c81e3a690768012bed..b10c93cbcf264a3e13d48f30a2c09ae5 + drop = event.willDrop(); + xp = event.getExpToDrop(); + } -+ // Paper end ++ // Paper end - BlockDestroyEvent - if (!(iblockdata.getBlock() instanceof BaseFireBlock)) { - this.levelEvent(2001, pos, Block.getId(iblockdata)); -+ if (playEffect && !(effectType.getBlock() instanceof BaseFireBlock)) { // Paper -+ this.levelEvent(2001, pos, Block.getId(effectType)); // Paper ++ if (playEffect && !(effectType.getBlock() instanceof BaseFireBlock)) { // Paper - BlockDestroyEvent ++ this.levelEvent(2001, pos, Block.getId(effectType)); // Paper - BlockDestroyEvent } if (drop) { diff --git a/patches/server/0287-Async-command-map-building.patch b/patches/server/0287-Async-command-map-building.patch index 6761f47086a2..ec0668617ef5 100644 --- a/patches/server/0287-Async-command-map-building.patch +++ b/patches/server/0287-Async-command-map-building.patch @@ -9,14 +9,14 @@ commands if the server is restarting. Using the default async pool caused issues due to the shutdown logic generally being much later. diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 5a1accff1a7dc2ab40224ec0952a287cd6099aee..2a88cf008c98284954108f2362f46ac14c84200a 100644 +index 5a1accff1a7dc2ab40224ec0952a287cd6099aee..2b722091920116ded43ff54c413d4dd47da65ed4 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -458,6 +458,24 @@ public class Commands { if ( org.spigotmc.SpigotConfig.tabComplete < 0 ) return; // Spigot // CraftBukkit start // Register Vanilla commands into builtRoot as before -+ // Paper start - Async command map building ++ // Paper start - Perf: Async command map building + COMMAND_SENDING_POOL.execute(() -> { + this.sendAsync(player); + }); @@ -33,7 +33,7 @@ index 5a1accff1a7dc2ab40224ec0952a287cd6099aee..2a88cf008c98284954108f2362f46ac1 + ); + + private void sendAsync(ServerPlayer player) { -+ // Paper end - Async command map building ++ // Paper end - Perf: Async command map building Map, CommandNode> map = Maps.newIdentityHashMap(); // Use identity to prevent aliasing issues RootCommandNode vanillaRoot = new RootCommandNode(); @@ -41,26 +41,26 @@ index 5a1accff1a7dc2ab40224ec0952a287cd6099aee..2a88cf008c98284954108f2362f46ac1 for (CommandNode node : rootcommandnode.getChildren()) { bukkit.add(node.getName()); } -+ // Paper start - Async command map building ++ // Paper start - Perf: Async command map building + net.minecraft.server.MinecraftServer.getServer().execute(() -> { + runSync(player, bukkit, rootcommandnode); + }); + } + private void runSync(ServerPlayer player, Collection bukkit, RootCommandNode rootcommandnode) { -+ // Paper end - Async command map building ++ // Paper end - Perf: Async command map building PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit)); event.getPlayer().getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 420201b60be7d07fbbb75192f14e4222f4b386aa..ce370cb1ed9ef67044c5ab448c52367779e5105f 100644 +index e6b029c8ee05c5e045a7d694a9e8616d6a1ea484..5f377267cc3c72e4d55c29f20ce3cd3eed0e5258 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -926,6 +926,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Date: Sun, 19 Apr 2020 18:15:29 -0400 -Subject: [PATCH] Implement Brigadier Mojang API +Subject: [PATCH] Brigadier Mojang API Adds AsyncPlayerSendCommandsEvent - Allows modifying on a per command basis what command data they see. @@ -22,7 +22,7 @@ index 30edfbf16e7bed29b3261b51d9e4f3124beef026..eaaf9a9779f57ee048245899750bf7a1 implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") diff --git a/src/main/java/com/mojang/brigadier/exceptions/CommandSyntaxException.java b/src/main/java/com/mojang/brigadier/exceptions/CommandSyntaxException.java -index 3370731ee064d2693b972a0765c13dd4fd69f66a..614eba6cc55d1eb7755cac35c671cb6f6cacca13 100644 +index 3370731ee064d2693b972a0765c13dd4fd69f66a..09d486a05179b9d878e1c33725b4e614c3544da9 100644 --- a/src/main/java/com/mojang/brigadier/exceptions/CommandSyntaxException.java +++ b/src/main/java/com/mojang/brigadier/exceptions/CommandSyntaxException.java @@ -5,7 +5,7 @@ package com.mojang.brigadier.exceptions; @@ -30,7 +30,7 @@ index 3370731ee064d2693b972a0765c13dd4fd69f66a..614eba6cc55d1eb7755cac35c671cb6f import com.mojang.brigadier.Message; -public class CommandSyntaxException extends Exception { -+public class CommandSyntaxException extends Exception implements net.kyori.adventure.util.ComponentMessageThrowable { // Paper ++public class CommandSyntaxException extends Exception implements net.kyori.adventure.util.ComponentMessageThrowable { // Paper - Brigadier API public static final int CONTEXT_AMOUNT = 10; public static boolean ENABLE_COMMAND_STACK_TRACES = true; public static BuiltInExceptionProvider BUILT_IN_EXCEPTIONS = new BuiltInExceptions(); @@ -39,27 +39,27 @@ index 3370731ee064d2693b972a0765c13dd4fd69f66a..614eba6cc55d1eb7755cac35c671cb6f return cursor; } + -+ // Paper start ++ // Paper start - Brigadier API + @Override + public @org.jetbrains.annotations.Nullable net.kyori.adventure.text.Component componentMessage() { + return io.papermc.paper.brigadier.PaperBrigadier.componentFromMessage(this.message); + } -+ // Paper end ++ // Paper end - Brigadier API } diff --git a/src/main/java/com/mojang/brigadier/tree/CommandNode.java b/src/main/java/com/mojang/brigadier/tree/CommandNode.java -index da6250df1c5f3385b683cffde47754bca4606f5e..3384501f83d445f45aa8233e98c7597daa67b8ef 100644 +index da6250df1c5f3385b683cffde47754bca4606f5e..d8142624f9f3a5909e7cc5665f1629a1a67dd302 100644 --- a/src/main/java/com/mojang/brigadier/tree/CommandNode.java +++ b/src/main/java/com/mojang/brigadier/tree/CommandNode.java @@ -34,6 +34,7 @@ public abstract class CommandNode implements Comparable> { private final RedirectModifier modifier; private final boolean forks; private Command command; -+ public LiteralCommandNode clientNode = null; // Paper ++ public LiteralCommandNode clientNode; // Paper - Brigadier API // CraftBukkit start public void removeCommand(String name) { this.children.remove(name); diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 5cca4fcdc97d803460e95c534022186a5aad526f..c772fa3b7a1276b0b41c45c6e0f5584b9c3a90cd 100644 +index 5cca4fcdc97d803460e95c534022186a5aad526f..8e0ea79a41136b697f5e58b5cd71f6a9bc3cab73 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -45,7 +45,7 @@ import net.minecraft.world.phys.Vec2; @@ -67,7 +67,7 @@ index 5cca4fcdc97d803460e95c534022186a5aad526f..c772fa3b7a1276b0b41c45c6e0f5584b import com.mojang.brigadier.tree.CommandNode; // CraftBukkit -public class CommandSourceStack implements ExecutionCommandSource, SharedSuggestionProvider { -+public class CommandSourceStack implements ExecutionCommandSource, SharedSuggestionProvider, com.destroystokyo.paper.brigadier.BukkitBrigadierCommandSource { // Paper ++public class CommandSourceStack implements ExecutionCommandSource, SharedSuggestionProvider, com.destroystokyo.paper.brigadier.BukkitBrigadierCommandSource { // Paper - Brigadier API public static final SimpleCommandExceptionType ERROR_NOT_PLAYER = new SimpleCommandExceptionType(Component.translatable("permissions.requires.player")); public static final SimpleCommandExceptionType ERROR_NOT_ENTITY = new SimpleCommandExceptionType(Component.translatable("permissions.requires.entity")); @@ -75,7 +75,7 @@ index 5cca4fcdc97d803460e95c534022186a5aad526f..c772fa3b7a1276b0b41c45c6e0f5584b return this.textName; } -+ // Paper start ++ // Paper start - Brigadier API + @Override + public org.bukkit.entity.Entity getBukkitEntity() { + return getEntity() != null ? getEntity().getBukkitEntity() : null; @@ -93,28 +93,28 @@ index 5cca4fcdc97d803460e95c534022186a5aad526f..c772fa3b7a1276b0b41c45c6e0f5584b + Vec2 rot = getRotation(); + return world != null && pos != null ? new org.bukkit.Location(world, pos.x, pos.y, pos.z, rot != null ? rot.y : 0, rot != null ? rot.x : 0) : null; + } -+ // Paper end ++ // Paper end - Brigadier API + @Override public boolean hasPermission(int level) { // CraftBukkit start diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 2a88cf008c98284954108f2362f46ac14c84200a..b27256d251e5db5781197319f79f89cc7638c80b 100644 +index 2b722091920116ded43ff54c413d4dd47da65ed4..867f22bdeed5f1c3f063a5815a3477d143057152 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -494,6 +494,7 @@ public class Commands { bukkit.add(node.getName()); } - // Paper start - Async command map building -+ new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper + // Paper start - Perf: Async command map building ++ new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper - Brigadier API net.minecraft.server.MinecraftServer.getServer().execute(() -> { runSync(player, bukkit, rootcommandnode); }); @@ -501,6 +502,7 @@ public class Commands { private void runSync(ServerPlayer player, Collection bukkit, RootCommandNode rootcommandnode) { - // Paper end - Async command map building -+ new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper + // Paper end - Perf: Async command map building ++ new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper - Brigadier API PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit)); event.getPlayer().getServer().getPluginManager().callEvent(event); @@ -122,16 +122,16 @@ index 2a88cf008c98284954108f2362f46ac14c84200a..b27256d251e5db5781197319f79f89cc while (iterator.hasNext()) { CommandNode commandnode2 = (CommandNode) iterator.next(); -+ // Paper start ++ // Paper start - Brigadier API + if (commandnode2.clientNode != null) { + commandnode2 = commandnode2.clientNode; + } -+ // Paper end ++ // Paper end - Brigadier API if ( !org.spigotmc.SpigotConfig.sendNamespaced && commandnode2.getName().contains( ":" ) ) continue; // Spigot if (commandnode2.canUse(source)) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 564cc26f8201bd864f5f58c740c9de942d384394..833fb2f340065a72903620f974e6ac71cc86f3f9 100644 +index 2ee2e497f716f54dc8cd3d9b906d7bc2b7106448..715e80bbb683da9c13d57b6b0bca70342e67c294 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -740,8 +740,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0289-Improve-exact-choice-recipe-ingredients.patch b/patches/server/0289-Improve-exact-choice-recipe-ingredients.patch index 93069f3ed687..7a176c6924b1 100644 --- a/patches/server/0289-Improve-exact-choice-recipe-ingredients.patch +++ b/patches/server/0289-Improve-exact-choice-recipe-ingredients.patch @@ -143,14 +143,14 @@ index 0000000000000000000000000000000000000000..413dfa52760db393ad6a8b5341200ee7 +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.framework.qual.DefaultQualifier; diff --git a/src/main/java/net/minecraft/recipebook/ServerPlaceRecipe.java b/src/main/java/net/minecraft/recipebook/ServerPlaceRecipe.java -index 4303f2b4e55191f8a53170435c6d1263782d1c8d..a65d07cb3d2dae85225921498d1721dc3c6a6bf3 100644 +index 4303f2b4e55191f8a53170435c6d1263782d1c8d..1534cbb5cb5da61fa7fa41bd503b01994877a01b 100644 --- a/src/main/java/net/minecraft/recipebook/ServerPlaceRecipe.java +++ b/src/main/java/net/minecraft/recipebook/ServerPlaceRecipe.java @@ -34,6 +34,7 @@ public class ServerPlaceRecipe implements PlaceRecipe inputs, int slot, int amount, int gridX, int gridY) { Slot slot2 = this.menu.getSlot(slot); - ItemStack itemStack = StackedContents.fromStackingIndex(inputs.next()); -+ // Paper start ++ // Paper start - Improve exact choice recipe ingredients + final int itemId = inputs.next(); + ItemStack itemStack = null; + boolean isExact = false; @@ -179,11 +179,11 @@ index 4303f2b4e55191f8a53170435c6d1263782d1c8d..a65d07cb3d2dae85225921498d1721dc + if (itemStack == null) { + itemStack = StackedContents.fromStackingIndex(itemId); + } -+ // Paper end ++ // Paper end - Improve exact choice recipe ingredients if (!itemStack.isEmpty()) { for(int i = 0; i < amount; ++i) { - this.moveItemToGrid(slot2, itemStack); -+ this.moveItemToGrid(slot2, itemStack, isExact); // Paper ++ this.moveItemToGrid(slot2, itemStack, isExact); // Paper - Improve exact choice recipe ingredients } } @@ -191,30 +191,30 @@ index 4303f2b4e55191f8a53170435c6d1263782d1c8d..a65d07cb3d2dae85225921498d1721dc return i; } -+ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper ++ @Deprecated @io.papermc.paper.annotation.DoNotUse // Paper - Improve exact choice recipe ingredients protected void moveItemToGrid(Slot slot, ItemStack stack) { - int i = this.inventory.findSlotMatchingUnusedItem(stack); -+ // Paper start ++ // Paper start - Improve exact choice recipe ingredients + this.moveItemToGrid(slot, stack, false); + } + protected void moveItemToGrid(Slot slot, ItemStack stack, final boolean isExact) { + int i = isExact ? this.inventory.findSlotMatchingItem(stack) : this.inventory.findSlotMatchingUnusedItem(stack); -+ // Paper end ++ // Paper end - Improve exact choice recipe ingredients if (i != -1) { ItemStack itemStack = this.inventory.getItem(i); if (!itemStack.isEmpty()) { diff --git a/src/main/java/net/minecraft/world/entity/player/StackedContents.java b/src/main/java/net/minecraft/world/entity/player/StackedContents.java -index 5cc5f67284ad01c9154876252450552ed37f24bf..26b236a764177ac16d53f5cbaf83d3e21d015ebc 100644 +index 5cc5f67284ad01c9154876252450552ed37f24bf..9c7b05fec22a8b84c29d7210f1104030a20cc7aa 100644 --- a/src/main/java/net/minecraft/world/entity/player/StackedContents.java +++ b/src/main/java/net/minecraft/world/entity/player/StackedContents.java @@ -21,8 +21,10 @@ import net.minecraft.world.item.crafting.RecipeHolder; public class StackedContents { private static final int EMPTY = 0; public final Int2IntMap contents = new Int2IntOpenHashMap(); -+ @Nullable public io.papermc.paper.inventory.recipe.StackedContentsExtraMap extrasMap = null; // Paper ++ @Nullable public io.papermc.paper.inventory.recipe.StackedContentsExtraMap extrasMap = null; // Paper - Improve exact choice recipe ingredients public void accountSimpleStack(ItemStack stack) { -+ if (this.extrasMap != null && stack.hasTag() && this.extrasMap.accountStack(stack, Math.min(64, stack.getCount()))) return; // Paper - max of 64 due to accountStack method below ++ if (this.extrasMap != null && stack.hasTag() && this.extrasMap.accountStack(stack, Math.min(64, stack.getCount()))) return; // Paper - Improve exact choice recipe ingredients; max of 64 due to accountStack method below if (!stack.isDamaged() && !stack.isEnchanted() && !stack.hasCustomHoverName()) { this.accountStack(stack); } @@ -222,7 +222,7 @@ index 5cc5f67284ad01c9154876252450552ed37f24bf..26b236a764177ac16d53f5cbaf83d3e2 if (!stack.isEmpty()) { int i = getStackingIndex(stack); int j = Math.min(maxCount, stack.getCount()); -+ if (this.extrasMap != null && stack.hasTag() && this.extrasMap.accountStack(stack, j)) return; // Paper - if an exact ingredient, don't include it ++ if (this.extrasMap != null && stack.hasTag() && this.extrasMap.accountStack(stack, j)) return; // Paper - Improve exact choice recipe ingredients; if an exact ingredient, don't include it this.put(i, j); } @@ -230,7 +230,7 @@ index 5cc5f67284ad01c9154876252450552ed37f24bf..26b236a764177ac16d53f5cbaf83d3e2 return itemId == 0 ? ItemStack.EMPTY : new ItemStack(Item.byId(itemId)); } -+ // Paper start ++ // Paper start - Improve exact choice recipe ingredients + public void initialize(final Recipe recipe) { + this.extrasMap = new io.papermc.paper.inventory.recipe.StackedContentsExtraMap(this, recipe); + } @@ -245,7 +245,7 @@ index 5cc5f67284ad01c9154876252450552ed37f24bf..26b236a764177ac16d53f5cbaf83d3e2 + public static ItemStack fromStackingIndexExtras(final int itemId, final io.papermc.paper.inventory.recipe.StackedContentsExtraMap extrasMap) { + return extrasMap.getById(itemId).copy(); + } -+ // Paper end ++ // Paper end - Improve exact choice recipe ingredients + public void clear() { this.contents.clear(); @@ -255,7 +255,7 @@ index 5cc5f67284ad01c9154876252450552ed37f24bf..26b236a764177ac16d53f5cbaf83d3e2 for(int i = 0; i < this.ingredients.size(); ++i) { - IntList intList = this.ingredients.get(i).getStackingIds(); -+ IntList intList = this.getStackingIds(this.ingredients.get(i)); // Paper ++ IntList intList = this.getStackingIds(this.ingredients.get(i)); // Paper - Improve exact choice recipe ingredients for(int j = 0; j < this.itemCount; ++j) { if (intList.contains(this.items[j])) { @@ -264,7 +264,7 @@ index 5cc5f67284ad01c9154876252450552ed37f24bf..26b236a764177ac16d53f5cbaf83d3e2 for(Ingredient ingredient : this.ingredients) { - intCollection.addAll(ingredient.getStackingIds()); -+ intCollection.addAll(this.getStackingIds(ingredient)); // Paper ++ intCollection.addAll(this.getStackingIds(ingredient)); // Paper - Improve exact choice recipe ingredients } IntIterator intIterator = intCollection.iterator(); @@ -273,7 +273,7 @@ index 5cc5f67284ad01c9154876252450552ed37f24bf..26b236a764177ac16d53f5cbaf83d3e2 int j = 0; - for(int k : ingredient.getStackingIds()) { -+ for(int k : this.getStackingIds(ingredient)) { // Paper ++ for(int k : this.getStackingIds(ingredient)) { // Paper - Improve exact choice recipe ingredients j = Math.max(j, StackedContents.this.contents.get(k)); } @@ -282,7 +282,7 @@ index 5cc5f67284ad01c9154876252450552ed37f24bf..26b236a764177ac16d53f5cbaf83d3e2 return i; } + -+ // Paper start - improve exact recipe choices ++ // Paper start - Improve exact choice recipe ingredients + private IntList getStackingIds(final Ingredient ingredient) { + if (StackedContents.this.extrasMap != null) { + final IntList ids = StackedContents.this.extrasMap.extraStackingIds.get(ingredient); @@ -292,7 +292,7 @@ index 5cc5f67284ad01c9154876252450552ed37f24bf..26b236a764177ac16d53f5cbaf83d3e2 + } + return ingredient.getStackingIds(); + } -+ // Paper end - improve exact recipe choices ++ // Paper end - Improve exact choice recipe ingredients } } diff --git a/src/main/java/net/minecraft/world/item/crafting/AbstractCookingRecipe.java b/src/main/java/net/minecraft/world/item/crafting/AbstractCookingRecipe.java diff --git a/patches/server/0290-Limit-Client-Sign-length-more.patch b/patches/server/0290-Limit-Client-Sign-length-more.patch index b4f2167b83eb..20872d5df372 100644 --- a/patches/server/0290-Limit-Client-Sign-length-more.patch +++ b/patches/server/0290-Limit-Client-Sign-length-more.patch @@ -22,14 +22,14 @@ it only impacts data sent from the client. Set -DPaper.maxSignLength=XX to change limit or -1 to disable diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 833fb2f340065a72903620f974e6ac71cc86f3f9..00fa6126ca51b6ffdb46b59f07725ffdcca9f20a 100644 +index 833fb2f340065a72903620f974e6ac71cc86f3f9..748321534eab7a8c35a85b4d4ab8020bd4623654 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -291,6 +291,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private final MessageSignatureCache messageSignatureCache = MessageSignatureCache.createDefault(); private final FutureChain chatMessageChain; private boolean waitingForSwitchToConfig; -+ private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80); // Paper ++ private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80); // Paper - Limit client sign length public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player, CommonListenerCookie clientData) { super(server, connection, clientData, player); // CraftBukkit @@ -38,7 +38,7 @@ index 833fb2f340065a72903620f974e6ac71cc86f3f9..00fa6126ca51b6ffdb46b59f07725ffd @Override public void handleSignUpdate(ServerboundSignUpdatePacket packet) { - List list = (List) Stream.of(packet.getLines()).map(ChatFormatting::stripFormatting).collect(Collectors.toList()); -+ // Paper start - cap line length - modified clients can send longer data than normal ++ // Paper start - Limit client sign length + String[] lines = packet.getLines(); + for (int i = 0; i < lines.length; ++i) { + if (MAX_SIGN_LINE_LENGTH > 0 && lines[i].length() > MAX_SIGN_LINE_LENGTH) { @@ -50,7 +50,7 @@ index 833fb2f340065a72903620f974e6ac71cc86f3f9..00fa6126ca51b6ffdb46b59f07725ffd + } + } + List list = (List) Stream.of(lines).map(ChatFormatting::stripFormatting).collect(Collectors.toList()); -+ // Paper end ++ // Paper end - Limit client sign length this.filterTextPacket(list).thenAcceptAsync((list1) -> { this.updateSignText(packet, list1); diff --git a/patches/server/0291-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch b/patches/server/0291-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch index f788b1d62f41..0cf6c5d7934b 100644 --- a/patches/server/0291-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch +++ b/patches/server/0291-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Call WhitelistToggleEvent when whitelist is toggled diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d3f57dfd5156a5df17a5a7a6e5fe51d8804fd38f..18dc5ef7892c24f4071c8c0621ac412a5d8767bd 100644 +index d3f57dfd5156a5df17a5a7a6e5fe51d8804fd38f..c9dbc32561ddd39b40ed42d8cc6550a904ac158e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1157,6 +1157,7 @@ public abstract class PlayerList { } public void setUsingWhiteList(boolean whitelistEnabled) { -+ new com.destroystokyo.paper.event.server.WhitelistToggleEvent(whitelistEnabled).callEvent(); ++ new com.destroystokyo.paper.event.server.WhitelistToggleEvent(whitelistEnabled).callEvent(); // Paper - WhitelistToggleEvent this.doWhiteList = whitelistEnabled; } diff --git a/patches/server/0292-Handle-Oversized-Tile-Entities-in-chunks.patch b/patches/server/0292-Handle-Oversized-Tile-Entities-in-chunks.patch index a99bed730527..0d10f48bee01 100644 --- a/patches/server/0292-Handle-Oversized-Tile-Entities-in-chunks.patch +++ b/patches/server/0292-Handle-Oversized-Tile-Entities-in-chunks.patch @@ -6,24 +6,24 @@ Subject: [PATCH] Handle Oversized Tile Entities in chunks Splits out Extra Packets if too many TE's are encountered to prevent creating too large of a packet to sed. -Co authored by Spottedleaf +Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index f47eeb70661661610ef1a96dd9da67785825c126..0711ad682206e783fd0a1e566828670321f297e2 100644 +index f47eeb70661661610ef1a96dd9da67785825c126..dda7151d333144399ba5602e1b651b1f5b8f8f0d 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java @@ -24,6 +24,14 @@ public class ClientboundLevelChunkPacketData { private final CompoundTag heightmaps; private final byte[] buffer; private final List blockEntitiesData; -+ // Paper start ++ // Paper start - Handle oversized block entities in chunks + private final java.util.List> extraPackets = new java.util.ArrayList<>(); + private static final int TE_LIMIT = Integer.getInteger("Paper.excessiveTELimit", 750); + + public List> getExtraPackets() { + return this.extraPackets; + } -+ // Paper end ++ // Paper end - Handle oversized block entities in chunks public ClientboundLevelChunkPacketData(LevelChunk chunk) { this.heightmaps = new CompoundTag(); @@ -31,10 +31,10 @@ index f47eeb70661661610ef1a96dd9da67785825c126..0711ad682206e783fd0a1e5668286703 this.buffer = new byte[calculateChunkSize(chunk)]; extractChunkData(new FriendlyByteBuf(this.getWriteBuffer()), chunk); this.blockEntitiesData = Lists.newArrayList(); -+ int totalTileEntities = 0; // Paper ++ int totalTileEntities = 0; // Paper - Handle oversized block entities in chunks for(Map.Entry entry2 : chunk.getBlockEntities().entrySet()) { -+ // Paper start ++ // Paper start - Handle oversized block entities in chunks + if (++totalTileEntities > TE_LIMIT) { + var packet = entry2.getValue().getUpdatePacket(); + if (packet != null) { @@ -42,12 +42,12 @@ index f47eeb70661661610ef1a96dd9da67785825c126..0711ad682206e783fd0a1e5668286703 + continue; + } + } -+ // Paper end ++ // Paper end - Handle oversized block entities in chunks this.blockEntitiesData.add(ClientboundLevelChunkPacketData.BlockEntityInfo.create(entry2.getValue())); } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java -index 26e46d751c8f8162c2bafe2fc109fc91dc4b7c0f..be89e5b8c1ea7f85aef267a15986affa5fa1fd4b 100644 +index 26e46d751c8f8162c2bafe2fc109fc91dc4b7c0f..90ec22d35edb2874417bbea590e0d3c37ad93d64 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java @@ -57,4 +57,11 @@ public class ClientboundLevelChunkWithLightPacket implements Packet> getExtraPackets() { + return this.chunkData.getExtraPackets(); + } -+ // Paper end ++ // Paper end - Handle oversized block entities in chunks } diff --git a/patches/server/0293-Entity-getEntitySpawnReason.patch b/patches/server/0293-Entity-getEntitySpawnReason.patch index 36fd542135fe..5358c7e3f37f 100644 --- a/patches/server/0293-Entity-getEntitySpawnReason.patch +++ b/patches/server/0293-Entity-getEntitySpawnReason.patch @@ -10,42 +10,42 @@ persistenting Living Entity, SPAWNER for spawners, or DEFAULT since data was not stored. diff --git a/src/main/java/net/minecraft/server/commands/SummonCommand.java b/src/main/java/net/minecraft/server/commands/SummonCommand.java -index 2eddeb8d5239bbfeefbf4d3bd363f1ad083299b6..a7c89cdf20cb63792c76de81c1ff9f2cbbfcea84 100644 +index 2eddeb8d5239bbfeefbf4d3bd363f1ad083299b6..e2b44b8ddb8afc6e1f7dddadb434c2268f284809 100644 --- a/src/main/java/net/minecraft/server/commands/SummonCommand.java +++ b/src/main/java/net/minecraft/server/commands/SummonCommand.java @@ -57,6 +57,7 @@ public class SummonCommand { ServerLevel worldserver = source.getLevel(); Entity entity = EntityType.loadEntityRecursive(nbttagcompound1, worldserver, (entity1) -> { entity1.moveTo(pos.x, pos.y, pos.z, entity1.getYRot(), entity1.getXRot()); -+ entity1.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.COMMAND; // Paper ++ entity1.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.COMMAND; // Paper - Entity#getEntitySpawnReason return entity1; }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1e10d55962a7221e197723eb42434be052a7661a..43424a9d8e985f4965b4d101f7fee398e3d1f52c 100644 +index 1e10d55962a7221e197723eb42434be052a7661a..cf2ae848a3860a5a27723047b02bde3aa8255d62 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1454,6 +1454,7 @@ public class ServerLevel extends Level implements WorldGenLevel { return true; } // Paper end -+ if (entity.spawnReason == null) entity.spawnReason = spawnReason; // Paper ++ if (entity.spawnReason == null) entity.spawnReason = spawnReason; // Paper - Entity#getEntitySpawnReason if (entity.isRemoved()) { // Paper start if (DEBUG_ENTITIES) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 18dc5ef7892c24f4071c8c0621ac412a5d8767bd..c98e4469fa8940762c26a8d787bfabe4b2719fb5 100644 +index c9dbc32561ddd39b40ed42d8cc6550a904ac158e..63d793ee00b14a12d0dbad15bee579a330f1eb07 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -223,6 +223,11 @@ public abstract class PlayerList { worldserver1 = worldserver; } -+ // Paper start ++ // Paper start - Entity#getEntitySpawnReason + if (nbttagcompound == null) { + player.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; // set Player SpawnReason to DEFAULT on first login + } -+ // Paper end ++ // Paper end - Entity#getEntitySpawnReason player.setServerLevel(worldserver1); String s1 = connection.getLoggableAddress(this.server.logIPs()); @@ -54,19 +54,19 @@ index 18dc5ef7892c24f4071c8c0621ac412a5d8767bd..c98e4469fa8940762c26a8d787bfabe4 ServerLevel finalWorldServer = worldserver1; Entity entity = EntityType.loadEntityRecursive(nbttagcompound1.getCompound("Entity"), finalWorldServer, (entity1) -> { - return !finalWorldServer.addWithUUID(entity1) ? null : entity1; -+ return !finalWorldServer.addWithUUID(entity1, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.MOUNT) ? null : entity1; // Paper ++ return !finalWorldServer.addWithUUID(entity1, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.MOUNT) ? null : entity1; // Paper - Entity#getEntitySpawnReason // CraftBukkit end }); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e44d983e7b44225bdd7395488d2b246761e8e02a..e1ad7394abdbf938841150e4f7092ac70181ddb0 100644 +index e44d983e7b44225bdd7395488d2b246761e8e02a..748bc33b9812791ffe4b811c405b45d07c18cdcd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -237,6 +237,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } // Paper end -+ public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason; // Paper ++ public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason; // Paper - Entity#getEntitySpawnReason public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper private CraftEntity bukkitEntity; @@ -108,19 +108,19 @@ index e44d983e7b44225bdd7395488d2b246761e8e02a..e1ad7394abdbf938841150e4f7092ac7 } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 713608239cc7518d05b04d3dd79c3af0c358c64e..231674f1483ad71630ac71ba92efc50f94a5659b 100644 +index 713608239cc7518d05b04d3dd79c3af0c358c64e..0d04581b73a9daa91bbcb0ef0b28d601fc0e9599 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java @@ -189,6 +189,7 @@ public abstract class BaseSpawner { } entity.spawnedViaMobSpawner = true; // Paper -+ entity.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.SPAWNER; // Paper ++ entity.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.SPAWNER; // Paper - Entity#getEntitySpawnReason flag = true; // Paper // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java -index faad948f089575e4988d989790cc1dd13f8a79cd..ee11a52e82091911aa3a196bcc1f7ab829626cef 100644 +index faad948f089575e4988d989790cc1dd13f8a79cd..e143f42e71ac774d49b75e6d85591aa1189ee210 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java @@ -186,7 +186,7 @@ public class SculkShriekerBlockEntity extends BlockEntity implements GameEventLi @@ -128,7 +128,7 @@ index faad948f089575e4988d989790cc1dd13f8a79cd..ee11a52e82091911aa3a196bcc1f7ab8 private boolean trySummonWarden(ServerLevel world) { - return this.warningLevel < 4 ? false : SpawnUtil.trySpawnMob(EntityType.WARDEN, MobSpawnType.TRIGGERED, world, this.getBlockPos(), 20, 5, 6, SpawnUtil.Strategy.ON_TOP_OF_COLLIDER).isPresent(); -+ return this.warningLevel < 4 ? false : SpawnUtil.trySpawnMob(EntityType.WARDEN, MobSpawnType.TRIGGERED, world, this.getBlockPos(), 20, 5, 6, SpawnUtil.Strategy.ON_TOP_OF_COLLIDER, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL, null).isPresent(); // Paper ++ return this.warningLevel < 4 ? false : SpawnUtil.trySpawnMob(EntityType.WARDEN, MobSpawnType.TRIGGERED, world, this.getBlockPos(), 20, 5, 6, SpawnUtil.Strategy.ON_TOP_OF_COLLIDER, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL, null).isPresent(); // Paper - Entity#getEntitySpawnReason } @Override diff --git a/patches/server/0295-Fire-event-on-GS4-query.patch b/patches/server/0295-Fire-event-on-GS4-query.patch index 445725e8b853..f469b1c298d4 100644 --- a/patches/server/0295-Fire-event-on-GS4-query.patch +++ b/patches/server/0295-Fire-event-on-GS4-query.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Fire event on GS4 query diff --git a/src/main/java/net/minecraft/server/rcon/NetworkDataOutputStream.java b/src/main/java/net/minecraft/server/rcon/NetworkDataOutputStream.java -index 51cb2644aa516a59e19fecb308d519dbc7e5fb11..e548aa0ca4e1e94ab628614b44fc11568ca3beff 100644 +index 51cb2644aa516a59e19fecb308d519dbc7e5fb11..e6340e0c98f6b208133ebaa44cdd1133be192eca 100644 --- a/src/main/java/net/minecraft/server/rcon/NetworkDataOutputStream.java +++ b/src/main/java/net/minecraft/server/rcon/NetworkDataOutputStream.java @@ -22,6 +22,16 @@ public class NetworkDataOutputStream { this.dataOutputStream.write(0); } -+ // Paper start - unchecked exception variant to use in Stream API ++ // Paper start - Fire event on GS4 query + public void writeStringUnchecked(String string) { + try { + writeString(string); @@ -20,7 +20,7 @@ index 51cb2644aa516a59e19fecb308d519dbc7e5fb11..e548aa0ca4e1e94ab628614b44fc1156 + com.destroystokyo.paper.util.SneakyThrow.sneaky(e); + } + } -+ // Paper end ++ // Paper end - Fire event on GS4 query + public void write(int value) throws IOException { this.dataOutputStream.write(value); diff --git a/patches/server/0296-Implement-PlayerPostRespawnEvent.patch b/patches/server/0296-Add-PlayerPostRespawnEvent.patch similarity index 75% rename from patches/server/0296-Implement-PlayerPostRespawnEvent.patch rename to patches/server/0296-Add-PlayerPostRespawnEvent.patch index 2619bf686b0a..f3387169121f 100644 --- a/patches/server/0296-Implement-PlayerPostRespawnEvent.patch +++ b/patches/server/0296-Add-PlayerPostRespawnEvent.patch @@ -1,26 +1,26 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MisterVector Date: Fri, 26 Oct 2018 21:31:00 -0700 -Subject: [PATCH] Implement PlayerPostRespawnEvent +Subject: [PATCH] Add PlayerPostRespawnEvent diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c98e4469fa8940762c26a8d787bfabe4b2719fb5..109cefef2a39aaae50ca745d907729d066aa9033 100644 +index 63d793ee00b14a12d0dbad15bee579a330f1eb07..89bd3102898af0b178cbb7f8dbe041a05c5845f3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -751,9 +751,14 @@ public abstract class PlayerList { boolean flag2 = false; -+ // Paper start ++ // Paper start - Add PlayerPostRespawnEvent + boolean isBedSpawn = false; + boolean isRespawn = false; -+ // Paper end ++ // Paper end - Add PlayerPostRespawnEvent + // CraftBukkit start - fire PlayerRespawnEvent if (location == null) { - boolean isBedSpawn = false; -+ // boolean isBedSpawn = false; // Paper - moved up ++ // boolean isBedSpawn = false; // Paper - Add PlayerPostRespawnEvent; moved up ServerLevel worldserver1 = this.server.getLevel(entityplayer.getRespawnDimension()); if (worldserver1 != null) { Optional optional; @@ -28,7 +28,7 @@ index c98e4469fa8940762c26a8d787bfabe4b2719fb5..109cefef2a39aaae50ca745d907729d0 location = respawnEvent.getRespawnLocation(); if (!flag) entityplayer.reset(); // SPIGOT-4785 -+ isRespawn = true; // Paper ++ isRespawn = true; // Paper - Add PlayerPostRespawnEvent } else { location.setWorld(worldserver.getWorld()); } @@ -37,11 +37,11 @@ index c98e4469fa8940762c26a8d787bfabe4b2719fb5..109cefef2a39aaae50ca745d907729d0 this.save(entityplayer); } + -+ // Paper start ++ // Paper start - Add PlayerPostRespawnEvent + if (isRespawn) { + cserver.getPluginManager().callEvent(new com.destroystokyo.paper.event.player.PlayerPostRespawnEvent(entityplayer.getBukkitEntity(), location, isBedSpawn)); + } -+ // Paper end ++ // Paper end - Add PlayerPostRespawnEvent + // CraftBukkit end return entityplayer1; diff --git a/patches/server/0298-Server-Tick-Events.patch b/patches/server/0298-Server-Tick-Events.patch index 0c162e4b1693..2b723b268a30 100644 --- a/patches/server/0298-Server-Tick-Events.patch +++ b/patches/server/0298-Server-Tick-Events.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Server Tick Events Fires event at start and end of a server tick diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ce370cb1ed9ef67044c5ab448c52367779e5105f..cdff8dfc675328e559b7063c67dfe6300f458eb6 100644 +index 1353bc4ddee1bafb76efbe6867f8821acc12a708..609b22f03c60ade8c2c1c7a0b191c2e24526aadf 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1348,6 +1348,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop inv) { + List itemsToKeep = event.getItemsToKeep(); + if (inv == null) { @@ -56,7 +56,7 @@ index 8cc33c1b14668c085dbad1f3feabf7b602812471..91053c2b19751aa3ff219b615b595b73 + } + } + } -+ // Paper end ++ // Paper end - PlayerDeathEvent#getItemsToKeep + @Override public void die(DamageSource damageSource) { @@ -66,12 +66,12 @@ index 8cc33c1b14668c085dbad1f3feabf7b602812471..91053c2b19751aa3ff219b615b595b73 // we clean the player's inventory after the EntityDeathEvent is called so plugins can get the exact state of the inventory. if (!event.getKeepInventory()) { - this.getInventory().clearContent(); -+ // Paper start - replace logic ++ // Paper start - PlayerDeathEvent#getItemsToKeep + for (NonNullList inv : this.getInventory().compartments) { + processKeep(event, inv); + } + processKeep(event, null); -+ // Paper end ++ // Paper end - PlayerDeathEvent#getItemsToKeep } this.setCamera(this); // Remove spectated target diff --git a/patches/server/0321-PlayerDeathEvent-shouldDropExperience.patch b/patches/server/0321-PlayerDeathEvent-shouldDropExperience.patch index 873dc400c12d..d084192630d2 100644 --- a/patches/server/0321-PlayerDeathEvent-shouldDropExperience.patch +++ b/patches/server/0321-PlayerDeathEvent-shouldDropExperience.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerDeathEvent#shouldDropExperience diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 91053c2b19751aa3ff219b615b595b730ffa134f..5aef108c5b78cfc02af5c73b9bc03004fba33ca7 100644 +index 5d491a5a885b00cad003538fc20720355c7f218a..a37174c76ca01a4c9831a63548b3161257c70f87 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -978,7 +978,7 @@ public class ServerPlayer extends Player { @@ -16,4 +16,4 @@ index 91053c2b19751aa3ff219b615b595b730ffa134f..5aef108c5b78cfc02af5c73b9bc03004 + if (event.shouldDropExperience()) this.dropExperience(); // Paper - tie to event // we clean the player's inventory after the EntityDeathEvent is called so plugins can get the exact state of the inventory. if (!event.getKeepInventory()) { - // Paper start - replace logic + // Paper start - PlayerDeathEvent#getItemsToKeep diff --git a/patches/server/0328-Entity-Activation-Range-2.0.patch b/patches/server/0328-Entity-Activation-Range-2.0.patch index 35f0e2536cb2..8399140c7a1e 100644 --- a/patches/server/0328-Entity-Activation-Range-2.0.patch +++ b/patches/server/0328-Entity-Activation-Range-2.0.patch @@ -18,7 +18,7 @@ public net.minecraft.world.entity.Entity isInsidePortal public net.minecraft.world.entity.LivingEntity jumping diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b10097cd28f0dc360cda9b31e8184ed3a7003780..2d1aa3acd41615b1b2c9cf5751152a56f1f18ec5 100644 +index 1b3df2f8e83b6bff4bbe8d37836072be2b2e6084..0ed44bc939b256a4b91eb24812e4de10a9af01b7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2,7 +2,6 @@ package net.minecraft.server.level; @@ -112,7 +112,7 @@ index b10097cd28f0dc360cda9b31e8184ed3a7003780..2d1aa3acd41615b1b2c9cf5751152a56 } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e1ad7394abdbf938841150e4f7092ac70181ddb0..26a611b8d75513690811fbbd15dc37e6f4a50dd4 100644 +index 14e2077aba3b2fcf347f7184a53ca8dda943322b..3c0725ca02f6ab9adde307aab864d856dc6e42e1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -397,6 +397,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -148,7 +148,7 @@ index e1ad7394abdbf938841150e4f7092ac70181ddb0..26a611b8d75513690811fbbd15dc37e6 movement = this.maybeBackOffFromEdge(movement, movementType); Vec3 vec3d1 = this.collide(movement); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index efef5df4cf720058c0b07ef795cfa6a567113811..d330b6d291cd2967358e892ccbc480bb3bd8022d 100644 +index 08bf4e4f108ae2eb87eb3b98e2b74d7d0f1d6a7c..3da1debb3ad884d9ba2f8ebea52643e8fcb3a747 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -221,6 +221,19 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -217,19 +217,10 @@ index 07c1ca01c38d5d7d0a95ad5004b5df9f4a222935..e5995d0db5dcfba59a873ff439601894 this.availableGoals.stream().filter((wrappedGoal) -> { return wrappedGoal.getGoal() == goal; diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java -index 7153e00a640abfeb134ff1dcb93f363b972a4233..4bbc36404b396500df0d9db380cf223b5897662e 100644 +index 9fc374c17f6b3ee4ab3c582d05e96321b772f2d6..07519c817cc6de04a98198c43a0c2b02ba3141eb 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java -@@ -14,7 +14,7 @@ public abstract class MoveToBlockGoal extends Goal { - protected int nextStartTick; - protected int tryTicks; - private int maxStayTicks; -- protected BlockPos blockPos = BlockPos.ZERO; @Deprecated public final BlockPos getTargetPosition() { return this.blockPos; } // Paper - OBFHELPER -+ protected BlockPos blockPos = BlockPos.ZERO; @Deprecated public final BlockPos getTargetPosition() { return this.blockPos; } @Deprecated public void setTargetPosition(BlockPos pos) { this.blockPos = pos; mob.movingTarget = pos != BlockPos.ZERO ? pos : null; } // Paper - OBFHELPER - private boolean reachedTarget; - private final int searchRange; - private final int verticalSearchRange; -@@ -23,6 +23,13 @@ public abstract class MoveToBlockGoal extends Goal { +@@ -23,6 +23,14 @@ public abstract class MoveToBlockGoal extends Goal { public MoveToBlockGoal(PathfinderMob mob, double speed, int range) { this(mob, speed, range, 1); } @@ -237,17 +228,18 @@ index 7153e00a640abfeb134ff1dcb93f363b972a4233..4bbc36404b396500df0d9db380cf223b + @Override + public void stop() { + super.stop(); -+ setTargetPosition(BlockPos.ZERO); ++ this.blockPos = BlockPos.ZERO; ++ this.mob.movingTarget = null; + } + // Paper end public MoveToBlockGoal(PathfinderMob mob, double speed, int range, int maxYDifference) { this.mob = mob; -@@ -114,6 +121,7 @@ public abstract class MoveToBlockGoal extends Goal { +@@ -114,6 +122,7 @@ public abstract class MoveToBlockGoal extends Goal { mutableBlockPos.setWithOffset(blockPos, m, k - 1, n); if (this.mob.isWithinRestriction(mutableBlockPos) && this.isValidTarget(this.mob.level(), mutableBlockPos)) { this.blockPos = mutableBlockPos; -+ setTargetPosition(mutableBlockPos.immutable()); // Paper ++ this.mob.movingTarget = mutableBlockPos == BlockPos.ZERO ? null : mutableBlockPos.immutable(); // Paper return true; } } @@ -348,7 +340,7 @@ index b149e8bcac034bb3fc118a9adcb0de45e18ed5e9..fc35cfc9d045f3e5b6a50af1d0ba83b6 + } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 3fdec0ff323ac94517f1ab9a13764a8959148127..9e4ab11521b853d0db55b382413c1f49cbff9e9e 100644 +index 5ce8c8b13dd380f483406af5356d347b60868606..ec35b05aeae0fb8e413653fd6495067f06144556 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -163,6 +163,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0334-Anti-Xray.patch b/patches/server/0334-Anti-Xray.patch index 227fc7d33079..d58ac431c58d 100644 --- a/patches/server/0334-Anti-Xray.patch +++ b/patches/server/0334-Anti-Xray.patch @@ -1017,12 +1017,12 @@ index 6cff1a98dc7cf33947ec760dbc3d3d0ec5db5f6c..51f647de153255c919b1440338cf1b3e } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index 0711ad682206e783fd0a1e566828670321f297e2..bf6cdc08367fc26716e7904162a21e63fecab3ed 100644 +index dda7151d333144399ba5602e1b651b1f5b8f8f0d..8ffb99aedaa57c1e96ddcc05143776b59c9700a3 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java @@ -33,7 +33,10 @@ public class ClientboundLevelChunkPacketData { } - // Paper end + // Paper end - Handle oversized block entities in chunks - public ClientboundLevelChunkPacketData(LevelChunk chunk) { + // Paper start - Anti-Xray - Add chunk packet info @@ -1046,7 +1046,7 @@ index 0711ad682206e783fd0a1e566828670321f297e2..bf6cdc08367fc26716e7904162a21e63 + extractChunkData(new FriendlyByteBuf(this.getWriteBuffer()), chunk, chunkPacketInfo); + // Paper end this.blockEntitiesData = Lists.newArrayList(); - int totalTileEntities = 0; // Paper + int totalTileEntities = 0; // Paper - Handle oversized block entities in chunks @@ -103,9 +113,15 @@ public class ClientboundLevelChunkPacketData { return byteBuf; @@ -1067,7 +1067,7 @@ index 0711ad682206e783fd0a1e566828670321f297e2..bf6cdc08367fc26716e7904162a21e63 } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java -index be89e5b8c1ea7f85aef267a15986affa5fa1fd4b..43472855136f26b282d94fd241853d862a19ae17 100644 +index 90ec22d35edb2874417bbea590e0d3c37ad93d64..fc230d835f9aa526a4b179d36d921f0fec348aa8 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java @@ -13,13 +13,30 @@ public class ClientboundLevelChunkWithLightPacket implements Packet Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ffdd5b7417bb748ee5e8ad4d126bf3489c5d32ed..538ba950d194ec823443d1bdaf38a32eddf85df7 100644 +index 85b0c15e8600b2b62db24c22dfab4680b08ca492..e0aed65461c75b28799a87a0ef266707ce63ca17 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -194,7 +194,7 @@ public abstract class PlayerList { @@ -76,7 +76,7 @@ index ffdd5b7417bb748ee5e8ad4d126bf3489c5d32ed..538ba950d194ec823443d1bdaf38a32e worldserver1 = worldserver; } @@ -226,6 +254,10 @@ public abstract class PlayerList { - // Paper start + // Paper start - Entity#getEntitySpawnReason if (nbttagcompound == null) { player.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; // set Player SpawnReason to DEFAULT on first login + // Paper start - reset to main world spawn if first spawn or invalid world @@ -85,9 +85,9 @@ index ffdd5b7417bb748ee5e8ad4d126bf3489c5d32ed..538ba950d194ec823443d1bdaf38a32e + // Paper end - reset to main world spawn if first spawn or invalid world player.fudgeSpawnLocation(worldserver1); // Paper - Don't move existing players to world spawn } - // Paper end + // Paper end - Entity#getEntitySpawnReason diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 04635faeb265852df7ec3ea9b04c8ae24c2fcd58..b2dc3729a8312179d219bd93a755729c86f4dece 100644 +index 1e9819ea185b98a73992bde8c40150d4747ed436..2374500ba0518415b7c680bc2ac05222761493ba 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2337,27 +2337,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0424-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0424-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch index 038713778fd1..a754802b35c4 100644 --- a/patches/server/0424-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch +++ b/patches/server/0424-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Don't check chunk for portal on world gen entity add diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2fa60d96da53ca954dc1421745fafaeb2e806ed0..05fe4828af59e3cd894c9979ecb08ad0e1c6b2d3 100644 +index d4bf6c909939c23586acaa7338141aac880217b0..87b010d5b0ce405e64092638108e4d64ad15339b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3510,7 +3510,7 @@ public abstract class LivingEntity extends Entity implements Attackable { Entity entity = this.getVehicle(); - super.stopRiding(suppressCancellation); // Paper - suppress + super.stopRiding(suppressCancellation); // Paper - Force entity dismount during teleportation - if (entity != null && entity != this.getVehicle() && !this.level().isClientSide) { + if (entity != null && entity != this.getVehicle() && !this.level().isClientSide && entity.valid) { // Paper - don't process on world gen this.dismountVehicle(entity); diff --git a/patches/server/0427-Fix-SPIGOT-5989.patch b/patches/server/0427-Fix-SPIGOT-5989.patch index e381b319b8b3..49d252ccf263 100644 --- a/patches/server/0427-Fix-SPIGOT-5989.patch +++ b/patches/server/0427-Fix-SPIGOT-5989.patch @@ -10,15 +10,15 @@ This fixes that by checking if the modified spawn location is still at a respawn anchor. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 43bdada020a5a28cbe9eb18ec24529be633a49f3..a50c8728f6ece2ab1f08cacb64cf98790b8a6871 100644 +index 3751ed19b63c3ddf76aa0f28454b6d4976d0d6b4..43188d6720a20f0809b4eabe9be49a8e88d1f9bb 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -806,6 +806,7 @@ public abstract class PlayerList { - // Paper start + // Paper start - Add PlayerPostRespawnEvent boolean isBedSpawn = false; boolean isRespawn = false; + boolean isLocAltered = false; // Paper - Fix SPIGOT-5989 - // Paper end + // Paper end - Add PlayerPostRespawnEvent // CraftBukkit start - fire PlayerRespawnEvent @@ -816,7 +817,7 @@ public abstract class PlayerList { @@ -42,7 +42,7 @@ index 43bdada020a5a28cbe9eb18ec24529be633a49f3..a50c8728f6ece2ab1f08cacb64cf9879 + } + // Paper end - Fix SPIGOT-5989 if (!flag) entityplayer.reset(); // SPIGOT-4785 - isRespawn = true; // Paper + isRespawn = true; // Paper - Add PlayerPostRespawnEvent } else { @@ -899,8 +905,14 @@ public abstract class PlayerList { } diff --git a/patches/server/0501-Cache-burn-durations.patch b/patches/server/0501-Cache-burn-durations.patch index ab7b04c1342b..32d702d1242e 100644 --- a/patches/server/0501-Cache-burn-durations.patch +++ b/patches/server/0501-Cache-burn-durations.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Cache burn durations diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 939a192dd66d5fb8da5beada7c22eeca5a7589cd..5c65be04ac88f1308eae6a8cde36d5f7e8aad879 100644 +index 9801b777bc6ab7de91d82b29a142459292ee8605..8f7029e602300f68b3c8411caa2d9e0b1e8be62e 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -134,7 +134,13 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit - this.recipeType = recipeType; // Paper + this.recipeType = recipeType; // Paper - cook speed multiplier API } + private static Map cachedBurnDurations = null; // Paper - cache burn durations diff --git a/patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch index 5f6a82365421..84b2615566e5 100644 --- a/patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch +++ b/patches/server/0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expand PlayerRespawnEvent, fix passed parameter issues Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d5e002dd0d17f3c5087ace3440d5bf348cd40d5a..ba02b3004de6efe2d1f69cda0ba759c9f0192767 100644 +index 67584166891bf3e6a9b446d62d340bab265391ff..30a2b5f0d81552b1a78743516a7506f0a24bdc5e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2639,7 +2639,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -19,7 +19,7 @@ index d5e002dd0d17f3c5087ace3440d5bf348cd40d5a..ba02b3004de6efe2d1f69cda0ba759c9 } else { if (this.player.getHealth() > 0.0F) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index abfa9d1a12caca37b4af203887689bd9c43a7d0f..a0f1d9ca16551adef2cacb16576b91810eefa292 100644 +index 6d9fcedd75f998c80734e03b88d0fc0214b762ec..90a5bbe75ab164abc97e882cc33a081b4a785c9c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -781,6 +781,12 @@ public abstract class PlayerList { @@ -37,12 +37,12 @@ index abfa9d1a12caca37b4af203887689bd9c43a7d0f..a0f1d9ca16551adef2cacb16576b9181 this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot @@ -822,6 +828,7 @@ public abstract class PlayerList { - // Paper start + // Paper start - Add PlayerPostRespawnEvent boolean isBedSpawn = false; + boolean isAnchorSpawn = false; // Paper - Fix PlayerRespawnEvent boolean isRespawn = false; boolean isLocAltered = false; // Paper - Fix SPIGOT-5989 - // Paper end + // Paper end - Add PlayerPostRespawnEvent @@ -842,6 +849,7 @@ public abstract class PlayerList { if (optional.isPresent()) { BlockState iblockdata = worldserver1.getBlockState(blockposition); diff --git a/patches/server/0574-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0574-Send-empty-commands-if-tab-completion-is-disabled.patch index 8335cf272899..30839f96f443 100644 --- a/patches/server/0574-Send-empty-commands-if-tab-completion-is-disabled.patch +++ b/patches/server/0574-Send-empty-commands-if-tab-completion-is-disabled.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Send empty commands if tab completion is disabled diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 2de557a5ed91e2036a7f558cfca8b174cd534959..565685d0f41311bc2281d11ee9d751bf4d4c93a3 100644 +index f844f7ae935b55d254c422b702a8ca2a81119baa..7802e72152628d1e853e5494ec1061fe01fefa5f 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -456,7 +456,12 @@ public class Commands { @@ -21,4 +21,4 @@ index 2de557a5ed91e2036a7f558cfca8b174cd534959..565685d0f41311bc2281d11ee9d751bf + // Paper end - Send empty commands if tab completion is disabled // CraftBukkit start // Register Vanilla commands into builtRoot as before - // Paper start - Async command map building + // Paper start - Perf: Async command map building diff --git a/patches/server/0595-Add-PlayerKickEvent-causes.patch b/patches/server/0595-Add-PlayerKickEvent-causes.patch index 027f404657f3..1b840d718e08 100644 --- a/patches/server/0595-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0595-Add-PlayerKickEvent-causes.patch @@ -48,7 +48,7 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..ba12919c3f9aec34a9e64993b143ae92 public boolean shouldDisconnect() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 448bc8800860f0632a70998375efa5133024c06b..2d330b40cc604c8883a33e56322e419eff9e39cb 100644 +index 5e279fb7e3b902905532cb10dce4df336ee52e67..b72dc50201601203eabfc7866e5843c496b54de7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2236,7 +2236,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop MinecraftServer.currentTick) { - this.disconnect("Book edited too quickly!"); @@ -437,7 +437,7 @@ index 05a94d320e4591d77a99c09975aab4dc30ff9a1e..29f1a054c31d00fe7ba4c5d171c47efa } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 62a005826cd4a26927cde13cfb3551c1f187bfbe..3ae5efb964f3c791b58d4d336881cf189169f7f3 100644 +index 777b2566767104103e3c6313a602e45730e5c4d9..a7f3963d2e1a9a6d3a5060be6c6694fc518b4f0f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -684,7 +684,7 @@ public abstract class PlayerList { diff --git a/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch index 7b0fa29d88cf..1b9070b0da26 100644 --- a/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 29f1a054c31d00fe7ba4c5d171c47efa9275f32d..60be2ae945514aaec70a2350df2044df53ed3224 100644 +index 69f3278b55d6e3778aa9bad6be10870964db5bf9..1502961f7be651e608759f13be8e143c0df12ab5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1096,7 +1096,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - // Paper end + // Paper end - Book size limits // CraftBukkit start if (this.lastBookTick + 20 > MinecraftServer.currentTick) { - this.disconnect("Book edited too quickly!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause diff --git a/patches/server/0638-Add-BlockBreakBlockEvent.patch b/patches/server/0638-Add-BlockBreakBlockEvent.patch index cfa7680e1689..958399ea03d1 100644 --- a/patches/server/0638-Add-BlockBreakBlockEvent.patch +++ b/patches/server/0638-Add-BlockBreakBlockEvent.patch @@ -33,7 +33,7 @@ index 5e5199b50847958f7abc6d8e42cfb6806df8421f..af62781cc96354c87aa63d4f03f9e25b public static void dropResources(BlockState state, Level world, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity entity, ItemStack tool) { if (world instanceof ServerLevel) { diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -index 565da027ca7c395f9b965505cbe9e85e62367834..de9102f943fe90122b2fe7f94228b4248244374a 100644 +index c34b34a6be594c502d1cb59703ace8ad8dd96915..4342bc4535ea812fef3fab56917e5de15947c42d 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java @@ -415,7 +415,7 @@ public class PistonBaseBlock extends DirectionalBlock { @@ -46,10 +46,10 @@ index 565da027ca7c395f9b965505cbe9e85e62367834..de9102f943fe90122b2fe7f94228b424 world.gameEvent(GameEvent.BLOCK_DESTROY, blockposition3, GameEvent.Context.of(iblockdata1)); if (!iblockdata1.is(BlockTags.FIRE)) { diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -index f7527ed1d47901e52df4e3fffbdcd838782c90db..482616c7cbe12f7a23ec99378e24a87dedc2a8ae 100644 +index 0aeb9faa1ce22359361741a591aa3d465d955970..a98ab20814cc29a25e9d29adfbb7e70d46768df2 100644 --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -@@ -296,7 +296,7 @@ public abstract class FlowingFluid extends Fluid { +@@ -295,7 +295,7 @@ public abstract class FlowingFluid extends Fluid { ((LiquidBlockContainer) state.getBlock()).placeLiquid(world, pos, state, fluidState); } else { if (!state.isAir()) { @@ -58,7 +58,7 @@ index f7527ed1d47901e52df4e3fffbdcd838782c90db..482616c7cbe12f7a23ec99378e24a87d } world.setBlock(pos, fluidState.createLegacyBlock(), 3); -@@ -304,6 +304,7 @@ public abstract class FlowingFluid extends Fluid { +@@ -303,6 +303,7 @@ public abstract class FlowingFluid extends Fluid { } diff --git a/patches/server/0706-Collision-optimisations.patch b/patches/server/0706-Collision-optimisations.patch index b683eaa08087..ff810184975e 100644 --- a/patches/server/0706-Collision-optimisations.patch +++ b/patches/server/0706-Collision-optimisations.patch @@ -2179,7 +2179,7 @@ index 073c717bb676b9e99aada00c349fb7eee91df1e7..2a9fc1f1dfc0c5894c1e74dad5a79ae9 private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) { this.data3d = id; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f35bd06e3ae16922dfde76abda5b6f938f5b50f7..cb18d1a0ad8c06336d4bfe53b5231fdb9164ae60 100644 +index 37132a52849c7618fe863b6f5349ee6154cf42ad..7cf66e10efede0cb55239e1a1b3862d85a917f3e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -469,7 +469,7 @@ public class ServerPlayer extends Player { @@ -2201,7 +2201,7 @@ index f35bd06e3ae16922dfde76abda5b6f938f5b50f7..cb18d1a0ad8c06336d4bfe53b5231fdb } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 91fa10899f7f10dc056b4668c1f9758a8de09b9b..81303bc614b47fdd6db90ad1fbdaf9fed65b6cf3 100644 +index 1f14b904807d4b593b608c8dc7a97bd8c320eceb..0da976438be3de7b82e8b1e3ce06d01c00dc33f0 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -909,7 +909,7 @@ public abstract class PlayerList { @@ -2214,7 +2214,7 @@ index 91fa10899f7f10dc056b4668c1f9758a8de09b9b..81303bc614b47fdd6db90ad1fbdaf9fe entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9b9c09f57905d52721e9ab911dbb4df67d235ea7..e19204ff0d29d522ae653805429dc76f628f2ebc 100644 +index 71ea121661874c11147bea0f9a4a147583f312fc..b6146726e767fa0401da3d7f5bbbf95b7c7a17d9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1217,9 +1217,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2440,7 +2440,7 @@ index 9b9c09f57905d52721e9ab911dbb4df67d235ea7..e19204ff0d29d522ae653805429dc76f } diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index d46b3b346540cc78cb93f3ce8bc8adc89b3d9b3d..ab708b256183fc54fe8e13f341d8a38acf611739 100644 +index e29d1801f15c4c5680b683783e97a7aae3da753e..1e42372f038757b48990643aa2f118be415e0463 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -353,7 +353,7 @@ public class ArmorStand extends LivingEntity { @@ -2600,7 +2600,7 @@ index a25497eec004add7408a63b1a0f09e3fa443b324..9f892de55ab03367daed4c30cc44c9dd // Paper start diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index fb86d06e8e420410e3cf9d918abd3369fa2f033e..0c2654986b9a5c7f210ba387851997ecec1ebb00 100644 +index 2d2ef8455ea650baa1db74135c9321d97d10d12e..b023626467fc1f507d979653098bf30b18bd47c3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -300,6 +300,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -3018,7 +3018,7 @@ index af62781cc96354c87aa63d4f03f9e25b81959081..6c4fd56956982eee743b4dea4e8b9258 public boolean propagatesSkylightDown(BlockState state, BlockGetter world, BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index fb46c66d916931fd80a99c59030ca05e12d29953..d91a82428a435a65bc55ad466ccebe91e0d905e0 100644 +index 10e8532ed21895f98808c86fa2ae5a2e41d3965f..5b5a472e446e21f46e5f92c3e1fd79498a1aa4a6 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -882,6 +882,10 @@ public abstract class BlockBehaviour implements FeatureElement { @@ -3126,7 +3126,7 @@ index fb46c66d916931fd80a99c59030ca05e12d29953..d91a82428a435a65bc55ad466ccebe91 public Block getBlock() { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index 12edaf88cca54540c617239ac31b2263dfa0ecd7..b39fea80fcb83873b7e7085eaaf935e712f0ede7 100644 +index 4a781375a4a18011259edcb4e24550748a05dfa0..6d340a9b64ae900dfe84eeeaf7a39f7e7a139198 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -26,6 +26,22 @@ public class LevelChunkSection { @@ -3185,10 +3185,10 @@ index 12edaf88cca54540c617239ac31b2263dfa0ecd7..b39fea80fcb83873b7e7085eaaf935e7 // Paper end } diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -index 482616c7cbe12f7a23ec99378e24a87dedc2a8ae..441a6fc9d62e90bbd31569160c4f248c7d0b32de 100644 +index a98ab20814cc29a25e9d29adfbb7e70d46768df2..6d8ff6c06af5545634f255ed17dc1e489ece2548 100644 --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -@@ -241,6 +241,17 @@ public abstract class FlowingFluid extends Fluid { +@@ -240,6 +240,17 @@ public abstract class FlowingFluid extends Fluid { } private boolean canPassThroughWall(Direction face, BlockGetter world, BlockPos pos, BlockState state, BlockPos fromPos, BlockState fromState) { diff --git a/patches/server/0716-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0716-Fix-entity-type-tags-suggestions-in-selectors.patch index 13e42ccab950..e9f497606186 100644 --- a/patches/server/0716-Fix-entity-type-tags-suggestions-in-selectors.patch +++ b/patches/server/0716-Fix-entity-type-tags-suggestions-in-selectors.patch @@ -10,7 +10,7 @@ when if this was fixed on the client, that wouldn't be needed. Mojira Issue: https://bugs.mojang.com/browse/MC-235045 diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 79732086bc4cdbca8364d78eb60d68c758055966..e65d7980b7ebed60786bc31e2f8156fda3b59556 100644 +index de7d11baf17d1b6c3d5fb3402d38052f3a28c246..21c9b903e26f93b8d4e97f3e0d98e3b2e45857f9 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -447,4 +447,20 @@ public class CommandSourceStack implements ExecutionCommandSource commandnode2 = (CommandNode) iterator.next(); - // Paper start + // Paper start - Brigadier API @@ -558,6 +559,12 @@ public class Commands { if (requiredargumentbuilder.getSuggestionsProvider() != null) { diff --git a/patches/server/0791-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0791-Throw-exception-on-world-create-while-being-ticked.patch index e005ee53a4d7..8491aaff8b5a 100644 --- a/patches/server/0791-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0791-Throw-exception-on-world-create-while-being-ticked.patch @@ -7,7 +7,7 @@ There are no plans to support creating worlds while worlds are being ticked themselvess. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8f338bc3f6418eae5c25078d8938d449b1d688c6..9a1c27bc7bee1f915675b82717dd82f6dd0f3ee6 100644 +index ffd0e4326c0c4ddd18b0f09f9f3037b1eefd546f..c3ce869eb8c53ba01f41840d050502ce94771253 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -310,6 +310,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(meta.destroyableKeys); } - // Paper end + // Paper end - Add API for CanPlaceOn and CanDestroy NBT values - this.unhandledTags.putAll(meta.unhandledTags); - this.persistentDataContainer.putAll(meta.persistentDataContainer.getRaw()); + // Paper start - Deep clone unhandled nbt tags From d9df6bc5e67ff9b605a84dcf9991bcbb295cc9a0 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 21 Jan 2024 17:39:05 +0100 Subject: [PATCH 34/45] [ci skip] Add more patch identifying comments, cleanup --- ...3-Vanished-players-don-t-have-rights.patch | 18 ++-- ...Allow-disabling-armor-stand-ticking.patch} | 24 +++--- ...patch => 0227-Expand-ArmorStand-API.patch} | 2 +- patches/server/0228-AnvilDamageEvent.patch | 6 +- patches/server/0229-Add-TNTPrimeEvent.patch | 24 +++--- ...nd-make-tab-spam-limits-configurable.patch | 6 +- ...ies-option-to-debug-dupe-uuid-issues.patch | 82 ++++--------------- ...dd-Early-Warning-Feature-to-WatchDog.patch | 8 +- ...35-Use-ConcurrentHashMap-in-JsonList.patch | 58 ++++++------- ...36-Use-a-Queue-for-Queueing-Commands.patch | 10 +-- ...ock-entities-from-a-chunk-without-s.patch} | 2 +- ...ptimize-BlockPosition-helper-methods.patch | 31 ++++--- .../server/0240-Slime-Pathfinder-Events.patch | 30 +++---- ...le-speed-for-water-flowing-over-lava.patch | 10 +-- ...242-Optimize-CraftBlockData-Creation.patch | 6 +- .../server/0243-Optimize-MappedRegistry.patch | 12 +-- .../0244-Add-PhantomPreSpawnEvent.patch | 8 +- .../server/0245-Add-More-Creeper-API.patch | 6 +- ...entity-dismount-during-teleportation.patch | 10 +-- patches/server/0286-BlockDestroyEvent.patch | 4 +- .../0293-Entity-getEntitySpawnReason.patch | 18 ++-- ...Optimize-Captured-BlockEntity-Lookup.patch | 4 +- ...le-Keep-Spawn-Loaded-range-per-world.patch | 6 +- .../0320-Duplicate-UUID-Resolve-Option.patch | 33 +------- ...ptimise-EntityGetter-getPlayerByUUID.patch | 4 +- .../0328-Entity-Activation-Range-2.0.patch | 24 +++--- .../0331-Tracking-Range-Improvements.patch | 4 +- ...x-items-vanishing-through-end-portal.patch | 4 +- patches/server/0334-Anti-Xray.patch | 18 ++-- .../0338-Add-debug-for-sync-chunk-loads.patch | 4 +- ...n-to-nerf-pigmen-from-nether-portals.patch | 8 +- ...-PlayerChunkMap-adds-crashing-server.patch | 10 +-- .../0362-Improved-Watchdog-Support.patch | 14 ++-- ...nEvent-when-Player-is-actually-ready.patch | 8 +- ...pawn-point-if-spawn-in-unloaded-worl.patch | 6 +- ...item-duplication-and-teleport-issues.patch | 14 ++-- ...ktraces-in-log-messages-crash-report.patch | 32 +------- ...and-End-Portal-Frames-from-being-des.patch | 6 +- ...tance-map-to-optimise-entity-tracker.patch | 14 ++-- ...-position-and-AABB-are-never-invalid.patch | 8 +- ...-incremental-chunk-and-player-saving.patch | 12 +-- ...geEvent-not-firing-for-all-use-cases.patch | 4 +- ...ortation-and-cancel-velocity-if-tele.patch | 8 +- ...p-capture-to-capture-all-items-added.patch | 6 +- ...y-Counter-to-allow-plugins-to-use-va.patch | 4 +- patches/server/0457-Entity-isTicking.patch | 4 +- ...ace-order-when-capturing-blockstates.patch | 4 +- ...-should-not-bypass-cramming-gamerule.patch | 6 +- .../server/0488-Limit-recipe-packets.patch | 4 +- .../0497-MC-4-Fix-item-position-desync.patch | 4 +- patches/server/0517-Remove-stale-POIs.patch | 4 +- ...n-for-requiring-a-player-participant.patch | 8 +- patches/server/0534-Add-EntityMoveEvent.patch | 14 ++-- ...disable-pathfinding-updates-on-block.patch | 6 +- ...n-in-sunlight-API-for-Phantoms-and-S.patch | 7 +- ...x-and-optimise-world-force-upgrading.patch | 12 +-- ...cause-to-Weather-ThunderChangeEvents.patch | 10 +-- .../0595-Add-PlayerKickEvent-causes.patch | 6 +- .../0603-Fix-dangerous-end-portal-logic.patch | 6 +- ...etChunkIfLoadedImmediately-in-places.patch | 10 +-- ...ptimize-indirect-passenger-iteration.patch | 6 +- .../0642-Add-back-EntityPortalExitEvent.patch | 6 +- ...o-find-targets-for-lightning-strikes.patch | 8 +- ...53-Add-Raw-Byte-Entity-Serialization.patch | 6 +- ...-logic-for-inventories-on-chunk-unlo.patch | 8 +- ...d-getChunkAt-has-inlined-logic-for-l.patch | 4 +- .../0669-Execute-chunk-tasks-mid-tick.patch | 16 ++-- ...primise-map-impl-for-tracked-players.patch | 4 +- .../0672-Optimise-random-block-ticking.patch | 22 ++--- ...l-more-information-in-watchdog-dumps.patch | 18 ++-- ...entory-not-closing-on-entity-removal.patch | 4 +- ...date-head-rotation-in-missing-places.patch | 6 +- ...-t-attempt-to-teleport-dead-entities.patch | 4 +- .../server/0706-Collision-optimisations.patch | 26 +++--- ...ward-CraftEntity-in-teleport-command.patch | 6 +- .../server/0734-Freeze-Tick-Lock-API.patch | 12 +-- ...assenger-world-matches-ridden-entity.patch | 4 +- patches/server/0782-Don-t-tick-markers.patch | 4 +- ...entity-loading-causing-async-lookups.patch | 4 +- ...nate-Current-redstone-implementation.patch | 16 ++-- ...mpty-items-from-being-added-to-world.patch | 4 +- ...us-missing-EntityDropItemEvent-calls.patch | 4 +- .../0807-Add-EntityPortalReadyEvent.patch | 6 +- ...-on-plugins-accessing-faraway-chunks.patch | 6 +- .../0831-Fix-a-bunch-of-vanilla-bugs.patch | 16 ++-- ...ry-onTrackingStart-during-navigation.patch | 6 +- ...tEvent-cancellation-cant-fully-preve.patch | 6 +- ...global-player-list-where-appropriate.patch | 8 +- .../0863-Player-Entity-Tracking-Events.patch | 8 +- .../server/0873-Improve-PortalEvents.patch | 4 +- ...sion-moving-velocity-to-VehicleBlock.patch | 4 +- ...when-a-captured-block-state-is-outda.patch | 4 +- ...nts-being-fired-from-unloaded-chunks.patch | 4 +- ...esh-ProjectileSource-for-projectiles.patch | 4 +- .../server/0918-Fix-block-place-logic.patch | 8 +- ...d-chunks-for-supporting-block-checks.patch | 4 +- ...Folia-scheduler-and-owned-region-API.patch | 14 ++-- ...0950-Only-capture-actual-tree-growth.patch | 6 +- ...ntity-tracking-range-by-Y-coordinate.patch | 4 +- patches/server/0970-Expand-Pose-API.patch | 8 +- ...76-Expose-hand-in-BlockCanBuildEvent.patch | 4 +- .../server/0996-Lag-compensation-ticks.patch | 10 +-- ...000-Optimise-nearby-player-retrieval.patch | 6 +- ...ix-missing-map-initialize-event-call.patch | 4 +- ...k-if-we-can-see-non-visible-entities.patch | 4 +- ...n-t-fire-sync-events-during-worldgen.patch | 14 ++-- ...estore-vanilla-entity-drops-behavior.patch | 10 +-- ...e-experience-dropping-on-block-break.patch | 6 +- ...llocation-of-Vec3D-by-entity-tracker.patch | 4 +- .../1044-Write-SavedData-IO-async.patch | 10 +-- 110 files changed, 502 insertions(+), 617 deletions(-) rename patches/server/{0224-Allow-disabling-armour-stand-ticking.patch => 0224-Allow-disabling-armor-stand-ticking.patch} (87%) rename patches/server/{0227-Implement-Expanded-ArmorStand-API.patch => 0227-Expand-ArmorStand-API.patch} (99%) rename patches/server/{0237-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch => 0237-Ability-to-get-block-entities-from-a-chunk-without-s.patch} (96%) diff --git a/patches/server/0223-Vanished-players-don-t-have-rights.patch b/patches/server/0223-Vanished-players-don-t-have-rights.patch index 5ff24777710e..144ab07769f6 100644 --- a/patches/server/0223-Vanished-players-don-t-have-rights.patch +++ b/patches/server/0223-Vanished-players-don-t-have-rights.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Vanished players don't have rights diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index e8620ad6be2dda7fe288f884c4ae88a924be4a62..01a2c6c3ee4e1500b6ee9986943f84dbe8663860 100644 +index e8620ad6be2dda7fe288f884c4ae88a924be4a62..75f08dcce4ac923678bf8c1f25ca02b0efbab7c2 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -237,6 +237,15 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -20,12 +20,12 @@ index e8620ad6be2dda7fe288f884c4ae88a924be4a62..01a2c6c3ee4e1500b6ee9986943f84db + return false; + } + } -+ // Paper end ++ // Paper end - Cancel hit for vanished players return entity1 == null || this.leftOwner || !entity1.isPassengerOfSameVehicle(entity); } } diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index a6638e626600e4304a973497a39e3fac52203b16..e68b7a1b03783e4f9de24c5ae8773fc359bd2d37 100644 +index a6638e626600e4304a973497a39e3fac52203b16..c19069f65a9ecbc9000ea4333417a2df4ace1007 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java @@ -197,7 +197,8 @@ public class BlockItem extends Item { @@ -33,20 +33,20 @@ index a6638e626600e4304a973497a39e3fac52203b16..e68b7a1b03783e4f9de24c5ae8773fc3 CollisionContext voxelshapecollision = entityhuman == null ? CollisionContext.empty() : CollisionContext.of(entityhuman); // CraftBukkit start - store default return - boolean defaultReturn = (!this.mustSurvive() || state.canSurvive(context.getLevel(), context.getClickedPos())) && context.getLevel().isUnobstructed(state, context.getClickedPos(), voxelshapecollision); -+ Level world = context.getLevel(); // Paper -+ boolean defaultReturn = (!this.mustSurvive() || state.canSurvive(context.getLevel(), context.getClickedPos())) && world.checkEntityCollision(state, entityhuman, voxelshapecollision, context.getClickedPos(), true); // Paper ++ Level world = context.getLevel(); // Paper - Cancel hit for vanished players ++ boolean defaultReturn = (!this.mustSurvive() || state.canSurvive(context.getLevel(), context.getClickedPos())) && world.checkEntityCollision(state, entityhuman, voxelshapecollision, context.getClickedPos(), true); // Paper - Cancel hit for vanished players org.bukkit.entity.Player player = (context.getPlayer() instanceof ServerPlayer) ? (org.bukkit.entity.Player) context.getPlayer().getBukkitEntity() : null; BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(context.getLevel(), context.getClickedPos()), player, CraftBlockData.fromData(state), defaultReturn); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4751f83571688cf1e0aa669accc813942d85c60c..4fb29ca40e1caba3f205afc13fb4d7a95fd81ce6 100644 +index 4fead0be6e8b754d0bafa1a988207fb8829b9180..30c69940c331f12dfe732052fcd917ea9231362f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -276,6 +276,45 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); } -+ // Paper start ++ // Paper start - Cancel hit for vanished players + // ret true if no collision + public final boolean checkEntityCollision(BlockState data, Entity source, net.minecraft.world.phys.shapes.CollisionContext voxelshapedcollision, + BlockPos position, boolean checkCanSee) { @@ -84,12 +84,12 @@ index 4751f83571688cf1e0aa669accc813942d85c60c..4fb29ca40e1caba3f205afc13fb4d7a9 + + return true; + } -+ // Paper end ++ // Paper end - Cancel hit for vanished players @Override public boolean isClientSide() { return this.isClientSide; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 49b6b109eec1220b8d669adc435baf5636cba9cd..c5736eb070209d0ecad1007e4c4c633c4615be83 100644 +index 0b847125f67e19e6f0bdc6d0f2fcc8c5ad720fe9..712c92120d2d4b8188b47141e6f0252ad57e66d8 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1368,6 +1368,14 @@ public class CraftEventFactory { diff --git a/patches/server/0224-Allow-disabling-armour-stand-ticking.patch b/patches/server/0224-Allow-disabling-armor-stand-ticking.patch similarity index 87% rename from patches/server/0224-Allow-disabling-armour-stand-ticking.patch rename to patches/server/0224-Allow-disabling-armor-stand-ticking.patch index a8bcc9096219..994e7fb60e30 100644 --- a/patches/server/0224-Allow-disabling-armour-stand-ticking.patch +++ b/patches/server/0224-Allow-disabling-armor-stand-ticking.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: kashike Date: Wed, 15 Aug 2018 01:26:09 -0700 -Subject: [PATCH] Allow disabling armour stand ticking +Subject: [PATCH] Allow disabling armor stand ticking diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index aff1b2195d2f187739394886d4c0bdbf0cb306b4..948ba97e318506dad96e59121297b5bf8340d2e6 100644 +index aff1b2195d2f187739394886d4c0bdbf0cb306b4..5ed648502268e9c4564b5a4984b68b499aeffeb9 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -93,9 +93,16 @@ public class ArmorStand extends LivingEntity { @@ -17,11 +17,11 @@ index aff1b2195d2f187739394886d4c0bdbf0cb306b4..948ba97e318506dad96e59121297b5bf + public boolean canTickSetByAPI = false; + private boolean noTickPoseDirty = false; + private boolean noTickEquipmentDirty = false; -+ // Paper end ++ // Paper end - Allow ArmorStands not to tick public ArmorStand(EntityType type, Level world) { super(type, world); -+ if (world != null) this.canTick = world.paperConfig().entities.armorStands.tick; // Paper - armour stand ticking ++ if (world != null) this.canTick = world.paperConfig().entities.armorStands.tick; // Paper - Allow ArmorStands not to tick this.handItems = NonNullList.withSize(2, ItemStack.EMPTY); this.armorItems = NonNullList.withSize(4, ItemStack.EMPTY); this.headPose = ArmorStand.DEFAULT_HEAD_POSE; @@ -29,7 +29,7 @@ index aff1b2195d2f187739394886d4c0bdbf0cb306b4..948ba97e318506dad96e59121297b5bf this.onEquipItem(enumitemslot, (ItemStack) this.armorItems.set(enumitemslot.getIndex(), itemstack), itemstack, silent); // CraftBukkit } -+ this.noTickEquipmentDirty = true; // Paper - Allow equipment to be updated even when tick disabled ++ this.noTickEquipmentDirty = true; // Paper - Allow ArmorStands not to tick; Still update equipment } @Override @@ -37,7 +37,7 @@ index aff1b2195d2f187739394886d4c0bdbf0cb306b4..948ba97e318506dad96e59121297b5bf } nbt.put("Pose", this.writePose()); -+ if (this.canTickSetByAPI) nbt.putBoolean("Paper.CanTickOverride", this.canTick); // Paper - persist no tick setting ++ if (this.canTickSetByAPI) nbt.putBoolean("Paper.CanTickOverride", this.canTick); // Paper - Allow ArmorStands not to tick } @Override @@ -45,12 +45,12 @@ index aff1b2195d2f187739394886d4c0bdbf0cb306b4..948ba97e318506dad96e59121297b5bf this.setNoBasePlate(nbt.getBoolean("NoBasePlate")); this.setMarker(nbt.getBoolean("Marker")); this.noPhysics = !this.hasPhysics(); -+ // Paper start - persist no tick ++ // Paper start - Allow ArmorStands not to tick + if (nbt.contains("Paper.CanTickOverride")) { + this.canTick = nbt.getBoolean("Paper.CanTickOverride"); + this.canTickSetByAPI = true; + } -+ // Paper end ++ // Paper end - Allow ArmorStands not to tick CompoundTag nbttagcompound1 = nbt.getCompound("Pose"); this.readPose(nbttagcompound1); @@ -58,7 +58,7 @@ index aff1b2195d2f187739394886d4c0bdbf0cb306b4..948ba97e318506dad96e59121297b5bf @Override public void tick() { -+ // Paper start ++ // Paper start - Allow ArmorStands not to tick + if (!this.canTick) { + if (this.noTickPoseDirty) { + this.noTickPoseDirty = false; @@ -72,15 +72,15 @@ index aff1b2195d2f187739394886d4c0bdbf0cb306b4..948ba97e318506dad96e59121297b5bf + + return; + } -+ // Paper end ++ // Paper end - Allow ArmorStands not to tick + super.tick(); -+ // Paper start - Split into separate method ++ // Paper start - Allow ArmorStands not to tick + updatePose(); + } + + public void updatePose() { -+ // Paper end ++ // Paper end - Allow ArmorStands not to tick Rotations vector3f = (Rotations) this.entityData.get(ArmorStand.DATA_HEAD_POSE); if (!this.headPose.equals(vector3f)) { diff --git a/patches/server/0227-Implement-Expanded-ArmorStand-API.patch b/patches/server/0227-Expand-ArmorStand-API.patch similarity index 99% rename from patches/server/0227-Implement-Expanded-ArmorStand-API.patch rename to patches/server/0227-Expand-ArmorStand-API.patch index 54d871b2b0f7..1112902d6652 100644 --- a/patches/server/0227-Implement-Expanded-ArmorStand-API.patch +++ b/patches/server/0227-Expand-ArmorStand-API.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: willies952002 Date: Thu, 26 Jul 2018 02:25:46 -0400 -Subject: [PATCH] Implement Expanded ArmorStand API +Subject: [PATCH] Expand ArmorStand API Adds the following: - Add proper methods for getting and setting items in both hands. Deprecates old methods diff --git a/patches/server/0228-AnvilDamageEvent.patch b/patches/server/0228-AnvilDamageEvent.patch index 267d158dc292..fc3492a898fc 100644 --- a/patches/server/0228-AnvilDamageEvent.patch +++ b/patches/server/0228-AnvilDamageEvent.patch @@ -5,14 +5,14 @@ Subject: [PATCH] AnvilDamageEvent diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index d829173d2fc9fc0e12c24d736f1ed44417b81612..e97953e3dad164862d7e2f86bd86a6eff5b80ae2 100644 +index d829173d2fc9fc0e12c24d736f1ed44417b81612..878d3c3089635a515fa7f54c956159a1bb6ce29b 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java @@ -108,6 +108,16 @@ public class AnvilMenu extends ItemCombinerMenu { if (!player.getAbilities().instabuild && iblockdata.is(BlockTags.ANVIL) && player.getRandom().nextFloat() < 0.12F) { BlockState iblockdata1 = AnvilBlock.damage(iblockdata); -+ // Paper start ++ // Paper start - AnvilDamageEvent + com.destroystokyo.paper.event.block.AnvilDamagedEvent event = new com.destroystokyo.paper.event.block.AnvilDamagedEvent(getBukkitView(), iblockdata1 != null ? org.bukkit.craftbukkit.block.data.CraftBlockData.fromData(iblockdata1) : null); + if (!event.callEvent()) { + return; @@ -21,7 +21,7 @@ index d829173d2fc9fc0e12c24d736f1ed44417b81612..e97953e3dad164862d7e2f86bd86a6ef + } else { + iblockdata1 = ((org.bukkit.craftbukkit.block.data.CraftBlockData) event.getDamageState().getMaterial().createBlockData()).getState().setValue(AnvilBlock.FACING, iblockdata.getValue(AnvilBlock.FACING)); + } -+ // Paper end ++ // Paper end - AnvilDamageEvent if (iblockdata1 == null) { world.removeBlock(blockposition, false); world.levelEvent(1029, blockposition, 0); diff --git a/patches/server/0229-Add-TNTPrimeEvent.patch b/patches/server/0229-Add-TNTPrimeEvent.patch index b97e2a7ecab4..c58d9df2c7a9 100644 --- a/patches/server/0229-Add-TNTPrimeEvent.patch +++ b/patches/server/0229-Add-TNTPrimeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add TNTPrimeEvent diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index d4832067f87491b8273b7957ce3eec1ad3ba9830..c00d4b8e39ef90bb06098bee290203502bd4225b 100644 +index de27517e13ecb15865aaa83257eaffb41c3eecfc..29683f0236163e5630d771d9409be0c23574a467 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -558,6 +558,11 @@ public class EnderDragon extends Mob implements Enemy { @@ -14,14 +14,14 @@ index d4832067f87491b8273b7957ce3eec1ad3ba9830..c00d4b8e39ef90bb06098bee29020350 } + // Paper start - TNTPrimeEvent + org.bukkit.block.Block tntBlock = this.level().getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()); -+ if(!new com.destroystokyo.paper.event.block.TNTPrimeEvent(tntBlock, com.destroystokyo.paper.event.block.TNTPrimeEvent.PrimeReason.EXPLOSION, explosionSource.getIndirectSourceEntity().getBukkitEntity()).callEvent()) ++ if (!new com.destroystokyo.paper.event.block.TNTPrimeEvent(tntBlock, com.destroystokyo.paper.event.block.TNTPrimeEvent.PrimeReason.EXPLOSION, explosionSource.getIndirectSourceEntity().getBukkitEntity()).callEvent()) + continue; -+ // Paper end ++ // Paper end - TNTPrimeEvent nmsBlock.wasExploded(this.level(), blockposition, this.explosionSource); this.level().removeBlock(blockposition, false); diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index 016c8b7762c2b4eacb95a455940db4684b34e03c..80e90bae3c05bbaf978a66629d9c4132c22efd1a 100644 +index 016c8b7762c2b4eacb95a455940db4684b34e03c..c214a8a72c3fa27eaadc458b10a610e0de7937ec 100644 --- a/src/main/java/net/minecraft/world/level/block/FireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java @@ -302,12 +302,19 @@ public class FireBlock extends BaseFireBlock { @@ -29,7 +29,7 @@ index 016c8b7762c2b4eacb95a455940db4684b34e03c..80e90bae3c05bbaf978a66629d9c4132 world.setBlock(blockposition, this.getStateWithAge(world, blockposition, l), 3); } else { - world.removeBlock(blockposition, false); -+ if(iblockdata.getBlock() != Blocks.TNT) world.removeBlock(blockposition, false); // Paper - TNTPrimeEvent - We might be cancelling it below, move the setAir down ++ if(iblockdata.getBlock() != Blocks.TNT) world.removeBlock(blockposition, false); // Paper - TNTPrimeEvent; We might be cancelling it below, move the setAir down } Block block = iblockdata.getBlock(); @@ -41,12 +41,12 @@ index 016c8b7762c2b4eacb95a455940db4684b34e03c..80e90bae3c05bbaf978a66629d9c4132 + return; + } + world.removeBlock(blockposition, false); -+ // Paper end ++ // Paper end - TNTPrimeEvent TntBlock.explode(world, blockposition); } } diff --git a/src/main/java/net/minecraft/world/level/block/TntBlock.java b/src/main/java/net/minecraft/world/level/block/TntBlock.java -index cc20c320cbb3420e5e302a94571bab374c8553c8..443a8a8e2f0791a1455193cb125e1560f5d1edab 100644 +index cc20c320cbb3420e5e302a94571bab374c8553c8..ab53b42eec6eb57b373487e50066967042d6eb40 100644 --- a/src/main/java/net/minecraft/world/level/block/TntBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TntBlock.java @@ -49,6 +49,12 @@ public class TntBlock extends Block { @@ -58,7 +58,7 @@ index cc20c320cbb3420e5e302a94571bab374c8553c8..443a8a8e2f0791a1455193cb125e1560 + if (!new com.destroystokyo.paper.event.block.TNTPrimeEvent(tntBlock, com.destroystokyo.paper.event.block.TNTPrimeEvent.PrimeReason.REDSTONE, null).callEvent()) { + return; + } -+ // Paper end ++ // Paper end - TNTPrimeEvent TntBlock.explode(world, pos); world.removeBlock(pos, false); } @@ -71,7 +71,7 @@ index cc20c320cbb3420e5e302a94571bab374c8553c8..443a8a8e2f0791a1455193cb125e1560 + if (!new com.destroystokyo.paper.event.block.TNTPrimeEvent(tntBlock, com.destroystokyo.paper.event.block.TNTPrimeEvent.PrimeReason.REDSTONE, null).callEvent()) { + return; + } -+ // Paper end ++ // Paper end - TNTPrimeEvent TntBlock.explode(world, pos); world.removeBlock(pos, false); } @@ -85,7 +85,7 @@ index cc20c320cbb3420e5e302a94571bab374c8553c8..443a8a8e2f0791a1455193cb125e1560 + if (!new com.destroystokyo.paper.event.block.TNTPrimeEvent(tntBlock, com.destroystokyo.paper.event.block.TNTPrimeEvent.PrimeReason.EXPLOSION, source).callEvent()) { + return; + } -+ // Paper end ++ // Paper end - TNTPrimeEvent PrimedTnt entitytntprimed = new PrimedTnt(world, (double) pos.getX() + 0.5D, (double) pos.getY(), (double) pos.getZ() + 0.5D, explosion.getIndirectSourceEntity()); int i = entitytntprimed.getFuse(); @@ -98,7 +98,7 @@ index cc20c320cbb3420e5e302a94571bab374c8553c8..443a8a8e2f0791a1455193cb125e1560 + if (!new com.destroystokyo.paper.event.block.TNTPrimeEvent(tntBlock, com.destroystokyo.paper.event.block.TNTPrimeEvent.PrimeReason.ITEM, player.getBukkitEntity()).callEvent()) { + return InteractionResult.FAIL; + } -+ // Paper end ++ // Paper end - TNTPrimeEvent TntBlock.explode(world, pos, player); world.setBlock(pos, Blocks.AIR.defaultBlockState(), 11); Item item = itemstack.getItem(); @@ -111,7 +111,7 @@ index cc20c320cbb3420e5e302a94571bab374c8553c8..443a8a8e2f0791a1455193cb125e1560 + if (!new com.destroystokyo.paper.event.block.TNTPrimeEvent(tntBlock, com.destroystokyo.paper.event.block.TNTPrimeEvent.PrimeReason.PROJECTILE, projectile.getBukkitEntity()).callEvent()) { + return; + } -+ // Paper end ++ // Paper end - TNTPrimeEvent TntBlock.explode(world, blockposition, entity instanceof LivingEntity ? (LivingEntity) entity : null); world.removeBlock(blockposition, false); } diff --git a/patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch index 0f0b64b09ac5..809ea276c8c6 100644 --- a/patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch +++ b/patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch @@ -22,7 +22,7 @@ to take the burden of this into their own hand without having to rely on plugins doing unsafe things. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1e6c704279fe91530a23d17a151d28aa3fb9126e..ea7eb7be6abfcfc3c70eba42cf31cc2030747428 100644 +index e6b4111ba32906d1b3705b8a2cc06a07956e2891..3cb5bd145a4a719943e9fe4bc40ff7420abdd46d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -257,6 +257,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -37,7 +37,7 @@ index 1e6c704279fe91530a23d17a151d28aa3fb9126e..ea7eb7be6abfcfc3c70eba42cf31cc20 this.keepConnectionAlive(); // CraftBukkit start for (int spam; (spam = this.chatSpamTickCount.get()) > 0 && !this.chatSpamTickCount.compareAndSet(spam, spam - 1); ) ; -+ if (tabSpamLimiter.get() > 0) tabSpamLimiter.getAndDecrement(); // Paper - split to seperate variable ++ if (tabSpamLimiter.get() > 0) tabSpamLimiter.getAndDecrement(); // Paper - configurable tab spam limits /* Use thread-safe field access instead if (this.chatSpamTickCount > 0) { --this.chatSpamTickCount; @@ -46,7 +46,7 @@ index 1e6c704279fe91530a23d17a151d28aa3fb9126e..ea7eb7be6abfcfc3c70eba42cf31cc20 // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - run this async // CraftBukkit start - if (this.chatSpamTickCount.addAndGet(1) > 500 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { -+ if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable ++ if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - configurable tab spam limits server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]))); // Paper return; } diff --git a/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 67d062801883..28ff4b9a1285 100644 --- a/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -3,9 +3,6 @@ From: Aikar Date: Sat, 21 Jul 2018 08:25:40 -0400 Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues -Add -Ddebug.entities=true to your JVM flags to gain more information - -1.17: Needs to be reworked for new entity storage system diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java index c9e3e104cd051a38e367653dc6c4f969665fc250..45ee0cd242271883412284625230822d9c8a5452 100644 @@ -29,101 +26,50 @@ index c9e3e104cd051a38e367653dc6c4f969665fc250..45ee0cd242271883412284625230822d protected void tick() { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 536f1380ae3387ac4d062fe2f8b934a8d49905fb..1e10d55962a7221e197723eb42434be052a7661a 100644 +index 536f1380ae3387ac4d062fe2f8b934a8d49905fb..5538e810ef0a68f00043d4e750eb735300d50664 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -222,6 +222,9 @@ public class ServerLevel extends Level implements WorldGenLevel { - public final LevelStorageSource.LevelStorageAccess convertable; - public final UUID uuid; - public boolean hasPhysicsEvent = true; // Paper -+ public static Throwable getAddToWorldStackTrace(Entity entity) { -+ return new Throwable(entity + " Added to world at " + new java.util.Date()); -+ } - - @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI - return this.chunkSource.getChunk(x, z, false); -@@ -1436,7 +1439,28 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1436,6 +1436,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit start private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot -+ // Paper start ++ // Paper start - extra debug info + if (entity.valid) { -+ MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); -+ -+ if (DEBUG_ENTITIES) { -+ Throwable thr = entity.addedToWorldStack; -+ if (thr == null) { -+ MinecraftServer.LOGGER.error("Double add entity has no add stacktrace"); -+ } else { -+ MinecraftServer.LOGGER.error("Double add stacktrace: ", thr); -+ } -+ } ++ MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable()); + return true; + } -+ // Paper end ++ // Paper end - extra debug info if (entity.isRemoved()) { -+ // Paper start -+ if (DEBUG_ENTITIES) { -+ new Throwable("Tried to add entity " + entity + " but it was marked as removed already").printStackTrace(); // CraftBukkit -+ getAddToWorldStackTrace(entity).printStackTrace(); -+ } -+ // Paper end // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; - } else { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bebbbf9a0bca8ab94dd269d19ebf55622a3c2ef8..6d04954493680bc4fbad67ff2e43411f970f78f5 100644 +index bebbbf9a0bca8ab94dd269d19ebf55622a3c2ef8..a906fda4d5d92054f5c0cea4a8167cdb29287cc3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -241,6 +241,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -241,6 +241,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper private CraftEntity bukkitEntity; + public @org.jetbrains.annotations.Nullable net.minecraft.server.level.ChunkMap.TrackedEntity tracker; // Paper -+ public @Nullable Throwable addedToWorldStack; // Paper - entity debug public CraftEntity getBukkitEntity() { if (this.bukkitEntity == null) { this.bukkitEntity = CraftEntity.getEntity(this.level.getCraftServer(), this); -diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 71c2f082091f452cfc74557cd599cf7f080b889b..14c963d507173dae6015a0c81e3a690768012bed 100644 ---- a/src/main/java/net/minecraft/world/level/Level.java -+++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -153,6 +153,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - public boolean pvpMode; - public boolean keepSpawnInMemory = true; - public org.bukkit.generator.ChunkGenerator generator; -+ public static final boolean DEBUG_ENTITIES = Boolean.getBoolean("debug.entities"); // Paper - - public boolean preventPoiUpdated = false; // CraftBukkit - SPIGOT-5710 - public boolean captureBlockStates = false; diff --git a/src/main/java/net/minecraft/world/level/entity/EntityLookup.java b/src/main/java/net/minecraft/world/level/entity/EntityLookup.java -index 21a2800db22f287b9c6a8290326fdf3b94ae94b1..d45d832232be5017dde53816191c2b1830a0da32 100644 +index 21a2800db22f287b9c6a8290326fdf3b94ae94b1..2e561ac90a8c91ea13cfc18d09f8e0abbcff9385 100644 --- a/src/main/java/net/minecraft/world/level/entity/EntityLookup.java +++ b/src/main/java/net/minecraft/world/level/entity/EntityLookup.java -@@ -34,6 +34,26 @@ public class EntityLookup { +@@ -34,6 +34,14 @@ public class EntityLookup { UUID uUID = entity.getUUID(); if (this.byUuid.containsKey(uUID)) { LOGGER.warn("Duplicate entity UUID {}: {}", uUID, entity); + // Paper start - extra debug info -+ if (entity instanceof net.minecraft.world.entity.Entity entityCast) { -+ if (net.minecraft.server.level.ServerLevel.DEBUG_ENTITIES) { -+ entityCast.addedToWorldStack = net.minecraft.server.level.ServerLevel.getAddToWorldStackTrace(entityCast); -+ } -+ -+ T old = this.byUuid.get(entity.getUUID()); -+ if (old instanceof net.minecraft.world.entity.Entity oldCast && old != null && oldCast.getId() != entity.getId() && oldCast.valid) { -+ LOGGER.error("Overwrote an existing entity " + oldCast + " with " + entity); -+ if (net.minecraft.server.level.ServerLevel.DEBUG_ENTITIES) { -+ if (oldCast.addedToWorldStack != null) { -+ oldCast.addedToWorldStack.printStackTrace(); -+ } else { -+ LOGGER.error("Oddly, the old entity was not added to the world in the normal way. Plugins?"); -+ } -+ entityCast.addedToWorldStack.printStackTrace(); -+ } ++ if (entity instanceof net.minecraft.world.entity.Entity) { ++ final T old = this.byUuid.get(entity.getUUID()); ++ if (old instanceof net.minecraft.world.entity.Entity oldCast && oldCast.getId() != entity.getId() && oldCast.valid) { ++ LOGGER.error("Overwrote an existing entity {} with {}", oldCast, entity); + } + } -+ // Paper end ++ // Paper end - extra debug info } else { this.byUuid.put(uUID, entity); this.byId.put(entity.getId(), entity); diff --git a/patches/server/0234-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0234-Add-Early-Warning-Feature-to-WatchDog.patch index c3b2f0f468b2..11c5619fcaa4 100644 --- a/patches/server/0234-Add-Early-Warning-Feature-to-WatchDog.patch +++ b/patches/server/0234-Add-Early-Warning-Feature-to-WatchDog.patch @@ -9,7 +9,7 @@ thread dumps at an interval until the point of crash. This will help diagnose what was going on in that time before the crash. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b3666442b906c59aca50c230c3a6c8f2878a5bee..1a9faaecf50f3a17561c77cb262074c741ebfcc0 100644 +index 7f68ffdb88c0c4b9d91f699d088cd81e62e94620..85beb9c7a02f7f561716d017f40ae24ad49a61a3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1075,6 +1075,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { @@ -44,69 +44,61 @@ index 4d6f5e627d386f9ca2d7653b0f485c82a13557f5..665120a62525f56912263a3e1b6f12f6 private static final Gson GSON = (new GsonBuilder()).setPrettyPrinting().create(); private final File file; - private final Map map = Maps.newHashMap(); -+ private final Map map = Maps.newConcurrentMap(); // Paper - replace HashMap is ConcurrentHashMap ++ private final Map map = Maps.newConcurrentMap(); // Paper - Use ConcurrentHashMap in JsonList public StoredUserList(File file) { this.file = file; -@@ -54,8 +54,13 @@ public abstract class StoredUserList> { +@@ -54,8 +54,11 @@ public abstract class StoredUserList> { @Nullable public V get(K key) { - this.removeExpired(); - return (V) this.map.get(this.getKeyForUser(key)); // CraftBukkit - fix decompile error -+ // Paper start -+ // this.g(); -+ // return (V) this.d.get(this.a(k0)); // CraftBukkit - fix decompile error ++ // Paper start - Use ConcurrentHashMap in JsonList + return (V) this.map.computeIfPresent(this.getKeyForUser(key), (k, v) -> { + return v.hasExpired() ? null : v; + }); -+ // Paper end ++ // Paper end - Use ConcurrentHashMap in JsonList } public void remove(K key) { -@@ -78,7 +83,8 @@ public abstract class StoredUserList> { +@@ -78,7 +81,7 @@ public abstract class StoredUserList> { } public boolean isEmpty() { - return this.map.size() < 1; -+ // return this.d.size() < 1; // Paper -+ return this.map.isEmpty(); // Paper - readability is the goal. As an aside, isEmpty() uses only sumCount() and a comparison. size() uses sumCount(), casts, and boolean logic ++ return this.map.isEmpty(); // Paper - Use ConcurrentHashMap in JsonList } protected String getKeyForUser(K profile) { -@@ -90,14 +96,14 @@ public abstract class StoredUserList> { +@@ -90,25 +93,7 @@ public abstract class StoredUserList> { } private void removeExpired() { - List list = Lists.newArrayList(); - Iterator iterator = this.map.values().iterator(); -+ /*List list = Lists.newArrayList(); -+ Iterator iterator = this.d.values().iterator(); - - while (iterator.hasNext()) { - V v0 = (V) iterator.next(); // CraftBukkit - decompile error - - if (v0.hasExpired()) { +- +- while (iterator.hasNext()) { +- V v0 = (V) iterator.next(); // CraftBukkit - decompile error +- +- if (v0.hasExpired()) { - list.add(v0.getUser()); -+ list.add(v0.getKey()); - } - } - -@@ -106,9 +112,11 @@ public abstract class StoredUserList> { - while (iterator.hasNext()) { - K k0 = (K) iterator.next(); // CraftBukkit - decompile error - +- } +- } +- +- iterator = list.iterator(); +- +- while (iterator.hasNext()) { +- K k0 = (K) iterator.next(); // CraftBukkit - decompile error +- - this.map.remove(this.getKeyForUser(k0)); - } -+ this.d.remove(this.a(k0)); -+ }*/ - -+ this.map.values().removeIf(StoredUserEntry::hasExpired); -+ // Paper end +- ++ this.map.values().removeIf(StoredUserEntry::hasExpired); // Paper - Use ConcurrentHashMap in JsonList } protected abstract StoredUserEntry createEntry(JsonObject json); -@@ -118,6 +126,7 @@ public abstract class StoredUserList> { +@@ -118,6 +103,7 @@ public abstract class StoredUserList> { } public void save() throws IOException { diff --git a/patches/server/0236-Use-a-Queue-for-Queueing-Commands.patch b/patches/server/0236-Use-a-Queue-for-Queueing-Commands.patch index 4eedabbc17af..1aad9d219230 100644 --- a/patches/server/0236-Use-a-Queue-for-Queueing-Commands.patch +++ b/patches/server/0236-Use-a-Queue-for-Queueing-Commands.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use a Queue for Queueing Commands Lists are bad as Queues mmmkay. diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index adae2d7f9ced8ce6d2e15aafb8b53ef85e79b6d1..90b261b23f6731f60a7d4f412a6bf4c6c6aa7095 100644 +index 1de3b2fc41e2fe2d27ebe9f93810b4503cec89cb..907129b7ca0bb2b356502c84b86518e843cecfa2 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -69,7 +69,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -14,7 +14,7 @@ index adae2d7f9ced8ce6d2e15aafb8b53ef85e79b6d1..90b261b23f6731f60a7d4f412a6bf4c6 private static final int CONVERSION_RETRY_DELAY_MS = 5000; private static final int CONVERSION_RETRIES = 2; - private final List consoleInput = Collections.synchronizedList(Lists.newArrayList()); -+ private final java.util.Queue serverCommandQueue = new java.util.concurrent.ConcurrentLinkedQueue<>(); // Paper - use a proper queuemmands ++ private final java.util.Queue serverCommandQueue = new java.util.concurrent.ConcurrentLinkedQueue<>(); // Paper - Perf: use a proper queue @Nullable private QueryThreadGs4 queryThreadGs4; // private final RemoteControlCommandListener rconConsoleSource; // CraftBukkit - remove field @@ -23,17 +23,17 @@ index adae2d7f9ced8ce6d2e15aafb8b53ef85e79b6d1..90b261b23f6731f60a7d4f412a6bf4c6 } // Paper end - rewrite chunk system - this.consoleInput.add(new ConsoleInput(command, commandSource)); -+ this.serverCommandQueue.add(new ConsoleInput(command, commandSource)); // Paper - use proper queue ++ this.serverCommandQueue.add(new ConsoleInput(command, commandSource)); // Paper - Perf: use proper queue } public void handleConsoleInputs() { MinecraftTimings.serverCommandTimer.startTiming(); // Spigot - while (!this.consoleInput.isEmpty()) { - ConsoleInput servercommand = (ConsoleInput) this.consoleInput.remove(0); -+ // Paper start - use proper queue ++ // Paper start - Perf: use proper queue + ConsoleInput servercommand; + while ((servercommand = this.serverCommandQueue.poll()) != null) { -+ // Paper end ++ // Paper end - Perf: use proper queue // CraftBukkit start - ServerCommand for preprocessing ServerCommandEvent event = new ServerCommandEvent(this.console, servercommand.msg); diff --git a/patches/server/0237-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch b/patches/server/0237-Ability-to-get-block-entities-from-a-chunk-without-s.patch similarity index 96% rename from patches/server/0237-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch rename to patches/server/0237-Ability-to-get-block-entities-from-a-chunk-without-s.patch index 45533e8ac27e..5ae7d9508fba 100644 --- a/patches/server/0237-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch +++ b/patches/server/0237-Ability-to-get-block-entities-from-a-chunk-without-s.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 15 Aug 2018 01:16:34 -0400 -Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots +Subject: [PATCH] Ability to get block entities from a chunk without snapshots diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java diff --git a/patches/server/0238-Optimize-BlockPosition-helper-methods.patch b/patches/server/0238-Optimize-BlockPosition-helper-methods.patch index 43c92ef89eb1..ed94eb3b7b8d 100644 --- a/patches/server/0238-Optimize-BlockPosition-helper-methods.patch +++ b/patches/server/0238-Optimize-BlockPosition-helper-methods.patch @@ -3,10 +3,9 @@ From: Spottedleaf Date: Wed, 15 Aug 2018 12:05:12 -0700 Subject: [PATCH] Optimize BlockPosition helper methods -Resolves #1338 diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 2bb5e51f71cbf66819d198505aa4a5ecffd246c6..ef5f897164136767e9c6dd61b76c2a1dedd4f350 100644 +index 2bb5e51f71cbf66819d198505aa4a5ecffd246c6..3b3d81886d50ee6510ff366e11817a578c645089 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -132,67 +132,84 @@ public class BlockPos extends Vec3i { @@ -14,78 +13,78 @@ index 2bb5e51f71cbf66819d198505aa4a5ecffd246c6..ef5f897164136767e9c6dd61b76c2a1d @Override public BlockPos above() { - return this.relative(Direction.UP); -+ return new BlockPos(this.getX(), this.getY() + 1, this.getZ()); // Paper - Optimize BlockPosition ++ return new BlockPos(this.getX(), this.getY() + 1, this.getZ()); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos above(int distance) { - return this.relative(Direction.UP, distance); -+ return distance == 0 ? this : new BlockPos(this.getX(), this.getY() + distance, this.getZ()); // Paper - Optimize BlockPosition ++ return distance == 0 ? this : new BlockPos(this.getX(), this.getY() + distance, this.getZ()); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos below() { - return this.relative(Direction.DOWN); -+ return new BlockPos(this.getX(), this.getY() - 1, this.getZ()); // Paper - Optimize BlockPosition ++ return new BlockPos(this.getX(), this.getY() - 1, this.getZ()); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos below(int i) { - return this.relative(Direction.DOWN, i); -+ return i == 0 ? this : new BlockPos(this.getX(), this.getY() - i, this.getZ()); // Paper - Optimize BlockPosition ++ return i == 0 ? this : new BlockPos(this.getX(), this.getY() - i, this.getZ()); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos north() { - return this.relative(Direction.NORTH); -+ return new BlockPos(this.getX(), this.getY(), this.getZ() - 1); // Paper - Optimize BlockPosition ++ return new BlockPos(this.getX(), this.getY(), this.getZ() - 1); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos north(int distance) { - return this.relative(Direction.NORTH, distance); -+ return distance == 0 ? this : new BlockPos(this.getX(), this.getY(), this.getZ() - distance); // Paper - Optimize BlockPosition ++ return distance == 0 ? this : new BlockPos(this.getX(), this.getY(), this.getZ() - distance); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos south() { - return this.relative(Direction.SOUTH); -+ return new BlockPos(this.getX(), this.getY(), this.getZ() + 1); // Paper - Optimize BlockPosition ++ return new BlockPos(this.getX(), this.getY(), this.getZ() + 1); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos south(int distance) { - return this.relative(Direction.SOUTH, distance); -+ return distance == 0 ? this : new BlockPos(this.getX(), this.getY(), this.getZ() + distance); // Paper - Optimize BlockPosition ++ return distance == 0 ? this : new BlockPos(this.getX(), this.getY(), this.getZ() + distance); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos west() { - return this.relative(Direction.WEST); -+ return new BlockPos(this.getX() - 1, this.getY(), this.getZ()); // Paper - Optimize BlockPosition ++ return new BlockPos(this.getX() - 1, this.getY(), this.getZ()); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos west(int distance) { - return this.relative(Direction.WEST, distance); -+ return distance == 0 ? this : new BlockPos(this.getX() - distance, this.getY(), this.getZ()); // Paper - Optimize BlockPosition ++ return distance == 0 ? this : new BlockPos(this.getX() - distance, this.getY(), this.getZ()); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos east() { - return this.relative(Direction.EAST); -+ return new BlockPos(this.getX() + 1, this.getY(), this.getZ()); // Paper - Optimize BlockPosition ++ return new BlockPos(this.getX() + 1, this.getY(), this.getZ()); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos east(int distance) { - return this.relative(Direction.EAST, distance); -+ return distance == 0 ? this : new BlockPos(this.getX() + distance, this.getY(), this.getZ()); // Paper - Optimize BlockPosition ++ return distance == 0 ? this : new BlockPos(this.getX() + distance, this.getY(), this.getZ()); // Paper - Perf: Optimize BlockPosition } @Override public BlockPos relative(Direction direction) { -+ // Paper start - Optimize BlockPosition ++ // Paper start - Perf: Optimize BlockPosition + switch(direction) { + case UP: + return new BlockPos(this.getX(), this.getY() + 1, this.getZ()); @@ -102,7 +101,7 @@ index 2bb5e51f71cbf66819d198505aa4a5ecffd246c6..ef5f897164136767e9c6dd61b76c2a1d + default: return new BlockPos(this.getX() + direction.getStepX(), this.getY() + direction.getStepY(), this.getZ() + direction.getStepZ()); + } -+ // Paper end ++ // Paper end - Perf: Optimize BlockPosition } @Override diff --git a/patches/server/0240-Slime-Pathfinder-Events.patch b/patches/server/0240-Slime-Pathfinder-Events.patch index 92d79aa8c0a5..f41d435c06f6 100644 --- a/patches/server/0240-Slime-Pathfinder-Events.patch +++ b/patches/server/0240-Slime-Pathfinder-Events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Slime Pathfinder Events diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f486161051741d 100644 +index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..ca3bf718336ef02d379c0ec670f62fafb1600153 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java @@ -115,6 +115,7 @@ public class Slime extends Mob implements Enemy { @@ -20,7 +20,7 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 public void readAdditionalSaveData(CompoundTag nbt) { this.setSize(nbt.getInt("Size") + 1, false); super.readAdditionalSaveData(nbt); -+ // Paper start - check exists before loading or this will be loaded as false ++ // Paper start + if (nbt.contains("Paper.canWander")) { + this.canWander = nbt.getBoolean("Paper.canWander"); + } @@ -33,7 +33,7 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 @Override public boolean canUse() { - return (this.slime.isInWater() || this.slime.isInLava()) && this.slime.getMoveControl() instanceof Slime.SlimeMoveControl; -+ return (this.slime.isInWater() || this.slime.isInLava()) && this.slime.getMoveControl() instanceof Slime.SlimeMoveControl && this.slime.canWander && new com.destroystokyo.paper.event.entity.SlimeSwimEvent((org.bukkit.entity.Slime) this.slime.getBukkitEntity()).callEvent(); // Paper ++ return (this.slime.isInWater() || this.slime.isInLava()) && this.slime.getMoveControl() instanceof Slime.SlimeMoveControl && this.slime.canWander && new com.destroystokyo.paper.event.entity.SlimeSwimEvent((org.bukkit.entity.Slime) this.slime.getBukkitEntity()).callEvent(); // Paper - Slime pathfinder events } @Override @@ -42,7 +42,7 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 LivingEntity entityliving = this.slime.getTarget(); - return entityliving == null ? false : (!this.slime.canAttack(entityliving) ? false : this.slime.getMoveControl() instanceof Slime.SlimeMoveControl); -+ // Paper start ++ // Paper start - Slime pathfinder events + if (entityliving == null || !entityliving.isAlive()) { + return false; + } @@ -50,7 +50,7 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 + return false; + } + return this.slime.getMoveControl() instanceof Slime.SlimeMoveControl && this.slime.canWander && new com.destroystokyo.paper.event.entity.SlimeTargetLivingEntityEvent((org.bukkit.entity.Slime) this.slime.getBukkitEntity(), (org.bukkit.entity.LivingEntity) entityliving.getBukkitEntity()).callEvent(); -+ // Paper end ++ // Paper end - Slime pathfinder events } @Override @@ -59,7 +59,7 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 LivingEntity entityliving = this.slime.getTarget(); - return entityliving == null ? false : (!this.slime.canAttack(entityliving) ? false : --this.growTiredTimer > 0); -+ // Paper start ++ // Paper start - Slime pathfinder events + if (entityliving == null || !entityliving.isAlive()) { + return false; + } @@ -67,7 +67,7 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 + return false; + } + return --this.growTiredTimer > 0 && this.slime.canWander && new com.destroystokyo.paper.event.entity.SlimeTargetLivingEntityEvent((org.bukkit.entity.Slime) this.slime.getBukkitEntity(), (org.bukkit.entity.LivingEntity) entityliving.getBukkitEntity()).callEvent(); -+ // Paper end ++ // Paper end - Slime pathfinder events } @Override @@ -76,12 +76,12 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 } + -+ // Paper start - clear timer and target when goal resets ++ // Paper start - Slime pathfinder events; clear timer and target when goal resets + public void stop() { + this.growTiredTimer = 0; + this.slime.setTarget(null); + } -+ // Paper end ++ // Paper end - Slime pathfinder events } private static class SlimeRandomDirectionGoal extends Goal { @@ -90,7 +90,7 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 @Override public boolean canUse() { - return this.slime.getTarget() == null && (this.slime.onGround() || this.slime.isInWater() || this.slime.isInLava() || this.slime.hasEffect(MobEffects.LEVITATION)) && this.slime.getMoveControl() instanceof Slime.SlimeMoveControl; -+ return this.slime.getTarget() == null && (this.slime.onGround() || this.slime.isInWater() || this.slime.isInLava() || this.slime.hasEffect(MobEffects.LEVITATION)) && this.slime.getMoveControl() instanceof Slime.SlimeMoveControl && this.slime.canWander; // Paper - add canWander ++ return this.slime.getTarget() == null && (this.slime.onGround() || this.slime.isInWater() || this.slime.isInLava() || this.slime.hasEffect(MobEffects.LEVITATION)) && this.slime.getMoveControl() instanceof Slime.SlimeMoveControl && this.slime.canWander; // Paper - Slime pathfinder events } @Override @@ -98,11 +98,11 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 if (--this.nextRandomizeTime <= 0) { this.nextRandomizeTime = this.adjustedTickDelay(40 + this.slime.getRandom().nextInt(60)); this.chosenDegrees = (float) this.slime.getRandom().nextInt(360); -+ // Paper start ++ // Paper start - Slime pathfinder events + com.destroystokyo.paper.event.entity.SlimeChangeDirectionEvent event = new com.destroystokyo.paper.event.entity.SlimeChangeDirectionEvent((org.bukkit.entity.Slime) this.slime.getBukkitEntity(), this.chosenDegrees); + if (!this.slime.canWander || !event.callEvent()) return; + this.chosenDegrees = event.getNewYaw(); -+ // Paper end ++ // Paper end - Slime pathfinder events } MoveControl controllermove = this.slime.getMoveControl(); @@ -111,7 +111,7 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 @Override public boolean canUse() { - return !this.slime.isPassenger(); -+ return !this.slime.isPassenger() && this.slime.canWander && new com.destroystokyo.paper.event.entity.SlimeWanderEvent((org.bukkit.entity.Slime) this.slime.getBukkitEntity()).callEvent(); // Paper ++ return !this.slime.isPassenger() && this.slime.canWander && new com.destroystokyo.paper.event.entity.SlimeWanderEvent((org.bukkit.entity.Slime) this.slime.getBukkitEntity()).callEvent(); // Paper - Slime pathfinder events } @Override @@ -120,7 +120,7 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 } } + -+ // Paper start ++ // Paper start - Slime pathfinder events + private boolean canWander = true; + public boolean canWander() { + return canWander; @@ -129,7 +129,7 @@ index ef382b08ff8e7f24500aed6752c76e6ffc3f0729..fa014c04cc51a55345a1c50098f48616 + public void setWander(boolean canWander) { + this.canWander = canWander; + } -+ // Paper end ++ // Paper end - Slime pathfinder events } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java index 3d991d9d9388108ec6d137950913209d61d132e7..3d9b7c0e128ea05bec5600c774e9685998b71cac 100644 diff --git a/patches/server/0241-Configurable-speed-for-water-flowing-over-lava.patch b/patches/server/0241-Configurable-speed-for-water-flowing-over-lava.patch index 4c146b3d294b..1ae56559676e 100644 --- a/patches/server/0241-Configurable-speed-for-water-flowing-over-lava.patch +++ b/patches/server/0241-Configurable-speed-for-water-flowing-over-lava.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable speed for water flowing over lava diff --git a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java -index 82afefbbc3b9d3571792d66e6d4f9d687971aa66..2bd097203f1e92d3fc343f91dc37220e09dd5066 100644 +index 82afefbbc3b9d3571792d66e6d4f9d687971aa66..9b3dcf1a4d4cece92a629506d341f6bfe79d13d0 100644 --- a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java @@ -140,11 +140,31 @@ public class LiquidBlock extends Block implements BucketPickup { @@ -13,12 +13,12 @@ index 82afefbbc3b9d3571792d66e6d4f9d687971aa66..2bd097203f1e92d3fc343f91dc37220e public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) { if (this.shouldSpreadLiquid(world, pos, state)) { - world.scheduleTick(pos, state.getFluidState().getType(), this.fluid.getTickDelay(world)); -+ world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper ++ world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper - Configurable speed for water flowing over lava } } -+ // Paper start - Get flow speed. Throttle if its water and flowing adjacent to lava ++ // Paper start - Configurable speed for water flowing over lava + public int getFlowSpeed(Level world, BlockPos blockposition) { + if (net.minecraft.core.registries.BuiltInRegistries.FLUID.wrapAsHolder(this.fluid).is(FluidTags.WATER)) { + if ( @@ -36,7 +36,7 @@ index 82afefbbc3b9d3571792d66e6d4f9d687971aa66..2bd097203f1e92d3fc343f91dc37220e + final FluidState fluidState = world.getFluidIfLoaded(blockPos); + return fluidState != null && fluidState.is(FluidTags.LAVA); + } -+ // Paper end ++ // Paper end - Configurable speed for water flowing over lava + @Override public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor world, BlockPos pos, BlockPos neighborPos) { @@ -46,7 +46,7 @@ index 82afefbbc3b9d3571792d66e6d4f9d687971aa66..2bd097203f1e92d3fc343f91dc37220e public void neighborChanged(BlockState state, Level world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) { if (this.shouldSpreadLiquid(world, pos, state)) { - world.scheduleTick(pos, state.getFluidState().getType(), this.fluid.getTickDelay(world)); -+ world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper ++ world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper - Configurable speed for water flowing over lava } } diff --git a/patches/server/0242-Optimize-CraftBlockData-Creation.patch b/patches/server/0242-Optimize-CraftBlockData-Creation.patch index d8b3ca0f4c8b..6cf8e3c2f4be 100644 --- a/patches/server/0242-Optimize-CraftBlockData-Creation.patch +++ b/patches/server/0242-Optimize-CraftBlockData-Creation.patch @@ -7,21 +7,21 @@ Avoids a hashmap lookup by cacheing a reference to the CraftBlockData and cloning it when one is needed. diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index a009fca54665cbc3f11cad776256fbf1fbbb18c7..2c7d025b2af3a66772c3f394620483045fb80242 100644 +index a009fca54665cbc3f11cad776256fbf1fbbb18c7..7e4264f87a0f81db71d49dbede32a1bad87f7ca8 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -876,6 +876,14 @@ public abstract class BlockBehaviour implements FeatureElement { this.replaceable = blockbase_info.replaceable; this.conditionallyFullOpaque = this.canOcclude & this.useShapeForLightOcclusion; // Paper } -+ // Paper start - impl cached craft block data, lazy load to fix issue with loading at the wrong time ++ // Paper start - Perf: impl cached craft block data, lazy load to fix issue with loading at the wrong time + private org.bukkit.craftbukkit.block.data.CraftBlockData cachedCraftBlockData; + + public org.bukkit.craftbukkit.block.data.CraftBlockData createCraftBlockData() { + if (cachedCraftBlockData == null) cachedCraftBlockData = org.bukkit.craftbukkit.block.data.CraftBlockData.createData(asState()); + return (org.bukkit.craftbukkit.block.data.CraftBlockData) cachedCraftBlockData.clone(); + } -+ // Paper end ++ // Paper end - Perf: impl cached craft block data, lazy load to fix issue with loading at the wrong time private boolean calculateSolid() { if (((Block) this.owner).properties.forceSolidOn) { diff --git a/patches/server/0243-Optimize-MappedRegistry.patch b/patches/server/0243-Optimize-MappedRegistry.patch index ae3bc0312042..cb661e87c83c 100644 --- a/patches/server/0243-Optimize-MappedRegistry.patch +++ b/patches/server/0243-Optimize-MappedRegistry.patch @@ -8,7 +8,7 @@ Use larger initial sizes to increase bucket capacity on the BiMap BiMap.get was seen to be using a good bit of CPU time. diff --git a/src/main/java/net/minecraft/core/MappedRegistry.java b/src/main/java/net/minecraft/core/MappedRegistry.java -index 33990e4f9b5e7e3d8080c80f639b81b7f798c859..742af4feb3986ca7d8f5ed136b556a41cbe0722f 100644 +index 33990e4f9b5e7e3d8080c80f639b81b7f798c859..b2d22bb25499756fe393cf562f8a4eda0649c26d 100644 --- a/src/main/java/net/minecraft/core/MappedRegistry.java +++ b/src/main/java/net/minecraft/core/MappedRegistry.java @@ -35,13 +35,13 @@ public class MappedRegistry implements WritableRegistry { @@ -16,17 +16,17 @@ index 33990e4f9b5e7e3d8080c80f639b81b7f798c859..742af4feb3986ca7d8f5ed136b556a41 final ResourceKey> key; private final ObjectList> byId = new ObjectArrayList<>(256); - private final Reference2IntMap toId = Util.make(new Reference2IntOpenHashMap<>(), (map) -> { -+ private final Reference2IntMap toId = Util.make(new Reference2IntOpenHashMap<>(2048), (map) -> { // Paper - use bigger expected size to reduce collisions ++ private final Reference2IntMap toId = Util.make(new Reference2IntOpenHashMap<>(2048), (map) -> { // Paper - Perf: Use bigger expected size to reduce collisions map.defaultReturnValue(-1); }); - private final Map> byLocation = new HashMap<>(); - private final Map, Holder.Reference> byKey = new HashMap<>(); - private final Map> byValue = new IdentityHashMap<>(); - private final Map lifecycles = new IdentityHashMap<>(); -+ private final Map> byLocation = new HashMap<>(2048); // Paper - use bigger expected size to reduce collisions -+ private final Map, Holder.Reference> byKey = new HashMap<>(2048); // Paper - use bigger expected size to reduce collisions -+ private final Map> byValue = new IdentityHashMap<>(2048); // Paper - use bigger expected size to reduce collisions -+ private final Map lifecycles = new IdentityHashMap<>(2048); // Paper - use bigger expected size to reduce collisions ++ private final Map> byLocation = new HashMap<>(2048); // Paper - Perf: Use bigger expected size to reduce collisions ++ private final Map, Holder.Reference> byKey = new HashMap<>(2048); // Paper - Perf: Use bigger expected size to reduce collisions ++ private final Map> byValue = new IdentityHashMap<>(2048); // Paper - Perf: Use bigger expected size to reduce collisions ++ private final Map lifecycles = new IdentityHashMap<>(2048); // Paper - Perf: Use bigger expected size to reduce collisions private Lifecycle registryLifecycle; private volatile Map, HolderSet.Named> tags = new IdentityHashMap<>(); private boolean frozen; diff --git a/patches/server/0244-Add-PhantomPreSpawnEvent.patch b/patches/server/0244-Add-PhantomPreSpawnEvent.patch index e92632febe8a..b8f3ee434f88 100644 --- a/patches/server/0244-Add-PhantomPreSpawnEvent.patch +++ b/patches/server/0244-Add-PhantomPreSpawnEvent.patch @@ -48,14 +48,14 @@ index d19bf99d03bf505a1a277b49fba6ee4769802ef2..658393f451e46a93c5665fe3c580aa39 CIRCLE, SWOOP; diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java -index 61ba99d99cc4e7782450ee6aa8b6c87b1a42cb3a..94ee9c399f59e0198b4d9bc2a4255e8b821bcd36 100644 +index 61ba99d99cc4e7782450ee6aa8b6c87b1a42cb3a..5d84bd022714f9726131d2e37d648c444052af9b 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java @@ -70,9 +70,19 @@ public class PhantomSpawner implements CustomSpawner { int k = 1 + randomsource.nextInt(difficultydamagescaler.getDifficulty().getId() + 1); for (int l = 0; l < k; ++l) { -+ // Paper start ++ // Paper start - PhantomPreSpawnEvent + com.destroystokyo.paper.event.entity.PhantomPreSpawnEvent event = new com.destroystokyo.paper.event.entity.PhantomPreSpawnEvent(io.papermc.paper.util.MCUtil.toLocation(world, blockposition1), entityplayer.getBukkitEntity(), org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL); + if (!event.callEvent()) { + if (event.shouldAbortSpawn()) { @@ -63,11 +63,11 @@ index 61ba99d99cc4e7782450ee6aa8b6c87b1a42cb3a..94ee9c399f59e0198b4d9bc2a4255e8b + } + continue; + } -+ // Paper end ++ // Paper end - PhantomPreSpawnEvent Phantom entityphantom = (Phantom) EntityType.PHANTOM.create(world); if (entityphantom != null) { -+ entityphantom.setSpawningEntity(entityplayer.getUUID()); // Paper ++ entityphantom.setSpawningEntity(entityplayer.getUUID()); // Paper - PhantomPreSpawnEvent entityphantom.moveTo(blockposition1, 0.0F, 0.0F); groupdataentity = entityphantom.finalizeSpawn(world, difficultydamagescaler, MobSpawnType.NATURAL, groupdataentity, (CompoundTag) null); world.addFreshEntityWithPassengers(entityphantom, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL); // CraftBukkit diff --git a/patches/server/0245-Add-More-Creeper-API.patch b/patches/server/0245-Add-More-Creeper-API.patch index 7f86a576b263..6afb294abe56 100644 --- a/patches/server/0245-Add-More-Creeper-API.patch +++ b/patches/server/0245-Add-More-Creeper-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add More Creeper API diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 17ce05e7f9d2615be28a095ef6d3126885df8771..7fe90ebc8eced53f72c7f935e40745075f02421b 100644 +index d85095117d7837e75640f0e447242b45e24cf00e..51ab33d805028fb739ff9fa1a22a010e70777c1e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -132,7 +132,7 @@ public class Creeper extends Monster implements PowerableMob { @@ -22,7 +22,7 @@ index 17ce05e7f9d2615be28a095ef6d3126885df8771..7fe90ebc8eced53f72c7f935e4074507 public void ignite() { - this.entityData.set(Creeper.DATA_IS_IGNITED, true); -+ // Paper start ++ // Paper start - CreeperIgniteEvent + setIgnited(true); + } + @@ -33,7 +33,7 @@ index 17ce05e7f9d2615be28a095ef6d3126885df8771..7fe90ebc8eced53f72c7f935e4074507 + this.entityData.set(Creeper.DATA_IS_IGNITED, event.isIgnited()); + } + } -+ // Paper end ++ // Paper end - CreeperIgniteEvent } public boolean canDropMobsSkull() { diff --git a/patches/server/0279-force-entity-dismount-during-teleportation.patch b/patches/server/0279-force-entity-dismount-during-teleportation.patch index d03f86d358cb..6a7d014e2a6a 100644 --- a/patches/server/0279-force-entity-dismount-during-teleportation.patch +++ b/patches/server/0279-force-entity-dismount-during-teleportation.patch @@ -20,10 +20,10 @@ this is going to be the best soultion all around. Improvements/suggestions welcome! diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6d04954493680bc4fbad67ff2e43411f970f78f5..1793fbd803bfdb5d43d83d15b238d70da06b8780 100644 +index a906fda4d5d92054f5c0cea4a8167cdb29287cc3..6f37e4fbadb287d9c099d1cc535c941aaabe1d54 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2606,11 +2606,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2605,11 +2605,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void removeVehicle() { @@ -41,7 +41,7 @@ index 6d04954493680bc4fbad67ff2e43411f970f78f5..1793fbd803bfdb5d43d83d15b238d70d } } -@@ -2641,7 +2646,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2640,7 +2645,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } @@ -53,7 +53,7 @@ index 6d04954493680bc4fbad67ff2e43411f970f78f5..1793fbd803bfdb5d43d83d15b238d70d if (entity.getVehicle() == this) { throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)"); } else { -@@ -2651,7 +2659,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2650,7 +2658,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (this.getBukkitEntity() instanceof Vehicle && entity.getBukkitEntity() instanceof LivingEntity) { VehicleExitEvent event = new VehicleExitEvent( (Vehicle) this.getBukkitEntity(), @@ -62,7 +62,7 @@ index 6d04954493680bc4fbad67ff2e43411f970f78f5..1793fbd803bfdb5d43d83d15b238d70d ); // Suppress during worldgen if (this.valid) { -@@ -2664,7 +2672,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2663,7 +2671,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } diff --git a/patches/server/0286-BlockDestroyEvent.patch b/patches/server/0286-BlockDestroyEvent.patch index 789cef6bf65e..fbb7e12f5c04 100644 --- a/patches/server/0286-BlockDestroyEvent.patch +++ b/patches/server/0286-BlockDestroyEvent.patch @@ -11,7 +11,7 @@ floating in the air. This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 14c963d507173dae6015a0c81e3a690768012bed..a683908b18114cad6100e3d5c8eb5a8dfd33163a 100644 +index 71c2f082091f452cfc74557cd599cf7f080b889b..5d6f45f7ff8f310bf78417aa9bcf8f106a1d80c6 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -31,6 +31,7 @@ import net.minecraft.nbt.CompoundTag; @@ -22,7 +22,7 @@ index 14c963d507173dae6015a0c81e3a690768012bed..a683908b18114cad6100e3d5c8eb5a8d import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.FullChunkStatus; import net.minecraft.server.level.ServerLevel; -@@ -669,9 +670,26 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -668,9 +669,26 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return false; } else { FluidState fluid = this.getFluidState(pos); diff --git a/patches/server/0293-Entity-getEntitySpawnReason.patch b/patches/server/0293-Entity-getEntitySpawnReason.patch index 5358c7e3f37f..7a2fa22e3c1d 100644 --- a/patches/server/0293-Entity-getEntitySpawnReason.patch +++ b/patches/server/0293-Entity-getEntitySpawnReason.patch @@ -22,19 +22,19 @@ index 2eddeb8d5239bbfeefbf4d3bd363f1ad083299b6..e2b44b8ddb8afc6e1f7dddadb434c226 }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1e10d55962a7221e197723eb42434be052a7661a..cf2ae848a3860a5a27723047b02bde3aa8255d62 100644 +index 5538e810ef0a68f00043d4e750eb735300d50664..8e3acfcdfac1cd67456acfbede2260b8f186df70 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1454,6 +1454,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1442,6 +1442,7 @@ public class ServerLevel extends Level implements WorldGenLevel { return true; } - // Paper end + // Paper end - extra debug info + if (entity.spawnReason == null) entity.spawnReason = spawnReason; // Paper - Entity#getEntitySpawnReason if (entity.isRemoved()) { - // Paper start - if (DEBUG_ENTITIES) { + // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit + return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c9dbc32561ddd39b40ed42d8cc6550a904ac158e..63d793ee00b14a12d0dbad15bee579a330f1eb07 100644 +index 8ca59ff8fee55358ec6f9a480a27b45859dccfaf..dd9b5fbd23a951b1e4b3cbf3ae0763b1f8462e2e 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -223,6 +223,11 @@ public abstract class PlayerList { @@ -59,7 +59,7 @@ index c9dbc32561ddd39b40ed42d8cc6550a904ac158e..63d793ee00b14a12d0dbad15bee579a3 }); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e44d983e7b44225bdd7395488d2b246761e8e02a..748bc33b9812791ffe4b811c405b45d07c18cdcd 100644 +index 6f37e4fbadb287d9c099d1cc535c941aaabe1d54..eb353e7814544c11dbae8d12958cc26200e549a3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -237,6 +237,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -70,7 +70,7 @@ index e44d983e7b44225bdd7395488d2b246761e8e02a..748bc33b9812791ffe4b811c405b45d0 public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper private CraftEntity bukkitEntity; -@@ -2214,6 +2215,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2213,6 +2214,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } nbttagcompound.put("Paper.Origin", this.newDoubleList(origin.getX(), origin.getY(), origin.getZ())); } @@ -80,7 +80,7 @@ index e44d983e7b44225bdd7395488d2b246761e8e02a..748bc33b9812791ffe4b811c405b45d0 // Save entity's from mob spawner status if (spawnedViaMobSpawner) { nbttagcompound.putBoolean("Paper.FromMobSpawner", true); -@@ -2360,6 +2364,26 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2359,6 +2363,26 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } spawnedViaMobSpawner = nbt.getBoolean("Paper.FromMobSpawner"); // Restore entity's from mob spawner status diff --git a/patches/server/0300-Optimize-Captured-BlockEntity-Lookup.patch b/patches/server/0300-Optimize-Captured-BlockEntity-Lookup.patch index 4fb0ee109e93..419495dd0689 100644 --- a/patches/server/0300-Optimize-Captured-BlockEntity-Lookup.patch +++ b/patches/server/0300-Optimize-Captured-BlockEntity-Lookup.patch @@ -10,10 +10,10 @@ Optimize to check if the captured list even has values in it, and also to just do a get call since the value can never be null. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b10c93cbcf264a3e13d48f30a2c09ae5568a510e..c8b2399c55c8ea4fcb953202c0ea74d95b47c359 100644 +index 5d6f45f7ff8f310bf78417aa9bcf8f106a1d80c6..44290a845d15bfdd8ea87ff77e9016ece835d087 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -998,9 +998,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -997,9 +997,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Nullable public BlockEntity getBlockEntity(BlockPos blockposition, boolean validate) { diff --git a/patches/server/0306-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/patches/server/0306-Configurable-Keep-Spawn-Loaded-range-per-world.patch index b4688094268f..e697a61bd3c0 100644 --- a/patches/server/0306-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/patches/server/0306-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable Keep Spawn Loaded range per world This lets you disable it for some worlds and lower it for others. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f317b9fdb2bfbae9babd64d4801f190042fc1867..1d069e33f64463e96199fa336336ffc44e3ed10e 100644 +index cef1554db34a1d917fa5c7bbccfe22efd93bebfd..f92e4d6cfae684b5c8df6424d63a574cb17ef6b7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -768,30 +768,33 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop capturedTileEntities = new HashMap<>(); public List captureDrops; public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); diff --git a/patches/server/0331-Tracking-Range-Improvements.patch b/patches/server/0331-Tracking-Range-Improvements.patch index 7b3bbb506383..051228951f1f 100644 --- a/patches/server/0331-Tracking-Range-Improvements.patch +++ b/patches/server/0331-Tracking-Range-Improvements.patch @@ -8,10 +8,10 @@ Sets tracking range of watermobs to animals instead of misc and simplifies code Also ignores Enderdragon, defaulting it to Mojang's setting diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 1b84c29605fb141ad286f6ae67a726d0a5088d32..2130f15d92bab1d4e35a92a681ac34cd9c929ea9 100644 +index 87edc78afea997db8935432b2c452aec6638fb06..279cb641b795b6f4ced545c3a09b61fde69c47d6 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1264,6 +1264,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1260,6 +1260,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider while (iterator.hasNext()) { Entity entity = (Entity) iterator.next(); int j = entity.getType().clientTrackingRange() * 16; diff --git a/patches/server/0332-Fix-items-vanishing-through-end-portal.patch b/patches/server/0332-Fix-items-vanishing-through-end-portal.patch index 5a1ab289a738..8093b1ad5d1f 100644 --- a/patches/server/0332-Fix-items-vanishing-through-end-portal.patch +++ b/patches/server/0332-Fix-items-vanishing-through-end-portal.patch @@ -13,10 +13,10 @@ Quickly loading the exact world spawn chunk before searching the heightmap resolves the issue without having to load all spawn chunks. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 26a611b8d75513690811fbbd15dc37e6f4a50dd4..f052c3eb14d5f50fb82889b011387991d5e4aac7 100644 +index 9e028513eb3809100d7292e3327051cb27f4d07a..96e0abe60d108dd61db79790962dd7b782830b57 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3411,6 +3411,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3410,6 +3410,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (flag1) { blockposition1 = ServerLevel.END_SPAWN_POINT; } else { diff --git a/patches/server/0334-Anti-Xray.patch b/patches/server/0334-Anti-Xray.patch index d58ac431c58d..17352b68c73e 100644 --- a/patches/server/0334-Anti-Xray.patch +++ b/patches/server/0334-Anti-Xray.patch @@ -1104,10 +1104,10 @@ index 90ec22d35edb2874417bbea590e0d3c37ad93d64..fc230d835f9aa526a4b179d36d921f0f public ClientboundLevelChunkWithLightPacket(FriendlyByteBuf buf) { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0ed44bc939b256a4b91eb24812e4de10a9af01b7..8eff58898faea024787e56cf98c8498c46db16d4 100644 +index dd034a7d7754c88b77731175f373e8c090e4a706..acb35d2df83ff2381f21611de358d50caee53f69 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -572,7 +572,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -569,7 +569,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Holder holder = worlddimension.type(); // CraftBukkit - decompile error // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error @@ -1117,7 +1117,7 @@ index 0ed44bc939b256a4b91eb24812e4de10a9af01b7..8eff58898faea024787e56cf98c8498c this.convertable = convertable_conversionsession; this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 79020edc9fac79e8b186d0f57f956d2189d3dc8e..b7e6d8441e8444c36919c126a8adeaeed02df08c 100644 +index 32327f639b3cc10444ad122fb3405174e32c4f01..3629f164f05cc2d33c76bb21cfe4598539aa08e0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -49,7 +49,7 @@ import org.bukkit.event.player.PlayerInteractEvent; @@ -1155,10 +1155,10 @@ index 5de5209e04d631bd6a50e28e8d3abebf148252c1..19b3f4fa7678a038bf25efc2a8b46dda DebugPackets.sendPoiPacketsForChunk(world, chunkPos); } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 322f2ef70273d52bf6daced17aec09f7d34c9200..a58df7552766abb0c923402bfa40e5d72d972e83 100644 +index f016d991b132775bacc961557f7e5ff78f2b52d1..473a14272e3c63e24a25fe1522aba9c0af829a2e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -178,6 +178,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -177,6 +177,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } // Paper end - add paper world config @@ -1166,7 +1166,7 @@ index 322f2ef70273d52bf6daced17aec09f7d34c9200..a58df7552766abb0c923402bfa40e5d7 public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -196,7 +197,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -195,7 +196,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); @@ -1175,15 +1175,15 @@ index 322f2ef70273d52bf6daced17aec09f7d34c9200..a58df7552766abb0c923402bfa40e5d7 this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config this.generator = gen; -@@ -282,6 +283,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -281,6 +282,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.keepSpawnInMemory = this.paperConfig().spawn.keepSpawnLoaded; // Paper this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime); this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); + this.chunkPacketBlockController = this.paperConfig().anticheat.antiXray.enabled ? new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray } - // Paper start -@@ -547,6 +549,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + // Paper start - Cancel hit for vanished players +@@ -546,6 +548,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit end BlockState iblockdata1 = chunk.setBlockState(pos, state, (flags & 64) != 0, (flags & 1024) == 0); // CraftBukkit custom NO_PLACE flag diff --git a/patches/server/0338-Add-debug-for-sync-chunk-loads.patch b/patches/server/0338-Add-debug-for-sync-chunk-loads.patch index 4e0245f7f133..9e35dd1fd4e7 100644 --- a/patches/server/0338-Add-debug-for-sync-chunk-loads.patch +++ b/patches/server/0338-Add-debug-for-sync-chunk-loads.patch @@ -312,10 +312,10 @@ index 70f15e3af9e954483ab116500f84a9ee17f67ce4..56fe3f4edd15239533a1ae9287e86528 chunkproviderserver_b.managedBlock(completablefuture::isDone); io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - async chunk debug // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6d6ad6a33f3f8e4b8bc39fea00506daf7b31275c..63437e0cd8ad76e05a3ae40de673d8ff6cae00c6 100644 +index acb35d2df83ff2381f21611de358d50caee53f69..dbc13b7eccea5c97bcc6aa1ba0bd807aa34d6805 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -651,6 +651,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -648,6 +648,13 @@ public class ServerLevel extends Level implements WorldGenLevel { this.entityLookup = new io.papermc.paper.chunk.system.entity.EntityLookup(this, new EntityCallbacks()); // Paper - rewrite chunk system } diff --git a/patches/server/0342-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/server/0342-Add-option-to-nerf-pigmen-from-nether-portals.patch index ea9d058847a1..a11e2801123d 100644 --- a/patches/server/0342-Add-option-to-nerf-pigmen-from-nether-portals.patch +++ b/patches/server/0342-Add-option-to-nerf-pigmen-from-nether-portals.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to nerf pigmen from nether portals diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 21eac12dcc3571e647b07b313015d809cb0fbcea..d1a256a0a27ebfd91497840334c94dfe1a40c980 100644 +index 96e0abe60d108dd61db79790962dd7b782830b57..a5defe250dcc0ca7aa907fe9a6b373d73d893be8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -399,6 +399,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -398,6 +398,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper start public long activatedImmunityTick = Integer.MIN_VALUE; // Paper public boolean isTemporarilyActive = false; // Paper @@ -16,7 +16,7 @@ index 21eac12dcc3571e647b07b313015d809cb0fbcea..d1a256a0a27ebfd91497840334c94dfe protected int numCollisions = 0; // Paper public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable -@@ -2233,6 +2234,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2232,6 +2233,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (spawnedViaMobSpawner) { nbttagcompound.putBoolean("Paper.FromMobSpawner", true); } @@ -26,7 +26,7 @@ index 21eac12dcc3571e647b07b313015d809cb0fbcea..d1a256a0a27ebfd91497840334c94dfe // Paper end return nbttagcompound; } catch (Throwable throwable) { -@@ -2375,6 +2379,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2374,6 +2378,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } spawnedViaMobSpawner = nbt.getBoolean("Paper.FromMobSpawner"); // Restore entity's from mob spawner status diff --git a/patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch index a792a698bf9b..5e250f8ba079 100644 --- a/patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch +++ b/patches/server/0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch @@ -7,10 +7,10 @@ Suspected case would be around the technique used in .stopRiding Stack will identify any causer of this and warn instead of crashing. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 1f9efff4ddccf2569fdfe42e6cbc92792643d0ea..3b7a82761682e29fb42f683b232c789c522b632e 100644 +index 19f1432ae1405eee0ee56dec151e7d602816a943..37e6b841b3c3d8720a1947065d4fada8c25ec2cf 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -993,6 +993,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -989,6 +989,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void addEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity track"); // Spigot @@ -25,10 +25,10 @@ index 1f9efff4ddccf2569fdfe42e6cbc92792643d0ea..3b7a82761682e29fb42f683b232c789c EntityType entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 63437e0cd8ad76e05a3ae40de673d8ff6cae00c6..46101e6bef0f81968cb194303e19e437a3417733 100644 +index dbc13b7eccea5c97bcc6aa1ba0bd807aa34d6805..a3669b4d5833003c98bcf62da89560452565a451 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2514,7 +2514,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2496,7 +2496,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public void onTrackingStart(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot @@ -37,7 +37,7 @@ index 63437e0cd8ad76e05a3ae40de673d8ff6cae00c6..46101e6bef0f81968cb194303e19e437 if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -2549,6 +2549,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2531,6 +2531,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::add); entity.inWorld = true; // CraftBukkit - Mark entity as in world entity.valid = true; // CraftBukkit diff --git a/patches/server/0362-Improved-Watchdog-Support.patch b/patches/server/0362-Improved-Watchdog-Support.patch index 7e569d476035..959eae7786bb 100644 --- a/patches/server/0362-Improved-Watchdog-Support.patch +++ b/patches/server/0362-Improved-Watchdog-Support.patch @@ -71,7 +71,7 @@ index a9a0248b1bd1ac454064e977b61f9b7d80962ff8..059b1a0bf048af6a28c322f35da3d3cb cause = cause.getCause(); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ce113cc2bc52c1135799190a22e0be21744b58cc..9a25d351df1141e9218d37c0f90e2d67f9c8c3ef 100644 +index 5cb0f93bc7d4495e65674c22de2ebd8854c696fe..570c163e4a56206d1cf259ee1ffcb6f865f72b1c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -297,7 +297,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index cb137fe3aaa14fd4862baa0444bc62d818cf9509..32b41d88af7565665a19663227475d984cbfd7b2 100644 +index 3221fad96b077a31f6e22277c08e8a20c65afd7a..6ca90fdf844ee6aa1957e17a75a4c070de0381f2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -271,6 +271,7 @@ public class ServerPlayer extends Player { @@ -55,7 +55,7 @@ index cb137fe3aaa14fd4862baa0444bc62d818cf9509..32b41d88af7565665a19663227475d98 // CraftBukkit end public boolean isRealPlayer; // Paper diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 077ae008b817d38082a068f4bbd76181510403bf..ffdd5b7417bb748ee5e8ad4d126bf3489c5d32ed 100644 +index 06232d823c099cb1d827491a5cccc435ecae8ffe..9ad0a672f3a14c1e36a9f2275fa3e8d2131d543f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -295,6 +295,12 @@ public abstract class PlayerList { diff --git a/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch index b2d78c3f0166..a64379317fa6 100644 --- a/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch +++ b/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch @@ -10,7 +10,7 @@ Co-authored-by: Wyatt Childers Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 85b0c15e8600b2b62db24c22dfab4680b08ca492..e0aed65461c75b28799a87a0ef266707ce63ca17 100644 +index 9ad0a672f3a14c1e36a9f2275fa3e8d2131d543f..82101511142c266c4374da10ab2561f4412300db 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -194,7 +194,7 @@ public abstract class PlayerList { @@ -87,10 +87,10 @@ index 85b0c15e8600b2b62db24c22dfab4680b08ca492..e0aed65461c75b28799a87a0ef266707 } // Paper end - Entity#getEntitySpawnReason diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1e9819ea185b98a73992bde8c40150d4747ed436..2374500ba0518415b7c680bc2ac05222761493ba 100644 +index bf8ea784c032469c1b88a0cdc954d6e2de5bb3ec..7746d7fb7177885d97d95f065782ee23aa1dfe56 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2337,27 +2337,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2336,27 +2336,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // CraftBukkit end diff --git a/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch index 495761ea8dca..761f552a9338 100644 --- a/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch +++ b/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch @@ -16,10 +16,10 @@ So even if something NEW comes up, it would be impossible to drop the same item twice because the source was destroyed. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 85371495d4f11e339a0211145c0303976515ef8f..14be6f3a591fded3ff8690241061a7a07d2a89a6 100644 +index 7746d7fb7177885d97d95f065782ee23aa1dfe56..5698555fe780ba96f190f67aa116940efdd993e2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2467,11 +2467,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2466,11 +2466,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -34,7 +34,7 @@ index 85371495d4f11e339a0211145c0303976515ef8f..14be6f3a591fded3ff8690241061a7a0 entityitem.setDefaultPickUpDelay(); // CraftBukkit start -@@ -3271,6 +3272,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3270,6 +3271,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public Entity teleportTo(ServerLevel worldserver, Vec3 location) { // CraftBukkit end @@ -47,7 +47,7 @@ index 85371495d4f11e339a0211145c0303976515ef8f..14be6f3a591fded3ff8690241061a7a0 if (this.level() instanceof ServerLevel && !this.isRemoved()) { this.level().getProfiler().push("changeDimension"); // CraftBukkit start -@@ -3297,6 +3304,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3296,6 +3303,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit end this.level().getProfiler().popPush("reloading"); @@ -59,7 +59,7 @@ index 85371495d4f11e339a0211145c0303976515ef8f..14be6f3a591fded3ff8690241061a7a0 Entity entity = this.getType().create(worldserver); if (entity != null) { -@@ -3314,10 +3326,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3313,10 +3325,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit start - Forward the CraftEntity to the new entity this.getBukkitEntity().setHandle(entity); entity.bukkitEntity = this.getBukkitEntity(); @@ -70,7 +70,7 @@ index 85371495d4f11e339a0211145c0303976515ef8f..14be6f3a591fded3ff8690241061a7a0 // CraftBukkit end } -@@ -3436,7 +3444,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3435,7 +3443,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean canChangeDimensions() { @@ -80,7 +80,7 @@ index 85371495d4f11e339a0211145c0303976515ef8f..14be6f3a591fded3ff8690241061a7a0 public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index da68b02c6c66a205254d755e4ab5f379cbe9a666..28ea07dc7796f7fc12d5f11aed22eb35ee60c9b5 100644 +index 4948a7d78ef1e96f325368430068576ce0b990ad..d4bf6c909939c23586acaa7338141aac880217b0 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1705,9 +1705,9 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0383-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0383-Deobfuscate-stacktraces-in-log-messages-crash-report.patch index 582d9f7ef8bf..b29b08d08f6d 100644 --- a/patches/server/0383-Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/0383-Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -495,7 +495,7 @@ index 52eb3176437113f9a0ff85d10ce5c2415e1b5570..b54ddd0ba0b001fbcb1838a838ca4890 } } diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 93d3f29b08c79479c27d3f39e6c799c705e69902..38650109c1d2683a27da5788dc6013d8d0db26ad 100644 +index c66fc75fb88c4f0a4273d69009a4e6defb0b29e9..b99dbe3878df8f67a6920195088c00a01289a79f 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -75,13 +75,13 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -525,7 +525,7 @@ index 93d3f29b08c79479c27d3f39e6c799c705e69902..38650109c1d2683a27da5788dc6013d8 protected void channelRead0(ChannelHandlerContext channelhandlercontext, Packet packet) { diff --git a/src/main/java/net/minecraft/network/PacketEncoder.java b/src/main/java/net/minecraft/network/PacketEncoder.java -index 2907536f8f9b4b9dccb96f8b4f19d75fa3c5b864..b5b228e67284baad3639b283595427a819bb1a44 100644 +index 61f05f34ca33837c643f2915e753ec3935a38314..85b8be8ffac0fb40e9cae0528271ed41473811c8 100644 --- a/src/main/java/net/minecraft/network/PacketEncoder.java +++ b/src/main/java/net/minecraft/network/PacketEncoder.java @@ -47,7 +47,14 @@ public class PacketEncoder extends MessageToByteEncoder> { @@ -545,7 +545,7 @@ index 2907536f8f9b4b9dccb96f8b4f19d75fa3c5b864..b5b228e67284baad3639b283595427a8 throw new SkipPacketException(var13); } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index c9cca6ba3500791485bf19155156c38c24f1c761..684e9e9d78f0d410176fa8b9c9d0fbfda6a156dc 100644 +index 0e2978b6e4f03932c4ebdf1309d20454b9130132..ab84c4b098184370c8b63cbae687116a7b077cf5 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -194,6 +194,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -556,30 +556,6 @@ index c9cca6ba3500791485bf19155156c38c24f1c761..684e9e9d78f0d410176fa8b9c9d0fbfd // Paper start - initialize global and world-defaults configuration this.paperConfigurations.initializeGlobalConfiguration(this.registryAccess()); this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess()); -diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 46101e6bef0f81968cb194303e19e437a3417733..1bab7d1c76a087e5bd22d7adbee5e065e8e2241e 100644 ---- a/src/main/java/net/minecraft/server/level/ServerLevel.java -+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -222,7 +222,9 @@ public class ServerLevel extends Level implements WorldGenLevel { - public final UUID uuid; - public boolean hasPhysicsEvent = true; // Paper - public static Throwable getAddToWorldStackTrace(Entity entity) { -- return new Throwable(entity + " Added to world at " + new java.util.Date()); -+ final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); -+ io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); -+ return thr; - } - - @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI -@@ -1492,7 +1494,7 @@ public class ServerLevel extends Level implements WorldGenLevel { - if (entity.isRemoved()) { - // Paper start - if (DEBUG_ENTITIES) { -- new Throwable("Tried to add entity " + entity + " but it was marked as removed already").printStackTrace(); // CraftBukkit -+ io.papermc.paper.util.TraceUtil.dumpTraceForThread("Tried to add entity " + entity + " but it was marked as removed already"); // CraftBukkit - getAddToWorldStackTrace(entity).printStackTrace(); - } - // Paper end diff --git a/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java index d130f843975236018df4fa2ccc3ca6aaca7a06b8..76f31845fe50200d09e5ab6a6c08da00444414ad 100644 --- a/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java @@ -633,7 +609,7 @@ index 14bd0b94ece3f826f822b4900c7250ebdc27d937..59eb65e207ff0206b0dfad6f2dcffe78 } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 45ecda3b67025881a145d40a5291c34e5a1f9590..27e8ee4507460b1cc72de692b41562b9f4f13929 100644 +index 4891073602609fc2709715460e0675a7cc2a4cdd..d85ed706703e50f76df8db414827ccd41a5985d9 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -599,7 +599,7 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0392-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/0392-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch index db4ca8f753b0..8c9fc93b3435 100644 --- a/patches/server/0392-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch +++ b/patches/server/0392-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch @@ -25,10 +25,10 @@ index b1fdfae75aeea78ca77987e40242bf498447bc08..cf81854facadaf3c1f860bcaaf69db46 if (!this.level.isInWorldBounds(blockposition)) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1bb5867bb2e99be1696c89ec47cd3aa0d655fdfb..6941a14b37d4637a1414c4a6c9380a5d7a72711d 100644 +index b25c632c8b797c30e90beaf3cedbc13acc2103bb..286890f5a42cd2cade28ab0c5b9cdd48b6a33d37 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -521,6 +521,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -520,6 +520,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { @@ -106,7 +106,7 @@ index b3732a6246a2b011e36c5c35fa2ac7749e75db16..e4a3c937950b26e81b89d6ddcf3d6c27 world.playSound((Player) null, pos, SoundEvents.PISTON_CONTRACT, SoundSource.BLOCKS, 0.5F, world.random.nextFloat() * 0.15F + 0.6F); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 2c7d025b2af3a66772c3f394620483045fb80242..0475c153ac1ba73a56bae35820d1d2a31e771865 100644 +index 7e4264f87a0f81db71d49dbede32a1bad87f7ca8..2d1062d2b0412180cc08765ecf9b0a071983c06a 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -182,7 +182,7 @@ public abstract class BlockBehaviour implements FeatureElement { diff --git a/patches/server/0406-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/0406-Use-distance-map-to-optimise-entity-tracker.patch index 18b0c6bf7d50..e68776eb14cd 100644 --- a/patches/server/0406-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/0406-Use-distance-map-to-optimise-entity-tracker.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use distance map to optimise entity tracker Use the distance map to find candidate players for tracking. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 2db3236bc9d676c86b0af38bd4bfaf9d3332c250..07abd089e5091d292d4542bbe0fbb416a111bf8e 100644 +index 2785619ed6d04e06a25bfbb2a7fbd99f81c1f858..bdda124f6cc89b8a7ed198fdf095aee5f3f24ce3 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -146,6 +146,23 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -124,7 +124,7 @@ index 2db3236bc9d676c86b0af38bd4bfaf9d3332c250..07abd089e5091d292d4542bbe0fbb416 } // Paper start -@@ -929,17 +1009,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -925,17 +1005,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void move(ServerPlayer player) { @@ -143,7 +143,7 @@ index 2db3236bc9d676c86b0af38bd4bfaf9d3332c250..07abd089e5091d292d4542bbe0fbb416 SectionPos sectionposition = player.getLastSectionPos(); SectionPos sectionposition1 = SectionPos.of((EntityAccess) player); -@@ -1016,7 +1086,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1012,7 +1082,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker this.entityMap.put(entity.getId(), playerchunkmap_entitytracker); @@ -152,7 +152,7 @@ index 2db3236bc9d676c86b0af38bd4bfaf9d3332c250..07abd089e5091d292d4542bbe0fbb416 if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -1060,9 +1130,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1056,9 +1126,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = null; // Paper - We're no longer tracked } @@ -192,7 +192,7 @@ index 2db3236bc9d676c86b0af38bd4bfaf9d3332c250..07abd089e5091d292d4542bbe0fbb416 List list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); -@@ -1212,6 +1310,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1208,6 +1306,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.lastSectionPos = SectionPos.of((EntityAccess) entity); } @@ -236,7 +236,7 @@ index 2db3236bc9d676c86b0af38bd4bfaf9d3332c250..07abd089e5091d292d4542bbe0fbb416 return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 88632cf1baea828f6442ac37b8c13a3356445fe3..a1d990aa2e79af9e1ff078892cdb38a382f21da7 100644 +index 5698555fe780ba96f190f67aa116940efdd993e2..02d7282e5d5e1c1334fed55a86bc4c9837e9341f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -56,6 +56,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; @@ -247,7 +247,7 @@ index 88632cf1baea828f6442ac37b8c13a3356445fe3..a1d990aa2e79af9e1ff078892cdb38a3 import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -@@ -488,6 +489,38 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -487,6 +488,38 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public boolean updatingSectionStatus = false; // Paper end diff --git a/patches/server/0409-Ensure-Entity-position-and-AABB-are-never-invalid.patch b/patches/server/0409-Ensure-Entity-position-and-AABB-are-never-invalid.patch index 0b2777a605a9..6626d0fcd4d6 100644 --- a/patches/server/0409-Ensure-Entity-position-and-AABB-are-never-invalid.patch +++ b/patches/server/0409-Ensure-Entity-position-and-AABB-are-never-invalid.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Ensure Entity position and AABB are never invalid Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2b3b6b7cda65434c903582a99e42e71762daccf8..44ff63b89056eb2f944ead71d74d17d1fd5351b2 100644 +index 02d7282e5d5e1c1334fed55a86bc4c9837e9341f..8209a273b0f4b07195fa20c5be6c80384eb582c2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -728,8 +728,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -727,8 +727,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void setPos(double x, double y, double z) { @@ -20,7 +20,7 @@ index 2b3b6b7cda65434c903582a99e42e71762daccf8..44ff63b89056eb2f944ead71d74d17d1 } protected AABB makeBoundingBox() { -@@ -4241,7 +4241,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4240,7 +4240,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.getZ((2.0D * this.random.nextDouble() - 1.0D) * widthScale); } @@ -50,7 +50,7 @@ index 2b3b6b7cda65434c903582a99e42e71762daccf8..44ff63b89056eb2f944ead71d74d17d1 // Paper start - rewrite chunk system if (this.updatingSectionStatus) { LOGGER.error("Refusing to update position for entity " + this + " to position " + new Vec3(x, y, z) + " since it is processing a section status update", new Throwable()); -@@ -4265,6 +4287,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4264,6 +4286,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.levelCallback.onMove(); } diff --git a/patches/server/0415-incremental-chunk-and-player-saving.patch b/patches/server/0415-incremental-chunk-and-player-saving.patch index 6243fbde37b3..59dbfc74036d 100644 --- a/patches/server/0415-incremental-chunk-and-player-saving.patch +++ b/patches/server/0415-incremental-chunk-and-player-saving.patch @@ -5,7 +5,7 @@ Subject: [PATCH] incremental chunk and player saving diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6ffb81f09e7422adeb29f0651a9d3b6e7f6860d3..2ebfa60a2b0175a9cb107648652c9150d9f93732 100644 +index 229f5c1d651d903e1c641e67661004a4ee010417..08e3f07c4547f8fa7b571ecef7436ba1fbee578a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -901,7 +901,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= level; } -@@ -1871,6 +1872,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1870,6 +1871,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void moveTo(double x, double y, double z, float yaw, float pitch) { @@ -57,7 +57,7 @@ index e1ce61dcadf325633ed809eef92fc07bac4cbf05..e8ef81a7224ed134e3042534c96f13a0 this.setYRot(yaw); this.setXRot(pitch); diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 0578ac12d92f9af0b0113587db9351b4a41bedd5..76486e2045739d3e8706194f4d71f5108d055780 100644 +index f4e1a540243d1f699dd2ef407707af27517d9360..b90c1e4e03f85dbfa7134bffd8da59330cea1e28 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java @@ -169,6 +169,7 @@ public abstract class BaseSpawner { diff --git a/patches/server/0454-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0454-Extend-block-drop-capture-to-capture-all-items-added.patch index 399d7534645c..a4beee9d3303 100644 --- a/patches/server/0454-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/patches/server/0454-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Extend block drop capture to capture all items added to the diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 307f2d8adae141cfb7f5fd3c08e68863ce3ed75f..897c149c38fc17a7af4d922ff6eecc08d43cd366 100644 +index 27977796215779f6412e618c4b439d756a5bef98..1db813af2f6e1bce404fc24f31a18de3e0717247 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1532,6 +1532,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1512,6 +1512,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; } else { @@ -23,7 +23,7 @@ index 307f2d8adae141cfb7f5fd3c08e68863ce3ed75f..897c149c38fc17a7af4d922ff6eecc08 if (spawnReason != null && !CraftEventFactory.doEntityAddEventCalling(this, entity, spawnReason)) { return false; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index a9ede0d719e866655ab48fb5d0263c7d1bdcff60..49d29e4b3395d2ebea1ed13338f26c7cfbaa5f72 100644 +index 5b951937511126d58665c5e2baf18186a7a8d325..60c18af9253607bc51ecb9d23c23e652a9ba36e9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -431,10 +431,12 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index 82b299261098..c114cf939891 100644 --- a/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 961cd2886ca2fdafdeb958ee714e3d436bd7f330..b56ee5c771d1316e05eba29a8e9d3e9d4468b83c 100644 +index fa40fff50ae07a0a040b50c0c04d4d7a2bf46b8d..f2a1719f18913dca5a6985537c5181af6c8e2bfe 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4508,4 +4508,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4507,4 +4507,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S void accept(Entity entity, double x, double y, double z); } diff --git a/patches/server/0457-Entity-isTicking.patch b/patches/server/0457-Entity-isTicking.patch index 35eeca6dad3a..5b8f7576d6cd 100644 --- a/patches/server/0457-Entity-isTicking.patch +++ b/patches/server/0457-Entity-isTicking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b56ee5c771d1316e05eba29a8e9d3e9d4468b83c..f8acf77f5157cdee4e40d03b571a830aa726ba70 100644 +index f2a1719f18913dca5a6985537c5181af6c8e2bfe..79a1f55dcdb3186b4ab3e628ac652abf362a8cab 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4513,5 +4513,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4512,5 +4512,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public static int nextEntityId() { return ENTITY_COUNTER.incrementAndGet(); } diff --git a/patches/server/0464-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0464-Retain-block-place-order-when-capturing-blockstates.patch index 27a211f51260..75f0afffe42b 100644 --- a/patches/server/0464-Retain-block-place-order-when-capturing-blockstates.patch +++ b/patches/server/0464-Retain-block-place-order-when-capturing-blockstates.patch @@ -10,10 +10,10 @@ In general, look at making this logic more robust (i.e properly handling cases where a captured entry is overriden) - but for now this will do. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a7fca2d662e013809fef088213cf0275b596629d..0aebd1d8555b6aab24c11cd543e24eb1a6d6cb6f 100644 +index 286890f5a42cd2cade28ab0c5b9cdd48b6a33d37..4de1b09f4aa43ebefbae20014ec044bdd95bd191 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -160,7 +160,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -159,7 +159,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean captureBlockStates = false; public boolean captureTreeGeneration = false; public Map capturedBlockStates = new java.util.LinkedHashMap<>(); // Paper diff --git a/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch index a987291004dd..ed9695b64c2c 100644 --- a/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index af49c7e0531ef73646d74c9770fea302a8b8fea3..1471bfcb0a7b193866cfa7ee0e14e7b044755e88 100644 +index 79a1f55dcdb3186b4ab3e628ac652abf362a8cab..d5d006756270025e16c1ab75062ece9b8ae384b1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2064,6 +2064,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2063,6 +2063,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean isPushable() { @@ -44,7 +44,7 @@ index c9c7833755af3c7bef1d40f2ca425cbec59efa68..75cdddbfbbc4c0c521194dde27ba5f5d } else if (entity.level().isClientSide && (!(entity1 instanceof Player) || !((Player) entity1).isLocalPlayer())) { return false; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a3fd295ce44bce34c7f0a364abc27b70e546a383..428a5e8c4a4fb9e00402dd6164cebeec008e192e 100644 +index 87b010d5b0ce405e64092638108e4d64ad15339b..0568dd1a885f06f7fd85419a8ec7429c7fec8aba 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3426,7 +3426,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0488-Limit-recipe-packets.patch b/patches/server/0488-Limit-recipe-packets.patch index d0c0c85c5c29..707685d4a123 100644 --- a/patches/server/0488-Limit-recipe-packets.patch +++ b/patches/server/0488-Limit-recipe-packets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Limit recipe packets diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6e1bfe5342e23a0dd97dfbc06a43bf77dfab23cc..4bf01aff2716a26e3db7d3778ef3f9e1e529dc74 100644 +index 56aa8de4bdfbf7a26d9838b2a557458ce40b9d01..f6413041358cf52e51efeaac88d13030258fa678 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -258,6 +258,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -19,7 +19,7 @@ index 6e1bfe5342e23a0dd97dfbc06a43bf77dfab23cc..4bf01aff2716a26e3db7d3778ef3f9e1 @@ -377,6 +378,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // CraftBukkit start for (int spam; (spam = this.chatSpamTickCount.get()) > 0 && !this.chatSpamTickCount.compareAndSet(spam, spam - 1); ) ; - if (tabSpamLimiter.get() > 0) tabSpamLimiter.getAndDecrement(); // Paper - split to seperate variable + if (tabSpamLimiter.get() > 0) tabSpamLimiter.getAndDecrement(); // Paper - configurable tab spam limits + if (recipeSpamPackets.get() > 0) recipeSpamPackets.getAndDecrement(); // Paper - auto recipe limit /* Use thread-safe field access instead if (this.chatSpamTickCount > 0) { diff --git a/patches/server/0497-MC-4-Fix-item-position-desync.patch b/patches/server/0497-MC-4-Fix-item-position-desync.patch index a00bae5e8452..0d7cd7df6831 100644 --- a/patches/server/0497-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0497-MC-4-Fix-item-position-desync.patch @@ -28,10 +28,10 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..3c4ac79c094dc2fff7de94150a34b7bf public Vec3 decode(long x, long y, long z) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index dc957fce9f6b5709d6f74fa66a99235d8933d8cc..17152781725a6cf0e1ce5da8374fb3a74cb84351 100644 +index d5d006756270025e16c1ab75062ece9b8ae384b1..c81f7a4637dd5c83c5527b1052fb58a6055e5b09 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4284,6 +4284,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4283,6 +4283,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } // Paper end - rewrite chunk system diff --git a/patches/server/0517-Remove-stale-POIs.patch b/patches/server/0517-Remove-stale-POIs.patch index 53210a7ad415..d6d2592c248b 100644 --- a/patches/server/0517-Remove-stale-POIs.patch +++ b/patches/server/0517-Remove-stale-POIs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove stale POIs diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 902f3a7ae5ba9c15b634bb2f214be7d85c6d5a00..7b76cba12680d7a8720c597b3a98b08ee5313f63 100644 +index 1db813af2f6e1bce404fc24f31a18de3e0717247..a45b7a9c3e12236ba5103d4281c9b73997698a0d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2103,6 +2103,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2083,6 +2083,11 @@ public class ServerLevel extends Level implements WorldGenLevel { }); optional1.ifPresent((holder) -> { this.getServer().execute(() -> { diff --git a/patches/server/0522-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0522-Collision-option-for-requiring-a-player-participant.patch index 966dededfeae..37c9dd08ee77 100644 --- a/patches/server/0522-Collision-option-for-requiring-a-player-participant.patch +++ b/patches/server/0522-Collision-option-for-requiring-a-player-participant.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Collision option for requiring a player participant diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3a8572ded5c9bdf621a8c16123707da9ceb70d54..1249e086d022a68e1d27a7731c0aff92f1457e43 100644 +index c81f7a4637dd5c83c5527b1052fb58a6055e5b09..df23dd16ecca29a569f89ddf7d755ab88557ab50 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1934,6 +1934,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1933,6 +1933,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void push(Entity entity) { if (!this.isPassengerOfSameVehicle(entity)) { if (!entity.noPhysics && !this.noPhysics) { @@ -17,7 +17,7 @@ index 3a8572ded5c9bdf621a8c16123707da9ceb70d54..1249e086d022a68e1d27a7731c0aff92 double d1 = entity.getZ() - this.getZ(); double d2 = Mth.absMax(d0, d1); diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index 82ffd50017dc234a9718db551fca0e73a6deded0..71361cc7339483936b18d2e0e938669bf08d68d2 100644 +index be16ab6da56d2aa2a21ee378cfc44dbb14e108b3..9a6b6120c248a57d9dc86ca215146f6de980bd0d 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java @@ -792,6 +792,7 @@ public abstract class AbstractMinecart extends VehicleEntity { @@ -29,7 +29,7 @@ index 82ffd50017dc234a9718db551fca0e73a6deded0..71361cc7339483936b18d2e0e938669b // CraftBukkit start VehicleEntityCollisionEvent collisionEvent = new VehicleEntityCollisionEvent((Vehicle) this.getBukkitEntity(), entity.getBukkitEntity()); diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -index 6b0ec9da5a368775924f5b97c74acc5bfd609fa1..8a1cd9227d6f889dd8036ec593ee48862966af75 100644 +index 0178eb918179b12d7d8eb56cd72e5bfc34cfdbaf..1ced6d60a74fac028804b3c2d938e89af4706823 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java @@ -207,6 +207,7 @@ public class Boat extends VehicleEntity implements VariantHolder { diff --git a/patches/server/0534-Add-EntityMoveEvent.patch b/patches/server/0534-Add-EntityMoveEvent.patch index 0410b84f0cf3..6b7f95d0d9ab 100644 --- a/patches/server/0534-Add-EntityMoveEvent.patch +++ b/patches/server/0534-Add-EntityMoveEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8d3b3524a939d483aa4d451a8ca0fed3a9c87d26..37a5775a96a894a5419f01886fba471f0c62aba0 100644 +index 563dc53b10389f106f310d9c9ecfe33f7e701553..b0e0c955e9b5c92d4a8e8d55149d5e8123011420 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1584,6 +1584,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 7b76cba12680d7a8720c597b3a98b08ee5313f63..9f39445a78bfea25a12278b4410a44caf3cf929e 100644 +index a45b7a9c3e12236ba5103d4281c9b73997698a0d..b7d227015abeaed324b6b28a7ff51f07c68e704c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final LevelStorageSource.LevelStorageAccess convertable; public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper -+ public boolean hasEntityMoveEvent = false; // Paper - Add EntityMoveEvent - public static Throwable getAddToWorldStackTrace(Entity entity) { - final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); - io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); ++ public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent + + @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI + return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7d72477cdeaa8238da1291c0a902d090463b95c8..1681b63e49cb4f84b1caf0e1b02db19ede08ba13 100644 +index 0568dd1a885f06f7fd85419a8ec7429c7fec8aba..37c348d5b31f806b418a29dc4f8eb0fa1c7d1a4c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3361,6 +3361,20 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch index de2f6c6af1b0..f6373a529681 100644 --- a/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch @@ -5,10 +5,10 @@ Subject: [PATCH] added option to disable pathfinding updates on block changes diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9f39445a78bfea25a12278b4410a44caf3cf929e..da32aad077fb36cc17f420cc445530eec173e110 100644 +index b7d227015abeaed324b6b28a7ff51f07c68e704c..d6e8950af45578375b988158d98554c7d2f4f0a9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1677,6 +1677,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1657,6 +1657,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } this.getChunkSource().blockChanged(pos); @@ -16,7 +16,7 @@ index 9f39445a78bfea25a12278b4410a44caf3cf929e..da32aad077fb36cc17f420cc445530ee VoxelShape voxelshape = oldState.getCollisionShape(this, pos); VoxelShape voxelshape1 = newState.getCollisionShape(this, pos); -@@ -1718,6 +1719,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1698,6 +1699,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } diff --git a/patches/server/0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch index b0ef068d7f36..1d2850637bcb 100644 --- a/patches/server/0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch +++ b/patches/server/0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add a "should burn in sunlight" API for Phantoms and diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -index 6be9e8d693bbb084791d7b30a1891ddb803d6b02..9af5a4b46dcec727c7c862332759ffbe3ebd87b5 100644 +index 117d466e1b4f545f6fd5006c3822c5586db96032..40664cc7e3665432a2ab5e552802c3fc3edbdb22 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java @@ -98,9 +98,15 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -48,7 +48,7 @@ index 6be9e8d693bbb084791d7b30a1891ddb803d6b02..9af5a4b46dcec727c7c862332759ffbe @Override public void setItemSlot(EquipmentSlot slot, ItemStack stack) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index a40852acf5d175cc3a06bc17fb021c76f0c11a28..bb52085d706293fa86df16a1b8e76d17a90ea9e9 100644 +index ea980c2fdf01988ba25bffc7f8963d775101bee1..187037c43ebb5b245ffa4b50163d443490668744 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -145,7 +145,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -78,11 +78,10 @@ index a40852acf5d175cc3a06bc17fb021c76f0c11a28..bb52085d706293fa86df16a1b8e76d17 // Paper end } -@@ -258,6 +262,10 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -258,6 +262,9 @@ public class Phantom extends FlyingMob implements Enemy { return spawningEntity; } public void setSpawningEntity(java.util.UUID entity) { this.spawningEntity = entity; } -+ + private boolean shouldBurnInDay = true; + public boolean shouldBurnInDay() { return shouldBurnInDay; } + public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } diff --git a/patches/server/0587-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0587-Fix-and-optimise-world-force-upgrading.patch index 12dd09168cce..d04e1c7952cd 100644 --- a/patches/server/0587-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0587-Fix-and-optimise-world-force-upgrading.patch @@ -247,7 +247,7 @@ index 0000000000000000000000000000000000000000..513833c2ea23df5b079d157bc5cb89d5 + } +} diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index bea88fee71f0233839ea240cb8fcfb70228e986e..7b996a1c24e66d87c95b9f075248eb1d72ad0476 100644 +index 1cad3585ca122a465572b16d4ecbb7231e87c7de..b0a0909fa9501dfacfbe70dc4118062d1154bd15 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -385,6 +385,15 @@ public class Main { @@ -267,7 +267,7 @@ index bea88fee71f0233839ea240cb8fcfb70228e986e..7b996a1c24e66d87c95b9f075248eb1d Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, dimensionOptionsRegistry, eraseCache); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fbfe5d18a004225396f2d33084fb5073af2d9731..7bfd8307555a9447d4c546a8945341806041cc32 100644 +index d99217292a094713287cd597c9d7c01f04b9c7c7..748a5d8add76d4533fae2647c6e2439f518ac211 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -586,11 +586,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here @@ -318,7 +318,7 @@ index 3588ad0b5e8510a00b1a65c73defec39ee7fb108..761d01c993b60a11c749e172c3ee3067 return this.world; } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index deed4d50e0e4d810647a0745ef328c20dfe51093..9fa07295bf73317a4c2bbbbaf1918393c891f09a 100644 +index 8563383d45f89ee01dd5df13af5bd0cf1b3d7b01..9e30b47ece5549c30f487e5542ae65d5faaa8c39 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -60,6 +60,29 @@ public class RegionFileStorage implements AutoCloseable { @@ -352,7 +352,7 @@ index deed4d50e0e4d810647a0745ef328c20dfe51093..9fa07295bf73317a4c2bbbbaf1918393 return this.regionCache.getAndMoveToFirst(ChunkPos.asLong(chunkcoordintpair.getRegionX(), chunkcoordintpair.getRegionZ())); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 565beb65968b3f7e187f3e5b59aa08e9ac34f2a0..b28212bbf7678d73282d160bfeb0d246e93a8492 100644 +index 05868e37b03ac912ac902b105f3956f9351b1209..08d43545262e2be74566c270f3dd2c600b773616 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1251,9 +1251,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0592-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0592-Add-cause-to-Weather-ThunderChangeEvents.patch index 53f088b3733f..51ca6281d81a 100644 --- a/patches/server/0592-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0592-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a3288d3cd160978e8bab4ca34d1fe6dbee042e28..b858ee2fc8c03c52a6b6d703b1f770b3c496b2a8 100644 +index d6e8950af45578375b988158d98554c7d2f4f0a9..52fb8c8bb41b90c8c6f30551858fd496956cd41c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -672,8 +672,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -667,8 +667,8 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setClearWeatherTime(clearDuration); this.serverLevelData.setRainTime(rainDuration); this.serverLevelData.setThunderTime(rainDuration); @@ -19,7 +19,7 @@ index a3288d3cd160978e8bab4ca34d1fe6dbee042e28..b858ee2fc8c03c52a6b6d703b1f770b3 } @Override -@@ -1109,8 +1109,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1104,8 +1104,8 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setThunderTime(j); this.serverLevelData.setRainTime(k); this.serverLevelData.setClearWeatherTime(i); @@ -30,7 +30,7 @@ index a3288d3cd160978e8bab4ca34d1fe6dbee042e28..b858ee2fc8c03c52a6b6d703b1f770b3 } this.oThunderLevel = this.thunderLevel; -@@ -1177,14 +1177,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1172,14 +1172,14 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting public void resetWeatherCycle() { // CraftBukkit start @@ -95,7 +95,7 @@ index f5ac36fa54f3d3b39de103c95abb9ca3adfe8dda..59ba982dc96ce47e47399514e8f74d2b if (weather.isCancelled()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 43d3c45cd7a178a4ca30e4c0c7fb1e7e21cd89f1..c0d02f7d714f7116b34b5a735b5520cf3a5a4587 100644 +index d240d9f5b558146c2de293a258914fd543975ca2..4ade6ad05a864e8065eb37a707dfbec392abd096 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1243,7 +1243,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0595-Add-PlayerKickEvent-causes.patch b/patches/server/0595-Add-PlayerKickEvent-causes.patch index 1b840d718e08..41522871063d 100644 --- a/patches/server/0595-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0595-Add-PlayerKickEvent-causes.patch @@ -48,7 +48,7 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..ba12919c3f9aec34a9e64993b143ae92 public boolean shouldDisconnect() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5e279fb7e3b902905532cb10dce4df336ee52e67..b72dc50201601203eabfc7866e5843c496b54de7 100644 +index 748a5d8add76d4533fae2647c6e2439f518ac211..bd176eb76afec5873e6f903ef66b0e6df3e6a02f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2236,7 +2236,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable + if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - configurable tab spam limits - server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]))); // Paper + server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause return; diff --git a/patches/server/0603-Fix-dangerous-end-portal-logic.patch b/patches/server/0603-Fix-dangerous-end-portal-logic.patch index 53af813f2f2c..e2eaf3938c6e 100644 --- a/patches/server/0603-Fix-dangerous-end-portal-logic.patch +++ b/patches/server/0603-Fix-dangerous-end-portal-logic.patch @@ -11,10 +11,10 @@ Move the tick logic into the post tick, where portaling was designed to happen in the first place. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b3f33d74bf86943dd7ce05ce44541ae3e6db2fef..72f50fe74695e32167d414c1c9ee38deb95afb79 100644 +index df23dd16ecca29a569f89ddf7d755ab88557ab50..6c3cbfa88a0d8e48fadb85dd52d2678567243ee8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -492,6 +492,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -491,6 +491,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper end // Paper start - optimise entity tracking final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this); @@ -51,7 +51,7 @@ index b3f33d74bf86943dd7ce05ce44541ae3e6db2fef..72f50fe74695e32167d414c1c9ee38de public boolean isLegacyTrackingEntity = false; -@@ -2879,6 +2909,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2878,6 +2908,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.processPortalCooldown(); diff --git a/patches/server/0614-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0614-Use-getChunkIfLoadedImmediately-in-places.patch index 25da2a762018..c329d37f042e 100644 --- a/patches/server/0614-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0614-Use-getChunkIfLoadedImmediately-in-places.patch @@ -8,11 +8,11 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk load in that case). diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b858ee2fc8c03c52a6b6d703b1f770b3c496b2a8..45d5e5bd1ed37c4a3a658b27dc8571344580b65b 100644 +index 52fb8c8bb41b90c8c6f30551858fd496956cd41c..9eb5d6623c10ad88ca0deb7bd92a0cc085aa78b7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -229,7 +229,7 @@ public class ServerLevel extends Level implements WorldGenLevel { - } +@@ -224,7 +224,7 @@ public class ServerLevel extends Level implements WorldGenLevel { + public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI - return this.chunkSource.getChunk(x, z, false); @@ -21,10 +21,10 @@ index b858ee2fc8c03c52a6b6d703b1f770b3c496b2a8..45d5e5bd1ed37c4a3a658b27dc857134 @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 761d01c993b60a11c749e172c3ee3067c055b582..2069cad866a3fd2ed5512fa8fc6dc2ef8bc9758e 100644 +index a19d4d091c738daf80ed9b7c95d149c84180ba9e..4b0bba18ba997f9dc3f0bd6e67af3538106891dc 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -204,6 +204,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -203,6 +203,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return (CraftServer) Bukkit.getServer(); } diff --git a/patches/server/0634-Optimize-indirect-passenger-iteration.patch b/patches/server/0634-Optimize-indirect-passenger-iteration.patch index a4b212cc4135..d37ac5dd2c7f 100644 --- a/patches/server/0634-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0634-Optimize-indirect-passenger-iteration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimize indirect passenger iteration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e6142fc4ac6fe6149f6094124223cdebd56e7b76..2b34c7bc49fff37b6e0a603b6670103fe959fe2a 100644 +index 6c3cbfa88a0d8e48fadb85dd52d2678567243ee8..c24baad4eabcb538a3b30970364632a28a80e06b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3924,20 +3924,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3923,20 +3923,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } private Stream getIndirectPassengersStream() { @@ -43,7 +43,7 @@ index e6142fc4ac6fe6149f6094124223cdebd56e7b76..2b34c7bc49fff37b6e0a603b6670103f return () -> { return this.getIndirectPassengersStream().iterator(); }; -@@ -3960,6 +3974,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3959,6 +3973,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper end - rewrite chunk system public boolean hasExactlyOnePlayerPassenger() { diff --git a/patches/server/0642-Add-back-EntityPortalExitEvent.patch b/patches/server/0642-Add-back-EntityPortalExitEvent.patch index 0f910098c0b0..02d6197f1ca3 100644 --- a/patches/server/0642-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0642-Add-back-EntityPortalExitEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add back EntityPortalExitEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8b84de55028a9c4d65fe5ae99b808f0d84ce6799..019d3494bb4d01172b33cc9022a7db9e0f603f8d 100644 +index c24baad4eabcb538a3b30970364632a28a80e06b..a151f56038ab605116bf576a24e7baf10cc414e8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3373,6 +3373,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3372,6 +3372,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start worldserver = shapedetectorshape.world; @@ -37,7 +37,7 @@ index 8b84de55028a9c4d65fe5ae99b808f0d84ce6799..019d3494bb4d01172b33cc9022a7db9e if (worldserver == this.level) { // SPIGOT-6782: Just move the entity if a plugin changed the world to the one the entity is already in this.moveTo(shapedetectorshape.pos.x, shapedetectorshape.pos.y, shapedetectorshape.pos.z, shapedetectorshape.yRot, shapedetectorshape.xRot); -@@ -3392,8 +3414,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3391,8 +3413,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (entity != null) { entity.restoreFrom(this); diff --git a/patches/server/0643-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0643-Add-methods-to-find-targets-for-lightning-strikes.patch index 86f9829d7bf8..66feb07413e1 100644 --- a/patches/server/0643-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0643-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Add methods to find targets for lightning strikes public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 45d5e5bd1ed37c4a3a658b27dc8571344580b65b..c8e8d8c8c49b28cbaed3072a211a79aacd5f0c34 100644 +index 9eb5d6623c10ad88ca0deb7bd92a0cc085aa78b7..249e7cfbb877a0a625ccde306994442669e257e7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -998,6 +998,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -993,6 +993,11 @@ public class ServerLevel extends Level implements WorldGenLevel { } protected BlockPos findLightningTargetAround(BlockPos pos) { @@ -22,7 +22,7 @@ index 45d5e5bd1ed37c4a3a658b27dc8571344580b65b..c8e8d8c8c49b28cbaed3072a211a79aa BlockPos blockposition1 = this.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, pos); Optional optional = this.findLightningRod(blockposition1); -@@ -1012,6 +1017,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1007,6 +1012,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!list.isEmpty()) { return ((LivingEntity) list.get(this.random.nextInt(list.size()))).blockPosition(); } else { @@ -31,7 +31,7 @@ index 45d5e5bd1ed37c4a3a658b27dc8571344580b65b..c8e8d8c8c49b28cbaed3072a211a79aa blockposition1 = blockposition1.above(2); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d6b402d0bae4d16932e059f1da59ac4523d974b8..ca0af0011159834919c8e071ceac051a0e600b84 100644 +index dbd39858661773fcfb8e22fc984525b9de133c9f..9d80c0c312990a3eb6cc9819eb926157df98cc9c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -701,6 +701,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0653-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0653-Add-Raw-Byte-Entity-Serialization.patch index cfff9cb4b51e..2291299aaf93 100644 --- a/patches/server/0653-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0653-Add-Raw-Byte-Entity-Serialization.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Add Raw Byte Entity Serialization public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 019d3494bb4d01172b33cc9022a7db9e0f603f8d..82db53692f3fc38625d63f9371f2d842159c454c 100644 +index a151f56038ab605116bf576a24e7baf10cc414e8..42eb530571c9f7854888e7f3f6a63ef10dba1b4e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2159,6 +2159,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2158,6 +2158,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } @@ -47,7 +47,7 @@ index a6492b6a9f66d8bcda8928fadf0a5920ff7f0dab..71845027ba1b755ead76cf75d011547d // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 580b6c134743c35d9eb1d98a2d038d1c8f10054c..4a5af85ebb573950c0c65d3a5f25b586173d16dd 100644 +index df57a3be211017e2ba7bd28571adaea59d0be969..fd1ec07ada04de98d0a4f1ca4c93ec53771f88d7 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -483,6 +483,29 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index 54357f73a359..620d79337a96 100644 --- a/patches/server/0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch @@ -9,10 +9,10 @@ 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/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c8e8d8c8c49b28cbaed3072a211a79aacd5f0c34..6b4b505ae0c6f95309243aaa149967b2d728fa87 100644 +index 249e7cfbb877a0a625ccde306994442669e257e7..2b4afc35c9e57977972fe0ddab0ae753f13d8828 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1578,9 +1578,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1558,9 +1558,13 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot Start for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) { if (tileentity instanceof net.minecraft.world.Container) { @@ -28,7 +28,7 @@ index c8e8d8c8c49b28cbaed3072a211a79aacd5f0c34..6b4b505ae0c6f95309243aaa149967b2 } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 36e01f491565e70601464d957143c21aba17dfa1..ca66a8ebb4ae2d3ee9cf88412bbb20d5f812d050 100644 +index 09ee06b89f2bda0245c2858ffc19a5893494d24a..f01965be7ae893de26dbf0d57887cd66e71418f6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1630,6 +1630,18 @@ public class ServerPlayer extends Player { @@ -51,7 +51,7 @@ index 36e01f491565e70601464d957143c21aba17dfa1..ca66a8ebb4ae2d3ee9cf88412bbb20d5 @Override public void doCloseContainer() { diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index e90bfeca52d74d147616773640517995d98e19bc..c21b6e9b013c31342e1a47500f5262ddfb7cd6d0 100644 +index 09e1790f3370f723d8da83097bec433c68eec87d..b90db32be29b198376e696506e1c3ea4cd67c301 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -508,6 +508,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index c5df221bd7ac..bdb1dc3be3b1 100644 --- a/patches/server/0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -10,10 +10,10 @@ chunks did get inlined, but the standard CPS.getChunkAt method was not inlined. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2069cad866a3fd2ed5512fa8fc6dc2ef8bc9758e..7718db906ed1b97f1b55a891c2ea3b59ac1307fb 100644 +index 4b0bba18ba997f9dc3f0bd6e67af3538106891dc..87edfd96ec2ae00971711b46304134b89e6572a0 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -458,6 +458,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -457,6 +457,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public final LevelChunk getChunk(int chunkX, int chunkZ) { // Paper - final to help inline diff --git a/patches/server/0669-Execute-chunk-tasks-mid-tick.patch b/patches/server/0669-Execute-chunk-tasks-mid-tick.patch index a999b592335b..dc5d7301c58a 100644 --- a/patches/server/0669-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/0669-Execute-chunk-tasks-mid-tick.patch @@ -19,7 +19,7 @@ index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..46449728f69ee7d4f78470f8da23c055 private MinecraftTimings() {} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 970dafebf8143ab6de44bfffdeff2475685f99fa..0b0e415adafb5f614259291c1c501fa1b85ddb14 100644 +index bd176eb76afec5873e6f903ef66b0e6df3e6a02f..ec48aea4e352e8ee3ad8cda8ce8ec33daf49dae8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1341,8 +1341,79 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop void guardEntityTick(Consumer tickConsumer, T entity) { try { tickConsumer.accept(entity); diff --git a/patches/server/0670-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0670-Oprimise-map-impl-for-tracked-players.patch index 73a51061c948..e1755f403837 100644 --- a/patches/server/0670-Oprimise-map-impl-for-tracked-players.patch +++ b/patches/server/0670-Oprimise-map-impl-for-tracked-players.patch @@ -7,10 +7,10 @@ Reference2BooleanOpenHashMap is going to have better lookups than HashMap. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 07abd089e5091d292d4542bbe0fbb416a111bf8e..534493aaddced9200e1618d5eabf2b176a1f35b6 100644 +index bdda124f6cc89b8a7ed198fdf095aee5f3f24ce3..f761d600bb5d995a25ffbbe5469625508de1f8bc 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1301,7 +1301,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1297,7 +1297,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider final Entity entity; private final int range; SectionPos lastSectionPos; diff --git a/patches/server/0672-Optimise-random-block-ticking.patch b/patches/server/0672-Optimise-random-block-ticking.patch index 1a30403506f7..23c72bf75855 100644 --- a/patches/server/0672-Optimise-random-block-ticking.patch +++ b/patches/server/0672-Optimise-random-block-ticking.patch @@ -90,10 +90,10 @@ index 0000000000000000000000000000000000000000..7d93652c1abbb6aee6eb7c26cf35d4d0 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2c2d731aaeb7a633ce647ba49a5f2962e01b4c8f..bff754626913969c6946757cee968c02281f59b3 100644 +index 0280f81406eb248d41673d2e3ae1a317357b32cd..bc887fd2788f1c56ed3b8a10ad15cfc23f065138 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -860,6 +860,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -855,6 +855,10 @@ public class ServerLevel extends Level implements WorldGenLevel { entityplayer.stopSleepInBed(false, false); }); } @@ -104,7 +104,7 @@ index 2c2d731aaeb7a633ce647ba49a5f2962e01b4c8f..bff754626913969c6946757cee968c02 public void tickChunk(LevelChunk chunk, int randomTickSpeed) { ChunkPos chunkcoordintpair = chunk.getPos(); -@@ -869,8 +873,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -864,8 +868,10 @@ public class ServerLevel extends Level implements WorldGenLevel { ProfilerFiller gameprofilerfiller = this.getProfiler(); gameprofilerfiller.push("thunder"); @@ -116,7 +116,7 @@ index 2c2d731aaeb7a633ce647ba49a5f2962e01b4c8f..bff754626913969c6946757cee968c02 if (this.isRainingAt(blockposition)) { DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition); -@@ -902,7 +908,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -897,7 +903,10 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!this.paperConfig().environment.disableIceAndSnow) { // Paper for (int l = 0; l < randomTickSpeed; ++l) { if (this.random.nextInt(48) == 0) { @@ -128,7 +128,7 @@ index 2c2d731aaeb7a633ce647ba49a5f2962e01b4c8f..bff754626913969c6946757cee968c02 } } } // Paper -@@ -910,36 +919,37 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -905,36 +914,37 @@ public class ServerLevel extends Level implements WorldGenLevel { gameprofilerfiller.popPush("tickBlocks"); timings.chunkTicksBlocks.startTiming(); // Paper if (randomTickSpeed > 0) { @@ -190,7 +190,7 @@ index 2c2d731aaeb7a633ce647ba49a5f2962e01b4c8f..bff754626913969c6946757cee968c02 timings.chunkTicksBlocks.stopTiming(); // Paper gameprofilerfiller.pop(); -@@ -947,17 +957,25 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -942,17 +952,25 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting public void tickPrecipitation(BlockPos pos) { @@ -220,7 +220,7 @@ index 2c2d731aaeb7a633ce647ba49a5f2962e01b4c8f..bff754626913969c6946757cee968c02 if (i > 0 && biomebase.shouldSnow(this, blockposition1)) { BlockState iblockdata = this.getBlockState(blockposition1); -@@ -975,12 +993,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -970,12 +988,13 @@ public class ServerLevel extends Level implements WorldGenLevel { } } @@ -311,7 +311,7 @@ index f0f764f36fb92c64ab2dc8a0a50c3f48321c3c9a..311625277a26c9c187025a1036978229 public void getAll(IntConsumer action) { for(int i = 0; i < this.size; ++i) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 722e323d2ae3f4ac8aa3197fed79f7d926d5ccfa..f8c1dfc8e121a406955348a1ec00c264d73e73f7 100644 +index 6bbcdd34fb89ea5774e825de8f9a588552716fc2..2a3f1d14a4b24a3219d191b4f2e97ed7b061e006 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -87,7 +87,7 @@ public class Turtle extends Animal { @@ -324,10 +324,10 @@ index 722e323d2ae3f4ac8aa3197fed79f7d926d5ccfa..f8c1dfc8e121a406955348a1ec00c264 public BlockPos getHomePos() { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9489fa61ca43d5d0f1a3c6e23bf1f9c3a1795063..fb86d06e8e420410e3cf9d918abd3369fa2f033e 100644 +index 817e9df60e6524625780683b4260d4f8b62e00b3..bf2376c484bfec238c4fe2a1298cf3f8ff824b38 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1398,10 +1398,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1397,10 +1397,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract RecipeManager getRecipeManager(); public BlockPos getBlockRandomPos(int x, int y, int z, int l) { @@ -348,7 +348,7 @@ index 9489fa61ca43d5d0f1a3c6e23bf1f9c3a1795063..fb86d06e8e420410e3cf9d918abd3369 public boolean noSave() { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index b8fee4f8a0cfe32b9ef7f3f3cf818cbaec0d3fca..12edaf88cca54540c617239ac31b2263dfa0ecd7 100644 +index 3efd0a462306fbd02a506a3f952d609645b1f874..4a781375a4a18011259edcb4e24550748a05dfa0 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -25,6 +25,7 @@ public class LevelChunkSection { diff --git a/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch index 3be1d22faee9..85c6a4609f99 100644 --- a/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Detail more information in watchdog dumps - Dump player name, player uuid, position, and world for packet handling diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 872ad936dd86b510f24676fe565eb547b35bcb5e..20cd5c5d197d92f7127aadad063c4aabfc4863a6 100644 +index 28adc086f7bc1b6f403e65c5db51b267c90f2f37..5d73043dc9847ae195cef804fa0b0f4bf6db06f2 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -521,7 +521,13 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -76,10 +76,10 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index dcbcb1df7a8c1e5f78b8f202e4207afc1054a414..ec2a8656148b7ccdf519ce6d13494d22dadc0789 100644 +index bc887fd2788f1c56ed3b8a10ad15cfc23f065138..28e6af9e265c1d8328e8e80ec7e519e244caf297 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1244,7 +1244,26 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1239,7 +1239,26 @@ public class ServerLevel extends Level implements WorldGenLevel { } @@ -106,7 +106,7 @@ index dcbcb1df7a8c1e5f78b8f202e4207afc1054a414..ec2a8656148b7ccdf519ce6d13494d22 ++TimingHistory.entityTicks; // Paper - timings // Spigot start co.aikar.timings.Timing timer; // Paper -@@ -1284,7 +1303,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1279,7 +1298,13 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(entity, entity1); } // } finally { timer.stopTiming(); } // Paper - timings - move up @@ -122,10 +122,10 @@ index dcbcb1df7a8c1e5f78b8f202e4207afc1054a414..ec2a8656148b7ccdf519ce6d13494d22 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b9d70f71b2b03190e329d1f843b54ac4c73543ab..054825419c98351af15309ecfa007fd7e1ee1bea 100644 +index 42eb530571c9f7854888e7f3f6a63ef10dba1b4e..5682ec12d9a54979022978421dd8875a90ed9682 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1031,7 +1031,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1030,7 +1030,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.onGround; } @@ -168,7 +168,7 @@ index b9d70f71b2b03190e329d1f843b54ac4c73543ab..054825419c98351af15309ecfa007fd7 if (this.noPhysics) { this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); } else { -@@ -1201,6 +1236,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1200,6 +1235,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.level().getProfiler().pop(); } } @@ -182,7 +182,7 @@ index b9d70f71b2b03190e329d1f843b54ac4c73543ab..054825419c98351af15309ecfa007fd7 } private boolean isStateClimbable(BlockState state) { -@@ -4270,7 +4312,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4269,7 +4311,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void setDeltaMovement(Vec3 velocity) { @@ -192,7 +192,7 @@ index b9d70f71b2b03190e329d1f843b54ac4c73543ab..054825419c98351af15309ecfa007fd7 } public void addDeltaMovement(Vec3 velocity) { -@@ -4373,7 +4417,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4372,7 +4416,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // Paper end - Fix MC-4 if (this.position.x != x || this.position.y != y || this.position.z != z) { diff --git a/patches/server/0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch index edc9520194a3..7f1db1c715d9 100644 --- a/patches/server/0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b4711272fb36b631d4426ee5b5e29fb6f11e3d1d..15224b31e926ab16b1ef8f2ebdca4dba20637789 100644 +index 28e6af9e265c1d8328e8e80ec7e519e244caf297..4f48e7ee15f381e0bcf71fc4c7d37daf2dd4f7fd 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2696,6 +2696,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2676,6 +2676,11 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message diff --git a/patches/server/0688-Update-head-rotation-in-missing-places.patch b/patches/server/0688-Update-head-rotation-in-missing-places.patch index 9478062a823f..30130e3939b8 100644 --- a/patches/server/0688-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0688-Update-head-rotation-in-missing-places.patch @@ -8,10 +8,10 @@ This is because bukkit uses a separate head rotation field for yaw. This issue only applies to players. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 873ae06dc0b5de6cc69e2e8a24a882ca90ee8663..cee005823020adaef519267630030e8d31b5b994 100644 +index 5682ec12d9a54979022978421dd8875a90ed9682..a6fc204fce8f44d772ff0f438c6d62850b0e224f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1918,6 +1918,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1917,6 +1917,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setXRot(Mth.clamp(pitch, -90.0F, 90.0F) % 360.0F); this.yRotO = this.getYRot(); this.xRotO = this.getXRot(); @@ -19,7 +19,7 @@ index 873ae06dc0b5de6cc69e2e8a24a882ca90ee8663..cee005823020adaef519267630030e8d } public void absMoveTo(double x, double y, double z) { -@@ -1956,6 +1957,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1955,6 +1956,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setXRot(pitch); this.setOldPosAndRot(); this.reapplyPosition(); diff --git a/patches/server/0695-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0695-don-t-attempt-to-teleport-dead-entities.patch index 2a248fca0c17..f0a2e3372e5d 100644 --- a/patches/server/0695-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0695-don-t-attempt-to-teleport-dead-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cee005823020adaef519267630030e8d31b5b994..3086ded2c65b2d623a50401fb0a1612d073da450 100644 +index a6fc204fce8f44d772ff0f438c6d62850b0e224f..78034cef7c7555eb4f772a618662a8ef9d0b7083 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -794,7 +794,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -793,7 +793,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit start public void postTick() { // No clean way to break out of ticking once the entity has been copied to a new world, so instead we move the portalling later in the tick cycle diff --git a/patches/server/0706-Collision-optimisations.patch b/patches/server/0706-Collision-optimisations.patch index ff810184975e..c00b088fced6 100644 --- a/patches/server/0706-Collision-optimisations.patch +++ b/patches/server/0706-Collision-optimisations.patch @@ -2214,10 +2214,10 @@ index 1f14b904807d4b593b608c8dc7a97bd8c320eceb..0da976438be3de7b82e8b1e3ce06d01c entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 71ea121661874c11147bea0f9a4a147583f312fc..b6146726e767fa0401da3d7f5bbbf95b7c7a17d9 100644 +index 78034cef7c7555eb4f772a618662a8ef9d0b7083..515c948cce0066cfd6e292afd65ceefc320ed553 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1217,9 +1217,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1216,9 +1216,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S float f = this.getBlockSpeedFactor(); this.setDeltaMovement(this.getDeltaMovement().multiply((double) f, 1.0D, (double) f)); @@ -2265,7 +2265,7 @@ index 71ea121661874c11147bea0f9a4a147583f312fc..b6146726e767fa0401da3d7f5bbbf95b if (this.remainingFireTicks <= 0) { this.setRemainingFireTicks(-this.getFireImmuneTicks()); } -@@ -1399,32 +1434,82 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1398,32 +1433,82 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } private Vec3 collide(Vec3 movement) { @@ -2364,7 +2364,7 @@ index 71ea121661874c11147bea0f9a4a147583f312fc..b6146726e767fa0401da3d7f5bbbf95b } public static Vec3 collideBoundingBox(@Nullable Entity entity, Vec3 movement, AABB entityBoundingBox, Level world, List collisions) { -@@ -2629,11 +2714,70 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2628,11 +2713,70 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S float f = this.dimensions.width * 0.8F; AABB axisalignedbb = AABB.ofSize(this.getEyePosition(), (double) f, 1.0E-6D, (double) f); @@ -2440,7 +2440,7 @@ index 71ea121661874c11147bea0f9a4a147583f312fc..b6146726e767fa0401da3d7f5bbbf95b } diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index e29d1801f15c4c5680b683783e97a7aae3da753e..1e42372f038757b48990643aa2f118be415e0463 100644 +index 5bda9612cbc7c233ad0195cb4e943de063130d00..81b54fd9f867666d688068d39344c7e19ed639c3 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -353,7 +353,7 @@ public class ArmorStand extends LivingEntity { @@ -2600,10 +2600,10 @@ index a25497eec004add7408a63b1a0f09e3fa443b324..9f892de55ab03367daed4c30cc44c9dd // Paper start diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2d2ef8455ea650baa1db74135c9321d97d10d12e..b023626467fc1f507d979653098bf30b18bd47c3 100644 +index 38ad089c87bcc3f81998142e49edae4f4fad8ba9..8c363306b5dac302ab3c26a245aa4a768b304ed4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -300,6 +300,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -299,6 +299,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime); this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); this.chunkPacketBlockController = this.paperConfig().anticheat.antiXray.enabled ? new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray @@ -2613,11 +2613,11 @@ index 2d2ef8455ea650baa1db74135c9321d97d10d12e..b023626467fc1f507d979653098bf30b + // Paper end - optimise collisions } - // Paper start -@@ -341,6 +345,370 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + // Paper start - Cancel hit for vanished players +@@ -340,6 +344,370 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return true; } - // Paper end + // Paper end - Cancel hit for vanished players + // Paper start - optimise collisions + public final int minSection; + public final int maxSection; @@ -2985,7 +2985,7 @@ index 2d2ef8455ea650baa1db74135c9321d97d10d12e..b023626467fc1f507d979653098bf30b @Override public boolean isClientSide() { return this.isClientSide; -@@ -961,7 +1329,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -960,7 +1328,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public boolean noCollision(@Nullable Entity entity, AABB box) { if (entity instanceof net.minecraft.world.entity.decoration.ArmorStand && !entity.level().paperConfig().entities.armorStands.doCollisionEntityLookups) return false; @@ -3018,7 +3018,7 @@ index af62781cc96354c87aa63d4f03f9e25b81959081..6c4fd56956982eee743b4dea4e8b9258 public boolean propagatesSkylightDown(BlockState state, BlockGetter world, BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 10e8532ed21895f98808c86fa2ae5a2e41d3965f..5b5a472e446e21f46e5f92c3e1fd79498a1aa4a6 100644 +index d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26..100c2629f2746fc00435f60998dba70135637ef7 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -882,6 +882,10 @@ public abstract class BlockBehaviour implements FeatureElement { @@ -3030,7 +3030,7 @@ index 10e8532ed21895f98808c86fa2ae5a2e41d3965f..5b5a472e446e21f46e5f92c3e1fd7949 + this.id2 = it.unimi.dsi.fastutil.HashCommon.murmurHash3(it.unimi.dsi.fastutil.HashCommon.murmurHash3(ID_GENERATOR.getAndIncrement() + RANDOM_OFFSET) + RANDOM_OFFSET); + // Paper end - optimise collisions } - // Paper start - impl cached craft block data, lazy load to fix issue with loading at the wrong time + // Paper start - Perf: impl cached craft block data, lazy load to fix issue with loading at the wrong time private org.bukkit.craftbukkit.block.data.CraftBlockData cachedCraftBlockData; @@ -930,6 +934,52 @@ public abstract class BlockBehaviour implements FeatureElement { return this.conditionallyFullOpaque; diff --git a/patches/server/0712-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0712-Forward-CraftEntity-in-teleport-command.patch index f6e58ad28406..a1ad82d694c4 100644 --- a/patches/server/0712-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0712-Forward-CraftEntity-in-teleport-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5be92231bf62285f29dcf32b2ef65baaf5755804..a5820d750e88918ef819be0d0896e31b628ab302 100644 +index 515c948cce0066cfd6e292afd65ceefc320ed553..11e57b335150fcf9030e23a060f2608d97e09eb1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3531,6 +3531,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3530,6 +3530,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void restoreFrom(Entity original) { @@ -22,7 +22,7 @@ index 5be92231bf62285f29dcf32b2ef65baaf5755804..a5820d750e88918ef819be0d0896e31b CompoundTag nbttagcompound = original.saveWithoutId(new CompoundTag()); nbttagcompound.remove("Dimension"); -@@ -3621,10 +3628,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3620,10 +3627,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } // CraftBukkit end diff --git a/patches/server/0734-Freeze-Tick-Lock-API.patch b/patches/server/0734-Freeze-Tick-Lock-API.patch index 4bdca68930ce..53d8e6086346 100644 --- a/patches/server/0734-Freeze-Tick-Lock-API.patch +++ b/patches/server/0734-Freeze-Tick-Lock-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f3cb6eac54b245ff6cbe3a1659ac9b7a1b0856a0..276c7dd6af228f404cec7aeb58dad10f2a23a18b 100644 +index 11e57b335150fcf9030e23a060f2608d97e09eb1..811479660f7e6148b5448d3342a862aff36ec673 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -409,6 +409,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -408,6 +408,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S private org.bukkit.util.Vector origin; @javax.annotation.Nullable private UUID originWorld; @@ -16,7 +16,7 @@ index f3cb6eac54b245ff6cbe3a1659ac9b7a1b0856a0..276c7dd6af228f404cec7aeb58dad10f public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -840,7 +841,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -839,7 +840,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setRemainingFireTicks(this.remainingFireTicks - 1); } @@ -25,7 +25,7 @@ index f3cb6eac54b245ff6cbe3a1659ac9b7a1b0856a0..276c7dd6af228f404cec7aeb58dad10f this.setTicksFrozen(0); this.level().levelEvent((Player) null, 1009, this.blockPosition, 1); } -@@ -2454,6 +2455,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2453,6 +2454,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (fromNetherPortal) { nbttagcompound.putBoolean("Paper.FromNetherPortal", true); } @@ -35,7 +35,7 @@ index f3cb6eac54b245ff6cbe3a1659ac9b7a1b0856a0..276c7dd6af228f404cec7aeb58dad10f // Paper end return nbttagcompound; } catch (Throwable throwable) { -@@ -2598,6 +2602,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2597,6 +2601,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (spawnReason == null) { spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; } @@ -46,7 +46,7 @@ index f3cb6eac54b245ff6cbe3a1659ac9b7a1b0856a0..276c7dd6af228f404cec7aeb58dad10f } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 95442c5e5abfd916a1b0add6381a8f57b36125e7..13b4a2eae01ee51546e6e5e3c4093e5389971d7d 100644 +index abfb7dbd03f79bad00a3b713717987e12743c6f0..3de76ca462d65e18a5d60dab367e09b48bc5d5a7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3452,7 +3452,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0766-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0766-Ensure-entity-passenger-world-matches-ridden-entity.patch index eaaa489b7748..c3d21f2d7e3e 100644 --- a/patches/server/0766-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0766-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e61cb14e9451b242c8324d81b462e80832ef73aa..837c5be7ba4caf8ad36262b15b8f5b644fb861db 100644 +index 811479660f7e6148b5448d3342a862aff36ec673..f5cd50592244394c4186380a372a34733aa04c49 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2847,7 +2847,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2846,7 +2846,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean startRiding(Entity entity, boolean force) { diff --git a/patches/server/0782-Don-t-tick-markers.patch b/patches/server/0782-Don-t-tick-markers.patch index 6e0c3d6db3c3..ecbd39890d97 100644 --- a/patches/server/0782-Don-t-tick-markers.patch +++ b/patches/server/0782-Don-t-tick-markers.patch @@ -23,10 +23,10 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5e5a018433414af76eaa1e781f61612d } }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 15224b31e926ab16b1ef8f2ebdca4dba20637789..cb2f5d727971c809bcb3eea0db04de4fa91459fb 100644 +index 4f48e7ee15f381e0bcf71fc4c7d37daf2dd4f7fd..6b798d81eeb226ce078dc867277ba80cb22c9d7d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2605,6 +2605,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2585,6 +2585,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } public void onTickingStart(Entity entity) { diff --git a/patches/server/0790-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0790-Prevent-entity-loading-causing-async-lookups.patch index 1d3f44f5e814..75f49771d6f6 100644 --- a/patches/server/0790-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0790-Prevent-entity-loading-causing-async-lookups.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 837c5be7ba4caf8ad36262b15b8f5b644fb861db..2804758ce72c943fa47c1ead685032c9501a0ea9 100644 +index f5cd50592244394c4186380a372a34733aa04c49..125699e0d9c4e239e32a86376a059b28c2982713 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -803,6 +803,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -802,6 +802,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void baseTick() { this.level().getProfiler().push("entityBaseTick"); diff --git a/patches/server/0792-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0792-Add-Alternate-Current-redstone-implementation.patch index 406677760eb3..8bc498bcb4e2 100644 --- a/patches/server/0792-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/0792-Add-Alternate-Current-redstone-implementation.patch @@ -2008,18 +2008,18 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index cd20322f88c2952b451b226c4c5c3f41879d0305..092be422770ceb11446b99f6e2d746d1c9ce4f88 100644 +index 6b798d81eeb226ce078dc867277ba80cb22c9d7d..5c9083246fb7f49b9091ba7467d55b6dc7cd18f1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper - public boolean hasEntityMoveEvent = false; // Paper - Add EntityMoveEvent + public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent + private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current) - public static Throwable getAddToWorldStackTrace(Entity entity) { - final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); - io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); -@@ -2594,6 +2595,13 @@ public class ServerLevel extends Level implements WorldGenLevel { + + @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI + return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately +@@ -2574,6 +2575,13 @@ public class ServerLevel extends Level implements WorldGenLevel { return crashreportsystemdetails; } @@ -2034,10 +2034,10 @@ index cd20322f88c2952b451b226c4c5c3f41879d0305..092be422770ceb11446b99f6e2d746d1 EntityCallbacks() {} diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0c2654986b9a5c7f210ba387851997ecec1ebb00..a03dedf6fb845e9435b5171046bb6cd5dda94b71 100644 +index 8c363306b5dac302ab3c26a245aa4a768b304ed4..8ad909802a107ff670e839915071a7d116099e1c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1885,4 +1885,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1884,4 +1884,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return range <= 0 ? 64.0 * 64.0 : range * range; // 64 is taken from default in ServerLevel#levelEvent } // Paper end - respect global sound events gamerule diff --git a/patches/server/0799-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0799-Prevent-empty-items-from-being-added-to-world.patch index bb9ca4b52149..1a0a28f75aad 100644 --- a/patches/server/0799-Prevent-empty-items-from-being-added-to-world.patch +++ b/patches/server/0799-Prevent-empty-items-from-being-added-to-world.patch @@ -7,10 +7,10 @@ The previous solution caused a bunch of bandaid fixes inorder to resolve edge ca Just simply prevent them from being added to the world instead. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 17f753ac54e73f3644d71c3ef5cbdfb850f5766c..1089c0ad619784d25b1384db2f09eebb53fa4536 100644 +index 5c9083246fb7f49b9091ba7467d55b6dc7cd18f1..b82dc3d8558d18692769f7b9ee835a4eb4dd8253 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1587,6 +1587,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1567,6 +1567,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; } else { diff --git a/patches/server/0803-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0803-Add-various-missing-EntityDropItemEvent-calls.patch index 1fc3b95af33c..5f52f376f288 100644 --- a/patches/server/0803-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0803-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2804758ce72c943fa47c1ead685032c9501a0ea9..071fc07228253d55edaf17950db80bb25001f7f8 100644 +index 125699e0d9c4e239e32a86376a059b28c2982713..b9a1a7edb9f9aea0fa53cc3edfbc4522949f4093 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2699,6 +2699,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2698,6 +2698,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S stack.setCount(0); // Paper - destroy this item - if this ever leaks due to game bugs, ensure it doesn't dupe entityitem.setDefaultPickUpDelay(); diff --git a/patches/server/0807-Add-EntityPortalReadyEvent.patch b/patches/server/0807-Add-EntityPortalReadyEvent.patch index c06f957a1e4c..f75955fb323e 100644 --- a/patches/server/0807-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0807-Add-EntityPortalReadyEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 071fc07228253d55edaf17950db80bb25001f7f8..0d427f0a70c8d85762fededfe920418d66636ebb 100644 +index b9a1a7edb9f9aea0fa53cc3edfbc4522949f4093..fc0f58560a53a783b9fabceee227bed3908bae89 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3099,6 +3099,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3098,6 +3098,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit this.level().getProfiler().push("portal"); this.portalTime = i; @@ -22,7 +22,7 @@ index 071fc07228253d55edaf17950db80bb25001f7f8..0d427f0a70c8d85762fededfe920418d this.setPortalCooldown(); // CraftBukkit start if (this instanceof ServerPlayer) { -@@ -3106,6 +3113,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3105,6 +3112,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { this.changeDimension(worldserver1); } diff --git a/patches/server/0810-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0810-Warn-on-plugins-accessing-faraway-chunks.patch index 0e9a764669a7..db7aae3b689b 100644 --- a/patches/server/0810-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0810-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a03dedf6fb845e9435b5171046bb6cd5dda94b71..2b0ee0cbc6d204de31027aef9621ac6c026cb22f 100644 +index 8ad909802a107ff670e839915071a7d116099e1c..6a8e9a81b700caf87046580cc019efb2dbd07188 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -813,7 +813,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -812,7 +812,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } private static boolean isInWorldBoundsHorizontal(BlockPos pos) { @@ -18,7 +18,7 @@ index a03dedf6fb845e9435b5171046bb6cd5dda94b71..2b0ee0cbc6d204de31027aef9621ac6c private static boolean isOutsideSpawnableHeight(int y) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 19f91e08664c996b540447a46cc79e89c8e55023..cd2b1a0441d478f50a4d45159e506628dafaa9fc 100644 +index bbcd28de0c05d56d7ed973c0e3ee455e976cdd18..9196e803b2cde66e288cb443639ad8750fef722c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -312,9 +312,24 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch index 5ebfc6e48723..e8faff7cef98 100644 --- a/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch @@ -113,10 +113,10 @@ index 6cd6d69a20e95e344fc18ab67dc300824537a59b..2e2a7c2cf3081187da817479a9da3eb1 } } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index b303603178a9de5f14bede9e601f80cfb44ecc91..bf78917f1e356dc3b7d7bcedffab282978a35917 100644 +index f761d600bb5d995a25ffbbe5469625508de1f8bc..7fa3066575fd8e762dcf5de59a333e15044226e8 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -898,7 +898,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -894,7 +894,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } // Paper end - Cache chunk status on disk @@ -126,10 +126,10 @@ index b303603178a9de5f14bede9e601f80cfb44ecc91..bf78917f1e356dc3b7d7bcedffab2829 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 43d14fac84b932c0a5a94dd6b01c22c1a289b8c2..f594998de4ff40b56d039bc48721f6b53f0a1ec0 100644 +index b82dc3d8558d18692769f7b9ee835a4eb4dd8253..bd37a2cb4c700566c72ada303138482f90d10742 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1032,7 +1032,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1027,7 +1027,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } else { AABB axisalignedbb = AABB.encapsulatingFullBlocks(blockposition1, new BlockPos(blockposition1.atY(this.getMaxBuildHeight()))).inflate(3.0D); List list = this.getEntitiesOfClass(LivingEntity.class, axisalignedbb, (entityliving) -> { @@ -139,7 +139,7 @@ index 43d14fac84b932c0a5a94dd6b01c22c1a289b8c2..f594998de4ff40b56d039bc48721f6b5 if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index aad7e1d9e17a0daa8697c13d1ef8cf7331cdf001..142094dcdfd9ba1c4cb77107d17f4c6b28888e7e 100644 +index 1f5d86e6411fffddf70308f3fd3cb25275db1710..7a46b820c4f9354d2d07e9721bac25df3f043aa5 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -468,14 +468,14 @@ public class ServerPlayer extends Player { @@ -160,7 +160,7 @@ index aad7e1d9e17a0daa8697c13d1ef8cf7331cdf001..142094dcdfd9ba1c4cb77107d17f4c6b while (!world.noCollision(this, this.getBoundingBox(), true) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { // Paper - make sure this loads chunks, we default to NOT loading now this.setPos(this.getX(), this.getY() + 1.0D, this.getZ()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index aad371a281486631151388ee2348ffaa2a465bc5..8b339ad425d4021b859126d763adf393cb0e86c5 100644 +index fc19c68c19d443be654a5600f633d3a77f7069c1..9503511b28888e98ed65befdb95d03685ae9e5e1 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -92,7 +92,7 @@ public class ServerPlayerGameMode { @@ -173,7 +173,7 @@ index aad371a281486631151388ee2348ffaa2a465bc5..8b339ad425d4021b859126d763adf393 this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index b1f13c4d8de125a56b76bc85ccced039ac3c4785..b8213713b54e0bfaa0ddca41ec76f6840c0e1d20 100644 +index e1498e3c81fc3ed9e871fea3db5cfcccf45cac04..9822d70191512b263435a3761c683b6be4c7acf1 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -711,8 +711,10 @@ public abstract class PlayerList { @@ -452,7 +452,7 @@ index 333cc37e4f3ca3ea95191dcaafda6be59ef79b96..91071fa934222c9246547c788e3e6cb1 return; } diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 0813e7510c43ed6916e83635f2be6d39ce2feb5b..137ee0271f1d7adbf3c463b96e9c4627fd5ca74b 100644 +index c7ba7ac1a3869e4db1ef6b0350b3cab7f31a94c4..d7beeac4a8e4a16221809663a5aa03389a759742 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -675,13 +675,10 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit diff --git a/patches/server/0832-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0832-Remove-unnecessary-onTrackingStart-during-navigation.patch index 155b92b23059..19c93711aac1 100644 --- a/patches/server/0832-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0832-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4ffb462f051744d5f7f7b4cf0c49f5d1533d1d53..9eacc0c96d96f026dcc75479606567a47c7bb008 100644 +index bd37a2cb4c700566c72ada303138482f90d10742..ec27d7e7248d8bf9e81db8a22923ff3af49324bb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2641,7 +2641,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2621,7 +2621,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; @@ -17,7 +17,7 @@ index 4ffb462f051744d5f7f7b4cf0c49f5d1533d1d53..9eacc0c96d96f026dcc75479606567a4 String s = "onTrackingStart called during navigation iteration"; Util.logAndPauseIfInIde("onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration")); -@@ -2727,7 +2727,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2707,7 +2707,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; diff --git a/patches/server/0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index 03ce1c03938b..362f24728b7e 100644 --- a/patches/server/0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0d427f0a70c8d85762fededfe920418d66636ebb..0c1cb3d5892b81b9f8a1894e429bc237c877298d 100644 +index fc0f58560a53a783b9fabceee227bed3908bae89..aa634b67ee3a0c473f5e6f6cb6adb0306350ce1c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3378,6 +3378,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3377,6 +3377,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S pluginManager.callEvent(entityCombustEvent); if (!entityCombustEvent.isCancelled()) { this.setSecondsOnFire(entityCombustEvent.getDuration(), false); @@ -21,7 +21,7 @@ index 0d427f0a70c8d85762fededfe920418d66636ebb..0c1cb3d5892b81b9f8a1894e429bc237 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index 450f87ea7f4c5ef3b26a3c75bc7c8bd08a982075..cd076da69e89d843d06ab5be854e8dce122ecb1d 100644 +index 118403953629b405b9db78de1bf684b31289c499..e9ec8a8969651ea6760bf01c622c66efa7f6e7e5 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java @@ -134,6 +134,10 @@ public abstract class BaseFireBlock extends Block { diff --git a/patches/server/0856-check-global-player-list-where-appropriate.patch b/patches/server/0856-check-global-player-list-where-appropriate.patch index 16c079cd6a99..1643eb9ec7ab 100644 --- a/patches/server/0856-check-global-player-list-where-appropriate.patch +++ b/patches/server/0856-check-global-player-list-where-appropriate.patch @@ -7,10 +7,10 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9eacc0c96d96f026dcc75479606567a47c7bb008..8c919616acbe571710bd8bb39eef4355b6d3d2b3 100644 +index ec27d7e7248d8bf9e81db8a22923ff3af49324bb..3c1a3a757cec89058ae9300be6902d3fe9342d25 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2764,4 +2764,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2744,4 +2744,12 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::move); } } @@ -24,7 +24,7 @@ index 9eacc0c96d96f026dcc75479606567a47c7bb008..8c919616acbe571710bd8bb39eef4355 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a027d4b0769b7ee549dc25aac4a232fb1943e443..c726af466c1156a3b2c1ee18d1ac1b4613ee2431 100644 +index 7e0882411d7be80a432c05f2e1a8a192c36ccf63..7ca74c68ee81a46b5c71a454c754fd4e6ffae4bb 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -66,7 +66,7 @@ index 9f892de55ab03367daed4c30cc44c9dd8adc29ed..a3d15f30eaab29d85cb6b3d693df9980 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java -index ee11a52e82091911aa3a196bcc1f7ab829626cef..f35939f3ef42591cfa8ed7de7599695b9d9d0067 100644 +index e143f42e71ac774d49b75e6d85591aa1189ee210..c27b97e9f097c824de7c785b4cc9e0a503259b08 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java @@ -100,6 +100,13 @@ public class SculkShriekerBlockEntity extends BlockEntity implements GameEventLi diff --git a/patches/server/0863-Player-Entity-Tracking-Events.patch b/patches/server/0863-Player-Entity-Tracking-Events.patch index c5c3e3dc3775..005bab7fe494 100644 --- a/patches/server/0863-Player-Entity-Tracking-Events.patch +++ b/patches/server/0863-Player-Entity-Tracking-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player Entity Tracking Events diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index bf78917f1e356dc3b7d7bcedffab282978a35917..6420a6c16a8c3f0f45649834fe40e1939d1fead7 100644 +index 7fa3066575fd8e762dcf5de59a333e15044226e8..6ccd2a5a334c846850a9d064210f2d7f1d311470 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1409,7 +1409,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1405,7 +1405,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // CraftBukkit end if (flag) { if (this.seenBy.add(player.connection)) { @@ -21,10 +21,10 @@ index bf78917f1e356dc3b7d7bcedffab282978a35917..6420a6c16a8c3f0f45649834fe40e193 } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 98f7248920a25930ac813e22bbd816294f06d057..6e1c088a234ff4c93ea790c46f1e1f015fc24bec 100644 +index aa634b67ee3a0c473f5e6f6cb6adb0306350ce1c..df3bdb116ead1596c6f93d6e9eb45711fb9b5eb5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4105,7 +4105,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4104,7 +4104,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void startSeenByPlayer(ServerPlayer player) {} diff --git a/patches/server/0873-Improve-PortalEvents.patch b/patches/server/0873-Improve-PortalEvents.patch index da472a0bb35b..6af7e83d122a 100644 --- a/patches/server/0873-Improve-PortalEvents.patch +++ b/patches/server/0873-Improve-PortalEvents.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6e1c088a234ff4c93ea790c46f1e1f015fc24bec..805f438e4b7a03393424c2ba11bf1f7fc4822f52 100644 +index df3bdb116ead1596c6f93d6e9eb45711fb9b5eb5..4c8369e968df8b2a809f9c6c2db6cc185104a385 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3763,7 +3763,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3762,7 +3762,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S Location enter = bukkitEntity.getLocation(); Location exit = CraftLocation.toBukkit(exitPosition, exitWorldServer.getWorld()); diff --git a/patches/server/0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index 8dbe3cc05414..a9ab51aafd1f 100644 --- a/patches/server/0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 30e831bc4409260047016279aa5f36d2ad2934b4..b295895b2b1f8b3fbf7d97712e14b1447350a0ff 100644 +index 4c8369e968df8b2a809f9c6c2db6cc185104a385..cd28a4ca35d6fe29c51f19be6cc43795c91c0454 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1162,7 +1162,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1161,7 +1161,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } if (!bl.getType().isAir()) { diff --git a/patches/server/0888-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0888-Update-the-flag-when-a-captured-block-state-is-outda.patch index 8ed5ba6cdf95..17954c83a344 100644 --- a/patches/server/0888-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0888-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2b0ee0cbc6d204de31027aef9621ac6c026cb22f..6f828ff4c54c2ddd4cc03c0e368afda2521e24dd 100644 +index 6a8e9a81b700caf87046580cc019efb2dbd07188..2afa2d7b5978cc8474228ff45b66d0d3fac7728a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -923,6 +923,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -922,6 +922,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); this.capturedBlockStates.put(pos.immutable(), blockstate); } diff --git a/patches/server/0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index 898506348d60..249a12dda7d9 100644 --- a/patches/server/0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8c919616acbe571710bd8bb39eef4355b6d3d2b3..df40ffecfa6d34aa3cdffbbec03e049a271364ab 100644 +index 3c1a3a757cec89058ae9300be6902d3fe9342d25..e8dc785913f5fd1238a73c2384d2abef0e9d2e4b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1724,6 +1724,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1704,6 +1704,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void gameEvent(GameEvent event, Vec3 emitterPos, GameEvent.Context emitter) { diff --git a/patches/server/0916-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0916-Refresh-ProjectileSource-for-projectiles.patch index c3079d4fbfc4..edd538ada45c 100644 --- a/patches/server/0916-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0916-Refresh-ProjectileSource-for-projectiles.patch @@ -14,10 +14,10 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b295895b2b1f8b3fbf7d97712e14b1447350a0ff..5c21f26109910c0783afd32953a035144d19ec94 100644 +index cd28a4ca35d6fe29c51f19be6cc43795c91c0454..b8205779022e56a0af10b02b52be77e035da1a6b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -386,6 +386,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -385,6 +385,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public boolean inWorld = false; public boolean generation; public int maxAirTicks = this.getDefaultMaxAirSupply(); // CraftBukkit - SPIGOT-6907: re-implement LivingEntity#setMaximumAir() diff --git a/patches/server/0918-Fix-block-place-logic.patch b/patches/server/0918-Fix-block-place-logic.patch index 051d3982dbf2..feb8adf581a8 100644 --- a/patches/server/0918-Fix-block-place-logic.patch +++ b/patches/server/0918-Fix-block-place-logic.patch @@ -9,7 +9,7 @@ Fix several issues when a player interact with a block: * poi can desync when the BlockPhysicsEvent is cancelled diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index daf093518f1daf598c858cfaf48357255a1fb0cf..c06e4b0683f0f125b79a4afce7daf909530d7bbf 100644 +index 1ac739c92031e80c35e1af4417e6358346079580..8c54b92b65b3d379e14a11370b09d45351ab22e1 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java @@ -130,7 +130,7 @@ public class BlockItem extends Item { @@ -22,7 +22,7 @@ index daf093518f1daf598c858cfaf48357255a1fb0cf..c06e4b0683f0f125b79a4afce7daf909 if ((entityhuman == null || !entityhuman.getAbilities().instabuild) && itemstack != ItemStack.EMPTY) { // CraftBukkit itemstack.shrink(1); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 63cd9cd79217a9bcedb6647e6f61d9bccc28d9f0..6070711b9825612fbc485d840ed3ed80cf912493 100644 +index 71d93daa527ae34b83138394fa79289c403a33d8..94cb7625c451df53de60783535ce0d58b37e35bf 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -493,13 +493,7 @@ public final class ItemStack { @@ -41,10 +41,10 @@ index 63cd9cd79217a9bcedb6647e6f61d9bccc28d9f0..6070711b9825612fbc485d840ed3ed80 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 6f828ff4c54c2ddd4cc03c0e368afda2521e24dd..a57b7e85f068c3131c6fc41cd8e79dec2f053748 100644 +index 2afa2d7b5978cc8474228ff45b66d0d3fac7728a..92e823a123129694a9db5f54659f8d14abebf9b1 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1038,17 +1038,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1037,17 +1037,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam CraftWorld world = ((ServerLevel) this).getWorld(); diff --git a/patches/server/0933-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0933-Don-t-load-chunks-for-supporting-block-checks.patch index 217bb7961189..e731c10ccdf9 100644 --- a/patches/server/0933-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0933-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5c21f26109910c0783afd32953a035144d19ec94..d08ce34e1d1ce4ac239f6b7ecf0579ab130fa976 100644 +index b8205779022e56a0af10b02b52be77e035da1a6b..3633138b67a3b92a4d7792bbc4387632015fcc3b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1362,7 +1362,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1361,7 +1361,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } protected BlockPos getOnPos(float offset) { diff --git a/patches/server/0946-Folia-scheduler-and-owned-region-API.patch b/patches/server/0946-Folia-scheduler-and-owned-region-API.patch index 8fbfc6239798..bab86433c4ff 100644 --- a/patches/server/0946-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0946-Folia-scheduler-and-owned-region-API.patch @@ -1148,7 +1148,7 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index addb4133295739ea19e0e770e040698411399944..5caa39b529c6c0798d91e8e8468b40988f6fb987 100644 +index afc23f859188a6cda27a683babd551c250a748ef..174f3dab7c7f02dd09d02dc8b4e69190284c3f48 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1629,6 +1629,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - Add EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9d65f0558c7c4db75ed6337dc241c01746933315..3cef73da0ac4cbf8104fa5dff8321f605287a580 100644 +index e8dc785913f5fd1238a73c2384d2abef0e9d2e4b..718ebe1ed29d6db62cc666d0b628e6f9a2a3ce5c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -570,6 +570,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -565,6 +565,17 @@ public class ServerLevel extends Level implements WorldGenLevel { return player != null && player.level() == this ? player : null; } // Paper end - optimise getPlayerByUUID @@ -52,7 +52,7 @@ index 9d65f0558c7c4db75ed6337dc241c01746933315..3cef73da0ac4cbf8104fa5dff8321f60 // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 96dd68d55dbcb4f6bf3f3096802e48ca50ab766e..b8c0f11a29ebc738a935d78e7a1e19914d43b533 100644 +index 52764f0f5b42e3b7fd9624bc342e9927037880d2..6abc5061888d965161de979465bb625c173c59c6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -124,7 +124,7 @@ public class ServerPlayerGameMode { @@ -65,7 +65,7 @@ index 96dd68d55dbcb4f6bf3f3096802e48ca50ab766e..b8c0f11a29ebc738a935d78e7a1e1991 if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a09ad0cdbc9f3eb2ac77836076292822991b3d08..3d8efaaeea5cf7582c23cbb48beecf8eaf98a03e 100644 +index 09bca0dd8cb6289817f758a4f05a54c267aec885..099ee1186f84ce6a76ac33dbf9cae961641c6508 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3819,6 +3819,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1000-Optimise-nearby-player-retrieval.patch b/patches/server/1000-Optimise-nearby-player-retrieval.patch index 86a14dbd3e84..7cbe0ada5ee8 100644 --- a/patches/server/1000-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1000-Optimise-nearby-player-retrieval.patch @@ -8,10 +8,10 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 048bcbd730ee87cf2f040bda1080ae1f6e4ef414..c764e236ea3678bba9dd05adc16cc4640c27d4bf 100644 +index 718ebe1ed29d6db62cc666d0b628e6f9a2a3ce5c..989ea283a4dc24fa17dd4bd1e03167fde2c97132 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -581,6 +581,115 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -576,6 +576,115 @@ public class ServerLevel extends Level implements WorldGenLevel { this.lagCompensationTick = (System.nanoTime() - net.minecraft.server.MinecraftServer.SERVER_INIT) / (java.util.concurrent.TimeUnit.MILLISECONDS.toNanos(50L)); } // Paper end - lag compensation @@ -195,7 +195,7 @@ index ed1b95ec694b0fe8b647964b18b8c33707fc0b47..65cd42ce9f553e0aa5bf248bdbf902f9 } } diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java -index 58422f00c7d64dbd1cf6d7211c9838875cbe7778..c157309ac78e7af084d3acb6e8b2bcd469a39d5e 100644 +index fae0dbfb6ac09a0c152c0f74a72583f44316def7..c8a80c1b2fedff22e8a877d466062375ffb2f0d7 100644 --- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java +++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java @@ -10,7 +10,7 @@ public class TargetingConditions { diff --git a/patches/server/1001-Fix-missing-map-initialize-event-call.patch b/patches/server/1001-Fix-missing-map-initialize-event-call.patch index 9632e4597a2d..e043a0374c17 100644 --- a/patches/server/1001-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/1001-Fix-missing-map-initialize-event-call.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c764e236ea3678bba9dd05adc16cc4640c27d4bf..fa16260652c0c47df2a02f728850d6e949ae774f 100644 +index 989ea283a4dc24fa17dd4bd1e03167fde2c97132..56f80db3dccc9db7bb5d5cb194fcf6af39c92aac 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2133,13 +2133,25 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2113,13 +2113,25 @@ public class ServerLevel extends Level implements WorldGenLevel { @Nullable @Override public MapItemSavedData getMapData(String id) { diff --git a/patches/server/1007-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/1007-Don-t-check-if-we-can-see-non-visible-entities.patch index 801657718024..b2ef1fef5c4e 100644 --- a/patches/server/1007-Don-t-check-if-we-can-see-non-visible-entities.patch +++ b/patches/server/1007-Don-t-check-if-we-can-see-non-visible-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't check if we can see non-visible entities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c6e764f140d3fe6342c6f224fe0d9643a3185cba..2458bc75ece2d5eadc49df0f1c94702bd20e779f 100644 +index 6c28b37056c70fa0076b290b24168bfb79ddd77d..257303162e3550e332cae01d5f6f158558b7ebf8 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1435,7 +1435,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1431,7 +1431,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end - Configurable entity tracking range by Y // CraftBukkit start - respect vanish API diff --git a/patches/server/1022-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1022-Don-t-fire-sync-events-during-worldgen.patch index 5974b5b93a97..98d2be65ada1 100644 --- a/patches/server/1022-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/1022-Don-t-fire-sync-events-during-worldgen.patch @@ -19,22 +19,22 @@ where generation happened directly to a ServerLevel and the entity still has the flag set. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index fa16260652c0c47df2a02f728850d6e949ae774f..9b0b2510edb4984b0714244bbe513e077af7b455 100644 +index 56f80db3dccc9db7bb5d5cb194fcf6af39c92aac..f27c9f99e70d45c433a348dd315bb31b44fefa78 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1681,6 +1681,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1676,6 +1676,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit start private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot + entity.generation = false; // Paper - Don't fire sync event during generation; Reset flag if it was added during a ServerLevel generation process - // Paper start + // Paper start - extra debug info if (entity.valid) { - MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); + MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f0e40ea053ca7b6749b443b2733271f71755329b..a70633d9585f94e673c58fc69660d984ca169561 100644 +index 39b1fe633a301d8cf948e5d63c2cf8a26a4b8854..5dabf6c4ba63b82aefa22cf41ec65dcf85779fe9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -713,7 +713,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -712,7 +712,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (pose == this.getPose()) { return; } @@ -68,7 +68,7 @@ index dd4cf9011bf48623e95d5d0f3ff27ee962c88200..a039217f9293ad3b0cc74c49450472eb }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index eb0e6cff1d93b06fea3e9b28a4ea1067e416183c..6860e588ad9daaf3d9afa11132967a50eeefe860 100644 +index efbb37255885badf6908cad948614df7beda9712..e937ace0c4c1097de3f95198b1bc1830dbc74658 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch index 42a6b5c0cb4c..af74fd9090ab 100644 --- a/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ad6fd14f7f19c20967906a8e01a4f76ee80aaf84..ce2e29de3628aba893a96688c9bbc58d1fc984bc 100644 +index ddea03dd90e7749ea2a347d2b9a985a0e4ab636c..2a897f577f4ed9cf8b3368fab971fa6381c90219 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -944,22 +944,20 @@ public class ServerPlayer extends Player { @@ -50,10 +50,10 @@ index ad6fd14f7f19c20967906a8e01a4f76ee80aaf84..ce2e29de3628aba893a96688c9bbc58d if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 18c73edca59c8bbd4ee57196c4455fb18d7869d9..0de5d58c9ed08292a2d0b478c5ce9f50a67f8a05 100644 +index 5dabf6c4ba63b82aefa22cf41ec65dcf85779fe9..ec251d54324c01212a27adffb1883d2de9db162d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2703,6 +2703,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2702,6 +2702,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public ItemEntity spawnAtLocation(ItemStack stack, float yOffset) { @@ -79,7 +79,7 @@ index 18c73edca59c8bbd4ee57196c4455fb18d7869d9..0de5d58c9ed08292a2d0b478c5ce9f50 if (stack.isEmpty()) { return null; } else if (this.level().isClientSide) { -@@ -2710,14 +2729,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2709,14 +2728,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -104,7 +104,7 @@ index 18c73edca59c8bbd4ee57196c4455fb18d7869d9..0de5d58c9ed08292a2d0b478c5ce9f50 return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 14880c5cd67eec5f92e4c7058b41c332bc0f871c..d59a38c62c1b13e6ecb2841fba65017104ed46dc 100644 +index e937ace0c4c1097de3f95198b1bc1830dbc74658..e13bda6d3054dda9372c58566b5cdc5d0f4c1dcf 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1041-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1041-Properly-handle-experience-dropping-on-block-break.patch index 21ea21c71b12..cd538d60af2f 100644 --- a/patches/server/1041-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1041-Properly-handle-experience-dropping-on-block-break.patch @@ -7,10 +7,10 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ca48664d3e7a9efcac8a0e1fa23f71034d74e2d6..dce7be16854faa3e297815e794cae6b0bd42bd4f 100644 +index e6631ccf71dec785ab8decbf037e8bd622a7a613..04f5d1f853f1de95610404ea53a4a985fcf58066 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1103,7 +1103,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1102,7 +1102,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (drop) { BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null; @@ -68,7 +68,7 @@ index 5379c4a8c89cbbe73c3ab741d609cecdc81d928c..73d6f881a7d4d8ff96040d34ac502e5b } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 88d7973e83ee828fa71d95924a9134935e80954d..7a29d43d06de9138c8db5d3f4af29d6b5dc60efc 100644 +index 7fa2b2bc9d6e7eea8b18fd649c9220945d71a4ff..97a9fbbe6d8435e88e5fe716770e4034ab0db7a7 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -1286,6 +1286,7 @@ public abstract class BlockBehaviour implements FeatureElement { diff --git a/patches/server/1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index 4c8651549405..0551bc6470e2 100644 --- a/patches/server/1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch @@ -18,10 +18,10 @@ index 3c4ac79c094dc2fff7de94150a34b7bf814ac0de..38b56923a642afc1cb411480ba03cc78 @VisibleForTesting static long encode(double value) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 2458bc75ece2d5eadc49df0f1c94702bd20e779f..673f0d1ee4e4228a52c07fc1b570822257e59300 100644 +index 257303162e3550e332cae01d5f6f158558b7ebf8..639c46a7d2b35f13d2310d9ded8a92a4703f6ebb 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1418,10 +1418,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1414,10 +1414,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void updatePlayer(ServerPlayer player) { org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot if (player != this.entity) { diff --git a/patches/server/1044-Write-SavedData-IO-async.patch b/patches/server/1044-Write-SavedData-IO-async.patch index 8804c3761dfe..daaa279cd64b 100644 --- a/patches/server/1044-Write-SavedData-IO-async.patch +++ b/patches/server/1044-Write-SavedData-IO-async.patch @@ -26,7 +26,7 @@ index 513833c2ea23df5b079d157bc5cb89d5c9754c0b..9017907c0ec67a37a506f09b7e4499ce this.threadPool.shutdown(); diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..2aaf1cc630f9cf4b61ad58d1adde5f93ba237fd6 100644 +index 65a20974428ae1c0be2022d997234a16dc281292..77a2458b8acb21c64676934cd8d6b05ef6351c10 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -467,6 +467,13 @@ public class ServerChunkCache extends ChunkSource { @@ -44,10 +44,10 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..2aaf1cc630f9cf4b61ad58d1adde5f93 // CraftBukkit start - modelled on below diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3a2f0a4ae00c63bcae3ee1e068d10bebe33fab7e..5b0749987a78ce830a882b4fa1210e846c188718 100644 +index f27c9f99e70d45c433a348dd315bb31b44fefa78..0911b39561fb158dc2268b6054d5ce7a0c1dc465 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1491,7 +1491,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1486,7 +1486,7 @@ public class ServerLevel extends Level implements WorldGenLevel { try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) { if (doFull) { @@ -56,7 +56,7 @@ index 3a2f0a4ae00c63bcae3ee1e068d10bebe33fab7e..5b0749987a78ce830a882b4fa1210e84 } this.timings.worldSaveChunks.startTiming(); // Paper -@@ -1527,7 +1527,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1522,7 +1522,7 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } @@ -65,7 +65,7 @@ index 3a2f0a4ae00c63bcae3ee1e068d10bebe33fab7e..5b0749987a78ce830a882b4fa1210e84 if (progressListener != null) { progressListener.progressStage(Component.translatable("menu.savingChunks")); } -@@ -1550,12 +1550,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1545,12 +1545,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit end } From 27cabc19a02e054276b58bfe0a40fc0add14d25e Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 21 Jan 2024 19:37:09 +0100 Subject: [PATCH 35/45] [ci skip] Add more patch identifying comments --- patches/api/0299-Missing-Entity-API.patch | 4 +- ...llow-delegation-to-vanilla-chunk-gen.patch | 4 +- ...ld.spawnParticle-API-and-add-Builder.patch | 20 ++--- ...h => 0193-EndermanAttackPlayerEvent.patch} | 4 +- ...sted-Ice-from-loading-holding-chunks.patch | 33 ------- ...tch => 0194-WitchConsumePotionEvent.patch} | 6 +- ...patch => 0195-WitchThrowPotionEvent.patch} | 6 +- ...patch => 0196-WitchReadyPotionEvent.patch} | 2 +- ...197-ItemStack-getMaxItemUseDuration.patch} | 2 +- ...8-Add-EntityTeleportEndGatewayEvent.patch} | 2 +- ...d-flag-on-cancel-of-Explosion-Event.patch} | 2 +- ...ch => 0200-Fix-CraftEntity-hashCode.patch} | 2 +- ...-Configurable-LootPool-luck-formula.patch} | 8 +- ...ls-when-failing-to-save-player-data.patch} | 4 +- ...-shield-blocking-delay-configurable.patch} | 8 +- ...=> 0204-Improve-EntityShootBowEvent.patch} | 6 +- ...patch => 0205-PlayerReadyArrowEvent.patch} | 10 +-- ...ckByEntityEvent-and-EntityPushedByE.patch} | 54 +++++------ ...patch => 0207-Expand-Explosions-API.patch} | 2 +- ...vingEntity-Hand-Raised-Item-Use-API.patch} | 0 ...-API.patch => 0209-RangedEntity-API.patch} | 0 ...o-disable-ender-dragon-legacy-check.patch} | 6 +- ...-Implement-World.getEntity-UUID-API.patch} | 2 +- ...0212-InventoryCloseEvent-Reason-API.patch} | 52 +++++------ ...tch => 0213-Vex-get-setSummoner-API.patch} | 0 ...ventory-when-cancelling-PlayerInter.patch} | 4 +- ...-to-keep-logging-IO-off-main-thread.patch} | 0 ...more-information-to-Entity.toString.patch} | 4 +- ...ts.patch => 0217-EnderDragon-Events.patch} | 20 ++--- ...atch => 0218-PlayerElytraBoostEvent.patch} | 8 +- ...=> 0219-PlayerLaunchProjectileEvent.patch} | 90 +++++++++---------- ...0220-Improve-BlockPosition-inlining.patch} | 12 +-- ...-armor-stands-from-doing-entity-loo.patch} | 10 +-- ...-Vanished-players-don-t-have-rights.patch} | 4 +- ...Allow-disabling-armor-stand-ticking.patch} | 2 +- ...tch => 0224-SkeletonHorse-Additions.patch} | 0 ...n-t-call-getItemMeta-on-hasItemMeta.patch} | 0 ...patch => 0226-Expand-ArmorStand-API.patch} | 0 ...vent.patch => 0227-AnvilDamageEvent.patch} | 0 ...ent.patch => 0228-Add-TNTPrimeEvent.patch} | 2 +- ...d-make-tab-spam-limits-configurable.patch} | 2 +- ...s.patch => 0230-Fix-NBT-type-issues.patch} | 2 +- ...emove-unnecessary-itemmeta-handling.patch} | 2 +- ...es-option-to-debug-dupe-uuid-issues.patch} | 4 +- ...d-Early-Warning-Feature-to-WatchDog.patch} | 0 ...4-Use-ConcurrentHashMap-in-JsonList.patch} | 2 +- ...5-Use-a-Queue-for-Queueing-Commands.patch} | 0 ...ock-entities-from-a-chunk-without-s.patch} | 0 ...timize-BlockPosition-helper-methods.patch} | 0 ...efault-mob-spawn-range-and-water-an.patch} | 0 ...tch => 0239-Slime-Pathfinder-Events.patch} | 0 ...e-speed-for-water-flowing-over-lava.patch} | 0 ...41-Optimize-CraftBlockData-Creation.patch} | 0 ...tch => 0242-Optimize-MappedRegistry.patch} | 0 ...ch => 0243-Add-PhantomPreSpawnEvent.patch} | 0 ....patch => 0244-Add-More-Creeper-API.patch} | 0 ...=> 0245-Inventory-removeItemAnySlot.patch} | 0 ...oadChunk-int-int-false-load-unconve.patch} | 2 +- ...ray-tracing-methods-to-LivingEntity.patch} | 7 +- ...-attack-cooldown-methods-for-Player.patch} | 2 +- ....patch => 0249-Improve-death-events.patch} | 12 +-- ...w-chests-to-be-placed-with-NBT-data.patch} | 0 ...I.patch => 0251-Mob-Pathfinding-API.patch} | 0 ...anPlaceOn-and-CanDestroy-NBT-values.patch} | 0 ...nteractions-from-causing-chunk-load.patch} | 2 +- ...ning-from-loading-generating-chunks.patch} | 0 ...t-furnace-cook-speed-multiplier-API.patch} | 0 ...=> 0256-Honor-EntityAgeable.ageLock.patch} | 0 ...le-connection-throttle-kick-message.patch} | 2 +- ...nt-chunk-loading-from-Fluid-Flowing.patch} | 0 ...> 0259-Hook-into-CB-plugin-rewrites.patch} | 0 ....patch => 0260-PreSpawnerSpawnEvent.patch} | 0 ...61-Add-LivingEntity-getTargetEntity.patch} | 4 +- ...I.patch => 0262-Add-sun-related-API.patch} | 4 +- ...ception-in-entity-and-block-entity-.patch} | 0 ...Turtle-API.patch => 0264-Turtle-API.patch} | 0 ...ator-target-events-and-improve-impl.patch} | 2 +- ...PI.patch => 0266-Add-more-Witch-API.patch} | 2 +- ...wned-for-Villager-Aggression-Config.patch} | 0 ...vent-players-from-moving-into-unloa.patch} | 2 +- ...9-Reset-players-airTicks-on-respawn.patch} | 2 +- ...after-profile-lookups-if-not-needed.patch} | 0 ...r-Thread-Pool-and-Thread-Priorities.patch} | 0 ...=> 0272-Optimize-World-Time-Updates.patch} | 0 ...tore-custom-InventoryHolder-support.patch} | 0 ...0274-Fix-SpongeAbsortEvent-handling.patch} | 0 ...-allow-digging-into-unloaded-chunks.patch} | 2 +- ...ult-permission-message-configurable.patch} | 2 +- ...-Large-Packets-disconnecting-client.patch} | 0 ...ntity-dismount-during-teleportation.patch} | 6 +- ...I.patch => 0279-Add-more-Zombie-API.patch} | 0 ...mits.patch => 0280-Book-Size-Limits.patch} | 2 +- ...0281-Add-PlayerConnectionCloseEvent.patch} | 2 +- ...Replace-OfflinePlayer-getLastPlayed.patch} | 6 +- ...ehicle-tracking-issue-on-disconnect.patch} | 2 +- ...-remove-if-the-handle-is-a-custom-p.patch} | 2 +- ...ent.patch => 0285-BlockDestroyEvent.patch} | 2 +- ... => 0286-Async-command-map-building.patch} | 2 +- ....patch => 0287-Brigadier-Mojang-API.patch} | 2 +- ...ove-exact-choice-recipe-ingredients.patch} | 0 ... 0289-Limit-Client-Sign-length-more.patch} | 2 +- ...ggleEvent-when-whitelist-is-toggled.patch} | 2 +- ...e-Oversized-Tile-Entities-in-chunks.patch} | 0 ...=> 0292-Entity-getEntitySpawnReason.patch} | 6 +- ...Manager-and-add-advanced-packet-sup.patch} | 2 +- ...tch => 0294-Fire-event-on-GS4-query.patch} | 0 ... => 0295-Add-PlayerPostRespawnEvent.patch} | 2 +- ...for-pickupDelay-breaks-picking-up-i.patch} | 2 +- ...ts.patch => 0297-Server-Tick-Events.patch} | 2 +- ...298-PlayerDeathEvent-getItemsToKeep.patch} | 2 +- ...ptimize-Captured-BlockEntity-Lookup.patch} | 2 +- ...API.patch => 0300-Add-Heightmap-API.patch} | 2 +- ...> 0301-Mob-Spawner-API-Enhancements.patch} | 2 +- ...-to-changed-postToMainThread-method.patch} | 2 +- ...-item-frames-are-modified-MC-123450.patch} | 0 ...0304-Implement-CraftBlockSoundGroup.patch} | 0 ...e-Keep-Spawn-Loaded-range-per-world.patch} | 4 +- ...06-Allow-Saving-of-Oversized-Chunks.patch} | 0 ...07-Expose-the-internal-current-tick.patch} | 0 ...08-Fix-World-isChunkGenerated-calls.patch} | 2 +- ...te-location-if-we-failed-to-read-it.patch} | 0 ...l-Spawned-mobs-towards-natural-spaw.patch} | 0 ...urable-projectile-relative-velocity.patch} | 2 +- ...h => 0312-offset-item-frame-ticking.patch} | 0 ...event-consuming-the-wrong-itemstack.patch} | 2 +- ...4-Dont-send-unnecessary-sign-update.patch} | 0 ...-option-to-disable-pillager-patrols.patch} | 0 ...316-Flat-bedrock-generator-settings.patch} | 0 ...k-loads-when-villagers-try-to-find-.patch} | 0 ...656-Fix-Follow-Range-Initial-Target.patch} | 0 ... 0319-Duplicate-UUID-Resolve-Option.patch} | 0 ...ayerDeathEvent-shouldDropExperience.patch} | 2 +- ...ading-chunks-checking-hive-position.patch} | 0 ...hunks-from-Hoppers-and-other-things.patch} | 0 ...timise-EntityGetter-getPlayerByUUID.patch} | 2 +- ...324-Fix-items-not-falling-correctly.patch} | 2 +- ...ize-call-to-getFluid-for-explosions.patch} | 0 ...-in-stack-not-having-effects-when-d.patch} | 0 ...=> 0327-Entity-Activation-Range-2.0.patch} | 8 +- ...ializing-mismatching-chunk-coordina.patch} | 0 ... 0329-Alternative-item-despawn-rate.patch} | 0 ...=> 0330-Tracking-Range-Improvements.patch} | 0 ...-items-vanishing-through-end-portal.patch} | 2 +- ...0332-Optional-per-player-mob-spawns.patch} | 6 +- ...4-Anti-Xray.patch => 0333-Anti-Xray.patch} | 6 +- ...et-gravity-in-void.-Fixes-MC-167279.patch} | 0 ...35-Improve-Block-breakNaturally-API.patch} | 0 ...-getChunkAt-calls-for-loaded-chunks.patch} | 0 ...0337-Add-debug-for-sync-chunk-loads.patch} | 2 +- ... => 0338-Improve-java-version-check.patch} | 0 ...tch => 0339-Add-ThrownEggHatchEvent.patch} | 0 ...p-API.patch => 0340-Entity-Jump-API.patch} | 4 +- ...-to-nerf-pigmen-from-nether-portals.patch} | 2 +- ... => 0342-Make-the-GUI-graph-fancier.patch} | 0 ...43-add-hand-to-BlockMultiPlaceEvent.patch} | 2 +- ...ipwire-hook-placement-before-update.patch} | 0 ...o-allow-iron-golems-to-spawn-in-air.patch} | 0 ...chance-of-villager-zombie-infection.patch} | 2 +- ...tch => 0347-Optimise-Chunk-getFluid.patch} | 0 ...rbose-world-setting-to-false-by-def.patch} | 0 ...Add-tick-times-API-and-mspt-command.patch} | 2 +- ...50-Expose-MinecraftServer-isRunning.patch} | 0 ...dd-Raw-Byte-ItemStack-Serialization.patch} | 0 ...pawn-settings-and-per-player-option.patch} | 2 +- ...nections-shouldn-t-hold-up-shutdown.patch} | 6 +- ...ow-bees-to-load-chunks-for-beehives.patch} | 2 +- ...PlayerChunkMap-adds-crashing-server.patch} | 2 +- ...tch => 0356-Don-t-tick-dead-players.patch} | 2 +- ...-Player-s-shouldn-t-be-able-to-move.patch} | 2 +- ...timize-Collision-to-not-load-chunks.patch} | 4 +- ...ove-existing-players-to-world-spawn.patch} | 4 +- ...alSelector-Goal.Flag-Set-operations.patch} | 0 ...h => 0361-Improved-Watchdog-Support.patch} | 4 +- ....patch => 0362-Optimize-Pathfinding.patch} | 0 ...3-Reduce-Either-Optional-allocation.patch} | 0 ...uce-memory-footprint-of-CompoundTag.patch} | 0 ...ent-opening-inventories-when-frozen.patch} | 6 +- ...entity-collision-code-if-not-needed.patch} | 2 +- ...Implement-Player-Client-Options-API.patch} | 4 +- ...ayer-is-attempted-to-be-removed-fro.patch} | 0 ...Event-when-Player-is-actually-ready.patch} | 4 +- ...awn-point-if-spawn-in-unloaded-worl.patch} | 4 +- ...layerAttackEntityCooldownResetEvent.patch} | 2 +- ...-fire-BlockFade-on-worldgen-threads.patch} | 2 +- ...tom-creative-and-insomniac-controls.patch} | 2 +- ...tem-duplication-and-teleport-issues.patch} | 8 +- ...patch => 0375-Villager-Restocks-API.patch} | 0 ...ickItem-Packet-and-kick-for-invalid.patch} | 2 +- ...n.patch => 0377-Expose-game-version.patch} | 0 ...> 0378-Optimize-Voxel-Shape-Merging.patch} | 0 ...per-thread-native-byte-buffer-cache.patch} | 2 +- ....patch => 0380-misc-debugging-dumps.patch} | 4 +- ...1-Prevent-teleporting-dead-entities.patch} | 2 +- ...traces-in-log-messages-crash-report.patch} | 0 ...atch => 0383-Implement-Mob-Goal-API.patch} | 0 ...=> 0384-Add-villager-reputation-API.patch} | 0 ...maximum-exp-value-when-merging-orbs.patch} | 2 +- ...tch => 0386-ExperienceOrbMergeEvent.patch} | 2 +- ...-Fix-PotionEffect-ignores-icon-flag.patch} | 0 ...API.patch => 0388-Potential-bed-API.patch} | 2 +- ...ait-for-Async-Tasks-during-shutdown.patch} | 2 +- ...er-respects-game-and-entity-rules-f.patch} | 0 ...nd-End-Portal-Frames-from-being-des.patch} | 2 +- ...> 0392-Ensure-safe-gateway-teleport.patch} | 0 ...-for-console-having-all-permissions.patch} | 0 ...x-villager-trading-demand-MC-163962.patch} | 0 ... => 0395-Maps-shouldn-t-load-chunks.patch} | 0 ...okup-for-Treasure-Maps-Fixes-lag-fr.patch} | 0 ...r-runTaskTimerAsynchronously-Plugin.patch} | 0 ...ton-physics-inconsistency-MC-188840.patch} | 0 ...uping.patch => 0399-Fix-sand-duping.patch} | 0 ...sing-chunks-due-to-integer-overflow.patch} | 0 ...-position-desync-causing-tp-exploit.patch} | 2 +- ...older-method-without-block-snapshot.patch} | 0 ...API.patch => 0403-Improve-Arrow-API.patch} | 0 ...0404-Add-PlayerRecipeBookClickEvent.patch} | 2 +- ...ance-map-to-optimise-entity-tracker.patch} | 2 +- ...-Hide-sync-chunk-writes-behind-flag.patch} | 0 ...7-Add-permission-for-command-blocks.patch} | 4 +- ...position-and-AABB-are-never-invalid.patch} | 2 +- ...d-Difficulty-Remembering-Difficulty.patch} | 10 +-- ...atch => 0410-Paper-dumpitem-command.patch} | 0 ...Legacy-Component-serialization-size.patch} | 0 ...Optimize-Bit-Operations-by-inlining.patch} | 2 +- ...Plugin-Tickets-to-API-Chunk-Methods.patch} | 2 +- ...incremental-chunk-and-player-saving.patch} | 6 +- ...415-Support-old-UUID-format-for-NBT.patch} | 2 +- ...vert-legacy-attributes-in-Item-Meta.patch} | 2 +- ...> 0417-Remove-streams-from-hot-code.patch} | 2 +- ...0418-Support-components-in-ItemMeta.patch} | 2 +- ...e-fix-EntityTargetLivingEntityEvent.patch} | 0 ...patch => 0420-Add-entity-liquid-API.patch} | 0 ...date-itemstack-legacy-name-and-lore.patch} | 2 +- ...atch => 0422-Add-PrepareResultEvent.patch} | 6 +- ...-for-portal-on-world-gen-entity-add.patch} | 2 +- ...x-arrows-never-despawning-MC-125757.patch} | 0 ...Vanilla-Command-permission-checking.patch} | 4 +- ...-5989.patch => 0426-Fix-SPIGOT-5989.patch} | 2 +- ...-Bukkit-world-container-is-not-used.patch} | 2 +- ...5885-Unable-to-disable-advancements.patch} | 2 +- ...taPlayer-leak-due-from-quitting-ear.patch} | 0 ...e-NetworkManager-Exception-Handling.patch} | 10 +-- ...ix-some-rails-connecting-improperly.patch} | 0 ...stake-in-CB-NBT-int-deserialization.patch} | 0 ...support.patch => 0433-Brand-support.patch} | 4 +- ...PickupItemAnimation-to-LivingEntity.patch} | 0 ...h => 0435-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 4 +- ...PI.patch => 0437-Add-moon-phase-API.patch} | 0 ...rver-load-chunks-from-newer-version.patch} | 0 ...headless-pistons-from-being-created.patch} | 2 +- ...ent.patch => 0440-Add-BellRingEvent.patch} | 2 +- ...dd-zombie-targets-turtle-egg-config.patch} | 2 +- ...patch => 0442-Buffer-joins-to-world.patch} | 2 +- ...-Eigencraft-redstone-implementation.patch} | 0 ...s-not-working-in-some-kick-messages.patch} | 0 ...reateEvent-needs-to-know-its-entity.patch} | 6 +- ...I.patch => 0446-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0449-Cache-block-data-strings.patch} | 2 +- ...rtation-and-cancel-velocity-if-tele.patch} | 4 +- ...l-open-container-api-to-HumanEntity.patch} | 4 +- ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 2 +- ...-Counter-to-allow-plugins-to-use-va.patch} | 2 +- ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0456-Entity-isTicking.patch} | 2 +- ...non-whitelisted-player-when-white-l.patch} | 2 +- ...-Concurrency-issue-in-ShufflingList.patch} | 0 ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 2 +- ...-large-move-vectors-crashing-server.patch} | 2 +- ...atch => 0461-Optimise-getType-calls.patch} | 2 +- ....patch => 0462-Villager-resetOffers.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 2 +- ...lockpos-allocation-from-pathfinding.patch} | 0 ...em-locations-dropped-from-campfires.patch} | 0 ...6-Fix-bell-block-entity-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 2 +- ...ch => 0469-Add-ignore-discounts-API.patch} | 2 +- ...Toggle-for-removing-existing-dragon.patch} | 2 +- ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0472-Item-no-age-no-player-pickup.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...474-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0475-Add-API-for-quit-reason.patch} | 8 +- ...ng-Trader-spawn-rate-config-options.patch} | 0 ...ch => 0477-Expose-world-spawn-angle.patch} | 2 +- ...patch => 0478-Add-Destroy-Speed-API.patch} | 2 +- ...-spawnParticle-x-y-z-precision-loss.patch} | 2 +- ...80-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0481-Add-PlayerItemCooldownEvent.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...PI.patch => 0483-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 6 +- ...-missing-default-perms-for-commands.patch} | 0 ...h => 0486-Add-PlayerShearBlockEvent.patch} | 0 ....patch => 0487-Limit-recipe-packets.patch} | 2 +- ...-CraftSound-backwards-compatibility.patch} | 0 ...489-Player-Chunk-Load-Unload-Events.patch} | 0 ...0-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 4 +- ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 2 +- ...valid-ingredient-lists-in-VillagerA.patch} | 2 +- ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 2 +- ...nt.patch => 0495-Add-TargetHitEvent.patch} | 0 ... 0496-MC-4-Fix-item-position-desync.patch} | 2 +- ... 0497-Additional-Block-Material-API.patch} | 0 ...tch => 0498-Fix-harming-potion-dupe.patch} | 0 ...t-Material-from-Boats-and-Minecarts.patch} | 0 ....patch => 0500-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 0 ...-Add-PlayerFlowerPotManipulateEvent.patch} | 0 ...ct-event-not-being-called-sometimes.patch} | 2 +- ...h => 0505-Zombie-API-breaking-doors.patch} | 0 ...506-Fix-nerfed-slime-when-splitting.patch} | 2 +- ...=> 0507-Add-EntityLoadCrossbowEvent.patch} | 0 ...> 0508-Add-WorldGameRuleChangeEvent.patch} | 2 +- ...09-Add-ServerResourcesReloadedEvent.patch} | 2 +- ...d-settings-for-mobs-picking-up-loot.patch} | 2 +- ...> 0511-Add-BlockFailedDispenseEvent.patch} | 2 +- ...12-Add-PlayerLecternPageChangeEvent.patch} | 0 ...13-Add-PlayerLoomPatternSelectEvent.patch} | 2 +- ...nfigurable-door-breaking-difficulty.patch} | 2 +- ...ty-commands-shall-not-be-dispatched.patch} | 2 +- ...OIs.patch => 0516-Remove-stale-POIs.patch} | 2 +- ...h => 0517-Fix-villager-boat-exploit.patch} | 2 +- ...I.patch => 0518-Add-sendOpLevel-API.patch} | 4 +- ...0519-TODO-Registry-Modification-API.patch} | 0 ...h => 0520-Add-StructuresLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 2 +- ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 2 +- ...524-Make-schedule-command-per-world.patch} | 0 ...525-Configurable-max-leash-distance.patch} | 0 ...h => 0526-Add-BlockPreDispenseEvent.patch} | 2 +- ...7-Add-PlayerChangeBeaconEffectEvent.patch} | 0 ...e-for-always-placing-the-dragon-egg.patch} | 2 +- ...-PlayerStonecutterRecipeSelectEvent.patch} | 2 +- ...h => 0530-Expand-EntityUnleashEvent.patch} | 4 +- ...shield-blocking-on-dimension-change.patch} | 2 +- ...atch => 0532-Add-DragonEggFormEvent.patch} | 2 +- ...t.patch => 0533-Add-EntityMoveEvent.patch} | 4 +- ...isable-pathfinding-updates-on-block.patch} | 2 +- ... 0535-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 2 +- ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ...atch => 0541-Expose-Tracked-Players.patch} | 0 ...GUI.patch => 0542-Improve-ServerGUI.patch} | 2 +- ...543-fix-converting-txt-to-json-file.patch} | 4 +- ...atch => 0544-Add-worldborder-events.patch} | 0 ...h => 0545-Add-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 2 +- ...h => 0547-Add-recipe-to-cook-events.patch} | 4 +- ...patch => 0548-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 2 +- ....patch => 0550-Expand-world-key-API.patch} | 4 +- ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0552-Item-Rarity-API.patch} | 2 +- ...d-item-when-player-has-disconnected.patch} | 2 +- ...elist-use-configurable-kick-message.patch} | 2 +- ...gnore-result-of-PlayerEditBookEvent.patch} | 2 +- ...tch => 0556-Expose-protocol-version.patch} | 2 +- ...ab-completions-for-brigadier-comman.patch} | 2 +- ...temConsumeEvent-cancelling-properly.patch} | 2 +- ...patch => 0559-Add-bypass-host-check.patch} | 2 +- ...0560-Set-area-affect-cloud-rotation.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 2 +- ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 2 +- ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 2 +- ...ch => 0566-Add-PlayerDeepSleepEvent.patch} | 2 +- ...ld-API.patch => 0567-More-World-API.patch} | 2 +- ...=> 0568-Add-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 2 +- ...awnEvent-fix-passed-parameter-issue.patch} | 4 +- ...acon-activation-deactivation-events.patch} | 2 +- ...dd-Channel-initialization-listeners.patch} | 2 +- ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0574-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 2 +- ...76-Entity-load-save-limit-per-chunk.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...close.patch => 0578-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0580-Add-basic-Datapack-API.patch} | 2 +- ...ment-variable-to-disable-server-gui.patch} | 2 +- ...82-Expand-PlayerGameModeChangeEvent.patch} | 8 +- ... => 0583-ItemStack-repair-check-API.patch} | 2 +- ....patch => 0584-More-Enchantment-API.patch} | 2 +- ...ve-range-check-for-block-placing-up.patch} | 2 +- ...-and-optimise-world-force-upgrading.patch} | 2 +- ...PI.patch => 0587-Add-Mob-lookAt-API.patch} | 2 +- ...0588-Add-Unix-domain-socket-support.patch} | 6 +- ... => 0589-Add-EntityInsideBlockEvent.patch} | 6 +- ...90-Attributes-API-for-item-defaults.patch} | 2 +- ...ause-to-Weather-ThunderChangeEvents.patch} | 4 +- ...patch => 0592-More-Lidded-Block-API.patch} | 0 ...93-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0594-Add-PlayerKickEvent-causes.patch} | 6 +- ...0595-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 2 +- ...h => 0599-Add-BellRevealRaiderEvent.patch} | 2 +- ... 0600-Fix-invulnerable-end-crystals.patch} | 0 ...01-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0602-Fix-dangerous-end-portal-logic.patch} | 2 +- ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 2 +- ...patch => 0605-Line-Of-Sight-Changes.patch} | 4 +- ... => 0606-add-per-world-spawn-limits.patch} | 2 +- ...h => 0607-Fix-potions-splash-events.patch} | 0 ... => 0608-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 4 +- ...PI.patch => 0610-Missing-Entity-API.patch} | 12 +-- ...ect-for-book-edit-is-called-on-main.patch} | 2 +- ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 4 +- ...rom-signs-not-firing-command-events.patch} | 2 +- ...tch => 0615-Add-PlayerArmSwingEvent.patch} | 2 +- ...-event-leave-message-not-being-sent.patch} | 6 +- ...-for-mobs-immune-to-default-effects.patch} | 2 +- ...-t-apply-cramming-damage-to-players.patch} | 2 +- ...d-timings-for-sensors-and-behaviors.patch} | 0 ... 0620-Add-missing-forceDrop-toggles.patch} | 2 +- ...inger-API.patch => 0621-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 2 +- ... => 0623-Add-System.out-err-catcher.patch} | 2 +- ...-to-contain-the-source-jars-in-stac.patch} | 0 ...-Improve-boat-collision-performance.patch} | 4 +- ...AFK-kick-while-watching-end-credits.patch} | 2 +- ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0628-Add-PlayerSetSpawnEvent.patch} | 6 +- ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...h => 0632-Add-EntityDamageItemEvent.patch} | 2 +- ...timize-indirect-passenger-iteration.patch} | 2 +- ...em-frame-map-cursor-update-interval.patch} | 0 ...635-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0637-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0639-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0641-Add-back-EntityPortalExitEvent.patch} | 2 +- ...-find-targets-for-lightning-strikes.patch} | 4 +- ... 0643-Get-entity-default-attributes.patch} | 2 +- ...d-API.patch => 0644-Left-handed-API.patch} | 2 +- ...ch => 0645-Add-more-advancement-API.patch} | 0 ...646-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0647-Add-critical-damage-API.patch} | 6 +- ...0648-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 2 +- ...-ram-API.patch => 0650-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...2-Add-Raw-Byte-Entity-Serialization.patch} | 2 +- ...53-Vanilla-command-permission-fixes.patch} | 2 +- ...logic-for-inventories-on-chunk-unlo.patch} | 12 +-- ...55-Fix-GameProfileCache-concurrency.patch} | 0 ...656-Improve-and-expand-AsyncCatcher.patch} | 6 +- ...per-mobcaps-and-paper-playermobcaps.patch} | 4 +- ...tize-ResourceLocation-error-logging.patch} | 0 ...=> 0659-Optimise-general-POI-access.patch} | 2 +- ...ementation-for-blockstate-state-loo.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 4 +- ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 2 +- ...our-chunk-data-off-disk-when-conver.patch} | 2 +- ...d-state-when-raytracing-skip-air-bl.patch} | 0 ...atch => 0666-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...> 0668-Execute-chunk-tasks-mid-tick.patch} | 4 +- ...rimise-map-impl-for-tracked-players.patch} | 0 ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ... 0671-Optimise-random-block-ticking.patch} | 4 +- ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 2 +- ...-more-information-in-watchdog-dumps.patch} | 4 +- ... 0675-Distance-manager-tick-timings.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 4 +- ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 2 +- ...h => 0679-Add-packet-limiter-config.patch} | 2 +- ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0681-Ensure-valid-vehicle-status.patch} | 2 +- ...ftlocked-end-exit-portal-generation.patch} | 2 +- ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0686-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 2 +- ...unintended-light-block-manipulation.patch} | 0 ...0689-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 2 +- ... => 0691-Configurable-feature-seeds.patch} | 0 ... 0692-Add-root-admin-user-detection.patch} | 2 +- ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 2 +- ...ive-velocity-through-repeated-crits.patch} | 2 +- ...e-code-using-deprecated-for-removal.patch} | 2 +- ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 2 +- ...e-unnecessary-itemmeta-from-clients.patch} | 4 +- ...=> 0700-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0702-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0703-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 2 +- ...tch => 0705-Collision-optimisations.patch} | 14 +-- ...n-checking-in-player-move-packet-ha.patch} | 2 +- ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0708-Add-more-Campfire-API.patch} | 2 +- ...data-to-disk-if-it-serializes-witho.patch} | 0 ...10-Fix-tripwire-state-inconsistency.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 2 +- ... => 0712-Improve-scoreboard-entries.patch} | 2 +- ...ch => 0713-Entity-powdered-snow-API.patch} | 0 ...0714-Add-API-for-item-entity-health.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0720-Fix-bees-aging-inside-hives.patch} | 2 +- ...le-API.patch => 0721-Bucketable-API.patch} | 0 ...es.patch => 0722-Validate-usernames.patch} | 4 +- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 6 +- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...7-Multiple-Entries-with-Scoreboards.patch} | 0 ...728-Reset-placed-block-on-exception.patch} | 2 +- ...configurable-height-for-slime-spawn.patch} | 2 +- ...0730-Fix-xp-reward-for-baby-zombies.patch} | 2 +- ...lti-Block-Change-API-Implementation.patch} | 2 +- ...ent.patch => 0732-Fix-NotePlayEvent.patch} | 0 ....patch => 0733-Freeze-Tick-Lock-API.patch} | 4 +- ...h => 0734-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 2 +- ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0738-Implement-regenerateChunk.patch} | 2 +- ...lled-powdered-snow-bucket-placement.patch} | 2 +- ...ate-calls-to-CraftServer-getSpawnLi.patch} | 2 +- ...gs.patch => 0741-Add-GameEvent-tags.patch} | 2 +- ...ks-fairly-for-worlds-while-waiting-.patch} | 2 +- ...tch => 0743-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 2 +- ...-worldlist-before-initing-the-world.patch} | 4 +- ... => 0748-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0749-Custom-Potion-Mixes.patch} | 4 +- ...50-Force-close-world-loading-screen.patch} | 2 +- ...751-Fix-falling-block-spawn-methods.patch} | 2 +- ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0754-More-Projectile-API.patch} | 2 +- ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 2 +- ...0757-Implement-getComputedBiome-API.patch} | 0 ...> 0758-Make-some-itemstacks-nonnull.patch} | 0 ...759-Implement-enchantWithLevels-API.patch} | 0 ...h => 0760-Fix-saving-in-unloadWorld.patch} | 2 +- ...h => 0761-Buffer-OOB-setBlock-calls.patch} | 0 ... 0762-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 8 +- ...bles-running-when-mob-loot-gamerule.patch} | 2 +- ...ssenger-world-matches-ridden-entity.patch} | 2 +- ...s.patch => 0766-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 2 +- ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 2 +- ...ead-of-display-name-in-PlayerList-g.patch} | 2 +- ...-ServerLevel-for-gamerule-callbacks.patch} | 6 +- ...> 0773-Expand-PlayerItemDamageEvent.patch} | 2 +- ...> 0774-WorldCreator-keepSpawnLoaded.patch} | 2 +- ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 4 +- ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 2 +- ...> 0780-Add-PlayerStopUsingItemEvent.patch} | 2 +- ...rs.patch => 0781-Don-t-tick-markers.patch} | 2 +- ...tch => 0782-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 2 +- ...0784-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0787-Sanitize-sent-BlockEntity-NBT.patch} | 2 +- ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 2 +- ...-on-world-create-while-being-ticked.patch} | 0 ...ate-Current-redstone-implementation.patch} | 4 +- ...92-Dont-resent-entity-on-art-update.patch} | 0 ... => 0793-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 2 +- ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0796-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 2 +- ...pty-items-from-being-added-to-world.patch} | 2 +- ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0800-Add-Player-getFishHook.patch} | 2 +- ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 2 +- ...PE.patch => 0803-Fix-Bee-flower-NPE.patch} | 2 +- ...-not-using-commands.spam-exclusions.patch} | 2 +- ...API.patch => 0805-More-Teleport-API.patch} | 6 +- ... => 0806-Add-EntityPortalReadyEvent.patch} | 2 +- ...level-random-in-entity-constructors.patch} | 2 +- ...k-entities-after-destroy-prediction.patch} | 2 +- ...on-plugins-accessing-faraway-chunks.patch} | 4 +- ...tom-Chat-Completion-Suggestions-API.patch} | 2 +- ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0812-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 2 +- ...API.patch => 0814-Block-Ticking-API.patch} | 2 +- ...-Add-Velocity-IP-Forwarding-Support.patch} | 4 +- ...816-Add-NamespacedKey-biome-methods.patch} | 2 +- ...x-plugin-loggers-on-server-shutdown.patch} | 4 +- ...ok-changes-from-crashing-the-server.patch} | 4 +- ...tityChangeBlockEvent-in-more-places.patch} | 2 +- ...> 0820-Missing-eating-regain-reason.patch} | 0 ....patch => 0821-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 2 +- ...4-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0825-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0827-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0829-Add-getDrops-to-BlockState.patch} | 0 ...=> 0830-Fix-a-bunch-of-vanilla-bugs.patch} | 6 +- ...y-onTrackingStart-during-navigation.patch} | 2 +- ... 0832-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0833-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 4 +- ...-Add-PlayerInventorySlotChangeEvent.patch} | 4 +- ... 0836-Elder-Guardian-appearance-API.patch} | 2 +- ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0838-Add-entity-knockback-API.patch} | 2 +- ....patch => 0839-Detect-headless-JREs.patch} | 2 +- ...-vehicle-collision-event-not-called.patch} | 2 +- ...41-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 0842-Add-EntityToggleSitEvent.patch} | 2 +- ... => 0843-Add-fire-tick-delay-option.patch} | 2 +- ...patch => 0844-Add-Moving-Piston-API.patch} | 0 ...> 0845-Ignore-impossible-spawn-tick.patch} | 2 +- ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 2 +- ...0849-Add-PrePlayerAttackEntityEvent.patch} | 2 +- ...e-reset-EnderDragon-boss-event-name.patch} | 2 +- ...-green-map-markers-do-not-disappear.patch} | 0 ... 0852-Add-Player-Warden-Warning-API.patch} | 2 +- ...a-friendly-methods-to-update-trades.patch} | 2 +- ...854-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 4 +- ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0857-ItemStack-damage-API.patch} | 2 +- ...tion-API.patch => 0858-Friction-API.patch} | 2 +- ...trol-player-s-insomnia-and-phantoms.patch} | 2 +- ...=> 0860-Fix-player-kick-on-shutdown.patch} | 0 ... => 0861-Sync-offhand-slot-in-menus.patch} | 4 +- ... 0862-Player-Entity-Tracking-Events.patch} | 2 +- ...tch => 0863-Limit-pet-look-distance.patch} | 0 ...ch => 0864-Properly-resend-entities.patch} | 4 +- ...nd-additions-to-the-SpawnReason-API.patch} | 6 +- ...ments.patch => 0866-fix-Instruments.patch} | 2 +- ...for-some-hot-BlockBehavior-and-Flui.patch} | 2 +- ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0869-Add-BlockLockCheckEvent.patch} | 2 +- ... 0870-Add-Sneaking-API-for-Entities.patch} | 2 +- ... => 0871-Improve-logging-and-errors.patch} | 2 +- ....patch => 0872-Improve-PortalEvents.patch} | 2 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 2 +- ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0876-Flying-Fall-Damage.patch} | 4 +- ...k-state-to-BlockExplodeEvent-and-En.patch} | 4 +- ...ion-moving-velocity-to-VehicleBlock.patch} | 2 +- ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 4 +- ...k-items-during-EntityResurrectEvent.patch} | 2 +- ...en-API.patch => 0882-Win-Screen-API.patch} | 2 +- ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 2 +- ...tch => 0885-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 2 +- ...=> 0888-Add-EntityFertilizeEggEvent.patch} | 4 +- ...ty-drop-not-updating-the-client-inv.patch} | 2 +- ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 2 +- ...893-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 2 +- ...API.patch => 0895-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...pers.patch => 0897-Optimize-Hoppers.patch} | 4 +- ...ives-generating-from-using-bonemeal.patch} | 2 +- ...g-to-bad-recipes-in-furnace-like-ti.patch} | 2 +- ...ence-violations-like-they-should-be.patch} | 2 +- ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 2 +- ...ts-being-fired-from-unloaded-chunks.patch} | 2 +- ...0904-Use-array-for-gamerule-storage.patch} | 2 +- ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 2 +- ... 0907-Add-Mob-Experience-reward-API.patch} | 2 +- ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 2 +- ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...11-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ...ecalcBlockCounts-for-empty-sections.patch} | 2 +- ... => 0914-Expand-PlayerItemMendEvent.patch} | 4 +- ...sh-ProjectileSource-for-projectiles.patch} | 4 +- ... => 0916-Add-transient-modifier-API.patch} | 0 ...patch => 0917-Fix-block-place-logic.patch} | 2 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 2 +- ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 4 +- ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 2 +- ...yerChunkLoaderData-in-order-to-prep.patch} | 2 +- ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0926-Properly-cancel-usable-items.patch} | 6 +- ...7-Add-event-for-player-editing-sign.patch} | 2 +- ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 4 +- ...Add-option-to-disable-block-updates.patch} | 0 ...931-Call-missing-BlockDispenseEvent.patch} | 2 +- ...-chunks-for-supporting-block-checks.patch} | 2 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...934-Add-Sign-getInteractableSideFor.patch} | 2 +- ...35-Array-backed-synched-entity-data.patch} | 0 ...6-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0937-Fix-BanList-API.patch} | 2 +- ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 2 +- ...nceOrb-should-call-EntitySpawnEvent.patch} | 2 +- ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0943-Add-whitelist-events.patch} | 0 ... 0944-Implement-PlayerFailMoveEvent.patch} | 2 +- ...olia-scheduler-and-owned-region-API.patch} | 4 +- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 4 +- ...tion-when-spawning-display-entities.patch} | 0 ...949-Only-capture-actual-tree-growth.patch} | 2 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 2 +- ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0954-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 2 +- ...atch => 0956-Bandaid-fix-for-Effect.patch} | 4 +- ...tch => 0957-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 6 +- ...lace-methods-with-old-StructureType.patch} | 2 +- ...e-namespaced-commands-if-send-names.patch} | 2 +- ...-handle-BlockBreakEvent-isDropItems.patch} | 2 +- ...entity-death-event-for-ender-dragon.patch} | 2 +- ...tity-tracking-range-by-Y-coordinate.patch} | 0 ... => 0965-Add-Listing-API-for-Player.patch} | 4 +- ...figurable-Region-Compression-Format.patch} | 2 +- ...7-Add-BlockFace-to-BlockDamageEvent.patch} | 4 +- ...h => 0968-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0969-Expand-Pose-API.patch} | 2 +- ...patch => 0970-More-DragonBattle-API.patch} | 2 +- ... 0971-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0972-Add-PlayerPickItemEvent.patch} | 2 +- ...-Improve-performance-of-mass-crafts.patch} | 0 ...=> 0974-Allow-trident-custom-damage.patch} | 0 ...5-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 2 +- ....patch => 0978-Fix-inventory-desync.patch} | 2 +- ...titleOverride-to-InventoryOpenEvent.patch} | 10 +-- ...80-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 2 +- ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 2 +- ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 4 +- ...h => 0987-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 14 +-- ...entities-in-chunks-that-are-positio.patch} | 2 +- ...> 0990-Actually-optimise-explosions.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...atch => 0993-Fix-SuspiciousStewMeta.patch} | 0 ... 0994-Optimise-chunk-tick-iteration.patch} | 4 +- ...atch => 0995-Lag-compensation-ticks.patch} | 4 +- ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...99-Optimise-nearby-player-retrieval.patch} | 2 +- ...x-missing-map-initialize-event-call.patch} | 2 +- ...a-when-attaching-firework-to-entity.patch} | 2 +- ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...04-Fix-UnsafeValues-loadAdvancement.patch} | 2 +- ...> 1005-Add-player-idle-duration-API.patch} | 2 +- ...-if-we-can-see-non-visible-entities.patch} | 0 ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 2 +- ...Ints.patch => 1009-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 2 +- ...redicate-for-blocks-when-raytracing.patch} | 2 +- ...em-packets-with-collector-as-source.patch} | 2 +- ... => 1013-Expand-LingeringPotion-API.patch} | 0 ....patch => 1014-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 2 +- ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 4 +- ...018-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 2 +- ...y-create-LootContext-for-criterions.patch} | 2 +- ...-t-fire-sync-events-during-worldgen.patch} | 6 +- ...-getAttributeModifier-duplication-c.patch} | 2 +- ...store-vanilla-entity-drops-behavior.patch} | 10 +-- ...tch => 1024-Add-Structure-check-API.patch} | 2 +- ...-Dont-resend-blocks-on-interactions.patch} | 4 +- ...evious-behavior-for-setResourcePack.patch} | 2 +- ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 1029-add-more-scoreboard-API.patch} | 0 ...stry.patch => 1030-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 4 +- ...h => 1032-Add-experience-points-API.patch} | 4 +- ...h => 1033-Add-missing-InventoryType.patch} | 0 ...h => 1034-Add-drops-to-shear-events.patch} | 2 +- ...> 1035-Add-PlayerShieldDisableEvent.patch} | 4 +- ... => 1036-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 2 +- ...ate-ResourceLocation-in-NBT-reading.patch} | 4 +- ...-experience-dropping-on-block-break.patch} | 2 +- ...> 1041-Fixup-NamespacedKey-handling.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 0 ...ch => 1043-Write-SavedData-IO-async.patch} | 2 +- 855 files changed, 813 insertions(+), 847 deletions(-) rename patches/server/{0194-EndermanAttackPlayerEvent.patch => 0193-EndermanAttackPlayerEvent.patch} (91%) delete mode 100644 patches/server/0193-Prevent-Frosted-Ice-from-loading-holding-chunks.patch rename patches/server/{0195-WitchConsumePotionEvent.patch => 0194-WitchConsumePotionEvent.patch} (86%) rename patches/server/{0196-WitchThrowPotionEvent.patch => 0195-WitchThrowPotionEvent.patch} (89%) rename patches/server/{0197-WitchReadyPotionEvent.patch => 0196-WitchReadyPotionEvent.patch} (93%) rename patches/server/{0198-ItemStack-getMaxItemUseDuration.patch => 0197-ItemStack-getMaxItemUseDuration.patch} (91%) rename patches/server/{0199-Implement-EntityTeleportEndGatewayEvent.patch => 0198-Add-EntityTeleportEndGatewayEvent.patch} (97%) rename patches/server/{0200-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch => 0199-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch} (89%) rename patches/server/{0201-Fix-CraftEntity-hashCode.patch => 0200-Fix-CraftEntity-hashCode.patch} (94%) rename patches/server/{0202-Configurable-Alternative-LootPool-Luck-Formula.patch => 0201-Configurable-LootPool-luck-formula.patch} (92%) rename patches/server/{0203-Print-Error-details-when-failing-to-save-player-data.patch => 0202-Print-Error-details-when-failing-to-save-player-data.patch} (88%) rename patches/server/{0204-Make-shield-blocking-delay-configurable.patch => 0203-Make-shield-blocking-delay-configurable.patch} (88%) rename patches/server/{0205-Improve-EntityShootBowEvent.patch => 0204-Improve-EntityShootBowEvent.patch} (94%) rename patches/server/{0206-PlayerReadyArrowEvent.patch => 0205-PlayerReadyArrowEvent.patch} (88%) rename patches/server/{0207-Implement-EntityKnockbackByEntityEvent-and-EntityPus.patch => 0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch} (82%) rename patches/server/{0208-Expand-Explosions-API.patch => 0207-Expand-Explosions-API.patch} (94%) rename patches/server/{0209-LivingEntity-Hand-Raised-Item-Use-API.patch => 0208-LivingEntity-Hand-Raised-Item-Use-API.patch} (100%) rename patches/server/{0210-RangedEntity-API.patch => 0209-RangedEntity-API.patch} (100%) rename patches/server/{0211-Add-config-to-disable-ender-dragon-legacy-check.patch => 0210-Add-config-to-disable-ender-dragon-legacy-check.patch} (82%) rename patches/server/{0212-Implement-World.getEntity-UUID-API.patch => 0211-Implement-World.getEntity-UUID-API.patch} (91%) rename patches/server/{0213-InventoryCloseEvent-Reason-API.patch => 0212-InventoryCloseEvent-Reason-API.patch} (86%) rename patches/server/{0214-Vex-get-setSummoner-API.patch => 0213-Vex-get-setSummoner-API.patch} (100%) rename patches/server/{0215-Refresh-player-inventory-when-cancelling-PlayerInter.patch => 0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch} (85%) rename patches/server/{0216-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch => 0215-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch} (100%) rename patches/server/{0217-add-more-information-to-Entity.toString.patch => 0216-add-more-information-to-Entity.toString.patch} (90%) rename patches/server/{0218-EnderDragon-Events.patch => 0217-EnderDragon-Events.patch} (83%) rename patches/server/{0219-PlayerElytraBoostEvent.patch => 0218-PlayerElytraBoostEvent.patch} (89%) rename patches/server/{0220-PlayerLaunchProjectileEvent.patch => 0219-PlayerLaunchProjectileEvent.patch} (84%) rename patches/server/{0221-Improve-BlockPosition-inlining.patch => 0220-Improve-BlockPosition-inlining.patch} (83%) rename patches/server/{0222-Option-to-prevent-armor-stands-from-doing-entity-loo.patch => 0221-Option-to-prevent-armor-stands-from-doing-entity-loo.patch} (78%) rename patches/server/{0223-Vanished-players-don-t-have-rights.patch => 0222-Vanished-players-don-t-have-rights.patch} (97%) rename patches/server/{0224-Allow-disabling-armor-stand-ticking.patch => 0223-Allow-disabling-armor-stand-ticking.patch} (98%) rename patches/server/{0225-SkeletonHorse-Additions.patch => 0224-SkeletonHorse-Additions.patch} (100%) rename patches/server/{0226-Don-t-call-getItemMeta-on-hasItemMeta.patch => 0225-Don-t-call-getItemMeta-on-hasItemMeta.patch} (100%) rename patches/server/{0227-Expand-ArmorStand-API.patch => 0226-Expand-ArmorStand-API.patch} (100%) rename patches/server/{0228-AnvilDamageEvent.patch => 0227-AnvilDamageEvent.patch} (100%) rename patches/server/{0229-Add-TNTPrimeEvent.patch => 0228-Add-TNTPrimeEvent.patch} (98%) rename patches/server/{0230-Break-up-and-make-tab-spam-limits-configurable.patch => 0229-Break-up-and-make-tab-spam-limits-configurable.patch} (97%) rename patches/server/{0231-Fix-NBT-type-issues.patch => 0230-Fix-NBT-type-issues.patch} (95%) rename patches/server/{0232-Remove-unnecessary-itemmeta-handling.patch => 0231-Remove-unnecessary-itemmeta-handling.patch} (93%) rename patches/server/{0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch => 0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch} (95%) rename patches/server/{0234-Add-Early-Warning-Feature-to-WatchDog.patch => 0233-Add-Early-Warning-Feature-to-WatchDog.patch} (100%) rename patches/server/{0235-Use-ConcurrentHashMap-in-JsonList.patch => 0234-Use-ConcurrentHashMap-in-JsonList.patch} (98%) rename patches/server/{0236-Use-a-Queue-for-Queueing-Commands.patch => 0235-Use-a-Queue-for-Queueing-Commands.patch} (100%) rename patches/server/{0237-Ability-to-get-block-entities-from-a-chunk-without-s.patch => 0236-Ability-to-get-block-entities-from-a-chunk-without-s.patch} (100%) rename patches/server/{0238-Optimize-BlockPosition-helper-methods.patch => 0237-Optimize-BlockPosition-helper-methods.patch} (100%) rename patches/server/{0239-Restore-vanilla-default-mob-spawn-range-and-water-an.patch => 0238-Restore-vanilla-default-mob-spawn-range-and-water-an.patch} (100%) rename patches/server/{0240-Slime-Pathfinder-Events.patch => 0239-Slime-Pathfinder-Events.patch} (100%) rename patches/server/{0241-Configurable-speed-for-water-flowing-over-lava.patch => 0240-Configurable-speed-for-water-flowing-over-lava.patch} (100%) rename patches/server/{0242-Optimize-CraftBlockData-Creation.patch => 0241-Optimize-CraftBlockData-Creation.patch} (100%) rename patches/server/{0243-Optimize-MappedRegistry.patch => 0242-Optimize-MappedRegistry.patch} (100%) rename patches/server/{0244-Add-PhantomPreSpawnEvent.patch => 0243-Add-PhantomPreSpawnEvent.patch} (100%) rename patches/server/{0245-Add-More-Creeper-API.patch => 0244-Add-More-Creeper-API.patch} (100%) rename patches/server/{0246-Inventory-removeItemAnySlot.patch => 0245-Inventory-removeItemAnySlot.patch} (100%) rename patches/server/{0247-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch => 0246-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch} (92%) rename patches/server/{0248-Add-ray-tracing-methods-to-LivingEntity.patch => 0247-Add-ray-tracing-methods-to-LivingEntity.patch} (93%) rename patches/server/{0249-Expose-attack-cooldown-methods-for-Player.patch => 0248-Expose-attack-cooldown-methods-for-Player.patch} (92%) rename patches/server/{0250-Improve-death-events.patch => 0249-Improve-death-events.patch} (97%) rename patches/server/{0251-Allow-chests-to-be-placed-with-NBT-data.patch => 0250-Allow-chests-to-be-placed-with-NBT-data.patch} (100%) rename patches/server/{0252-Mob-Pathfinding-API.patch => 0251-Mob-Pathfinding-API.patch} (100%) rename patches/server/{0253-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch => 0252-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch} (100%) rename patches/server/{0254-Prevent-various-interactions-from-causing-chunk-load.patch => 0253-Prevent-various-interactions-from-causing-chunk-load.patch} (98%) rename patches/server/{0255-Prevent-mob-spawning-from-loading-generating-chunks.patch => 0254-Prevent-mob-spawning-from-loading-generating-chunks.patch} (100%) rename patches/server/{0256-Implement-furnace-cook-speed-multiplier-API.patch => 0255-Implement-furnace-cook-speed-multiplier-API.patch} (100%) rename patches/server/{0257-Honor-EntityAgeable.ageLock.patch => 0256-Honor-EntityAgeable.ageLock.patch} (100%) rename patches/server/{0258-Configurable-connection-throttle-kick-message.patch => 0257-Configurable-connection-throttle-kick-message.patch} (94%) rename patches/server/{0259-Prevent-chunk-loading-from-Fluid-Flowing.patch => 0258-Prevent-chunk-loading-from-Fluid-Flowing.patch} (100%) rename patches/server/{0260-Hook-into-CB-plugin-rewrites.patch => 0259-Hook-into-CB-plugin-rewrites.patch} (100%) rename patches/server/{0261-PreSpawnerSpawnEvent.patch => 0260-PreSpawnerSpawnEvent.patch} (100%) rename patches/server/{0262-Add-LivingEntity-getTargetEntity.patch => 0261-Add-LivingEntity-getTargetEntity.patch} (97%) rename patches/server/{0263-Add-sun-related-API.patch => 0262-Add-sun-related-API.patch} (88%) rename patches/server/{0264-Catch-JsonParseException-in-entity-and-block-entity-.patch => 0263-Catch-JsonParseException-in-entity-and-block-entity-.patch} (100%) rename patches/server/{0265-Turtle-API.patch => 0264-Turtle-API.patch} (100%) rename patches/server/{0266-Call-player-spectator-target-events-and-improve-impl.patch => 0265-Call-player-spectator-target-events-and-improve-impl.patch} (96%) rename patches/server/{0267-Add-more-Witch-API.patch => 0266-Add-more-Witch-API.patch} (98%) rename patches/server/{0268-Check-Drowned-for-Villager-Aggression-Config.patch => 0267-Check-Drowned-for-Villager-Aggression-Config.patch} (100%) rename patches/server/{0269-Add-option-to-prevent-players-from-moving-into-unloa.patch => 0268-Add-option-to-prevent-players-from-moving-into-unloa.patch} (98%) rename patches/server/{0270-Reset-players-airTicks-on-respawn.patch => 0269-Reset-players-airTicks-on-respawn.patch} (90%) rename patches/server/{0271-Don-t-sleep-after-profile-lookups-if-not-needed.patch => 0270-Don-t-sleep-after-profile-lookups-if-not-needed.patch} (100%) rename patches/server/{0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch => 0271-Improve-Server-Thread-Pool-and-Thread-Priorities.patch} (100%) rename patches/server/{0273-Optimize-World-Time-Updates.patch => 0272-Optimize-World-Time-Updates.patch} (100%) rename patches/server/{0274-Restore-custom-InventoryHolder-support.patch => 0273-Restore-custom-InventoryHolder-support.patch} (100%) rename patches/server/{0275-Fix-SpongeAbsortEvent-handling.patch => 0274-Fix-SpongeAbsortEvent-handling.patch} (100%) rename patches/server/{0276-Don-t-allow-digging-into-unloaded-chunks.patch => 0275-Don-t-allow-digging-into-unloaded-chunks.patch} (98%) rename patches/server/{0277-Make-the-default-permission-message-configurable.patch => 0276-Make-the-default-permission-message-configurable.patch} (95%) rename patches/server/{0278-Handle-Large-Packets-disconnecting-client.patch => 0277-Handle-Large-Packets-disconnecting-client.patch} (100%) rename patches/server/{0279-force-entity-dismount-during-teleportation.patch => 0278-force-entity-dismount-during-teleportation.patch} (95%) rename patches/server/{0280-Add-more-Zombie-API.patch => 0279-Add-more-Zombie-API.patch} (100%) rename patches/server/{0281-Book-Size-Limits.patch => 0280-Book-Size-Limits.patch} (96%) rename patches/server/{0282-Add-PlayerConnectionCloseEvent.patch => 0281-Add-PlayerConnectionCloseEvent.patch} (98%) rename patches/server/{0283-Replace-OfflinePlayer-getLastPlayed.patch => 0282-Replace-OfflinePlayer-getLastPlayed.patch} (96%) rename patches/server/{0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch => 0283-Workaround-for-vehicle-tracking-issue-on-disconnect.patch} (91%) rename patches/server/{0285-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch => 0284-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch} (92%) rename patches/server/{0286-BlockDestroyEvent.patch => 0285-BlockDestroyEvent.patch} (96%) rename patches/server/{0287-Async-command-map-building.patch => 0286-Async-command-map-building.patch} (97%) rename patches/server/{0288-Brigadier-Mojang-API.patch => 0287-Brigadier-Mojang-API.patch} (99%) rename patches/server/{0289-Improve-exact-choice-recipe-ingredients.patch => 0288-Improve-exact-choice-recipe-ingredients.patch} (100%) rename patches/server/{0290-Limit-Client-Sign-length-more.patch => 0289-Limit-Client-Sign-length-more.patch} (96%) rename patches/server/{0291-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch => 0290-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch} (89%) rename patches/server/{0292-Handle-Oversized-Tile-Entities-in-chunks.patch => 0291-Handle-Oversized-Tile-Entities-in-chunks.patch} (100%) rename patches/server/{0293-Entity-getEntitySpawnReason.patch => 0292-Entity-getEntitySpawnReason.patch} (96%) rename patches/server/{0294-Optimize-Network-Manager-and-add-advanced-packet-sup.patch => 0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch} (99%) rename patches/server/{0295-Fire-event-on-GS4-query.patch => 0294-Fire-event-on-GS4-query.patch} (100%) rename patches/server/{0296-Add-PlayerPostRespawnEvent.patch => 0295-Add-PlayerPostRespawnEvent.patch} (95%) rename patches/server/{0297-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch => 0296-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch} (94%) rename patches/server/{0298-Server-Tick-Events.patch => 0297-Server-Tick-Events.patch} (94%) rename patches/server/{0299-PlayerDeathEvent-getItemsToKeep.patch => 0298-PlayerDeathEvent-getItemsToKeep.patch} (97%) rename patches/server/{0300-Optimize-Captured-BlockEntity-Lookup.patch => 0299-Optimize-Captured-BlockEntity-Lookup.patch} (94%) rename patches/server/{0301-Add-Heightmap-API.patch => 0300-Add-Heightmap-API.patch} (95%) rename patches/server/{0302-Mob-Spawner-API-Enhancements.patch => 0301-Mob-Spawner-API-Enhancements.patch} (98%) rename patches/server/{0303-Fix-CB-call-to-changed-postToMainThread-method.patch => 0302-Fix-CB-call-to-changed-postToMainThread-method.patch} (91%) rename patches/server/{0304-Fix-sounds-when-item-frames-are-modified-MC-123450.patch => 0303-Fix-sounds-when-item-frames-are-modified-MC-123450.patch} (100%) rename patches/server/{0305-Implement-CraftBlockSoundGroup.patch => 0304-Implement-CraftBlockSoundGroup.patch} (100%) rename patches/server/{0306-Configurable-Keep-Spawn-Loaded-range-per-world.patch => 0305-Configurable-Keep-Spawn-Loaded-range-per-world.patch} (98%) rename patches/server/{0307-Allow-Saving-of-Oversized-Chunks.patch => 0306-Allow-Saving-of-Oversized-Chunks.patch} (100%) rename patches/server/{0308-Expose-the-internal-current-tick.patch => 0307-Expose-the-internal-current-tick.patch} (100%) rename patches/server/{0309-Fix-World-isChunkGenerated-calls.patch => 0308-Fix-World-isChunkGenerated-calls.patch} (99%) rename patches/server/{0310-Show-blockstate-location-if-we-failed-to-read-it.patch => 0309-Show-blockstate-location-if-we-failed-to-read-it.patch} (100%) rename patches/server/{0311-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch => 0310-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch} (100%) rename patches/server/{0312-Configurable-projectile-relative-velocity.patch => 0311-Configurable-projectile-relative-velocity.patch} (96%) rename patches/server/{0313-offset-item-frame-ticking.patch => 0312-offset-item-frame-ticking.patch} (100%) rename patches/server/{0314-Prevent-consuming-the-wrong-itemstack.patch => 0313-Prevent-consuming-the-wrong-itemstack.patch} (96%) rename patches/server/{0315-Dont-send-unnecessary-sign-update.patch => 0314-Dont-send-unnecessary-sign-update.patch} (100%) rename patches/server/{0316-Add-option-to-disable-pillager-patrols.patch => 0315-Add-option-to-disable-pillager-patrols.patch} (100%) rename patches/server/{0317-Flat-bedrock-generator-settings.patch => 0316-Flat-bedrock-generator-settings.patch} (100%) rename patches/server/{0318-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch => 0317-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch} (100%) rename patches/server/{0319-MC-145656-Fix-Follow-Range-Initial-Target.patch => 0318-MC-145656-Fix-Follow-Range-Initial-Target.patch} (100%) rename patches/server/{0320-Duplicate-UUID-Resolve-Option.patch => 0319-Duplicate-UUID-Resolve-Option.patch} (100%) rename patches/server/{0321-PlayerDeathEvent-shouldDropExperience.patch => 0320-PlayerDeathEvent-shouldDropExperience.patch} (91%) rename patches/server/{0322-Prevent-bees-loading-chunks-checking-hive-position.patch => 0321-Prevent-bees-loading-chunks-checking-hive-position.patch} (100%) rename patches/server/{0323-Don-t-load-Chunks-from-Hoppers-and-other-things.patch => 0322-Don-t-load-Chunks-from-Hoppers-and-other-things.patch} (100%) rename patches/server/{0324-Optimise-EntityGetter-getPlayerByUUID.patch => 0323-Optimise-EntityGetter-getPlayerByUUID.patch} (94%) rename patches/server/{0325-Fix-items-not-falling-correctly.patch => 0324-Fix-items-not-falling-correctly.patch} (96%) rename patches/server/{0326-Optimize-call-to-getFluid-for-explosions.patch => 0325-Optimize-call-to-getFluid-for-explosions.patch} (100%) rename patches/server/{0327-Fix-last-firework-in-stack-not-having-effects-when-d.patch => 0326-Fix-last-firework-in-stack-not-having-effects-when-d.patch} (100%) rename patches/server/{0328-Entity-Activation-Range-2.0.patch => 0327-Entity-Activation-Range-2.0.patch} (99%) rename patches/server/{0329-Guard-against-serializing-mismatching-chunk-coordina.patch => 0328-Guard-against-serializing-mismatching-chunk-coordina.patch} (100%) rename patches/server/{0330-Alternative-item-despawn-rate.patch => 0329-Alternative-item-despawn-rate.patch} (100%) rename patches/server/{0331-Tracking-Range-Improvements.patch => 0330-Tracking-Range-Improvements.patch} (100%) rename patches/server/{0332-Fix-items-vanishing-through-end-portal.patch => 0331-Fix-items-vanishing-through-end-portal.patch} (93%) rename patches/server/{0333-Optional-per-player-mob-spawns.patch => 0332-Optional-per-player-mob-spawns.patch} (98%) rename patches/server/{0334-Anti-Xray.patch => 0333-Anti-Xray.patch} (99%) rename patches/server/{0335-Bees-get-gravity-in-void.-Fixes-MC-167279.patch => 0334-Bees-get-gravity-in-void.-Fixes-MC-167279.patch} (100%) rename patches/server/{0336-Improve-Block-breakNaturally-API.patch => 0335-Improve-Block-breakNaturally-API.patch} (100%) rename patches/server/{0337-Optimise-getChunkAt-calls-for-loaded-chunks.patch => 0336-Optimise-getChunkAt-calls-for-loaded-chunks.patch} (100%) rename patches/server/{0338-Add-debug-for-sync-chunk-loads.patch => 0337-Add-debug-for-sync-chunk-loads.patch} (99%) rename patches/server/{0339-Improve-java-version-check.patch => 0338-Improve-java-version-check.patch} (100%) rename patches/server/{0340-Add-ThrownEggHatchEvent.patch => 0339-Add-ThrownEggHatchEvent.patch} (100%) rename patches/server/{0341-Entity-Jump-API.patch => 0340-Entity-Jump-API.patch} (95%) rename patches/server/{0342-Add-option-to-nerf-pigmen-from-nether-portals.patch => 0341-Add-option-to-nerf-pigmen-from-nether-portals.patch} (96%) rename patches/server/{0343-Make-the-GUI-graph-fancier.patch => 0342-Make-the-GUI-graph-fancier.patch} (100%) rename patches/server/{0344-add-hand-to-BlockMultiPlaceEvent.patch => 0343-add-hand-to-BlockMultiPlaceEvent.patch} (93%) rename patches/server/{0345-Validate-tripwire-hook-placement-before-update.patch => 0344-Validate-tripwire-hook-placement-before-update.patch} (100%) rename patches/server/{0346-Add-option-to-allow-iron-golems-to-spawn-in-air.patch => 0345-Add-option-to-allow-iron-golems-to-spawn-in-air.patch} (100%) rename patches/server/{0347-Configurable-chance-of-villager-zombie-infection.patch => 0346-Configurable-chance-of-villager-zombie-infection.patch} (95%) rename patches/server/{0348-Optimise-Chunk-getFluid.patch => 0347-Optimise-Chunk-getFluid.patch} (100%) rename patches/server/{0349-Set-spigots-verbose-world-setting-to-false-by-def.patch => 0348-Set-spigots-verbose-world-setting-to-false-by-def.patch} (100%) rename patches/server/{0350-Add-tick-times-API-and-mspt-command.patch => 0349-Add-tick-times-API-and-mspt-command.patch} (98%) rename patches/server/{0351-Expose-MinecraftServer-isRunning.patch => 0350-Expose-MinecraftServer-isRunning.patch} (100%) rename patches/server/{0352-Add-Raw-Byte-ItemStack-Serialization.patch => 0351-Add-Raw-Byte-ItemStack-Serialization.patch} (100%) rename patches/server/{0353-Pillager-patrol-spawn-settings-and-per-player-option.patch => 0352-Pillager-patrol-spawn-settings-and-per-player-option.patch} (98%) rename patches/server/{0354-Remote-Connections-shouldn-t-hold-up-shutdown.patch => 0353-Remote-Connections-shouldn-t-hold-up-shutdown.patch} (88%) rename patches/server/{0355-Do-not-allow-bees-to-load-chunks-for-beehives.patch => 0354-Do-not-allow-bees-to-load-chunks-for-beehives.patch} (96%) rename patches/server/{0356-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch => 0355-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch} (97%) rename patches/server/{0357-Don-t-tick-dead-players.patch => 0356-Don-t-tick-dead-players.patch} (91%) rename patches/server/{0358-Dead-Player-s-shouldn-t-be-able-to-move.patch => 0357-Dead-Player-s-shouldn-t-be-able-to-move.patch} (90%) rename patches/server/{0359-Optimize-Collision-to-not-load-chunks.patch => 0358-Optimize-Collision-to-not-load-chunks.patch} (97%) rename patches/server/{0360-Don-t-move-existing-players-to-world-spawn.patch => 0359-Don-t-move-existing-players-to-world-spawn.patch} (93%) rename patches/server/{0361-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => 0360-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (100%) rename patches/server/{0362-Improved-Watchdog-Support.patch => 0361-Improved-Watchdog-Support.patch} (99%) rename patches/server/{0363-Optimize-Pathfinding.patch => 0362-Optimize-Pathfinding.patch} (100%) rename patches/server/{0364-Reduce-Either-Optional-allocation.patch => 0363-Reduce-Either-Optional-allocation.patch} (100%) rename patches/server/{0365-Reduce-memory-footprint-of-CompoundTag.patch => 0364-Reduce-memory-footprint-of-CompoundTag.patch} (100%) rename patches/server/{0366-Prevent-opening-inventories-when-frozen.patch => 0365-Prevent-opening-inventories-when-frozen.patch} (93%) rename patches/server/{0367-Don-t-run-entity-collision-code-if-not-needed.patch => 0366-Don-t-run-entity-collision-code-if-not-needed.patch} (96%) rename patches/server/{0368-Implement-Player-Client-Options-API.patch => 0367-Implement-Player-Client-Options-API.patch} (98%) rename patches/server/{0369-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch => 0368-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch} (100%) rename patches/server/{0370-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch => 0369-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch} (97%) rename patches/server/{0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch => 0370-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch} (97%) rename patches/server/{0372-Add-PlayerAttackEntityCooldownResetEvent.patch => 0371-Add-PlayerAttackEntityCooldownResetEvent.patch} (95%) rename patches/server/{0373-Don-t-fire-BlockFade-on-worldgen-threads.patch => 0372-Don-t-fire-BlockFade-on-worldgen-threads.patch} (94%) rename patches/server/{0374-Add-phantom-creative-and-insomniac-controls.patch => 0373-Add-phantom-creative-and-insomniac-controls.patch} (97%) rename patches/server/{0375-Fix-item-duplication-and-teleport-issues.patch => 0374-Fix-item-duplication-and-teleport-issues.patch} (96%) rename patches/server/{0376-Villager-Restocks-API.patch => 0375-Villager-Restocks-API.patch} (100%) rename patches/server/{0377-Validate-PickItem-Packet-and-kick-for-invalid.patch => 0376-Validate-PickItem-Packet-and-kick-for-invalid.patch} (95%) rename patches/server/{0378-Expose-game-version.patch => 0377-Expose-game-version.patch} (100%) rename patches/server/{0379-Optimize-Voxel-Shape-Merging.patch => 0378-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/server/{0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch => 0379-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch} (93%) rename patches/server/{0381-misc-debugging-dumps.patch => 0380-misc-debugging-dumps.patch} (96%) rename patches/server/{0382-Prevent-teleporting-dead-entities.patch => 0381-Prevent-teleporting-dead-entities.patch} (93%) rename patches/server/{0383-Deobfuscate-stacktraces-in-log-messages-crash-report.patch => 0382-Deobfuscate-stacktraces-in-log-messages-crash-report.patch} (100%) rename patches/server/{0384-Implement-Mob-Goal-API.patch => 0383-Implement-Mob-Goal-API.patch} (100%) rename patches/server/{0385-Add-villager-reputation-API.patch => 0384-Add-villager-reputation-API.patch} (100%) rename patches/server/{0386-Option-for-maximum-exp-value-when-merging-orbs.patch => 0385-Option-for-maximum-exp-value-when-merging-orbs.patch} (96%) rename patches/server/{0387-ExperienceOrbMergeEvent.patch => 0386-ExperienceOrbMergeEvent.patch} (94%) rename patches/server/{0388-Fix-PotionEffect-ignores-icon-flag.patch => 0387-Fix-PotionEffect-ignores-icon-flag.patch} (100%) rename patches/server/{0389-Potential-bed-API.patch => 0388-Potential-bed-API.patch} (95%) rename patches/server/{0390-Wait-for-Async-Tasks-during-shutdown.patch => 0389-Wait-for-Async-Tasks-during-shutdown.patch} (96%) rename patches/server/{0391-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch => 0390-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch} (100%) rename patches/server/{0392-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 0391-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (99%) rename patches/server/{0393-Ensure-safe-gateway-teleport.patch => 0392-Ensure-safe-gateway-teleport.patch} (100%) rename patches/server/{0394-Add-option-for-console-having-all-permissions.patch => 0393-Add-option-for-console-having-all-permissions.patch} (100%) rename patches/server/{0395-Fix-villager-trading-demand-MC-163962.patch => 0394-Fix-villager-trading-demand-MC-163962.patch} (100%) rename patches/server/{0396-Maps-shouldn-t-load-chunks.patch => 0395-Maps-shouldn-t-load-chunks.patch} (100%) rename patches/server/{0397-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch => 0396-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch} (100%) rename patches/server/{0398-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch => 0397-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch} (100%) rename patches/server/{0399-Fix-piston-physics-inconsistency-MC-188840.patch => 0398-Fix-piston-physics-inconsistency-MC-188840.patch} (100%) rename patches/server/{0400-Fix-sand-duping.patch => 0399-Fix-sand-duping.patch} (100%) rename patches/server/{0401-Fix-missing-chunks-due-to-integer-overflow.patch => 0400-Fix-missing-chunks-due-to-integer-overflow.patch} (100%) rename patches/server/{0402-Prevent-position-desync-causing-tp-exploit.patch => 0401-Prevent-position-desync-causing-tp-exploit.patch} (94%) rename patches/server/{0403-Inventory-getHolder-method-without-block-snapshot.patch => 0402-Inventory-getHolder-method-without-block-snapshot.patch} (100%) rename patches/server/{0404-Improve-Arrow-API.patch => 0403-Improve-Arrow-API.patch} (100%) rename patches/server/{0405-Add-PlayerRecipeBookClickEvent.patch => 0404-Add-PlayerRecipeBookClickEvent.patch} (97%) rename patches/server/{0406-Use-distance-map-to-optimise-entity-tracker.patch => 0405-Use-distance-map-to-optimise-entity-tracker.patch} (99%) rename patches/server/{0407-Hide-sync-chunk-writes-behind-flag.patch => 0406-Hide-sync-chunk-writes-behind-flag.patch} (100%) rename patches/server/{0408-Add-permission-for-command-blocks.patch => 0407-Add-permission-for-command-blocks.patch} (97%) rename patches/server/{0409-Ensure-Entity-position-and-AABB-are-never-invalid.patch => 0408-Ensure-Entity-position-and-AABB-are-never-invalid.patch} (97%) rename patches/server/{0410-Fix-Per-World-Difficulty-Remembering-Difficulty.patch => 0409-Fix-Per-World-Difficulty-Remembering-Difficulty.patch} (94%) rename patches/server/{0411-Paper-dumpitem-command.patch => 0410-Paper-dumpitem-command.patch} (100%) rename patches/server/{0412-Improve-Legacy-Component-serialization-size.patch => 0411-Improve-Legacy-Component-serialization-size.patch} (100%) rename patches/server/{0413-Optimize-Bit-Operations-by-inlining.patch => 0412-Optimize-Bit-Operations-by-inlining.patch} (99%) rename patches/server/{0414-Add-Plugin-Tickets-to-API-Chunk-Methods.patch => 0413-Add-Plugin-Tickets-to-API-Chunk-Methods.patch} (98%) rename patches/server/{0415-incremental-chunk-and-player-saving.patch => 0414-incremental-chunk-and-player-saving.patch} (96%) rename patches/server/{0416-Support-old-UUID-format-for-NBT.patch => 0415-Support-old-UUID-format-for-NBT.patch} (96%) rename patches/server/{0417-Convert-legacy-attributes-in-Item-Meta.patch => 0416-Convert-legacy-attributes-in-Item-Meta.patch} (97%) rename patches/server/{0418-Remove-streams-from-hot-code.patch => 0417-Remove-streams-from-hot-code.patch} (99%) rename patches/server/{0419-Support-components-in-ItemMeta.patch => 0418-Support-components-in-ItemMeta.patch} (97%) rename patches/server/{0420-Improve-fix-EntityTargetLivingEntityEvent.patch => 0419-Improve-fix-EntityTargetLivingEntityEvent.patch} (100%) rename patches/server/{0421-Add-entity-liquid-API.patch => 0420-Add-entity-liquid-API.patch} (100%) rename patches/server/{0422-Update-itemstack-legacy-name-and-lore.patch => 0421-Update-itemstack-legacy-name-and-lore.patch} (97%) rename patches/server/{0423-Add-PrepareResultEvent.patch => 0422-Add-PrepareResultEvent.patch} (97%) rename patches/server/{0424-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch => 0423-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch} (91%) rename patches/server/{0425-Fix-arrows-never-despawning-MC-125757.patch => 0424-Fix-arrows-never-despawning-MC-125757.patch} (100%) rename patches/server/{0426-Thread-Safe-Vanilla-Command-permission-checking.patch => 0425-Thread-Safe-Vanilla-Command-permission-checking.patch} (94%) rename patches/server/{0427-Fix-SPIGOT-5989.patch => 0426-Fix-SPIGOT-5989.patch} (97%) rename patches/server/{0428-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0427-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (97%) rename patches/server/{0429-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0428-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (89%) rename patches/server/{0430-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0429-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (100%) rename patches/server/{0431-Optimize-NetworkManager-Exception-Handling.patch => 0430-Optimize-NetworkManager-Exception-Handling.patch} (79%) rename patches/server/{0432-Fix-some-rails-connecting-improperly.patch => 0431-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/server/{0433-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0432-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/server/{0434-Brand-support.patch => 0433-Brand-support.patch} (96%) rename patches/server/{0435-Add-playPickupItemAnimation-to-LivingEntity.patch => 0434-Add-playPickupItemAnimation-to-LivingEntity.patch} (100%) rename patches/server/{0436-Don-t-require-FACING-data.patch => 0435-Don-t-require-FACING-data.patch} (100%) rename patches/server/{0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0436-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (93%) rename patches/server/{0438-Add-moon-phase-API.patch => 0437-Add-moon-phase-API.patch} (100%) rename patches/server/{0439-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0438-Do-not-let-the-server-load-chunks-from-newer-version.patch} (100%) rename patches/server/{0440-Prevent-headless-pistons-from-being-created.patch => 0439-Prevent-headless-pistons-from-being-created.patch} (95%) rename patches/server/{0441-Add-BellRingEvent.patch => 0440-Add-BellRingEvent.patch} (93%) rename patches/server/{0442-Add-zombie-targets-turtle-egg-config.patch => 0441-Add-zombie-targets-turtle-egg-config.patch} (91%) rename patches/server/{0443-Buffer-joins-to-world.patch => 0442-Buffer-joins-to-world.patch} (95%) rename patches/server/{0444-Eigencraft-redstone-implementation.patch => 0443-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{0445-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0444-Fix-hex-colors-not-working-in-some-kick-messages.patch} (100%) rename patches/server/{0446-PortalCreateEvent-needs-to-know-its-entity.patch => 0445-PortalCreateEvent-needs-to-know-its-entity.patch} (96%) rename patches/server/{0447-Add-more-Evoker-API.patch => 0446-Add-more-Evoker-API.patch} (100%) rename patches/server/{0448-Add-methods-to-get-translation-keys.patch => 0447-Add-methods-to-get-translation-keys.patch} (100%) rename patches/server/{0449-Create-HoverEvent-from-ItemStack-Entity.patch => 0448-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0450-Cache-block-data-strings.patch => 0449-Cache-block-data-strings.patch} (97%) rename patches/server/{0451-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0450-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (96%) rename patches/server/{0452-Add-additional-open-container-api-to-HumanEntity.patch => 0451-Add-additional-open-container-api-to-HumanEntity.patch} (95%) rename patches/server/{0453-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0452-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0454-Extend-block-drop-capture-to-capture-all-items-added.patch => 0453-Extend-block-drop-capture-to-capture-all-items-added.patch} (96%) rename patches/server/{0455-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0454-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (94%) rename patches/server/{0456-Lazily-track-plugin-scoreboards-by-default.patch => 0455-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0457-Entity-isTicking.patch => 0456-Entity-isTicking.patch} (94%) rename patches/server/{0458-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0457-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (94%) rename patches/server/{0459-Fix-Concurrency-issue-in-ShufflingList.patch => 0458-Fix-Concurrency-issue-in-ShufflingList.patch} (100%) rename patches/server/{0460-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0459-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (92%) rename patches/server/{0461-Fix-for-large-move-vectors-crashing-server.patch => 0460-Fix-for-large-move-vectors-crashing-server.patch} (98%) rename patches/server/{0462-Optimise-getType-calls.patch => 0461-Optimise-getType-calls.patch} (98%) rename patches/server/{0463-Villager-resetOffers.patch => 0462-Villager-resetOffers.patch} (100%) rename patches/server/{0464-Retain-block-place-order-when-capturing-blockstates.patch => 0463-Retain-block-place-order-when-capturing-blockstates.patch} (93%) rename patches/server/{0465-Reduce-blockpos-allocation-from-pathfinding.patch => 0464-Reduce-blockpos-allocation-from-pathfinding.patch} (100%) rename patches/server/{0466-Fix-item-locations-dropped-from-campfires.patch => 0465-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0467-Fix-bell-block-entity-memory-leak.patch => 0466-Fix-bell-block-entity-memory-leak.patch} (100%) rename patches/server/{0468-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0467-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0469-Add-getOfflinePlayerIfCached-String.patch => 0468-Add-getOfflinePlayerIfCached-String.patch} (93%) rename patches/server/{0470-Add-ignore-discounts-API.patch => 0469-Add-ignore-discounts-API.patch} (99%) rename patches/server/{0471-Toggle-for-removing-existing-dragon.patch => 0470-Toggle-for-removing-existing-dragon.patch} (92%) rename patches/server/{0472-Fix-client-lag-on-advancement-loading.patch => 0471-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/server/{0473-Item-no-age-no-player-pickup.patch => 0472-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0474-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 0473-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{0475-Beacon-API-custom-effect-ranges.patch => 0474-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0476-Add-API-for-quit-reason.patch => 0475-Add-API-for-quit-reason.patch} (93%) rename patches/server/{0477-Add-Wandering-Trader-spawn-rate-config-options.patch => 0476-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/server/{0478-Expose-world-spawn-angle.patch => 0477-Expose-world-spawn-angle.patch} (91%) rename patches/server/{0479-Add-Destroy-Speed-API.patch => 0478-Add-Destroy-Speed-API.patch} (93%) rename patches/server/{0480-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0479-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (93%) rename patches/server/{0481-Add-LivingEntity-clearActiveItem.patch => 0480-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/server/{0482-Add-PlayerItemCooldownEvent.patch => 0481-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0483-Significantly-improve-performance-of-the-end-generat.patch => 0482-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0484-More-lightning-API.patch => 0483-More-lightning-API.patch} (100%) rename patches/server/{0485-Climbing-should-not-bypass-cramming-gamerule.patch => 0484-Climbing-should-not-bypass-cramming-gamerule.patch} (96%) rename patches/server/{0486-Add-missing-default-perms-for-commands.patch => 0485-Add-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0487-Add-PlayerShearBlockEvent.patch => 0486-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0488-Limit-recipe-packets.patch => 0487-Limit-recipe-packets.patch} (96%) rename patches/server/{0489-Fix-CraftSound-backwards-compatibility.patch => 0488-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0490-Player-Chunk-Load-Unload-Events.patch => 0489-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/server/{0491-Optimize-Dynamic-get-Missing-Keys.patch => 0490-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0492-Expose-LivingEntity-hurt-direction.patch => 0491-Expose-LivingEntity-hurt-direction.patch} (92%) rename patches/server/{0493-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0492-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (91%) rename patches/server/{0494-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch => 0493-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch} (93%) rename patches/server/{0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 0494-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (99%) rename patches/server/{0496-Add-TargetHitEvent.patch => 0495-Add-TargetHitEvent.patch} (100%) rename patches/server/{0497-MC-4-Fix-item-position-desync.patch => 0496-MC-4-Fix-item-position-desync.patch} (96%) rename patches/server/{0498-Additional-Block-Material-API.patch => 0497-Additional-Block-Material-API.patch} (100%) rename patches/server/{0499-Fix-harming-potion-dupe.patch => 0498-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0500-API-to-get-Material-from-Boats-and-Minecarts.patch => 0499-API-to-get-Material-from-Boats-and-Minecarts.patch} (100%) rename patches/server/{0501-Cache-burn-durations.patch => 0500-Cache-burn-durations.patch} (100%) rename patches/server/{0502-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0501-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/server/{0503-Fix-Not-a-string-Map-Conversion-spam.patch => 0502-Fix-Not-a-string-Map-Conversion-spam.patch} (100%) rename patches/server/{0504-Add-PlayerFlowerPotManipulateEvent.patch => 0503-Add-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0505-Fix-interact-event-not-being-called-sometimes.patch => 0504-Fix-interact-event-not-being-called-sometimes.patch} (97%) rename patches/server/{0506-Zombie-API-breaking-doors.patch => 0505-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0507-Fix-nerfed-slime-when-splitting.patch => 0506-Fix-nerfed-slime-when-splitting.patch} (90%) rename patches/server/{0508-Add-EntityLoadCrossbowEvent.patch => 0507-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0509-Add-WorldGameRuleChangeEvent.patch => 0508-Add-WorldGameRuleChangeEvent.patch} (98%) rename patches/server/{0510-Add-ServerResourcesReloadedEvent.patch => 0509-Add-ServerResourcesReloadedEvent.patch} (97%) rename patches/server/{0511-Add-world-settings-for-mobs-picking-up-loot.patch => 0510-Add-world-settings-for-mobs-picking-up-loot.patch} (96%) rename patches/server/{0512-Add-BlockFailedDispenseEvent.patch => 0511-Add-BlockFailedDispenseEvent.patch} (96%) rename patches/server/{0513-Add-PlayerLecternPageChangeEvent.patch => 0512-Add-PlayerLecternPageChangeEvent.patch} (100%) rename patches/server/{0514-Add-PlayerLoomPatternSelectEvent.patch => 0513-Add-PlayerLoomPatternSelectEvent.patch} (96%) rename patches/server/{0515-Configurable-door-breaking-difficulty.patch => 0514-Configurable-door-breaking-difficulty.patch} (95%) rename patches/server/{0516-Empty-commands-shall-not-be-dispatched.patch => 0515-Empty-commands-shall-not-be-dispatched.patch} (89%) rename patches/server/{0517-Remove-stale-POIs.patch => 0516-Remove-stale-POIs.patch} (92%) rename patches/server/{0518-Fix-villager-boat-exploit.patch => 0517-Fix-villager-boat-exploit.patch} (93%) rename patches/server/{0519-Add-sendOpLevel-API.patch => 0518-Add-sendOpLevel-API.patch} (92%) rename patches/server/{0520-TODO-Registry-Modification-API.patch => 0519-TODO-Registry-Modification-API.patch} (100%) rename patches/server/{0521-Add-StructuresLocateEvent.patch => 0520-Add-StructuresLocateEvent.patch} (100%) rename patches/server/{0522-Collision-option-for-requiring-a-player-participant.patch => 0521-Collision-option-for-requiring-a-player-participant.patch} (97%) rename patches/server/{0523-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0522-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0524-Return-chat-component-with-empty-text-instead-of-thr.patch => 0523-Return-chat-component-with-empty-text-instead-of-thr.patch} (92%) rename patches/server/{0525-Make-schedule-command-per-world.patch => 0524-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0526-Configurable-max-leash-distance.patch => 0525-Configurable-max-leash-distance.patch} (100%) rename patches/server/{0527-Add-BlockPreDispenseEvent.patch => 0526-Add-BlockPreDispenseEvent.patch} (95%) rename patches/server/{0528-Add-PlayerChangeBeaconEffectEvent.patch => 0527-Add-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/server/{0529-Add-toggle-for-always-placing-the-dragon-egg.patch => 0528-Add-toggle-for-always-placing-the-dragon-egg.patch} (92%) rename patches/server/{0530-Add-PlayerStonecutterRecipeSelectEvent.patch => 0529-Add-PlayerStonecutterRecipeSelectEvent.patch} (97%) rename patches/server/{0531-Expand-EntityUnleashEvent.patch => 0530-Expand-EntityUnleashEvent.patch} (98%) rename patches/server/{0532-Reset-shield-blocking-on-dimension-change.patch => 0531-Reset-shield-blocking-on-dimension-change.patch} (90%) rename patches/server/{0533-Add-DragonEggFormEvent.patch => 0532-Add-DragonEggFormEvent.patch} (96%) rename patches/server/{0534-Add-EntityMoveEvent.patch => 0533-Add-EntityMoveEvent.patch} (95%) rename patches/server/{0535-added-option-to-disable-pathfinding-updates-on-block.patch => 0534-added-option-to-disable-pathfinding-updates-on-block.patch} (92%) rename patches/server/{0536-Inline-shift-direction-fields.patch => 0535-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0537-Allow-adding-items-to-BlockDropItemEvent.patch => 0536-Allow-adding-items-to-BlockDropItemEvent.patch} (95%) rename patches/server/{0538-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0537-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0539-living-entity-allow-attribute-registration.patch => 0538-living-entity-allow-attribute-registration.patch} (100%) rename patches/server/{0540-fix-dead-slime-setSize-invincibility.patch => 0539-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0541-Merchant-getRecipes-should-return-an-immutable-list.patch => 0540-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0542-Expose-Tracked-Players.patch => 0541-Expose-Tracked-Players.patch} (100%) rename patches/server/{0543-Improve-ServerGUI.patch => 0542-Improve-ServerGUI.patch} (99%) rename patches/server/{0544-fix-converting-txt-to-json-file.patch => 0543-fix-converting-txt-to-json-file.patch} (95%) rename patches/server/{0545-Add-worldborder-events.patch => 0544-Add-worldborder-events.patch} (100%) rename patches/server/{0546-Add-PlayerNameEntityEvent.patch => 0545-Add-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0547-Prevent-grindstones-from-overstacking-items.patch => 0546-Prevent-grindstones-from-overstacking-items.patch} (94%) rename patches/server/{0548-Add-recipe-to-cook-events.patch => 0547-Add-recipe-to-cook-events.patch} (94%) rename patches/server/{0549-Add-Block-isValidTool.patch => 0548-Add-Block-isValidTool.patch} (100%) rename patches/server/{0550-Allow-using-signs-inside-spawn-protection.patch => 0549-Allow-using-signs-inside-spawn-protection.patch} (95%) rename patches/server/{0551-Expand-world-key-API.patch => 0550-Expand-world-key-API.patch} (95%) rename patches/server/{0552-Add-fast-alternative-constructor-for-Rotations.patch => 0551-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0553-Item-Rarity-API.patch => 0552-Item-Rarity-API.patch} (96%) rename patches/server/{0554-Drop-carried-item-when-player-has-disconnected.patch => 0553-Drop-carried-item-when-player-has-disconnected.patch} (93%) rename patches/server/{0555-forced-whitelist-use-configurable-kick-message.patch => 0554-forced-whitelist-use-configurable-kick-message.patch} (92%) rename patches/server/{0556-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0555-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (91%) rename patches/server/{0557-Expose-protocol-version.patch => 0556-Expose-protocol-version.patch} (91%) rename patches/server/{0558-Enhance-console-tab-completions-for-brigadier-comman.patch => 0557-Enhance-console-tab-completions-for-brigadier-comman.patch} (99%) rename patches/server/{0559-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0558-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (93%) rename patches/server/{0560-Add-bypass-host-check.patch => 0559-Add-bypass-host-check.patch} (95%) rename patches/server/{0561-Set-area-affect-cloud-rotation.patch => 0560-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0562-add-isDeeplySleeping-to-HumanEntity.patch => 0561-add-isDeeplySleeping-to-HumanEntity.patch} (90%) rename patches/server/{0563-add-consumeFuel-to-FurnaceBurnEvent.patch => 0562-add-consumeFuel-to-FurnaceBurnEvent.patch} (91%) rename patches/server/{0564-add-get-set-drop-chance-to-EntityEquipment.patch => 0563-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0565-fix-PigZombieAngerEvent-cancellation.patch => 0564-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0566-fix-PlayerItemHeldEvent-firing-twice.patch => 0565-fix-PlayerItemHeldEvent-firing-twice.patch} (93%) rename patches/server/{0567-Add-PlayerDeepSleepEvent.patch => 0566-Add-PlayerDeepSleepEvent.patch} (91%) rename patches/server/{0568-More-World-API.patch => 0567-More-World-API.patch} (97%) rename patches/server/{0569-Add-PlayerBedFailEnterEvent.patch => 0568-Add-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0570-Implement-methods-to-convert-between-Component-and-B.patch => 0569-Implement-methods-to-convert-between-Component-and-B.patch} (96%) rename patches/server/{0571-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch => 0570-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch} (95%) rename patches/server/{0572-Introduce-beacon-activation-deactivation-events.patch => 0571-Introduce-beacon-activation-deactivation-events.patch} (95%) rename patches/server/{0573-Add-Channel-initialization-listeners.patch => 0572-Add-Channel-initialization-listeners.patch} (98%) rename patches/server/{0574-Send-empty-commands-if-tab-completion-is-disabled.patch => 0573-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0575-Add-more-WanderingTrader-API.patch => 0574-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0576-Add-EntityBlockStorage-clearEntities.patch => 0575-Add-EntityBlockStorage-clearEntities.patch} (94%) rename patches/server/{0577-Entity-load-save-limit-per-chunk.patch => 0576-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/server/{0578-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0577-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0579-Inventory-close.patch => 0578-Inventory-close.patch} (100%) rename patches/server/{0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0579-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0581-Add-basic-Datapack-API.patch => 0580-Add-basic-Datapack-API.patch} (98%) rename patches/server/{0582-Add-environment-variable-to-disable-server-gui.patch => 0581-Add-environment-variable-to-disable-server-gui.patch} (90%) rename patches/server/{0583-Expand-PlayerGameModeChangeEvent.patch => 0582-Expand-PlayerGameModeChangeEvent.patch} (96%) rename patches/server/{0584-ItemStack-repair-check-API.patch => 0583-ItemStack-repair-check-API.patch} (97%) rename patches/server/{0585-More-Enchantment-API.patch => 0584-More-Enchantment-API.patch} (98%) rename patches/server/{0586-Move-range-check-for-block-placing-up.patch => 0585-Move-range-check-for-block-placing-up.patch} (92%) rename patches/server/{0587-Fix-and-optimise-world-force-upgrading.patch => 0586-Fix-and-optimise-world-force-upgrading.patch} (99%) rename patches/server/{0588-Add-Mob-lookAt-API.patch => 0587-Add-Mob-lookAt-API.patch} (97%) rename patches/server/{0589-Add-Unix-domain-socket-support.patch => 0588-Add-Unix-domain-socket-support.patch} (96%) rename patches/server/{0590-Add-EntityInsideBlockEvent.patch => 0589-Add-EntityInsideBlockEvent.patch} (98%) rename patches/server/{0591-Attributes-API-for-item-defaults.patch => 0590-Attributes-API-for-item-defaults.patch} (94%) rename patches/server/{0592-Add-cause-to-Weather-ThunderChangeEvents.patch => 0591-Add-cause-to-Weather-ThunderChangeEvents.patch} (97%) rename patches/server/{0593-More-Lidded-Block-API.patch => 0592-More-Lidded-Block-API.patch} (100%) rename patches/server/{0594-Limit-item-frame-cursors-on-maps.patch => 0593-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0595-Add-PlayerKickEvent-causes.patch => 0594-Add-PlayerKickEvent-causes.patch} (99%) rename patches/server/{0596-Add-PufferFishStateChangeEvent.patch => 0595-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0597-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0596-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0598-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0597-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/server/{0599-Add-option-to-fix-items-merging-through-walls.patch => 0598-Add-option-to-fix-items-merging-through-walls.patch} (93%) rename patches/server/{0600-Add-BellRevealRaiderEvent.patch => 0599-Add-BellRevealRaiderEvent.patch} (95%) rename patches/server/{0601-Fix-invulnerable-end-crystals.patch => 0600-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0602-Add-ElderGuardianAppearanceEvent.patch => 0601-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0603-Fix-dangerous-end-portal-logic.patch => 0602-Fix-dangerous-end-portal-logic.patch} (97%) rename patches/server/{0604-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0603-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0605-Make-item-validations-configurable.patch => 0604-Make-item-validations-configurable.patch} (97%) rename patches/server/{0606-Line-Of-Sight-Changes.patch => 0605-Line-Of-Sight-Changes.patch} (95%) rename patches/server/{0607-add-per-world-spawn-limits.patch => 0606-add-per-world-spawn-limits.patch} (91%) rename patches/server/{0608-Fix-potions-splash-events.patch => 0607-Fix-potions-splash-events.patch} (100%) rename patches/server/{0609-Add-more-LimitedRegion-API.patch => 0608-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0610-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0609-Fix-PlayerDropItemEvent-using-wrong-item.patch} (89%) rename patches/server/{0611-Missing-Entity-API.patch => 0610-Missing-Entity-API.patch} (99%) rename patches/server/{0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0611-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (92%) rename patches/server/{0613-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0612-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0614-Use-getChunkIfLoadedImmediately-in-places.patch => 0613-Use-getChunkIfLoadedImmediately-in-places.patch} (94%) rename patches/server/{0615-Fix-commands-from-signs-not-firing-command-events.patch => 0614-Fix-commands-from-signs-not-firing-command-events.patch} (98%) rename patches/server/{0616-Add-PlayerArmSwingEvent.patch => 0615-Add-PlayerArmSwingEvent.patch} (93%) rename patches/server/{0617-Fix-kick-event-leave-message-not-being-sent.patch => 0616-Fix-kick-event-leave-message-not-being-sent.patch} (96%) rename patches/server/{0618-Add-config-for-mobs-immune-to-default-effects.patch => 0617-Add-config-for-mobs-immune-to-default-effects.patch} (97%) rename patches/server/{0619-Don-t-apply-cramming-damage-to-players.patch => 0618-Don-t-apply-cramming-damage-to-players.patch} (94%) rename patches/server/{0620-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0619-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0621-Add-missing-forceDrop-toggles.patch => 0620-Add-missing-forceDrop-toggles.patch} (98%) rename patches/server/{0622-Stinger-API.patch => 0621-Stinger-API.patch} (100%) rename patches/server/{0623-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0622-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (95%) rename patches/server/{0624-Add-System.out-err-catcher.patch => 0623-Add-System.out-err-catcher.patch} (98%) rename patches/server/{0625-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0624-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0626-Improve-boat-collision-performance.patch => 0625-Improve-boat-collision-performance.patch} (95%) rename patches/server/{0627-Prevent-AFK-kick-while-watching-end-credits.patch => 0626-Prevent-AFK-kick-while-watching-end-credits.patch} (93%) rename patches/server/{0628-Allow-skipping-writing-of-comments-to-server.propert.patch => 0627-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0629-Add-PlayerSetSpawnEvent.patch => 0628-Add-PlayerSetSpawnEvent.patch} (97%) rename patches/server/{0630-Make-hoppers-respect-inventory-max-stack-size.patch => 0629-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0631-Optimize-entity-tracker-passenger-checks.patch => 0630-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0632-Config-option-for-Piglins-guarding-chests.patch => 0631-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0633-Add-EntityDamageItemEvent.patch => 0632-Add-EntityDamageItemEvent.patch} (97%) rename patches/server/{0634-Optimize-indirect-passenger-iteration.patch => 0633-Optimize-indirect-passenger-iteration.patch} (96%) rename patches/server/{0635-Configurable-item-frame-map-cursor-update-interval.patch => 0634-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0636-Clear-bucket-NBT-after-dispense.patch => 0635-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0637-Change-EnderEye-target-without-changing-other-things.patch => 0636-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0638-Add-BlockBreakBlockEvent.patch => 0637-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0639-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0638-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0640-More-CommandBlock-API.patch => 0639-More-CommandBlock-API.patch} (100%) rename patches/server/{0641-Add-missing-team-sidebar-display-slots.patch => 0640-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0642-Add-back-EntityPortalExitEvent.patch => 0641-Add-back-EntityPortalExitEvent.patch} (97%) rename patches/server/{0643-Add-methods-to-find-targets-for-lightning-strikes.patch => 0642-Add-methods-to-find-targets-for-lightning-strikes.patch} (94%) rename patches/server/{0644-Get-entity-default-attributes.patch => 0643-Get-entity-default-attributes.patch} (98%) rename patches/server/{0645-Left-handed-API.patch => 0644-Left-handed-API.patch} (90%) rename patches/server/{0646-Add-more-advancement-API.patch => 0645-Add-more-advancement-API.patch} (100%) rename patches/server/{0647-Add-ItemFactory-getSpawnEgg-API.patch => 0646-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0648-Add-critical-damage-API.patch => 0647-Add-critical-damage-API.patch} (97%) rename patches/server/{0649-Fix-issues-with-mob-conversion.patch => 0648-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0650-Add-isCollidable-methods-to-various-places.patch => 0649-Add-isCollidable-methods-to-various-places.patch} (96%) rename patches/server/{0651-Goat-ram-API.patch => 0650-Goat-ram-API.patch} (100%) rename patches/server/{0652-Add-API-for-resetting-a-single-score.patch => 0651-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0653-Add-Raw-Byte-Entity-Serialization.patch => 0652-Add-Raw-Byte-Entity-Serialization.patch} (98%) rename patches/server/{0654-Vanilla-command-permission-fixes.patch => 0653-Vanilla-command-permission-fixes.patch} (97%) rename patches/server/{0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0654-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (86%) rename patches/server/{0656-Fix-GameProfileCache-concurrency.patch => 0655-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0657-Improve-and-expand-AsyncCatcher.patch => 0656-Improve-and-expand-AsyncCatcher.patch} (97%) rename patches/server/{0658-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0657-Add-paper-mobcaps-and-paper-playermobcaps.patch} (98%) rename patches/server/{0659-Sanitize-ResourceLocation-error-logging.patch => 0658-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0660-Optimise-general-POI-access.patch => 0659-Optimise-general-POI-access.patch} (99%) rename patches/server/{0661-Custom-table-implementation-for-blockstate-state-loo.patch => 0660-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{0662-Manually-inline-methods-in-BlockPosition.patch => 0661-Manually-inline-methods-in-BlockPosition.patch} (92%) rename patches/server/{0663-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0662-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0663-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (94%) rename patches/server/{0665-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0664-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (93%) rename patches/server/{0666-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch => 0665-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (100%) rename patches/server/{0667-Time-scoreboard-search.patch => 0666-Time-scoreboard-search.patch} (100%) rename patches/server/{0668-Send-full-pos-packets-for-hard-colliding-entities.patch => 0667-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{0669-Execute-chunk-tasks-mid-tick.patch => 0668-Execute-chunk-tasks-mid-tick.patch} (97%) rename patches/server/{0670-Oprimise-map-impl-for-tracked-players.patch => 0669-Oprimise-map-impl-for-tracked-players.patch} (100%) rename patches/server/{0671-Optimise-BlockSoil-nearby-water-lookup.patch => 0670-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0672-Optimise-random-block-ticking.patch => 0671-Optimise-random-block-ticking.patch} (99%) rename patches/server/{0673-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 0672-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{0674-Use-Velocity-compression-and-cipher-natives.patch => 0673-Use-Velocity-compression-and-cipher-natives.patch} (99%) rename patches/server/{0675-Detail-more-information-in-watchdog-dumps.patch => 0674-Detail-more-information-in-watchdog-dumps.patch} (98%) rename patches/server/{0676-Distance-manager-tick-timings.patch => 0675-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (90%) rename patches/server/{0678-Check-requirement-before-suggesting-root-nodes.patch => 0677-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (92%) rename patches/server/{0680-Add-packet-limiter-config.patch => 0679-Add-packet-limiter-config.patch} (98%) rename patches/server/{0681-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0680-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0682-Ensure-valid-vehicle-status.patch => 0681-Ensure-valid-vehicle-status.patch} (91%) rename patches/server/{0683-Prevent-softlocked-end-exit-portal-generation.patch => 0682-Prevent-softlocked-end-exit-portal-generation.patch} (92%) rename patches/server/{0684-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0683-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0685-Don-t-log-debug-logging-being-disabled.patch => 0684-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0686-fix-various-menus-with-empty-level-accesses.patch => 0685-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0687-Preserve-overstacked-loot.patch => 0686-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0688-Update-head-rotation-in-missing-places.patch => 0687-Update-head-rotation-in-missing-places.patch} (93%) rename patches/server/{0689-prevent-unintended-light-block-manipulation.patch => 0688-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0690-Fix-CraftCriteria-defaults-map.patch => 0689-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0691-Fix-upstreams-block-state-factories.patch => 0690-Fix-upstreams-block-state-factories.patch} (99%) rename patches/server/{0692-Configurable-feature-seeds.patch => 0691-Configurable-feature-seeds.patch} (100%) rename patches/server/{0693-Add-root-admin-user-detection.patch => 0692-Add-root-admin-user-detection.patch} (97%) rename patches/server/{0694-Always-allow-item-changing-in-Fireball.patch => 0693-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0695-don-t-attempt-to-teleport-dead-entities.patch => 0694-don-t-attempt-to-teleport-dead-entities.patch} (91%) rename patches/server/{0696-Prevent-excessive-velocity-through-repeated-crits.patch => 0695-Prevent-excessive-velocity-through-repeated-crits.patch} (94%) rename patches/server/{0697-Remove-client-side-code-using-deprecated-for-removal.patch => 0696-Remove-client-side-code-using-deprecated-for-removal.patch} (93%) rename patches/server/{0698-Fix-removing-recipes-from-RecipeIterator.patch => 0697-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0699-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0698-Prevent-sending-oversized-item-data-in-equipment-and.patch} (98%) rename patches/server/{0700-Hide-unnecessary-itemmeta-from-clients.patch => 0699-Hide-unnecessary-itemmeta-from-clients.patch} (97%) rename patches/server/{0701-Fix-Spigot-growth-modifiers.patch => 0700-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0702-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0701-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0703-Add-PlayerItemFrameChangeEvent.patch => 0702-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0704-Optimize-HashMapPalette.patch => 0703-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0705-Allow-delegation-to-vanilla-chunk-gen.patch => 0704-Allow-delegation-to-vanilla-chunk-gen.patch} (98%) rename patches/server/{0706-Collision-optimisations.patch => 0705-Collision-optimisations.patch} (99%) rename patches/server/{0707-Optimise-collision-checking-in-player-move-packet-ha.patch => 0706-Optimise-collision-checking-in-player-move-packet-ha.patch} (99%) rename patches/server/{0708-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0707-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0709-Add-more-Campfire-API.patch => 0708-Add-more-Campfire-API.patch} (98%) rename patches/server/{0710-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0709-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0711-Fix-tripwire-state-inconsistency.patch => 0710-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{0712-Forward-CraftEntity-in-teleport-command.patch => 0711-Forward-CraftEntity-in-teleport-command.patch} (95%) rename patches/server/{0713-Improve-scoreboard-entries.patch => 0712-Improve-scoreboard-entries.patch} (97%) rename patches/server/{0714-Entity-powdered-snow-API.patch => 0713-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0715-Add-API-for-item-entity-health.patch => 0714-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0716-Fix-entity-type-tags-suggestions-in-selectors.patch => 0715-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{0717-Configurable-max-block-light-for-monster-spawning.patch => 0716-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0718-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0717-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0719-Load-effect-amplifiers-greater-than-127-correctly.patch => 0718-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0720-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0719-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0721-Fix-bees-aging-inside-hives.patch => 0720-Fix-bees-aging-inside-hives.patch} (97%) rename patches/server/{0722-Bucketable-API.patch => 0721-Bucketable-API.patch} (100%) rename patches/server/{0723-Validate-usernames.patch => 0722-Validate-usernames.patch} (95%) rename patches/server/{0724-Make-water-animal-spawn-height-configurable.patch => 0723-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0725-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (96%) rename patches/server/{0726-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0725-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0727-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0726-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0728-Multiple-Entries-with-Scoreboards.patch => 0727-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0729-Reset-placed-block-on-exception.patch => 0728-Reset-placed-block-on-exception.patch} (96%) rename patches/server/{0730-Add-configurable-height-for-slime-spawn.patch => 0729-Add-configurable-height-for-slime-spawn.patch} (96%) rename patches/server/{0731-Fix-xp-reward-for-baby-zombies.patch => 0730-Fix-xp-reward-for-baby-zombies.patch} (93%) rename patches/server/{0732-Multi-Block-Change-API-Implementation.patch => 0731-Multi-Block-Change-API-Implementation.patch} (97%) rename patches/server/{0733-Fix-NotePlayEvent.patch => 0732-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0734-Freeze-Tick-Lock-API.patch => 0733-Freeze-Tick-Lock-API.patch} (95%) rename patches/server/{0735-More-PotionEffectType-API.patch => 0734-More-PotionEffectType-API.patch} (100%) rename patches/server/{0736-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0735-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0737-API-for-creating-command-sender-which-forwards-feedb.patch => 0736-API-for-creating-command-sender-which-forwards-feedb.patch} (98%) rename patches/server/{0738-Add-missing-structure-set-seed-configs.patch => 0737-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0739-Implement-regenerateChunk.patch => 0738-Implement-regenerateChunk.patch} (98%) rename patches/server/{0740-Fix-cancelled-powdered-snow-bucket-placement.patch => 0739-Fix-cancelled-powdered-snow-bucket-placement.patch} (95%) rename patches/server/{0741-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (92%) rename patches/server/{0742-Add-GameEvent-tags.patch => 0741-Add-GameEvent-tags.patch} (97%) rename patches/server/{0743-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (94%) rename patches/server/{0744-Furnace-RecipesUsed-API.patch => 0743-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0745-Configurable-sculk-sensor-listener-range.patch => 0744-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0746-Add-missing-block-data-mins-and-maxes.patch => 0745-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0747-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0746-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (96%) rename patches/server/{0748-Put-world-into-worldlist-before-initing-the-world.patch => 0747-Put-world-into-worldlist-before-initing-the-world.patch} (92%) rename patches/server/{0749-Fix-Entity-Position-Desync.patch => 0748-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0750-Custom-Potion-Mixes.patch => 0749-Custom-Potion-Mixes.patch} (98%) rename patches/server/{0751-Force-close-world-loading-screen.patch => 0750-Force-close-world-loading-screen.patch} (95%) rename patches/server/{0752-Fix-falling-block-spawn-methods.patch => 0751-Fix-falling-block-spawn-methods.patch} (97%) rename patches/server/{0753-Expose-furnace-minecart-push-values.patch => 0752-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0754-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0753-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0755-More-Projectile-API.patch => 0754-More-Projectile-API.patch} (99%) rename patches/server/{0756-Fix-swamp-hut-cat-generation-deadlock.patch => 0755-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0757-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (94%) rename patches/server/{0758-Implement-getComputedBiome-API.patch => 0757-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0759-Make-some-itemstacks-nonnull.patch => 0758-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0760-Implement-enchantWithLevels-API.patch => 0759-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0761-Fix-saving-in-unloadWorld.patch => 0760-Fix-saving-in-unloadWorld.patch} (90%) rename patches/server/{0762-Buffer-OOB-setBlock-calls.patch => 0761-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0763-Add-TameableDeathMessageEvent.patch => 0762-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0764-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (97%) rename patches/server/{0765-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0764-fix-player-loottables-running-when-mob-loot-gamerule.patch} (93%) rename patches/server/{0766-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0765-Ensure-entity-passenger-world-matches-ridden-entity.patch} (91%) rename patches/server/{0767-cache-resource-keys.patch => 0766-cache-resource-keys.patch} (100%) rename patches/server/{0768-Allow-changing-the-EnderDragon-podium.patch => 0767-Allow-changing-the-EnderDragon-podium.patch} (99%) rename patches/server/{0769-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0768-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0770-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0769-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0771-Prevent-tile-entity-copies-loading-chunks.patch => 0770-Prevent-tile-entity-copies-loading-chunks.patch} (94%) rename patches/server/{0772-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0771-Use-username-instead-of-display-name-in-PlayerList-g.patch} (92%) rename patches/server/{0773-Pass-ServerLevel-for-gamerule-callbacks.patch => 0772-Pass-ServerLevel-for-gamerule-callbacks.patch} (97%) rename patches/server/{0774-Expand-PlayerItemDamageEvent.patch => 0773-Expand-PlayerItemDamageEvent.patch} (93%) rename patches/server/{0775-WorldCreator-keepSpawnLoaded.patch => 0774-WorldCreator-keepSpawnLoaded.patch} (94%) rename patches/server/{0776-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0775-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0777-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (94%) rename patches/server/{0778-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0777-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0779-Fire-CauldronLevelChange-on-initial-fill.patch => 0778-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0780-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0779-fix-powder-snow-cauldrons-not-turning-to-water.patch} (96%) rename patches/server/{0781-Add-PlayerStopUsingItemEvent.patch => 0780-Add-PlayerStopUsingItemEvent.patch} (91%) rename patches/server/{0782-Don-t-tick-markers.patch => 0781-Don-t-tick-markers.patch} (97%) rename patches/server/{0783-Expand-FallingBlock-API.patch => 0782-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0784-Do-not-accept-invalid-client-settings.patch => 0783-Do-not-accept-invalid-client-settings.patch} (94%) rename patches/server/{0785-Add-support-for-Proxy-Protocol.patch => 0784-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0786-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0785-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0787-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0786-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0788-Sanitize-sent-BlockEntity-NBT.patch => 0787-Sanitize-sent-BlockEntity-NBT.patch} (96%) rename patches/server/{0789-Disable-component-selector-resolving-in-books-by-def.patch => 0788-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0790-Prevent-entity-loading-causing-async-lookups.patch => 0789-Prevent-entity-loading-causing-async-lookups.patch} (97%) rename patches/server/{0791-Throw-exception-on-world-create-while-being-ticked.patch => 0790-Throw-exception-on-world-create-while-being-ticked.patch} (100%) rename patches/server/{0792-Add-Alternate-Current-redstone-implementation.patch => 0791-Add-Alternate-Current-redstone-implementation.patch} (99%) rename patches/server/{0793-Dont-resent-entity-on-art-update.patch => 0792-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0794-Add-WardenAngerChangeEvent.patch => 0793-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0795-Add-option-for-strict-advancement-dimension-checks.patch => 0794-Add-option-for-strict-advancement-dimension-checks.patch} (96%) rename patches/server/{0796-Add-missing-important-BlockStateListPopulator-method.patch => 0795-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0797-Nameable-Banner-API.patch => 0796-Nameable-Banner-API.patch} (100%) rename patches/server/{0798-Don-t-broadcast-messages-to-command-blocks.patch => 0797-Don-t-broadcast-messages-to-command-blocks.patch} (95%) rename patches/server/{0799-Prevent-empty-items-from-being-added-to-world.patch => 0798-Prevent-empty-items-from-being-added-to-world.patch} (93%) rename patches/server/{0800-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0799-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0801-Add-Player-getFishHook.patch => 0800-Add-Player-getFishHook.patch} (92%) rename patches/server/{0802-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0801-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0803-Add-various-missing-EntityDropItemEvent-calls.patch => 0802-Add-various-missing-EntityDropItemEvent-calls.patch} (98%) rename patches/server/{0804-Fix-Bee-flower-NPE.patch => 0803-Fix-Bee-flower-NPE.patch} (91%) rename patches/server/{0805-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0804-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (92%) rename patches/server/{0806-More-Teleport-API.patch => 0805-More-Teleport-API.patch} (97%) rename patches/server/{0807-Add-EntityPortalReadyEvent.patch => 0806-Add-EntityPortalReadyEvent.patch} (95%) rename patches/server/{0808-Don-t-use-level-random-in-entity-constructors.patch => 0807-Don-t-use-level-random-in-entity-constructors.patch} (96%) rename patches/server/{0809-Send-block-entities-after-destroy-prediction.patch => 0808-Send-block-entities-after-destroy-prediction.patch} (98%) rename patches/server/{0810-Warn-on-plugins-accessing-faraway-chunks.patch => 0809-Warn-on-plugins-accessing-faraway-chunks.patch} (96%) rename patches/server/{0811-Custom-Chat-Completion-Suggestions-API.patch => 0810-Custom-Chat-Completion-Suggestions-API.patch} (94%) rename patches/server/{0812-Add-and-fix-missing-BlockFadeEvents.patch => 0811-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0813-Collision-API.patch => 0812-Collision-API.patch} (100%) rename patches/server/{0814-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (92%) rename patches/server/{0815-Block-Ticking-API.patch => 0814-Block-Ticking-API.patch} (95%) rename patches/server/{0816-Add-Velocity-IP-Forwarding-Support.patch => 0815-Add-Velocity-IP-Forwarding-Support.patch} (98%) rename patches/server/{0817-Add-NamespacedKey-biome-methods.patch => 0816-Add-NamespacedKey-biome-methods.patch} (95%) rename patches/server/{0818-Fix-plugin-loggers-on-server-shutdown.patch => 0817-Fix-plugin-loggers-on-server-shutdown.patch} (93%) rename patches/server/{0819-Stop-large-look-changes-from-crashing-the-server.patch => 0818-Stop-large-look-changes-from-crashing-the-server.patch} (93%) rename patches/server/{0820-Fire-EntityChangeBlockEvent-in-more-places.patch => 0819-Fire-EntityChangeBlockEvent-in-more-places.patch} (99%) rename patches/server/{0821-Missing-eating-regain-reason.patch => 0820-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0822-Missing-effect-cause.patch => 0821-Missing-effect-cause.patch} (100%) rename patches/server/{0823-Added-byte-array-serialization-deserialization-for-P.patch => 0822-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0824-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0823-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (97%) rename patches/server/{0825-Call-BlockPhysicsEvent-more-often.patch => 0824-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0826-Configurable-chat-thread-limit.patch => 0825-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0827-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0826-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0828-fix-Jigsaw-block-kicking-user.patch => 0827-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0829-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0828-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0830-Add-getDrops-to-BlockState.patch => 0829-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0831-Fix-a-bunch-of-vanilla-bugs.patch => 0830-Fix-a-bunch-of-vanilla-bugs.patch} (99%) rename patches/server/{0832-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0831-Remove-unnecessary-onTrackingStart-during-navigation.patch} (94%) rename patches/server/{0833-Fix-custom-piglin-loved-items.patch => 0832-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0834-EntityPickupItemEvent-fixes.patch => 0833-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0835-Correctly-handle-interactions-with-items-on-cooldown.patch => 0834-Correctly-handle-interactions-with-items-on-cooldown.patch} (95%) rename patches/server/{0836-Add-PlayerInventorySlotChangeEvent.patch => 0835-Add-PlayerInventorySlotChangeEvent.patch} (95%) rename patches/server/{0837-Elder-Guardian-appearance-API.patch => 0836-Elder-Guardian-appearance-API.patch} (90%) rename patches/server/{0838-Allow-changing-bed-s-occupied-property.patch => 0837-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0839-Add-entity-knockback-API.patch => 0838-Add-entity-knockback-API.patch} (91%) rename patches/server/{0840-Detect-headless-JREs.patch => 0839-Detect-headless-JREs.patch} (96%) rename patches/server/{0841-fix-entity-vehicle-collision-event-not-called.patch => 0840-fix-entity-vehicle-collision-event-not-called.patch} (93%) rename patches/server/{0842-optimize-dirt-and-snow-spreading.patch => 0841-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{0843-Add-EntityToggleSitEvent.patch => 0842-Add-EntityToggleSitEvent.patch} (98%) rename patches/server/{0844-Add-fire-tick-delay-option.patch => 0843-Add-fire-tick-delay-option.patch} (95%) rename patches/server/{0845-Add-Moving-Piston-API.patch => 0844-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0846-Ignore-impossible-spawn-tick.patch => 0845-Ignore-impossible-spawn-tick.patch} (90%) rename patches/server/{0847-Track-projectile-source-for-fireworks-from-dispenser.patch => 0846-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0848-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0847-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (95%) rename patches/server/{0850-Add-PrePlayerAttackEntityEvent.patch => 0849-Add-PrePlayerAttackEntityEvent.patch} (93%) rename patches/server/{0851-ensure-reset-EnderDragon-boss-event-name.patch => 0850-ensure-reset-EnderDragon-boss-event-name.patch} (96%) rename patches/server/{0852-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0851-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0853-Add-Player-Warden-Warning-API.patch => 0852-Add-Player-Warden-Warning-API.patch} (95%) rename patches/server/{0854-More-vanilla-friendly-methods-to-update-trades.patch => 0853-More-vanilla-friendly-methods-to-update-trades.patch} (97%) rename patches/server/{0855-Add-paper-dumplisteners-command.patch => 0854-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0856-check-global-player-list-where-appropriate.patch => 0855-check-global-player-list-where-appropriate.patch} (96%) rename patches/server/{0857-Fix-async-entity-add-due-to-fungus-trees.patch => 0856-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0858-ItemStack-damage-API.patch => 0857-ItemStack-damage-API.patch} (97%) rename patches/server/{0859-Friction-API.patch => 0858-Friction-API.patch} (98%) rename patches/server/{0860-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0859-Ability-to-control-player-s-insomnia-and-phantoms.patch} (97%) rename patches/server/{0861-Fix-player-kick-on-shutdown.patch => 0860-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0862-Sync-offhand-slot-in-menus.patch => 0861-Sync-offhand-slot-in-menus.patch} (94%) rename patches/server/{0863-Player-Entity-Tracking-Events.patch => 0862-Player-Entity-Tracking-Events.patch} (96%) rename patches/server/{0864-Limit-pet-look-distance.patch => 0863-Limit-pet-look-distance.patch} (100%) rename patches/server/{0865-Properly-resend-entities.patch => 0864-Properly-resend-entities.patch} (98%) rename patches/server/{0866-Fixes-and-additions-to-the-SpawnReason-API.patch => 0865-Fixes-and-additions-to-the-SpawnReason-API.patch} (95%) rename patches/server/{0867-fix-Instruments.patch => 0866-fix-Instruments.patch} (96%) rename patches/server/{0868-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (97%) rename patches/server/{0869-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0868-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0870-Add-BlockLockCheckEvent.patch => 0869-Add-BlockLockCheckEvent.patch} (98%) rename patches/server/{0871-Add-Sneaking-API-for-Entities.patch => 0870-Add-Sneaking-API-for-Entities.patch} (91%) rename patches/server/{0872-Improve-logging-and-errors.patch => 0871-Improve-logging-and-errors.patch} (98%) rename patches/server/{0873-Improve-PortalEvents.patch => 0872-Improve-PortalEvents.patch} (93%) rename patches/server/{0874-Add-config-option-for-spider-worldborder-climbing.patch => 0873-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0875-Add-missing-SpigotConfig-logCommands-check.patch => 0874-Add-missing-SpigotConfig-logCommands-check.patch} (93%) rename patches/server/{0876-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0875-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0877-Flying-Fall-Damage.patch => 0876-Flying-Fall-Damage.patch} (92%) rename patches/server/{0878-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (98%) rename patches/server/{0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (91%) rename patches/server/{0880-config-for-disabling-entity-tag-tags.patch => 0879-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0881-Use-single-player-info-update-packet-on-join.patch => 0880-Use-single-player-info-update-packet-on-join.patch} (94%) rename patches/server/{0882-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0881-Correctly-shrink-items-during-EntityResurrectEvent.patch} (95%) rename patches/server/{0883-Win-Screen-API.patch => 0882-Win-Screen-API.patch} (93%) rename patches/server/{0884-Remove-CraftItemStack-setAmount-null-assignment.patch => 0883-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0885-Fix-force-opening-enchantment-tables.patch => 0884-Fix-force-opening-enchantment-tables.patch} (94%) rename patches/server/{0886-Add-Entity-Body-Yaw-API.patch => 0885-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0887-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0886-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0888-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0887-Update-the-flag-when-a-captured-block-state-is-outda.patch} (90%) rename patches/server/{0889-Add-EntityFertilizeEggEvent.patch => 0888-Add-EntityFertilizeEggEvent.patch} (97%) rename patches/server/{0890-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0889-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (94%) rename patches/server/{0891-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0890-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0892-Correctly-handle-ArmorStand-invisibility.patch => 0891-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0893-Fix-advancement-triggers-for-entity-damage.patch => 0892-Fix-advancement-triggers-for-entity-damage.patch} (97%) rename patches/server/{0894-Fix-text-display-error-on-spawn.patch => 0893-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0895-Fix-inventories-returning-null-Locations.patch => 0894-Fix-inventories-returning-null-Locations.patch} (97%) rename patches/server/{0896-Add-Shearable-API.patch => 0895-Add-Shearable-API.patch} (100%) rename patches/server/{0897-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0896-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0898-Optimize-Hoppers.patch => 0897-Optimize-Hoppers.patch} (99%) rename patches/server/{0899-Fix-beehives-generating-from-using-bonemeal.patch => 0898-Fix-beehives-generating-from-using-bonemeal.patch} (96%) rename patches/server/{0900-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0899-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (93%) rename patches/server/{0901-Treat-sequence-violations-like-they-should-be.patch => 0900-Treat-sequence-violations-like-they-should-be.patch} (92%) rename patches/server/{0902-remove-duplicate-animate-packet-for-records.patch => 0901-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0903-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0902-Prevent-causing-expired-keys-from-impacting-new-join.patch} (97%) rename patches/server/{0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (91%) rename patches/server/{0905-Use-array-for-gamerule-storage.patch => 0904-Use-array-for-gamerule-storage.patch} (97%) rename patches/server/{0906-Fix-a-couple-of-upstream-bed-issues.patch => 0905-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0907-Fix-demo-flag-not-enabling-demo-mode.patch => 0906-Fix-demo-flag-not-enabling-demo-mode.patch} (91%) rename patches/server/{0908-Add-Mob-Experience-reward-API.patch => 0907-Add-Mob-Experience-reward-API.patch} (89%) rename patches/server/{0909-Break-redstone-on-top-of-trap-doors-early.patch => 0908-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0910-Fix-DamageCause-for-Falling-Blocks.patch => 0909-Fix-DamageCause-for-Falling-Blocks.patch} (92%) rename patches/server/{0911-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0910-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0912-More-accurate-isInOpenWater-impl.patch => 0911-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0913-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0912-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0914-Optimise-recalcBlockCounts-for-empty-sections.patch => 0913-Optimise-recalcBlockCounts-for-empty-sections.patch} (94%) rename patches/server/{0915-Expand-PlayerItemMendEvent.patch => 0914-Expand-PlayerItemMendEvent.patch} (96%) rename patches/server/{0916-Refresh-ProjectileSource-for-projectiles.patch => 0915-Refresh-ProjectileSource-for-projectiles.patch} (95%) rename patches/server/{0917-Add-transient-modifier-API.patch => 0916-Add-transient-modifier-API.patch} (100%) rename patches/server/{0918-Fix-block-place-logic.patch => 0917-Fix-block-place-logic.patch} (97%) rename patches/server/{0919-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (94%) rename patches/server/{0920-Call-BlockGrowEvent-for-missing-blocks.patch => 0919-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0921-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (89%) rename patches/server/{0922-fix-MapLike-spam-for-missing-key-selector.patch => 0921-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0923-Fix-sniffer-removeExploredLocation.patch => 0922-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0924-Add-method-to-remove-all-active-potion-effects.patch => 0923-Add-method-to-remove-all-active-potion-effects.patch} (91%) rename patches/server/{0925-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch => 0924-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch} (91%) rename patches/server/{0926-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0925-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0927-Properly-cancel-usable-items.patch => 0926-Properly-cancel-usable-items.patch} (92%) rename patches/server/{0928-Add-event-for-player-editing-sign.patch => 0927-Add-event-for-player-editing-sign.patch} (98%) rename patches/server/{0929-Only-tick-item-frames-if-players-can-see-it.patch => 0928-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0930-Fix-cmd-permission-levels-for-command-blocks.patch => 0929-Fix-cmd-permission-levels-for-command-blocks.patch} (97%) rename patches/server/{0931-Add-option-to-disable-block-updates.patch => 0930-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0932-Call-missing-BlockDispenseEvent.patch => 0931-Call-missing-BlockDispenseEvent.patch} (98%) rename patches/server/{0933-Don-t-load-chunks-for-supporting-block-checks.patch => 0932-Don-t-load-chunks-for-supporting-block-checks.patch} (90%) rename patches/server/{0934-Optimize-player-lookups-for-beacons.patch => 0933-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0935-Add-Sign-getInteractableSideFor.patch => 0934-Add-Sign-getInteractableSideFor.patch} (96%) rename patches/server/{0936-Array-backed-synched-entity-data.patch => 0935-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0937-fix-item-meta-for-tadpole-buckets.patch => 0936-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0938-Fix-BanList-API.patch => 0937-Fix-BanList-API.patch} (99%) rename patches/server/{0939-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0938-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0940-Fix-possible-NPE-on-painting-creation.patch => 0939-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0941-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0940-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (96%) rename patches/server/{0942-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0941-ExperienceOrb-should-call-EntitySpawnEvent.patch} (93%) rename patches/server/{0943-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0942-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0944-Add-whitelist-events.patch => 0943-Add-whitelist-events.patch} (100%) rename patches/server/{0945-Implement-PlayerFailMoveEvent.patch => 0944-Implement-PlayerFailMoveEvent.patch} (98%) rename patches/server/{0946-Folia-scheduler-and-owned-region-API.patch => 0945-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0947-Only-erase-allay-memory-on-non-item-targets.patch => 0946-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0948-API-for-updating-recipes-on-clients.patch => 0947-API-for-updating-recipes-on-clients.patch} (95%) rename patches/server/{0949-Fix-rotation-when-spawning-display-entities.patch => 0948-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0950-Only-capture-actual-tree-growth.patch => 0949-Only-capture-actual-tree-growth.patch} (98%) rename patches/server/{0951-Use-correct-source-for-mushroom-block-spread-event.patch => 0950-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0952-Respect-randomizeData-on-more-entities-when-spawning.patch => 0951-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0953-Use-correct-seed-on-api-world-load.patch => 0952-Use-correct-seed-on-api-world-load.patch} (91%) rename patches/server/{0954-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0953-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0955-Cache-map-ids-on-item-frames.patch => 0954-Cache-map-ids-on-item-frames.patch} (100%) rename patches/server/{0956-Fix-custom-statistic-criteria-creation.patch => 0955-Fix-custom-statistic-criteria-creation.patch} (93%) rename patches/server/{0957-Bandaid-fix-for-Effect.patch => 0956-Bandaid-fix-for-Effect.patch} (97%) rename patches/server/{0958-SculkCatalyst-bloom-API.patch => 0957-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0959-API-for-an-entity-s-scoreboard-name.patch => 0958-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0960-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0959-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (95%) rename patches/server/{0961-Deprecate-and-replace-methods-with-old-StructureType.patch => 0960-Deprecate-and-replace-methods-with-old-StructureType.patch} (96%) rename patches/server/{0962-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0961-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (95%) rename patches/server/{0963-Properly-handle-BlockBreakEvent-isDropItems.patch => 0962-Properly-handle-BlockBreakEvent-isDropItems.patch} (99%) rename patches/server/{0964-Fire-entity-death-event-for-ender-dragon.patch => 0963-Fire-entity-death-event-for-ender-dragon.patch} (92%) rename patches/server/{0965-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0964-Configurable-entity-tracking-range-by-Y-coordinate.patch} (100%) rename patches/server/{0966-Add-Listing-API-for-Player.patch => 0965-Add-Listing-API-for-Player.patch} (98%) rename patches/server/{0967-Configurable-Region-Compression-Format.patch => 0966-Configurable-Region-Compression-Format.patch} (96%) rename patches/server/{0968-Add-BlockFace-to-BlockDamageEvent.patch => 0967-Add-BlockFace-to-BlockDamageEvent.patch} (92%) rename patches/server/{0969-Fix-NPE-on-Boat-getStatus.patch => 0968-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0970-Expand-Pose-API.patch => 0969-Expand-Pose-API.patch} (95%) rename patches/server/{0971-More-DragonBattle-API.patch => 0970-More-DragonBattle-API.patch} (97%) rename patches/server/{0972-Deep-clone-unhandled-nbt-tags.patch => 0971-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0973-Add-PlayerPickItemEvent.patch => 0972-Add-PlayerPickItemEvent.patch} (96%) rename patches/server/{0974-Improve-performance-of-mass-crafts.patch => 0973-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{0975-Allow-trident-custom-damage.patch => 0974-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0976-Expose-hand-in-BlockCanBuildEvent.patch => 0975-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0977-Optimize-nearest-structure-border-iteration.patch => 0976-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0978-Implement-OfflinePlayer-isConnected.patch => 0977-Implement-OfflinePlayer-isConnected.patch} (94%) rename patches/server/{0979-Fix-inventory-desync.patch => 0978-Fix-inventory-desync.patch} (91%) rename patches/server/{0980-Add-titleOverride-to-InventoryOpenEvent.patch => 0979-Add-titleOverride-to-InventoryOpenEvent.patch} (94%) rename patches/server/{0981-Configure-sniffer-egg-hatch-time.patch => 0980-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0982-Do-crystal-portal-proximity-check-before-entity-look.patch => 0981-Do-crystal-portal-proximity-check-before-entity-look.patch} (97%) rename patches/server/{0983-Skip-POI-finding-if-stuck-in-vehicle.patch => 0982-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0984-Add-slot-sanity-checks-in-container-clicks.patch => 0983-Add-slot-sanity-checks-in-container-clicks.patch} (96%) rename patches/server/{0985-Call-BlockRedstoneEvents-for-lecterns.patch => 0984-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0986-Allow-proper-checking-of-empty-item-stacks.patch => 0985-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0987-Fix-silent-equipment-change-for-mobs.patch => 0986-Fix-silent-equipment-change-for-mobs.patch} (96%) rename patches/server/{0988-Fix-spigot-s-Forced-Stats.patch => 0987-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0989-Add-missing-InventoryHolders-to-inventories.patch => 0988-Add-missing-InventoryHolders-to-inventories.patch} (96%) rename patches/server/{0990-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (97%) rename patches/server/{0991-Actually-optimise-explosions.patch => 0990-Actually-optimise-explosions.patch} (100%) rename patches/server/{0992-Add-missing-logs-for-log-ips-config-option.patch => 0991-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0993-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0992-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{0994-Fix-SuspiciousStewMeta.patch => 0993-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{0995-Optimise-chunk-tick-iteration.patch => 0994-Optimise-chunk-tick-iteration.patch} (99%) rename patches/server/{0996-Lag-compensation-ticks.patch => 0995-Lag-compensation-ticks.patch} (97%) rename patches/server/{0997-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0996-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{0998-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0997-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{0999-Fix-team-sidebar-objectives-not-being-cleared.patch => 0998-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{1000-Optimise-nearby-player-retrieval.patch => 0999-Optimise-nearby-player-retrieval.patch} (99%) rename patches/server/{1001-Fix-missing-map-initialize-event-call.patch => 1000-Fix-missing-map-initialize-event-call.patch} (95%) rename patches/server/{1002-Update-entity-data-when-attaching-firework-to-entity.patch => 1001-Update-entity-data-when-attaching-firework-to-entity.patch} (92%) rename patches/server/{1003-Use-correct-variable-for-initializing-CraftLootTable.patch => 1002-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{1004-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 1003-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{1005-Fix-UnsafeValues-loadAdvancement.patch => 1004-Fix-UnsafeValues-loadAdvancement.patch} (96%) rename patches/server/{1006-Add-player-idle-duration-API.patch => 1005-Add-player-idle-duration-API.patch} (91%) rename patches/server/{1007-Don-t-check-if-we-can-see-non-visible-entities.patch => 1006-Don-t-check-if-we-can-see-non-visible-entities.patch} (100%) rename patches/server/{1008-Fix-NPE-in-SculkBloomEvent-world-access.patch => 1007-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{1009-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 1008-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (90%) rename patches/server/{1010-Optimize-VarInts.patch => 1009-Optimize-VarInts.patch} (100%) rename patches/server/{1011-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 1010-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (94%) rename patches/server/{1012-Add-predicate-for-blocks-when-raytracing.patch => 1011-Add-predicate-for-blocks-when-raytracing.patch} (98%) rename patches/server/{1013-Broadcast-take-item-packets-with-collector-as-source.patch => 1012-Broadcast-take-item-packets-with-collector-as-source.patch} (92%) rename patches/server/{1014-Expand-LingeringPotion-API.patch => 1013-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{1015-Add-MaterialTagsTest.patch => 1014-Add-MaterialTagsTest.patch} (100%) rename patches/server/{1016-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (97%) rename patches/server/{1017-Add-hand-to-fish-event-for-all-player-interactions.patch => 1016-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{1018-Fix-several-issues-with-EntityBreedEvent.patch => 1017-Fix-several-issues-with-EntityBreedEvent.patch} (97%) rename patches/server/{1019-Add-UUID-attribute-modifier-API.patch => 1018-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{1020-Fix-missing-event-call-for-entity-teleport-API.patch => 1019-Fix-missing-event-call-for-entity-teleport-API.patch} (93%) rename patches/server/{1021-Lazily-create-LootContext-for-criterions.patch => 1020-Lazily-create-LootContext-for-criterions.patch} (95%) rename patches/server/{1022-Don-t-fire-sync-events-during-worldgen.patch => 1021-Don-t-fire-sync-events-during-worldgen.patch} (97%) rename patches/server/{1023-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 1022-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (93%) rename patches/server/{1024-Restore-vanilla-entity-drops-behavior.patch => 1023-Restore-vanilla-entity-drops-behavior.patch} (97%) rename patches/server/{1025-Add-Structure-check-API.patch => 1024-Add-Structure-check-API.patch} (91%) rename patches/server/{1026-Dont-resend-blocks-on-interactions.patch => 1025-Dont-resend-blocks-on-interactions.patch} (98%) rename patches/server/{1027-Keep-previous-behavior-for-setResourcePack.patch => 1026-Keep-previous-behavior-for-setResourcePack.patch} (94%) rename patches/server/{1028-properly-read-and-store-sus-effect-duration.patch => 1027-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{1029-Use-correct-max-stack-size-in-crafter.patch => 1028-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{1030-add-more-scoreboard-API.patch => 1029-add-more-scoreboard-API.patch} (100%) rename patches/server/{1031-Improve-Registry.patch => 1030-Improve-Registry.patch} (100%) rename patches/server/{1032-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (96%) rename patches/server/{1033-Add-experience-points-API.patch => 1032-Add-experience-points-API.patch} (95%) rename patches/server/{1034-Add-missing-InventoryType.patch => 1033-Add-missing-InventoryType.patch} (100%) rename patches/server/{1035-Add-drops-to-shear-events.patch => 1034-Add-drops-to-shear-events.patch} (99%) rename patches/server/{1036-Add-PlayerShieldDisableEvent.patch => 1035-Add-PlayerShieldDisableEvent.patch} (95%) rename patches/server/{1037-Add-HiddenPotionEffect-API.patch => 1036-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1038-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1037-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{1039-fix-ItemMeta-removing-CustomModelData.patch => 1038-fix-ItemMeta-removing-CustomModelData.patch} (91%) rename patches/server/{1040-Validate-ResourceLocation-in-NBT-reading.patch => 1039-Validate-ResourceLocation-in-NBT-reading.patch} (96%) rename patches/server/{1041-Properly-handle-experience-dropping-on-block-break.patch => 1040-Properly-handle-experience-dropping-on-block-break.patch} (98%) rename patches/server/{1042-Fixup-NamespacedKey-handling.patch => 1041-Fixup-NamespacedKey-handling.patch} (100%) rename patches/server/{1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 1042-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (100%) rename patches/server/{1044-Write-SavedData-IO-async.patch => 1043-Write-SavedData-IO-async.patch} (99%) diff --git a/patches/api/0299-Missing-Entity-API.patch b/patches/api/0299-Missing-Entity-API.patch index 16b4ca0bfdbc..31c2013ee9d3 100644 --- a/patches/api/0299-Missing-Entity-API.patch +++ b/patches/api/0299-Missing-Entity-API.patch @@ -1427,7 +1427,7 @@ index 87a814f63c3f35be35bfa210c9248ad211c0dd8f..14543c2238b45c526dd9aebea2aa5c22 + // Paper end } diff --git a/src/main/java/org/bukkit/entity/ZombieVillager.java b/src/main/java/org/bukkit/entity/ZombieVillager.java -index 7cc1d9a966454af70b7c25735fe474fe3eb97eb4..ad2eaee347cd2864aef30d2af48c1be6dc115c22 100644 +index 7cc1d9a966454af70b7c25735fe474fe3eb97eb4..ac6fd8ca95771c185c145f4589ddd5b2a6e8c2da 100644 --- a/src/main/java/org/bukkit/entity/ZombieVillager.java +++ b/src/main/java/org/bukkit/entity/ZombieVillager.java @@ -90,4 +90,22 @@ public interface ZombieVillager extends Zombie { @@ -1451,7 +1451,7 @@ index 7cc1d9a966454af70b7c25735fe474fe3eb97eb4..ad2eaee347cd2864aef30d2af48c1be6 + * org.bukkit.{@link org.bukkit.Sound#ENTITY_ZOMBIE_VILLAGER_CURE} from playing. + */ + void setConversionTime(int time, boolean broadcastEntityEvent); -+ // Paper stop - missing entity behaviour api - converting without entity event ++ // Paper end - missing entity behaviour api - converting without entity event } diff --git a/src/main/java/org/bukkit/entity/minecart/HopperMinecart.java b/src/main/java/org/bukkit/entity/minecart/HopperMinecart.java index db69687a7ad4b18d17ab1677cae5d8dd4dcd3678..304b05aeaea5febf493fc40d433a23acb384b4f0 100644 diff --git a/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch index 9382ddd92c4c..a88d2a93be0f 100644 --- a/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 2e29da775e60c149d2c251d78ee7c60b494215a4..c5ac78c4a4711e9c44d5eb7f66b28f448bcda63a 100644 +index 2e29da775e60c149d2c251d78ee7c60b494215a4..27fd3ea4d0f96efa24167623c756f463995161bd 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -2056,6 +2056,24 @@ public final class Bukkit { @@ -28,7 +28,7 @@ index 2e29da775e60c149d2c251d78ee7c60b494215a4..c5ac78c4a4711e9c44d5eb7f66b28f44 + public static ChunkGenerator.ChunkData createVanillaChunkData(@NotNull World world, int x, int z) { + return server.createVanillaChunkData(world, x, z); + } -+ // Paper stop ++ // Paper end + /** * Creates a boss bar instance to display to players. The progress diff --git a/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch index c2ea27c3e84b..0752dc8c8b54 100644 --- a/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -10,43 +10,43 @@ Adds an option to control the force mode of the particle. This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8afcd4e3a3805c7bccffaf6ff751e23101db6ed8..e96abf6afd434c104437e2461431f8b4c82c1d00 100644 +index c6fd543d03813d6edc12aa919e77bb9a7c7315e7..d5ff2037fd2756da1aac9660e65453913be172cd 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1742,12 +1742,17 @@ public class ServerLevel extends Level implements WorldGenLevel { } public int sendParticles(ServerPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) { -+ // Paper start - Particle API Expansion ++ // Paper start - Particle API + return sendParticles(players, sender, t0, d0, d1, d2, i, d3, d4, d5, d6, force); + } + public int sendParticles(List receivers, @Nullable ServerPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) { -+ // Paper end ++ // Paper end - Particle API ClientboundLevelParticlesPacket packetplayoutworldparticles = new ClientboundLevelParticlesPacket(t0, force, d0, d1, d2, (float) d3, (float) d4, (float) d5, (float) d6, i); // CraftBukkit end int j = 0; - for (int k = 0; k < this.players.size(); ++k) { - ServerPlayer entityplayer = (ServerPlayer) this.players.get(k); -+ for (Player entityhuman : receivers) { // Paper - Particle API Expansion -+ ServerPlayer entityplayer = (ServerPlayer) entityhuman; // Paper - Particle API Expansion ++ for (Player entityhuman : receivers) { // Paper - Particle API ++ ServerPlayer entityplayer = (ServerPlayer) entityhuman; // Paper - Particle API if (sender != null && !entityplayer.getBukkitEntity().canSee(sender.getBukkitEntity())) continue; // CraftBukkit if (this.sendParticles(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index eeb62a48a4c56d3465f74f63278bf76c6abe84ec..ac6bafab570738db2b706bf2b045ea4eec12131c 100644 +index 35ac3878b4391da29e248d26a6c76bf1582ea09d..c8e13ea3bc256b112fa5fd916c0fb583322c081b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1948,13 +1948,20 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) { -+ // Paper start - Particle API Expansion ++ // Paper start - Particle API + spawnParticle(particle, null, null, x, y, z, count, offsetX, offsetY, offsetZ, extra, data, force); + } + @Override + public void spawnParticle(Particle particle, List receivers, Player sender, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) { -+ // Paper end ++ // Paper end - Particle API particle = CraftParticle.convertLegacy(particle); data = CraftParticle.convertLegacy(data); if (data != null) { @@ -54,8 +54,8 @@ index eeb62a48a4c56d3465f74f63278bf76c6abe84ec..ac6bafab570738db2b706bf2b045ea4e } this.getHandle().sendParticles( - null, // Sender -+ receivers == null ? getHandle().players() : receivers.stream().map(player -> ((CraftPlayer) player).getHandle()).collect(java.util.stream.Collectors.toList()), // Paper - Particle API Expansion -+ sender != null ? ((CraftPlayer) sender).getHandle() : null, // Sender // Paper - Particle API Expansion ++ receivers == null ? getHandle().players() : receivers.stream().map(player -> ((CraftPlayer) player).getHandle()).collect(java.util.stream.Collectors.toList()), // Paper - Particle API ++ sender != null ? ((CraftPlayer) sender).getHandle() : null, // Sender // Paper - Particle API CraftParticle.createParticleParam(particle, data), // Particle x, y, z, // Position count, // Count diff --git a/patches/server/0194-EndermanAttackPlayerEvent.patch b/patches/server/0193-EndermanAttackPlayerEvent.patch similarity index 91% rename from patches/server/0194-EndermanAttackPlayerEvent.patch rename to patches/server/0193-EndermanAttackPlayerEvent.patch index 7870cc0325e0..42534bc87a30 100644 --- a/patches/server/0194-EndermanAttackPlayerEvent.patch +++ b/patches/server/0193-EndermanAttackPlayerEvent.patch @@ -8,7 +8,7 @@ Allow control over whether or not an enderman aggros a player. This allows you to override/extend the pumpkin/stare logic. diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index c897d55acdceae54bc2e7f3f3694ce421a8df687..5c620989acaff4fdb842944ea2d8ae331699a2b4 100644 +index c897d55acdceae54bc2e7f3f3694ce421a8df687..259ba77dcbc8ed5f7e4015a6683799cc4604dfb8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -236,7 +236,15 @@ public class EnderMan extends Monster implements NeutralMob { @@ -24,7 +24,7 @@ index c897d55acdceae54bc2e7f3f3694ce421a8df687..5c620989acaff4fdb842944ea2d8ae33 + return event.callEvent(); + } + private boolean isLookingAtMe_check(Player player) { -+ // Paper end ++ // Paper end - EndermanAttackPlayerEvent ItemStack itemstack = (ItemStack) player.getInventory().armor.get(3); if (itemstack.is(Blocks.CARVED_PUMPKIN.asItem())) { diff --git a/patches/server/0193-Prevent-Frosted-Ice-from-loading-holding-chunks.patch b/patches/server/0193-Prevent-Frosted-Ice-from-loading-holding-chunks.patch deleted file mode 100644 index 662e3954c3d6..000000000000 --- a/patches/server/0193-Prevent-Frosted-Ice-from-loading-holding-chunks.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Sat, 10 Mar 2018 16:33:15 -0500 -Subject: [PATCH] Prevent Frosted Ice from loading/holding chunks - -1.17: Shouldn't be needed as blocks no longer tick without at least 1 radius chunk loaded. - -diff --git a/src/main/java/net/minecraft/world/level/block/FrostedIceBlock.java b/src/main/java/net/minecraft/world/level/block/FrostedIceBlock.java -index 0d08a9d5555ebc296a1461aefbf48e8eee6b462d..7f1946d371f9be2662788957c6f11a2e087df616 100644 ---- a/src/main/java/net/minecraft/world/level/block/FrostedIceBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/FrostedIceBlock.java -@@ -46,7 +46,8 @@ public class FrostedIceBlock extends IceBlock { - - for(Direction direction : Direction.values()) { - mutableBlockPos.setWithOffset(pos, direction); -- BlockState blockState = world.getBlockState(mutableBlockPos); -+ BlockState blockState = world.getBlockStateIfLoaded(mutableBlockPos); // Paper -+ if (blockState == null) { continue; } // Paper - if (blockState.is(this) && !this.slightlyMelt(blockState, world, mutableBlockPos)) { - world.scheduleTick(mutableBlockPos, this, Mth.nextInt(random, world.paperConfig().environment.frostedIce.delay.min, world.paperConfig().environment.frostedIce.delay.max)); // Paper - use configurable min/max delay - } -@@ -83,7 +84,10 @@ public class FrostedIceBlock extends IceBlock { - - for(Direction direction : Direction.values()) { - mutableBlockPos.setWithOffset(pos, direction); -- if (world.getBlockState(mutableBlockPos).is(this)) { -+ // Paper start -+ BlockState blockState = world.getBlockStateIfLoaded(mutableBlockPos); -+ if (blockState != null && blockState.is(this)) { -+ // Paper end - ++i; - if (i >= maxNeighbors) { - return false; diff --git a/patches/server/0195-WitchConsumePotionEvent.patch b/patches/server/0194-WitchConsumePotionEvent.patch similarity index 86% rename from patches/server/0195-WitchConsumePotionEvent.patch rename to patches/server/0194-WitchConsumePotionEvent.patch index 23ce9ddbba6d..657554b31eae 100644 --- a/patches/server/0195-WitchConsumePotionEvent.patch +++ b/patches/server/0194-WitchConsumePotionEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] WitchConsumePotionEvent Fires when a witch consumes the potion in their hand diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java -index eeecb9057e039b4696ca4de1cd7191a95d17a1a6..a949e8546ecc2d6fd6690d8a00207dc187e2451a 100644 +index eeecb9057e039b4696ca4de1cd7191a95d17a1a6..d2cff117f178a370a7056865246276e795b6bace 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java @@ -126,7 +126,11 @@ public class Witch extends Raider implements RangedAttackMob { @@ -14,11 +14,11 @@ index eeecb9057e039b4696ca4de1cd7191a95d17a1a6..a949e8546ecc2d6fd6690d8a00207dc1 this.setItemSlot(EquipmentSlot.MAINHAND, ItemStack.EMPTY); if (itemstack.is(Items.POTION)) { - List list = PotionUtils.getMobEffects(itemstack); -+ // Paper start ++ // Paper start - WitchConsumePotionEvent + com.destroystokyo.paper.event.entity.WitchConsumePotionEvent event = new com.destroystokyo.paper.event.entity.WitchConsumePotionEvent((org.bukkit.entity.Witch) this.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack)); + + List list = event.callEvent() ? PotionUtils.getMobEffects(org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getPotion())) : null; -+ // Paper end ++ // Paper end - WitchConsumePotionEvent if (list != null) { Iterator iterator = list.iterator(); diff --git a/patches/server/0196-WitchThrowPotionEvent.patch b/patches/server/0195-WitchThrowPotionEvent.patch similarity index 89% rename from patches/server/0196-WitchThrowPotionEvent.patch rename to patches/server/0195-WitchThrowPotionEvent.patch index 860191b9dbee..5f6cac02f445 100644 --- a/patches/server/0196-WitchThrowPotionEvent.patch +++ b/patches/server/0195-WitchThrowPotionEvent.patch @@ -6,14 +6,14 @@ Subject: [PATCH] WitchThrowPotionEvent Fired when a witch throws a potion at a player diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java -index a949e8546ecc2d6fd6690d8a00207dc187e2451a..40876df2503eed53c5d7769931f8201fb709cf6f 100644 +index d2cff117f178a370a7056865246276e795b6bace..96a87db9f8976d3f1ff09beb9598db31fff72d5b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java @@ -239,9 +239,16 @@ public class Witch extends Raider implements RangedAttackMob { potionregistry = Potions.WEAKNESS; } -+ // Paper start ++ // Paper start - WitchThrowPotionEvent + ItemStack potion = PotionUtils.setPotion(new ItemStack(Items.SPLASH_POTION), potionregistry); + com.destroystokyo.paper.event.entity.WitchThrowPotionEvent event = new com.destroystokyo.paper.event.entity.WitchThrowPotionEvent((org.bukkit.entity.Witch) this.getBukkitEntity(), (org.bukkit.entity.LivingEntity) target.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(potion)); + if (!event.callEvent()) { @@ -24,7 +24,7 @@ index a949e8546ecc2d6fd6690d8a00207dc187e2451a..40876df2503eed53c5d7769931f8201f - - entitypotion.setItem(PotionUtils.setPotion(new ItemStack(Items.SPLASH_POTION), potionregistry)); + entitypotion.setItem(potion); -+ // Paper end ++ // Paper end - WitchThrowPotionEvent entitypotion.setXRot(entitypotion.getXRot() - -20.0F); entitypotion.shoot(d0, d1 + d3 * 0.2D, d2, 0.75F, 8.0F); if (!this.isSilent()) { diff --git a/patches/server/0197-WitchReadyPotionEvent.patch b/patches/server/0196-WitchReadyPotionEvent.patch similarity index 93% rename from patches/server/0197-WitchReadyPotionEvent.patch rename to patches/server/0196-WitchReadyPotionEvent.patch index d22f2f28852d..dcaae5d271b3 100644 --- a/patches/server/0197-WitchReadyPotionEvent.patch +++ b/patches/server/0196-WitchReadyPotionEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] WitchReadyPotionEvent diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java -index 40876df2503eed53c5d7769931f8201fb709cf6f..ca24b592273208e61e0e0ba59b7e5a3c11ebf952 100644 +index 96a87db9f8976d3f1ff09beb9598db31fff72d5b..f45b46e30e1ad0516c5b380e476bc7dacb91391a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java @@ -160,7 +160,11 @@ public class Witch extends Raider implements RangedAttackMob { diff --git a/patches/server/0198-ItemStack-getMaxItemUseDuration.patch b/patches/server/0197-ItemStack-getMaxItemUseDuration.patch similarity index 91% rename from patches/server/0198-ItemStack-getMaxItemUseDuration.patch rename to patches/server/0197-ItemStack-getMaxItemUseDuration.patch index e81a524d20a2..a37f9cf78d1f 100644 --- a/patches/server/0198-ItemStack-getMaxItemUseDuration.patch +++ b/patches/server/0197-ItemStack-getMaxItemUseDuration.patch @@ -6,7 +6,7 @@ Subject: [PATCH] ItemStack#getMaxItemUseDuration Allows you to determine how long it takes to use a usable/consumable item diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java -index 7dd0c000fa7f363997178ffa6de7d39e17702348..ae7c3ad0597e5115b43458a91765a176f2d80227 100644 +index a05f01ca9a9bc88e414c8cf89c01c7e993e27dd2..07f011a968592ba5b38a0a2723189824ba5d0938 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -184,6 +184,13 @@ public final class CraftItemStack extends ItemStack { diff --git a/patches/server/0199-Implement-EntityTeleportEndGatewayEvent.patch b/patches/server/0198-Add-EntityTeleportEndGatewayEvent.patch similarity index 97% rename from patches/server/0199-Implement-EntityTeleportEndGatewayEvent.patch rename to patches/server/0198-Add-EntityTeleportEndGatewayEvent.patch index e730b444906b..09c4bebb0181 100644 --- a/patches/server/0199-Implement-EntityTeleportEndGatewayEvent.patch +++ b/patches/server/0198-Add-EntityTeleportEndGatewayEvent.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sat, 9 Jun 2018 14:08:39 +0200 -Subject: [PATCH] Implement EntityTeleportEndGatewayEvent +Subject: [PATCH] Add EntityTeleportEndGatewayEvent diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java diff --git a/patches/server/0200-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch b/patches/server/0199-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch similarity index 89% rename from patches/server/0200-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch rename to patches/server/0199-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch index ca3c8f8d693d..071b12ee353b 100644 --- a/patches/server/0200-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch +++ b/patches/server/0199-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Unset Ignited flag on cancel of Explosion Event Otherwise the creeper infinite explodes diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 6594d501f51d18f5850999cceb9febfe206ec596..17ce05e7f9d2615be28a095ef6d3126885df8771 100644 +index 864854a677d6f498909b70c12babd190a8b1eb36..d85095117d7837e75640f0e447242b45e24cf00e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -278,6 +278,7 @@ public class Creeper extends Monster implements PowerableMob { diff --git a/patches/server/0201-Fix-CraftEntity-hashCode.patch b/patches/server/0200-Fix-CraftEntity-hashCode.patch similarity index 94% rename from patches/server/0201-Fix-CraftEntity-hashCode.patch rename to patches/server/0200-Fix-CraftEntity-hashCode.patch index cb48492e74d3..a9def4372292 100644 --- a/patches/server/0201-Fix-CraftEntity-hashCode.patch +++ b/patches/server/0200-Fix-CraftEntity-hashCode.patch @@ -21,7 +21,7 @@ check is essentially the same as this.getHandle() == other.getHandle() However, replaced it too to make it clearer of intent. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index b96f65776155f57d599a0a0d06456c95088d38fb..594eeb83425787e160f8051f15c7cdf61a7bb090 100644 +index deb355b2188a49f818aaddad6c4ce60de94428e0..388c9db9d130071122e9f80749fb2eef05455408 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -499,14 +499,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0202-Configurable-Alternative-LootPool-Luck-Formula.patch b/patches/server/0201-Configurable-LootPool-luck-formula.patch similarity index 92% rename from patches/server/0202-Configurable-Alternative-LootPool-Luck-Formula.patch rename to patches/server/0201-Configurable-LootPool-luck-formula.patch index 20b7414cd7a4..6df631b74652 100644 --- a/patches/server/0202-Configurable-Alternative-LootPool-Luck-Formula.patch +++ b/patches/server/0201-Configurable-LootPool-luck-formula.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 15 Jun 2018 00:30:32 -0400 -Subject: [PATCH] Configurable Alternative LootPool Luck Formula +Subject: [PATCH] Configurable LootPool luck formula Rewrites the Vanilla luck application formula so that luck can be applied to items that do not have any quality defined. @@ -36,7 +36,7 @@ This change will result in some major changes to fishing formulas. I would love to see this change in Vanilla, so Mojang please pull :) diff --git a/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java b/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java -index 6d5a2806345ff86e143e16ecedc2f1e8d80f5b85..d3de18b1f856a99aa4f2a556956af7e5511164bf 100644 +index 6d5a2806345ff86e143e16ecedc2f1e8d80f5b85..0cf437dd75b97b9ba39f5134ae2ae5f33b94f653 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java @@ -122,9 +122,35 @@ public abstract class LootPoolSingletonContainer extends LootPoolEntryContainer @@ -44,7 +44,7 @@ index 6d5a2806345ff86e143e16ecedc2f1e8d80f5b85..d3de18b1f856a99aa4f2a556956af7e5 @Override public int getWeight(float luck) { - return Math.max(Mth.floor((float)LootPoolSingletonContainer.this.weight + (float)LootPoolSingletonContainer.this.quality * luck), 0); -+ // Paper start - Offer an alternative loot formula to refactor how luck bonus applies ++ // Paper start - Configurable LootPool luck formula + // SEE: https://luckformula.emc.gs for details and data + if (LootPoolSingletonContainer.this.lastLuck != null && LootPoolSingletonContainer.this.lastLuck == luck) { + return lastWeight; @@ -72,7 +72,7 @@ index 6d5a2806345ff86e143e16ecedc2f1e8d80f5b85..d3de18b1f856a99aa4f2a556956af7e5 } + private Float lastLuck = null; + private int lastWeight = 0; -+ // Paper end ++ // Paper end - Configurable LootPool luck formula @FunctionalInterface protected interface EntryConstructor { diff --git a/patches/server/0203-Print-Error-details-when-failing-to-save-player-data.patch b/patches/server/0202-Print-Error-details-when-failing-to-save-player-data.patch similarity index 88% rename from patches/server/0203-Print-Error-details-when-failing-to-save-player-data.patch rename to patches/server/0202-Print-Error-details-when-failing-to-save-player-data.patch index 46002fb1e9d5..ae45a4597484 100644 --- a/patches/server/0203-Print-Error-details-when-failing-to-save-player-data.patch +++ b/patches/server/0202-Print-Error-details-when-failing-to-save-player-data.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Print Error details when failing to save player data diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java -index 08f4cc47ec3aa4dd6980ba543219891a510b010b..b3a90d6ef0e17c236e0b3c46e2d0012671afdaa7 100644 +index 08f4cc47ec3aa4dd6980ba543219891a510b010b..63e187c65cb855031f286aad0d25ac4694f7a331 100644 --- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java +++ b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java @@ -47,7 +47,7 @@ public class PlayerDataStorage { @@ -13,7 +13,7 @@ index 08f4cc47ec3aa4dd6980ba543219891a510b010b..b3a90d6ef0e17c236e0b3c46e2d00126 Util.safeReplaceFile(path2, path1, path3); } catch (Exception exception) { - PlayerDataStorage.LOGGER.warn("Failed to save player data for {}", player.getName().getString()); -+ PlayerDataStorage.LOGGER.warn("Failed to save player data for {}", player.getScoreboardName(), exception); // Paper ++ PlayerDataStorage.LOGGER.warn("Failed to save player data for {}", player.getScoreboardName(), exception); // Paper - Print exception } } diff --git a/patches/server/0204-Make-shield-blocking-delay-configurable.patch b/patches/server/0203-Make-shield-blocking-delay-configurable.patch similarity index 88% rename from patches/server/0204-Make-shield-blocking-delay-configurable.patch rename to patches/server/0203-Make-shield-blocking-delay-configurable.patch index 50712d73a712..82e12bb8c27e 100644 --- a/patches/server/0204-Make-shield-blocking-delay-configurable.patch +++ b/patches/server/0203-Make-shield-blocking-delay-configurable.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make shield blocking delay configurable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 39e02e922e67915c23ce4565eba33f656cbe81b6..dff2427e32b92a6deca0df81d0820353c5fc242a 100644 +index 39e02e922e67915c23ce4565eba33f656cbe81b6..0c0f8385a64e4b90dbd4e6363f3d0478a7f437e3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3808,12 +3808,24 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -13,13 +13,13 @@ index 39e02e922e67915c23ce4565eba33f656cbe81b6..dff2427e32b92a6deca0df81d0820353 Item item = this.useItem.getItem(); - return item.getUseAnimation(this.useItem) != UseAnim.BLOCK ? false : item.getUseDuration(this.useItem) - this.useItemRemaining >= 5; -+ return item.getUseAnimation(this.useItem) != UseAnim.BLOCK ? false : item.getUseDuration(this.useItem) - this.useItemRemaining >= getShieldBlockingDelay(); // Paper - shieldBlockingDelay ++ return item.getUseAnimation(this.useItem) != UseAnim.BLOCK ? false : item.getUseDuration(this.useItem) - this.useItemRemaining >= getShieldBlockingDelay(); // Paper - Make shield blocking delay configurable } else { return false; } } -+ // Paper start ++ // Paper start - Make shield blocking delay configurable + public int shieldBlockingDelay = this.level().paperConfig().misc.shieldBlockingDelay; + + public int getShieldBlockingDelay() { @@ -29,7 +29,7 @@ index 39e02e922e67915c23ce4565eba33f656cbe81b6..dff2427e32b92a6deca0df81d0820353 + public void setShieldBlockingDelay(int shieldBlockingDelay) { + this.shieldBlockingDelay = shieldBlockingDelay; + } -+ // Paper end ++ // Paper end - Make shield blocking delay configurable + public boolean isSuppressingSlidingDownLadder() { return this.isShiftKeyDown(); diff --git a/patches/server/0205-Improve-EntityShootBowEvent.patch b/patches/server/0204-Improve-EntityShootBowEvent.patch similarity index 94% rename from patches/server/0205-Improve-EntityShootBowEvent.patch rename to patches/server/0204-Improve-EntityShootBowEvent.patch index eef1882378cb..9f5b75b9ea03 100644 --- a/patches/server/0205-Improve-EntityShootBowEvent.patch +++ b/patches/server/0204-Improve-EntityShootBowEvent.patch @@ -22,14 +22,14 @@ index 8a668d36bafa5ba172b0ce510b46096ec2fd116a..dadb419a04b343d6ba59353c6caa1a50 event.getProjectile().remove(); return; diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java -index 421ed4daed9a61b9e9395538ff36606b196ca1f1..63fce7e3d9f59f36e29bc827a46396d73143bb8b 100644 +index 421ed4daed9a61b9e9395538ff36606b196ca1f1..fb84b35e34063075e69e00e430bc00e7c3b9d62c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java +++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java @@ -196,8 +196,18 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { double d3 = Math.sqrt(d0 * d0 + d2 * d2); entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.level().getDifficulty().getId() * 4)); -+ // Paper start ++ // Paper start - EntityShootBowEvent + org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, target.getUsedItemHand(), 0.8F, true); + if (event.isCancelled()) { + event.getProjectile().remove(); @@ -39,7 +39,7 @@ index 421ed4daed9a61b9e9395538ff36606b196ca1f1..63fce7e3d9f59f36e29bc827a46396d7 + if (event.getProjectile() == entityarrow.getBukkitEntity()) { + this.level().addFreshEntity(entityarrow); + } -+ // Paper end ++ // Paper end - EntityShootBowEvent this.playSound(SoundEvents.SKELETON_SHOOT, 1.0F, 1.0F / (this.getRandom().nextFloat() * 0.4F + 0.8F)); - this.level().addFreshEntity(entityarrow); } diff --git a/patches/server/0206-PlayerReadyArrowEvent.patch b/patches/server/0205-PlayerReadyArrowEvent.patch similarity index 88% rename from patches/server/0206-PlayerReadyArrowEvent.patch rename to patches/server/0205-PlayerReadyArrowEvent.patch index ff8b06601823..6900915d221e 100644 --- a/patches/server/0206-PlayerReadyArrowEvent.patch +++ b/patches/server/0205-PlayerReadyArrowEvent.patch @@ -7,14 +7,14 @@ Called when a player is firing a bow and the server is choosing an arrow to use. Plugins can skip selection of certain arrows and control which is used. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 729c960a18a77b744eba0c9319cf5c2a9e84b707..45098aa460370669abdb3619fa4b1adef6fbf282 100644 +index 729c960a18a77b744eba0c9319cf5c2a9e84b707..695f241372eb0fe457cf91595520cbed9a5cdc3e 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -2177,18 +2177,29 @@ public abstract class Player extends LivingEntity { return ImmutableList.of(Pose.STANDING, Pose.CROUCHING, Pose.SWIMMING); } -+ // Paper start ++ // Paper start - PlayerReadyArrowEvent + protected boolean tryReadyArrow(ItemStack bow, ItemStack itemstack) { + return !(this instanceof ServerPlayer) || + new com.destroystokyo.paper.event.player.PlayerReadyArrowEvent( @@ -22,8 +22,8 @@ index 729c960a18a77b744eba0c9319cf5c2a9e84b707..45098aa460370669abdb3619fa4b1ade + org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(bow), + org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack) + ).callEvent(); -+ // Paper end + } ++ // Paper end - PlayerReadyArrowEvent + @Override public ItemStack getProjectile(ItemStack stack) { @@ -31,14 +31,14 @@ index 729c960a18a77b744eba0c9319cf5c2a9e84b707..45098aa460370669abdb3619fa4b1ade return ItemStack.EMPTY; } else { - Predicate predicate = ((ProjectileWeaponItem) stack.getItem()).getSupportedHeldProjectiles(); -+ Predicate predicate = ((ProjectileWeaponItem) stack.getItem()).getSupportedHeldProjectiles().and(item -> tryReadyArrow(stack, item)); // Paper ++ Predicate predicate = ((ProjectileWeaponItem) stack.getItem()).getSupportedHeldProjectiles().and(item -> tryReadyArrow(stack, item)); // Paper - PlayerReadyArrowEvent ItemStack itemstack1 = ProjectileWeaponItem.getHeldProjectile(this, predicate); if (!itemstack1.isEmpty()) { return itemstack1; } else { - predicate = ((ProjectileWeaponItem) stack.getItem()).getAllSupportedProjectiles(); -+ predicate = ((ProjectileWeaponItem) stack.getItem()).getAllSupportedProjectiles().and(item -> tryReadyArrow(stack, item)); // Paper ++ predicate = ((ProjectileWeaponItem) stack.getItem()).getAllSupportedProjectiles().and(item -> tryReadyArrow(stack, item)); // Paper - PlayerReadyArrowEvent for (int i = 0; i < this.inventory.getContainerSize(); ++i) { ItemStack itemstack2 = this.inventory.getItem(i); diff --git a/patches/server/0207-Implement-EntityKnockbackByEntityEvent-and-EntityPus.patch b/patches/server/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch similarity index 82% rename from patches/server/0207-Implement-EntityKnockbackByEntityEvent-and-EntityPus.patch rename to patches/server/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch index 45c500df27bb..c0c612f8f19e 100644 --- a/patches/server/0207-Implement-EntityKnockbackByEntityEvent-and-EntityPus.patch +++ b/patches/server/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Mon, 18 Jun 2018 15:46:23 +0200 -Subject: [PATCH] Implement EntityKnockbackByEntityEvent and +Subject: [PATCH] Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent Co-authored-by: aerulion @@ -9,7 +9,7 @@ Co-authored-by: aerulion This event is called when an entity receives knockback by another entity. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d66d30a016ac04d5f051e59ca168a6c2bb8794ab..dd4afab77500277b7697ca988e34b526d28d97c0 100644 +index d66d30a016ac04d5f051e59ca168a6c2bb8794ab..d9abd56d3802033bfd440f13640350b2fba017aa 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1909,8 +1909,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -18,7 +18,7 @@ index d66d30a016ac04d5f051e59ca168a6c2bb8794ab..dd4afab77500277b7697ca988e34b526 public void push(double deltaX, double deltaY, double deltaZ) { - this.setDeltaMovement(this.getDeltaMovement().add(deltaX, deltaY, deltaZ)); - this.hasImpulse = true; -+ // Paper start - call EntityPushedByEntityEvent ++ // Paper start - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent + this.push(deltaX, deltaY, deltaZ, null); + } + @@ -28,12 +28,12 @@ index d66d30a016ac04d5f051e59ca168a6c2bb8794ab..dd4afab77500277b7697ca988e34b526 + this.setDeltaMovement(this.getDeltaMovement().add(delta.getX(), delta.getY(), delta.getZ())); + this.hasImpulse = true; + } -+ // Paper end - call EntityPushedByEntityEvent ++ // Paper end - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent } protected void markHurt() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index dff2427e32b92a6deca0df81d0820353c5fc242a..f17d6a208477daeb01b66b2894e871f4071cf3e8 100644 +index 0c0f8385a64e4b90dbd4e6363f3d0478a7f437e3..b8c4e7d81b20887e5a05b93a1bbe01e72ff55ba7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1513,7 +1513,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -41,7 +41,7 @@ index dff2427e32b92a6deca0df81d0820353c5fc242a..f17d6a208477daeb01b66b2894e871f4 } - this.knockback(0.4000000059604645D, d0, d1); -+ this.knockback(0.4000000059604645D, d0, d1, entity1); // Paper ++ this.knockback(0.4000000059604645D, d0, d1, entity1); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent if (!flag) { this.indicateDamage(d0, d1); } @@ -50,7 +50,7 @@ index dff2427e32b92a6deca0df81d0820353c5fc242a..f17d6a208477daeb01b66b2894e871f4 protected void blockedByShield(LivingEntity target) { - target.knockback(0.5D, target.getX() - this.getX(), target.getZ() - this.getZ()); -+ target.knockback(0.5D, target.getX() - this.getX(), target.getZ() - this.getZ(), this); // Paper ++ target.knockback(0.5D, target.getX() - this.getX(), target.getZ() - this.getZ(), this); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent } private boolean checkTotemDeathProtection(DamageSource source) { @@ -58,11 +58,11 @@ index dff2427e32b92a6deca0df81d0820353c5fc242a..f17d6a208477daeb01b66b2894e871f4 } public void knockback(double strength, double x, double z) { -+ // Paper start - add knockbacking entity parameter ++ // Paper start - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent + this.knockback(strength, x, z, null); + } + public void knockback(double strength, double x, double z, Entity knockingBackEntity) { -+ // Paper end - add knockbacking entity parameter ++ // Paper end - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent strength *= 1.0D - this.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE); if (strength > 0.0D) { this.hasImpulse = true; @@ -70,7 +70,7 @@ index dff2427e32b92a6deca0df81d0820353c5fc242a..f17d6a208477daeb01b66b2894e871f4 Vec3 vec3d1 = (new Vec3(x, 0.0D, z)).normalize().scale(strength); this.setDeltaMovement(vec3d.x / 2.0D - vec3d1.x, this.onGround() ? Math.min(0.4D, vec3d.y / 2.0D + strength) : vec3d.y, vec3d.z / 2.0D - vec3d1.z); -+ // Paper start - call EntityKnockbackByEntityEvent ++ // Paper start - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEventt + Vec3 currentMovement = this.getDeltaMovement(); + org.bukkit.util.Vector delta = new org.bukkit.util.Vector(currentMovement.x - vec3d.x, currentMovement.y - vec3d.y, currentMovement.z - vec3d.z); + // Restore old velocity to be able to access it in the event @@ -78,12 +78,12 @@ index dff2427e32b92a6deca0df81d0820353c5fc242a..f17d6a208477daeb01b66b2894e871f4 + if (knockingBackEntity == null || new com.destroystokyo.paper.event.entity.EntityKnockbackByEntityEvent((org.bukkit.entity.LivingEntity) getBukkitEntity(), knockingBackEntity.getBukkitEntity(), (float) strength, delta).callEvent()) { + this.setDeltaMovement(vec3d.x + delta.getX(), vec3d.y + delta.getY(), vec3d.z + delta.getZ()); + } -+ // Paper end ++ // Paper end - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent } } diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index fbcf5ddb655e6d070f24d71bd076115739cf0254..a6b89a12471a8c7277b7a5aa50447ff275a667c6 100644 +index fa0e96fd884a0338b44f68506b1d3ee6c42f17b1..524f99eeefb1ab95d1752df2faea76837f2e3787 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1646,7 +1646,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -91,12 +91,12 @@ index fbcf5ddb655e6d070f24d71bd076115739cf0254..a6b89a12471a8c7277b7a5aa50447ff2 if (flag) { if (f1 > 0.0F && target instanceof LivingEntity) { - ((LivingEntity) target).knockback((double) (f1 * 0.5F), (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F))); -+ ((LivingEntity) target).knockback((double) (f1 * 0.5F), (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this); // Paper ++ ((LivingEntity) target).knockback((double) (f1 * 0.5F), (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent this.setDeltaMovement(this.getDeltaMovement().multiply(0.6D, 1.0D, 0.6D)); } diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java b/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java -index e319a46a21a94314c5d496820b1ac4879dcf56b9..4a3bcd988cf63452c4277ad55ba604ad43c8a623 100644 +index e319a46a21a94314c5d496820b1ac4879dcf56b9..4f78e7fbb7a082069b44f7b28f0048e856e5c773 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/RamTarget.java @@ -77,7 +77,7 @@ public class RamTarget extends Behavior { @@ -104,12 +104,12 @@ index e319a46a21a94314c5d496820b1ac4879dcf56b9..4a3bcd988cf63452c4277ad55ba604ad float g = Mth.clamp(entity.getSpeed() * 1.65F, 0.2F, 3.0F) + f; float h = livingEntity.isDamageSourceBlocked(world.damageSources().mobAttack(entity)) ? 0.5F : 1.0F; - livingEntity.knockback((double)(h * g) * this.getKnockbackForce.applyAsDouble(entity), this.ramDirection.x(), this.ramDirection.z()); -+ livingEntity.knockback((double)(h * g) * this.getKnockbackForce.applyAsDouble(entity), this.ramDirection.x(), this.ramDirection.z(), entity); // Paper ++ livingEntity.knockback((double)(h * g) * this.getKnockbackForce.applyAsDouble(entity), this.ramDirection.x(), this.ramDirection.z(), entity); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent this.finishRam(world, entity); world.playSound((Player)null, entity, this.getImpactSound.apply(entity), SoundSource.NEUTRAL, 1.0F, 1.0F); } else if (this.hasRammedHornBreakingBlock(world, entity)) { diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java b/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java -index 29cfd065f246bbd3d3c2a5bbd32c3f4813a02951..03ec02f9a2fb5abb5387cd0d83c9481d6cbb0bd2 100644 +index 29cfd065f246bbd3d3c2a5bbd32c3f4813a02951..771d798fa3b367043129f41101c65f13f0b466fa 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/warden/SonicBoom.java @@ -68,7 +68,7 @@ public class SonicBoom extends Behavior { @@ -117,12 +117,12 @@ index 29cfd065f246bbd3d3c2a5bbd32c3f4813a02951..03ec02f9a2fb5abb5387cd0d83c9481d double d = 0.5D * (1.0D - target.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE)); double e = 2.5D * (1.0D - target.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE)); - target.push(vec33.x() * e, vec33.y() * d, vec33.z() * e); -+ target.push(vec33.x() * e, vec33.y() * d, vec33.z() * e, entity); // Paper ++ target.push(vec33.x() * e, vec33.y() * d, vec33.z() * e, entity); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent }); } } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index f5ce6423b8146cc741023e15004fe9814a035da8..de27517e13ecb15865aaa83257eaffb41c3eecfc 100644 +index f5ce6423b8146cc741023e15004fe9814a035da8..666c62d796cae9a70516680e26196f7e02c53918 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -458,7 +458,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -130,12 +130,12 @@ index f5ce6423b8146cc741023e15004fe9814a035da8..de27517e13ecb15865aaa83257eaffb4 double d4 = Math.max(d2 * d2 + d3 * d3, 0.1D); - entity.push(d2 / d4 * 4.0D, 0.20000000298023224D, d3 / d4 * 4.0D); -+ entity.push(d2 / d4 * 4.0D, 0.20000000298023224D, d3 / d4 * 4.0D, this); // Paper ++ entity.push(d2 / d4 * 4.0D, 0.20000000298023224D, d3 / d4 * 4.0D, this); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent if (!this.phaseManager.getCurrentPhase().isSitting() && ((LivingEntity) entity).getLastHurtByMobTimestamp() < entity.tickCount - 2) { entity.hurt(this.damageSources().mobAttack(this), 5.0F); this.doEnchantDamageEffects(this, entity); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 041f1650b853138e4286fe83a08d79d276054ce7..344e933311f5cdccb66069d486b111a003639dfe 100644 +index 041f1650b853138e4286fe83a08d79d276054ce7..aba20a4352d8983b01ab5d329187588f68d3e405 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -265,7 +265,7 @@ public class Ravager extends Raider { @@ -143,12 +143,12 @@ index 041f1650b853138e4286fe83a08d79d276054ce7..344e933311f5cdccb66069d486b111a0 double d2 = Math.max(d0 * d0 + d1 * d1, 0.001D); - entity.push(d0 / d2 * 4.0D, 0.2D, d1 / d2 * 4.0D); -+ entity.push(d0 / d2 * 4.0D, 0.2D, d1 / d2 * 4.0D, this); // Paper ++ entity.push(d0 / d2 * 4.0D, 0.2D, d1 / d2 * 4.0D, this); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent } @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java -index 81003ce3f05c6be6f52a92b86a4721235f4ce12a..004382377ee364143a34287e7b6546ae1df4e88e 100644 +index 81003ce3f05c6be6f52a92b86a4721235f4ce12a..cae7e3e85c3b911f50f8a06badf695c3df2847e5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java @@ -40,7 +40,7 @@ public interface HoglinBase { @@ -156,12 +156,12 @@ index 81003ce3f05c6be6f52a92b86a4721235f4ce12a..004382377ee364143a34287e7b6546ae Vec3 vec3 = (new Vec3(g, 0.0D, h)).normalize().scale(j).yRot(i); double k = f * (double)attacker.level().random.nextFloat() * 0.5D; - target.push(vec3.x, k, vec3.z); -+ target.push(vec3.x, k, vec3.z, attacker); // Paper ++ target.push(vec3.x, k, vec3.z, attacker); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent target.hurtMarked = true; } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 45098aa460370669abdb3619fa4b1adef6fbf282..8d40021ce31d5f8fd8a5462a80e92fb919b4b162 100644 +index 695f241372eb0fe457cf91595520cbed9a5cdc3e..0704fad49e680d3274b23024497963c4d0ad353b 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1285,9 +1285,9 @@ public abstract class Player extends LivingEntity { @@ -169,10 +169,10 @@ index 45098aa460370669abdb3619fa4b1adef6fbf282..8d40021ce31d5f8fd8a5462a80e92fb9 if (i > 0) { if (target instanceof LivingEntity) { - ((LivingEntity) target).knockback((double) ((float) i * 0.5F), (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F))); -+ ((LivingEntity) target).knockback((double) ((float) i * 0.5F), (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this); // Paper ++ ((LivingEntity) target).knockback((double) ((float) i * 0.5F), (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent } else { - target.push((double) (-Mth.sin(this.getYRot() * 0.017453292F) * (float) i * 0.5F), 0.1D, (double) (Mth.cos(this.getYRot() * 0.017453292F) * (float) i * 0.5F)); -+ target.push((double) (-Mth.sin(this.getYRot() * 0.017453292F) * (float) i * 0.5F), 0.1D, (double) (Mth.cos(this.getYRot() * 0.017453292F) * (float) i * 0.5F), this); // Paper ++ target.push((double) (-Mth.sin(this.getYRot() * 0.017453292F) * (float) i * 0.5F), 0.1D, (double) (Mth.cos(this.getYRot() * 0.017453292F) * (float) i * 0.5F), this); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent } this.setDeltaMovement(this.getDeltaMovement().multiply(0.6D, 1.0D, 0.6D)); @@ -181,7 +181,7 @@ index 45098aa460370669abdb3619fa4b1adef6fbf282..8d40021ce31d5f8fd8a5462a80e92fb9 // CraftBukkit start - Only apply knockback if the damage hits if (entityliving.hurt(this.damageSources().playerAttack(this).sweep(), f4)) { - entityliving.knockback(0.4000000059604645D, (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F))); -+ entityliving.knockback(0.4000000059604645D, (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this); // Pa ++ entityliving.knockback(0.4000000059604645D, (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent } // CraftBukkit end } diff --git a/patches/server/0208-Expand-Explosions-API.patch b/patches/server/0207-Expand-Explosions-API.patch similarity index 94% rename from patches/server/0208-Expand-Explosions-API.patch rename to patches/server/0207-Expand-Explosions-API.patch index e75e2ea2fb9a..2deb0a4c3144 100644 --- a/patches/server/0208-Expand-Explosions-API.patch +++ b/patches/server/0207-Expand-Explosions-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expand Explosions API Add Entity as a Source capability, and add more API choices, and on Location. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 713bfbe76e3f888cd41e71256ec70af78e64121c..b1fe86645fa9e6f4398c8466cb3243154146f29f 100644 +index c8e13ea3bc256b112fa5fd916c0fb583322c081b..ed851ec919c18d724d3376e893eca09259ad9bf3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -719,6 +719,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0209-LivingEntity-Hand-Raised-Item-Use-API.patch b/patches/server/0208-LivingEntity-Hand-Raised-Item-Use-API.patch similarity index 100% rename from patches/server/0209-LivingEntity-Hand-Raised-Item-Use-API.patch rename to patches/server/0208-LivingEntity-Hand-Raised-Item-Use-API.patch diff --git a/patches/server/0210-RangedEntity-API.patch b/patches/server/0209-RangedEntity-API.patch similarity index 100% rename from patches/server/0210-RangedEntity-API.patch rename to patches/server/0209-RangedEntity-API.patch diff --git a/patches/server/0211-Add-config-to-disable-ender-dragon-legacy-check.patch b/patches/server/0210-Add-config-to-disable-ender-dragon-legacy-check.patch similarity index 82% rename from patches/server/0211-Add-config-to-disable-ender-dragon-legacy-check.patch rename to patches/server/0210-Add-config-to-disable-ender-dragon-legacy-check.patch index adc52710dfa3..719410ac4b02 100644 --- a/patches/server/0211-Add-config-to-disable-ender-dragon-legacy-check.patch +++ b/patches/server/0210-Add-config-to-disable-ender-dragon-legacy-check.patch @@ -5,17 +5,17 @@ Subject: [PATCH] Add config to disable ender dragon legacy check diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index f310098b0a59fa5341198bb8282b23dfa4a7fc3a..e70273664b4a38ef4ba803c60409a24a07d5bed7 100644 +index f310098b0a59fa5341198bb8282b23dfa4a7fc3a..d6b6c83a6d660107956a28c16fde2260583722aa 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -106,6 +106,10 @@ public class EndDragonFight { this.ticksSinceLastPlayerScan = 21; this.skipArenaLoadedCheck = false; this.needsStateScanning = true; -+ // Paper start ++ // Paper start - Add config to disable ender dragon legacy check + this.needsStateScanning = world.paperConfig().entities.spawning.scanForLegacyEnderDragon; + if (!this.needsStateScanning) this.dragonKilled = true; -+ // Paper end ++ // Paper end - Add config to disable ender dragon legacy check this.level = world; this.origin = origin; this.validPlayer = EntitySelector.ENTITY_STILL_ALIVE.and(EntitySelector.withinDistance((double) origin.getX(), (double) (128 + origin.getY()), (double) origin.getZ(), 192.0D)); diff --git a/patches/server/0212-Implement-World.getEntity-UUID-API.patch b/patches/server/0211-Implement-World.getEntity-UUID-API.patch similarity index 91% rename from patches/server/0212-Implement-World.getEntity-UUID-API.patch rename to patches/server/0211-Implement-World.getEntity-UUID-API.patch index feaa3ef886ad..f4a8fff45290 100644 --- a/patches/server/0212-Implement-World.getEntity-UUID-API.patch +++ b/patches/server/0211-Implement-World.getEntity-UUID-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement World.getEntity(UUID) API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index b1fe86645fa9e6f4398c8466cb3243154146f29f..982231fcc788b99798e8361a53d77c4ed1920396 100644 +index ed851ec919c18d724d3376e893eca09259ad9bf3..fda8fd0d69a3889909e804798a49c19e2a9d49a6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1048,6 +1048,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0213-InventoryCloseEvent-Reason-API.patch b/patches/server/0212-InventoryCloseEvent-Reason-API.patch similarity index 86% rename from patches/server/0213-InventoryCloseEvent-Reason-API.patch rename to patches/server/0212-InventoryCloseEvent-Reason-API.patch index 14c54c7388a1..3c1786bd0a65 100644 --- a/patches/server/0213-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0212-InventoryCloseEvent-Reason-API.patch @@ -7,7 +7,7 @@ Allows you to determine why an inventory was closed, enabling plugin developers to "confirm" things based on if it was player triggered close or not. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e96abf6afd434c104437e2461431f8b4c82c1d00..e91ce13c4dbea719e567018ace8908d2c7b51b30 100644 +index d5ff2037fd2756da1aac9660e65453913be172cd..0bb2ed82e8a3dffa9fd9d7aa41685dd50dafac0c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1474,7 +1474,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -15,7 +15,7 @@ index e96abf6afd434c104437e2461431f8b4c82c1d00..e91ce13c4dbea719e567018ace8908d2 if (tileentity instanceof net.minecraft.world.Container) { for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((net.minecraft.world.Container) tileentity).getViewers())) { - h.closeInventory(); -+ h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper ++ h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper - Inventory close reason } } } @@ -24,12 +24,12 @@ index e96abf6afd434c104437e2461431f8b4c82c1d00..e91ce13c4dbea719e567018ace8908d2 if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) { - h.closeInventory(); -+ h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper ++ h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper - Inventory close reason } } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3014467f1c9159e04afd0bb816e02af6599f1f71..29f91654226ae349e310121c8fef20d9c1f6c183 100644 +index 3014467f1c9159e04afd0bb816e02af6599f1f71..e144adc6e5e2a195174ed7617c29993804ab87ff 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -692,7 +692,7 @@ public class ServerPlayer extends Player { @@ -37,7 +37,7 @@ index 3014467f1c9159e04afd0bb816e02af6599f1f71..29f91654226ae349e310121c8fef20d9 // Paper end if (!this.level().isClientSide && !this.containerMenu.stillValid(this)) { - this.closeContainer(); -+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper ++ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason this.containerMenu = this.inventoryMenu; } @@ -46,7 +46,7 @@ index 3014467f1c9159e04afd0bb816e02af6599f1f71..29f91654226ae349e310121c8fef20d9 // SPIGOT-943 - only call if they have an inventory open if (this.containerMenu != this.inventoryMenu) { - this.closeContainer(); -+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DEATH); // Paper ++ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DEATH); // Paper - Inventory close reason } net.kyori.adventure.text.Component deathMessage = event.deathMessage() != null ? event.deathMessage() : net.kyori.adventure.text.Component.empty(); // Paper - Adventure @@ -55,7 +55,7 @@ index 3014467f1c9159e04afd0bb816e02af6599f1f71..29f91654226ae349e310121c8fef20d9 // CraftBukkit end if (this.containerMenu != this.inventoryMenu) { - this.closeContainer(); -+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.OPEN_NEW); // Paper ++ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.OPEN_NEW); // Paper - Inventory close reason } // this.nextContainerCounter(); // CraftBukkit - moved up @@ -64,18 +64,18 @@ index 3014467f1c9159e04afd0bb816e02af6599f1f71..29f91654226ae349e310121c8fef20d9 @Override public void closeContainer() { - CraftEventFactory.handleInventoryCloseEvent(this); // CraftBukkit -+ // Paper start ++ // Paper start - Inventory close reason + this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNKNOWN); + } + @Override + public void closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) { + CraftEventFactory.handleInventoryCloseEvent(this, reason); // CraftBukkit -+ // Paper end ++ // Paper end - Inventory close reason this.connection.send(new ClientboundContainerClosePacket(this.containerMenu.containerId)); this.doCloseContainer(); } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8fb792d88852e78fded9f7ae2da26a1d9d09c959..6f6fee0ad12c8a251f86be0fbef32c005e354ee3 100644 +index c1c9076be05cd4b0b19d16aabbf0320c2531cca1..d1c2dad79f6e265e184d374494b3f45414c5fafc 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -219,6 +219,7 @@ import org.bukkit.event.inventory.ClickType; @@ -90,11 +90,11 @@ index 8fb792d88852e78fded9f7ae2da26a1d9d09c959..6f6fee0ad12c8a251f86be0fbef32c00 @Override public void handleContainerClose(ServerboundContainerClosePacket packet) { -+ // Paper start ++ // Paper start - Inventory close reason + this.handleContainerClose(packet, InventoryCloseEvent.Reason.PLAYER); + } + public void handleContainerClose(ServerboundContainerClosePacket packet, InventoryCloseEvent.Reason reason) { -+ // Paper end ++ // Paper end - Inventory close reason PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); if (this.player.isImmobile()) return; // CraftBukkit @@ -104,7 +104,7 @@ index 8fb792d88852e78fded9f7ae2da26a1d9d09c959..6f6fee0ad12c8a251f86be0fbef32c00 this.player.doCloseContainer(); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 782cc6d910efe5bc5498d0083afab42fad6c4fa2..49e3252d6af633d69bdf05ce71dc2a1b3d24f05a 100644 +index 782cc6d910efe5bc5498d0083afab42fad6c4fa2..b4643717c98193884a43089ec7a7e362b7153d20 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -518,7 +518,7 @@ public abstract class PlayerList { @@ -112,12 +112,12 @@ index 782cc6d910efe5bc5498d0083afab42fad6c4fa2..49e3252d6af633d69bdf05ce71dc2a1b // See SPIGOT-5799, SPIGOT-6145 if (entityplayer.containerMenu != entityplayer.inventoryMenu) { - entityplayer.closeContainer(); -+ entityplayer.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DISCONNECT); // Paper ++ entityplayer.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DISCONNECT); // Paper - Inventory close reason } PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName()))); // Paper - Adventure diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 8d40021ce31d5f8fd8a5462a80e92fb919b4b162..0d8261e15a1a66df17727788c387dca8fbe2ae84 100644 +index 0704fad49e680d3274b23024497963c4d0ad353b..636c8d53e5c07f5d75881113b8cfb366a007a162 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -265,7 +265,7 @@ public abstract class Player extends LivingEntity { @@ -125,7 +125,7 @@ index 8d40021ce31d5f8fd8a5462a80e92fb919b4b162..0d8261e15a1a66df17727788c387dca8 super.tick(); if (!this.level().isClientSide && this.containerMenu != null && !this.containerMenu.stillValid(this)) { - this.closeContainer(); -+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper ++ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason this.containerMenu = this.inventoryMenu; } @@ -133,18 +133,18 @@ index 8d40021ce31d5f8fd8a5462a80e92fb919b4b162..0d8261e15a1a66df17727788c387dca8 } -+ // Paper start - unused code, but to keep signatures aligned ++ // Paper start - Inventory close reason; unused code, but to keep signatures aligned + public void closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) { + closeContainer(); + this.containerMenu = this.inventoryMenu; + } -+ // Paper end ++ // Paper end - Inventory close reason + public void closeContainer() { this.containerMenu = this.inventoryMenu; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index f0194d4431821638e43a0f1b12b39f668ad147d1..21e3070a9aab9b4d8d352655d0145c9921857c0e 100644 +index 092d2bfab7e8fd9840e853f09adc85311ab29046..af6f8d11f0384c353332f5c5bb0967e518deccbe 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -376,7 +376,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -152,7 +152,7 @@ index f0194d4431821638e43a0f1b12b39f668ad147d1..21e3070a9aab9b4d8d352655d0145c99 if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) { // fire INVENTORY_CLOSE if one already open - ((ServerPlayer) this.getHandle()).connection.handleContainerClose(new ServerboundContainerClosePacket(this.getHandle().containerMenu.containerId)); -+ ((ServerPlayer) this.getHandle()).connection.handleContainerClose(new ServerboundContainerClosePacket(this.getHandle().containerMenu.containerId), org.bukkit.event.inventory.InventoryCloseEvent.Reason.OPEN_NEW); // Paper ++ ((ServerPlayer) this.getHandle()).connection.handleContainerClose(new ServerboundContainerClosePacket(this.getHandle().containerMenu.containerId), org.bukkit.event.inventory.InventoryCloseEvent.Reason.OPEN_NEW); // Paper - Inventory close reason } ServerPlayer player = (ServerPlayer) this.getHandle(); AbstractContainerMenu container; @@ -161,19 +161,19 @@ index f0194d4431821638e43a0f1b12b39f668ad147d1..21e3070a9aab9b4d8d352655d0145c99 @Override public void closeInventory() { - this.getHandle().closeContainer(); -+ // Paper start ++ // Paper start - Inventory close reason + this.getHandle().closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.PLUGIN); } + @Override + public void closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) { + getHandle().closeContainer(reason); + } -+ // Paper end ++ // Paper end - Inventory close reason @Override public boolean isBlocking() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f929327522b98c12823ebbf94531c1c3681b1efa..701c8c8320f922c6227046d8275595279e5dba9a 100644 +index f929327522b98c12823ebbf94531c1c3681b1efa..f0392f2562ee2b65011da556dbe1a8369c5f954c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1194,7 +1194,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -181,12 +181,12 @@ index f929327522b98c12823ebbf94531c1c3681b1efa..701c8c8320f922c6227046d827559527 // Close any foreign inventory if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) { - this.getHandle().closeContainer(); -+ this.getHandle().closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.TELEPORT); // Paper ++ this.getHandle().closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.TELEPORT); // Paper - Inventory close reason } // Check if the fromWorld and toWorld are the same. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 73963d1e17fa09f17913a2b9fdce0845949e3bec..fc9cf505f32b7cd5f7785314ce16d71c9236b640 100644 +index 848bcabb5922c99ee78cb541c87b464cea032749..3ec8302c569ef923ddca3f9bfb3c506832fe7659 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1331,7 +1331,7 @@ public class CraftEventFactory { @@ -194,7 +194,7 @@ index 73963d1e17fa09f17913a2b9fdce0845949e3bec..fc9cf505f32b7cd5f7785314ce16d71c public static AbstractContainerMenu callInventoryOpenEvent(ServerPlayer player, AbstractContainerMenu container, boolean cancelled) { if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open - player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId)); -+ player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper ++ player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper - Inventory close reason } CraftServer server = player.level().getCraftServer(); diff --git a/patches/server/0214-Vex-get-setSummoner-API.patch b/patches/server/0213-Vex-get-setSummoner-API.patch similarity index 100% rename from patches/server/0214-Vex-get-setSummoner-API.patch rename to patches/server/0213-Vex-get-setSummoner-API.patch diff --git a/patches/server/0215-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch similarity index 85% rename from patches/server/0215-Refresh-player-inventory-when-cancelling-PlayerInter.patch rename to patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch index 6d2e9087f773..a36560f2892c 100644 --- a/patches/server/0215-Refresh-player-inventory-when-cancelling-PlayerInter.patch +++ b/patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch @@ -16,14 +16,14 @@ Refresh the player inventory when PlayerInteractEntityEvent is cancelled to avoid this problem. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6f6fee0ad12c8a251f86be0fbef32c005e354ee3..70c5255038f5db2a11d8248df59c310e8a1725d0 100644 +index d1c2dad79f6e265e184d374494b3f45414c5fafc..a00f68b058d6d7aa28ce34ad726c5b228e5c2e64 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2419,6 +2419,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (event.isCancelled()) { -+ ServerGamePacketListenerImpl.this.player.containerMenu.sendAllDataToRemote(); // Paper - Refresh player inventory ++ ServerGamePacketListenerImpl.this.player.containerMenu.sendAllDataToRemote(); // Paper - Refresh player inventory return; } // CraftBukkit end diff --git a/patches/server/0216-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch b/patches/server/0215-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch similarity index 100% rename from patches/server/0216-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch rename to patches/server/0215-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch diff --git a/patches/server/0217-add-more-information-to-Entity.toString.patch b/patches/server/0216-add-more-information-to-Entity.toString.patch similarity index 90% rename from patches/server/0217-add-more-information-to-Entity.toString.patch rename to patches/server/0216-add-more-information-to-Entity.toString.patch index 1b5b3946c0d8..2fc6c9f002aa 100644 --- a/patches/server/0217-add-more-information-to-Entity.toString.patch +++ b/patches/server/0216-add-more-information-to-Entity.toString.patch @@ -6,7 +6,7 @@ Subject: [PATCH] add more information to Entity.toString() UUID, ticks lived, valid, dead diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d47ada5544478dcfcb49f6b437e634105397fdfe..17cae197f76e02491791c55554bd57592a30aa1d 100644 +index d9abd56d3802033bfd440f13640350b2fba017aa..ad2e61c7fd7906477e30e91c826d9ce4fb6bffc0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3202,7 +3202,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -14,7 +14,7 @@ index d47ada5544478dcfcb49f6b437e634105397fdfe..17cae197f76e02491791c55554bd5759 String s = this.level() == null ? "~NULL~" : this.level().toString(); - return this.removalReason != null ? String.format(Locale.ROOT, "%s['%s'/%d, l='%s', x=%.2f, y=%.2f, z=%.2f, removed=%s]", this.getClass().getSimpleName(), this.getName().getString(), this.id, s, this.getX(), this.getY(), this.getZ(), this.removalReason) : String.format(Locale.ROOT, "%s['%s'/%d, l='%s', x=%.2f, y=%.2f, z=%.2f]", this.getClass().getSimpleName(), this.getName().getString(), this.id, s, this.getX(), this.getY(), this.getZ()); -+ return this.removalReason != null ? String.format(Locale.ROOT, "%s['%s'/%d, uuid='%s', l='%s', x=%.2f, y=%.2f, z=%.2f, cpos=%s, tl=%d, v=%b, removed=%s]", this.getClass().getSimpleName(), this.getName().getString(), this.id, this.uuid, s, this.getX(), this.getY(), this.getZ(), this.chunkPosition(), this.tickCount, this.valid, this.removalReason) : String.format(Locale.ROOT, "%s['%s'/%d, uuid='%s', l='%s', x=%.2f, y=%.2f, z=%.2f, cpos=%s, tl=%d, v=%b]", this.getClass().getSimpleName(), this.getName().getString(), this.id, this.uuid, s, this.getX(), this.getY(), this.getZ(), this.chunkPosition(), this.tickCount, this.valid); ++ return this.removalReason != null ? String.format(Locale.ROOT, "%s['%s'/%d, uuid='%s', l='%s', x=%.2f, y=%.2f, z=%.2f, cpos=%s, tl=%d, v=%b, removed=%s]", this.getClass().getSimpleName(), this.getName().getString(), this.id, this.uuid, s, this.getX(), this.getY(), this.getZ(), this.chunkPosition(), this.tickCount, this.valid, this.removalReason) : String.format(Locale.ROOT, "%s['%s'/%d, uuid='%s', l='%s', x=%.2f, y=%.2f, z=%.2f, cpos=%s, tl=%d, v=%b]", this.getClass().getSimpleName(), this.getName().getString(), this.id, this.uuid, s, this.getX(), this.getY(), this.getZ(), this.chunkPosition(), this.tickCount, this.valid); // Paper - add more info } public boolean isInvulnerableTo(DamageSource damageSource) { diff --git a/patches/server/0218-EnderDragon-Events.patch b/patches/server/0217-EnderDragon-Events.patch similarity index 83% rename from patches/server/0218-EnderDragon-Events.patch rename to patches/server/0217-EnderDragon-Events.patch index 0559cac19b66..2b7a35d8de9d 100644 --- a/patches/server/0218-EnderDragon-Events.patch +++ b/patches/server/0217-EnderDragon-Events.patch @@ -5,49 +5,49 @@ Subject: [PATCH] EnderDragon Events diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonSittingFlamingPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonSittingFlamingPhase.java -index f72ad2e7d0d5953c906d0d9f8adb9ba74d1841be..7b96cf748b69db98cb1bc3dc0430e39b9ffc93f2 100644 +index f72ad2e7d0d5953c906d0d9f8adb9ba74d1841be..bb8f50a47a88f4e4d440ae0b70a56e7f9c1467ca 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonSittingFlamingPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonSittingFlamingPhase.java @@ -83,7 +83,13 @@ public class DragonSittingFlamingPhase extends AbstractDragonSittingPhase { this.flame.setDuration(200); this.flame.setParticle(ParticleTypes.DRAGON_BREATH); this.flame.addEffect(new MobEffectInstance(MobEffects.HARM)); -+ if (new com.destroystokyo.paper.event.entity.EnderDragonFlameEvent((org.bukkit.entity.EnderDragon) this.dragon.getBukkitEntity(), (org.bukkit.entity.AreaEffectCloud) this.flame.getBukkitEntity()).callEvent()) { // Paper ++ if (new com.destroystokyo.paper.event.entity.EnderDragonFlameEvent((org.bukkit.entity.EnderDragon) this.dragon.getBukkitEntity(), (org.bukkit.entity.AreaEffectCloud) this.flame.getBukkitEntity()).callEvent()) { // Paper - EnderDragon Events this.dragon.level().addFreshEntity(this.flame); -+ // Paper start ++ // Paper start - EnderDragon Events + } else { + this.end(); + } -+ // Paper end ++ // Paper end - EnderDragon Events } } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java -index f54576f6450e24f574bfe7f4b8e2ad5d8c9f1ba3..a3456b35db4e938f91d6bc32d4d202a011bf13c4 100644 +index f54576f6450e24f574bfe7f4b8e2ad5d8c9f1ba3..9bf04f18d37356cdef1ef3a7f1e38a1801ad5713 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java @@ -74,7 +74,9 @@ public class DragonStrafePlayerPhase extends AbstractDragonPhaseInstance { DragonFireball dragonFireball = new DragonFireball(this.dragon.level(), this.dragon, r, s, t); dragonFireball.moveTo(o, p, q, 0.0F, 0.0F); -+ if (new com.destroystokyo.paper.event.entity.EnderDragonShootFireballEvent((org.bukkit.entity.EnderDragon) dragon.getBukkitEntity(), (org.bukkit.entity.DragonFireball) dragonFireball.getBukkitEntity()).callEvent()) // Paper ++ if (new com.destroystokyo.paper.event.entity.EnderDragonShootFireballEvent((org.bukkit.entity.EnderDragon) dragon.getBukkitEntity(), (org.bukkit.entity.DragonFireball) dragonFireball.getBukkitEntity()).callEvent()) // Paper - EnderDragon Events this.dragon.level().addFreshEntity(dragonFireball); -+ else dragonFireball.discard(); // Paper ++ else dragonFireball.discard(); // Paper - EnderDragon Events this.fireballCharge = 0; if (this.currentPath != null) { while(!this.currentPath.isDone()) { diff --git a/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java b/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java -index 796a2a88134eee4021423fef132537a5e0680bc5..9652e3385ad10e5d825dd141f6be3522c596916d 100644 +index 796a2a88134eee4021423fef132537a5e0680bc5..61a36c4e97ee532e53eee4da00a9aa7e4b3438f5 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java +++ b/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java @@ -52,8 +52,10 @@ public class DragonFireball extends AbstractHurtingProjectile { } } -+ if (new com.destroystokyo.paper.event.entity.EnderDragonFireballHitEvent((org.bukkit.entity.DragonFireball) this.getBukkitEntity(), list.stream().map(LivingEntity::getBukkitLivingEntity).collect(java.util.stream.Collectors.toList()), (org.bukkit.entity.AreaEffectCloud) areaEffectCloud.getBukkitEntity()).callEvent()) { // Paper ++ if (new com.destroystokyo.paper.event.entity.EnderDragonFireballHitEvent((org.bukkit.entity.DragonFireball) this.getBukkitEntity(), list.stream().map(LivingEntity::getBukkitLivingEntity).collect(java.util.stream.Collectors.toList()), (org.bukkit.entity.AreaEffectCloud) areaEffectCloud.getBukkitEntity()).callEvent()) { // Paper - EnderDragon Events this.level().levelEvent(2006, this.blockPosition(), this.isSilent() ? -1 : 1); this.level().addFreshEntity(areaEffectCloud); -+ } else areaEffectCloud.discard(); // Paper ++ } else areaEffectCloud.discard(); // Paper - EnderDragon Events this.discard(); } diff --git a/patches/server/0219-PlayerElytraBoostEvent.patch b/patches/server/0218-PlayerElytraBoostEvent.patch similarity index 89% rename from patches/server/0219-PlayerElytraBoostEvent.patch rename to patches/server/0218-PlayerElytraBoostEvent.patch index e99be47ba0d9..902f983c3652 100644 --- a/patches/server/0219-PlayerElytraBoostEvent.patch +++ b/patches/server/0218-PlayerElytraBoostEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerElytraBoostEvent diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -index 7c627d27300247db9122ab2081049345ef306073..f17e9c6c91c02e0d36f58851522a5d3e5e423121 100644 +index 7c627d27300247db9122ab2081049345ef306073..6e6c9477b70b0e1ab36bca9fa91806a283ebedd1 100644 --- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java +++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java @@ -61,12 +61,19 @@ public class FireworkRocketItem extends Item { @@ -14,7 +14,7 @@ index 7c627d27300247db9122ab2081049345ef306073..f17e9c6c91c02e0d36f58851522a5d3e fireworkRocketEntity.spawningEntity = user.getUUID(); // Paper - world.addFreshEntity(fireworkRocketEntity); - if (!user.getAbilities().instabuild) { -+ // Paper start ++ // Paper start - PlayerElytraBoostEvent + com.destroystokyo.paper.event.player.PlayerElytraBoostEvent event = new com.destroystokyo.paper.event.player.PlayerElytraBoostEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), (org.bukkit.entity.Firework) fireworkRocketEntity.getBukkitEntity()); + if (event.callEvent() && world.addFreshEntity(fireworkRocketEntity)) { + user.awardStat(Stats.ITEM_USED.get(this)); @@ -23,11 +23,11 @@ index 7c627d27300247db9122ab2081049345ef306073..f17e9c6c91c02e0d36f58851522a5d3e + } else ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); + } else if (user instanceof net.minecraft.server.level.ServerPlayer) { + ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); -+ // Paper end ++ // Paper end - PlayerElytraBoostEvent } - user.awardStat(Stats.ITEM_USED.get(this)); -+ // user.awardStat(Stats.ITEM_USED.get(this)); // Paper - move up ++ // user.awardStat(Stats.ITEM_USED.get(this)); // Paper - PlayerElytraBoostEvent; move up } return InteractionResultHolder.sidedSuccess(user.getItemInHand(hand), world.isClientSide()); diff --git a/patches/server/0220-PlayerLaunchProjectileEvent.patch b/patches/server/0219-PlayerLaunchProjectileEvent.patch similarity index 84% rename from patches/server/0220-PlayerLaunchProjectileEvent.patch rename to patches/server/0219-PlayerLaunchProjectileEvent.patch index f512b0ab726d..5d9bed560803 100644 --- a/patches/server/0220-PlayerLaunchProjectileEvent.patch +++ b/patches/server/0219-PlayerLaunchProjectileEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerLaunchProjectileEvent diff --git a/src/main/java/net/minecraft/world/item/EggItem.java b/src/main/java/net/minecraft/world/item/EggItem.java -index 32b63407b943fb00d765dbf4e0eefb4b06f801b6..58cb992c5defec2f092755cbde661ff10f38bf9d 100644 +index 32b63407b943fb00d765dbf4e0eefb4b06f801b6..a3bd507793994e9cc87a956871a8afbb8ca9460d 100644 --- a/src/main/java/net/minecraft/world/item/EggItem.java +++ b/src/main/java/net/minecraft/world/item/EggItem.java @@ -25,21 +25,33 @@ public class EggItem extends Item { @@ -14,7 +14,7 @@ index 32b63407b943fb00d765dbf4e0eefb4b06f801b6..58cb992c5defec2f092755cbde661ff1 entityegg.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, 1.0F); - // CraftBukkit start - if (!world.addFreshEntity(entityegg)) { -+ // Paper start ++ // Paper start - PlayerLaunchProjectileEvent + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entityegg.getBukkitEntity()); + if (event.callEvent() && world.addFreshEntity(entityegg)) { + if (event.shouldConsume() && !user.getAbilities().instabuild) { @@ -32,21 +32,21 @@ index 32b63407b943fb00d765dbf4e0eefb4b06f801b6..58cb992c5defec2f092755cbde661ff1 return InteractionResultHolder.fail(itemstack); } - // CraftBukkit end -+ // Paper end ++ // Paper end - PlayerLaunchProjectileEvent } world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.EGG_THROW, SoundSource.PLAYERS, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); -+ /* // Paper start - moved up ++ /* // Paper start - PlayerLaunchProjectileEvent; moved up user.awardStat(Stats.ITEM_USED.get(this)); if (!user.getAbilities().instabuild) { itemstack.shrink(1); } -+ */ // Paper end ++ */ // Paper end - PlayerLaunchProjectileEvent return InteractionResultHolder.sidedSuccess(itemstack, world.isClientSide()); } diff --git a/src/main/java/net/minecraft/world/item/EnderpearlItem.java b/src/main/java/net/minecraft/world/item/EnderpearlItem.java -index c7d4745aed77b23562cde7c68b8870fa239428d4..749ab72edc0d2e9c6f1161415ab8d59d3d6ca976 100644 +index c7d4745aed77b23562cde7c68b8870fa239428d4..8c8cf8705107c95d9a4eab28b5845ae13c4ffb3c 100644 --- a/src/main/java/net/minecraft/world/item/EnderpearlItem.java +++ b/src/main/java/net/minecraft/world/item/EnderpearlItem.java @@ -25,7 +25,20 @@ public class EnderpearlItem extends Item { @@ -54,8 +54,8 @@ index c7d4745aed77b23562cde7c68b8870fa239428d4..749ab72edc0d2e9c6f1161415ab8d59d entityenderpearl.setItem(itemstack); entityenderpearl.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, 1.0F); - if (!world.addFreshEntity(entityenderpearl)) { -+ // Paper start -+ com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entityenderpearl.getBukkitEntity()); ++ // Paper start - PlayerLaunchProjectileEvent ++ com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entityenderpearl.getBukkitEntity()); + if (event.callEvent() && world.addFreshEntity(entityenderpearl)) { + if (event.shouldConsume() && !user.getAbilities().instabuild) { + itemstack.shrink(1); @@ -67,7 +67,7 @@ index c7d4745aed77b23562cde7c68b8870fa239428d4..749ab72edc0d2e9c6f1161415ab8d59d + user.awardStat(Stats.ITEM_USED.get(this)); + user.getCooldowns().addCooldown(this, 20); + } else { -+ // Paper end ++ // Paper end - PlayerLaunchProjectileEvent if (user instanceof net.minecraft.server.level.ServerPlayer) { ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); } @@ -75,7 +75,7 @@ index c7d4745aed77b23562cde7c68b8870fa239428d4..749ab72edc0d2e9c6f1161415ab8d59d } } -+ /* // Paper start - moved up ++ /* // Paper start - PlayerLaunchProjectileEvent; moved up world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.ENDER_PEARL_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); user.getCooldowns().addCooldown(this, 20); // CraftBukkit end @@ -83,12 +83,12 @@ index c7d4745aed77b23562cde7c68b8870fa239428d4..749ab72edc0d2e9c6f1161415ab8d59d if (!user.getAbilities().instabuild) { itemstack.shrink(1); } -+ */ // Paper end - moved up ++ */ // Paper end - PlayerLaunchProjectileEvent; moved up return InteractionResultHolder.sidedSuccess(itemstack, world.isClientSide()); } diff --git a/src/main/java/net/minecraft/world/item/ExperienceBottleItem.java b/src/main/java/net/minecraft/world/item/ExperienceBottleItem.java -index 72dfb7b652f515bf9df201d524a851ab56706544..b80bedb5f27b474d7f66e9e1cc38ca3b692fc92b 100644 +index 72dfb7b652f515bf9df201d524a851ab56706544..39fe6734c8dcd34c563e33e717937bbd91882e1e 100644 --- a/src/main/java/net/minecraft/world/item/ExperienceBottleItem.java +++ b/src/main/java/net/minecraft/world/item/ExperienceBottleItem.java @@ -22,18 +22,37 @@ public class ExperienceBottleItem extends Item { @@ -96,13 +96,13 @@ index 72dfb7b652f515bf9df201d524a851ab56706544..b80bedb5f27b474d7f66e9e1cc38ca3b public InteractionResultHolder use(Level world, Player user, InteractionHand hand) { ItemStack itemStack = user.getItemInHand(hand); - world.playSound((Player)null, user.getX(), user.getY(), user.getZ(), SoundEvents.EXPERIENCE_BOTTLE_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); -+ // world.playSound((Player)null, user.getX(), user.getY(), user.getZ(), SoundEvents.EXPERIENCE_BOTTLE_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); // Paper - moved down ++ // world.playSound((Player)null, user.getX(), user.getY(), user.getZ(), SoundEvents.EXPERIENCE_BOTTLE_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); // Paper - PlayerLaunchProjectileEvent; moved down if (!world.isClientSide) { ThrownExperienceBottle thrownExperienceBottle = new ThrownExperienceBottle(world, user); thrownExperienceBottle.setItem(itemStack); thrownExperienceBottle.shootFromRotation(user, user.getXRot(), user.getYRot(), -20.0F, 0.7F, 1.0F); - world.addFreshEntity(thrownExperienceBottle); -+ // Paper start ++ // Paper start - PlayerLaunchProjectileEvent + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), (org.bukkit.entity.Projectile) thrownExperienceBottle.getBukkitEntity()); + if (event.callEvent() && world.addFreshEntity(thrownExperienceBottle)) { + if (event.shouldConsume() && !user.getAbilities().instabuild) { @@ -119,20 +119,20 @@ index 72dfb7b652f515bf9df201d524a851ab56706544..b80bedb5f27b474d7f66e9e1cc38ca3b + } + return InteractionResultHolder.fail(itemStack); + } -+ // Paper end ++ // Paper end - PlayerLaunchProjectileEvent } -+ /* // Paper start - moved up ++ /* // Paper start - PlayerLaunchProjectileEvent; moved up user.awardStat(Stats.ITEM_USED.get(this)); if (!user.getAbilities().instabuild) { itemStack.shrink(1); } -+ */ // Paper end ++ */ // Paper end - PlayerLaunchProjectileEvent return InteractionResultHolder.sidedSuccess(itemStack, world.isClientSide()); } diff --git a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java -index f17e9c6c91c02e0d36f58851522a5d3e5e423121..82b0bda3e35ec2157a477e1a17b2b46baadc97d9 100644 +index 6e6c9477b70b0e1ab36bca9fa91806a283ebedd1..0821c06a4c66edc8fcee09fc192335a588d2944b 100644 --- a/src/main/java/net/minecraft/world/item/FireworkRocketItem.java +++ b/src/main/java/net/minecraft/world/item/FireworkRocketItem.java @@ -47,8 +47,12 @@ public class FireworkRocketItem extends Item { @@ -146,30 +146,30 @@ index f17e9c6c91c02e0d36f58851522a5d3e5e423121..82b0bda3e35ec2157a477e1a17b2b46b + if (!event.callEvent() || !level.addFreshEntity(fireworkRocketEntity)) return InteractionResult.PASS; + if (event.shouldConsume() && !context.getPlayer().getAbilities().instabuild) itemStack.shrink(1); + else if (context.getPlayer() instanceof net.minecraft.server.level.ServerPlayer) ((net.minecraft.server.level.ServerPlayer) context.getPlayer()).getBukkitEntity().updateInventory(); -+ // Paper end ++ // Paper end - PlayerLaunchProjectileEvent } return InteractionResult.sidedSuccess(level.isClientSide); diff --git a/src/main/java/net/minecraft/world/item/LingeringPotionItem.java b/src/main/java/net/minecraft/world/item/LingeringPotionItem.java -index 04370590e6c8051ad17f937576b4cd88f6afb5d9..95ee59a831bdbf7364d917e7169d736fecf76076 100644 +index 04370590e6c8051ad17f937576b4cd88f6afb5d9..8526251e45899499bc4d9b6254fa1b190a3843d8 100644 --- a/src/main/java/net/minecraft/world/item/LingeringPotionItem.java +++ b/src/main/java/net/minecraft/world/item/LingeringPotionItem.java @@ -23,7 +23,12 @@ public class LingeringPotionItem extends ThrowablePotionItem { @Override public InteractionResultHolder use(Level world, Player user, InteractionHand hand) { -+ // Paper start ++ // Paper start - PlayerLaunchProjectileEvent + InteractionResultHolder wrapper = super.use(world, user, hand); + if (wrapper.getResult() != net.minecraft.world.InteractionResult.FAIL) { world.playSound((Player)null, user.getX(), user.getY(), user.getZ(), SoundEvents.LINGERING_POTION_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); - return super.use(world, user, hand); + } + return wrapper; -+ // Paper end ++ // Paper end - PlayerLaunchProjectileEvent } } diff --git a/src/main/java/net/minecraft/world/item/SnowballItem.java b/src/main/java/net/minecraft/world/item/SnowballItem.java -index d60e57e84f7d66e1858ab50ac33777feedf1c54d..ef3f90a5bcdd7b9815a4053cff166f9d2552f55d 100644 +index d60e57e84f7d66e1858ab50ac33777feedf1c54d..bc8186a5bc3a98b35fad570729dd4ba52efab238 100644 --- a/src/main/java/net/minecraft/world/item/SnowballItem.java +++ b/src/main/java/net/minecraft/world/item/SnowballItem.java @@ -26,18 +26,26 @@ public class SnowballItem extends Item { @@ -178,28 +178,28 @@ index d60e57e84f7d66e1858ab50ac33777feedf1c54d..ef3f90a5bcdd7b9815a4053cff166f9d entitysnowball.shootFromRotation(user, user.getXRot(), user.getYRot(), 0.0F, 1.5F, 1.0F); - if (world.addFreshEntity(entitysnowball)) { - if (!user.getAbilities().instabuild) { -+ // Paper start ++ // Paper start - PlayerLaunchProjectileEvent + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entitysnowball.getBukkitEntity()); + if (event.callEvent() && world.addFreshEntity(entitysnowball)) { + user.awardStat(Stats.ITEM_USED.get(this)); + if (event.shouldConsume() && !user.getAbilities().instabuild) { -+ // Paper end ++ // Paper end - PlayerLaunchProjectileEvent itemstack.shrink(1); -+ } else if (user instanceof net.minecraft.server.level.ServerPlayer) { // Paper -+ ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); // Paper ++ } else if (user instanceof net.minecraft.server.level.ServerPlayer) { // Paper - PlayerLaunchProjectileEvent ++ ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); // Paper - PlayerLaunchProjectileEvent } world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.SNOWBALL_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); - } else if (user instanceof net.minecraft.server.level.ServerPlayer) { - ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); -+ } else { // Paper -+ if (user instanceof net.minecraft.server.level.ServerPlayer) ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); // Paper -+ return InteractionResultHolder.fail(itemstack); // Paper ++ } else { // Paper - PlayerLaunchProjectileEvent ++ if (user instanceof net.minecraft.server.level.ServerPlayer) ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); // Paper - PlayerLaunchProjectileEvent ++ return InteractionResultHolder.fail(itemstack); // Paper - PlayerLaunchProjectileEvent } } // CraftBukkit end -+ /* // Paper tart - moved up ++ /* // Paper start - PlayerLaunchProjectileEvent; moved up user.awardStat(Stats.ITEM_USED.get(this)); // CraftBukkit start - moved up /* @@ -207,30 +207,30 @@ index d60e57e84f7d66e1858ab50ac33777feedf1c54d..ef3f90a5bcdd7b9815a4053cff166f9d itemstack.shrink(1); } */ -+ // Paper end ++ // Paper end - PlayerLaunchProjectileEvent return InteractionResultHolder.sidedSuccess(itemstack, world.isClientSide()); } diff --git a/src/main/java/net/minecraft/world/item/SplashPotionItem.java b/src/main/java/net/minecraft/world/item/SplashPotionItem.java -index 317e20052bcac9118e1adeb619bedaacc6fcd690..ece19f30064e9f59d4df077683e1f894455a84b7 100644 +index 317e20052bcac9118e1adeb619bedaacc6fcd690..3bd127780091c6bb9ec17c88f0cf57b0b8f37e11 100644 --- a/src/main/java/net/minecraft/world/item/SplashPotionItem.java +++ b/src/main/java/net/minecraft/world/item/SplashPotionItem.java @@ -14,7 +14,12 @@ public class SplashPotionItem extends ThrowablePotionItem { @Override public InteractionResultHolder use(Level world, Player user, InteractionHand hand) { -+ // Paper start ++ // Paper start - PlayerLaunchProjectileEvent + InteractionResultHolder wrapper = super.use(world, user, hand); + if (wrapper.getResult() != net.minecraft.world.InteractionResult.FAIL) { world.playSound((Player)null, user.getX(), user.getY(), user.getZ(), SoundEvents.SPLASH_POTION_THROW, SoundSource.PLAYERS, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); - return super.use(world, user, hand); + } + return wrapper; -+ // Paper end ++ // Paper end - PlayerLaunchProjectileEvent } } diff --git a/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java b/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java -index 0673f62f25532955f3552b64f122e644d42027e4..de5bdceb4c8578fb972a2fd5ee0dfdae509e46dc 100644 +index 0673f62f25532955f3552b64f122e644d42027e4..f47f793c62a919fb65c081ddb82d597a978d3b20 100644 --- a/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java +++ b/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java @@ -19,13 +19,31 @@ public class ThrowablePotionItem extends PotionItem { @@ -238,7 +238,7 @@ index 0673f62f25532955f3552b64f122e644d42027e4..de5bdceb4c8578fb972a2fd5ee0dfdae thrownPotion.setItem(itemStack); thrownPotion.shootFromRotation(user, user.getXRot(), user.getYRot(), -20.0F, 0.5F, 1.0F); - world.addFreshEntity(thrownPotion); -+ // Paper start ++ // Paper start - PlayerLaunchProjectileEvent + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), (org.bukkit.entity.Projectile) thrownPotion.getBukkitEntity()); + if (event.callEvent() && world.addFreshEntity(thrownPotion)) { + if (event.shouldConsume() && !user.getAbilities().instabuild) { @@ -254,10 +254,10 @@ index 0673f62f25532955f3552b64f122e644d42027e4..de5bdceb4c8578fb972a2fd5ee0dfdae + } + return InteractionResultHolder.fail(itemStack); + } -+ // Paper end ++ // Paper end - PlayerLaunchProjectileEvent } -+ /* // Paper start - moved up ++ /* // Paper start - PlayerLaunchProjectileEvent; moved up user.awardStat(Stats.ITEM_USED.get(this)); if (!user.getAbilities().instabuild) { itemStack.shrink(1); @@ -267,7 +267,7 @@ index 0673f62f25532955f3552b64f122e644d42027e4..de5bdceb4c8578fb972a2fd5ee0dfdae return InteractionResultHolder.sidedSuccess(itemStack, world.isClientSide()); } diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java -index 2ccbba4775d7550c5c7277aee9cab9ff7d665693..5fab851b319847035fb1eefd0ab999de3ccc2cd8 100644 +index 2ccbba4775d7550c5c7277aee9cab9ff7d665693..fa876ddf54780728e7f3ecfe02aa8a16b8ef6f8d 100644 --- a/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java @@ -83,21 +83,26 @@ public class TridentItem extends Item implements Vanishable { @@ -275,27 +275,27 @@ index 2ccbba4775d7550c5c7277aee9cab9ff7d665693..5fab851b319847035fb1eefd0ab999de // CraftBukkit start - if (!world.addFreshEntity(entitythrowntrident)) { -+ // Paper start ++ // Paper start - PlayerLaunchProjectileEvent + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(stack), (org.bukkit.entity.Projectile) entitythrowntrident.getBukkitEntity()); + if (!event.callEvent() || !world.addFreshEntity(entitythrowntrident)) { -+ // Paper end ++ // Paper end - PlayerLaunchProjectileEvent if (entityhuman instanceof net.minecraft.server.level.ServerPlayer) { ((net.minecraft.server.level.ServerPlayer) entityhuman).getBukkitEntity().updateInventory(); } return; } -+ if (event.shouldConsume()) { // Paper ++ if (event.shouldConsume()) { // Paper - PlayerLaunchProjectileEvent stack.hurtAndBreak(1, entityhuman, (entityhuman1) -> { entityhuman1.broadcastBreakEvent(user.getUsedItemHand()); }); -+ } // Paper ++ } // Paper - PlayerLaunchProjectileEvent entitythrowntrident.pickupItemStack = stack.copy(); // SPIGOT-4511 update since damage call moved // CraftBukkit end world.playSound((Player) null, (Entity) entitythrowntrident, SoundEvents.TRIDENT_THROW, SoundSource.PLAYERS, 1.0F, 1.0F); - if (!entityhuman.getAbilities().instabuild) { -+ if (event.shouldConsume() && !entityhuman.getAbilities().instabuild) { // Paper ++ if (event.shouldConsume() && !entityhuman.getAbilities().instabuild) { // Paper - PlayerLaunchProjectileEvent entityhuman.getInventory().removeItem(stack); } // CraftBukkit start - SPIGOT-5458 also need in this branch :( diff --git a/patches/server/0221-Improve-BlockPosition-inlining.patch b/patches/server/0220-Improve-BlockPosition-inlining.patch similarity index 83% rename from patches/server/0221-Improve-BlockPosition-inlining.patch rename to patches/server/0220-Improve-BlockPosition-inlining.patch index 208af7583187..74cbf3248ab9 100644 --- a/patches/server/0221-Improve-BlockPosition-inlining.patch +++ b/patches/server/0220-Improve-BlockPosition-inlining.patch @@ -21,7 +21,7 @@ This is based upon conclusions drawn from inspecting the assenmbly generated byt They had 'callq' (invoke) instead of 'mov' (get from memory) instructions. diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java -index 40950db0c242c65dfd4de247c86249354d12108f..e87ef99260bff134529e00b9a75381cecaec01a4 100644 +index 40950db0c242c65dfd4de247c86249354d12108f..6d760fa1dbd13a66bff4695edc28f4ab4b3e44a3 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java +++ b/src/main/java/net/minecraft/core/Vec3i.java @@ -44,7 +44,7 @@ public class Vec3i implements Comparable { @@ -29,7 +29,7 @@ index 40950db0c242c65dfd4de247c86249354d12108f..e87ef99260bff134529e00b9a75381ce @Override - public boolean equals(Object object) { -+ public final boolean equals(Object object) { // Paper ++ public final boolean equals(Object object) { // Paper - Perf: Final for inline if (this == object) { return true; } else if (!(object instanceof Vec3i)) { @@ -38,7 +38,7 @@ index 40950db0c242c65dfd4de247c86249354d12108f..e87ef99260bff134529e00b9a75381ce @Override - public int hashCode() { -+ public final int hashCode() { // Paper ++ public final int hashCode() { // Paper - Perf: Final for inline return (this.getY() + this.getZ() * 31) * 31 + this.getX(); } @@ -47,17 +47,17 @@ index 40950db0c242c65dfd4de247c86249354d12108f..e87ef99260bff134529e00b9a75381ce } - public int getX() { -+ public final int getX() { // Paper ++ public final int getX() { // Paper - Perf: Final for inline return this.x; } - public int getY() { -+ public final int getY() { // Paper ++ public final int getY() { // Paper - Perf: Final for inline return this.y; } - public int getZ() { -+ public final int getZ() { // Paper ++ public final int getZ() { // Paper - Perf: Final for inline return this.z; } diff --git a/patches/server/0222-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/patches/server/0221-Option-to-prevent-armor-stands-from-doing-entity-loo.patch similarity index 78% rename from patches/server/0222-Option-to-prevent-armor-stands-from-doing-entity-loo.patch rename to patches/server/0221-Option-to-prevent-armor-stands-from-doing-entity-loo.patch index a182766f7f36..98ed62ea6724 100644 --- a/patches/server/0222-Option-to-prevent-armor-stands-from-doing-entity-loo.patch +++ b/patches/server/0221-Option-to-prevent-armor-stands-from-doing-entity-loo.patch @@ -5,32 +5,32 @@ Subject: [PATCH] Option to prevent armor stands from doing entity lookups diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index d04d0b9cbf91beb57da7e37e72f8e7c98cf6cf4c..aff1b2195d2f187739394886d4c0bdbf0cb306b4 100644 +index d04d0b9cbf91beb57da7e37e72f8e7c98cf6cf4c..e6e3a7ae08f7346ccbce02b9d36239485133e93a 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -337,6 +337,7 @@ public class ArmorStand extends LivingEntity { @Override protected void pushEntities() { -+ if (!this.level().paperConfig().entities.armorStands.doCollisionEntityLookups) return; // Paper ++ if (!this.level().paperConfig().entities.armorStands.doCollisionEntityLookups) return; // Paper - Option to prevent armor stands from doing entity lookups List list = this.level().getEntities((Entity) this, this.getBoundingBox(), ArmorStand.RIDABLE_MINECARTS); Iterator iterator = list.iterator(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index dfdbe171509cc4098e8a14bd8bb65a3a2a44354c..fa504824948c42b7feeca50b407f1f07b2b1a73e 100644 +index 4c48be9f98d75758e582e37ba45d0e8c5737adeb..d7dfbd198e16533aab8db3ee64daf26996380331 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -854,6 +854,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Paper end } } -+ // Paper start - Prevent armor stands from doing entity lookups ++ // Paper start - Option to prevent armor stands from doing entity lookups + @Override + public boolean noCollision(@Nullable Entity entity, AABB box) { + if (entity instanceof net.minecraft.world.entity.decoration.ArmorStand && !entity.level().paperConfig().entities.armorStands.doCollisionEntityLookups) return false; + return LevelAccessor.super.noCollision(entity, box); + } -+ // Paper end ++ // Paper end - Option to prevent armor stands from doing entity lookups public boolean shouldTickDeath(Entity entity) { return true; diff --git a/patches/server/0223-Vanished-players-don-t-have-rights.patch b/patches/server/0222-Vanished-players-don-t-have-rights.patch similarity index 97% rename from patches/server/0223-Vanished-players-don-t-have-rights.patch rename to patches/server/0222-Vanished-players-don-t-have-rights.patch index 144ab07769f6..17673a4ced6a 100644 --- a/patches/server/0223-Vanished-players-don-t-have-rights.patch +++ b/patches/server/0222-Vanished-players-don-t-have-rights.patch @@ -39,7 +39,7 @@ index a6638e626600e4304a973497a39e3fac52203b16..c19069f65a9ecbc9000ea4333417a2df BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(context.getLevel(), context.getClickedPos()), player, CraftBlockData.fromData(state), defaultReturn); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4fead0be6e8b754d0bafa1a988207fb8829b9180..30c69940c331f12dfe732052fcd917ea9231362f 100644 +index d7dfbd198e16533aab8db3ee64daf26996380331..09f2bee26387641191ae7ee3b863ca4ae2106cb4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -276,6 +276,45 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -89,7 +89,7 @@ index 4fead0be6e8b754d0bafa1a988207fb8829b9180..30c69940c331f12dfe732052fcd917ea public boolean isClientSide() { return this.isClientSide; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 0b847125f67e19e6f0bdc6d0f2fcc8c5ad720fe9..712c92120d2d4b8188b47141e6f0252ad57e66d8 100644 +index 3ec8302c569ef923ddca3f9bfb3c506832fe7659..b297f6eb25192079e8e388d034d4e3ede8d5ab37 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1368,6 +1368,14 @@ public class CraftEventFactory { diff --git a/patches/server/0224-Allow-disabling-armor-stand-ticking.patch b/patches/server/0223-Allow-disabling-armor-stand-ticking.patch similarity index 98% rename from patches/server/0224-Allow-disabling-armor-stand-ticking.patch rename to patches/server/0223-Allow-disabling-armor-stand-ticking.patch index 994e7fb60e30..9d074fefe403 100644 --- a/patches/server/0224-Allow-disabling-armor-stand-ticking.patch +++ b/patches/server/0223-Allow-disabling-armor-stand-ticking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow disabling armor stand ticking diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index aff1b2195d2f187739394886d4c0bdbf0cb306b4..5ed648502268e9c4564b5a4984b68b499aeffeb9 100644 +index e6e3a7ae08f7346ccbce02b9d36239485133e93a..ecce8036e58a9ed1408e110e75980bf77c18779a 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -93,9 +93,16 @@ public class ArmorStand extends LivingEntity { diff --git a/patches/server/0225-SkeletonHorse-Additions.patch b/patches/server/0224-SkeletonHorse-Additions.patch similarity index 100% rename from patches/server/0225-SkeletonHorse-Additions.patch rename to patches/server/0224-SkeletonHorse-Additions.patch diff --git a/patches/server/0226-Don-t-call-getItemMeta-on-hasItemMeta.patch b/patches/server/0225-Don-t-call-getItemMeta-on-hasItemMeta.patch similarity index 100% rename from patches/server/0226-Don-t-call-getItemMeta-on-hasItemMeta.patch rename to patches/server/0225-Don-t-call-getItemMeta-on-hasItemMeta.patch diff --git a/patches/server/0227-Expand-ArmorStand-API.patch b/patches/server/0226-Expand-ArmorStand-API.patch similarity index 100% rename from patches/server/0227-Expand-ArmorStand-API.patch rename to patches/server/0226-Expand-ArmorStand-API.patch diff --git a/patches/server/0228-AnvilDamageEvent.patch b/patches/server/0227-AnvilDamageEvent.patch similarity index 100% rename from patches/server/0228-AnvilDamageEvent.patch rename to patches/server/0227-AnvilDamageEvent.patch diff --git a/patches/server/0229-Add-TNTPrimeEvent.patch b/patches/server/0228-Add-TNTPrimeEvent.patch similarity index 98% rename from patches/server/0229-Add-TNTPrimeEvent.patch rename to patches/server/0228-Add-TNTPrimeEvent.patch index c58d9df2c7a9..cf06010066c6 100644 --- a/patches/server/0229-Add-TNTPrimeEvent.patch +++ b/patches/server/0228-Add-TNTPrimeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add TNTPrimeEvent diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index de27517e13ecb15865aaa83257eaffb41c3eecfc..29683f0236163e5630d771d9409be0c23574a467 100644 +index 666c62d796cae9a70516680e26196f7e02c53918..290d97437e9c593816b4f4c4e738c268be616dc0 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -558,6 +558,11 @@ public class EnderDragon extends Mob implements Enemy { diff --git a/patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0229-Break-up-and-make-tab-spam-limits-configurable.patch similarity index 97% rename from patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch rename to patches/server/0229-Break-up-and-make-tab-spam-limits-configurable.patch index 809ea276c8c6..8ebb5cb69efc 100644 --- a/patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch +++ b/patches/server/0229-Break-up-and-make-tab-spam-limits-configurable.patch @@ -22,7 +22,7 @@ to take the burden of this into their own hand without having to rely on plugins doing unsafe things. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e6b4111ba32906d1b3705b8a2cc06a07956e2891..3cb5bd145a4a719943e9fe4bc40ff7420abdd46d 100644 +index a00f68b058d6d7aa28ce34ad726c5b228e5c2e64..222e9ab6fa6a40f7846451cee256d3dbbac54fde 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -257,6 +257,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0231-Fix-NBT-type-issues.patch b/patches/server/0230-Fix-NBT-type-issues.patch similarity index 95% rename from patches/server/0231-Fix-NBT-type-issues.patch rename to patches/server/0230-Fix-NBT-type-issues.patch index 427a4ad15a77..b33019a3b7a8 100644 --- a/patches/server/0231-Fix-NBT-type-issues.patch +++ b/patches/server/0230-Fix-NBT-type-issues.patch @@ -8,7 +8,7 @@ Addresses two issues: - Allay duplication cooldown is saved and exposed as a long, but loaded as an int diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 7eb84b1aad4f031ad17a461d174b23c213014995..cab5636fe6be9ee7f23ffbd5a399d2aeea1cd538 100644 +index 4973cd6eeda0b484999c8a81d188b01f0fd08cac..5685951b71a8b81c7a71fd93b099b276d535b401 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -295,7 +295,7 @@ public class ExperienceOrb extends Entity { diff --git a/patches/server/0232-Remove-unnecessary-itemmeta-handling.patch b/patches/server/0231-Remove-unnecessary-itemmeta-handling.patch similarity index 93% rename from patches/server/0232-Remove-unnecessary-itemmeta-handling.patch rename to patches/server/0231-Remove-unnecessary-itemmeta-handling.patch index 1a6228aac552..19a56b5c059b 100644 --- a/patches/server/0232-Remove-unnecessary-itemmeta-handling.patch +++ b/patches/server/0231-Remove-unnecessary-itemmeta-handling.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove unnecessary itemmeta handling diff --git a/src/main/java/net/minecraft/network/FriendlyByteBuf.java b/src/main/java/net/minecraft/network/FriendlyByteBuf.java -index 7dcd8d4e4886e1d35adbc604eafabccb5550f1b4..a5bcad412fb1ac3b6a3eee3f4618dc6c1ca66936 100644 +index b9dd91927cb259789ad71b2241024c5fa2586d57..b863249ff7e13cf4939c8961601f0564c62fd661 100644 --- a/src/main/java/net/minecraft/network/FriendlyByteBuf.java +++ b/src/main/java/net/minecraft/network/FriendlyByteBuf.java @@ -649,7 +649,7 @@ public class FriendlyByteBuf extends ByteBuf { diff --git a/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch similarity index 95% rename from patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch rename to patches/server/0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 28ff4b9a1285..542702aaab1e 100644 --- a/patches/server/0233-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/patches/server/0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -26,7 +26,7 @@ index c9e3e104cd051a38e367653dc6c4f969665fc250..45ee0cd242271883412284625230822d protected void tick() { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 536f1380ae3387ac4d062fe2f8b934a8d49905fb..5538e810ef0a68f00043d4e750eb735300d50664 100644 +index 0bb2ed82e8a3dffa9fd9d7aa41685dd50dafac0c..8168a9a3f2b166775a531e7f834710669845d0ae 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1436,6 +1436,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -43,7 +43,7 @@ index 536f1380ae3387ac4d062fe2f8b934a8d49905fb..5538e810ef0a68f00043d4e750eb7353 // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bebbbf9a0bca8ab94dd269d19ebf55622a3c2ef8..a906fda4d5d92054f5c0cea4a8167cdb29287cc3 100644 +index ad2e61c7fd7906477e30e91c826d9ce4fb6bffc0..bbb6abd5a51a0ffef41f2ee38eb6d7a21d1c6c23 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -241,6 +241,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0234-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0233-Add-Early-Warning-Feature-to-WatchDog.patch similarity index 100% rename from patches/server/0234-Add-Early-Warning-Feature-to-WatchDog.patch rename to patches/server/0233-Add-Early-Warning-Feature-to-WatchDog.patch diff --git a/patches/server/0235-Use-ConcurrentHashMap-in-JsonList.patch b/patches/server/0234-Use-ConcurrentHashMap-in-JsonList.patch similarity index 98% rename from patches/server/0235-Use-ConcurrentHashMap-in-JsonList.patch rename to patches/server/0234-Use-ConcurrentHashMap-in-JsonList.patch index 660fa842c204..118f8ba7bbe4 100644 --- a/patches/server/0235-Use-ConcurrentHashMap-in-JsonList.patch +++ b/patches/server/0234-Use-ConcurrentHashMap-in-JsonList.patch @@ -23,7 +23,7 @@ Modified isEmpty to use the isEmpty() method instead of the slightly confusing s The point of this is readability, but does have a side-benefit of a small microptimization diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 49e3252d6af633d69bdf05ce71dc2a1b3d24f05a..6a3961350030e63b27512261402f675c3cd78485 100644 +index b4643717c98193884a43089ec7a7e362b7153d20..af26a2b45cba7083f3bd7ddbbfde5bcfb30f1907 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -634,7 +634,7 @@ public abstract class PlayerList { diff --git a/patches/server/0236-Use-a-Queue-for-Queueing-Commands.patch b/patches/server/0235-Use-a-Queue-for-Queueing-Commands.patch similarity index 100% rename from patches/server/0236-Use-a-Queue-for-Queueing-Commands.patch rename to patches/server/0235-Use-a-Queue-for-Queueing-Commands.patch diff --git a/patches/server/0237-Ability-to-get-block-entities-from-a-chunk-without-s.patch b/patches/server/0236-Ability-to-get-block-entities-from-a-chunk-without-s.patch similarity index 100% rename from patches/server/0237-Ability-to-get-block-entities-from-a-chunk-without-s.patch rename to patches/server/0236-Ability-to-get-block-entities-from-a-chunk-without-s.patch diff --git a/patches/server/0238-Optimize-BlockPosition-helper-methods.patch b/patches/server/0237-Optimize-BlockPosition-helper-methods.patch similarity index 100% rename from patches/server/0238-Optimize-BlockPosition-helper-methods.patch rename to patches/server/0237-Optimize-BlockPosition-helper-methods.patch diff --git a/patches/server/0239-Restore-vanilla-default-mob-spawn-range-and-water-an.patch b/patches/server/0238-Restore-vanilla-default-mob-spawn-range-and-water-an.patch similarity index 100% rename from patches/server/0239-Restore-vanilla-default-mob-spawn-range-and-water-an.patch rename to patches/server/0238-Restore-vanilla-default-mob-spawn-range-and-water-an.patch diff --git a/patches/server/0240-Slime-Pathfinder-Events.patch b/patches/server/0239-Slime-Pathfinder-Events.patch similarity index 100% rename from patches/server/0240-Slime-Pathfinder-Events.patch rename to patches/server/0239-Slime-Pathfinder-Events.patch diff --git a/patches/server/0241-Configurable-speed-for-water-flowing-over-lava.patch b/patches/server/0240-Configurable-speed-for-water-flowing-over-lava.patch similarity index 100% rename from patches/server/0241-Configurable-speed-for-water-flowing-over-lava.patch rename to patches/server/0240-Configurable-speed-for-water-flowing-over-lava.patch diff --git a/patches/server/0242-Optimize-CraftBlockData-Creation.patch b/patches/server/0241-Optimize-CraftBlockData-Creation.patch similarity index 100% rename from patches/server/0242-Optimize-CraftBlockData-Creation.patch rename to patches/server/0241-Optimize-CraftBlockData-Creation.patch diff --git a/patches/server/0243-Optimize-MappedRegistry.patch b/patches/server/0242-Optimize-MappedRegistry.patch similarity index 100% rename from patches/server/0243-Optimize-MappedRegistry.patch rename to patches/server/0242-Optimize-MappedRegistry.patch diff --git a/patches/server/0244-Add-PhantomPreSpawnEvent.patch b/patches/server/0243-Add-PhantomPreSpawnEvent.patch similarity index 100% rename from patches/server/0244-Add-PhantomPreSpawnEvent.patch rename to patches/server/0243-Add-PhantomPreSpawnEvent.patch diff --git a/patches/server/0245-Add-More-Creeper-API.patch b/patches/server/0244-Add-More-Creeper-API.patch similarity index 100% rename from patches/server/0245-Add-More-Creeper-API.patch rename to patches/server/0244-Add-More-Creeper-API.patch diff --git a/patches/server/0246-Inventory-removeItemAnySlot.patch b/patches/server/0245-Inventory-removeItemAnySlot.patch similarity index 100% rename from patches/server/0246-Inventory-removeItemAnySlot.patch rename to patches/server/0245-Inventory-removeItemAnySlot.patch diff --git a/patches/server/0247-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch b/patches/server/0246-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch similarity index 92% rename from patches/server/0247-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch rename to patches/server/0246-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch index 3aab1cd47da5..a05de3dd4cd0 100644 --- a/patches/server/0247-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch +++ b/patches/server/0246-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 982231fcc788b99798e8361a53d77c4ed1920396..717718111a98733401669428fb4c39db979114b3 100644 +index fda8fd0d69a3889909e804798a49c19e2a9d49a6..5f65a43c45058bc4ea204623da82ef6befe8d5b7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -403,7 +403,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0248-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/server/0247-Add-ray-tracing-methods-to-LivingEntity.patch similarity index 93% rename from patches/server/0248-Add-ray-tracing-methods-to-LivingEntity.patch rename to patches/server/0247-Add-ray-tracing-methods-to-LivingEntity.patch index 40d27eb849b4..01cb214d563c 100644 --- a/patches/server/0248-Add-ray-tracing-methods-to-LivingEntity.patch +++ b/patches/server/0247-Add-ray-tracing-methods-to-LivingEntity.patch @@ -5,14 +5,13 @@ Subject: [PATCH] Add ray tracing methods to LivingEntity diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f17d6a208477daeb01b66b2894e871f4071cf3e8..486f22469c3cf7ce302c10072da3f96aa3be0ef3 100644 +index b8c4e7d81b20887e5a05b93a1bbe01e72ff55ba7..5461121145c3cbe10f9ae492885c5aa0977b9049 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3829,6 +3829,20 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3829,6 +3829,19 @@ public abstract class LivingEntity extends Entity implements Attackable { } - // Paper start -+ + // Paper start - Make shield blocking delay configurable + public HitResult getRayTrace(int maxDistance, ClipContext.Fluid fluidCollisionOption) { + if (maxDistance < 1 || maxDistance > 120) { + throw new IllegalArgumentException("maxDistance must be between 1-120"); diff --git a/patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0248-Expose-attack-cooldown-methods-for-Player.patch similarity index 92% rename from patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch rename to patches/server/0248-Expose-attack-cooldown-methods-for-Player.patch index c5862b8e7497..fe6c952b0b51 100644 --- a/patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/server/0248-Expose-attack-cooldown-methods-for-Player.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose attack cooldown methods for Player diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 17016f1ce89555ba10ea96368f5a1d195679a5d4..b6e4fbfdaa46a36e155870190252233eca99d456 100644 +index f0392f2562ee2b65011da556dbe1a8369c5f954c..bebda561ce6fbb6a9dd750852934ca27a04aa034 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2871,6 +2871,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0250-Improve-death-events.patch b/patches/server/0249-Improve-death-events.patch similarity index 97% rename from patches/server/0250-Improve-death-events.patch rename to patches/server/0249-Improve-death-events.patch index 5a98b8f160da..e1bc6ccabd91 100644 --- a/patches/server/0250-Improve-death-events.patch +++ b/patches/server/0249-Improve-death-events.patch @@ -19,7 +19,7 @@ public net.minecraft.world.entity.LivingEntity getDeathSound()Lnet/minecraft/sou public net.minecraft.world.entity.LivingEntity getSoundVolume()F diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0100aafc999cadcfa7a904a812355502379c418d..b2864db793e8d764cf06229d7868fcf80247f938 100644 +index e144adc6e5e2a195174ed7617c29993804ab87ff..b3ad3b459e0ad6db37cde0c7de481202f928ea64 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -248,6 +248,10 @@ public class ServerPlayer extends Player { @@ -80,7 +80,7 @@ index 0100aafc999cadcfa7a904a812355502379c418d..b2864db793e8d764cf06229d7868fcf8 } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 486f22469c3cf7ce302c10072da3f96aa3be0ef3..4df479842f482a8a6a5979c204b6882cd3603e93 100644 +index 5461121145c3cbe10f9ae492885c5aa0977b9049..9808a03ed37708bec0f9c32bd2f1e4cb6afa2551 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -259,6 +259,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -235,7 +235,7 @@ index 486f22469c3cf7ce302c10072da3f96aa3be0ef3..4df479842f482a8a6a5979c204b6882c // CraftBukkit start public int getExpReward() { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index a6b89a12471a8c7277b7a5aa50447ff275a667c6..efef5df4cf720058c0b07ef795cfa6a567113811 100644 +index 524f99eeefb1ab95d1752df2faea76837f2e3787..40becb18c6afae979875b684c1816e84970babb5 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1075,7 +1075,13 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -311,7 +311,7 @@ index bb399f775a5530a01f59332848c8ab9b8eceb2b5..14edfe103e61024b569f33de0b6608f3 public void addAdditionalSaveData(CompoundTag nbt) { super.addAdditionalSaveData(nbt); diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 948ba97e318506dad96e59121297b5bf8340d2e6..810bead2f19de70786027b190137f743a0c40ee7 100644 +index ecce8036e58a9ed1408e110e75980bf77c18779a..ddd512e1d7608ec051fb5adf6ec2c6bbb93f5a9d 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -492,8 +492,10 @@ public class ArmorStand extends LivingEntity { @@ -402,7 +402,7 @@ index 948ba97e318506dad96e59121297b5bf8340d2e6..810bead2f19de70786027b190137f743 this.gameEvent(GameEvent.ENTITY_DIE); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index bd6ac69d97ec1c12bf73e9ef07d39a484a39aad1..ce73a8c652cf95bae62808fc27db2ab852691fd8 100644 +index bebda561ce6fbb6a9dd750852934ca27a04aa034..07076f9216fe904fe0f1f018b7e3862d5aab1398 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2408,7 +2408,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -422,7 +422,7 @@ index bd6ac69d97ec1c12bf73e9ef07d39a484a39aad1..ce73a8c652cf95bae62808fc27db2ab8 public void injectScaledMaxHealth(Collection collection, boolean force) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 5c81eb10e92142d8d4907751edc8c01659d2c62e..10c701eb269b02c763d32c6a0be8fe7b843805c5 100644 +index b297f6eb25192079e8e388d034d4e3ede8d5ab37..3bd92edf2f4e7a63a07bd2bbae002f99484a9069 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -890,9 +890,16 @@ public class CraftEventFactory { diff --git a/patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch b/patches/server/0250-Allow-chests-to-be-placed-with-NBT-data.patch similarity index 100% rename from patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch rename to patches/server/0250-Allow-chests-to-be-placed-with-NBT-data.patch diff --git a/patches/server/0252-Mob-Pathfinding-API.patch b/patches/server/0251-Mob-Pathfinding-API.patch similarity index 100% rename from patches/server/0252-Mob-Pathfinding-API.patch rename to patches/server/0251-Mob-Pathfinding-API.patch diff --git a/patches/server/0253-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch b/patches/server/0252-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch similarity index 100% rename from patches/server/0253-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch rename to patches/server/0252-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch diff --git a/patches/server/0254-Prevent-various-interactions-from-causing-chunk-load.patch b/patches/server/0253-Prevent-various-interactions-from-causing-chunk-load.patch similarity index 98% rename from patches/server/0254-Prevent-various-interactions-from-causing-chunk-load.patch rename to patches/server/0253-Prevent-various-interactions-from-causing-chunk-load.patch index c56e635c3435..7f21373d4dd6 100644 --- a/patches/server/0254-Prevent-various-interactions-from-causing-chunk-load.patch +++ b/patches/server/0253-Prevent-various-interactions-from-causing-chunk-load.patch @@ -40,7 +40,7 @@ index e3d070d46729c023d594699619a4b3f8658edbce..5580a396a56c6e0f364a5368985ee99b return ichunkaccess == null ? false : ichunkaccess.getBlockState(pos).is(this.blockToRemove) && ichunkaccess.getBlockState(pos.above()).isAir() && ichunkaccess.getBlockState(pos.above(2)).isAir(); } diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 5c620989acaff4fdb842944ea2d8ae331699a2b4..a859f02074c698c68713568ed99089e33f38ccca 100644 +index 259ba77dcbc8ed5f7e4015a6683799cc4604dfb8..d259d7b8f7380763e3976f5f20bc01f06ce6901c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -517,7 +517,8 @@ public class EnderMan extends Monster implements NeutralMob { diff --git a/patches/server/0255-Prevent-mob-spawning-from-loading-generating-chunks.patch b/patches/server/0254-Prevent-mob-spawning-from-loading-generating-chunks.patch similarity index 100% rename from patches/server/0255-Prevent-mob-spawning-from-loading-generating-chunks.patch rename to patches/server/0254-Prevent-mob-spawning-from-loading-generating-chunks.patch diff --git a/patches/server/0256-Implement-furnace-cook-speed-multiplier-API.patch b/patches/server/0255-Implement-furnace-cook-speed-multiplier-API.patch similarity index 100% rename from patches/server/0256-Implement-furnace-cook-speed-multiplier-API.patch rename to patches/server/0255-Implement-furnace-cook-speed-multiplier-API.patch diff --git a/patches/server/0257-Honor-EntityAgeable.ageLock.patch b/patches/server/0256-Honor-EntityAgeable.ageLock.patch similarity index 100% rename from patches/server/0257-Honor-EntityAgeable.ageLock.patch rename to patches/server/0256-Honor-EntityAgeable.ageLock.patch diff --git a/patches/server/0258-Configurable-connection-throttle-kick-message.patch b/patches/server/0257-Configurable-connection-throttle-kick-message.patch similarity index 94% rename from patches/server/0258-Configurable-connection-throttle-kick-message.patch rename to patches/server/0257-Configurable-connection-throttle-kick-message.patch index 2e44ed6b6d9d..07b0dea431e7 100644 --- a/patches/server/0258-Configurable-connection-throttle-kick-message.patch +++ b/patches/server/0257-Configurable-connection-throttle-kick-message.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable connection throttle kick message diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 203fc53142bb0c9b6e2d1876fe8dfbe33c42af99..e8cf9eafe0908bc9b716d9b6ead97828a43413ec 100644 +index e68020588ed81fc14ef53a429e5bc86f7685235d..21aafb1ea51769659462d722aa318460b37cbc1c 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -51,7 +51,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL diff --git a/patches/server/0259-Prevent-chunk-loading-from-Fluid-Flowing.patch b/patches/server/0258-Prevent-chunk-loading-from-Fluid-Flowing.patch similarity index 100% rename from patches/server/0259-Prevent-chunk-loading-from-Fluid-Flowing.patch rename to patches/server/0258-Prevent-chunk-loading-from-Fluid-Flowing.patch diff --git a/patches/server/0260-Hook-into-CB-plugin-rewrites.patch b/patches/server/0259-Hook-into-CB-plugin-rewrites.patch similarity index 100% rename from patches/server/0260-Hook-into-CB-plugin-rewrites.patch rename to patches/server/0259-Hook-into-CB-plugin-rewrites.patch diff --git a/patches/server/0261-PreSpawnerSpawnEvent.patch b/patches/server/0260-PreSpawnerSpawnEvent.patch similarity index 100% rename from patches/server/0261-PreSpawnerSpawnEvent.patch rename to patches/server/0260-PreSpawnerSpawnEvent.patch diff --git a/patches/server/0262-Add-LivingEntity-getTargetEntity.patch b/patches/server/0261-Add-LivingEntity-getTargetEntity.patch similarity index 97% rename from patches/server/0262-Add-LivingEntity-getTargetEntity.patch rename to patches/server/0261-Add-LivingEntity-getTargetEntity.patch index 1935f0091eed..51a61c458d4c 100644 --- a/patches/server/0262-Add-LivingEntity-getTargetEntity.patch +++ b/patches/server/0261-Add-LivingEntity-getTargetEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#getTargetEntity diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4df479842f482a8a6a5979c204b6882cd3603e93..0085d4727e9bd1c6f451666e6012b8abcd74d129 100644 +index 9808a03ed37708bec0f9c32bd2f1e4cb6afa2551..ab55d44e505fd50dae0000ce5a999f52f916103f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -116,6 +116,7 @@ import net.minecraft.world.level.storage.loot.LootTable; @@ -16,7 +16,7 @@ index 4df479842f482a8a6a5979c204b6882cd3603e93..0085d4727e9bd1c6f451666e6012b8ab import net.minecraft.world.phys.HitResult; import net.minecraft.world.phys.Vec3; import net.minecraft.world.scores.PlayerTeam; -@@ -3891,6 +3892,38 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3890,6 +3891,38 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.level().clip(raytrace); } diff --git a/patches/server/0263-Add-sun-related-API.patch b/patches/server/0262-Add-sun-related-API.patch similarity index 88% rename from patches/server/0263-Add-sun-related-API.patch rename to patches/server/0262-Add-sun-related-API.patch index d9ec0a0d435c..f675d68b264e 100644 --- a/patches/server/0263-Add-sun-related-API.patch +++ b/patches/server/0262-Add-sun-related-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add sun related API public net.minecraft.world.entity.Mob isSunBurnTick()Z diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 717718111a98733401669428fb4c39db979114b3..fbbad4c209618d1e5994cb5609d29f4bc9c9905c 100644 +index 5f65a43c45058bc4ea204623da82ef6befe8d5b7..5e25cbee42dbd27c97b4732d70225e54a296b80e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -695,6 +695,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -25,7 +25,7 @@ index 717718111a98733401669428fb4c39db979114b3..fbbad4c209618d1e5994cb5609d29f4b public long getGameTime() { return this.world.levelData.getGameTime(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -index c2acbf533b5f3aebe4837512f694fe25abee65d6..74843d1fa344497d35f05d0b04f650edd1e0f3a1 100644 +index 018884ced888fcd03d2fb17b3620f8e6125e67da..0ad9885f939bcb50026d50ed78b970a44772ceb8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java @@ -93,4 +93,11 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { diff --git a/patches/server/0264-Catch-JsonParseException-in-entity-and-block-entity-.patch b/patches/server/0263-Catch-JsonParseException-in-entity-and-block-entity-.patch similarity index 100% rename from patches/server/0264-Catch-JsonParseException-in-entity-and-block-entity-.patch rename to patches/server/0263-Catch-JsonParseException-in-entity-and-block-entity-.patch diff --git a/patches/server/0265-Turtle-API.patch b/patches/server/0264-Turtle-API.patch similarity index 100% rename from patches/server/0265-Turtle-API.patch rename to patches/server/0264-Turtle-API.patch diff --git a/patches/server/0266-Call-player-spectator-target-events-and-improve-impl.patch b/patches/server/0265-Call-player-spectator-target-events-and-improve-impl.patch similarity index 96% rename from patches/server/0266-Call-player-spectator-target-events-and-improve-impl.patch rename to patches/server/0265-Call-player-spectator-target-events-and-improve-impl.patch index 3f4102d44591..beb645363464 100644 --- a/patches/server/0266-Call-player-spectator-target-events-and-improve-impl.patch +++ b/patches/server/0265-Call-player-spectator-target-events-and-improve-impl.patch @@ -19,7 +19,7 @@ spectate the target entity. Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6795bfdbdbd4e548c394e02a0e121b26facab8ea..e4d773356ae8b310908f502d12bab08dc6862e40 100644 +index b3ad3b459e0ad6db37cde0c7de481202f928ea64..6624fd85fc8b5efc22b71f7aa665bd8f62aad7ed 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2085,6 +2085,21 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0267-Add-more-Witch-API.patch b/patches/server/0266-Add-more-Witch-API.patch similarity index 98% rename from patches/server/0267-Add-more-Witch-API.patch rename to patches/server/0266-Add-more-Witch-API.patch index c644efe98fb9..f33788b4715f 100644 --- a/patches/server/0267-Add-more-Witch-API.patch +++ b/patches/server/0266-Add-more-Witch-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add more Witch API public net.minecraft.world.entity.monster.Witch usingTime diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java -index ca24b592273208e61e0e0ba59b7e5a3c11ebf952..580dff41d746d9591f718081d9dfe4ac77e7eeaa 100644 +index f45b46e30e1ad0516c5b380e476bc7dacb91391a..02386e7eabc6669296ce35158fa35a3c88c6b563 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java @@ -160,21 +160,10 @@ public class Witch extends Raider implements RangedAttackMob { diff --git a/patches/server/0268-Check-Drowned-for-Villager-Aggression-Config.patch b/patches/server/0267-Check-Drowned-for-Villager-Aggression-Config.patch similarity index 100% rename from patches/server/0268-Check-Drowned-for-Villager-Aggression-Config.patch rename to patches/server/0267-Check-Drowned-for-Villager-Aggression-Config.patch diff --git a/patches/server/0269-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/server/0268-Add-option-to-prevent-players-from-moving-into-unloa.patch similarity index 98% rename from patches/server/0269-Add-option-to-prevent-players-from-moving-into-unloa.patch rename to patches/server/0268-Add-option-to-prevent-players-from-moving-into-unloa.patch index e8f1192827d9..ef155970a675 100644 --- a/patches/server/0269-Add-option-to-prevent-players-from-moving-into-unloa.patch +++ b/patches/server/0268-Add-option-to-prevent-players-from-moving-into-unloa.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add option to prevent players from moving into unloaded diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index dd2ae4c0e4dad3f7c246357a9b45c832a091a576..6b9a53b244f5eca443697d01cc5938d85be4b99f 100644 +index 222e9ab6fa6a40f7846451cee256d3dbbac54fde..91791fffa52dae34e6ab5e786bce7d0c6d077b73 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -475,9 +475,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0270-Reset-players-airTicks-on-respawn.patch b/patches/server/0269-Reset-players-airTicks-on-respawn.patch similarity index 90% rename from patches/server/0270-Reset-players-airTicks-on-respawn.patch rename to patches/server/0269-Reset-players-airTicks-on-respawn.patch index a99785c81df6..8dbbcde7109b 100644 --- a/patches/server/0270-Reset-players-airTicks-on-respawn.patch +++ b/patches/server/0269-Reset-players-airTicks-on-respawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Reset players airTicks on respawn diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e4d773356ae8b310908f502d12bab08dc6862e40..2119ad9a167ef50f912e8408702f310a61e1527e 100644 +index 6624fd85fc8b5efc22b71f7aa665bd8f62aad7ed..4b163b9f6f6abc89ed62291e8df80d987bdc46e3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2560,6 +2560,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0271-Don-t-sleep-after-profile-lookups-if-not-needed.patch b/patches/server/0270-Don-t-sleep-after-profile-lookups-if-not-needed.patch similarity index 100% rename from patches/server/0271-Don-t-sleep-after-profile-lookups-if-not-needed.patch rename to patches/server/0270-Don-t-sleep-after-profile-lookups-if-not-needed.patch diff --git a/patches/server/0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/patches/server/0271-Improve-Server-Thread-Pool-and-Thread-Priorities.patch similarity index 100% rename from patches/server/0272-Improve-Server-Thread-Pool-and-Thread-Priorities.patch rename to patches/server/0271-Improve-Server-Thread-Pool-and-Thread-Priorities.patch diff --git a/patches/server/0273-Optimize-World-Time-Updates.patch b/patches/server/0272-Optimize-World-Time-Updates.patch similarity index 100% rename from patches/server/0273-Optimize-World-Time-Updates.patch rename to patches/server/0272-Optimize-World-Time-Updates.patch diff --git a/patches/server/0274-Restore-custom-InventoryHolder-support.patch b/patches/server/0273-Restore-custom-InventoryHolder-support.patch similarity index 100% rename from patches/server/0274-Restore-custom-InventoryHolder-support.patch rename to patches/server/0273-Restore-custom-InventoryHolder-support.patch diff --git a/patches/server/0275-Fix-SpongeAbsortEvent-handling.patch b/patches/server/0274-Fix-SpongeAbsortEvent-handling.patch similarity index 100% rename from patches/server/0275-Fix-SpongeAbsortEvent-handling.patch rename to patches/server/0274-Fix-SpongeAbsortEvent-handling.patch diff --git a/patches/server/0276-Don-t-allow-digging-into-unloaded-chunks.patch b/patches/server/0275-Don-t-allow-digging-into-unloaded-chunks.patch similarity index 98% rename from patches/server/0276-Don-t-allow-digging-into-unloaded-chunks.patch rename to patches/server/0275-Don-t-allow-digging-into-unloaded-chunks.patch index 5ed89e343a53..ec543305048a 100644 --- a/patches/server/0276-Don-t-allow-digging-into-unloaded-chunks.patch +++ b/patches/server/0275-Don-t-allow-digging-into-unloaded-chunks.patch @@ -59,7 +59,7 @@ index e3b7441d875b55ffce295c948f3dc867be09e042..32327f639b3cc10444ad122fb3405174 this.level.destroyBlockProgress(this.player.getId(), pos, -1); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6b9a53b244f5eca443697d01cc5938d85be4b99f..b04323c2e8697c2b406bb861b25aa5b0f7032557 100644 +index 91791fffa52dae34e6ab5e786bce7d0c6d077b73..944bb7bf990dbd7198496a45c1babe8ad01e8eee 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1592,6 +1592,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0277-Make-the-default-permission-message-configurable.patch b/patches/server/0276-Make-the-default-permission-message-configurable.patch similarity index 95% rename from patches/server/0277-Make-the-default-permission-message-configurable.patch rename to patches/server/0276-Make-the-default-permission-message-configurable.patch index 3165fc1ca996..c94d157ac726 100644 --- a/patches/server/0277-Make-the-default-permission-message-configurable.patch +++ b/patches/server/0276-Make-the-default-permission-message-configurable.patch @@ -18,7 +18,7 @@ index 0dd48e4098191c8b6e29945d62bc473e9f3a1e77..ae51993e0de706cb62c96795ca9de766 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ed5eafd7d555b4500c8dd70e17401e0f453266dd..04ff773b84eb8870d77b09e25ab72e5a887774d4 100644 +index f90361a27c067d0d8a92fd6af930a0d453b4c2a7..25d059f802a4bdcb7076bca8fa8a587e5de065bd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2807,6 +2807,16 @@ public final class CraftServer implements Server { diff --git a/patches/server/0278-Handle-Large-Packets-disconnecting-client.patch b/patches/server/0277-Handle-Large-Packets-disconnecting-client.patch similarity index 100% rename from patches/server/0278-Handle-Large-Packets-disconnecting-client.patch rename to patches/server/0277-Handle-Large-Packets-disconnecting-client.patch diff --git a/patches/server/0279-force-entity-dismount-during-teleportation.patch b/patches/server/0278-force-entity-dismount-during-teleportation.patch similarity index 95% rename from patches/server/0279-force-entity-dismount-during-teleportation.patch rename to patches/server/0278-force-entity-dismount-during-teleportation.patch index 6a7d014e2a6a..974887a1fd75 100644 --- a/patches/server/0279-force-entity-dismount-during-teleportation.patch +++ b/patches/server/0278-force-entity-dismount-during-teleportation.patch @@ -20,7 +20,7 @@ this is going to be the best soultion all around. Improvements/suggestions welcome! diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a906fda4d5d92054f5c0cea4a8167cdb29287cc3..6f37e4fbadb287d9c099d1cc535c941aaabe1d54 100644 +index bbb6abd5a51a0ffef41f2ee38eb6d7a21d1c6c23..4b9cb1c85ed17250f145e815d5c40cf09b34e4d2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2605,11 +2605,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -72,7 +72,7 @@ index a906fda4d5d92054f5c0cea4a8167cdb29287cc3..6f37e4fbadb287d9c099d1cc535c941a if (this.valid) { Bukkit.getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0085d4727e9bd1c6f451666e6012b8abcd74d129..9e3571220ba3eef5fa950ddd83af13ff45ae38ae 100644 +index ab55d44e505fd50dae0000ce5a999f52f916103f..0290302c2b49b9fb262f8675f90010715fe53c50 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3471,9 +3471,15 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -93,7 +93,7 @@ index 0085d4727e9bd1c6f451666e6012b8abcd74d129..9e3571220ba3eef5fa950ddd83af13ff this.dismountVehicle(entity); } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 0d8261e15a1a66df17727788c387dca8fbe2ae84..76a3e38a49d6ea8cf01604be4da12ad4e4fa3da4 100644 +index 636c8d53e5c07f5d75881113b8cfb366a007a162..18394311d9d0bed5fa1ac09182947375380c7670 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1149,7 +1149,13 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0280-Add-more-Zombie-API.patch b/patches/server/0279-Add-more-Zombie-API.patch similarity index 100% rename from patches/server/0280-Add-more-Zombie-API.patch rename to patches/server/0279-Add-more-Zombie-API.patch diff --git a/patches/server/0281-Book-Size-Limits.patch b/patches/server/0280-Book-Size-Limits.patch similarity index 96% rename from patches/server/0281-Book-Size-Limits.patch rename to patches/server/0280-Book-Size-Limits.patch index 1ff2a7c517fd..d14c8dd2aafe 100644 --- a/patches/server/0281-Book-Size-Limits.patch +++ b/patches/server/0280-Book-Size-Limits.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Book Size Limits Puts some limits on the size of books. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e0954ab93e4b528595fc3be40a30e2e6775bc4a2..2ee2e497f716f54dc8cd3d9b906d7bc2b7106448 100644 +index 944bb7bf990dbd7198496a45c1babe8ad01e8eee..592493efdd799c76c753de825126c4f7b04a3179 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1026,6 +1026,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0282-Add-PlayerConnectionCloseEvent.patch b/patches/server/0281-Add-PlayerConnectionCloseEvent.patch similarity index 98% rename from patches/server/0282-Add-PlayerConnectionCloseEvent.patch rename to patches/server/0281-Add-PlayerConnectionCloseEvent.patch index 73a6fc81331c..db512740f6fa 100644 --- a/patches/server/0282-Add-PlayerConnectionCloseEvent.patch +++ b/patches/server/0281-Add-PlayerConnectionCloseEvent.patch @@ -38,7 +38,7 @@ public net.minecraft.server.network.ServerLoginPacketListenerImpl$State public net.minecraft.server.network.ServerLoginPacketListenerImpl state diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 6fcbf8205e1852d5193a42bfe1154f62ab01e7ad..8870d97194e1389ca747b74b092b1f8fb9090fb0 100644 +index 090a130676de3ab458df6bd1e08f0b755a3f685a..c521e2eab937f90085c4f1a98aab13d46720a07b 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -644,6 +644,26 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0283-Replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0282-Replace-OfflinePlayer-getLastPlayed.patch similarity index 96% rename from patches/server/0283-Replace-OfflinePlayer-getLastPlayed.patch rename to patches/server/0282-Replace-OfflinePlayer-getLastPlayed.patch index 7fa91d0779d2..2b7af6707ec2 100644 --- a/patches/server/0283-Replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/server/0282-Replace-OfflinePlayer-getLastPlayed.patch @@ -16,7 +16,7 @@ intent to remove) and replace it with two new methods, clearly named and documented as to their purpose. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 54297045b5da66827426ae354883a9709d9cdefc..27f0fce3e5e5faec8f2717b5068cb23e2054ce8b 100644 +index 4b163b9f6f6abc89ed62291e8df80d987bdc46e3..0afa8c7c826bb01f8a1139ced76fa599d205e045 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -248,6 +248,7 @@ public class ServerPlayer extends Player { @@ -28,7 +28,7 @@ index 54297045b5da66827426ae354883a9709d9cdefc..27f0fce3e5e5faec8f2717b5068cb23e public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6a3961350030e63b27512261402f675c3cd78485..154881ee9a837fea159246c6a826257bcf7a079a 100644 +index af26a2b45cba7083f3bd7ddbbfde5bcfb30f1907..a1ab652fe6a838f8506c735815894ca16307264c 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 { @@ -106,7 +106,7 @@ index e8490a58dd4d9bc39a5bb2f9fc109526e031b971..5f590575f95eff8bf0cdcafde7dee0e3 public Location getLastDeathLocation() { if (this.getData().contains("LastDeathLocation", 10)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ce73a8c652cf95bae62808fc27db2ab852691fd8..9df9b465df75dd41eabd789e85ee841ed4be092c 100644 +index 07076f9216fe904fe0f1f018b7e3862d5aab1398..f7ec6a6822608c51129c4bb3247179cce16a39c2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -191,6 +191,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch b/patches/server/0283-Workaround-for-vehicle-tracking-issue-on-disconnect.patch similarity index 91% rename from patches/server/0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch rename to patches/server/0283-Workaround-for-vehicle-tracking-issue-on-disconnect.patch index 02430343ae2b..c61cf07b90c0 100644 --- a/patches/server/0284-Workaround-for-vehicle-tracking-issue-on-disconnect.patch +++ b/patches/server/0283-Workaround-for-vehicle-tracking-issue-on-disconnect.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Workaround for vehicle tracking issue on disconnect diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 27f0fce3e5e5faec8f2717b5068cb23e2054ce8b..7c20af6a72603e46b4aec46a079101981eb59c08 100644 +index 0afa8c7c826bb01f8a1139ced76fa599d205e045..4b7aacb6abe20dbac735b8edc2ca3c10ed8bfbe6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1749,6 +1749,13 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0285-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch b/patches/server/0284-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch similarity index 92% rename from patches/server/0285-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch rename to patches/server/0284-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch index 0227c4c45fc6..d80712d1b857 100644 --- a/patches/server/0285-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch +++ b/patches/server/0284-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch @@ -8,7 +8,7 @@ We just add a check to ensure that the CraftPlayer's handle is a ServerPlayer diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 9df9b465df75dd41eabd789e85ee841ed4be092c..9cae7d8a77af303cb509c23efd5541a5e04f54a6 100644 +index f7ec6a6822608c51129c4bb3247179cce16a39c2..0f0956066203f1598997e54b89b23c500951009c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -247,8 +247,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0286-BlockDestroyEvent.patch b/patches/server/0285-BlockDestroyEvent.patch similarity index 96% rename from patches/server/0286-BlockDestroyEvent.patch rename to patches/server/0285-BlockDestroyEvent.patch index fbb7e12f5c04..f9033b6bec0f 100644 --- a/patches/server/0286-BlockDestroyEvent.patch +++ b/patches/server/0285-BlockDestroyEvent.patch @@ -11,7 +11,7 @@ floating in the air. This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 71c2f082091f452cfc74557cd599cf7f080b889b..5d6f45f7ff8f310bf78417aa9bcf8f106a1d80c6 100644 +index 09f2bee26387641191ae7ee3b863ca4ae2106cb4..942b27decf93713b00e28a6360e62c090caa5a01 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -31,6 +31,7 @@ import net.minecraft.nbt.CompoundTag; diff --git a/patches/server/0287-Async-command-map-building.patch b/patches/server/0286-Async-command-map-building.patch similarity index 97% rename from patches/server/0287-Async-command-map-building.patch rename to patches/server/0286-Async-command-map-building.patch index ec0668617ef5..3ab586b43be7 100644 --- a/patches/server/0287-Async-command-map-building.patch +++ b/patches/server/0286-Async-command-map-building.patch @@ -53,7 +53,7 @@ index 5a1accff1a7dc2ab40224ec0952a287cd6099aee..2b722091920116ded43ff54c413d4dd4 event.getPlayer().getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e6b029c8ee05c5e045a7d694a9e8616d6a1ea484..5f377267cc3c72e4d55c29f20ce3cd3eed0e5258 100644 +index bfcb155b1e8b04edfdbd26f4cc3bc2b4a7cbf5ea..06d70213a9f19bbd2a0f22a26af2dbb989bca5ce 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -926,6 +926,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { diff --git a/patches/server/0295-Fire-event-on-GS4-query.patch b/patches/server/0294-Fire-event-on-GS4-query.patch similarity index 100% rename from patches/server/0295-Fire-event-on-GS4-query.patch rename to patches/server/0294-Fire-event-on-GS4-query.patch diff --git a/patches/server/0296-Add-PlayerPostRespawnEvent.patch b/patches/server/0295-Add-PlayerPostRespawnEvent.patch similarity index 95% rename from patches/server/0296-Add-PlayerPostRespawnEvent.patch rename to patches/server/0295-Add-PlayerPostRespawnEvent.patch index f3387169121f..d01259c01b48 100644 --- a/patches/server/0296-Add-PlayerPostRespawnEvent.patch +++ b/patches/server/0295-Add-PlayerPostRespawnEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerPostRespawnEvent diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 63d793ee00b14a12d0dbad15bee579a330f1eb07..89bd3102898af0b178cbb7f8dbe041a05c5845f3 100644 +index 2670d20fce0e1c3e1930f3e4dc18c22b7cc1e0ec..81acbabe942de6f1716e384dc4e9cbd451f0a535 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -751,9 +751,14 @@ public abstract class PlayerList { diff --git a/patches/server/0297-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch b/patches/server/0296-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch similarity index 94% rename from patches/server/0297-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch rename to patches/server/0296-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch index a43c825a0e82..0b46e05dd4d6 100644 --- a/patches/server/0297-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch +++ b/patches/server/0296-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch @@ -6,7 +6,7 @@ Subject: [PATCH] don't go below 0 for pickupDelay, breaks picking up items vanilla checks for == 0 diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 18c9c7c2b0605bee2936fbb084108dd9791f7ebe..314ba941c72a50b479cb634f3337ded3e63a7622 100644 +index e06f4c5b36411dd545982d9f6e3691f89cb04ac5..37ae35b76dc9585c7eaf53dd66e016977ca8f45d 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -140,6 +140,7 @@ public class ItemEntity extends Entity implements TraceableEntity { diff --git a/patches/server/0298-Server-Tick-Events.patch b/patches/server/0297-Server-Tick-Events.patch similarity index 94% rename from patches/server/0298-Server-Tick-Events.patch rename to patches/server/0297-Server-Tick-Events.patch index 2b723b268a30..346295f63307 100644 --- a/patches/server/0298-Server-Tick-Events.patch +++ b/patches/server/0297-Server-Tick-Events.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Server Tick Events Fires event at start and end of a server tick diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1353bc4ddee1bafb76efbe6867f8821acc12a708..609b22f03c60ade8c2c1c7a0b191c2e24526aadf 100644 +index 06d70213a9f19bbd2a0f22a26af2dbb989bca5ce..cef1554db34a1d917fa5c7bbccfe22efd93bebfd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1348,6 +1348,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index dbc13b7eccea5c97bcc6aa1ba0bd807aa34d6805..a3669b4d5833003c98bcf62da89560452565a451 100644 +index 50bdb4596eecf04738817b46a125097bc1d3b45b..1b92cee2f51b844340d213ccfc78d1524a71c9dc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2496,7 +2496,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0357-Don-t-tick-dead-players.patch b/patches/server/0356-Don-t-tick-dead-players.patch similarity index 91% rename from patches/server/0357-Don-t-tick-dead-players.patch rename to patches/server/0356-Don-t-tick-dead-players.patch index 4f181785841f..cb3f8a4849a8 100644 --- a/patches/server/0357-Don-t-tick-dead-players.patch +++ b/patches/server/0356-Don-t-tick-dead-players.patch @@ -7,7 +7,7 @@ Causes sync chunk loads and who knows what all else. This is safe because Spectators are skipped in unloaded chunks too in vanilla. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4c17ed82554311d2a3c9eab7bf58c79044f71664..daedb7b5ef086ccbf091274088170cf7eb331f91 100644 +index 728cc9511c537cab93bdd716235b4fa0c27f29ef..d70316c45bd657243d6c998723f6bb1324b6a880 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -732,7 +732,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0358-Dead-Player-s-shouldn-t-be-able-to-move.patch b/patches/server/0357-Dead-Player-s-shouldn-t-be-able-to-move.patch similarity index 90% rename from patches/server/0358-Dead-Player-s-shouldn-t-be-able-to-move.patch rename to patches/server/0357-Dead-Player-s-shouldn-t-be-able-to-move.patch index d5254786f87a..c0d2a6c8aaea 100644 --- a/patches/server/0358-Dead-Player-s-shouldn-t-be-able-to-move.patch +++ b/patches/server/0357-Dead-Player-s-shouldn-t-be-able-to-move.patch @@ -7,7 +7,7 @@ This fixes a lot of game state issues where packets were delayed for processing due to 1.15's new queue but processed while dead. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 110c751dc108dbdc2fd9fdd25ca07df7acc723e5..4bac05cb48d81dc9776d90502b6f12285b92122b 100644 +index 18394311d9d0bed5fa1ac09182947375380c7670..ca7f6ffdbfc8c796c3a26108f281bef7af560f78 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1161,7 +1161,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0359-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0358-Optimize-Collision-to-not-load-chunks.patch similarity index 97% rename from patches/server/0359-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/0358-Optimize-Collision-to-not-load-chunks.patch index 25b1c57fc4ba..43cbe7752ef5 100644 --- a/patches/server/0359-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/0358-Optimize-Collision-to-not-load-chunks.patch @@ -14,7 +14,7 @@ movement will load only the chunk the player enters anyways and avoids loading massive amounts of surrounding chunks due to large AABB lookups. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 89bd3102898af0b178cbb7f8dbe041a05c5845f3..aae54a44334ca4050b4bf939bdded7ac09d0a242 100644 +index 81acbabe942de6f1716e384dc4e9cbd451f0a535..37b53bfe58689f498a48ad5e0e59d98462ccdd7f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -820,6 +820,7 @@ public abstract class PlayerList { @@ -26,7 +26,7 @@ index 89bd3102898af0b178cbb7f8dbe041a05c5845f3..aae54a44334ca4050b4bf939bdded7ac // CraftBukkit end entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7ca9b581e8719d47bdba2368fc9402ae8eb302c4..1e9819ea185b98a73992bde8c40150d4747ed436 100644 +index 9efddedbe5feebf2f91eb674a9224054dba6cff3..538931a474841e7efae505f5aeae58715108da1b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -240,6 +240,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0360-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0359-Don-t-move-existing-players-to-world-spawn.patch similarity index 93% rename from patches/server/0360-Don-t-move-existing-players-to-world-spawn.patch rename to patches/server/0359-Don-t-move-existing-players-to-world-spawn.patch index 0944cd0345de..3aa820769192 100644 --- a/patches/server/0360-Don-t-move-existing-players-to-world-spawn.patch +++ b/patches/server/0359-Don-t-move-existing-players-to-world-spawn.patch @@ -13,7 +13,7 @@ By skipping this, we avoid potential for a large spike on server start. public net.minecraft.server.level.ServerPlayer fudgeSpawnLocation(Lnet/minecraft/server/level/ServerLevel;)V diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5397b7544470741d75fe3df350cd85ca87acd077..ed2d3b514087f8c2aeec64362ed677fe4494b339 100644 +index d70316c45bd657243d6c998723f6bb1324b6a880..5c3373863bd91682bd7facd3eb57580b33e160b7 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -385,7 +385,7 @@ public class ServerPlayer extends Player { @@ -35,7 +35,7 @@ index 5397b7544470741d75fe3df350cd85ca87acd077..ed2d3b514087f8c2aeec64362ed677fe this.gameMode.setLevel((ServerLevel) world); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index aae54a44334ca4050b4bf939bdded7ac09d0a242..89632b9848fddaaea12f149b50cb9e0b71a951b0 100644 +index 37b53bfe58689f498a48ad5e0e59d98462ccdd7f..201331acd9fae6af27f44c072379c48485b3be07 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -226,6 +226,7 @@ public abstract class PlayerList { diff --git a/patches/server/0361-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/0360-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 100% rename from patches/server/0361-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/server/0360-Optimize-GoalSelector-Goal.Flag-Set-operations.patch diff --git a/patches/server/0362-Improved-Watchdog-Support.patch b/patches/server/0361-Improved-Watchdog-Support.patch similarity index 99% rename from patches/server/0362-Improved-Watchdog-Support.patch rename to patches/server/0361-Improved-Watchdog-Support.patch index 959eae7786bb..426ef801d8f5 100644 --- a/patches/server/0362-Improved-Watchdog-Support.patch +++ b/patches/server/0361-Improved-Watchdog-Support.patch @@ -263,7 +263,7 @@ index 3779e02083fb41e93248aed27a9214be88167e5a..0e2978b6e4f03932c4ebdf1309d20454 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5f81d6f61a3f887613aa10d905eb8ee8f3d843ba..06232d823c099cb1d827491a5cccc435ecae8ffe 100644 +index 201331acd9fae6af27f44c072379c48485b3be07..54a82f30fd8a4712bcf7ffeccab8ce3075f55f83 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -532,7 +532,7 @@ public abstract class PlayerList { @@ -288,7 +288,7 @@ index f5829ae484d93b547a5437b85a9621346384a11b..83701fbfaa56a232593ee8f11a3afb89 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a1982464d25dae5638f02375422a44204b47b9b3..b25c632c8b797c30e90beaf3cedbc13acc2103bb 100644 +index 7cf24513f2e09c72742bdb0d7866103f983027b5..43c5316fde139f92ebe9c0db38ccd8dad0402975 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -912,6 +912,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0363-Optimize-Pathfinding.patch b/patches/server/0362-Optimize-Pathfinding.patch similarity index 100% rename from patches/server/0363-Optimize-Pathfinding.patch rename to patches/server/0362-Optimize-Pathfinding.patch diff --git a/patches/server/0364-Reduce-Either-Optional-allocation.patch b/patches/server/0363-Reduce-Either-Optional-allocation.patch similarity index 100% rename from patches/server/0364-Reduce-Either-Optional-allocation.patch rename to patches/server/0363-Reduce-Either-Optional-allocation.patch diff --git a/patches/server/0365-Reduce-memory-footprint-of-CompoundTag.patch b/patches/server/0364-Reduce-memory-footprint-of-CompoundTag.patch similarity index 100% rename from patches/server/0365-Reduce-memory-footprint-of-CompoundTag.patch rename to patches/server/0364-Reduce-memory-footprint-of-CompoundTag.patch diff --git a/patches/server/0366-Prevent-opening-inventories-when-frozen.patch b/patches/server/0365-Prevent-opening-inventories-when-frozen.patch similarity index 93% rename from patches/server/0366-Prevent-opening-inventories-when-frozen.patch rename to patches/server/0365-Prevent-opening-inventories-when-frozen.patch index 0b9ec25c075d..c800e18d24a3 100644 --- a/patches/server/0366-Prevent-opening-inventories-when-frozen.patch +++ b/patches/server/0365-Prevent-opening-inventories-when-frozen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent opening inventories when frozen diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e8470f0cc918ae20caa9aa4de7a81edf31f2f556..f84be7bff9c054baf5ce0c0183ec986c7d30c352 100644 +index 5c3373863bd91682bd7facd3eb57580b33e160b7..cc2378916009f961fb70d5b4b1bd5bb6867de792 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -701,7 +701,7 @@ public class ServerPlayer extends Player { @@ -14,7 +14,7 @@ index e8470f0cc918ae20caa9aa4de7a81edf31f2f556..f84be7bff9c054baf5ce0c0183ec986c // Paper end - if (!this.level().isClientSide && !this.containerMenu.stillValid(this)) { + if (!this.level().isClientSide && this.containerMenu != this.inventoryMenu && (this.isImmobile() || !this.containerMenu.stillValid(this))) { // Paper - Prevent opening inventories when frozen - this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper + this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason this.containerMenu = this.inventoryMenu; } @@ -1556,7 +1556,7 @@ public class ServerPlayer extends Player { @@ -27,7 +27,7 @@ index e8470f0cc918ae20caa9aa4de7a81edf31f2f556..f84be7bff9c054baf5ce0c0183ec986c this.initMenu(container); return OptionalInt.of(this.containerCounter); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 0d07501bb9e8721771f5c3fd099f022e41a54337..0effc7dfe2c1f2bad7bd00b6a615497d4aa0ba91 100644 +index af6f8d11f0384c353332f5c5bb0967e518deccbe..7afbecd29f0a729e32c5cd50cb03d5404ba03d75 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -325,7 +325,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0367-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0366-Don-t-run-entity-collision-code-if-not-needed.patch similarity index 96% rename from patches/server/0367-Don-t-run-entity-collision-code-if-not-needed.patch rename to patches/server/0366-Don-t-run-entity-collision-code-if-not-needed.patch index 5351a728aafb..dd36b88f5f48 100644 --- a/patches/server/0367-Don-t-run-entity-collision-code-if-not-needed.patch +++ b/patches/server/0366-Don-t-run-entity-collision-code-if-not-needed.patch @@ -12,7 +12,7 @@ The entity's current team collision rule causes them to NEVER collide. Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f9e2d3cba01fcf39bc29dc8b5b5879ddc3add0e5..cf946ea3367b7b7656343b48bf8140efc38d07a2 100644 +index fa496424e48c73672605b2128ec2bd3a6be86889..1782ffbf08d362b98d648c296f99fd2c49e4d8cf 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3398,10 +3398,24 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0368-Implement-Player-Client-Options-API.patch b/patches/server/0367-Implement-Player-Client-Options-API.patch similarity index 98% rename from patches/server/0368-Implement-Player-Client-Options-API.patch rename to patches/server/0367-Implement-Player-Client-Options-API.patch index 385a131978b9..9ea02175362f 100644 --- a/patches/server/0368-Implement-Player-Client-Options-API.patch +++ b/patches/server/0367-Implement-Player-Client-Options-API.patch @@ -87,7 +87,7 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f84be7bff9c054baf5ce0c0183ec986c7d30c352..cb137fe3aaa14fd4862baa0444bc62d818cf9509 100644 +index cc2378916009f961fb70d5b4b1bd5bb6867de792..4de3de5b195698cc804d73307a2483c83f48525e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -386,7 +386,7 @@ public class ServerPlayer extends Player { @@ -136,7 +136,7 @@ index f84be7bff9c054baf5ce0c0183ec986c7d30c352..cb137fe3aaa14fd4862baa0444bc62d8 this.adventure$locale = net.kyori.adventure.translation.Translator.parseLocale(this.language); // Paper this.requestedViewDistance = clientOptions.viewDistance(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 9cae7d8a77af303cb509c23efd5541a5e04f54a6..49862c0338b84924003df85883760317d1ca7aec 100644 +index 0f0956066203f1598997e54b89b23c500951009c..e05d22471a80f5afba4634116aff9dcf636f2501 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -609,6 +609,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0369-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/patches/server/0368-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch similarity index 100% rename from patches/server/0369-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch rename to patches/server/0368-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch diff --git a/patches/server/0370-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch b/patches/server/0369-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch similarity index 97% rename from patches/server/0370-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch rename to patches/server/0369-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch index ea8c91ddbed7..e193b8f31e65 100644 --- a/patches/server/0370-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch +++ b/patches/server/0369-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch @@ -43,7 +43,7 @@ index 37e6b841b3c3d8720a1947065d4fada8c25ec2cf..2785619ed6d04e06a25bfbb2a7fbd99f EntityType entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3221fad96b077a31f6e22277c08e8a20c65afd7a..6ca90fdf844ee6aa1957e17a75a4c070de0381f2 100644 +index 4de3de5b195698cc804d73307a2483c83f48525e..c87e5dd12b5931f9d06bd70a3dd591882a5c1f17 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -271,6 +271,7 @@ public class ServerPlayer extends Player { @@ -55,7 +55,7 @@ index 3221fad96b077a31f6e22277c08e8a20c65afd7a..6ca90fdf844ee6aa1957e17a75a4c070 // CraftBukkit end public boolean isRealPlayer; // Paper diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 06232d823c099cb1d827491a5cccc435ecae8ffe..9ad0a672f3a14c1e36a9f2275fa3e8d2131d543f 100644 +index 54a82f30fd8a4712bcf7ffeccab8ce3075f55f83..2af14ca8c9008da254ddef591f0aff9e4aba8cd5 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -295,6 +295,12 @@ public abstract class PlayerList { diff --git a/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0370-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch similarity index 97% rename from patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch rename to patches/server/0370-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch index a64379317fa6..c3654727937a 100644 --- a/patches/server/0371-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch +++ b/patches/server/0370-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch @@ -10,7 +10,7 @@ Co-authored-by: Wyatt Childers Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9ad0a672f3a14c1e36a9f2275fa3e8d2131d543f..82101511142c266c4374da10ab2561f4412300db 100644 +index 2af14ca8c9008da254ddef591f0aff9e4aba8cd5..805759ae7d92f690cea4c700c914769d39e3c0b6 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -194,7 +194,7 @@ public abstract class PlayerList { @@ -87,7 +87,7 @@ index 9ad0a672f3a14c1e36a9f2275fa3e8d2131d543f..82101511142c266c4374da10ab2561f4 } // Paper end - Entity#getEntitySpawnReason diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bf8ea784c032469c1b88a0cdc954d6e2de5bb3ec..7746d7fb7177885d97d95f065782ee23aa1dfe56 100644 +index 538931a474841e7efae505f5aeae58715108da1b..ee55a63edd38c9919d4dfdc8434ba80f697ba0c0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2336,27 +2336,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0372-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0371-Add-PlayerAttackEntityCooldownResetEvent.patch similarity index 95% rename from patches/server/0372-Add-PlayerAttackEntityCooldownResetEvent.patch rename to patches/server/0371-Add-PlayerAttackEntityCooldownResetEvent.patch index e25e7d250726..dc20899b7c1b 100644 --- a/patches/server/0372-Add-PlayerAttackEntityCooldownResetEvent.patch +++ b/patches/server/0371-Add-PlayerAttackEntityCooldownResetEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerAttackEntityCooldownResetEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cf946ea3367b7b7656343b48bf8140efc38d07a2..d3bb5a6ee350043e7f5c173b9496c1d71b3957b1 100644 +index 1782ffbf08d362b98d648c296f99fd2c49e4d8cf..69f7cdb2c507ba45dc4a689d4f33c059a57907a1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2190,7 +2190,16 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0373-Don-t-fire-BlockFade-on-worldgen-threads.patch b/patches/server/0372-Don-t-fire-BlockFade-on-worldgen-threads.patch similarity index 94% rename from patches/server/0373-Don-t-fire-BlockFade-on-worldgen-threads.patch rename to patches/server/0372-Don-t-fire-BlockFade-on-worldgen-threads.patch index 833140ffaae1..19015797ecdb 100644 --- a/patches/server/0373-Don-t-fire-BlockFade-on-worldgen-threads.patch +++ b/patches/server/0372-Don-t-fire-BlockFade-on-worldgen-threads.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't fire BlockFade on worldgen threads diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index 80e90bae3c05bbaf978a66629d9c4132c22efd1a..a447231db1362ebda706d6069a92be4ead196c21 100644 +index c214a8a72c3fa27eaadc458b10a610e0de7937ec..5e5d0e5b41b5ed90a5f0109b231d468bbc566ae7 100644 --- a/src/main/java/net/minecraft/world/level/block/FireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java @@ -108,6 +108,7 @@ public class FireBlock extends BaseFireBlock { diff --git a/patches/server/0374-Add-phantom-creative-and-insomniac-controls.patch b/patches/server/0373-Add-phantom-creative-and-insomniac-controls.patch similarity index 97% rename from patches/server/0374-Add-phantom-creative-and-insomniac-controls.patch rename to patches/server/0373-Add-phantom-creative-and-insomniac-controls.patch index 5a377dbb7fdb..48cfa06f738d 100644 --- a/patches/server/0374-Add-phantom-creative-and-insomniac-controls.patch +++ b/patches/server/0373-Add-phantom-creative-and-insomniac-controls.patch @@ -29,7 +29,7 @@ index 658393f451e46a93c5665fe3c580aa395ace68d1..ea980c2fdf01988ba25bffc7f8963d77 return true; } diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java -index 94ee9c399f59e0198b4d9bc2a4255e8b821bcd36..8c9caa324402568ce9f55e733f4d14430159347a 100644 +index 5d84bd022714f9726131d2e37d648c444052af9b..76982e0dbab0ecb6f7d4cd8a748af940492a31e7 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java @@ -49,7 +49,7 @@ public class PhantomSpawner implements CustomSpawner { diff --git a/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0374-Fix-item-duplication-and-teleport-issues.patch similarity index 96% rename from patches/server/0375-Fix-item-duplication-and-teleport-issues.patch rename to patches/server/0374-Fix-item-duplication-and-teleport-issues.patch index 761f552a9338..fab99ea43242 100644 --- a/patches/server/0375-Fix-item-duplication-and-teleport-issues.patch +++ b/patches/server/0374-Fix-item-duplication-and-teleport-issues.patch @@ -16,7 +16,7 @@ So even if something NEW comes up, it would be impossible to drop the same item twice because the source was destroyed. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7746d7fb7177885d97d95f065782ee23aa1dfe56..5698555fe780ba96f190f67aa116940efdd993e2 100644 +index ee55a63edd38c9919d4dfdc8434ba80f697ba0c0..be9b96f6b725c53aec5c67c8387305d52da3acfd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2466,11 +2466,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -80,7 +80,7 @@ index 7746d7fb7177885d97d95f065782ee23aa1dfe56..5698555fe780ba96f190f67aa116940e public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4948a7d78ef1e96f325368430068576ce0b990ad..d4bf6c909939c23586acaa7338141aac880217b0 100644 +index 69f7cdb2c507ba45dc4a689d4f33c059a57907a1..4605978cad9cbaa8b55b12c26476f85471658c82 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1705,9 +1705,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -113,7 +113,7 @@ index 4948a7d78ef1e96f325368430068576ce0b990ad..d4bf6c909939c23586acaa7338141aac this.drops = new ArrayList<>(); // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 810bead2f19de70786027b190137f743a0c40ee7..4f9afae94a4cbf28a532e889d441c63df50642d9 100644 +index ddd512e1d7608ec051fb5adf6ec2c6bbb93f5a9d..4e3cf19b83410f3bcacd953a600bf0bed6e45450 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -624,7 +624,7 @@ public class ArmorStand extends LivingEntity { @@ -135,7 +135,7 @@ index 810bead2f19de70786027b190137f743a0c40ee7..4f9afae94a4cbf28a532e889d441c63d } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 502196b8e97f3de3399f5542e76e6dbbd044d3fd..5d28312a03f1571bb44c31f82e27288d02776a5a 100644 +index 7e7427b9b5d44f1a5205011fa427f084bd34165c..77e1ff2725e015b76f6919f3f51d5d56a1e484a0 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -893,6 +893,11 @@ public class CraftEventFactory { diff --git a/patches/server/0376-Villager-Restocks-API.patch b/patches/server/0375-Villager-Restocks-API.patch similarity index 100% rename from patches/server/0376-Villager-Restocks-API.patch rename to patches/server/0375-Villager-Restocks-API.patch diff --git a/patches/server/0377-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0376-Validate-PickItem-Packet-and-kick-for-invalid.patch similarity index 95% rename from patches/server/0377-Validate-PickItem-Packet-and-kick-for-invalid.patch rename to patches/server/0376-Validate-PickItem-Packet-and-kick-for-invalid.patch index 28e4d939a3cf..0fec4603715f 100644 --- a/patches/server/0377-Validate-PickItem-Packet-and-kick-for-invalid.patch +++ b/patches/server/0376-Validate-PickItem-Packet-and-kick-for-invalid.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 00fa6126ca51b6ffdb46b59f07725ffdcca9f20a..18c8dc09b75dbaff13a3cf7ba8594c49ed168c45 100644 +index a191254fa3bd8cdf2cb5446c88c71ed0be6761e8..ebf436e8160c0a6ff064c2b279a47b272e3acb05 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -867,7 +867,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0378-Expose-game-version.patch b/patches/server/0377-Expose-game-version.patch similarity index 100% rename from patches/server/0378-Expose-game-version.patch rename to patches/server/0377-Expose-game-version.patch diff --git a/patches/server/0379-Optimize-Voxel-Shape-Merging.patch b/patches/server/0378-Optimize-Voxel-Shape-Merging.patch similarity index 100% rename from patches/server/0379-Optimize-Voxel-Shape-Merging.patch rename to patches/server/0378-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/server/0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/patches/server/0379-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch similarity index 93% rename from patches/server/0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch rename to patches/server/0379-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch index 7a21f2b2156f..6960e9409945 100644 --- a/patches/server/0380-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch +++ b/patches/server/0379-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch @@ -17,7 +17,7 @@ keeping long lived large direct buffers in cache. Set system properly at server startup if not set already to help protect from this. diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 787dc5702bce3b5171f834ad3177013ac684be72..01b616143562d41aeba7f1340e0affa21d0655b8 100644 +index 78e007b15699fc83a3fcc2e2767209387444f0e5..68b849321757493c64e874b5a2c5d5357a52d698 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -26,6 +26,7 @@ public class Main { diff --git a/patches/server/0381-misc-debugging-dumps.patch b/patches/server/0380-misc-debugging-dumps.patch similarity index 96% rename from patches/server/0381-misc-debugging-dumps.patch rename to patches/server/0380-misc-debugging-dumps.patch index ac8206b2e87a..721ee8807b33 100644 --- a/patches/server/0381-misc-debugging-dumps.patch +++ b/patches/server/0380-misc-debugging-dumps.patch @@ -29,7 +29,7 @@ index 0000000000000000000000000000000000000000..2d5494d2813b773e60ddba6790b750a9 + } +} diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index b27256d251e5db5781197319f79f89cc7638c80b..043541d0c93ed7c06c2c01fe6065dd57dd4c0916 100644 +index 867f22bdeed5f1c3f063a5815a3477d143057152..5c4a89fc7388b8e6ca9ade03fd34a8da79ae0ad9 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -341,7 +341,7 @@ public class Commands { @@ -42,7 +42,7 @@ index b27256d251e5db5781197319f79f89cc7638c80b..043541d0c93ed7c06c2c01fe6065dd57 StackTraceElement[] astacktraceelement = exception.getStackTrace(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3f33f6764665e79433226ebe495bf4cfa8100123..b61dd9730ed56fc0c1a10f9c4e0a9630bb668206 100644 +index 570c163e4a56206d1cf259ee1ffcb6f865f72b1c..1963cf2716879c6d193cbed8de9538094dda9b3d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -918,6 +918,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 02d7282e5d5e1c1334fed55a86bc4c9837e9341f..8209a273b0f4b07195fa20c5be6c80384eb582c2 100644 +index f51453bd3018667aa491c9b64b6f9c4d5c703d7a..e68a29eb0c81285039a1a980d8b9b83f0b1d022e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -727,8 +727,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0410-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0409-Fix-Per-World-Difficulty-Remembering-Difficulty.patch similarity index 94% rename from patches/server/0410-Fix-Per-World-Difficulty-Remembering-Difficulty.patch rename to patches/server/0409-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index 4b93808a2fce..7c9c8be7fe95 100644 --- a/patches/server/0410-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0409-Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -8,7 +8,7 @@ makes it so that the server keeps the last difficulty used instead of restoring the server.properties every single load. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 72dd2986c366a7840116b2426c4e2e6b807d0cfa..77f6b636c8e9935e51d54a47c0ac7a171aab2e60 100644 +index 9829f86520c4028a94f239fb4804fb0f2a2ac6fa..229f5c1d651d903e1c641e67661004a4ee010417 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -828,7 +828,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements Comparable> { @@ -26,7 +26,7 @@ index 3384501f83d445f45aa8233e98c7597daa67b8ef..bd12d372a04172504b3664a8136e534c } // CraftBukkit end diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index c772fa3b7a1276b0b41c45c6e0f5584b9c3a90cd..55c394fb00d0c7caee3a06720c37f04db571fe93 100644 +index 8e0ea79a41136b697f5e58b5cd71f6a9bc3cab73..de7d11baf17d1b6c3d5fb3402d38052f3a28c246 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -64,7 +64,7 @@ public class CommandSourceStack implements ExecutionCommandSource createPacket(int id, FriendlyByteBuf buf) { -+ if (id < 0 || id >= this.idToDeserializer.size()) return null; // Paper - Perf: Optmize exception handling ++ if (id < 0 || id >= this.idToDeserializer.size()) return null; // Paper - Perf: Optimize exception handling Function> function = this.idToDeserializer.get(id); return function != null ? function.apply(buf) : null; } diff --git a/src/main/java/net/minecraft/network/Varint21FrameDecoder.java b/src/main/java/net/minecraft/network/Varint21FrameDecoder.java -index 00c170a16a57f41f881c6b282cba474ce485b34c..e3c30a096aee3ae0df933647a0c3079e3ae02868 100644 +index 00c170a16a57f41f881c6b282cba474ce485b34c..137b9a088c82ce6813bf8a80468675bb4992ce53 100644 --- a/src/main/java/net/minecraft/network/Varint21FrameDecoder.java +++ b/src/main/java/net/minecraft/network/Varint21FrameDecoder.java @@ -39,6 +39,12 @@ public class Varint21FrameDecoder extends ByteToMessageDecoder { } protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List list) { -+ // Paper start - Perf: Optmize exception handling; if channel is not active just discard the packet ++ // Paper start - Perf: Optimize exception handling; if channel is not active just discard the packet + if (!channelHandlerContext.channel().isActive()) { + byteBuf.skipBytes(byteBuf.readableBytes()); + return; + } -+ // Paper end - Perf: Optmize exception handling ++ // Paper end - Perf: Optimize exception handling byteBuf.markReaderIndex(); this.helperBuf.clear(); if (!copyVarint(byteBuf, this.helperBuf)) { diff --git a/patches/server/0432-Fix-some-rails-connecting-improperly.patch b/patches/server/0431-Fix-some-rails-connecting-improperly.patch similarity index 100% rename from patches/server/0432-Fix-some-rails-connecting-improperly.patch rename to patches/server/0431-Fix-some-rails-connecting-improperly.patch diff --git a/patches/server/0433-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch b/patches/server/0432-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch similarity index 100% rename from patches/server/0433-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch rename to patches/server/0432-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch diff --git a/patches/server/0434-Brand-support.patch b/patches/server/0433-Brand-support.patch similarity index 96% rename from patches/server/0434-Brand-support.patch rename to patches/server/0433-Brand-support.patch index 1676a6348e57..40b4914f13a6 100644 --- a/patches/server/0434-Brand-support.patch +++ b/patches/server/0433-Brand-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index fddbd703071ec93d6e3a9ecc1ff17b3e74eb8986..1635cd4a6e03005c1cdfce82bf3ffa657c3c25ed 100644 +index 9b3425857342f4c75ae23aee922d792977aa8c4e..07b711193d58625f3b3017e1b2ecb9dc07cc51a5 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -278,6 +278,7 @@ public class ServerPlayer extends Player { @@ -57,7 +57,7 @@ index b68301f4cf650891140d3be6aebdc7ddf0d2a54f..f453b3023b713877b286e61d3c60b0b3 } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 49862c0338b84924003df85883760317d1ca7aec..e4068c64363a0769df7a01fbf8b04ac17df042fc 100644 +index e05d22471a80f5afba4634116aff9dcf636f2501..878744936f1d2c7bc3ad13bf29d422cc31d0f8d4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3030,6 +3030,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0435-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0434-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 100% rename from patches/server/0435-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/server/0434-Add-playPickupItemAnimation-to-LivingEntity.patch diff --git a/patches/server/0436-Don-t-require-FACING-data.patch b/patches/server/0435-Don-t-require-FACING-data.patch similarity index 100% rename from patches/server/0436-Don-t-require-FACING-data.patch rename to patches/server/0435-Don-t-require-FACING-data.patch diff --git a/patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0436-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 93% rename from patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/server/0436-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index ba3350d57729..38b19523e191 100644 --- a/patches/server/0437-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0436-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 28128e432c3d0a312f9a757c54c9a707c51bc210..27977796215779f6412e618c4b439d756a5bef98 100644 +index d9d4a8df764bce67ee13a542e0b21a5ec7fd8ca7..489db5b6cf82c518806dbabc43ec18fca7e672c4 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2014,9 +2014,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -21,7 +21,7 @@ index 28128e432c3d0a312f9a757c54c9a707c51bc210..27977796215779f6412e618c4b439d75 // if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add this.removeTicketsForSpawn(this.paperConfig().spawn.keepSpawnLoadedRange * 16, prevSpawn); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 95f3b5d9293077e2933b0a0a91bfeb43b6efc6fe..d6d49854eede2b9005725969c6c062168c4b2fce 100644 +index 2d6ef62205ff5a4da72e718f9b33d955a58d805f..bbae63fb0a5f3f61c25f8348b72b1f20dcece00a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -262,12 +262,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0438-Add-moon-phase-API.patch b/patches/server/0437-Add-moon-phase-API.patch similarity index 100% rename from patches/server/0438-Add-moon-phase-API.patch rename to patches/server/0437-Add-moon-phase-API.patch diff --git a/patches/server/0439-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0438-Do-not-let-the-server-load-chunks-from-newer-version.patch similarity index 100% rename from patches/server/0439-Do-not-let-the-server-load-chunks-from-newer-version.patch rename to patches/server/0438-Do-not-let-the-server-load-chunks-from-newer-version.patch diff --git a/patches/server/0440-Prevent-headless-pistons-from-being-created.patch b/patches/server/0439-Prevent-headless-pistons-from-being-created.patch similarity index 95% rename from patches/server/0440-Prevent-headless-pistons-from-being-created.patch rename to patches/server/0439-Prevent-headless-pistons-from-being-created.patch index fcf861a34188..280e6fc1c3a2 100644 --- a/patches/server/0440-Prevent-headless-pistons-from-being-created.patch +++ b/patches/server/0439-Prevent-headless-pistons-from-being-created.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Prevent headless pistons from being created Prevent headless pistons from being created by explosions or tree/mushroom growth. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index b7cf13fe4a0af243c0e76d75439b28d5018dadb9..6a6dd85da2832ba81643031a2e962daf5c27a697 100644 +index cf81854facadaf3c1f860bcaaf69db463a31b0c9..299583b1eb72cfdb4771ba0755fd71f2135484c1 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -206,6 +206,15 @@ public class Explosion { diff --git a/patches/server/0441-Add-BellRingEvent.patch b/patches/server/0440-Add-BellRingEvent.patch similarity index 93% rename from patches/server/0441-Add-BellRingEvent.patch rename to patches/server/0440-Add-BellRingEvent.patch index 35d5f6fb9cd8..02c07c5c36d6 100644 --- a/patches/server/0441-Add-BellRingEvent.patch +++ b/patches/server/0440-Add-BellRingEvent.patch @@ -7,7 +7,7 @@ Add a new event, BellRingEvent, to trigger whenever a player rings a village bell. Passes along the bell block and the player who rang it. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index afccfcab4c1682c47bffe7e3c10a9ec60092e8a0..6595c82741d5d7596fae982ac44461ae9086c064 100644 +index d147f545e80695fc30b458da640f66c7ab809cce..d51af2830fd347d5e55f5fa788df0e5b8481248c 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -366,10 +366,11 @@ public class CraftEventFactory { diff --git a/patches/server/0442-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0441-Add-zombie-targets-turtle-egg-config.patch similarity index 91% rename from patches/server/0442-Add-zombie-targets-turtle-egg-config.patch rename to patches/server/0441-Add-zombie-targets-turtle-egg-config.patch index 51a33c890cee..f3294d3a3301 100644 --- a/patches/server/0442-Add-zombie-targets-turtle-egg-config.patch +++ b/patches/server/0441-Add-zombie-targets-turtle-egg-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add zombie targets turtle egg config diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 79634693899f50e34ffe0898f75e5b31fd11ab53..4208f11e031ea8891d22e2da9e513108f0e2d9f3 100644 +index ac4916a898af8c3584d84088b18e8b38b5eb6b13..47f8e5ecadf79fa66db0248ef23eab1e6524f108 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -109,7 +109,7 @@ public class Zombie extends Monster { diff --git a/patches/server/0443-Buffer-joins-to-world.patch b/patches/server/0442-Buffer-joins-to-world.patch similarity index 95% rename from patches/server/0443-Buffer-joins-to-world.patch rename to patches/server/0442-Buffer-joins-to-world.patch index b1d8c716aa43..e51227cf32f6 100644 --- a/patches/server/0443-Buffer-joins-to-world.patch +++ b/patches/server/0442-Buffer-joins-to-world.patch @@ -8,7 +8,7 @@ the world per tick, this attempts to reduce the impact that join floods has on the server diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 38650109c1d2683a27da5788dc6013d8d0db26ad..337010178db21cb71fde1a5a7b263bf3609a7f4c 100644 +index b99dbe3878df8f67a6920195088c00a01289a79f..19df0fa85080897a36bdbffa8fcef0991dbdd191 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -498,14 +498,29 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0444-Eigencraft-redstone-implementation.patch b/patches/server/0443-Eigencraft-redstone-implementation.patch similarity index 100% rename from patches/server/0444-Eigencraft-redstone-implementation.patch rename to patches/server/0443-Eigencraft-redstone-implementation.patch diff --git a/patches/server/0445-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0444-Fix-hex-colors-not-working-in-some-kick-messages.patch similarity index 100% rename from patches/server/0445-Fix-hex-colors-not-working-in-some-kick-messages.patch rename to patches/server/0444-Fix-hex-colors-not-working-in-some-kick-messages.patch diff --git a/patches/server/0446-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0445-PortalCreateEvent-needs-to-know-its-entity.patch similarity index 96% rename from patches/server/0446-PortalCreateEvent-needs-to-know-its-entity.patch rename to patches/server/0445-PortalCreateEvent-needs-to-know-its-entity.patch index dad05459bff1..0881951f2b68 100644 --- a/patches/server/0446-PortalCreateEvent-needs-to-know-its-entity.patch +++ b/patches/server/0445-PortalCreateEvent-needs-to-know-its-entity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PortalCreateEvent needs to know its entity diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index c5e36e7e96902fc0e8e9bb409907c6424cf223bd..761a46c21aaddcd43b4c33f477658605648127e9 100644 +index 556d8d395df3660ec7923c6814bc281c5fce442f..b4f2b75960674e81c8189dc908523c56ae2e5079 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -478,7 +478,7 @@ public final class ItemStack { @@ -52,7 +52,7 @@ index e707553bbddf84bc48ec7186da00c3eb0632946d..91400c16b8bd8953265bf37ec1cd34ac } diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index 8fce3ad36a6ee8166f4abd9e0e369b641d487af9..0006aec00ab708b1906fbb87d79a9506397c9226 100644 +index 5e5d0e5b41b5ed90a5f0109b231d468bbc566ae7..b1e9ea9ece5ef8ecbe2ed919fda8e1153724dc93 100644 --- a/src/main/java/net/minecraft/world/level/block/FireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java @@ -14,6 +14,7 @@ import net.minecraft.server.level.ServerLevel; @@ -79,7 +79,7 @@ index 8fce3ad36a6ee8166f4abd9e0e369b641d487af9..0006aec00ab708b1906fbb87d79a9506 private static int getFireTickDelay(RandomSource random) { diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 79ff216e473ebc4bf7ab3ade42b0fa224f7e4c19..b144bf37fc4ee93b77d4bbef750b2531ebfef813 100644 +index 2d1062d2b0412180cc08765ecf9b0a071983c06a..d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -43,6 +43,7 @@ import net.minecraft.world.item.DyeColor; diff --git a/patches/server/0447-Add-more-Evoker-API.patch b/patches/server/0446-Add-more-Evoker-API.patch similarity index 100% rename from patches/server/0447-Add-more-Evoker-API.patch rename to patches/server/0446-Add-more-Evoker-API.patch diff --git a/patches/server/0448-Add-methods-to-get-translation-keys.patch b/patches/server/0447-Add-methods-to-get-translation-keys.patch similarity index 100% rename from patches/server/0448-Add-methods-to-get-translation-keys.patch rename to patches/server/0447-Add-methods-to-get-translation-keys.patch diff --git a/patches/server/0449-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0448-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/server/0449-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/server/0448-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/server/0450-Cache-block-data-strings.patch b/patches/server/0449-Cache-block-data-strings.patch similarity index 97% rename from patches/server/0450-Cache-block-data-strings.patch rename to patches/server/0449-Cache-block-data-strings.patch index 1dcf3e688e1a..0f2424d33d10 100644 --- a/patches/server/0450-Cache-block-data-strings.patch +++ b/patches/server/0449-Cache-block-data-strings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cache block data strings diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1b67fbad7c14186e70919946938a512950077635..eb77196548f5cac77d0814f3523c35074d57fd6c 100644 +index 08e3f07c4547f8fa7b571ecef7436ba1fbee578a..2600be3ec00a1ba8cff5f03c8e3f7a06a05bbeaf 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2134,6 +2134,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { @@ -25,7 +25,7 @@ index 337010178db21cb71fde1a5a7b263bf3609a7f4c..0bc07a1748a5a979c6f6404c620331c3 Connection.LOGGER.debug("Failed to sent packet", throwable); if (this.getSending() == PacketFlow.CLIENTBOUND) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1635cd4a6e03005c1cdfce82bf3ffa657c3c25ed..ea38d4eb1b4f98ba230ce44deedfd5cb2065edac 100644 +index 07b711193d58625f3b3017e1b2ecb9dc07cc51a5..94ddc704114af810a3f9c858863e10b5a2b87edd 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -279,6 +279,7 @@ public class ServerPlayer extends Player { @@ -49,11 +49,11 @@ index f453b3023b713877b286e61d3c60b0b3cfce2cdd..825b8f541fe3f5e4cb53f465232c1939 this.connection.disconnect(ichatbasecomponent); })); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a50c8728f6ece2ab1f08cacb64cf98790b8a6871..1639c7dda7a4eb29cff489b49590152029d89ea3 100644 +index f68691542e57da7866253c43251c10235ebc57a0..fdfa2fe6a2564a963dfabff3f9a49ca26c71d2be 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -579,7 +579,7 @@ public abstract class PlayerList { - entityplayer.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DISCONNECT); // Paper + entityplayer.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.DISCONNECT); // Paper - Inventory close reason } - PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName()))); // Paper - Adventure diff --git a/patches/server/0477-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0476-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/server/0477-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0476-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/server/0478-Expose-world-spawn-angle.patch b/patches/server/0477-Expose-world-spawn-angle.patch similarity index 91% rename from patches/server/0478-Expose-world-spawn-angle.patch rename to patches/server/0477-Expose-world-spawn-angle.patch index c454e5988f5c..a4e4c3ef85d0 100644 --- a/patches/server/0478-Expose-world-spawn-angle.patch +++ b/patches/server/0477-Expose-world-spawn-angle.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose world spawn angle diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 35d9aae5ae0618e6509a3d452e0609326e2737c0..f81ca5918b43eb9ac74925988abcd0cfc65fe3d3 100644 +index fdfa2fe6a2564a963dfabff3f9a49ca26c71d2be..711956432c421d812b5e0d37834ce4cd276cea06 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -849,7 +849,7 @@ public abstract class PlayerList { diff --git a/patches/server/0479-Add-Destroy-Speed-API.patch b/patches/server/0478-Add-Destroy-Speed-API.patch similarity index 93% rename from patches/server/0479-Add-Destroy-Speed-API.patch rename to patches/server/0478-Add-Destroy-Speed-API.patch index 21dcb0d34af1..c14becf50554 100644 --- a/patches/server/0479-Add-Destroy-Speed-API.patch +++ b/patches/server/0478-Add-Destroy-Speed-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add Destroy Speed API Co-authored-by: Jake Potrebic diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index 5a18ca08fe9e2b26bc9e5a01c7afed365e02a1b7..f75455bf199258fa7097daf777d28ff672039fa2 100644 +index a9a69191895ba2f66b133c162d1b31b1dfc73101..20dcbea3bb06e637a88d81ed09138b57797e270f 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java @@ -703,4 +703,19 @@ public class CraftBlockData implements BlockData { diff --git a/patches/server/0480-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0479-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 93% rename from patches/server/0480-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0479-Fix-Player-spawnParticle-x-y-z-precision-loss.patch index 8ac0f729ad9d..af3c8f43f2d3 100644 --- a/patches/server/0480-Fix-Player-spawnParticle-x-y-z-precision-loss.patch +++ b/patches/server/0479-Fix-Player-spawnParticle-x-y-z-precision-loss.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e4068c64363a0769df7a01fbf8b04ac17df042fc..ba30c5e17a294cee9f408fdd4e31849c0e5d28ed 100644 +index 878744936f1d2c7bc3ad13bf29d422cc31d0f8d4..bbe18e0342ad68c844f095d3b6413929adc18ab5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2593,7 +2593,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0481-Add-LivingEntity-clearActiveItem.patch b/patches/server/0480-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/server/0481-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0480-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/server/0482-Add-PlayerItemCooldownEvent.patch b/patches/server/0481-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0482-Add-PlayerItemCooldownEvent.patch rename to patches/server/0481-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0483-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0482-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0483-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0482-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0484-More-lightning-API.patch b/patches/server/0483-More-lightning-API.patch similarity index 100% rename from patches/server/0484-More-lightning-API.patch rename to patches/server/0483-More-lightning-API.patch diff --git a/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0484-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 96% rename from patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0484-Climbing-should-not-bypass-cramming-gamerule.patch index ed9695b64c2c..f5a8e23a0f74 100644 --- a/patches/server/0485-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0484-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 79a1f55dcdb3186b4ab3e628ac652abf362a8cab..d5d006756270025e16c1ab75062ece9b8ae384b1 100644 +index c359ba2c20a5f1a63a8342ba593ba51dc8daa905..b7a0fb1d6500d0a0d6734726484b04a084ce757c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2063,6 +2063,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -44,7 +44,7 @@ index c9c7833755af3c7bef1d40f2ca425cbec59efa68..75cdddbfbbc4c0c521194dde27ba5f5d } else if (entity.level().isClientSide && (!(entity1 instanceof Player) || !((Player) entity1).isLocalPlayer())) { return false; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 87b010d5b0ce405e64092638108e4d64ad15339b..0568dd1a885f06f7fd85419a8ec7429c7fec8aba 100644 +index be239cce5b4d326da46bcf63394d1bc03f2a9bb6..f4050168502e714f530c249d4730525c06958f6b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3426,7 +3426,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -116,7 +116,7 @@ index 6b7453281e32aae20778f26b4098df418401c45b..8fc65fd7347340a89dba0b9839497aad } diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 4f9afae94a4cbf28a532e889d441c63df50642d9..e29d1801f15c4c5680b683783e97a7aae3da753e 100644 +index 4e3cf19b83410f3bcacd953a600bf0bed6e45450..e3412f9dd86dddd241bea8f6dcaeed77a7e67f08 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -343,7 +343,7 @@ public class ArmorStand extends LivingEntity { diff --git a/patches/server/0486-Add-missing-default-perms-for-commands.patch b/patches/server/0485-Add-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0486-Add-missing-default-perms-for-commands.patch rename to patches/server/0485-Add-missing-default-perms-for-commands.patch diff --git a/patches/server/0487-Add-PlayerShearBlockEvent.patch b/patches/server/0486-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0487-Add-PlayerShearBlockEvent.patch rename to patches/server/0486-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0488-Limit-recipe-packets.patch b/patches/server/0487-Limit-recipe-packets.patch similarity index 96% rename from patches/server/0488-Limit-recipe-packets.patch rename to patches/server/0487-Limit-recipe-packets.patch index 707685d4a123..ad49c3d49c61 100644 --- a/patches/server/0488-Limit-recipe-packets.patch +++ b/patches/server/0487-Limit-recipe-packets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Limit recipe packets diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 56aa8de4bdfbf7a26d9838b2a557458ce40b9d01..f6413041358cf52e51efeaac88d13030258fa678 100644 +index da28ef2db1b96a79ffae87518b8c77647f3f13df..1f51d1e6fb85a73ed6c046a5dd32c27b43f9d63b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -258,6 +258,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0489-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0488-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0489-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0488-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0490-Player-Chunk-Load-Unload-Events.patch b/patches/server/0489-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/server/0490-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0489-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/server/0491-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0490-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0491-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0490-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0492-Expose-LivingEntity-hurt-direction.patch b/patches/server/0491-Expose-LivingEntity-hurt-direction.patch similarity index 92% rename from patches/server/0492-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0491-Expose-LivingEntity-hurt-direction.patch index 998fc4558ca8..896e176539c8 100644 --- a/patches/server/0492-Expose-LivingEntity-hurt-direction.patch +++ b/patches/server/0491-Expose-LivingEntity-hurt-direction.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose LivingEntity hurt direction diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 4bac05cb48d81dc9776d90502b6f12285b92122b..2957b3929c1e92af1b1a2636b83b757a0fbc789d 100644 +index ca7f6ffdbfc8c796c3a26108f281bef7af560f78..07e15c65bf52725b6f63c89ae421afd3d95ffd87 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -178,7 +178,7 @@ public abstract class Player extends LivingEntity { @@ -18,7 +18,7 @@ index 4bac05cb48d81dc9776d90502b6f12285b92122b..2957b3929c1e92af1b1a2636b83b757a public boolean affectsSpawning = true; // Paper end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 6d67df9ae039c7e803c3fe6207e59923bd7be218..cdbd8d7d1c23809a7345f0c3b0c7f9356be47900 100644 +index 93644aefd2e6c97eca2735812b2b7b4bd039cfb5..40f848d117c1a4f4fc2f11861c5f142071d56977 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -126,6 +126,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0493-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0492-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 91% rename from patches/server/0493-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0492-Add-OBSTRUCTED-reason-to-BedEnterResult.patch index bc839e262d5a..21f0a261e4f6 100644 --- a/patches/server/0493-Add-OBSTRUCTED-reason-to-BedEnterResult.patch +++ b/patches/server/0492-Add-OBSTRUCTED-reason-to-BedEnterResult.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add OBSTRUCTED reason to BedEnterResult diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6595c82741d5d7596fae982ac44461ae9086c064..5b047c46a4d3f0c7aca7ceb562f8e429e4f498fc 100644 +index d51af2830fd347d5e55f5fa788df0e5b8481248c..650ff96dc5d2b690520d2f2eb91d25bdf182e22e 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -301,6 +301,10 @@ public class CraftEventFactory { diff --git a/patches/server/0494-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch b/patches/server/0493-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch similarity index 93% rename from patches/server/0494-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch rename to patches/server/0493-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch index 6d784edade6d..50044a83423e 100644 --- a/patches/server/0494-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch +++ b/patches/server/0493-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix crash from invalid ingredient lists in diff --git a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java -index 66b7a2c9a7dc18a98bf2c3aac863a10cbc3ae9f9..1ec236f6c141c28a26658f6a0c43df4ab2ec2f7a 100644 +index ddc002f269527201724457c0b820788200441e0c..9bc5a9592cabe087effc03e5347ea1d75794960b 100644 --- a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java @@ -261,7 +261,11 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa diff --git a/patches/server/0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/0494-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch similarity index 99% rename from patches/server/0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch rename to patches/server/0494-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch index 88bac3edc670..23c6573d82af 100644 --- a/patches/server/0495-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch +++ b/patches/server/0494-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add PlayerTradeEvent and PlayerPurchaseEvent Co-authored-by: Alexander diff --git a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java -index 1ec236f6c141c28a26658f6a0c43df4ab2ec2f7a..c3b100b8d1068b2a77a344de7fcd205a1c36e5a7 100644 +index 9bc5a9592cabe087effc03e5347ea1d75794960b..4e6c2f6b2e54a4c126e9a026b9cad05ce835ad66 100644 --- a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java @@ -137,11 +137,24 @@ public abstract class AbstractVillager extends AgeableMob implements InventoryCa diff --git a/patches/server/0496-Add-TargetHitEvent.patch b/patches/server/0495-Add-TargetHitEvent.patch similarity index 100% rename from patches/server/0496-Add-TargetHitEvent.patch rename to patches/server/0495-Add-TargetHitEvent.patch diff --git a/patches/server/0497-MC-4-Fix-item-position-desync.patch b/patches/server/0496-MC-4-Fix-item-position-desync.patch similarity index 96% rename from patches/server/0497-MC-4-Fix-item-position-desync.patch rename to patches/server/0496-MC-4-Fix-item-position-desync.patch index 0d7cd7df6831..ad0abd54ba8f 100644 --- a/patches/server/0497-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0496-MC-4-Fix-item-position-desync.patch @@ -28,7 +28,7 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..3c4ac79c094dc2fff7de94150a34b7bf public Vec3 decode(long x, long y, long z) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d5d006756270025e16c1ab75062ece9b8ae384b1..c81f7a4637dd5c83c5527b1052fb58a6055e5b09 100644 +index b7a0fb1d6500d0a0d6734726484b04a084ce757c..7472e3aba473afe474ec0928d3cd1166bb59d0b2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4283,6 +4283,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0498-Additional-Block-Material-API.patch b/patches/server/0497-Additional-Block-Material-API.patch similarity index 100% rename from patches/server/0498-Additional-Block-Material-API.patch rename to patches/server/0497-Additional-Block-Material-API.patch diff --git a/patches/server/0499-Fix-harming-potion-dupe.patch b/patches/server/0498-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0499-Fix-harming-potion-dupe.patch rename to patches/server/0498-Fix-harming-potion-dupe.patch diff --git a/patches/server/0500-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/server/0499-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/server/0500-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/server/0499-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/server/0501-Cache-burn-durations.patch b/patches/server/0500-Cache-burn-durations.patch similarity index 100% rename from patches/server/0501-Cache-burn-durations.patch rename to patches/server/0500-Cache-burn-durations.patch diff --git a/patches/server/0502-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0501-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/server/0502-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0501-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/server/0503-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0502-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 100% rename from patches/server/0503-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/server/0502-Fix-Not-a-string-Map-Conversion-spam.patch diff --git a/patches/server/0504-Add-PlayerFlowerPotManipulateEvent.patch b/patches/server/0503-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0504-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0503-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0504-Fix-interact-event-not-being-called-sometimes.patch similarity index 97% rename from patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch rename to patches/server/0504-Fix-interact-event-not-being-called-sometimes.patch index f031bbf69f02..f2c474f4449e 100644 --- a/patches/server/0505-Fix-interact-event-not-being-called-sometimes.patch +++ b/patches/server/0504-Fix-interact-event-not-being-called-sometimes.patch @@ -11,7 +11,7 @@ Subject: [PATCH] Fix interact event not being called sometimes Co-authored-by: Moulberry diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a3715ab0d5f7ae33ba64e69b391e12a00b2e59e9..54ca7e759897c054127e8532b9df62dca33b8e9d 100644 +index 1f51d1e6fb85a73ed6c046a5dd32c27b43f9d63b..e27395ff1b8e4546877c42f1df5ba836c11cdb6e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1760,7 +1760,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0506-Zombie-API-breaking-doors.patch b/patches/server/0505-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0506-Zombie-API-breaking-doors.patch rename to patches/server/0505-Zombie-API-breaking-doors.patch diff --git a/patches/server/0507-Fix-nerfed-slime-when-splitting.patch b/patches/server/0506-Fix-nerfed-slime-when-splitting.patch similarity index 90% rename from patches/server/0507-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0506-Fix-nerfed-slime-when-splitting.patch index 387c55135a9c..400295b015aa 100644 --- a/patches/server/0507-Fix-nerfed-slime-when-splitting.patch +++ b/patches/server/0506-Fix-nerfed-slime-when-splitting.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix nerfed slime when splitting diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index fa014c04cc51a55345a1c50098f486161051741d..a89dec53d68579271d2a259e1a53537262bd0df6 100644 +index ca3bf718336ef02d379c0ec670f62fafb1600153..3752ff83c91be55e8a5e7c81b75409d64a8aafde 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java @@ -243,6 +243,7 @@ public class Slime extends Mob implements Enemy { diff --git a/patches/server/0508-Add-EntityLoadCrossbowEvent.patch b/patches/server/0507-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0508-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0507-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0509-Add-WorldGameRuleChangeEvent.patch b/patches/server/0508-Add-WorldGameRuleChangeEvent.patch similarity index 98% rename from patches/server/0509-Add-WorldGameRuleChangeEvent.patch rename to patches/server/0508-Add-WorldGameRuleChangeEvent.patch index 7780bdbe4f6e..78f64f78baa4 100644 --- a/patches/server/0509-Add-WorldGameRuleChangeEvent.patch +++ b/patches/server/0508-Add-WorldGameRuleChangeEvent.patch @@ -64,7 +64,7 @@ index 334001cb749600c973c82391e1c11f0e40bd2dfb..f3cdf1fa7731eb7bb1cb89aa6a37204d public int get() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 6a6bdc23767d4b0413352eda860f3fd3076f492e..a99d7a75ce12ffb49a6489044db74d18080b2b35 100644 +index bbae63fb0a5f3f61c25f8348b72b1f20dcece00a..f62cec4122b384603ae5d3ad6f6134eff2d703fe 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1930,8 +1930,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0510-Add-ServerResourcesReloadedEvent.patch b/patches/server/0509-Add-ServerResourcesReloadedEvent.patch similarity index 97% rename from patches/server/0510-Add-ServerResourcesReloadedEvent.patch rename to patches/server/0509-Add-ServerResourcesReloadedEvent.patch index 06aa0254ca95..5eb5aa8de0ab 100644 --- a/patches/server/0510-Add-ServerResourcesReloadedEvent.patch +++ b/patches/server/0509-Add-ServerResourcesReloadedEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ServerResourcesReloadedEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7d08e0750db1653685d31f1595593943c65770a1..7dfc7a01f2604cb9a5e305a689ecfdeea35f7a31 100644 +index bb2de4fafa5a21c7dbf71dbad4bd01d0e6ece36f..563dc53b10389f106f310d9c9ecfe33f7e701553 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2094,7 +2094,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java -index 70ecc3f673ebd56b65ad901e10f40c28368cbfac..a5763abd3137e993ec856874b8fe7ef82dd6f570 100644 +index e40d9dbdbe5359c38af6d764d01c9be422654aaa..4924993fab57bcf72a5d75cc2f7e6bed4f9f511c 100644 --- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java +++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java @@ -63,7 +63,7 @@ public class StonecutterMenu extends AbstractContainerMenu { diff --git a/patches/server/0531-Expand-EntityUnleashEvent.patch b/patches/server/0530-Expand-EntityUnleashEvent.patch similarity index 98% rename from patches/server/0531-Expand-EntityUnleashEvent.patch rename to patches/server/0530-Expand-EntityUnleashEvent.patch index 7753ca31d79a..d8f093006b07 100644 --- a/patches/server/0531-Expand-EntityUnleashEvent.patch +++ b/patches/server/0530-Expand-EntityUnleashEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand EntityUnleashEvent diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 3da1debb3ad884d9ba2f8ebea52643e8fcb3a747..c64c8efc7fcf77a78c7807bf8def32cbd748b84d 100644 +index 321076a70653b5b499eb56ce3d9b2b0a4a8b92dc..74004b78673e81218b44097eea89a79217e005a6 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1305,12 +1305,15 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -122,7 +122,7 @@ index 16784fcc853e23689a854e7dc6c03ed8182a164e..006aba8bbb34a0d45ef626a1d299e819 flag1 = true; } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 3fef79f0e3b8a05b11b77802b80acc8e5c584653..8761bb7b61d322bc1e29d217631a9d2c70e5bcc4 100644 +index 5bc8991249520139c6646736bf210440922f24da..74d018a0184daf7535f315e65f54b5d2152ad58b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1637,8 +1637,10 @@ public class CraftEventFactory { diff --git a/patches/server/0532-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0531-Reset-shield-blocking-on-dimension-change.patch similarity index 90% rename from patches/server/0532-Reset-shield-blocking-on-dimension-change.patch rename to patches/server/0531-Reset-shield-blocking-on-dimension-change.patch index 909fcb71e2f6..06243f3ecf52 100644 --- a/patches/server/0532-Reset-shield-blocking-on-dimension-change.patch +++ b/patches/server/0531-Reset-shield-blocking-on-dimension-change.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Reset shield blocking on dimension change diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ff75234d76e4f6a939841c982a6fc3e33b36ea61..468d96f4b1e83d81fec8997557964931c7512a35 100644 +index 94ddc704114af810a3f9c858863e10b5a2b87edd..c9ac912c5cdd5d2aeb09154b224386fb73dfbc69 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1247,6 +1247,11 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0533-Add-DragonEggFormEvent.patch b/patches/server/0532-Add-DragonEggFormEvent.patch similarity index 96% rename from patches/server/0533-Add-DragonEggFormEvent.patch rename to patches/server/0532-Add-DragonEggFormEvent.patch index c2dce8ce18e8..c55507f8cd8e 100644 --- a/patches/server/0533-Add-DragonEggFormEvent.patch +++ b/patches/server/0532-Add-DragonEggFormEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add DragonEggFormEvent diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 3c5e18a5d136917c65bbfe1311c881d1b8bbd164..5ba7bf72f08980b1c16240a5376ad8c3c9379100 100644 +index 87a8a888536203070bcecc0f477e92e666df2c2a..5b14d63e7c354cd51d67ddc045cc86a0f7b36811 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -407,8 +407,22 @@ public class EndDragonFight { diff --git a/patches/server/0534-Add-EntityMoveEvent.patch b/patches/server/0533-Add-EntityMoveEvent.patch similarity index 95% rename from patches/server/0534-Add-EntityMoveEvent.patch rename to patches/server/0533-Add-EntityMoveEvent.patch index 6b7f95d0d9ab..e6d6cec8ad39 100644 --- a/patches/server/0534-Add-EntityMoveEvent.patch +++ b/patches/server/0533-Add-EntityMoveEvent.patch @@ -17,7 +17,7 @@ index 563dc53b10389f106f310d9c9ecfe33f7e701553..b0e0c955e9b5c92d4a8e8d55149d5e81 this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a45b7a9c3e12236ba5103d4281c9b73997698a0d..b7d227015abeaed324b6b28a7ff51f07c68e704c 100644 +index f059ba5cfc0a3e12ea4b1b3554d85170fe782fff..186a4ea81212ba9a0c928de3226dd25fac1f4252 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -29,7 +29,7 @@ index a45b7a9c3e12236ba5103d4281c9b73997698a0d..b7d227015abeaed324b6b28a7ff51f07 @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0568dd1a885f06f7fd85419a8ec7429c7fec8aba..37c348d5b31f806b418a29dc4f8eb0fa1c7d1a4c 100644 +index f4050168502e714f530c249d4730525c06958f6b..f0409e77e2bfb4463fce9f4cbbf1233589c102ea 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3361,6 +3361,20 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0534-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 92% rename from patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0534-added-option-to-disable-pathfinding-updates-on-block.patch index f6373a529681..f60db1c08130 100644 --- a/patches/server/0535-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0534-added-option-to-disable-pathfinding-updates-on-block.patch @@ -5,7 +5,7 @@ Subject: [PATCH] added option to disable pathfinding updates on block changes diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b7d227015abeaed324b6b28a7ff51f07c68e704c..d6e8950af45578375b988158d98554c7d2f4f0a9 100644 +index 186a4ea81212ba9a0c928de3226dd25fac1f4252..b3d5d0dc5671f3c2bb41263ef52951da5c87ed74 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1657,6 +1657,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0536-Inline-shift-direction-fields.patch b/patches/server/0535-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0536-Inline-shift-direction-fields.patch rename to patches/server/0535-Inline-shift-direction-fields.patch diff --git a/patches/server/0537-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0536-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 95% rename from patches/server/0537-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0536-Allow-adding-items-to-BlockDropItemEvent.patch index 0d056ea3be4b..5305d7daabf1 100644 --- a/patches/server/0537-Allow-adding-items-to-BlockDropItemEvent.patch +++ b/patches/server/0536-Allow-adding-items-to-BlockDropItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow adding items to BlockDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 8761bb7b61d322bc1e29d217631a9d2c70e5bcc4..4caddfe884748543f1153dbf066bb2d3f4cd78d4 100644 +index 74d018a0184daf7535f315e65f54b5d2152ad58b..2da51dc36e21e45ecc3cbbe357947f8359e538eb 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -450,13 +450,30 @@ public class CraftEventFactory { diff --git a/patches/server/0538-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0537-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0538-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0537-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0539-living-entity-allow-attribute-registration.patch b/patches/server/0538-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/server/0539-living-entity-allow-attribute-registration.patch rename to patches/server/0538-living-entity-allow-attribute-registration.patch diff --git a/patches/server/0540-fix-dead-slime-setSize-invincibility.patch b/patches/server/0539-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0540-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0539-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0541-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0540-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0541-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0540-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0542-Expose-Tracked-Players.patch b/patches/server/0541-Expose-Tracked-Players.patch similarity index 100% rename from patches/server/0542-Expose-Tracked-Players.patch rename to patches/server/0541-Expose-Tracked-Players.patch diff --git a/patches/server/0543-Improve-ServerGUI.patch b/patches/server/0542-Improve-ServerGUI.patch similarity index 99% rename from patches/server/0543-Improve-ServerGUI.patch rename to patches/server/0542-Improve-ServerGUI.patch index b4986e426904..9d032f6712d2 100644 --- a/patches/server/0543-Improve-ServerGUI.patch +++ b/patches/server/0542-Improve-ServerGUI.patch @@ -39,7 +39,7 @@ index 48e0b8a50090735ac44d03bdff22010c60b0d7e5..066b9e4c4f0e7773548eda045cdd1ca8 + } } diff --git a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java -index 2e93eec8733c5b548a15269a322fe4dd1f189b7d..69b18e312db984eaffa8bae2439c88f73b872c53 100644 +index 2bbc57b4869caf690f53618d60359c5133ec62a8..c42a9949c4d37d45883867a54222a7ab33944b39 100644 --- a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java +++ b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java @@ -59,6 +59,15 @@ public class MinecraftServerGui extends JComponent { diff --git a/patches/server/0544-fix-converting-txt-to-json-file.patch b/patches/server/0543-fix-converting-txt-to-json-file.patch similarity index 95% rename from patches/server/0544-fix-converting-txt-to-json-file.patch rename to patches/server/0543-fix-converting-txt-to-json-file.patch index 4c5b8abd0b7b..9c650b7e731d 100644 --- a/patches/server/0544-fix-converting-txt-to-json-file.patch +++ b/patches/server/0543-fix-converting-txt-to-json-file.patch @@ -21,7 +21,7 @@ index a20d47f54f12dfc0a5f76dd969238e34c958b618..1c9cf5e1c4ee05724ffcdbd77a19bca1 this.saveUserBanList(); this.loadIpBanList(); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 2d5e8d624b153f55e28d8a4e008dce11853179cf..f6da2fcc1709d0942ed8332b4f59c6b4131a0b78 100644 +index 09956f69b63844d67aeab1339ae65910fc8eb8bf..c2d11d89a94218cc84790df1b5b61e50db884801 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -199,6 +199,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -48,7 +48,7 @@ index 2d5e8d624b153f55e28d8a4e008dce11853179cf..f6da2fcc1709d0942ed8332b4f59c6b4 if (!OldUsersConverter.serverReadyAfterUserconversion(this)) { return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d80b05fb33d1f519923f8ef189ff9025335d9390..95c2dfe3d37e1fb7673b03089e53caf5fdfc9c0e 100644 +index b1ef7d734c053f8a26da5258826dbc50af9c1162..298c5bece0e3bd992df8027d53ca6ada5b82d507 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -176,6 +176,7 @@ public abstract class PlayerList { diff --git a/patches/server/0545-Add-worldborder-events.patch b/patches/server/0544-Add-worldborder-events.patch similarity index 100% rename from patches/server/0545-Add-worldborder-events.patch rename to patches/server/0544-Add-worldborder-events.patch diff --git a/patches/server/0546-Add-PlayerNameEntityEvent.patch b/patches/server/0545-Add-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0546-Add-PlayerNameEntityEvent.patch rename to patches/server/0545-Add-PlayerNameEntityEvent.patch diff --git a/patches/server/0547-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0546-Prevent-grindstones-from-overstacking-items.patch similarity index 94% rename from patches/server/0547-Prevent-grindstones-from-overstacking-items.patch rename to patches/server/0546-Prevent-grindstones-from-overstacking-items.patch index 8762f5ed4109..d98bb3f1c4f0 100644 --- a/patches/server/0547-Prevent-grindstones-from-overstacking-items.patch +++ b/patches/server/0546-Prevent-grindstones-from-overstacking-items.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent grindstones from overstacking items diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java -index 811d7415ae843347da374d73b4edfe89642d518a..0ebd139f2f51730c190570dc4abb5ff2f2ed2cfa 100644 +index 1783661f38a6f5fb655ea83953b9467bd91a1302..95ac3446fba1f37637c9700080de2e1ce7a3550a 100644 --- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java +++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java @@ -198,13 +198,13 @@ public class GrindstoneMenu extends AbstractContainerMenu { diff --git a/patches/server/0548-Add-recipe-to-cook-events.patch b/patches/server/0547-Add-recipe-to-cook-events.patch similarity index 94% rename from patches/server/0548-Add-recipe-to-cook-events.patch rename to patches/server/0547-Add-recipe-to-cook-events.patch index 8d7c9824101f..75eb9efb8b9f 100644 --- a/patches/server/0548-Add-recipe-to-cook-events.patch +++ b/patches/server/0547-Add-recipe-to-cook-events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add recipe to cook events diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 5c65be04ac88f1308eae6a8cde36d5f7e8aad879..14406c07dc505525ddcd257ca7e3779c1338eb05 100644 +index 8f7029e602300f68b3c8411caa2d9e0b1e8be62e..d975e80b6a7849bcbabf20bf12f7d63ab1a6335f 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -438,7 +438,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @@ -18,7 +18,7 @@ index 5c65be04ac88f1308eae6a8cde36d5f7e8aad879..14406c07dc505525ddcd257ca7e3779c if (furnaceSmeltEvent.isCancelled()) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java -index f706c787f7608f7440a5f5e05e7e9c4cb582368c..daeced350310020b99ab0244daf7f7a69c29b069 100644 +index 3a2afa6c1f6dfad7dc18d93b743cbea1eef0e4b8..5da0c6bf4f04448f640a11931b2cc5b91cf83f12 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java @@ -63,7 +63,10 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { diff --git a/patches/server/0549-Add-Block-isValidTool.patch b/patches/server/0548-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0549-Add-Block-isValidTool.patch rename to patches/server/0548-Add-Block-isValidTool.patch diff --git a/patches/server/0550-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0549-Allow-using-signs-inside-spawn-protection.patch similarity index 95% rename from patches/server/0550-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0549-Allow-using-signs-inside-spawn-protection.patch index 847a7d4d2402..4a1cbafca42e 100644 --- a/patches/server/0550-Allow-using-signs-inside-spawn-protection.patch +++ b/patches/server/0549-Allow-using-signs-inside-spawn-protection.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow using signs inside spawn protection diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 54ca7e759897c054127e8532b9df62dca33b8e9d..07d15cceaf03b297356ea5fea80b81491de9c6f0 100644 +index e27395ff1b8e4546877c42f1df5ba836c11cdb6e..258855b702c6705ce78a32c20c665682ed65d3f2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1752,7 +1752,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0551-Expand-world-key-API.patch b/patches/server/0550-Expand-world-key-API.patch similarity index 95% rename from patches/server/0551-Expand-world-key-API.patch rename to patches/server/0550-Expand-world-key-API.patch index c343f5e34956..c7a789fc260a 100644 --- a/patches/server/0551-Expand-world-key-API.patch +++ b/patches/server/0550-Expand-world-key-API.patch @@ -20,7 +20,7 @@ index 0fb214ddd919b568da64541fd9b531c65caa5fad..9cd267f53505658d1c75187b662c4d9f // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8617abb738f311e2f7141ec98799f6cc8b4c6cf5..caa58d0a531a2541cff901e6eebeca0a74f5b3dd 100644 +index f80846c1940d6a094c5980a451016a9214d594fb..f192bd669e48865ae3ca7c79fd3c356d96556bd8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1137,9 +1137,15 @@ public final class CraftServer implements Server { @@ -67,7 +67,7 @@ index 8617abb738f311e2f7141ec98799f6cc8b4c6cf5..caa58d0a531a2541cff901e6eebeca0a // Check if a World already exists with the UID. if (this.getWorld(world.getUID()) != null) { diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index bcf88a137616b83f3400afd18c6fe9f3b2b2db34..01b71837d1c1836b72216f97a09d43b13a875186 100644 +index f48702923beb6d99b23dfa2466396bf4d4e8fbc8..7629d3b375027ffe0656a21e4cb9315aabb62460 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -515,6 +515,11 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0552-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0551-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0552-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0551-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0553-Item-Rarity-API.patch b/patches/server/0552-Item-Rarity-API.patch similarity index 96% rename from patches/server/0553-Item-Rarity-API.patch rename to patches/server/0552-Item-Rarity-API.patch index ec2a02c6d844..1f69f5047237 100644 --- a/patches/server/0553-Item-Rarity-API.patch +++ b/patches/server/0552-Item-Rarity-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Item Rarity API public net.minecraft.world.item.Item rarity diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 01b71837d1c1836b72216f97a09d43b13a875186..5bb6735a2423c4fdffe6d0ef866fc15f0f552064 100644 +index 7629d3b375027ffe0656a21e4cb9315aabb62460..d714d420376d032d82ce6fc066fee3f775f0744d 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -520,6 +520,20 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0554-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0553-Drop-carried-item-when-player-has-disconnected.patch similarity index 93% rename from patches/server/0554-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0553-Drop-carried-item-when-player-has-disconnected.patch index dc7dcd11a89f..eeea2fbaff1c 100644 --- a/patches/server/0554-Drop-carried-item-when-player-has-disconnected.patch +++ b/patches/server/0553-Drop-carried-item-when-player-has-disconnected.patch @@ -7,7 +7,7 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro Closes #5036 diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 72b9c50024e82356491a3d35bf248223f3088b5c..5c63a7719b2a4a4bb2c64d460b007d2976cbdbf9 100644 +index 298c5bece0e3bd992df8027d53ca6ada5b82d507..c8cff0054c7f5eaab3143e828e463e7ad913cd92 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -597,6 +597,14 @@ public abstract class PlayerList { diff --git a/patches/server/0555-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0554-forced-whitelist-use-configurable-kick-message.patch similarity index 92% rename from patches/server/0555-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0554-forced-whitelist-use-configurable-kick-message.patch index b9622a232c8c..b4788befbcce 100644 --- a/patches/server/0555-forced-whitelist-use-configurable-kick-message.patch +++ b/patches/server/0554-forced-whitelist-use-configurable-kick-message.patch @@ -5,7 +5,7 @@ Subject: [PATCH] forced whitelist: use configurable kick message diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f89d2dc9ec8bfe0b401b96bffd59502bf903a24d..fbfe5d18a004225396f2d33084fb5073af2d9731 100644 +index b0e0c955e9b5c92d4a8e8d55149d5e8123011420..d99217292a094713287cd597c9d7c01f04b9c7c7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2233,7 +2233,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 67584166891bf3e6a9b446d62d340bab265391ff..30a2b5f0d81552b1a78743516a7506f0a24bdc5e 100644 +index 7dad8382910b405cdd3345454721f9b72921a7f4..d64cbafda18cf6352a8d1347e4df0750df5bb0f0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2639,7 +2639,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -19,7 +19,7 @@ index 67584166891bf3e6a9b446d62d340bab265391ff..30a2b5f0d81552b1a78743516a7506f0 } else { if (this.player.getHealth() > 0.0F) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6d9fcedd75f998c80734e03b88d0fc0214b762ec..90a5bbe75ab164abc97e882cc33a081b4a785c9c 100644 +index c8cff0054c7f5eaab3143e828e463e7ad913cd92..e27904551ca7f461026e62a2225c2607975a805f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -781,6 +781,12 @@ public abstract class PlayerList { diff --git a/patches/server/0572-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0571-Introduce-beacon-activation-deactivation-events.patch similarity index 95% rename from patches/server/0572-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0571-Introduce-beacon-activation-deactivation-events.patch index d4053227a189..3a9a6e6ec549 100644 --- a/patches/server/0572-Introduce-beacon-activation-deactivation-events.patch +++ b/patches/server/0571-Introduce-beacon-activation-deactivation-events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Introduce beacon activation/deactivation events diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index 3a50fe20294048a1c818ae717a918bb1aed74dea..d3e2fd7fcfeec133a7baa0007c979c9e379c2f10 100644 +index 7205d0ea78af545108719c1373ba7946ede34ae6..83a5417d14e89c3e582e400543fe41f129bbbf3b 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -221,6 +221,15 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name diff --git a/patches/server/0573-Add-Channel-initialization-listeners.patch b/patches/server/0572-Add-Channel-initialization-listeners.patch similarity index 98% rename from patches/server/0573-Add-Channel-initialization-listeners.patch rename to patches/server/0572-Add-Channel-initialization-listeners.patch index 9ae80dfd00d4..79b5424dbb13 100644 --- a/patches/server/0573-Add-Channel-initialization-listeners.patch +++ b/patches/server/0572-Add-Channel-initialization-listeners.patch @@ -122,7 +122,7 @@ index 0000000000000000000000000000000000000000..0d7e7db9e37ef0183c32b217bd944fb4 + COMPRESSION_DISABLED +} diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 2db208427447b94cdfdb22b38b6dc6697b1067bd..7e966e072476c085d41942a02a5f0f3ff1ac72bc 100644 +index 751d24a29cf3797234adbb1eb3b64b7fb261b24e..18228713d61cbc4b6fad881ace991e5e6c64e57d 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -717,6 +717,7 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0574-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0573-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0574-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0573-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0575-Add-more-WanderingTrader-API.patch b/patches/server/0574-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0575-Add-more-WanderingTrader-API.patch rename to patches/server/0574-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0576-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0575-Add-EntityBlockStorage-clearEntities.patch similarity index 94% rename from patches/server/0576-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0575-Add-EntityBlockStorage-clearEntities.patch index 2d4e55a930d4..35a0f1cab594 100644 --- a/patches/server/0576-Add-EntityBlockStorage-clearEntities.patch +++ b/patches/server/0575-Add-EntityBlockStorage-clearEntities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityBlockStorage#clearEntities() diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index 5f2042d565974a5509aec8f744e091fe7c576c98..6c42f7e7fbd776a59fbd5aa3723752a130d3090f 100644 +index 949eda8e743df7ab83f18f15471a33e538aecdc5..d36373cb1fda4d4f2b41dd181306ea697a2fe7a8 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java @@ -139,6 +139,11 @@ public class BeehiveBlockEntity extends BlockEntity { diff --git a/patches/server/0577-Entity-load-save-limit-per-chunk.patch b/patches/server/0576-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/server/0577-Entity-load-save-limit-per-chunk.patch rename to patches/server/0576-Entity-load-save-limit-per-chunk.patch diff --git a/patches/server/0578-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0577-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0578-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0577-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0579-Inventory-close.patch b/patches/server/0578-Inventory-close.patch similarity index 100% rename from patches/server/0579-Inventory-close.patch rename to patches/server/0578-Inventory-close.patch diff --git a/patches/server/0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0579-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0580-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0579-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0581-Add-basic-Datapack-API.patch b/patches/server/0580-Add-basic-Datapack-API.patch similarity index 98% rename from patches/server/0581-Add-basic-Datapack-API.patch rename to patches/server/0580-Add-basic-Datapack-API.patch index 068de223c9fd..bdb8a7c4ba4d 100644 --- a/patches/server/0581-Add-basic-Datapack-API.patch +++ b/patches/server/0580-Add-basic-Datapack-API.patch @@ -92,7 +92,7 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index caa58d0a531a2541cff901e6eebeca0a74f5b3dd..565beb65968b3f7e187f3e5b59aa08e9ac34f2a0 100644 +index f192bd669e48865ae3ca7c79fd3c356d96556bd8..05868e37b03ac912ac902b105f3956f9351b1209 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -301,6 +301,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0582-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0581-Add-environment-variable-to-disable-server-gui.patch similarity index 90% rename from patches/server/0582-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0581-Add-environment-variable-to-disable-server-gui.patch index 0a4e81645588..691761d142d2 100644 --- a/patches/server/0582-Add-environment-variable-to-disable-server-gui.patch +++ b/patches/server/0581-Add-environment-variable-to-disable-server-gui.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add environment variable to disable server gui diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 1c64c81980739bbf09b71e1d1dd6d86dbf924e0d..bea88fee71f0233839ea240cb8fcfb70228e986e 100644 +index 7c8af0b369457098afb726fefb5087dbf159cb66..1cad3585ca122a465572b16d4ecbb7231e87c7de 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -326,6 +326,7 @@ public class Main { diff --git a/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0582-Expand-PlayerGameModeChangeEvent.patch similarity index 96% rename from patches/server/0583-Expand-PlayerGameModeChangeEvent.patch rename to patches/server/0582-Expand-PlayerGameModeChangeEvent.patch index 41be876057df..68f1f5ab96d8 100644 --- a/patches/server/0583-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0582-Expand-PlayerGameModeChangeEvent.patch @@ -45,7 +45,7 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..f7c9127346261d83413ca03a1cdaa849 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8184aaff18d2372ae1de0fe1c53e63e1e6e3b2b0..68f6bb415d4b9624f147dc641543bce56bbbca09 100644 +index c9ac912c5cdd5d2aeb09154b224386fb73dfbc69..9f67542726e2b147564c4085e3b1a3cb6b6cba93 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1989,8 +1989,16 @@ public class ServerPlayer extends Player { @@ -94,7 +94,7 @@ index 8184aaff18d2372ae1de0fe1c53e63e1e6e3b2b0..68f6bb415d4b9624f147dc641543bce5 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 49d29e4b3395d2ebea1ed13338f26c7cfbaa5f72..d04669c1d2434c1dbc617777b769e9004359f208 100644 +index 60c18af9253607bc51ecb9d23c23e652a9ba36e9..066e7e420b8eaa9733532a893855bcab14c22d0e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -73,21 +73,28 @@ public class ServerPlayerGameMode { @@ -131,7 +131,7 @@ index 49d29e4b3395d2ebea1ed13338f26c7cfbaa5f72..d04669c1d2434c1dbc617777b769e900 } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5c54f56a350def1c4c7180c05e853fe10d687f74..f1a684e8af0b05c68ccb16cdb9c0e236d1a5834a 100644 +index d64cbafda18cf6352a8d1347e4df0750df5bb0f0..dac6952492d0eaf6a83034f50dd7b6b7be5ab462 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2648,7 +2648,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -144,7 +144,7 @@ index 5c54f56a350def1c4c7180c05e853fe10d687f74..f1a684e8af0b05c68ccb16cdb9c0e236 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 298380e217f41f01d0818767a6d8f1da5a004037..b602c6dfece70580971baedd638e465e8e25bd02 100644 +index 8b23a8fbdc1db7043969ca0a36c59dffd92782d3..44a63ead4c00e82254de8d41a3711cf3e1c4f083 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1559,7 +1559,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0584-ItemStack-repair-check-API.patch b/patches/server/0583-ItemStack-repair-check-API.patch similarity index 97% rename from patches/server/0584-ItemStack-repair-check-API.patch rename to patches/server/0583-ItemStack-repair-check-API.patch index cbd86fa51119..ea0bb0f0ae4b 100644 --- a/patches/server/0584-ItemStack-repair-check-API.patch +++ b/patches/server/0583-ItemStack-repair-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] ItemStack repair check API diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 5c29720a702ceceeb0ac1b0f136c599a16290242..df3414179413cc7d2161ad9572777ded60324749 100644 +index 24a19034ff30020db9ef817b91400dbf25f87599..c0b9bc288b7ce65a5eafe2a75c120de0855a705b 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -535,6 +535,14 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0585-More-Enchantment-API.patch b/patches/server/0584-More-Enchantment-API.patch similarity index 98% rename from patches/server/0585-More-Enchantment-API.patch rename to patches/server/0584-More-Enchantment-API.patch index 4c6a71ac3cc0..37ecbf7300cd 100644 --- a/patches/server/0585-More-Enchantment-API.patch +++ b/patches/server/0584-More-Enchantment-API.patch @@ -78,7 +78,7 @@ index 92922e8eef7fa4638a01f3cefc4c46a1451e40e7..92465b2a9f1483be76004c9f80a1fe15 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index d3f97ba1b03e050b10553ea536bc26a7bfc5b976..2ae8f8e092841f00c28efffc6516b8ec5981675c 100644 +index f874712c1569a30c825c1a904a3bcfbe1085200b..706c4b962837f0b881e7603ea736d364370ff36a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -952,5 +952,21 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0586-Move-range-check-for-block-placing-up.patch b/patches/server/0585-Move-range-check-for-block-placing-up.patch similarity index 92% rename from patches/server/0586-Move-range-check-for-block-placing-up.patch rename to patches/server/0585-Move-range-check-for-block-placing-up.patch index 313354cd9062..2b62c07aaa09 100644 --- a/patches/server/0586-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0585-Move-range-check-for-block-placing-up.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Move range check for block placing up diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6a32c25dbef4d8d8b9db96a69ac8c6baf1d640a6..a16cd74540eca9aed47afe53af518335fcf92f33 100644 +index dac6952492d0eaf6a83034f50dd7b6b7be5ab462..e68ecbc56e05b088dddaf38368e5a4b6bd6a2b51 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1738,6 +1738,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0587-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0586-Fix-and-optimise-world-force-upgrading.patch similarity index 99% rename from patches/server/0587-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0586-Fix-and-optimise-world-force-upgrading.patch index d04e1c7952cd..ac253f3a9bed 100644 --- a/patches/server/0587-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0586-Fix-and-optimise-world-force-upgrading.patch @@ -298,7 +298,7 @@ index d99217292a094713287cd597c9d7c01f04b9c7c7..748a5d8add76d4533fae2647c6e2439f if (dimensionKey == LevelStem.OVERWORLD) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4de1b09f4aa43ebefbae20014ec044bdd95bd191..a19d4d091c738daf80ed9b7c95d149c84180ba9e 100644 +index 15021a6791a5f76c3bb55e88a32b41d0c0ebaf58..c253fea302d86b4b91aa814f26082a678786608a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -186,6 +186,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0588-Add-Mob-lookAt-API.patch b/patches/server/0587-Add-Mob-lookAt-API.patch similarity index 97% rename from patches/server/0588-Add-Mob-lookAt-API.patch rename to patches/server/0587-Add-Mob-lookAt-API.patch index 1215b073746a..ddfa31827a6b 100644 --- a/patches/server/0588-Add-Mob-lookAt-API.patch +++ b/patches/server/0587-Add-Mob-lookAt-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Mob#lookAt API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -index 74843d1fa344497d35f05d0b04f650edd1e0f3a1..6152f4d3d58f4b598d5bd92dbd7c5428c5ff8bc5 100644 +index 0ad9885f939bcb50026d50ed78b970a44772ceb8..fc83dde12957e575a4f1d4bee73c320bab95606f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java @@ -99,5 +99,53 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { diff --git a/patches/server/0589-Add-Unix-domain-socket-support.patch b/patches/server/0588-Add-Unix-domain-socket-support.patch similarity index 96% rename from patches/server/0589-Add-Unix-domain-socket-support.patch rename to patches/server/0588-Add-Unix-domain-socket-support.patch index 6f98ed7836ce..87ab600a7e84 100644 --- a/patches/server/0589-Add-Unix-domain-socket-support.patch +++ b/patches/server/0588-Add-Unix-domain-socket-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Unix domain socket support diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index c89430f2274473be72ebaf2243517092f8b93899..373b39ffefd57d0e737705c748ef13e450446405 100644 +index acca6ea4ddab9382c2511193cbd7cfe6771c733c..01535fc66fbf5fb99ee5705eb6db9b6552ba79b9 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -219,6 +219,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -87,7 +87,7 @@ index 4414b12218a5693fecaa8c1e7c7676a58bcad324..c0ae3ccf4ddf14a4967c86548ec7305c } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a16cd74540eca9aed47afe53af518335fcf92f33..8b45e0fa29cd4bfb31e3d19df876da38567899f6 100644 +index e68ecbc56e05b088dddaf38368e5a4b6bd6a2b51..f97d5e0703d9ccb01f0614e4a410b1c9e2785388 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2471,6 +2471,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -103,7 +103,7 @@ index a16cd74540eca9aed47afe53af518335fcf92f33..8b45e0fa29cd4bfb31e3d19df876da38 } // Spigot End diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 7fa8efd6b0cd7a7684d9bd4ff89d4955a69a8dd5..6a3be2fe851e14f2c9f8b38ad8d27fe36b5240d3 100644 +index e694fd535212105e9229a6047002fdde93aede79..a0b655f23176b034d302ea12261f7aac1176213d 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -45,6 +45,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL diff --git a/patches/server/0590-Add-EntityInsideBlockEvent.patch b/patches/server/0589-Add-EntityInsideBlockEvent.patch similarity index 98% rename from patches/server/0590-Add-EntityInsideBlockEvent.patch rename to patches/server/0589-Add-EntityInsideBlockEvent.patch index adbefe7eaebd..97313bf8a36c 100644 --- a/patches/server/0590-Add-EntityInsideBlockEvent.patch +++ b/patches/server/0589-Add-EntityInsideBlockEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityInsideBlockEvent diff --git a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java -index 0e56fbe8836020a0e36c0b6df01ae82d0aa8cf38..450f87ea7f4c5ef3b26a3c75bc7c8bd08a982075 100644 +index 91400c16b8bd8953265bf37ec1cd34ac95133e32..118403953629b405b9db78de1bf684b31289c499 100644 --- a/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BaseFireBlock.java @@ -124,6 +124,7 @@ public abstract class BaseFireBlock extends Block { @@ -101,7 +101,7 @@ index a7809bb2a468c7ad7ef7ba795afd93dd2a63cadc..aa029bee9839497e48ff639e286a0242 world.destroyBlock(pos, true, entity); } diff --git a/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java b/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java -index 8eff69cb70ba094f9dcc0849f0436d4a3498fceb..9de6503f20396601a270e6eb0b66c40187fca690 100644 +index 17242c24d73c9ffb1c976a45925f85d1aa9e96b3..57e542d5c8b887acecedf76c08c8d4379d712c0f 100644 --- a/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DetectorRailBlock.java @@ -51,6 +51,7 @@ public class DetectorRailBlock extends BaseRailBlock { @@ -185,7 +185,7 @@ index 64247c3a81273277b95656885c78eca3e883ef13..18ca086e28f4295cb9303919222d7c8a // CraftBukkit start if (entity.mayInteract(world, pos)) { diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java -index 4e52e92846428b0d01635b90f3480b4a2c13a0b4..e6b762c70cbc08b20fc225b7731abd19c626369c 100644 +index 2a8f97d97ae7f268da920b5e3b9719743fa9a8e0..1b5cc5d6aa0b4313da980ce175c54145852d0db0 100644 --- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java @@ -90,6 +90,7 @@ public class NetherPortalBlock extends Block { diff --git a/patches/server/0591-Attributes-API-for-item-defaults.patch b/patches/server/0590-Attributes-API-for-item-defaults.patch similarity index 94% rename from patches/server/0591-Attributes-API-for-item-defaults.patch rename to patches/server/0590-Attributes-API-for-item-defaults.patch index 0ffe27c99dab..8c86dbc96b11 100644 --- a/patches/server/0591-Attributes-API-for-item-defaults.patch +++ b/patches/server/0590-Attributes-API-for-item-defaults.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Attributes API for item defaults diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index df3414179413cc7d2161ad9572777ded60324749..78778f010b458a8ca011ef636c2ce5f45feafa85 100644 +index c0b9bc288b7ce65a5eafe2a75c120de0855a705b..833e66adf24a80e6ba30eff7b6abbb0f613bfb0d 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -543,6 +543,19 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0592-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0591-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 97% rename from patches/server/0592-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0591-Add-cause-to-Weather-ThunderChangeEvents.patch index 51ca6281d81a..ed480599eed2 100644 --- a/patches/server/0592-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0591-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d6e8950af45578375b988158d98554c7d2f4f0a9..52fb8c8bb41b90c8c6f30551858fd496956cd41c 100644 +index b3d5d0dc5671f3c2bb41263ef52951da5c87ed74..41c11a6fa0d99d6c66bac35f6c9578d39f6d34ad 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -667,8 +667,8 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -95,7 +95,7 @@ index f5ac36fa54f3d3b39de103c95abb9ca3adfe8dda..59ba982dc96ce47e47399514e8f74d2b if (weather.isCancelled()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d240d9f5b558146c2de293a258914fd543975ca2..4ade6ad05a864e8065eb37a707dfbec392abd096 100644 +index d8e6dab184f2c049f777ebef87dbad141016580b..a2625d439fbed368a196ce71d77b8f3f1b141326 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1243,7 +1243,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0593-More-Lidded-Block-API.patch b/patches/server/0592-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0593-More-Lidded-Block-API.patch rename to patches/server/0592-More-Lidded-Block-API.patch diff --git a/patches/server/0594-Limit-item-frame-cursors-on-maps.patch b/patches/server/0593-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0594-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0593-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0595-Add-PlayerKickEvent-causes.patch b/patches/server/0594-Add-PlayerKickEvent-causes.patch similarity index 99% rename from patches/server/0595-Add-PlayerKickEvent-causes.patch rename to patches/server/0594-Add-PlayerKickEvent-causes.patch index 41522871063d..5aa71148a358 100644 --- a/patches/server/0595-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0594-Add-PlayerKickEvent-causes.patch @@ -209,7 +209,7 @@ index 825b8f541fe3f5e4cb53f465232c19398b8e66ab..3049377685ee4fe75f0c4b68eab39a91 if (this.cserver.getServer().isRunning()) { this.cserver.getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f6fea364fb32a337c322d2514d2c2436cb4e01c5..0c9707f8484f67ef7e70e55cb53550240b32b713 100644 +index f97d5e0703d9ccb01f0614e4a410b1c9e2785388..846a9595857d5e6faa0b9dbc566b52d41efaa9ed 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -342,7 +342,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -437,7 +437,7 @@ index f6fea364fb32a337c322d2514d2c2436cb4e01c5..0c9707f8484f67ef7e70e55cb5355024 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 777b2566767104103e3c6313a602e45730e5c4d9..a7f3963d2e1a9a6d3a5060be6c6694fc518b4f0f 100644 +index e27904551ca7f461026e62a2225c2607975a805f..c12ad5eabb7be2648f1a0314855664466b8665b0 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -684,7 +684,7 @@ public abstract class PlayerList { @@ -491,7 +491,7 @@ index 6724d0a1af13e97bc1d3bd94fd43fef742a0deab..20ba0a0c9eae28658888a77dd2170f62 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b602c6dfece70580971baedd638e465e8e25bd02..c1e35f2a37b7078e484669d4bbb411df118e6d34 100644 +index 44a63ead4c00e82254de8d41a3711cf3e1c4f083..b4980d4f99aae9b2ab9d408e77e50bc50ca2d450 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -591,7 +591,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0596-Add-PufferFishStateChangeEvent.patch b/patches/server/0595-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0596-Add-PufferFishStateChangeEvent.patch rename to patches/server/0595-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0597-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0596-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0597-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0596-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0598-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0597-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/server/0598-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0597-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/server/0599-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0598-Add-option-to-fix-items-merging-through-walls.patch similarity index 93% rename from patches/server/0599-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0598-Add-option-to-fix-items-merging-through-walls.patch index 2a731447f717..5675e044ec4e 100644 --- a/patches/server/0599-Add-option-to-fix-items-merging-through-walls.patch +++ b/patches/server/0598-Add-option-to-fix-items-merging-through-walls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to fix items merging through walls diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 36ccb7701cc5f6648940256b62321034eff964c6..fc14a2eb464675f8fb0bff916992687adb4e3d25 100644 +index ffbeea768cbb09b6f828ef1a9394c9fe50e99914..c865456d58cf7c2077ac452b6a1e3db2b84047ef 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -276,6 +276,14 @@ public class ItemEntity extends Entity implements TraceableEntity { diff --git a/patches/server/0600-Add-BellRevealRaiderEvent.patch b/patches/server/0599-Add-BellRevealRaiderEvent.patch similarity index 95% rename from patches/server/0600-Add-BellRevealRaiderEvent.patch rename to patches/server/0599-Add-BellRevealRaiderEvent.patch index e2e0f2f5760f..b48704e5f5ea 100644 --- a/patches/server/0600-Add-BellRevealRaiderEvent.patch +++ b/patches/server/0599-Add-BellRevealRaiderEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add BellRevealRaiderEvent diff --git a/src/main/java/net/minecraft/world/level/block/entity/BellBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BellBlockEntity.java -index b446d6549922f3dabaaa05793d8ee3eb45566ac3..f692421ae50c07ffdcdd521b328ad950bdfaccb2 100644 +index d21f7e9712ac2d9088ce19d415e4ba7863d8cebf..aee8401e72228d0bbf89b940715f405353093585 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BellBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BellBlockEntity.java @@ -156,7 +156,7 @@ public class BellBlockEntity extends BlockEntity { diff --git a/patches/server/0601-Fix-invulnerable-end-crystals.patch b/patches/server/0600-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0601-Fix-invulnerable-end-crystals.patch rename to patches/server/0600-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0602-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0601-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0602-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0601-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0603-Fix-dangerous-end-portal-logic.patch b/patches/server/0602-Fix-dangerous-end-portal-logic.patch similarity index 97% rename from patches/server/0603-Fix-dangerous-end-portal-logic.patch rename to patches/server/0602-Fix-dangerous-end-portal-logic.patch index e2eaf3938c6e..989ffee4c2cf 100644 --- a/patches/server/0603-Fix-dangerous-end-portal-logic.patch +++ b/patches/server/0602-Fix-dangerous-end-portal-logic.patch @@ -11,7 +11,7 @@ Move the tick logic into the post tick, where portaling was designed to happen in the first place. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index df23dd16ecca29a569f89ddf7d755ab88557ab50..6c3cbfa88a0d8e48fadb85dd52d2678567243ee8 100644 +index b7a83aebbf0602a338a1510f678cf5037ff619b8..421da47d0de7d9a7ac2d8134487b642f7f59f98c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -491,6 +491,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0604-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0603-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0604-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0603-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0605-Make-item-validations-configurable.patch b/patches/server/0604-Make-item-validations-configurable.patch similarity index 97% rename from patches/server/0605-Make-item-validations-configurable.patch rename to patches/server/0604-Make-item-validations-configurable.patch index 29c71c0040fb..0cd64973b30d 100644 --- a/patches/server/0605-Make-item-validations-configurable.patch +++ b/patches/server/0604-Make-item-validations-configurable.patch @@ -32,7 +32,7 @@ index 5e01357208fe52c1d270c68cb19029ea0f4057bb..6d85237b21650edf1d2dc71abaf0edbe } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index 59d42dc66f23fc354a7ae4232beee42f1831645f..b7c0c9a40dac3e828f880ef928ca34206a898cb9 100644 +index ad3a289af7922bfc8d503eb1da93db72b31a03f6..8af7ef1c12a7826e607b15f1376311e9d38e7f31 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -362,7 +362,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/0606-Line-Of-Sight-Changes.patch b/patches/server/0605-Line-Of-Sight-Changes.patch similarity index 95% rename from patches/server/0606-Line-Of-Sight-Changes.patch rename to patches/server/0605-Line-Of-Sight-Changes.patch index 5748754b5c6d..4f7c11f5401a 100644 --- a/patches/server/0606-Line-Of-Sight-Changes.patch +++ b/patches/server/0605-Line-Of-Sight-Changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Line Of Sight Changes diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 383c39ac381f9a86693abb7935b5b142b889d7be..e0524231da219dc4c7857ef7b39d4d018fa96ab2 100644 +index 1fd1d8abedeebf3f1d1e2465fa3792d404787c68..d3d2e971b36b5a240b598015edeb1166672fec89 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3606,7 +3606,8 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -45,7 +45,7 @@ index 9cd267f53505658d1c75187b662c4d9f68cd6bae..5f4958d28b6d79fe9e589e4794d9a7e8 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 2ae8f8e092841f00c28efffc6516b8ec5981675c..1d94e8276b49de47cdd7570774c7bb13f757d966 100644 +index 706c4b962837f0b881e7603ea736d364370ff36a..7ff701f2421ca766cc35580f1c93b24f8c843f10 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -586,6 +586,23 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0607-add-per-world-spawn-limits.patch b/patches/server/0606-add-per-world-spawn-limits.patch similarity index 91% rename from patches/server/0607-add-per-world-spawn-limits.patch rename to patches/server/0606-add-per-world-spawn-limits.patch index 6feaced1d099..d6f7381f12c3 100644 --- a/patches/server/0607-add-per-world-spawn-limits.patch +++ b/patches/server/0606-add-per-world-spawn-limits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add per world spawn limits diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index c0d02f7d714f7116b34b5a735b5520cf3a5a4587..d6b402d0bae4d16932e059f1da59ac4523d974b8 100644 +index a2625d439fbed368a196ce71d77b8f3f1b141326..36bc006924599b8270c95e41e80dc51ad0262f61 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -215,6 +215,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0608-Fix-potions-splash-events.patch b/patches/server/0607-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0608-Fix-potions-splash-events.patch rename to patches/server/0607-Fix-potions-splash-events.patch diff --git a/patches/server/0609-Add-more-LimitedRegion-API.patch b/patches/server/0608-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0609-Add-more-LimitedRegion-API.patch rename to patches/server/0608-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0610-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0609-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 89% rename from patches/server/0610-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0609-Fix-PlayerDropItemEvent-using-wrong-item.patch index 43a209bfc878..66ac32f567dd 100644 --- a/patches/server/0610-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0609-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix PlayerDropItemEvent using wrong item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ce9555b3ccb3c3caa85e549e05e471230ee27680..592f8a1277cba26bf07623782bf85110e959be8c 100644 +index 9f67542726e2b147564c4085e3b1a3cb6b6cba93..f3bca38d1529a3acbd8d99237efd75c2dee774a2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2391,7 +2391,7 @@ public class ServerPlayer extends Player { @@ -18,7 +18,7 @@ index ce9555b3ccb3c3caa85e549e05e471230ee27680..592f8a1277cba26bf07623782bf85110 this.awardStat(Stats.DROP); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 482eaa28277eca1dbb25d1f3cf6c27328a8879de..00c40d6b61a293786ead2dd66daa6d213a341b23 100644 +index 617ede60a9e6634ae984a63ed4f32e845e5a571b..322c8c437b4c5fa4a9db038736f24da24d45d646 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -725,6 +725,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0611-Missing-Entity-API.patch b/patches/server/0610-Missing-Entity-API.patch similarity index 99% rename from patches/server/0611-Missing-Entity-API.patch rename to patches/server/0610-Missing-Entity-API.patch index af2725df0781..6f246f230682 100644 --- a/patches/server/0611-Missing-Entity-API.patch +++ b/patches/server/0610-Missing-Entity-API.patch @@ -121,7 +121,7 @@ index 39ed3ca76d6b64ef3917280ec822721cc02afada..86b437836cb4b1f6e8ca9acd5f1f93b9 this.leader = null; } diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index c6235be64d6fb234734dd816052695ac44aea3ae..c534589762b1361bae7c446dfec8dbbf542485fb 100644 +index 07ecc038a1000581335b8d18c094298f2f3b100f..91ea960ba223bae42655c581b9b6c0981f333c9b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -553,11 +553,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -212,7 +212,7 @@ index 71a08510a928d4570822282bb31f14013ec3834a..4aeab90e778629c355189dfe79c39c4b } diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -index a13a1725356ca4430f1f0a6d121fc08679de62db..7a990fb47f39da00026d3005d5bb11d3abd14026 100644 +index 8fc65fd7347340a89dba0b9839497aadfcc67d79..56cc6ecf7f95687db7c7c062b4ee979bfe49844b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java @@ -695,6 +695,15 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, @@ -282,7 +282,7 @@ index 14b09adeb9222600c24f3fb846ea8aee467952e6..8241dbf7591b2f56b25cdc3ce9009c71 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index a859f02074c698c68713568ed99089e33f38ccca..6d29fef4de10c4b75be591046ff1f8e3c24bb9bb 100644 +index d259d7b8f7380763e3976f5f20bc01f06ce6901c..2a8ed27101ff78542db120ff183ff33276fb832a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -457,6 +457,16 @@ public class EnderMan extends Monster implements NeutralMob { @@ -841,7 +841,7 @@ index 17f5684cba9d3ed22d9925d1951520cc4751dfe2..3a3563a1bdbc0d84d973b3a04b50b78b + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -index 6152f4d3d58f4b598d5bd92dbd7c5428c5ff8bc5..a5d3845acc607f640dace05a85f0089611c7d23a 100644 +index fc83dde12957e575a4f1d4bee73c320bab95606f..ae430c36ed433e337dd92f197f1717fbf00ac0e1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java @@ -148,4 +148,16 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { @@ -1237,7 +1237,7 @@ index 1cfbe9c476f4a254edf3edf4b70696bbaba78558..e9ec3455eabc473e104b5342a615a38c @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java -index e2a0c11867abee6add8775259c54f2052de7b1ad..fd968881eeec6dc5bdf90decc23a2bfc619c410d 100644 +index e2a0c11867abee6add8775259c54f2052de7b1ad..3aa23d9f22d5cd22231293fd7d1ca4cb79eb7cb3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java @@ -60,13 +60,20 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager { @@ -1250,7 +1250,7 @@ index e2a0c11867abee6add8775259c54f2052de7b1ad..fd968881eeec6dc5bdf90decc23a2bfc + + @Override + public void setConversionTime(int time, boolean broadcastEntityEvent) { -+ // Paper stop - missing entity behaviour api - converting without entity event ++ // Paper end - missing entity behaviour api - converting without entity event if (time < 0) { this.getHandle().villagerConversionTime = -1; this.getHandle().getEntityData().set(net.minecraft.world.entity.monster.ZombieVillager.DATA_CONVERTING_ID, false); diff --git a/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0611-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 92% rename from patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0611-Ensure-disconnect-for-book-edit-is-called-on-main.patch index 1b9070b0da26..8c8bc235d1d3 100644 --- a/patches/server/0612-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0611-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 69f3278b55d6e3778aa9bad6be10870964db5bf9..1502961f7be651e608759f13be8e143c0df12ab5 100644 +index 846a9595857d5e6faa0b9dbc566b52d41efaa9ed..2a24a9c95c3701ff11aadaab45c47c60fde7bcab 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1096,7 +1096,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0613-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0612-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0613-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0612-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0614-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0613-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 94% rename from patches/server/0614-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0613-Use-getChunkIfLoadedImmediately-in-places.patch index c329d37f042e..bd83e1eeff7c 100644 --- a/patches/server/0614-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0613-Use-getChunkIfLoadedImmediately-in-places.patch @@ -8,7 +8,7 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk load in that case). diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 52fb8c8bb41b90c8c6f30551858fd496956cd41c..9eb5d6623c10ad88ca0deb7bd92a0cc085aa78b7 100644 +index 41c11a6fa0d99d6c66bac35f6c9578d39f6d34ad..813acbb57271e6568d35f2cbf9a637c44603aa95 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -224,7 +224,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -21,7 +21,7 @@ index 52fb8c8bb41b90c8c6f30551858fd496956cd41c..9eb5d6623c10ad88ca0deb7bd92a0cc0 @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a19d4d091c738daf80ed9b7c95d149c84180ba9e..4b0bba18ba997f9dc3f0bd6e67af3538106891dc 100644 +index c253fea302d86b4b91aa814f26082a678786608a..d538dc2f15b3b1553109df99f50457ee79732e43 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -203,6 +203,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0615-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0614-Fix-commands-from-signs-not-firing-command-events.patch similarity index 98% rename from patches/server/0615-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0614-Fix-commands-from-signs-not-firing-command-events.patch index d2492dc891f7..5303dcde0514 100644 --- a/patches/server/0615-Fix-commands-from-signs-not-firing-command-events.patch +++ b/patches/server/0614-Fix-commands-from-signs-not-firing-command-events.patch @@ -58,7 +58,7 @@ index 0000000000000000000000000000000000000000..01a2bc1feec808790bb93618ce46adb9 + } +} diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index 1a54db9f8b2fb3071e79ec26c49242b528b8cd9e..393e6e5fb2c901cdf369cfe5bcde454dee2b1b0d 100644 +index 9939cad5af2d7873f188f18978029663a8d785de..c79a80428961b0941d4f6ed31d641cbf0e6a7203 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java @@ -273,7 +273,17 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C diff --git a/patches/server/0616-Add-PlayerArmSwingEvent.patch b/patches/server/0615-Add-PlayerArmSwingEvent.patch similarity index 93% rename from patches/server/0616-Add-PlayerArmSwingEvent.patch rename to patches/server/0615-Add-PlayerArmSwingEvent.patch index 6ddfa486f121..c399b1534edc 100644 --- a/patches/server/0616-Add-PlayerArmSwingEvent.patch +++ b/patches/server/0615-Add-PlayerArmSwingEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 60be2ae945514aaec70a2350df2044df53ed3224..c477c6c47d6b707fcee671152bfb516eeea2cebd 100644 +index 2a24a9c95c3701ff11aadaab45c47c60fde7bcab..b4d3420c58fcc03c624c5d2e2f73ac911ce00f0d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2328,7 +2328,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0616-Fix-kick-event-leave-message-not-being-sent.patch similarity index 96% rename from patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/server/0616-Fix-kick-event-leave-message-not-being-sent.patch index 1e7706bbb11b..34c5fb92d704 100644 --- a/patches/server/0617-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0616-Fix-kick-event-leave-message-not-being-sent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 61d439af863603c669c45f38045dbad9068f285a..ade79a794a7485e0141a430d62236daf1e566b21 100644 +index f3bca38d1529a3acbd8d99237efd75c2dee774a2..08f675754e7ac5574cdd4e6c3dab7a5a9890c457 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -273,7 +273,6 @@ public class ServerPlayer extends Player { @@ -50,7 +50,7 @@ index 3049377685ee4fe75f0c4b68eab39a916ac20785..f5f2d65d2e02b0d79352585d9d4ef588 MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5dfebe60caa47af3bab4a667ca5d0b6438367161..fe8ba3890d5b21273aca68777de56d7f7f644c0d 100644 +index b4d3420c58fcc03c624c5d2e2f73ac911ce00f0d..bc3c72f66050460affcaeec272d4bbe3f49a4e73 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1882,6 +1882,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -96,7 +96,7 @@ index 5dfebe60caa47af3bab4a667ca5d0b6438367161..fe8ba3890d5b21273aca68777de56d7f this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); // 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 0f04b29ff000c0b0f0692eecf26675f5520d9e07..3f8f7d7db41b73d0d449b653d3ba55a097c00566 100644 +index c12ad5eabb7be2648f1a0314855664466b8665b0..c143b9eb97920945ea36c8f0f36db6086961746c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -570,6 +570,11 @@ public abstract class PlayerList { diff --git a/patches/server/0618-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0617-Add-config-for-mobs-immune-to-default-effects.patch similarity index 97% rename from patches/server/0618-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0617-Add-config-for-mobs-immune-to-default-effects.patch index a96216dd1449..8cd0fcdc3747 100644 --- a/patches/server/0618-Add-config-for-mobs-immune-to-default-effects.patch +++ b/patches/server/0617-Add-config-for-mobs-immune-to-default-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config for mobs immune to default effects diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e0524231da219dc4c7857ef7b39d4d018fa96ab2..6518d7972f7902b3f7b65d7e5f6629491b531f22 100644 +index d3d2e971b36b5a240b598015edeb1166672fec89..8673e4eff6bd66b5cdf0fc6101aa9ff9c226dbfe 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1164,7 +1164,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0619-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0618-Don-t-apply-cramming-damage-to-players.patch similarity index 94% rename from patches/server/0619-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0618-Don-t-apply-cramming-damage-to-players.patch index 6d554a71a100..d969fc1f439f 100644 --- a/patches/server/0619-Don-t-apply-cramming-damage-to-players.patch +++ b/patches/server/0618-Don-t-apply-cramming-damage-to-players.patch @@ -11,7 +11,7 @@ It does not make a lot of sense to damage players if they get crammed, For those who really want it a config option is provided. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c9842d0641b43c10b857ccc89f90b167150f359d..68c9e9e6185abdff5b7239002f4005417079c083 100644 +index 08f675754e7ac5574cdd4e6c3dab7a5a9890c457..6284e567d5247b18dba06bc9525c877882fe8d88 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -95,6 +95,7 @@ import net.minecraft.util.Mth; diff --git a/patches/server/0620-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0619-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0620-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0619-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0621-Add-missing-forceDrop-toggles.patch b/patches/server/0620-Add-missing-forceDrop-toggles.patch similarity index 98% rename from patches/server/0621-Add-missing-forceDrop-toggles.patch rename to patches/server/0620-Add-missing-forceDrop-toggles.patch index 4435a4ef01fa..4df953f191cf 100644 --- a/patches/server/0621-Add-missing-forceDrop-toggles.patch +++ b/patches/server/0620-Add-missing-forceDrop-toggles.patch @@ -19,7 +19,7 @@ index 012586360a48369dad243dbb8892579a1dbcca90..edeb1899996e53d276d7481e8eddee65 } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 27e1ed14f2ae4f7922c7c3bc1ac21156bafcb0ba..eb61d539fcf15dfc51b3ea52c232a0c7ef4f1ca9 100644 +index 48df7de02e0765bfe62ae1b8a4c0029743430221..11694f103ebc522c2ad6eb6d494d39cc31ea3107 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -534,7 +534,9 @@ public class Panda extends Animal { diff --git a/patches/server/0622-Stinger-API.patch b/patches/server/0621-Stinger-API.patch similarity index 100% rename from patches/server/0622-Stinger-API.patch rename to patches/server/0621-Stinger-API.patch diff --git a/patches/server/0623-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0622-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 95% rename from patches/server/0623-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0622-Fix-incosistency-issue-with-empty-map-items-in-CB.patch index d2553b1897eb..926fba2c7f4e 100644 --- a/patches/server/0623-Fix-incosistency-issue-with-empty-map-items-in-CB.patch +++ b/patches/server/0622-Fix-incosistency-issue-with-empty-map-items-in-CB.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix incosistency issue with empty map items in CB diff --git a/src/main/java/net/minecraft/world/item/MapItem.java b/src/main/java/net/minecraft/world/item/MapItem.java -index d4b4da03dcd98336a15eaa045d6b0ce361b15b76..797415866a7f182d804f6b8e57ceb07a6ac2a20a 100644 +index f643d3c06bd8fc37f6c571a19d5691694b0ce8d3..d8dd99ec8bf7444c5a3c426db3a9c13e334dc0ff 100644 --- a/src/main/java/net/minecraft/world/item/MapItem.java +++ b/src/main/java/net/minecraft/world/item/MapItem.java @@ -69,7 +69,7 @@ public class MapItem extends ComplexItem { diff --git a/patches/server/0624-Add-System.out-err-catcher.patch b/patches/server/0623-Add-System.out-err-catcher.patch similarity index 98% rename from patches/server/0624-Add-System.out-err-catcher.patch rename to patches/server/0623-Add-System.out-err-catcher.patch index 046d8fa2ab4c..a3cbc7f6c2f4 100644 --- a/patches/server/0624-Add-System.out-err-catcher.patch +++ b/patches/server/0623-Add-System.out-err-catcher.patch @@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b28212bbf7678d73282d160bfeb0d246e93a8492..f4b1d6ed1e1065e6be175b7b68e29517ebfa2da8 100644 +index 08d43545262e2be74566c270f3dd2c600b773616..775e40dc356406cf289807abb83cda5ca186563f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -303,6 +303,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0625-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0624-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0625-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0624-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0626-Improve-boat-collision-performance.patch b/patches/server/0625-Improve-boat-collision-performance.patch similarity index 95% rename from patches/server/0626-Improve-boat-collision-performance.patch rename to patches/server/0625-Improve-boat-collision-performance.patch index 698493e81a6c..18d0eec23083 100644 --- a/patches/server/0626-Improve-boat-collision-performance.patch +++ b/patches/server/0625-Improve-boat-collision-performance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve boat collision performance diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 90f5e7d36719dc9b464dd6ba0335da035bab29d3..006a7876a0c8e1180dada6694992f596948be53b 100644 +index 765e4bc00a0526aab6e263dae7233f63f7f31498..eb80741b313daab36dcfeb1079eb0fbb19614904 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -121,6 +121,7 @@ public class Util { @@ -17,7 +17,7 @@ index 90f5e7d36719dc9b464dd6ba0335da035bab29d3..006a7876a0c8e1180dada6694992f596 }; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cfac6c239189c322fba11c86230f3ad34e0eae67..0292ca014fd8319fe9f5e7a1465ee5c112ef6515 100644 +index 8673e4eff6bd66b5cdf0fc6101aa9ff9c226dbfe..36ffb7f61e2e29a67c069336f251172130dda207 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1413,7 +1413,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0627-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0626-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 93% rename from patches/server/0627-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0626-Prevent-AFK-kick-while-watching-end-credits.patch index 3247d8d77be6..607a60728cf9 100644 --- a/patches/server/0627-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0626-Prevent-AFK-kick-while-watching-end-credits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent AFK kick while watching end credits diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d3d1195522e50b00663b274f68fae1cc5ed9d021..a1cb119e52005e09138930f5a07f919015402424 100644 +index bc3c72f66050460affcaeec272d4bbe3f49a4e73..0e92cf3206b6b694f6dca5c244ec30826ba4db9e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -390,7 +390,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0628-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0627-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0628-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0627-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0629-Add-PlayerSetSpawnEvent.patch b/patches/server/0628-Add-PlayerSetSpawnEvent.patch similarity index 97% rename from patches/server/0629-Add-PlayerSetSpawnEvent.patch rename to patches/server/0628-Add-PlayerSetSpawnEvent.patch index 9fbf8b329f14..2dfc85f43b34 100644 --- a/patches/server/0629-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0628-Add-PlayerSetSpawnEvent.patch @@ -49,7 +49,7 @@ index a2d0699e8427b2262a2396495111125eccafbb66..15db9368227dbc29d07d74e85bd126b3 } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 68c9e9e6185abdff5b7239002f4005417079c083..36e01f491565e70601464d957143c21aba17dfa1 100644 +index 6284e567d5247b18dba06bc9525c877882fe8d88..1951cecbd2ffe70077f0894cab4697ecbc2369c3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1356,7 +1356,7 @@ public class ServerPlayer extends Player { @@ -154,7 +154,7 @@ index 68c9e9e6185abdff5b7239002f4005417079c083..36e01f491565e70601464d957143c21a public SectionPos getLastSectionPos() { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 2a1b64e5d30cde7b2b2696a6cf5f3163071ab2d6..1bbcae2411205799b00dba7ee82c3ceb461289cf 100644 +index c143b9eb97920945ea36c8f0f36db6086961746c..6e56b55329e31682d3052949110762e8f9fc96da 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -872,7 +872,7 @@ public abstract class PlayerList { @@ -187,7 +187,7 @@ index ecaa7f0b2bf795f16187f11fa27f6d5d435ccbfe..acd5ec218b8d4c096f44ae2eec1379ee } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f1b52cccb8bb82def47c6dee8a63d51a095c112b..4475a59e867b0e2f64cdac41911af0e7fe721ad2 100644 +index b4980d4f99aae9b2ab9d408e77e50bc50ca2d450..149906e1ab9d1cf2d186fbe4a47ac258d7802dee 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1318,9 +1318,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0630-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0629-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0630-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0629-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0631-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0630-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0631-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0630-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0632-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0631-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0632-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0631-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0633-Add-EntityDamageItemEvent.patch b/patches/server/0632-Add-EntityDamageItemEvent.patch similarity index 97% rename from patches/server/0633-Add-EntityDamageItemEvent.patch rename to patches/server/0632-Add-EntityDamageItemEvent.patch index b98f07d51da8..66964564a322 100644 --- a/patches/server/0633-Add-EntityDamageItemEvent.patch +++ b/patches/server/0632-Add-EntityDamageItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityDamageItemEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 761a46c21aaddcd43b4c33f477658605648127e9..f23c1695840553ae14e49310b3708a801b5a0f8d 100644 +index b4f2b75960674e81c8189dc908523c56ae2e5079..4624fc8eb4a5e71d7874d25ca0a25975f65a6919 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -622,7 +622,7 @@ public final class ItemStack { diff --git a/patches/server/0634-Optimize-indirect-passenger-iteration.patch b/patches/server/0633-Optimize-indirect-passenger-iteration.patch similarity index 96% rename from patches/server/0634-Optimize-indirect-passenger-iteration.patch rename to patches/server/0633-Optimize-indirect-passenger-iteration.patch index d37ac5dd2c7f..2b01ec35e7f7 100644 --- a/patches/server/0634-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0633-Optimize-indirect-passenger-iteration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize indirect passenger iteration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6c3cbfa88a0d8e48fadb85dd52d2678567243ee8..c24baad4eabcb538a3b30970364632a28a80e06b 100644 +index 421da47d0de7d9a7ac2d8134487b642f7f59f98c..2fe7c03eea6cff2b44fb887711168871b5f487bd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3923,20 +3923,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0635-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0634-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0635-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0634-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0636-Clear-bucket-NBT-after-dispense.patch b/patches/server/0635-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0636-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0635-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0637-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0636-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0637-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0636-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0638-Add-BlockBreakBlockEvent.patch b/patches/server/0637-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0638-Add-BlockBreakBlockEvent.patch rename to patches/server/0637-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0639-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0638-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0639-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0638-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0640-More-CommandBlock-API.patch b/patches/server/0639-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0640-More-CommandBlock-API.patch rename to patches/server/0639-More-CommandBlock-API.patch diff --git a/patches/server/0641-Add-missing-team-sidebar-display-slots.patch b/patches/server/0640-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0641-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0640-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0642-Add-back-EntityPortalExitEvent.patch b/patches/server/0641-Add-back-EntityPortalExitEvent.patch similarity index 97% rename from patches/server/0642-Add-back-EntityPortalExitEvent.patch rename to patches/server/0641-Add-back-EntityPortalExitEvent.patch index 02d6197f1ca3..5e4b6f65c970 100644 --- a/patches/server/0642-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0641-Add-back-EntityPortalExitEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add back EntityPortalExitEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c24baad4eabcb538a3b30970364632a28a80e06b..a151f56038ab605116bf576a24e7baf10cc414e8 100644 +index 2fe7c03eea6cff2b44fb887711168871b5f487bd..ef5782537ac65ebe113046c4e292a27b1e24510a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3372,6 +3372,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0643-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0642-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 94% rename from patches/server/0643-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0642-Add-methods-to-find-targets-for-lightning-strikes.patch index 66feb07413e1..74272e17b014 100644 --- a/patches/server/0643-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0642-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9eb5d6623c10ad88ca0deb7bd92a0cc085aa78b7..249e7cfbb877a0a625ccde306994442669e257e7 100644 +index 813acbb57271e6568d35f2cbf9a637c44603aa95..290c9e34e945ce316908fa7e0dee0bb51bf3ef18 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -993,6 +993,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -31,7 +31,7 @@ index 9eb5d6623c10ad88ca0deb7bd92a0cc085aa78b7..249e7cfbb877a0a625ccde3069944426 blockposition1 = blockposition1.above(2); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index dbd39858661773fcfb8e22fc984525b9de133c9f..9d80c0c312990a3eb6cc9819eb926157df98cc9c 100644 +index 36bc006924599b8270c95e41e80dc51ad0262f61..e3f790c50881f5b0d47ff1b68912d5e85c9b91f9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -701,6 +701,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0644-Get-entity-default-attributes.patch b/patches/server/0643-Get-entity-default-attributes.patch similarity index 98% rename from patches/server/0644-Get-entity-default-attributes.patch rename to patches/server/0643-Get-entity-default-attributes.patch index 0bd7acf63fac..a496ab053555 100644 --- a/patches/server/0644-Get-entity-default-attributes.patch +++ b/patches/server/0643-Get-entity-default-attributes.patch @@ -81,7 +81,7 @@ index 0000000000000000000000000000000000000000..68044b8439c302114240d0ae4da93ab3 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 78778f010b458a8ca011ef636c2ce5f45feafa85..bff45bb3e7e8157070a56ddffe983953e7938f3b 100644 +index 833e66adf24a80e6ba30eff7b6abbb0f613bfb0d..ef6bf5026a8b5bbd65968faa33401bd98f10fe4c 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -560,6 +560,18 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0645-Left-handed-API.patch b/patches/server/0644-Left-handed-API.patch similarity index 90% rename from patches/server/0645-Left-handed-API.patch rename to patches/server/0644-Left-handed-API.patch index 41836756f370..d59098ccdfb1 100644 --- a/patches/server/0645-Left-handed-API.patch +++ b/patches/server/0644-Left-handed-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Left handed API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -index a5d3845acc607f640dace05a85f0089611c7d23a..b8d16e2e91e3bf1c004f887bf37e5502938fdd1d 100644 +index ae430c36ed433e337dd92f197f1717fbf00ac0e1..ad293ad9d5dcd7836a4fa29b4b687346e3ae516c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java @@ -147,6 +147,16 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { diff --git a/patches/server/0646-Add-more-advancement-API.patch b/patches/server/0645-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0646-Add-more-advancement-API.patch rename to patches/server/0645-Add-more-advancement-API.patch diff --git a/patches/server/0647-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0646-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0647-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0646-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0648-Add-critical-damage-API.patch b/patches/server/0647-Add-critical-damage-API.patch similarity index 97% rename from patches/server/0648-Add-critical-damage-API.patch rename to patches/server/0647-Add-critical-damage-API.patch index 05c26d3cc070..d905b8772db5 100644 --- a/patches/server/0648-Add-critical-damage-API.patch +++ b/patches/server/0647-Add-critical-damage-API.patch @@ -28,7 +28,7 @@ index df8c88bfa749e02f633350446101dcce05db7ac1..ed1277fad60992344b94f8a939febaca + // Paper end - add critical damage API } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 00c40d6b61a293786ead2dd66daa6d213a341b23..e90bfeca52d74d147616773640517995d98e19bc 100644 +index 322c8c437b4c5fa4a9db038736f24da24d45d646..30b603284e5fbc48ba7bc3cc6a69b8a4b94851a1 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1263,7 +1263,7 @@ public abstract class Player extends LivingEntity { @@ -55,7 +55,7 @@ index 00c40d6b61a293786ead2dd66daa6d213a341b23..e90bfeca52d74d147616773640517995 // CraftBukkit start - Only apply knockback if the damage hits - if (entityliving.hurt(this.damageSources().playerAttack(this).sweep(), f4)) { + if (entityliving.hurt(this.damageSources().playerAttack(this).sweep().critical(flag2), f4)) { // Paper - add critical damage API - entityliving.knockback(0.4000000059604645D, (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this); // Pa + entityliving.knockback(0.4000000059604645D, (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this); // Paper - Add EntityKnockbackByEntityEvent and EntityPushedByEntityAttackEvent } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -71,7 +71,7 @@ index 004c130fc03dc01ef75fabdb4ef1ef711e33cb95..ae4319c2532855315bc45995a39d7eb9 int k = entity.getRemainingFireTicks(); boolean flag1 = entity.getType().is(EntityTypeTags.DEFLECTS_ARROWS); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 8a7c90014beb5e044abc1fd6f8832bb3c78ffb12..1894fddf867df210d041307d72118eacde9fe5cb 100644 +index 2da51dc36e21e45ecc3cbbe357947f8359e538eb..6423af82fbae4267d06229fde2390bfb5569137a 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1043,7 +1043,7 @@ public class CraftEventFactory { diff --git a/patches/server/0649-Fix-issues-with-mob-conversion.patch b/patches/server/0648-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0649-Fix-issues-with-mob-conversion.patch rename to patches/server/0648-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0650-Add-isCollidable-methods-to-various-places.patch b/patches/server/0649-Add-isCollidable-methods-to-various-places.patch similarity index 96% rename from patches/server/0650-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0649-Add-isCollidable-methods-to-various-places.patch index 9623c465996c..2f54e7139831 100644 --- a/patches/server/0650-Add-isCollidable-methods-to-various-places.patch +++ b/patches/server/0649-Add-isCollidable-methods-to-various-places.patch @@ -39,7 +39,7 @@ index 928a301627134b49915b0ceaeabb7dc350605dc2..08716e757b2e100f7bc47a046f02db66 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index bff45bb3e7e8157070a56ddffe983953e7938f3b..580b6c134743c35d9eb1d98a2d038d1c8f10054c 100644 +index ef6bf5026a8b5bbd65968faa33401bd98f10fe4c..df57a3be211017e2ba7bd28571adaea59d0be969 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -572,6 +572,12 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0651-Goat-ram-API.patch b/patches/server/0650-Goat-ram-API.patch similarity index 100% rename from patches/server/0651-Goat-ram-API.patch rename to patches/server/0650-Goat-ram-API.patch diff --git a/patches/server/0652-Add-API-for-resetting-a-single-score.patch b/patches/server/0651-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0652-Add-API-for-resetting-a-single-score.patch rename to patches/server/0651-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0653-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0652-Add-Raw-Byte-Entity-Serialization.patch similarity index 98% rename from patches/server/0653-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0652-Add-Raw-Byte-Entity-Serialization.patch index 2291299aaf93..3bf88af036e6 100644 --- a/patches/server/0653-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0652-Add-Raw-Byte-Entity-Serialization.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add Raw Byte Entity Serialization public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a151f56038ab605116bf576a24e7baf10cc414e8..42eb530571c9f7854888e7f3f6a63ef10dba1b4e 100644 +index ef5782537ac65ebe113046c4e292a27b1e24510a..66df50658958c7ad799fbe9d2cdb676a90d8bb4e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2158,6 +2158,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0654-Vanilla-command-permission-fixes.patch b/patches/server/0653-Vanilla-command-permission-fixes.patch similarity index 97% rename from patches/server/0654-Vanilla-command-permission-fixes.patch rename to patches/server/0653-Vanilla-command-permission-fixes.patch index 5c126666ab03..c033d07434e1 100644 --- a/patches/server/0654-Vanilla-command-permission-fixes.patch +++ b/patches/server/0653-Vanilla-command-permission-fixes.patch @@ -33,7 +33,7 @@ index 899008b2980d13f1be6280cd8cb959c53a29bebf..d5f7da3502575f6847f3c22ab0e94284 private RedirectModifier modifier = null; private boolean forks; diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 565685d0f41311bc2281d11ee9d751bf4d4c93a3..2bad211edde8b494cae726915a332217ae232855 100644 +index 7802e72152628d1e853e5494ec1061fe01fefa5f..e20f4e896b8c059b2d614e74d0c38e418936db6c 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -257,6 +257,13 @@ public class Commands { diff --git a/patches/server/0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0654-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 86% rename from patches/server/0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0654-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index 620d79337a96..3868e7c91699 100644 --- a/patches/server/0655-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0654-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/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 249e7cfbb877a0a625ccde306994442669e257e7..2b4afc35c9e57977972fe0ddab0ae753f13d8828 100644 +index 290c9e34e945ce316908fa7e0dee0bb51bf3ef18..705c427097477cad2d75f0f1d7ee06f3311e759b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1558,9 +1558,13 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -20,15 +20,15 @@ index 249e7cfbb877a0a625ccde306994442669e257e7..2b4afc35c9e57977972fe0ddab0ae753 + // chests for example can apply physics to the world + // so instead we just change the active container and call the event for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((net.minecraft.world.Container) tileentity).getViewers())) { -- h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper -+ ((org.bukkit.craftbukkit.entity.CraftHumanEntity)h).getHandle().closeUnloadedInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper +- h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper - Inventory close reason ++ ((org.bukkit.craftbukkit.entity.CraftHumanEntity) h).getHandle().closeUnloadedInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper - Inventory close reason } + // Paper end - this area looks like it can load chunks, change the behavior } } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 09ee06b89f2bda0245c2858ffc19a5893494d24a..f01965be7ae893de26dbf0d57887cd66e71418f6 100644 +index 1951cecbd2ffe70077f0894cab4697ecbc2369c3..8d657cdb516b6b439b29100c48cccd5b27178fe9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1630,6 +1630,18 @@ public class ServerPlayer extends Player { @@ -51,13 +51,13 @@ index 09ee06b89f2bda0245c2858ffc19a5893494d24a..f01965be7ae893de26dbf0d57887cd66 @Override public void doCloseContainer() { diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 09e1790f3370f723d8da83097bec433c68eec87d..b90db32be29b198376e696506e1c3ea4cd67c301 100644 +index 30b603284e5fbc48ba7bc3cc6a69b8a4b94851a1..80caada014bae0571a5aa6aa67d9bb87f89db17f 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -508,6 +508,11 @@ public abstract class Player extends LivingEntity { this.containerMenu = this.inventoryMenu; } - // Paper end + // Paper end - Inventory close reason + // Paper start - special close for unloaded inventory + public void closeUnloadedInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) { + this.containerMenu = this.inventoryMenu; diff --git a/patches/server/0656-Fix-GameProfileCache-concurrency.patch b/patches/server/0655-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0656-Fix-GameProfileCache-concurrency.patch rename to patches/server/0655-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0657-Improve-and-expand-AsyncCatcher.patch b/patches/server/0656-Improve-and-expand-AsyncCatcher.patch similarity index 97% rename from patches/server/0657-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0656-Improve-and-expand-AsyncCatcher.patch index 7c1452f4d81c..54bb833e5e90 100644 --- a/patches/server/0657-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0656-Improve-and-expand-AsyncCatcher.patch @@ -17,7 +17,7 @@ Async catch modifications to critical entity state Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f111ab02d91e936284fc183969117c172127a000..db12ed933d09090f45ff2aa1045d2990901b27a2 100644 +index 0e92cf3206b6b694f6dca5c244ec30826ba4db9e..4a6a8de70c65ecae0a53df69881326b9b953b9e8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1570,6 +1570,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -29,7 +29,7 @@ index f111ab02d91e936284fc183969117c172127a000..db12ed933d09090f45ff2aa1045d2990 if (player.isRemoved()) { LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName()); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 48d5f1522e1bfda886e1791055bbddab510d464b..93c9fae42a1115f4442e8633946dc0ebde4606bb 100644 +index 36ffb7f61e2e29a67c069336f251172130dda207..dfc62f5cfad3e0e0f5f25c614055426bbfcd5327 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1118,7 +1118,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -166,7 +166,7 @@ index bbbf6dd8e566ecdca8794e3b03765fe7e426a2bd..66ab901956ca394c251c420338643d39 PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason}); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 9fd6e12aedc670fcb3523e8093e922bf385723d7..189c0ab39f56e7a6d92aa6ee24f29a232b446cdf 100644 +index e3f790c50881f5b0d47ff1b68912d5e85c9b91f9..00b7ce38044ac08133d06472efc6eb92b56efad2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1803,6 +1803,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0658-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0657-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 98% rename from patches/server/0658-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0657-Add-paper-mobcaps-and-paper-playermobcaps.patch index 85903424e391..481332ab262c 100644 --- a/patches/server/0658-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0657-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -257,7 +257,7 @@ index 0000000000000000000000000000000000000000..d3b39d88a72ca25057fd8574d32f28db + } +} diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 4aa2a174400fe879501571c175d5ac4d09ac7de3..6fbd136f4bbfa34ef88a7743c63a542ed0cc2c02 100644 +index db22e35d19597488a08ba3cd710ced7da77f8b5e..a9b452be0454082f7d62f19fbac574113ed2db64 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -190,6 +190,16 @@ public final class NaturalSpawner { @@ -294,7 +294,7 @@ index 775e40dc356406cf289807abb83cda5ca186563f..b603541d56c7cee7aff8d3448d18c76c } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 189c0ab39f56e7a6d92aa6ee24f29a232b446cdf..3dc6f7f376f845ec36663d147a2e08ecc077700a 100644 +index 00b7ce38044ac08133d06472efc6eb92b56efad2..3e25f22ffd656cded58634049d48f19d97694496 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1761,9 +1761,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0659-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0658-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0659-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0658-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0660-Optimise-general-POI-access.patch b/patches/server/0659-Optimise-general-POI-access.patch similarity index 99% rename from patches/server/0660-Optimise-general-POI-access.patch rename to patches/server/0659-Optimise-general-POI-access.patch index 332786d62723..a92e0b765938 100644 --- a/patches/server/0660-Optimise-general-POI-access.patch +++ b/patches/server/0659-Optimise-general-POI-access.patch @@ -996,7 +996,7 @@ index 54db563d80bbabd87a2be6f5ead92b482ac07b10..4aac1979cf57300825a999c876fcf24d return Optional.empty(); } else { diff --git a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java -index 08325c055b04355089d75031522c7b74d83c6cca..42212d4533ce25d1cfcf4c58f1fc88791d546cff 100644 +index f610ece91a04bd321fdd75814a7b40e622c2bd1e..21822f334a54b7270ea43fa6d3d0829ac0f9f6b9 100644 --- a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java +++ b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java @@ -51,18 +51,39 @@ public class PortalForcer { diff --git a/patches/server/0661-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/0660-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/0661-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/0660-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/0662-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0661-Manually-inline-methods-in-BlockPosition.patch similarity index 92% rename from patches/server/0662-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0661-Manually-inline-methods-in-BlockPosition.patch index 77789c472c22..e07cb082f4c4 100644 --- a/patches/server/0662-Manually-inline-methods-in-BlockPosition.patch +++ b/patches/server/0661-Manually-inline-methods-in-BlockPosition.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Manually inline methods in BlockPosition diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 2e5678554313d0e14d2d855a24c71acce1e1a155..0e75ee7dbb601b795cdbf6079992b4dbfc3cd4ce 100644 +index 50ba9e57d60df7308f7445540b3f412a0edf6065..e17fa30966dea2836fb791becd032fc7d5cc2611 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -515,9 +515,9 @@ public class BlockPos extends Vec3i { @@ -45,7 +45,7 @@ index 2e5678554313d0e14d2d855a24c71acce1e1a155..0e75ee7dbb601b795cdbf6079992b4db } diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java -index e87ef99260bff134529e00b9a75381cecaec01a4..f14cc137fc0a56495487d64542074b31746b965a 100644 +index 6d760fa1dbd13a66bff4695edc28f4ab4b3e44a3..beadef19ee136c27601f0d116a86967344c2e403 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java +++ b/src/main/java/net/minecraft/core/Vec3i.java @@ -19,9 +19,9 @@ public class Vec3i implements Comparable { diff --git a/patches/server/0663-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0662-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0663-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0662-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0663-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 94% rename from patches/server/0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0663-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index bdb1dc3be3b1..8eed2d279591 100644 --- a/patches/server/0664-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0663-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -10,7 +10,7 @@ chunks did get inlined, but the standard CPS.getChunkAt method was not inlined. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4b0bba18ba997f9dc3f0bd6e67af3538106891dc..87edfd96ec2ae00971711b46304134b89e6572a0 100644 +index d538dc2f15b3b1553109df99f50457ee79732e43..d0470e78b55d5973d9adbf4dd1496ccad4035243 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -457,6 +457,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0665-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0664-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 93% rename from patches/server/0665-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0664-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch index 16b343c84c4b..8a47c1cb5313 100644 --- a/patches/server/0665-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch +++ b/patches/server/0664-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch @@ -8,7 +8,7 @@ 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/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java -index e4b3a70ff9f906a10f2ba3c07642193ca3269db7..7f7c05c498dfe11842a0c35d6e8c2c428cf7647b 100644 +index af8a8e85742497e8dac7a59a3cd5938e09580e45..cccc3741227402b24c76d31a339d01323610b9f0 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java @@ -51,6 +51,7 @@ public class ChunkStorage implements AutoCloseable { diff --git a/patches/server/0666-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0665-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 100% rename from patches/server/0666-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/server/0665-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch diff --git a/patches/server/0667-Time-scoreboard-search.patch b/patches/server/0666-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0667-Time-scoreboard-search.patch rename to patches/server/0666-Time-scoreboard-search.patch diff --git a/patches/server/0668-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0667-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/0668-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/0667-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/0669-Execute-chunk-tasks-mid-tick.patch b/patches/server/0668-Execute-chunk-tasks-mid-tick.patch similarity index 97% rename from patches/server/0669-Execute-chunk-tasks-mid-tick.patch rename to patches/server/0668-Execute-chunk-tasks-mid-tick.patch index dc5d7301c58a..918a6966285b 100644 --- a/patches/server/0669-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/0668-Execute-chunk-tasks-mid-tick.patch @@ -123,7 +123,7 @@ index a35957eef3f6ab2dcfebc01eaa9bea1b249599e2..32129fdd5b2542a0acb828fb843fa4e4 } } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2b4afc35c9e57977972fe0ddab0ae753f13d8828..0280f81406eb248d41673d2e3ae1a317357b32cd 100644 +index 705c427097477cad2d75f0f1d7ee06f3311e759b..ec64866f695dbc62dfedf6c1de5abb130edd9cfa 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -216,6 +216,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -151,7 +151,7 @@ index 2b4afc35c9e57977972fe0ddab0ae753f13d8828..0280f81406eb248d41673d2e3ae1a317 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 87edfd96ec2ae00971711b46304134b89e6572a0..817e9df60e6524625780683b4260d4f8b62e00b3 100644 +index d0470e78b55d5973d9adbf4dd1496ccad4035243..34156fb87cfcd453b11a13a466239a7d56383000 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -926,6 +926,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0670-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0669-Oprimise-map-impl-for-tracked-players.patch similarity index 100% rename from patches/server/0670-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0669-Oprimise-map-impl-for-tracked-players.patch diff --git a/patches/server/0671-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0670-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0671-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0670-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0672-Optimise-random-block-ticking.patch b/patches/server/0671-Optimise-random-block-ticking.patch similarity index 99% rename from patches/server/0672-Optimise-random-block-ticking.patch rename to patches/server/0671-Optimise-random-block-ticking.patch index 23c72bf75855..d94de95efe85 100644 --- a/patches/server/0672-Optimise-random-block-ticking.patch +++ b/patches/server/0671-Optimise-random-block-ticking.patch @@ -90,7 +90,7 @@ index 0000000000000000000000000000000000000000..7d93652c1abbb6aee6eb7c26cf35d4d0 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0280f81406eb248d41673d2e3ae1a317357b32cd..bc887fd2788f1c56ed3b8a10ad15cfc23f065138 100644 +index ec64866f695dbc62dfedf6c1de5abb130edd9cfa..15b11c48e78318d382e88c3dba322ede537ec005 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -855,6 +855,10 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -324,7 +324,7 @@ index 6bbcdd34fb89ea5774e825de8f9a588552716fc2..2a3f1d14a4b24a3219d191b4f2e97ed7 public BlockPos getHomePos() { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 817e9df60e6524625780683b4260d4f8b62e00b3..bf2376c484bfec238c4fe2a1298cf3f8ff824b38 100644 +index 34156fb87cfcd453b11a13a466239a7d56383000..4e51db012b4afc606734ab93c7ebc5101cabe6c6 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1397,10 +1397,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0673-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/0672-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 100% rename from patches/server/0673-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/0672-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch diff --git a/patches/server/0674-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/0673-Use-Velocity-compression-and-cipher-natives.patch similarity index 99% rename from patches/server/0674-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/0673-Use-Velocity-compression-and-cipher-natives.patch index 547a0d661917..032492558901 100644 --- a/patches/server/0674-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/0673-Use-Velocity-compression-and-cipher-natives.patch @@ -264,7 +264,7 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..f67f59f287d9a5cdd685b6b56ed1daf3 return this.threshold; } diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 7e966e072476c085d41942a02a5f0f3ff1ac72bc..634b20f73d51141cb36115d2a0dda4c6d10cf266 100644 +index 18228713d61cbc4b6fad881ace991e5e6c64e57d..28adc086f7bc1b6f403e65c5db51b267c90f2f37 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -669,11 +669,28 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch b/patches/server/0674-Detail-more-information-in-watchdog-dumps.patch similarity index 98% rename from patches/server/0675-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/0674-Detail-more-information-in-watchdog-dumps.patch index 85c6a4609f99..521520be634f 100644 --- a/patches/server/0675-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/0674-Detail-more-information-in-watchdog-dumps.patch @@ -76,7 +76,7 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index bc887fd2788f1c56ed3b8a10ad15cfc23f065138..28e6af9e265c1d8328e8e80ec7e519e244caf297 100644 +index 15b11c48e78318d382e88c3dba322ede537ec005..0c60fa914310c7b6706e72cd3a61630873005102 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1239,7 +1239,26 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -122,7 +122,7 @@ index bc887fd2788f1c56ed3b8a10ad15cfc23f065138..28e6af9e265c1d8328e8e80ec7e519e2 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 42eb530571c9f7854888e7f3f6a63ef10dba1b4e..5682ec12d9a54979022978421dd8875a90ed9682 100644 +index 66df50658958c7ad799fbe9d2cdb676a90d8bb4e..d548a262515548808ffe075606ee2f2dba38740f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1030,7 +1030,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0676-Distance-manager-tick-timings.patch b/patches/server/0675-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0676-Distance-manager-tick-timings.patch rename to patches/server/0675-Distance-manager-tick-timings.patch diff --git a/patches/server/0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 90% rename from patches/server/0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch index 7f1db1c715d9..0ae49a07a39a 100644 --- a/patches/server/0677-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 28e6af9e265c1d8328e8e80ec7e519e244caf297..4f48e7ee15f381e0bcf71fc4c7d37daf2dd4f7fd 100644 +index 0c60fa914310c7b6706e72cd3a61630873005102..4b0d854ed9fc16ecbdfabca4192969aa1beeaa19 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2676,6 +2676,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -18,5 +18,5 @@ index 28e6af9e265c1d8328e8e80ec7e519e244caf297..4f48e7ee15f381e0bcf71fc4c7d37daf + } + // Paper end - Fix merchant inventory not closing on entity removal for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) { - h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper + h.closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason.UNLOADED); // Paper - Inventory close reason } diff --git a/patches/server/0678-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0677-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0678-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0677-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 92% rename from patches/server/0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index bc49646fe667..b6f183623ee0 100644 --- a/patches/server/0679-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5bc6b7298c253bd2ee1d5a16b8f237c824f8719a..f93d3a933fb980c3fdc1f136c79807ce8517a235 100644 +index 4a6a8de70c65ecae0a53df69881326b9b953b9e8..c84a8e6fc5f136b12bc542ec64a6686386bfe0cf 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -733,6 +733,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0680-Add-packet-limiter-config.patch b/patches/server/0679-Add-packet-limiter-config.patch similarity index 98% rename from patches/server/0680-Add-packet-limiter-config.patch rename to patches/server/0679-Add-packet-limiter-config.patch index 591d54d5d903..7ed138c36fe7 100644 --- a/patches/server/0680-Add-packet-limiter-config.patch +++ b/patches/server/0679-Add-packet-limiter-config.patch @@ -24,7 +24,7 @@ and an action can be defined: DROP or KICK If interval or rate are less-than 0, the limit is ignored diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index f4807a005442111909fa0a1cffa2decb85667a63..81fb880cdcd433bd692461b3d7b315f30d2747f7 100644 +index 5d73043dc9847ae195cef804fa0b0f4bf6db06f2..e18406b4172499b0cb116a45cd5a968ae3e3fdce 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -132,6 +132,22 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0681-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0680-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0681-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0680-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0682-Ensure-valid-vehicle-status.patch b/patches/server/0681-Ensure-valid-vehicle-status.patch similarity index 91% rename from patches/server/0682-Ensure-valid-vehicle-status.patch rename to patches/server/0681-Ensure-valid-vehicle-status.patch index 870a699ba313..f98873e291df 100644 --- a/patches/server/0682-Ensure-valid-vehicle-status.patch +++ b/patches/server/0681-Ensure-valid-vehicle-status.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure valid vehicle status diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ca66a8ebb4ae2d3ee9cf88412bbb20d5f812d050..6571692d00f88947316454e2f10cac30e3756ac0 100644 +index 8d657cdb516b6b439b29100c48cccd5b27178fe9..5d30d67745ce3988f42457137f43b15b75a96a0c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -576,7 +576,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0683-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0682-Prevent-softlocked-end-exit-portal-generation.patch similarity index 92% rename from patches/server/0683-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0682-Prevent-softlocked-end-exit-portal-generation.patch index 71978b46d895..6c29d863247f 100644 --- a/patches/server/0683-Prevent-softlocked-end-exit-portal-generation.patch +++ b/patches/server/0682-Prevent-softlocked-end-exit-portal-generation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent softlocked end exit portal generation diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index c29ccc66c95faba425acb0ca06af15e2783b4bae..02acd171f1d3d783b7cab56c69feca5325878fa8 100644 +index 5b14d63e7c354cd51d67ddc045cc86a0f7b36811..2d74efff30c93ba664cf8dbf20e47dcdbd767d3f 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -466,6 +466,11 @@ public class EndDragonFight { diff --git a/patches/server/0684-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0683-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0684-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0683-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0685-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0684-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0685-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0684-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0686-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0685-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0686-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0685-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0687-Preserve-overstacked-loot.patch b/patches/server/0686-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0687-Preserve-overstacked-loot.patch rename to patches/server/0686-Preserve-overstacked-loot.patch diff --git a/patches/server/0688-Update-head-rotation-in-missing-places.patch b/patches/server/0687-Update-head-rotation-in-missing-places.patch similarity index 93% rename from patches/server/0688-Update-head-rotation-in-missing-places.patch rename to patches/server/0687-Update-head-rotation-in-missing-places.patch index 30130e3939b8..75018caea04e 100644 --- a/patches/server/0688-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0687-Update-head-rotation-in-missing-places.patch @@ -8,7 +8,7 @@ This is because bukkit uses a separate head rotation field for yaw. This issue only applies to players. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5682ec12d9a54979022978421dd8875a90ed9682..a6fc204fce8f44d772ff0f438c6d62850b0e224f 100644 +index d548a262515548808ffe075606ee2f2dba38740f..fe0f57dd69cb5477b64317ef940e3f748037d0e0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1917,6 +1917,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0689-prevent-unintended-light-block-manipulation.patch b/patches/server/0688-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0689-prevent-unintended-light-block-manipulation.patch rename to patches/server/0688-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0690-Fix-CraftCriteria-defaults-map.patch b/patches/server/0689-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0690-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0689-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0691-Fix-upstreams-block-state-factories.patch b/patches/server/0690-Fix-upstreams-block-state-factories.patch similarity index 99% rename from patches/server/0691-Fix-upstreams-block-state-factories.patch rename to patches/server/0690-Fix-upstreams-block-state-factories.patch index 2d18a1e309e5..23a0382bf41e 100644 --- a/patches/server/0691-Fix-upstreams-block-state-factories.patch +++ b/patches/server/0690-Fix-upstreams-block-state-factories.patch @@ -26,7 +26,7 @@ index d156f7cc71050f13b2feca00c52ca6b64572b60e..e3557f4c8cee7c88b3e352cd246078da if (state instanceof InventoryHolder) return (InventoryHolder) state; return null; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java -index f7f211b4f08a7f21a183078affd6f875aa30dd50..a8290624d8c5b19506f628d049984d2e59c4423c 100644 +index f1f6d85399db86ce7aee1fccde51d6259b427e7e..53d466bfa66573f178fd0e0247bcefc04902c38f 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java @@ -13,7 +13,7 @@ import org.bukkit.persistence.PersistentDataContainer; diff --git a/patches/server/0692-Configurable-feature-seeds.patch b/patches/server/0691-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0692-Configurable-feature-seeds.patch rename to patches/server/0691-Configurable-feature-seeds.patch diff --git a/patches/server/0693-Add-root-admin-user-detection.patch b/patches/server/0692-Add-root-admin-user-detection.patch similarity index 97% rename from patches/server/0693-Add-root-admin-user-detection.patch rename to patches/server/0692-Add-root-admin-user-detection.patch index 04fc988ec436..61ae81963dd5 100644 --- a/patches/server/0693-Add-root-admin-user-detection.patch +++ b/patches/server/0692-Add-root-admin-user-detection.patch @@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..6bd0afddbcc461149dfe9a5c7a86fff6 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 3389fca10dac966b8ec61e5bb3ef3f78c3d1dc7f..753bec96a829a153dc54b5e1013359b86f1776b3 100644 +index 01535fc66fbf5fb99ee5705eb6db9b6552ba79b9..bb3acbe0ad049703245c51a92539376811365eb2 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -179,6 +179,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0694-Always-allow-item-changing-in-Fireball.patch b/patches/server/0693-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0694-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0693-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0695-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0694-don-t-attempt-to-teleport-dead-entities.patch similarity index 91% rename from patches/server/0695-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0694-don-t-attempt-to-teleport-dead-entities.patch index f0a2e3372e5d..9ad1287070fb 100644 --- a/patches/server/0695-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0694-don-t-attempt-to-teleport-dead-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a6fc204fce8f44d772ff0f438c6d62850b0e224f..78034cef7c7555eb4f772a618662a8ef9d0b7083 100644 +index fe0f57dd69cb5477b64317ef940e3f748037d0e0..22d25fea0c995bf1509bb78d5f10e2b63eb484cb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -793,7 +793,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0696-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0695-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 94% rename from patches/server/0696-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0695-Prevent-excessive-velocity-through-repeated-crits.patch index 17cabbe4f050..0f925cea8f17 100644 --- a/patches/server/0696-Prevent-excessive-velocity-through-repeated-crits.patch +++ b/patches/server/0695-Prevent-excessive-velocity-through-repeated-crits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b49ae2a36a426deb5ce393d854df762c5a256fbd..f601b043edb51afbd040b7ec72e00dcc7786d3da 100644 +index dfc62f5cfad3e0e0f5f25c614055426bbfcd5327..3fca4aad128195325d9d00433fae09f193f8f868 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2677,13 +2677,26 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0697-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0696-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 93% rename from patches/server/0697-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0696-Remove-client-side-code-using-deprecated-for-removal.patch index 727f2cdce901..c5c2fdc4f3dc 100644 --- a/patches/server/0697-Remove-client-side-code-using-deprecated-for-removal.patch +++ b/patches/server/0696-Remove-client-side-code-using-deprecated-for-removal.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Remove client-side code using deprecated for removal Fixes warnings on build diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 006a7876a0c8e1180dada6694992f596948be53b..169edd91e25f3c1d27f8a9e2bca58a6143c8a891 100644 +index eb80741b313daab36dcfeb1079eb0fbb19614904..b40864e41e1506884fdefefbf3cf4833a8f706c3 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -952,17 +952,7 @@ public class Util { diff --git a/patches/server/0698-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0697-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0698-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0697-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0699-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0698-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 98% rename from patches/server/0699-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0698-Prevent-sending-oversized-item-data-in-equipment-and.patch index ee7e6297f133..5985cfea035f 100644 --- a/patches/server/0699-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0698-Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -34,7 +34,7 @@ index e0802f1cb73a80b08482832c2b269ac8485d5c1a..945a0317e9e49a159a1f42882a0a267a } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f601b043edb51afbd040b7ec72e00dcc7786d3da..de1e496c2cb75932dee84eb2b7532ad48340c504 100644 +index 3fca4aad128195325d9d00433fae09f193f8f868..c8592032106e1e355fa51428cde03ec3c4184953 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3188,7 +3188,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0700-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0699-Hide-unnecessary-itemmeta-from-clients.patch similarity index 97% rename from patches/server/0700-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0699-Hide-unnecessary-itemmeta-from-clients.patch index 11f579a459b8..b97231a3bae2 100644 --- a/patches/server/0700-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0699-Hide-unnecessary-itemmeta-from-clients.patch @@ -18,7 +18,7 @@ index 945a0317e9e49a159a1f42882a0a267a2141e86d..e9fd9590e90e58fd4c31985a704a4511 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f93d3a933fb980c3fdc1f136c79807ce8517a235..643b98097bf77c55961cf1722faad6fb63504abd 100644 +index c84a8e6fc5f136b12bc542ec64a6686386bfe0cf..2c4da4f18a217269f17e281cf99a573e759a5d52 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2561,8 +2561,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -33,7 +33,7 @@ index f93d3a933fb980c3fdc1f136c79807ce8517a235..643b98097bf77c55961cf1722faad6fb } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e7d72a7495d07c793ce3f5110d476f1cc3ed4469..551100c72bd20d7ff224acf3750fe3dc9d73a483 100644 +index c8592032106e1e355fa51428cde03ec3c4184953..51e8cfeb21206793245b54379c5a14266d3e67bd 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3190,7 +3190,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0701-Fix-Spigot-growth-modifiers.patch b/patches/server/0700-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0701-Fix-Spigot-growth-modifiers.patch rename to patches/server/0700-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0702-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0701-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0702-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0701-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0703-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0702-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0703-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0702-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0704-Optimize-HashMapPalette.patch b/patches/server/0703-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0704-Optimize-HashMapPalette.patch rename to patches/server/0703-Optimize-HashMapPalette.patch diff --git a/patches/server/0705-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0704-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 98% rename from patches/server/0705-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0704-Allow-delegation-to-vanilla-chunk-gen.patch index 1566d8e66610..56b54104c807 100644 --- a/patches/server/0705-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0704-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 9491eb5b47defd7949fe2e691d63d3767be1f337..ad0323b8db375134f6bbb9a6e944c822a994aa19 100644 +index b603541d56c7cee7aff8d3448d18c76cd72b63cb..4dc80d0cbd414cde8137d7030d7fe90d1fac424a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2459,6 +2459,88 @@ public final class CraftServer implements Server { diff --git a/patches/server/0706-Collision-optimisations.patch b/patches/server/0705-Collision-optimisations.patch similarity index 99% rename from patches/server/0706-Collision-optimisations.patch rename to patches/server/0705-Collision-optimisations.patch index c00b088fced6..0fdbaa5dd56b 100644 --- a/patches/server/0706-Collision-optimisations.patch +++ b/patches/server/0705-Collision-optimisations.patch @@ -2179,7 +2179,7 @@ index 073c717bb676b9e99aada00c349fb7eee91df1e7..2a9fc1f1dfc0c5894c1e74dad5a79ae9 private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) { this.data3d = id; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 37132a52849c7618fe863b6f5349ee6154cf42ad..7cf66e10efede0cb55239e1a1b3862d85a917f3e 100644 +index 5d30d67745ce3988f42457137f43b15b75a96a0c..c76358e108a72297baf92b234d43145dde09e99f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -469,7 +469,7 @@ public class ServerPlayer extends Player { @@ -2201,7 +2201,7 @@ index 37132a52849c7618fe863b6f5349ee6154cf42ad..7cf66e10efede0cb55239e1a1b3862d8 } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 1f14b904807d4b593b608c8dc7a97bd8c320eceb..0da976438be3de7b82e8b1e3ce06d01c00dc33f0 100644 +index 6e56b55329e31682d3052949110762e8f9fc96da..00f65551b82935a6b7b88cba4650404b9311f8f2 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -909,7 +909,7 @@ public abstract class PlayerList { @@ -2214,7 +2214,7 @@ index 1f14b904807d4b593b608c8dc7a97bd8c320eceb..0da976438be3de7b82e8b1e3ce06d01c entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 78034cef7c7555eb4f772a618662a8ef9d0b7083..515c948cce0066cfd6e292afd65ceefc320ed553 100644 +index 22d25fea0c995bf1509bb78d5f10e2b63eb484cb..696497771e607cd07bd8414deeffdd0f211a5ef6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1216,9 +1216,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2440,13 +2440,13 @@ index 78034cef7c7555eb4f772a618662a8ef9d0b7083..515c948cce0066cfd6e292afd65ceefc } diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 5bda9612cbc7c233ad0195cb4e943de063130d00..81b54fd9f867666d688068d39344c7e19ed639c3 100644 +index e3412f9dd86dddd241bea8f6dcaeed77a7e67f08..92b4eecf7b8ce07334256a216d9caf241fa5363b 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -353,7 +353,7 @@ public class ArmorStand extends LivingEntity { @Override protected void pushEntities() { - if (!this.level().paperConfig().entities.armorStands.doCollisionEntityLookups) return; // Paper + if (!this.level().paperConfig().entities.armorStands.doCollisionEntityLookups) return; // Paper - Option to prevent armor stands from doing entity lookups - List list = this.level().getEntities((Entity) this, this.getBoundingBox(), ArmorStand.RIDABLE_MINECARTS); + List list = this.level().getEntitiesOfClass(AbstractMinecart.class, this.getBoundingBox(), ArmorStand.RIDABLE_MINECARTS); // Paper - optimise collisions Iterator iterator = list.iterator(); @@ -2600,7 +2600,7 @@ index a25497eec004add7408a63b1a0f09e3fa443b324..9f892de55ab03367daed4c30cc44c9dd // Paper start diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 38ad089c87bcc3f81998142e49edae4f4fad8ba9..8c363306b5dac302ab3c26a245aa4a768b304ed4 100644 +index 4e51db012b4afc606734ab93c7ebc5101cabe6c6..205323c8e643c77b7aefe588d5ee2f8b2b29ede4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -299,6 +299,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -3002,7 +3002,7 @@ index 38ad089c87bcc3f81998142e49edae4f4fad8ba9..8c363306b5dac302ab3c26a245aa4a76 + return !io.papermc.paper.util.CollisionUtil.getEntityHardCollisions(this, entity, box, null, flags, null); + // Paper end - optimise collisions } - // Paper end + // Paper end - Option to prevent armor stands from doing entity lookups diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java index af62781cc96354c87aa63d4f03f9e25b81959081..6c4fd56956982eee743b4dea4e8b925891dd3b6f 100644 diff --git a/patches/server/0707-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/0706-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 99% rename from patches/server/0707-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/0706-Optimise-collision-checking-in-player-move-packet-ha.patch index a6d5db3ba1e9..a3ff14cfda15 100644 --- a/patches/server/0707-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/0706-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -8,7 +8,7 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN CHECK ME diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 643b98097bf77c55961cf1722faad6fb63504abd..ffe050bed7096b147b327f3adb7d1d0d699bce7a 100644 +index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f784bd9c4a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -540,7 +540,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0708-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0707-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0708-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0707-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0709-Add-more-Campfire-API.patch b/patches/server/0708-Add-more-Campfire-API.patch similarity index 98% rename from patches/server/0709-Add-more-Campfire-API.patch rename to patches/server/0708-Add-more-Campfire-API.patch index 6f1d195e6626..1133eb93bfa0 100644 --- a/patches/server/0709-Add-more-Campfire-API.patch +++ b/patches/server/0708-Add-more-Campfire-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add more Campfire API diff --git a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java -index daeced350310020b99ab0244daf7f7a69c29b069..6b4ced63bf489a02b1e11ab9b1dd768e2ea0861d 100644 +index 5da0c6bf4f04448f640a11931b2cc5b91cf83f12..9f7b49a6a50cb53d914c8f4b5132c035c5ab71da 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java @@ -42,6 +42,7 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable { diff --git a/patches/server/0710-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0709-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0710-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0709-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0711-Fix-tripwire-state-inconsistency.patch b/patches/server/0710-Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/server/0711-Fix-tripwire-state-inconsistency.patch rename to patches/server/0710-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/0712-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0711-Forward-CraftEntity-in-teleport-command.patch similarity index 95% rename from patches/server/0712-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0711-Forward-CraftEntity-in-teleport-command.patch index a1ad82d694c4..d63ed2b34c84 100644 --- a/patches/server/0712-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0711-Forward-CraftEntity-in-teleport-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 515c948cce0066cfd6e292afd65ceefc320ed553..11e57b335150fcf9030e23a060f2608d97e09eb1 100644 +index 696497771e607cd07bd8414deeffdd0f211a5ef6..85c48c92987bd87ee5e8c0ffb8847447e7ba4b78 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3530,6 +3530,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0713-Improve-scoreboard-entries.patch b/patches/server/0712-Improve-scoreboard-entries.patch similarity index 97% rename from patches/server/0713-Improve-scoreboard-entries.patch rename to patches/server/0712-Improve-scoreboard-entries.patch index 6d866ae345cb..8acac86ce32a 100644 --- a/patches/server/0713-Improve-scoreboard-entries.patch +++ b/patches/server/0712-Improve-scoreboard-entries.patch @@ -25,7 +25,7 @@ index da1e4496d78a2c1b258ff8bb316414cb8a662ba2..b36e5574c10e6d70a399e2ac0704fd4f public void unregister() { CraftScoreboard scoreboard = this.checkState(); diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java -index fdb30a7e728798c59742b812ef28c5094d6093fc..e7d3637927e92c181ecc2e21a3456918afb30822 100644 +index c650fc3712de01184509a03f1d1b388859e163d7..253574890a9ed23d38a84680ba1eb221dc72b310 100644 --- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java +++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboard.java @@ -235,6 +235,26 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard { diff --git a/patches/server/0714-Entity-powdered-snow-API.patch b/patches/server/0713-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0714-Entity-powdered-snow-API.patch rename to patches/server/0713-Entity-powdered-snow-API.patch diff --git a/patches/server/0715-Add-API-for-item-entity-health.patch b/patches/server/0714-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0715-Add-API-for-item-entity-health.patch rename to patches/server/0714-Add-API-for-item-entity-health.patch diff --git a/patches/server/0716-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/0716-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/0717-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0716-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0717-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0716-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0718-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0717-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0718-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0717-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0719-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0718-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0719-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0718-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0720-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0719-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0720-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0719-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0721-Fix-bees-aging-inside-hives.patch b/patches/server/0720-Fix-bees-aging-inside-hives.patch similarity index 97% rename from patches/server/0721-Fix-bees-aging-inside-hives.patch rename to patches/server/0720-Fix-bees-aging-inside-hives.patch index 10b750e8533f..528be5b54a94 100644 --- a/patches/server/0721-Fix-bees-aging-inside-hives.patch +++ b/patches/server/0720-Fix-bees-aging-inside-hives.patch @@ -7,7 +7,7 @@ Fixes bees incorrectly being aged up due to upstream's resetting the ticks inside hive on a failed release diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index 6c42f7e7fbd776a59fbd5aa3723752a130d3090f..560a6e7b7888a87011aa48d7c9a17949bf086f8d 100644 +index d36373cb1fda4d4f2b41dd181306ea697a2fe7a8..56b328c64bea0ffd51930d8ba15fb87a36e6d8a1 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java @@ -328,7 +328,7 @@ public class BeehiveBlockEntity extends BlockEntity { diff --git a/patches/server/0722-Bucketable-API.patch b/patches/server/0721-Bucketable-API.patch similarity index 100% rename from patches/server/0722-Bucketable-API.patch rename to patches/server/0721-Bucketable-API.patch diff --git a/patches/server/0723-Validate-usernames.patch b/patches/server/0722-Validate-usernames.patch similarity index 95% rename from patches/server/0723-Validate-usernames.patch rename to patches/server/0722-Validate-usernames.patch index 2f1055b3555d..2c5507f00c39 100644 --- a/patches/server/0723-Validate-usernames.patch +++ b/patches/server/0722-Validate-usernames.patch @@ -26,7 +26,7 @@ index 67c1cf5eb198079bd146a4a8ca0492b94cca788c..c03329267a2a97af32a0c2c9d7e94fa0 GameProfile gameprofile = this.server.getSingleplayerProfile(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5921b4c5c38354c4782783d0debddb8bf4e356c7..8364d86a75174d1b37cfbf6cf9dbc5ed952c432e 100644 +index 00f65551b82935a6b7b88cba4650404b9311f8f2..801b1f9b9b7dcdf4fe758e3a7a5800bf4b07d93b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -679,7 +679,7 @@ public abstract class PlayerList { @@ -39,7 +39,7 @@ index 5921b4c5c38354c4782783d0debddb8bf4e356c7..8364d86a75174d1b37cfbf6cf9dbc5ed } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index c21b6e9b013c31342e1a47500f5262ddfb7cd6d0..f6ca517fbe3742381a932958e9893e32b81e390b 100644 +index 80caada014bae0571a5aa6aa67d9bb87f89db17f..61516fbc3cbfb3aa85895b4458b5319752149f73 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -2340,9 +2340,23 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0724-Make-water-animal-spawn-height-configurable.patch b/patches/server/0723-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0724-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0723-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0725-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 96% rename from patches/server/0725-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 93eaf6fd9004..9a8d9831b9f2 100644 --- a/patches/server/0725-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0b0e415adafb5f614259291c1c501fa1b85ddb14..e6ad7c2b8eac76bcc2083b3921d45b83ecf2f875 100644 +index ec48aea4e352e8ee3ad8cda8ce8ec33daf49dae8..5329f98cd455e863a1eae9dc12d26146e492e730 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -596,7 +596,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 5c8b161559595071da52057dd5652a3447bca822..abc2a152a33805dfe30f0f657ec55c704cf3fa31 100644 +index 94f722229432d5b88fc1ced115b0fbeb0eca5f57..ba71ea08e1e2fa178366fdce1aa752fa12030ee6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -144,6 +144,7 @@ import org.jetbrains.annotations.NotNull; diff --git a/patches/server/0740-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0739-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 95% rename from patches/server/0740-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0739-Fix-cancelled-powdered-snow-bucket-placement.patch index c19dc0094625..872f00bd934b 100644 --- a/patches/server/0740-Fix-cancelled-powdered-snow-bucket-placement.patch +++ b/patches/server/0739-Fix-cancelled-powdered-snow-bucket-placement.patch @@ -8,7 +8,7 @@ snow bucket didn't revert grass that became snowy because of the placement. diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index f23c1695840553ae14e49310b3708a801b5a0f8d..9a21a0aeff0da8e71ef8eea8bbfe3564409b986a 100644 +index 4624fc8eb4a5e71d7874d25ca0a25975f65a6919..750ffb60c6136fe9e1d56e402578e2a9978d2703 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -379,7 +379,7 @@ public final class ItemStack { diff --git a/patches/server/0741-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 92% rename from patches/server/0741-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 7c079022fd05..10fb87ad3231 100644 --- a/patches/server/0741-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f6bba55b843acf4614b4403e78d944decc7ee7c0..75728879da9d365e3a825b6639313375e5407290 100644 +index 3bf600de4eb99bd33bc4cd20529e38002f22f1d3..8257b94fc234b6d10c9120a8ba4de526c45e66b1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2287,6 +2287,8 @@ public final class CraftServer implements Server { diff --git a/patches/server/0742-Add-GameEvent-tags.patch b/patches/server/0741-Add-GameEvent-tags.patch similarity index 97% rename from patches/server/0742-Add-GameEvent-tags.patch rename to patches/server/0741-Add-GameEvent-tags.patch index b78905aa5121..58b00003dd1e 100644 --- a/patches/server/0742-Add-GameEvent-tags.patch +++ b/patches/server/0741-Add-GameEvent-tags.patch @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 75728879da9d365e3a825b6639313375e5407290..63c0ea96f67eb7a8a05fc63ecc50d49f19a0e444 100644 +index 8257b94fc234b6d10c9120a8ba4de526c45e66b1..1f70bd8267772a6f477caee4958a1cb271b30ee2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2708,6 +2708,15 @@ public final class CraftServer implements Server { diff --git a/patches/server/0743-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 94% rename from patches/server/0743-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index 7b522430ecb2..c99353017ec5 100644 --- a/patches/server/0743-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,7 +9,7 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e6ad7c2b8eac76bcc2083b3921d45b83ecf2f875..d621320097f38d2339624852c59d47598b01603b 100644 +index 5329f98cd455e863a1eae9dc12d26146e492e730..2d41aaa651dfefff9968ccbfee693c4410ba0f4e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1416,6 +1416,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index abc2a152a33805dfe30f0f657ec55c704cf3fa31..cd7367672b91829d1ffef73e32062af730df7d95 100644 +index ba71ea08e1e2fa178366fdce1aa752fa12030ee6..a39f439716678611bc7daf943d29b4c330ab5acc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1453,7 +1453,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0753-Expose-furnace-minecart-push-values.patch b/patches/server/0752-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0753-Expose-furnace-minecart-push-values.patch rename to patches/server/0752-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0754-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0753-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0754-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0753-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0755-More-Projectile-API.patch b/patches/server/0754-More-Projectile-API.patch similarity index 99% rename from patches/server/0755-More-Projectile-API.patch rename to patches/server/0754-More-Projectile-API.patch index 6b204f0fc1fb..0a909b85ae77 100644 --- a/patches/server/0755-More-Projectile-API.patch +++ b/patches/server/0754-More-Projectile-API.patch @@ -509,7 +509,7 @@ index 20f9735c7cb76024e15dbdca7684f5c560876175..8a6af0db8e0aa0cffbf19584be747076 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 22125565e647f1eb0dd99493b2b33090a8335541..bd453bdcf44f94fea312b58282bb0e8c23ea7189 100644 +index 6423af82fbae4267d06229fde2390bfb5569137a..01fac95fde3c9b9d58e6a7ef7b35b48fe1c992ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -831,19 +831,19 @@ public class CraftEventFactory { diff --git a/patches/server/0756-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0755-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0756-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0755-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0757-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 94% rename from patches/server/0757-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch index 00860841ded9..b6efa41b2d50 100644 --- a/patches/server/0757-Don-t-allow-vehicle-movement-from-players-while-tele.patch +++ b/patches/server/0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch @@ -7,7 +7,7 @@ Bring the vehicle move packet behavior in line with the regular player move packet. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index af43b1cf239a319f765058ff082485764528e01e..fb8b6fa69bf516bbaf50541e742e5375fc8c00ff 100644 +index e6e9a2688a3d2f789831a9e095e555f784bd9c4a..6842ccf68ab5ae2b2c093ea8ac34eeabc0f95770 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -465,6 +465,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0758-Implement-getComputedBiome-API.patch b/patches/server/0757-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0758-Implement-getComputedBiome-API.patch rename to patches/server/0757-Implement-getComputedBiome-API.patch diff --git a/patches/server/0759-Make-some-itemstacks-nonnull.patch b/patches/server/0758-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0759-Make-some-itemstacks-nonnull.patch rename to patches/server/0758-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0760-Implement-enchantWithLevels-API.patch b/patches/server/0759-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0760-Implement-enchantWithLevels-API.patch rename to patches/server/0759-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0761-Fix-saving-in-unloadWorld.patch b/patches/server/0760-Fix-saving-in-unloadWorld.patch similarity index 90% rename from patches/server/0761-Fix-saving-in-unloadWorld.patch rename to patches/server/0760-Fix-saving-in-unloadWorld.patch index 769c10ebee34..8de450b8cc43 100644 --- a/patches/server/0761-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0760-Fix-saving-in-unloadWorld.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix saving in unloadWorld Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8a1583ce1f55d74e1516f62f730674bbadc4ed34..382e369aa6e5606abae431764e09c95078dfd8b8 100644 +index 6cbf54f50538082a9027ec04de3337fe20bda452..f4faa98285ab8cd675e84a5f5a02afb0c5cec599 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1336,7 +1336,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0762-Buffer-OOB-setBlock-calls.patch b/patches/server/0761-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0762-Buffer-OOB-setBlock-calls.patch rename to patches/server/0761-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0763-Add-TameableDeathMessageEvent.patch b/patches/server/0762-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0763-Add-TameableDeathMessageEvent.patch rename to patches/server/0762-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0764-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 97% rename from patches/server/0764-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch index 698d6aa543c5..a82a8f47272a 100644 --- a/patches/server/0764-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -91,7 +91,7 @@ index 0a2c2b847dc516abf31870116056dbdbb22f31d9..45906d273e6d6ec20cf44b4d07efdac6 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 6d29fef4de10c4b75be591046ff1f8e3c24bb9bb..30627f330536b5c89b52452981f0a960b61e4268 100644 +index 2a8ed27101ff78542db120ff183ff33276fb832a..fed8a2519f6b20466f1986702baec2c0f7078dfe 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -580,7 +580,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -104,7 +104,7 @@ index 6d29fef4de10c4b75be591046ff1f8e3c24bb9bb..30627f330536b5c89b52452981f0a960 world.gameEvent(GameEvent.BLOCK_DESTROY, blockposition, GameEvent.Context.of(this.enderman, iblockdata)); this.enderman.setCarriedBlock(iblockdata.getBlock().defaultBlockState()); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index add3cd866452df727107e94fb2039bddebe909be..0c11d9bef8f0129c541e30ad057612e881703b24 100644 +index aac60e85cd6dba7d87f4a1663c2c62952521d112..151acc43c96b4545ce92d3d559d8e1591874b4b5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -158,7 +158,7 @@ public class Ravager extends Raider { @@ -170,7 +170,7 @@ index bf0e05be3db1952b311e3eb9ab4881b12ee9dfd7..e59f9b83606da83f15924477ea2a2c4b } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/TntBlock.java b/src/main/java/net/minecraft/world/level/block/TntBlock.java -index 443a8a8e2f0791a1455193cb125e1560f5d1edab..8eaf1eaf0f739a12baf6e3e9fe32c007eaba20ae 100644 +index ab53b42eec6eb57b373487e50066967042d6eb40..f8cff1f2825a8e428d8a99d0b1b58606a74a918a 100644 --- a/src/main/java/net/minecraft/world/level/block/TntBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TntBlock.java @@ -163,7 +163,7 @@ public class TntBlock extends Block { @@ -196,7 +196,7 @@ index 61abbcfe97e3d3e3da5ee658672549d14594ad17..05e14322e519d1399e87beb532e1cc4a } // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index de35569880efc2267e17c44b5011533fd348c2f3..b2f96da3405875eae5d4398d0dc3580108f561bd 100644 +index 01fac95fde3c9b9d58e6a7ef7b35b48fe1c992ed..269a3837becfe8eb56997276e840c7055e10e6eb 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1410,11 +1410,11 @@ public class CraftEventFactory { diff --git a/patches/server/0765-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0764-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 93% rename from patches/server/0765-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0764-fix-player-loottables-running-when-mob-loot-gamerule.patch index d2eae9e01eae..84358c61a81d 100644 --- a/patches/server/0765-fix-player-loottables-running-when-mob-loot-gamerule.patch +++ b/patches/server/0764-fix-player-loottables-running-when-mob-loot-gamerule.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0492704f7f365310d7ea930c30330a468a39c0de..fb46ba1b36c0a62dce022c86b742784828a31f2a 100644 +index c76358e108a72297baf92b234d43145dde09e99f..aba972c49d6044f5b72c98a2c4f99f6e3d531a91 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -924,12 +924,14 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0766-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0765-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 91% rename from patches/server/0766-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0765-Ensure-entity-passenger-world-matches-ridden-entity.patch index c3d21f2d7e3e..3a8db84ffbbc 100644 --- a/patches/server/0766-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0765-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 811479660f7e6148b5448d3342a862aff36ec673..f5cd50592244394c4186380a372a34733aa04c49 100644 +index 6c995ac8a40e61a29d685b5527807efa73375147..cef8f5473baab959471e108b81e418f6a668e8ac 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2846,7 +2846,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0767-cache-resource-keys.patch b/patches/server/0766-cache-resource-keys.patch similarity index 100% rename from patches/server/0767-cache-resource-keys.patch rename to patches/server/0766-cache-resource-keys.patch diff --git a/patches/server/0768-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0767-Allow-changing-the-EnderDragon-podium.patch similarity index 99% rename from patches/server/0768-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0767-Allow-changing-the-EnderDragon-podium.patch index b85821e44724..68a861520446 100644 --- a/patches/server/0768-Allow-changing-the-EnderDragon-podium.patch +++ b/patches/server/0767-Allow-changing-the-EnderDragon-podium.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow changing the EnderDragon podium diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 2ede6678a5fe6e1280ee4918b69302f483cc50ff..36893dac635f676ca447133a1bce32429347e4a5 100644 +index 290d97437e9c593816b4f4c4e738c268be616dc0..955d0ddb69c29de723b85c65f42b0274813aadac 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -103,6 +103,10 @@ public class EnderDragon extends Mob implements Enemy { diff --git a/patches/server/0769-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0768-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0769-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0768-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0770-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0769-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 100% rename from patches/server/0770-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0769-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch diff --git a/patches/server/0771-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0770-Prevent-tile-entity-copies-loading-chunks.patch similarity index 94% rename from patches/server/0771-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0770-Prevent-tile-entity-copies-loading-chunks.patch index a85195229085..7e4fc6073694 100644 --- a/patches/server/0771-Prevent-tile-entity-copies-loading-chunks.patch +++ b/patches/server/0770-Prevent-tile-entity-copies-loading-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent tile entity copies loading chunks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 55f4dcaa58142f8710b54505d42f7f3e74bb7ce1..cae9c718ddd7b1f1978fe00d8adfbb5edef64ded 100644 +index 6842ccf68ab5ae2b2c093ea8ac34eeabc0f95770..985fdb70d4bc9fd6c08de83889108824facfd049 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3192,7 +3192,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0772-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0771-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 92% rename from patches/server/0772-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0771-Use-username-instead-of-display-name-in-PlayerList-g.patch index 8187d4b8c377..f6ec1a29509b 100644 --- a/patches/server/0772-Use-username-instead-of-display-name-in-PlayerList-g.patch +++ b/patches/server/0771-Use-username-instead-of-display-name-in-PlayerList-g.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use username instead of display name in diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f173b0f4cd2cffc90a0f609cbc8bf29fdc1cf122..6e47d01db9e7f8519e560681922a0f15980d6acc 100644 +index 506d91df4dbcced7554db14b6efdf8697ea6805a..f22ca56e6acd56d894bd26d46133e835c7901b72 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1449,7 +1449,7 @@ public abstract class PlayerList { diff --git a/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0772-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 97% rename from patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0772-Pass-ServerLevel-for-gamerule-callbacks.patch index 3a71f164e5e2..e384656b1c17 100644 --- a/patches/server/0773-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0772-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Pass ServerLevel for gamerule callbacks diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 3fb0d020493db8e5bde9f6fc76637c74b80fd791..0f562a8e0c5d4b2907174c9409977570869bd331 100644 +index bb3acbe0ad049703245c51a92539376811365eb2..30b9685963ffc620846c220d1fff3fda834f1ffa 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -304,7 +304,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -18,7 +18,7 @@ index 3fb0d020493db8e5bde9f6fc76637c74b80fd791..0f562a8e0c5d4b2907174c9409977570 if (dedicatedserverproperties.enableQuery) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index cae9c718ddd7b1f1978fe00d8adfbb5edef64ded..4500a638c48c224dc38e0cfbc2f04e8bea0277ed 100644 +index 985fdb70d4bc9fd6c08de83889108824facfd049..79f791dbe8dced29b311ad50237da9bfec0fbb2f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2756,7 +2756,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -167,7 +167,7 @@ index f3cdf1fa7731eb7bb1cb89aa6a37204d81257cb0..0112ef51815c4fab38b95d5e917d335e this.onChanged(server); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index f41d56da115c14d22d7256be6f16409fdf0e49cd..6b40538ecf9b42473114c3f2acfff5ff0bcf2167 100644 +index a39f439716678611bc7daf943d29b4c330ab5acc..499452383527844354b39b43fb2ea0853ba5478e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2038,7 +2038,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0774-Expand-PlayerItemDamageEvent.patch b/patches/server/0773-Expand-PlayerItemDamageEvent.patch similarity index 93% rename from patches/server/0774-Expand-PlayerItemDamageEvent.patch rename to patches/server/0773-Expand-PlayerItemDamageEvent.patch index b2968fc298e8..a549b4189cdf 100644 --- a/patches/server/0774-Expand-PlayerItemDamageEvent.patch +++ b/patches/server/0773-Expand-PlayerItemDamageEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand PlayerItemDamageEvent diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 9a21a0aeff0da8e71ef8eea8bbfe3564409b986a..c134cf3f86b75de5ef66b23642624436cc934159 100644 +index 750ffb60c6136fe9e1d56e402578e2a9978d2703..23fec59b51c99c1f0ac19ffd6c84ffa8fc3caaac 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -638,10 +638,11 @@ public final class ItemStack { diff --git a/patches/server/0775-WorldCreator-keepSpawnLoaded.patch b/patches/server/0774-WorldCreator-keepSpawnLoaded.patch similarity index 94% rename from patches/server/0775-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0774-WorldCreator-keepSpawnLoaded.patch index 5f84a84054dc..fa5c412bf69a 100644 --- a/patches/server/0775-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0774-WorldCreator-keepSpawnLoaded.patch @@ -5,7 +5,7 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 382e369aa6e5606abae431764e09c95078dfd8b8..aaa31bdb80754d100f4f751ad4a8b4f8957cbaa3 100644 +index f4faa98285ab8cd675e84a5f5a02afb0c5cec599..eff4f3100b018bc6475a9307bfe9853cd69abd2f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1283,7 +1283,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0776-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0775-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0776-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0775-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0777-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 94% rename from patches/server/0777-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch index 40f73296bd81..bb631548bf3e 100644 --- a/patches/server/0777-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch +++ b/patches/server/0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Trigger bee_nest_destroyed trigger in the correct place diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 2e80e2d80bc2ec981e47a42b9c30257898afa4ad..3574fe0ce7c161a13a78b66ab881463def8cc461 100644 +index 066e7e420b8eaa9733532a893855bcab14c22d0e..cfd09698025262f262489c4d024dc8b0013b542d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -423,12 +423,16 @@ public class ServerPlayerGameMode { @@ -40,7 +40,7 @@ index 2e80e2d80bc2ec981e47a42b9c30257898afa4ad..3574fe0ce7c161a13a78b66ab881463d return true; // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java -index f82cd3677da96d3cf051c983d08a8ff302400b18..ed87664f513cf82c7bf8439672a656d0a57c1991 100644 +index 65d3311cfa251b0d3246413d0714acff7d31e844..a0ab721a01faccf216259c46e6d6f638426732c2 100644 --- a/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BeehiveBlock.java @@ -95,7 +95,7 @@ public class BeehiveBlock extends BaseEntityBlock { diff --git a/patches/server/0778-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0777-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0778-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0777-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0779-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0778-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0779-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0778-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0780-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0779-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 96% rename from patches/server/0780-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0779-fix-powder-snow-cauldrons-not-turning-to-water.patch index d6e697f77343..cfe6d93042c7 100644 --- a/patches/server/0780-fix-powder-snow-cauldrons-not-turning-to-water.patch +++ b/patches/server/0779-fix-powder-snow-cauldrons-not-turning-to-water.patch @@ -7,7 +7,7 @@ Powder snow cauldrons should turn to water when extinguishing an entity diff --git a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java -index 9c828328f5b8c1fe723437ed4a42cc1fe6a23d3d..5199ad9ca36ccd18eb2ff191feaf4331404049d2 100644 +index 542bc6be48d5c53eee988156e7aa6ecfccb51069..333cc37e4f3ca3ea95191dcaafda6be59ef79b96 100644 --- a/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LayeredCauldronBlock.java @@ -69,7 +69,7 @@ public class LayeredCauldronBlock extends AbstractCauldronBlock { diff --git a/patches/server/0781-Add-PlayerStopUsingItemEvent.patch b/patches/server/0780-Add-PlayerStopUsingItemEvent.patch similarity index 91% rename from patches/server/0781-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0780-Add-PlayerStopUsingItemEvent.patch index a59dc0b495cb..68ae540fefa0 100644 --- a/patches/server/0781-Add-PlayerStopUsingItemEvent.patch +++ b/patches/server/0780-Add-PlayerStopUsingItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9561bbe37c57f36edee9f77d69fff363db886b2d..dfdd9200bb9998ffd4631459d9be978480f76e83 100644 +index c41153ad6025fe276326132f6cbfd3986f9c5c51..35ea0d337684f8ff41142c1defc05121f1348ef7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4025,6 +4025,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0782-Don-t-tick-markers.patch b/patches/server/0781-Don-t-tick-markers.patch similarity index 97% rename from patches/server/0782-Don-t-tick-markers.patch rename to patches/server/0781-Don-t-tick-markers.patch index ecbd39890d97..32bb643d7173 100644 --- a/patches/server/0782-Don-t-tick-markers.patch +++ b/patches/server/0781-Don-t-tick-markers.patch @@ -23,7 +23,7 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5e5a018433414af76eaa1e781f61612d } }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4f48e7ee15f381e0bcf71fc4c7d37daf2dd4f7fd..6b798d81eeb226ce078dc867277ba80cb22c9d7d 100644 +index 4b0d854ed9fc16ecbdfabca4192969aa1beeaa19..0d5cdef130fb138c1b373ced129ccca245be4ec0 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2585,6 +2585,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0783-Expand-FallingBlock-API.patch b/patches/server/0782-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0783-Expand-FallingBlock-API.patch rename to patches/server/0782-Expand-FallingBlock-API.patch diff --git a/patches/server/0784-Do-not-accept-invalid-client-settings.patch b/patches/server/0783-Do-not-accept-invalid-client-settings.patch similarity index 94% rename from patches/server/0784-Do-not-accept-invalid-client-settings.patch rename to patches/server/0783-Do-not-accept-invalid-client-settings.patch index 46cef750c55e..18f009fc3c2a 100644 --- a/patches/server/0784-Do-not-accept-invalid-client-settings.patch +++ b/patches/server/0783-Do-not-accept-invalid-client-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Do not accept invalid client settings diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4500a638c48c224dc38e0cfbc2f04e8bea0277ed..2a603cd36fc98d9c80a6c7d9ea2be51cde369297 100644 +index 79f791dbe8dced29b311ad50237da9bfec0fbb2f..f98e289c90425864576dead48eacb21c00970dcc 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3316,6 +3316,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0785-Add-support-for-Proxy-Protocol.patch b/patches/server/0784-Add-support-for-Proxy-Protocol.patch similarity index 100% rename from patches/server/0785-Add-support-for-Proxy-Protocol.patch rename to patches/server/0784-Add-support-for-Proxy-Protocol.patch diff --git a/patches/server/0786-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0785-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0786-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0785-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0787-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0786-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0787-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0786-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0788-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0787-Sanitize-sent-BlockEntity-NBT.patch similarity index 96% rename from patches/server/0788-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0787-Sanitize-sent-BlockEntity-NBT.patch index c6db48137368..d79abc0a0092 100644 --- a/patches/server/0788-Sanitize-sent-BlockEntity-NBT.patch +++ b/patches/server/0787-Sanitize-sent-BlockEntity-NBT.patch @@ -18,7 +18,7 @@ index d79284a790569141c2ac8178d6ecc20b17cdd0d3..3944852921335c78a04a9dc301882ab5 public static ClientboundBlockEntityDataPacket create(BlockEntity blockEntity) { diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index bf6cdc08367fc26716e7904162a21e63fecab3ed..51e24105facfe71ce9f2757c6c881a21b58dacfd 100644 +index 8ffb99aedaa57c1e96ddcc05143776b59c9700a3..998deae645b4497c3285bfba3260c636439f9ecf 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java @@ -186,6 +186,7 @@ public class ClientboundLevelChunkPacketData { diff --git a/patches/server/0789-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0788-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0789-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0788-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0790-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0789-Prevent-entity-loading-causing-async-lookups.patch similarity index 97% rename from patches/server/0790-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0789-Prevent-entity-loading-causing-async-lookups.patch index 75f49771d6f6..1d69022c7aa0 100644 --- a/patches/server/0790-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0789-Prevent-entity-loading-causing-async-lookups.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f5cd50592244394c4186380a372a34733aa04c49..125699e0d9c4e239e32a86376a059b28c2982713 100644 +index cef8f5473baab959471e108b81e418f6a668e8ac..2490da0e881e3514466bd44ba4f9336be67d603d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -802,6 +802,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0791-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0790-Throw-exception-on-world-create-while-being-ticked.patch similarity index 100% rename from patches/server/0791-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0790-Throw-exception-on-world-create-while-being-ticked.patch diff --git a/patches/server/0792-Add-Alternate-Current-redstone-implementation.patch b/patches/server/0791-Add-Alternate-Current-redstone-implementation.patch similarity index 99% rename from patches/server/0792-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/0791-Add-Alternate-Current-redstone-implementation.patch index 8bc498bcb4e2..e7485866afa4 100644 --- a/patches/server/0792-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/0791-Add-Alternate-Current-redstone-implementation.patch @@ -2008,7 +2008,7 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6b798d81eeb226ce078dc867277ba80cb22c9d7d..5c9083246fb7f49b9091ba7467d55b6dc7cd18f1 100644 +index 0d5cdef130fb138c1b373ced129ccca245be4ec0..88151659d6552d1678c202b8414476683807eafb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2034,7 +2034,7 @@ index 6b798d81eeb226ce078dc867277ba80cb22c9d7d..5c9083246fb7f49b9091ba7467d55b6d EntityCallbacks() {} diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8c363306b5dac302ab3c26a245aa4a768b304ed4..8ad909802a107ff670e839915071a7d116099e1c 100644 +index 205323c8e643c77b7aefe588d5ee2f8b2b29ede4..17f8dc044619bfa055f67f12cd9a296504ac76ee 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1884,4 +1884,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0793-Dont-resent-entity-on-art-update.patch b/patches/server/0792-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/server/0793-Dont-resent-entity-on-art-update.patch rename to patches/server/0792-Dont-resent-entity-on-art-update.patch diff --git a/patches/server/0794-Add-WardenAngerChangeEvent.patch b/patches/server/0793-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/server/0794-Add-WardenAngerChangeEvent.patch rename to patches/server/0793-Add-WardenAngerChangeEvent.patch diff --git a/patches/server/0795-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0794-Add-option-for-strict-advancement-dimension-checks.patch similarity index 96% rename from patches/server/0795-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0794-Add-option-for-strict-advancement-dimension-checks.patch index 7901e28a13c0..1087bbd32ed3 100644 --- a/patches/server/0795-Add-option-for-strict-advancement-dimension-checks.patch +++ b/patches/server/0794-Add-option-for-strict-advancement-dimension-checks.patch @@ -24,7 +24,7 @@ index 5f9cb2c7a2874e423087d04d3360af0364692b5c..428e0afef2cac9f2a19d8cfe8f2504dd } else { BlockPos blockPos = BlockPos.containing(x, y, z); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index fb46ba1b36c0a62dce022c86b742784828a31f2a..c03ea45afb5537058cdeecc654184338b9aa0bd8 100644 +index aba972c49d6044f5b72c98a2c4f99f6e3d531a91..4cad73c9d53198dff598ae2cbc4ff0ea8fc9e828 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1321,6 +1321,12 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0796-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0795-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/server/0796-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0795-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/0797-Nameable-Banner-API.patch b/patches/server/0796-Nameable-Banner-API.patch similarity index 100% rename from patches/server/0797-Nameable-Banner-API.patch rename to patches/server/0796-Nameable-Banner-API.patch diff --git a/patches/server/0798-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0797-Don-t-broadcast-messages-to-command-blocks.patch similarity index 95% rename from patches/server/0798-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0797-Don-t-broadcast-messages-to-command-blocks.patch index af775fb13ccf..c1d8ecd2f63f 100644 --- a/patches/server/0798-Don-t-broadcast-messages-to-command-blocks.patch +++ b/patches/server/0797-Don-t-broadcast-messages-to-command-blocks.patch @@ -20,7 +20,7 @@ index c56f5173fda6b38c2dcaea196217f2f5a7d7c641..524b0f1086c01888fe0b76e180c40915 Date date = new Date(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 5327445d9cced0b4e3875587d747f4f6a6cfbb07..3e84d684e113e42331aec4780144f62996b8841e 100644 +index 9c826cfb4f2e9336ae42d1b4ec1fbf2327021164..874387cce637c0adc3ded0f45f169c2c3b213d0d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1873,7 +1873,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0799-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0798-Prevent-empty-items-from-being-added-to-world.patch similarity index 93% rename from patches/server/0799-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0798-Prevent-empty-items-from-being-added-to-world.patch index 1a0a28f75aad..e7db702bcc79 100644 --- a/patches/server/0799-Prevent-empty-items-from-being-added-to-world.patch +++ b/patches/server/0798-Prevent-empty-items-from-being-added-to-world.patch @@ -7,7 +7,7 @@ The previous solution caused a bunch of bandaid fixes inorder to resolve edge ca Just simply prevent them from being added to the world instead. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5c9083246fb7f49b9091ba7467d55b6dc7cd18f1..b82dc3d8558d18692769f7b9ee835a4eb4dd8253 100644 +index 88151659d6552d1678c202b8414476683807eafb..3d5e055e9ad5dff1ccc0836bd88bbacf09c02173 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1567,6 +1567,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0800-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0799-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/server/0800-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0799-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/server/0801-Add-Player-getFishHook.patch b/patches/server/0800-Add-Player-getFishHook.patch similarity index 92% rename from patches/server/0801-Add-Player-getFishHook.patch rename to patches/server/0800-Add-Player-getFishHook.patch index da9e9ebc914e..d539d68f07a0 100644 --- a/patches/server/0801-Add-Player-getFishHook.patch +++ b/patches/server/0800-Add-Player-getFishHook.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Player#getFishHook diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index fd8d8b1e3583fe61b966f3550bd8e846b536b4e5..267863ff81a95d686b8db6cfee9256a2c5ad3f68 100644 +index 6e85e580d48622b4c90478b9afbc45b4445e86b0..2abbcbd393660de69fec567c3e31dbc774d93920 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -161,6 +161,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0802-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0801-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/server/0802-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0801-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/server/0803-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0802-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 98% rename from patches/server/0803-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0802-Add-various-missing-EntityDropItemEvent-calls.patch index 5f52f376f288..795c17a969d9 100644 --- a/patches/server/0803-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0802-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 125699e0d9c4e239e32a86376a059b28c2982713..b9a1a7edb9f9aea0fa53cc3edfbc4522949f4093 100644 +index 2490da0e881e3514466bd44ba4f9336be67d603d..0d7d96af96eeb882e53938244ca57e0c439eb130 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2698,6 +2698,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0804-Fix-Bee-flower-NPE.patch b/patches/server/0803-Fix-Bee-flower-NPE.patch similarity index 91% rename from patches/server/0804-Fix-Bee-flower-NPE.patch rename to patches/server/0803-Fix-Bee-flower-NPE.patch index 7e9696d0acce..21a3d68e76bd 100644 --- a/patches/server/0804-Fix-Bee-flower-NPE.patch +++ b/patches/server/0803-Fix-Bee-flower-NPE.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix Bee flower NPE diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index c534589762b1361bae7c446dfec8dbbf542485fb..a87a34b0c4c8e5d0cf079025c230b1434c919b54 100644 +index 91ea960ba223bae42655c581b9b6c0981f333c9b..f9521a6e115f0c975a7885b024c99eae300b63bf 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -810,7 +810,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { diff --git a/patches/server/0805-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0804-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 92% rename from patches/server/0805-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0804-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch index 75d3e8a3654d..6896c86ccb47 100644 --- a/patches/server/0805-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch +++ b/patches/server/0804-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix Spigot Config not using commands.spam-exclusions diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2a603cd36fc98d9c80a6c7d9ea2be51cde369297..7342cc06b5b88f7dce5cd499a5aecd057463ec8f 100644 +index f98e289c90425864576dead48eacb21c00970dcc..a4db041d701a35d05f4b01886ff7ee04212c5d86 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2373,7 +2373,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0806-More-Teleport-API.patch b/patches/server/0805-More-Teleport-API.patch similarity index 97% rename from patches/server/0806-More-Teleport-API.patch rename to patches/server/0805-More-Teleport-API.patch index 351e548dad15..6301505e1256 100644 --- a/patches/server/0806-More-Teleport-API.patch +++ b/patches/server/0805-More-Teleport-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] More Teleport API diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7342cc06b5b88f7dce5cd499a5aecd057463ec8f..e610c0209c65a7f8c645f3a626c662a78bd7382c 100644 +index a4db041d701a35d05f4b01886ff7ee04212c5d86..7a90ad5c707a01ae63662f94507fab312d415b85 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1632,11 +1632,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -72,7 +72,7 @@ index b7df71633527dce2e4f954caee249e3b31b82226..ee1dc74b2f48bf8d684562de895ab631 // Let the server handle cross world teleports if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1d43b01c96f00cb08c6e72d2f9496f2300da6634..0de707a3400d42249b49e8f1899879d7e361b2a8 100644 +index 8be0588680c55c19de4e3f0ecf17b96338c3c7b7..417c0d6942dd7e55629ba5926415a5274bde2dad 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1207,13 +1207,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -211,7 +211,7 @@ index 1d43b01c96f00cb08c6e72d2f9496f2300da6634..0de707a3400d42249b49e8f1899879d7 // Close any foreign inventory - if (this.getHandle().containerMenu != this.getHandle().inventoryMenu) { + if (this.getHandle().containerMenu != this.getHandle().inventoryMenu && !allFlags.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_OPEN_INVENTORY)) { // Paper - this.getHandle().closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.TELEPORT); // Paper + this.getHandle().closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.TELEPORT); // Paper - Inventory close reason } // Check if the fromWorld and toWorld are the same. diff --git a/patches/server/0807-Add-EntityPortalReadyEvent.patch b/patches/server/0806-Add-EntityPortalReadyEvent.patch similarity index 95% rename from patches/server/0807-Add-EntityPortalReadyEvent.patch rename to patches/server/0806-Add-EntityPortalReadyEvent.patch index f75955fb323e..3404c37ff46f 100644 --- a/patches/server/0807-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0806-Add-EntityPortalReadyEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b9a1a7edb9f9aea0fa53cc3edfbc4522949f4093..fc0f58560a53a783b9fabceee227bed3908bae89 100644 +index 0d7d96af96eeb882e53938244ca57e0c439eb130..4ac42a1cac859853f64fa5de3e709e7826d1f27f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3098,6 +3098,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0808-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0807-Don-t-use-level-random-in-entity-constructors.patch similarity index 96% rename from patches/server/0808-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0807-Don-t-use-level-random-in-entity-constructors.patch index d587e0e603f3..c45ff812fbaa 100644 --- a/patches/server/0808-Don-t-use-level-random-in-entity-constructors.patch +++ b/patches/server/0807-Don-t-use-level-random-in-entity-constructors.patch @@ -9,7 +9,7 @@ should be supported. Some entities (for whatever reason) use the level's random in some places. diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index fc14a2eb464675f8fb0bff916992687adb4e3d25..e19a0f1fac3dd04927f73f3d11a921ffc4608388 100644 +index c865456d58cf7c2077ac452b6a1e3db2b84047ef..13efea97d1836a48ef4c0e077a61571d9c171a0e 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -66,7 +66,12 @@ public class ItemEntity extends Entity implements TraceableEntity { diff --git a/patches/server/0809-Send-block-entities-after-destroy-prediction.patch b/patches/server/0808-Send-block-entities-after-destroy-prediction.patch similarity index 98% rename from patches/server/0809-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0808-Send-block-entities-after-destroy-prediction.patch index 5160c09c53bf..04def1f820da 100644 --- a/patches/server/0809-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0808-Send-block-entities-after-destroy-prediction.patch @@ -57,7 +57,7 @@ index cfd09698025262f262489c4d024dc8b0013b542d..fc19c68c19d443be654a5600f633d3a7 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5fa21ba5d9d3dffe525d0f11486bf82b71629c8a..18b365a1809b56e2a061cf32a274e43f76d3e02d 100644 +index 7a90ad5c707a01ae63662f94507fab312d415b85..dd1a969c6ac8ee08c9898703953dda88c7b4f97e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1778,8 +1778,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0810-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0809-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 96% rename from patches/server/0810-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0809-Warn-on-plugins-accessing-faraway-chunks.patch index db7aae3b689b..be3a5623d16b 100644 --- a/patches/server/0810-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0809-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8ad909802a107ff670e839915071a7d116099e1c..6a8e9a81b700caf87046580cc019efb2dbd07188 100644 +index 17f8dc044619bfa055f67f12cd9a296504ac76ee..b5815acea75cd70f65d9eb2b554b435c91be9994 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -812,7 +812,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -18,7 +18,7 @@ index 8ad909802a107ff670e839915071a7d116099e1c..6a8e9a81b700caf87046580cc019efb2 private static boolean isOutsideSpawnableHeight(int y) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index bbcd28de0c05d56d7ed973c0e3ee455e976cdd18..9196e803b2cde66e288cb443639ad8750fef722c 100644 +index 499452383527844354b39b43fb2ea0853ba5478e..d4fae4420b96520b2e1f6db40141e5392559c6fe 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -312,9 +312,24 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0811-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0810-Custom-Chat-Completion-Suggestions-API.patch similarity index 94% rename from patches/server/0811-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0810-Custom-Chat-Completion-Suggestions-API.patch index 42d78c2ac69c..1f20bc7a88cd 100644 --- a/patches/server/0811-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/server/0810-Custom-Chat-Completion-Suggestions-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0de707a3400d42249b49e8f1899879d7e361b2a8..fe87c5ad1f206c71088342ca8f3865a0fdbdc2fb 100644 +index 417c0d6942dd7e55629ba5926415a5274bde2dad..434e3e92bd483de5a35e2f7c96f3c78c4e085239 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -647,6 +647,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0812-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0811-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0812-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0811-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0813-Collision-API.patch b/patches/server/0812-Collision-API.patch similarity index 100% rename from patches/server/0813-Collision-API.patch rename to patches/server/0812-Collision-API.patch diff --git a/patches/server/0814-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 92% rename from patches/server/0814-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch index b979460404cd..c042d581242b 100644 --- a/patches/server/0814-Fix-suggest-command-message-for-brigadier-syntax-exc.patch +++ b/patches/server/0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix suggest command message for brigadier syntax exceptions This is a bug accidentally introduced in upstream CB diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index cb1898f6daa79a0ac379a5caa7283a9155a70a15..34b1d9853dc44f9bba32421ad2c2e3ccff9daa29 100644 +index 4cec7e5b1086064650af50cc9b89da274c74bfd0..c1a80e0aa6692205f14d01b3c8c069e452101525 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -392,7 +392,7 @@ public class Commands { diff --git a/patches/server/0815-Block-Ticking-API.patch b/patches/server/0814-Block-Ticking-API.patch similarity index 95% rename from patches/server/0815-Block-Ticking-API.patch rename to patches/server/0814-Block-Ticking-API.patch index 1e3e4cefc212..6387ad09be39 100644 --- a/patches/server/0815-Block-Ticking-API.patch +++ b/patches/server/0814-Block-Ticking-API.patch @@ -31,7 +31,7 @@ index 6d10396347b69d9243ab902ecc68ede93fa17b7d..0a96b00a98227714ef99005e0a223765 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index f75455bf199258fa7097daf777d28ff672039fa2..ef4d45ebfe84467454a209501dad7db7fb316416 100644 +index 20dcbea3bb06e637a88d81ed09138b57797e270f..d5719d943946acd77dc9b26299c9f3d12d86062f 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java @@ -718,4 +718,11 @@ public class CraftBlockData implements BlockData { diff --git a/patches/server/0816-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0815-Add-Velocity-IP-Forwarding-Support.patch similarity index 98% rename from patches/server/0816-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0815-Add-Velocity-IP-Forwarding-Support.patch index 6bcc35880759..9db3935d77e4 100644 --- a/patches/server/0816-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0815-Add-Velocity-IP-Forwarding-Support.patch @@ -106,7 +106,7 @@ index 0000000000000000000000000000000000000000..3c31ff3330c2e925e205c0c9ff4f0b83 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index d721c96b2b76209176f295896bff3bd03c241c4f..00c47942a3690df565bd0ea76b8abbf2dc50c4e2 100644 +index 30b9685963ffc620846c220d1fff3fda834f1ffa..6de6dad36203479677a29ad61e21bc369d4e5513 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -274,13 +274,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -228,7 +228,7 @@ index c03329267a2a97af32a0c2c9d7e94fa00596e1cf..399786839bb9dbf96d2ecd654f999cb9 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 3e84d684e113e42331aec4780144f62996b8841e..65daec67e955a7e1d36ffc1455ec561fb02d795a 100644 +index 874387cce637c0adc3ded0f45f169c2c3b213d0d..1b4837ddb216d66164a893f5a34c0505c6f1aab2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -803,7 +803,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0817-Add-NamespacedKey-biome-methods.patch b/patches/server/0816-Add-NamespacedKey-biome-methods.patch similarity index 95% rename from patches/server/0817-Add-NamespacedKey-biome-methods.patch rename to patches/server/0816-Add-NamespacedKey-biome-methods.patch index 897f91ee26d2..78238416399e 100644 --- a/patches/server/0817-Add-NamespacedKey-biome-methods.patch +++ b/patches/server/0816-Add-NamespacedKey-biome-methods.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add NamespacedKey biome methods Co-authored-by: Thonk <30448663+ExcessiveAmountsOfZombies@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 4a5af85ebb573950c0c65d3a5f25b586173d16dd..7ebb0ef30bb0c613aae8b3899404010c6243e02a 100644 +index fd1ec07ada04de98d0a4f1ca4c93ec53771f88d7..0185faee3051c04b4924753ba56536e4e070476b 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -601,6 +601,19 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0818-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0817-Fix-plugin-loggers-on-server-shutdown.patch similarity index 93% rename from patches/server/0818-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0817-Fix-plugin-loggers-on-server-shutdown.patch index 8584c59f5add..df7630d2fee2 100644 --- a/patches/server/0818-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0817-Fix-plugin-loggers-on-server-shutdown.patch @@ -37,7 +37,7 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9a1c27bc7bee1f915675b82717dd82f6dd0f3ee6..bb8381c51bc6b37111b837710da7e1ccbca6df5d 100644 +index c3ce869eb8c53ba01f41840d050502ce94771253..ed9839ff23d0810912a6961979690c3fe9fc0e16 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1026,6 +1026,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index dfdd9200bb9998ffd4631459d9be978480f76e83..a027d4b0769b7ee549dc25aac4a232fb1943e443 100644 +index 35ea0d337684f8ff41142c1defc05121f1348ef7..fd0af0cbcef59ff1c23e65a1e214fb9939a56a6e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3056,37 +3056,15 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -54,7 +54,7 @@ index dfdd9200bb9998ffd4631459d9be978480f76e83..a027d4b0769b7ee549dc25aac4a232fb this.level().getProfiler().pop(); this.animStep += f2; diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 444119c813af920eb25706341106f0fea27befa8..270dd1db56b187bffaedba9f2b86b3e46dda3152 100644 +index cd9ef09e2d975ab16a3b96b8662477b687d58a4f..d01570d7c3c8c4bd40cafc32d02774b789355460 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -259,13 +259,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { diff --git a/patches/server/0820-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0819-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 99% rename from patches/server/0820-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0819-Fire-EntityChangeBlockEvent-in-more-places.patch index e44a02f1dab6..168322884aa5 100644 --- a/patches/server/0820-Fire-EntityChangeBlockEvent-in-more-places.patch +++ b/patches/server/0819-Fire-EntityChangeBlockEvent-in-more-places.patch @@ -147,7 +147,7 @@ index 78bdf7c0a058e84cafcd831c6d6f5123c0f168b0..e0cae3b6848af74fefc37a1e3183c501 CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger((ServerPlayer)player, blockPos, itemStack); } diff --git a/src/main/java/net/minecraft/world/item/PotionItem.java b/src/main/java/net/minecraft/world/item/PotionItem.java -index d7ef159cc44787558ba41964f57a79f048371e97..0a61a03c4aa9a66548896126b6f72c7a3474ba5a 100644 +index 5c62741e3a3854a7f674bfec49758f837f3bb9a0..b93ed2896ebeb8ec75eb3cfb717a740c97dd9622 100644 --- a/src/main/java/net/minecraft/world/item/PotionItem.java +++ b/src/main/java/net/minecraft/world/item/PotionItem.java @@ -107,6 +107,12 @@ public class PotionItem extends Item { diff --git a/patches/server/0821-Missing-eating-regain-reason.patch b/patches/server/0820-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0821-Missing-eating-regain-reason.patch rename to patches/server/0820-Missing-eating-regain-reason.patch diff --git a/patches/server/0822-Missing-effect-cause.patch b/patches/server/0821-Missing-effect-cause.patch similarity index 100% rename from patches/server/0822-Missing-effect-cause.patch rename to patches/server/0821-Missing-effect-cause.patch diff --git a/patches/server/0823-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0822-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0823-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0822-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0824-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0823-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 97% rename from patches/server/0824-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0823-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch index 747d7487f631..a46b55a498ed 100644 --- a/patches/server/0824-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch +++ b/patches/server/0823-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add a consumer parameter to ProjectileSource#launchProjectile diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 3e79a73e42875936e373f797dcde6a60a904a880..c95534156a9c6a9b612c478e396b8cc5a77f7b08 100644 +index 269664d3894835e5bafc39e65ee5245ae1d74d78..62e089f181b0e329e96c2157492a266f11f628c3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -508,8 +508,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0825-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0824-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0825-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0824-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0826-Configurable-chat-thread-limit.patch b/patches/server/0825-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0826-Configurable-chat-thread-limit.patch rename to patches/server/0825-Configurable-chat-thread-limit.patch diff --git a/patches/server/0827-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0826-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0827-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0826-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0828-fix-Jigsaw-block-kicking-user.patch b/patches/server/0827-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0828-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0827-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0829-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0828-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0829-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0828-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0830-Add-getDrops-to-BlockState.patch b/patches/server/0829-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0830-Add-getDrops-to-BlockState.patch rename to patches/server/0829-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0830-Fix-a-bunch-of-vanilla-bugs.patch similarity index 99% rename from patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0830-Fix-a-bunch-of-vanilla-bugs.patch index e8faff7cef98..c8051b90c4ec 100644 --- a/patches/server/0831-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0830-Fix-a-bunch-of-vanilla-bugs.patch @@ -126,7 +126,7 @@ index f761d600bb5d995a25ffbbe5469625508de1f8bc..7fa3066575fd8e762dcf5de59a333e15 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b82dc3d8558d18692769f7b9ee835a4eb4dd8253..bd37a2cb4c700566c72ada303138482f90d10742 100644 +index 3d5e055e9ad5dff1ccc0836bd88bbacf09c02173..4f121bf2e36d9d76bb4e7b3c379969105c12065e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1027,7 +1027,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -139,7 +139,7 @@ index b82dc3d8558d18692769f7b9ee835a4eb4dd8253..bd37a2cb4c700566c72ada303138482f if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1f5d86e6411fffddf70308f3fd3cb25275db1710..7a46b820c4f9354d2d07e9721bac25df3f043aa5 100644 +index 4cad73c9d53198dff598ae2cbc4ff0ea8fc9e828..5bfeb1d214817b425f89265375281395e326c101 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -468,14 +468,14 @@ public class ServerPlayer extends Player { @@ -173,7 +173,7 @@ index fc19c68c19d443be654a5600f633d3a77f7069c1..9503511b28888e98ed65befdb95d0368 this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e1498e3c81fc3ed9e871fea3db5cfcccf45cac04..9822d70191512b263435a3761c683b6be4c7acf1 100644 +index f22ca56e6acd56d894bd26d46133e835c7901b72..d2d21ccc45381787698c84870537ba11ebb75127 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -711,8 +711,10 @@ public abstract class PlayerList { diff --git a/patches/server/0832-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0831-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 94% rename from patches/server/0832-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0831-Remove-unnecessary-onTrackingStart-during-navigation.patch index 19c93711aac1..0b9ee9c5bf5b 100644 --- a/patches/server/0832-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0831-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index bd37a2cb4c700566c72ada303138482f90d10742..ec27d7e7248d8bf9e81db8a22923ff3af49324bb 100644 +index 4f121bf2e36d9d76bb4e7b3c379969105c12065e..f1f0056157d209ba5d987b6e09ce1fc020920fd9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2621,7 +2621,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0833-Fix-custom-piglin-loved-items.patch b/patches/server/0832-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0833-Fix-custom-piglin-loved-items.patch rename to patches/server/0832-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0834-EntityPickupItemEvent-fixes.patch b/patches/server/0833-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0834-EntityPickupItemEvent-fixes.patch rename to patches/server/0833-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0835-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0834-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 95% rename from patches/server/0835-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0834-Correctly-handle-interactions-with-items-on-cooldown.patch index 73e9357baa91..ce638840723c 100644 --- a/patches/server/0835-Correctly-handle-interactions-with-items-on-cooldown.patch +++ b/patches/server/0834-Correctly-handle-interactions-with-items-on-cooldown.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Correctly handle interactions with items on cooldown diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 15f6bd2e61c02392e8383dc93d734990c8c7edca..6c415090035fdbba6e0e3533aa2f1c3b401ab9ff 100644 +index 9503511b28888e98ed65befdb95d03685ae9e5e1..870447743db05043f6d3c0f2a699310077529636 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -516,6 +516,7 @@ public class ServerPlayerGameMode { @@ -30,7 +30,7 @@ index 15f6bd2e61c02392e8383dc93d734990c8c7edca..6c415090035fdbba6e0e3533aa2f1c3b this.interactResult = event.useItemInHand() == Event.Result.DENY; this.interactPosition = blockposition.immutable(); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index b2f96da3405875eae5d4398d0dc3580108f561bd..38fc706dabbeb93959638deb22311e226a48a6ee 100644 +index 269a3837becfe8eb56997276e840c7055e10e6eb..fe855fd532e80a2d6b10053670dfb1b8fc009ac2 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -543,7 +543,13 @@ public class CraftEventFactory { diff --git a/patches/server/0836-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0835-Add-PlayerInventorySlotChangeEvent.patch similarity index 95% rename from patches/server/0836-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0835-Add-PlayerInventorySlotChangeEvent.patch index 066ab1476e6c..fc01c1ca33ed 100644 --- a/patches/server/0836-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/server/0835-Add-PlayerInventorySlotChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6251e68eff87a0b26d6123fdb658749e90fcfc42..6fd2e6b6400f8fc6e1cb82a25275c48fae5a18dc 100644 +index 5bfeb1d214817b425f89265375281395e326c101..cdd5c2fa44d114058391b78434e1cb268c40dc6e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -379,6 +379,25 @@ public class ServerPlayer extends Player { @@ -35,7 +35,7 @@ index 6251e68eff87a0b26d6123fdb658749e90fcfc42..6fd2e6b6400f8fc6e1cb82a25275c48f @Override public void dataChanged(AbstractContainerMenu handler, int property, int value) {} diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index b22cf4636108794092d8e289368b72a10a16d3cd..2a73cdc6b347aa31a74c2372b0bdc7b00706004a 100644 +index 7d7b60a5c27a620b570dc5e72bb0b4c7963ca4d4..3e0de232b9f89887fd10e9bbe6de89dfe23e61ea 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -302,7 +302,7 @@ public abstract class AbstractContainerMenu { diff --git a/patches/server/0837-Elder-Guardian-appearance-API.patch b/patches/server/0836-Elder-Guardian-appearance-API.patch similarity index 90% rename from patches/server/0837-Elder-Guardian-appearance-API.patch rename to patches/server/0836-Elder-Guardian-appearance-API.patch index 81d06d06011f..6b3feb444684 100644 --- a/patches/server/0837-Elder-Guardian-appearance-API.patch +++ b/patches/server/0836-Elder-Guardian-appearance-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 80856e4dc50bbcc3b210a6599f12a85f64865bba..c0ebd4c5714e6005b27af56512a07db22e28093e 100644 +index 434e3e92bd483de5a35e2f7c96f3c78c4e085239..a65284d453e2bb436db1ce12f008e7e98f84f9f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3189,6 +3189,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0838-Allow-changing-bed-s-occupied-property.patch b/patches/server/0837-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0838-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0837-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0839-Add-entity-knockback-API.patch b/patches/server/0838-Add-entity-knockback-API.patch similarity index 91% rename from patches/server/0839-Add-entity-knockback-API.patch rename to patches/server/0838-Add-entity-knockback-API.patch index fbc29ab40929..d9d400dd3acf 100644 --- a/patches/server/0839-Add-entity-knockback-API.patch +++ b/patches/server/0838-Add-entity-knockback-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add entity knockback API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index c95534156a9c6a9b612c478e396b8cc5a77f7b08..4a213c35b031d78c4ce2be181d78f36cb8f16c02 100644 +index 62e089f181b0e329e96c2157492a266f11f628c3..4b2ee2e1300203b2f3369cbf8ffcf1ad72153258 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -1035,5 +1035,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0840-Detect-headless-JREs.patch b/patches/server/0839-Detect-headless-JREs.patch similarity index 96% rename from patches/server/0840-Detect-headless-JREs.patch rename to patches/server/0839-Detect-headless-JREs.patch index 5861f80bb189..637c75c82aeb 100644 --- a/patches/server/0840-Detect-headless-JREs.patch +++ b/patches/server/0839-Detect-headless-JREs.patch @@ -27,7 +27,7 @@ index 6bd0afddbcc461149dfe9a5c7a86fff6ea13a5f1..148d233f4f5278ff39eacdaa0f4f0e7d + } } diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 7b996a1c24e66d87c95b9f075248eb1d72ad0476..e65546ab25b9dc814ea14aabfbae8f80017ab88b 100644 +index b0a0909fa9501dfacfbe70dc4118062d1154bd15..19009f0c1d572eebad6cce93f8cf56ca820fc33f 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -175,6 +175,18 @@ public class Main { diff --git a/patches/server/0841-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0840-fix-entity-vehicle-collision-event-not-called.patch similarity index 93% rename from patches/server/0841-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0840-fix-entity-vehicle-collision-event-not-called.patch index fb96955e5711..9fe5a7cf02a0 100644 --- a/patches/server/0841-fix-entity-vehicle-collision-event-not-called.patch +++ b/patches/server/0840-fix-entity-vehicle-collision-event-not-called.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix entity vehicle collision event not called diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index 9780232286052d2cbbd604e71caf47dfb81fc1dc..dc421a0a6430583f1f0154e1dd689b80253f6e3d 100644 +index 9a6b6120c248a57d9dc86ca215146f6de980bd0d..d514ec1e4cbdc579c3a61533998437903afdc8b6 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java @@ -168,7 +168,15 @@ public abstract class AbstractMinecart extends VehicleEntity { diff --git a/patches/server/0842-optimize-dirt-and-snow-spreading.patch b/patches/server/0841-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/0842-optimize-dirt-and-snow-spreading.patch rename to patches/server/0841-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/0843-Add-EntityToggleSitEvent.patch b/patches/server/0842-Add-EntityToggleSitEvent.patch similarity index 98% rename from patches/server/0843-Add-EntityToggleSitEvent.patch rename to patches/server/0842-Add-EntityToggleSitEvent.patch index f8933f4f7876..71b347d01233 100644 --- a/patches/server/0843-Add-EntityToggleSitEvent.patch +++ b/patches/server/0842-Add-EntityToggleSitEvent.patch @@ -57,7 +57,7 @@ index 94bb69a7f5795e0fbee171433632b5c3bca3b902..287e52dc844c2a64dac74dad117b775f } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index eb61d539fcf15dfc51b3ea52c232a0c7ef4f1ca9..3a6483c29803acbbb9a5b4b49fae22de7575504f 100644 +index 11694f103ebc522c2ad6eb6d494d39cc31ea3107..f783fe169141d33e8569ec7f5d71985b74bdbcb6 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -138,6 +138,7 @@ public class Panda extends Animal { diff --git a/patches/server/0844-Add-fire-tick-delay-option.patch b/patches/server/0843-Add-fire-tick-delay-option.patch similarity index 95% rename from patches/server/0844-Add-fire-tick-delay-option.patch rename to patches/server/0843-Add-fire-tick-delay-option.patch index 9c65fa7731b1..6da077e53d0c 100644 --- a/patches/server/0844-Add-fire-tick-delay-option.patch +++ b/patches/server/0843-Add-fire-tick-delay-option.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add fire-tick-delay option diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index 0006aec00ab708b1906fbb87d79a9506397c9226..f239755b7ca75de1cf5a194e49d8dbc5a44af6f8 100644 +index b1e9ea9ece5ef8ecbe2ed919fda8e1153724dc93..14817a0d760afc9edd6a97d51ace2348a8fcfbfa 100644 --- a/src/main/java/net/minecraft/world/level/block/FireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java @@ -172,7 +172,7 @@ public class FireBlock extends BaseFireBlock { diff --git a/patches/server/0845-Add-Moving-Piston-API.patch b/patches/server/0844-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0845-Add-Moving-Piston-API.patch rename to patches/server/0844-Add-Moving-Piston-API.patch diff --git a/patches/server/0846-Ignore-impossible-spawn-tick.patch b/patches/server/0845-Ignore-impossible-spawn-tick.patch similarity index 90% rename from patches/server/0846-Ignore-impossible-spawn-tick.patch rename to patches/server/0845-Ignore-impossible-spawn-tick.patch index cfdb9da9891c..9c98b51936c2 100644 --- a/patches/server/0846-Ignore-impossible-spawn-tick.patch +++ b/patches/server/0845-Ignore-impossible-spawn-tick.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ignore impossible spawn tick diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 9f677a695bdb8ebde457452e4b70c674e2016830..3aa4cb526f04a171ace0b95d18ecebc9a002470a 100644 +index b90c1e4e03f85dbfa7134bffd8da59330cea1e28..21b5765a12c5e4998870601e9665bd066a4ea471 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java @@ -82,6 +82,7 @@ public abstract class BaseSpawner { diff --git a/patches/server/0847-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0846-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0847-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0846-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0848-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0847-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0848-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0847-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 95% rename from patches/server/0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index 362f24728b7e..52bbf44364df 100644 --- a/patches/server/0849-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fc0f58560a53a783b9fabceee227bed3908bae89..aa634b67ee3a0c473f5e6f6cb6adb0306350ce1c 100644 +index 4ac42a1cac859853f64fa5de3e709e7826d1f27f..888a8f5920083a24601d13123b6defd12b6b64d7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3377,6 +3377,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0850-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0849-Add-PrePlayerAttackEntityEvent.patch similarity index 93% rename from patches/server/0850-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0849-Add-PrePlayerAttackEntityEvent.patch index ef0c58aa92da..de0539fb9eb4 100644 --- a/patches/server/0850-Add-PrePlayerAttackEntityEvent.patch +++ b/patches/server/0849-Add-PrePlayerAttackEntityEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PrePlayerAttackEntityEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index f6ca517fbe3742381a932958e9893e32b81e390b..618aaee0abebef15078c90859a7aa815288e655a 100644 +index 61516fbc3cbfb3aa85895b4458b5319752149f73..d72ea2f3d9528f79149791e34065ea1f299cd089 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1240,8 +1240,17 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0851-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0850-ensure-reset-EnderDragon-boss-event-name.patch similarity index 96% rename from patches/server/0851-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0850-ensure-reset-EnderDragon-boss-event-name.patch index 0c1a084b1cf9..56b34053072a 100644 --- a/patches/server/0851-ensure-reset-EnderDragon-boss-event-name.patch +++ b/patches/server/0850-ensure-reset-EnderDragon-boss-event-name.patch @@ -6,7 +6,7 @@ Subject: [PATCH] ensure reset EnderDragon boss event name Fix MC-257487 diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 02acd171f1d3d783b7cab56c69feca5325878fa8..c298977ae1cac57524b21efcb908b846cbcff6b6 100644 +index 2d74efff30c93ba664cf8dbf20e47dcdbd767d3f..e2e2c9f168ae4651f8fa484f6f2a17ba25f99207 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -73,6 +73,7 @@ public class EndDragonFight { diff --git a/patches/server/0852-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0851-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0852-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0851-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0853-Add-Player-Warden-Warning-API.patch b/patches/server/0852-Add-Player-Warden-Warning-API.patch similarity index 95% rename from patches/server/0853-Add-Player-Warden-Warning-API.patch rename to patches/server/0852-Add-Player-Warden-Warning-API.patch index 8b8ddd6d03ec..48462712ee5a 100644 --- a/patches/server/0853-Add-Player-Warden-Warning-API.patch +++ b/patches/server/0852-Add-Player-Warden-Warning-API.patch @@ -10,7 +10,7 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c0ebd4c5714e6005b27af56512a07db22e28093e..0dbb8d77b79ae2ae3aca4a96aeb92a981c07292a 100644 +index a65284d453e2bb436db1ce12f008e7e98f84f9f6..03b2df036d3618c1ff8291fbf70879aff4a65324 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3194,6 +3194,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0854-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0853-More-vanilla-friendly-methods-to-update-trades.patch similarity index 97% rename from patches/server/0854-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0853-More-vanilla-friendly-methods-to-update-trades.patch index 67411f0ade0a..0617aa53ad19 100644 --- a/patches/server/0854-More-vanilla-friendly-methods-to-update-trades.patch +++ b/patches/server/0853-More-vanilla-friendly-methods-to-update-trades.patch @@ -5,7 +5,7 @@ Subject: [PATCH] More vanilla friendly methods to update trades diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 363d1f469862c2e980624ff69f74be015c19412d..e12f1f11386fa723f62b51ed0cc5715c1812d2bf 100644 +index b33fa26d6e3cf8999fb24137069d0a4178f82caf..5c2010fb247462433bed6ae58d88a72c4e137ede 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -944,6 +944,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler diff --git a/patches/server/0855-Add-paper-dumplisteners-command.patch b/patches/server/0854-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0855-Add-paper-dumplisteners-command.patch rename to patches/server/0854-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0856-check-global-player-list-where-appropriate.patch b/patches/server/0855-check-global-player-list-where-appropriate.patch similarity index 96% rename from patches/server/0856-check-global-player-list-where-appropriate.patch rename to patches/server/0855-check-global-player-list-where-appropriate.patch index 1643eb9ec7ab..8ce81166b67b 100644 --- a/patches/server/0856-check-global-player-list-where-appropriate.patch +++ b/patches/server/0855-check-global-player-list-where-appropriate.patch @@ -7,7 +7,7 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ec27d7e7248d8bf9e81db8a22923ff3af49324bb..3c1a3a757cec89058ae9300be6902d3fe9342d25 100644 +index f1f0056157d209ba5d987b6e09ce1fc020920fd9..5b2de5cdac2440a4043c34525a0852067aa9371f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2744,4 +2744,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -24,7 +24,7 @@ index ec27d7e7248d8bf9e81db8a22923ff3af49324bb..3c1a3a757cec89058ae9300be6902d3f + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7e0882411d7be80a432c05f2e1a8a192c36ccf63..7ca74c68ee81a46b5c71a454c754fd4e6ffae4bb 100644 +index fd0af0cbcef59ff1c23e65a1e214fb9939a56a6e..49fdc6d198cc7af31e6c1d1ba52c8adc0fae433f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0857-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0856-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0857-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0856-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0858-ItemStack-damage-API.patch b/patches/server/0857-ItemStack-damage-API.patch similarity index 97% rename from patches/server/0858-ItemStack-damage-API.patch rename to patches/server/0857-ItemStack-damage-API.patch index 3c21227751ce..98eb7e5cf6f0 100644 --- a/patches/server/0858-ItemStack-damage-API.patch +++ b/patches/server/0857-ItemStack-damage-API.patch @@ -11,7 +11,7 @@ the logic associated with damaging them public net.minecraft.world.entity.LivingEntity entityEventForEquipmentBreak(Lnet/minecraft/world/entity/EquipmentSlot;)B diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 4a213c35b031d78c4ce2be181d78f36cb8f16c02..9de132dc39f2af083b2f60d6344b9a9635c1de83 100644 +index 4b2ee2e1300203b2f3369cbf8ffcf1ad72153258..d12734b0c6b10ca8997a79e06fc9791abe0e9ed5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -1036,6 +1036,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0859-Friction-API.patch b/patches/server/0858-Friction-API.patch similarity index 98% rename from patches/server/0859-Friction-API.patch rename to patches/server/0858-Friction-API.patch index 1939ce5239ad..8b4f147d22be 100644 --- a/patches/server/0859-Friction-API.patch +++ b/patches/server/0858-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f039ea2716efa3fabf041f75388c2c9b7f41948f..03beb4cf21d98d2b7439c5d548dc1dae51482d9b 100644 +index 49fdc6d198cc7af31e6c1d1ba52c8adc0fae433f..c13a7ae57c046832f65af11dc5efbc7b197b6f74 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0860-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0859-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 97% rename from patches/server/0860-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0859-Ability-to-control-player-s-insomnia-and-phantoms.patch index 3e5f525d0d63..0d4f49bc516f 100644 --- a/patches/server/0860-Ability-to-control-player-s-insomnia-and-phantoms.patch +++ b/patches/server/0859-Ability-to-control-player-s-insomnia-and-phantoms.patch @@ -29,7 +29,7 @@ index 75cdddbfbbc4c0c521194dde27ba5f5d17221842..b350d41a724048af06f9aa9bbef039d3 private EntitySelector() {} // Paper start diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java -index 8c9caa324402568ce9f55e733f4d14430159347a..eab7b0c18389a6980c621c2a0a0879dca9b53121 100644 +index 76982e0dbab0ecb6f7d4cd8a748af940492a31e7..ed80960777b18faca2d6a99783e53daf5fa19e09 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java @@ -33,13 +33,22 @@ public class PhantomSpawner implements CustomSpawner { diff --git a/patches/server/0861-Fix-player-kick-on-shutdown.patch b/patches/server/0860-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0861-Fix-player-kick-on-shutdown.patch rename to patches/server/0860-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0862-Sync-offhand-slot-in-menus.patch b/patches/server/0861-Sync-offhand-slot-in-menus.patch similarity index 94% rename from patches/server/0862-Sync-offhand-slot-in-menus.patch rename to patches/server/0861-Sync-offhand-slot-in-menus.patch index abb074b19f5f..b04cc1689ceb 100644 --- a/patches/server/0862-Sync-offhand-slot-in-menus.patch +++ b/patches/server/0861-Sync-offhand-slot-in-menus.patch @@ -8,7 +8,7 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th by pressing the offhand swap item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6fd2e6b6400f8fc6e1cb82a25275c48fae5a18dc..3abcb4470bbf8f83204532ff5f3f5e152866a9f0 100644 +index cdd5c2fa44d114058391b78434e1cb268c40dc6e..fb2ac7c4b9d938bc699ddc7475e2c3c3777cd056 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -348,6 +348,13 @@ public class ServerPlayer extends Player { @@ -26,7 +26,7 @@ index 6fd2e6b6400f8fc6e1cb82a25275c48fae5a18dc..3abcb4470bbf8f83204532ff5f3f5e15 public void sendSlotChange(AbstractContainerMenu handler, int slot, ItemStack stack) { ServerPlayer.this.connection.send(new ClientboundContainerSetSlotPacket(handler.containerId, handler.incrementStateId(), slot, stack)); diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 2a73cdc6b347aa31a74c2372b0bdc7b00706004a..9eef711958443726249a75e6b4fac70a1714397e 100644 +index 3e0de232b9f89887fd10e9bbe6de89dfe23e61ea..cdd23fb468f30bff52fdf8555b6106f13d0f5552 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -200,6 +200,7 @@ public abstract class AbstractContainerMenu { diff --git a/patches/server/0863-Player-Entity-Tracking-Events.patch b/patches/server/0862-Player-Entity-Tracking-Events.patch similarity index 96% rename from patches/server/0863-Player-Entity-Tracking-Events.patch rename to patches/server/0862-Player-Entity-Tracking-Events.patch index 005bab7fe494..58c861db2024 100644 --- a/patches/server/0863-Player-Entity-Tracking-Events.patch +++ b/patches/server/0862-Player-Entity-Tracking-Events.patch @@ -21,7 +21,7 @@ index 7fa3066575fd8e762dcf5de59a333e15044226e8..6ccd2a5a334c846850a9d064210f2d7f } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index aa634b67ee3a0c473f5e6f6cb6adb0306350ce1c..df3bdb116ead1596c6f93d6e9eb45711fb9b5eb5 100644 +index 888a8f5920083a24601d13123b6defd12b6b64d7..c15c3e4da36c8804934c2c0b046aabd457be6855 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4104,7 +4104,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0864-Limit-pet-look-distance.patch b/patches/server/0863-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0864-Limit-pet-look-distance.patch rename to patches/server/0863-Limit-pet-look-distance.patch diff --git a/patches/server/0865-Properly-resend-entities.patch b/patches/server/0864-Properly-resend-entities.patch similarity index 98% rename from patches/server/0865-Properly-resend-entities.patch rename to patches/server/0864-Properly-resend-entities.patch index 7ca3f625022f..c4448fc5bfa4 100644 --- a/patches/server/0865-Properly-resend-entities.patch +++ b/patches/server/0864-Properly-resend-entities.patch @@ -85,7 +85,7 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0d public static class DataItem { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e14c4e09fbfcd19bd53fcc1560aae317587cee0f..903d04140739f6c1df58bdfcc6a3aa690b289d66 100644 +index dd1a969c6ac8ee08c9898703953dda88c7b4f97e..0fe7770fd4506980667e154c83d7024112cac26d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2653,7 +2653,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -98,7 +98,7 @@ index e14c4e09fbfcd19bd53fcc1560aae317587cee0f..903d04140739f6c1df58bdfcc6a3aa69 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index b8213713b54e0bfaa0ddca41ec76f6840c0e1d20..7968ebbd3c56ff1b33491ffcfdab254f799ddeef 100644 +index d2d21ccc45381787698c84870537ba11ebb75127..a625091f59aadccae7fc40c94b620248bca125de 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -376,7 +376,7 @@ public abstract class PlayerList { diff --git a/patches/server/0866-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0865-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 95% rename from patches/server/0866-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0865-Fixes-and-additions-to-the-SpawnReason-API.patch index deab687e21d1..4398db1d19cd 100644 --- a/patches/server/0866-Fixes-and-additions-to-the-SpawnReason-API.patch +++ b/patches/server/0865-Fixes-and-additions-to-the-SpawnReason-API.patch @@ -21,16 +21,16 @@ index 2fa2e5cada590c0f44a4735bcf20de51892f428b..3c4a57bc6159eac53fe37e817e765018 @Nullable diff --git a/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java b/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java -index 9652e3385ad10e5d825dd141f6be3522c596916d..baea154a24d1b888af18b9b792db9edebe60ebc6 100644 +index 61a36c4e97ee532e53eee4da00a9aa7e4b3438f5..d3b4420e664fedf86d107e819056d2e20f9c0722 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java +++ b/src/main/java/net/minecraft/world/entity/projectile/DragonFireball.java @@ -54,7 +54,7 @@ public class DragonFireball extends AbstractHurtingProjectile { - if (new com.destroystokyo.paper.event.entity.EnderDragonFireballHitEvent((org.bukkit.entity.DragonFireball) this.getBukkitEntity(), list.stream().map(LivingEntity::getBukkitLivingEntity).collect(java.util.stream.Collectors.toList()), (org.bukkit.entity.AreaEffectCloud) areaEffectCloud.getBukkitEntity()).callEvent()) { // Paper + if (new com.destroystokyo.paper.event.entity.EnderDragonFireballHitEvent((org.bukkit.entity.DragonFireball) this.getBukkitEntity(), list.stream().map(LivingEntity::getBukkitLivingEntity).collect(java.util.stream.Collectors.toList()), (org.bukkit.entity.AreaEffectCloud) areaEffectCloud.getBukkitEntity()).callEvent()) { // Paper - EnderDragon Events this.level().levelEvent(2006, this.blockPosition(), this.isSilent() ? -1 : 1); - this.level().addFreshEntity(areaEffectCloud); + this.level().addFreshEntity(areaEffectCloud, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.EXPLOSION); // Paper - use correct spawn reason - } else areaEffectCloud.discard(); // Paper + } else areaEffectCloud.discard(); // Paper - EnderDragon Events this.discard(); } diff --git a/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java b/src/main/java/net/minecraft/world/level/block/FrogspawnBlock.java diff --git a/patches/server/0867-fix-Instruments.patch b/patches/server/0866-fix-Instruments.patch similarity index 96% rename from patches/server/0867-fix-Instruments.patch rename to patches/server/0866-fix-Instruments.patch index ad87dc712d32..c55f770244a4 100644 --- a/patches/server/0867-fix-Instruments.patch +++ b/patches/server/0866-fix-Instruments.patch @@ -6,7 +6,7 @@ Subject: [PATCH] fix Instruments properly handle Player#playNote diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0dbb8d77b79ae2ae3aca4a96aeb92a981c07292a..73019b008afaa88d2e068ed4e8f006dfb1dbaf5f 100644 +index 03b2df036d3618c1ff8291fbf70879aff4a65324..d2ddc69d94cd5d78563896015053364013bb151a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -724,7 +724,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0868-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 97% rename from patches/server/0868-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch index 097481e10fd1..638f7e665c56 100644 --- a/patches/server/0868-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch +++ b/patches/server/0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve inlining for some hot BlockBehavior and FluidState diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index d91a82428a435a65bc55ad466ccebe91e0d905e0..88d7973e83ee828fa71d95924a9134935e80954d 100644 +index 100c2629f2746fc00435f60998dba70135637ef7..7fa2b2bc9d6e7eea8b18fd649c9220945d71a4ff 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -1078,15 +1078,15 @@ public abstract class BlockBehaviour implements FeatureElement { diff --git a/patches/server/0869-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0868-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0869-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0868-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0870-Add-BlockLockCheckEvent.patch b/patches/server/0869-Add-BlockLockCheckEvent.patch similarity index 98% rename from patches/server/0870-Add-BlockLockCheckEvent.patch rename to patches/server/0869-Add-BlockLockCheckEvent.patch index 72fd17bc24eb..07ffc14ac2b0 100644 --- a/patches/server/0870-Add-BlockLockCheckEvent.patch +++ b/patches/server/0869-Add-BlockLockCheckEvent.patch @@ -56,7 +56,7 @@ index fce3a45d09a93ca68a3d49f2e666afa4c860d042..b8b4d74076fa5ed6eb3b2045384db77e @Nullable diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index 1ef558bdd27e9b64413e64f0fa9c68a35f43c39d..c7b0590b742a57d524de41151fc08fc596097d9c 100644 +index 5ea2cad4031d69f0204e3094d9ac5d127ef2438c..44660b9f3d8ef6df42dc05e774a5804fdbfa5d14 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -470,7 +470,7 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name diff --git a/patches/server/0871-Add-Sneaking-API-for-Entities.patch b/patches/server/0870-Add-Sneaking-API-for-Entities.patch similarity index 91% rename from patches/server/0871-Add-Sneaking-API-for-Entities.patch rename to patches/server/0870-Add-Sneaking-API-for-Entities.patch index b3ade9572767..116708204d3a 100644 --- a/patches/server/0871-Add-Sneaking-API-for-Entities.patch +++ b/patches/server/0870-Add-Sneaking-API-for-Entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Sneaking API for Entities diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 7cda23cf7400edcfa1436f6457edd7566cd42323..75d24e0d9f3c84f436d967415ee469e5969d3368 100644 +index 49e5a9fa95ebf4568eb875953f3032b8a7142080..35b6aa33b7715032686acdfd8e5b07d63729593b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -871,6 +871,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0872-Improve-logging-and-errors.patch b/patches/server/0871-Improve-logging-and-errors.patch similarity index 98% rename from patches/server/0872-Improve-logging-and-errors.patch rename to patches/server/0871-Improve-logging-and-errors.patch index 23e62762ada7..f10cdbe3e8e3 100644 --- a/patches/server/0872-Improve-logging-and-errors.patch +++ b/patches/server/0871-Improve-logging-and-errors.patch @@ -40,7 +40,7 @@ index 536f0c496ce36ca3248fc6eeac9bbd77214a36f9..31718823250a1490b783f426fff65bf5 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3d7dd28e73c3d4419766ad37b9c494b3ce2e2d21..332464e238ea49544f28306c1a4a8ed3f8381761 100644 +index 0fe7770fd4506980667e154c83d7024112cac26d..9b7da229e8dc8249b36e7ccf1e77997a146efb88 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3390,7 +3390,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0873-Improve-PortalEvents.patch b/patches/server/0872-Improve-PortalEvents.patch similarity index 93% rename from patches/server/0873-Improve-PortalEvents.patch rename to patches/server/0872-Improve-PortalEvents.patch index 6af7e83d122a..c3be194782b6 100644 --- a/patches/server/0873-Improve-PortalEvents.patch +++ b/patches/server/0872-Improve-PortalEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index df3bdb116ead1596c6f93d6e9eb45711fb9b5eb5..4c8369e968df8b2a809f9c6c2db6cc185104a385 100644 +index c15c3e4da36c8804934c2c0b046aabd457be6855..2777f71abf23be6748b0a80fe4dd64a89d38ffdb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3762,7 +3762,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0874-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0873-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0874-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0873-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0875-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0874-Add-missing-SpigotConfig-logCommands-check.patch similarity index 93% rename from patches/server/0875-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0874-Add-missing-SpigotConfig-logCommands-check.patch index 2ff358385689..f694ecb04de4 100644 --- a/patches/server/0875-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0874-Add-missing-SpigotConfig-logCommands-check.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 332464e238ea49544f28306c1a4a8ed3f8381761..0a70260f8d01ebbf6d35f852461a1d7710bb4b1b 100644 +index 9b7da229e8dc8249b36e7ccf1e77997a146efb88..813f42c2f3925bd50f08b0a4f422bbff91e003e5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2134,7 +2134,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0876-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0875-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0876-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0875-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0877-Flying-Fall-Damage.patch b/patches/server/0876-Flying-Fall-Damage.patch similarity index 92% rename from patches/server/0877-Flying-Fall-Damage.patch rename to patches/server/0876-Flying-Fall-Damage.patch index 5be2b42d6537..de70f746b54e 100644 --- a/patches/server/0877-Flying-Fall-Damage.patch +++ b/patches/server/0876-Flying-Fall-Damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 618aaee0abebef15078c90859a7aa815288e655a..f07b79cced4fa47dbb6b4aa75a384a2a08a53b03 100644 +index d72ea2f3d9528f79149791e34065ea1f299cd089..7562b8a0f0bc8e43b3c0b64c6d66786c2c93b5cd 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity { @@ -26,7 +26,7 @@ index 618aaee0abebef15078c90859a7aa815288e655a..f07b79cced4fa47dbb6b4aa75a384a2a } else { if (fallDistance >= 2.0F) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 73019b008afaa88d2e068ed4e8f006dfb1dbaf5f..6b2f69187ed85ba197fbcd04b22e6d81a1d15dbc 100644 +index d2ddc69d94cd5d78563896015053364013bb151a..1d4b098564ace12dac15506d9f192f6ed27ec864 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2472,6 +2472,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0878-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 98% rename from patches/server/0878-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch index e09b5ff99d51..3d4a817caea6 100644 --- a/patches/server/0878-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch +++ b/patches/server/0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch @@ -41,7 +41,7 @@ index 8bde8c581796ed11809b80b9a30a33df86116745..f339475185645f7be30963e4f980ce81 public DamageSource outOfBorder() { diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 5a2e322d349340fa58f133c2034765f90319b2be..7bb8dc1f4697960cdc6bac0daec4b7a06a2dd7c4 100644 +index 299583b1eb72cfdb4771ba0755fd71f2135484c1..4d51baab29b1a913c3efef2cb4ab0cac6c8cf38a 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -368,7 +368,7 @@ public class Explosion { @@ -130,7 +130,7 @@ index f81c0d07a5efc92942d8ab5c50a8260db033307d..8afc396c162d928902a9d9beb9f039b0 // See BlockStateFactory#createBlockState(World, BlockPosition, IBlockData, TileEntity) private static CraftBlockState getBlockState(World world, BlockPos blockPosition, net.minecraft.world.level.block.state.BlockState blockData, BlockEntity tileEntity) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 38fc706dabbeb93959638deb22311e226a48a6ee..f5a1ff50e8943d7ea75f8b8534b17f7788d094e2 100644 +index fe855fd532e80a2d6b10053670dfb1b8fc009ac2..019c333a477e6e5f90447110f39ba0e9591a56f3 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1045,7 +1045,7 @@ public class CraftEventFactory { diff --git a/patches/server/0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 91% rename from patches/server/0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index a9ab51aafd1f..18f693331ef5 100644 --- a/patches/server/0879-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4c8369e968df8b2a809f9c6c2db6cc185104a385..cd28a4ca35d6fe29c51f19be6cc43795c91c0454 100644 +index 2777f71abf23be6748b0a80fe4dd64a89d38ffdb..511d4e3581ce3e525b6d8c1a7d3b2d10ceaca770 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1161,7 +1161,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0880-config-for-disabling-entity-tag-tags.patch b/patches/server/0879-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0880-config-for-disabling-entity-tag-tags.patch rename to patches/server/0879-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0881-Use-single-player-info-update-packet-on-join.patch b/patches/server/0880-Use-single-player-info-update-packet-on-join.patch similarity index 94% rename from patches/server/0881-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0880-Use-single-player-info-update-packet-on-join.patch index 2ab5c52eb057..32a22c880389 100644 --- a/patches/server/0881-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0880-Use-single-player-info-update-packet-on-join.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b9d4e5e49088065a60087ee2587e7e25ca72f5db..ad086107f9be8da3816ab1d80576be0718dc0054 100644 +index 813f42c2f3925bd50f08b0a4f422bbff91e003e5..7fea36c86d5f11604aa910c84a26898519b61422 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3420,7 +3420,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -18,7 +18,7 @@ index b9d4e5e49088065a60087ee2587e7e25ca72f5db..ad086107f9be8da3816ab1d80576be07 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 7968ebbd3c56ff1b33491ffcfdab254f799ddeef..09397946cb9fa82e20772ea981bdadbc6a5c93c7 100644 +index a625091f59aadccae7fc40c94b620248bca125de..f13bb3e384b45f8dd34b61de372c1068437a0f90 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { diff --git a/patches/server/0882-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0881-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 95% rename from patches/server/0882-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0881-Correctly-shrink-items-during-EntityResurrectEvent.patch index 082a9af27a0a..00d0733f65dd 100644 --- a/patches/server/0882-Correctly-shrink-items-during-EntityResurrectEvent.patch +++ b/patches/server/0881-Correctly-shrink-items-during-EntityResurrectEvent.patch @@ -22,7 +22,7 @@ This patch corrects this behaviour by only shrinking the item if a totem of undying was found and the event was called uncancelled. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0e66212733665307840d10bd6ea049d45f674ddb..9f3b88a30e76d82f5e02f317a5f2676be44acaa9 100644 +index c13a7ae57c046832f65af11dc5efbc7b197b6f74..a0b7ab6a740992ff7b498effe16dc0c09a3b3f84 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1611,7 +1611,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0883-Win-Screen-API.patch b/patches/server/0882-Win-Screen-API.patch similarity index 93% rename from patches/server/0883-Win-Screen-API.patch rename to patches/server/0882-Win-Screen-API.patch index 837c6b728e22..e699a45b6a42 100644 --- a/patches/server/0883-Win-Screen-API.patch +++ b/patches/server/0882-Win-Screen-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API public net.minecraft.server.level.ServerPlayer seenCredits diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6b2f69187ed85ba197fbcd04b22e6d81a1d15dbc..d42d2692c34660b82ef19d8eed60322b5fceece0 100644 +index 1d4b098564ace12dac15506d9f192f6ed27ec864..65bcc0b4a864c26a3167273230f642e0603c0702 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1226,6 +1226,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0884-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0883-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0884-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0883-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0885-Fix-force-opening-enchantment-tables.patch b/patches/server/0884-Fix-force-opening-enchantment-tables.patch similarity index 94% rename from patches/server/0885-Fix-force-opening-enchantment-tables.patch rename to patches/server/0884-Fix-force-opening-enchantment-tables.patch index 7137782d6f9f..70439d1f0ff8 100644 --- a/patches/server/0885-Fix-force-opening-enchantment-tables.patch +++ b/patches/server/0884-Fix-force-opening-enchantment-tables.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix force-opening enchantment tables diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 267863ff81a95d686b8db6cfee9256a2c5ad3f68..5e5fda690605f767b33f8225bffea98d23299fea 100644 +index 2abbcbd393660de69fec567c3e31dbc774d93920..10fad0ba0624fdb601de9cfb9dc82590bd8149ce 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -402,7 +402,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0886-Add-Entity-Body-Yaw-API.patch b/patches/server/0885-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0886-Add-Entity-Body-Yaw-API.patch rename to patches/server/0885-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0887-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0886-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0887-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0886-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0888-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0887-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 90% rename from patches/server/0888-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0887-Update-the-flag-when-a-captured-block-state-is-outda.patch index 17954c83a344..6d30351d9c84 100644 --- a/patches/server/0888-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0887-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 6a8e9a81b700caf87046580cc019efb2dbd07188..2afa2d7b5978cc8474228ff45b66d0d3fac7728a 100644 +index b5815acea75cd70f65d9eb2b554b435c91be9994..460b1c589d335e1c74cffc8d39fa1e4a1abd45c7 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -922,6 +922,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0889-Add-EntityFertilizeEggEvent.patch b/patches/server/0888-Add-EntityFertilizeEggEvent.patch similarity index 97% rename from patches/server/0889-Add-EntityFertilizeEggEvent.patch rename to patches/server/0888-Add-EntityFertilizeEggEvent.patch index 61a69b1a3f45..3558b6dd4da4 100644 --- a/patches/server/0889-Add-EntityFertilizeEggEvent.patch +++ b/patches/server/0888-Add-EntityFertilizeEggEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityFertilizeEggEvent diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index f8c1dfc8e121a406955348a1ec00c264d73e73f7..d8056421249c8e75e96a55ec07dce84d2bba9c5c 100644 +index 2a3f1d14a4b24a3219d191b4f2e97ed7b061e006..f97bdfbd07db000845d3b791de64056c3c23f7ba 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -445,6 +445,10 @@ public class Turtle extends Animal { @@ -69,7 +69,7 @@ index 0e85e3ab58d848b119212fa7d2eb4f92d3efe29b..0a5b953bd8c0c7f181da4090b950e9e6 this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F); } // Paper - Call EntityDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index f5a1ff50e8943d7ea75f8b8534b17f7788d094e2..5b95d95c89b962315dd07afb2a426c01c77fc4ab 100644 +index 019c333a477e6e5f90447110f39ba0e9591a56f3..0d407f06866571f3d87891e1a22d7aef625b39db 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -2092,4 +2092,29 @@ public class CraftEventFactory { diff --git a/patches/server/0890-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0889-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 94% rename from patches/server/0890-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0889-Fix-HumanEntity-drop-not-updating-the-client-inv.patch index 4aea1758efa5..39cf518fa6fd 100644 --- a/patches/server/0890-Fix-HumanEntity-drop-not-updating-the-client-inv.patch +++ b/patches/server/0889-Fix-HumanEntity-drop-not-updating-the-client-inv.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix HumanEntity#drop not updating the client inv public net.minecraft.server.level.ServerPlayer containerSynchronizer diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 5e5fda690605f767b33f8225bffea98d23299fea..897e693492bdf9293154535d5772929bc2b1a523 100644 +index 10fad0ba0624fdb601de9cfb9dc82590bd8149ce..94c2ea713e0614de570458f6b9c418a3d67d14b5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -755,8 +755,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0891-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0890-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0891-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0890-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0892-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0891-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0892-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0891-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0893-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0892-Fix-advancement-triggers-for-entity-damage.patch similarity index 97% rename from patches/server/0893-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0892-Fix-advancement-triggers-for-entity-damage.patch index 4b04d3a488bb..a1bff3ea4178 100644 --- a/patches/server/0893-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0892-Fix-advancement-triggers-for-entity-damage.patch @@ -23,7 +23,7 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9f3b88a30e76d82f5e02f317a5f2676be44acaa9..202819877d5920e8d0429a8c1bf06af4b9af950f 100644 +index a0b7ab6a740992ff7b498effe16dc0c09a3b3f84..169590748b65c3160361ae41d124e7651871c7f0 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2302,7 +2302,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0894-Fix-text-display-error-on-spawn.patch b/patches/server/0893-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0894-Fix-text-display-error-on-spawn.patch rename to patches/server/0893-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0895-Fix-inventories-returning-null-Locations.patch b/patches/server/0894-Fix-inventories-returning-null-Locations.patch similarity index 97% rename from patches/server/0895-Fix-inventories-returning-null-Locations.patch rename to patches/server/0894-Fix-inventories-returning-null-Locations.patch index ca5f09c8dfb4..9cf8fcb0e63a 100644 --- a/patches/server/0895-Fix-inventories-returning-null-Locations.patch +++ b/patches/server/0894-Fix-inventories-returning-null-Locations.patch @@ -30,7 +30,7 @@ index d5eeb2fcb119b815213aeffb3811d4a843502e50..ff1aba1e69cfde633fd01724f1a8d0af } diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index 0b1a0be964d799f1706c273092dc653fa04e8014..3c67132bd3c1e4886f7ba823fe330b019359ac9d 100644 +index de919d72e6e3ef160c7d22ca6a4e9f79a1fe493e..86199457586dc4d4f0d8ccaac812e8340aaac957 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java @@ -51,6 +51,12 @@ public class BeaconMenu extends AbstractContainerMenu { diff --git a/patches/server/0896-Add-Shearable-API.patch b/patches/server/0895-Add-Shearable-API.patch similarity index 100% rename from patches/server/0896-Add-Shearable-API.patch rename to patches/server/0895-Add-Shearable-API.patch diff --git a/patches/server/0897-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0896-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0897-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0896-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0898-Optimize-Hoppers.patch b/patches/server/0897-Optimize-Hoppers.patch similarity index 99% rename from patches/server/0898-Optimize-Hoppers.patch rename to patches/server/0897-Optimize-Hoppers.patch index c7b7da208581..17aa94ac70ff 100644 --- a/patches/server/0898-Optimize-Hoppers.patch +++ b/patches/server/0897-Optimize-Hoppers.patch @@ -50,7 +50,7 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 44ca57d91c64a062c379de38c2a5af2d6fae1af3..e9ec17c4dfb44f6f562dedd20d123064492ef736 100644 +index ed9839ff23d0810912a6961979690c3fe9fc0e16..afc23f859188a6cda27a683babd551c250a748ef 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1672,6 +1672,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index c134cf3f86b75de5ef66b23642624436cc934159..d62fffa3a7cb33600328d413a27ff1bf70298933 100644 +index 23fec59b51c99c1f0ac19ffd6c84ffa8fc3caaac..6d1986d4dfa4dd4f5988c6afa023f9bd518e1d4e 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -749,10 +749,16 @@ public final class ItemStack { diff --git a/patches/server/0899-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0898-Fix-beehives-generating-from-using-bonemeal.patch similarity index 96% rename from patches/server/0899-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0898-Fix-beehives-generating-from-using-bonemeal.patch index f84aee22bc3a..d8bf63c06264 100644 --- a/patches/server/0899-Fix-beehives-generating-from-using-bonemeal.patch +++ b/patches/server/0898-Fix-beehives-generating-from-using-bonemeal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix beehives generating from using bonemeal diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index d62fffa3a7cb33600328d413a27ff1bf70298933..63cd9cd79217a9bcedb6647e6f61d9bccc28d9f0 100644 +index 6d1986d4dfa4dd4f5988c6afa023f9bd518e1d4e..71d93daa527ae34b83138394fa79289c403a33d8 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -422,6 +422,7 @@ public final class ItemStack { diff --git a/patches/server/0900-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0899-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 93% rename from patches/server/0900-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0899-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch index bedd123feab6..576441539c62 100644 --- a/patches/server/0900-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch +++ b/patches/server/0899-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix crash relating to bad recipes in furnace-like tile diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index d493136283ae5100c0dc22f8da5f7e5b64fdc5f5..b39c6c91e088dbe2187ed7fd598076f41c53bd49 100644 +index d7beeac4a8e4a16221809663a5aa03389a759742..d04fc84eef11adb5ea64077f48794b6ed7fb3ada 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -643,6 +643,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit diff --git a/patches/server/0901-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0900-Treat-sequence-violations-like-they-should-be.patch similarity index 92% rename from patches/server/0901-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0900-Treat-sequence-violations-like-they-should-be.patch index 033fb9eb6472..3470210a4c19 100644 --- a/patches/server/0901-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0900-Treat-sequence-violations-like-they-should-be.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8bcd8a7fa65e05ccef0a205319cad9e84b4341b5..166dbfb6a06ac69774ecfe2e8c0b0c6f22a44d19 100644 +index 7fea36c86d5f11604aa910c84a26898519b61422..ac126672d5fa58be8110c573abce5628f0532967 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2038,6 +2038,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0902-remove-duplicate-animate-packet-for-records.patch b/patches/server/0901-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0902-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0901-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0903-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0902-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 97% rename from patches/server/0903-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0902-Prevent-causing-expired-keys-from-impacting-new-join.patch index 47148814337e..937e6c80c11b 100644 --- a/patches/server/0903-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0902-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -24,7 +24,7 @@ index 0e54e8faa48751a651b953bec72543a94edf74bc..d43106eb89b14667e85cd6e8fa047d64 UPDATE_GAME_MODE((serialized, buf) -> { serialized.gameMode = GameType.byId(buf.readVarInt()); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 166dbfb6a06ac69774ecfe2e8c0b0c6f22a44d19..253d37d7e8677e438d8463eee557682aade86a1e 100644 +index ac126672d5fa58be8110c573abce5628f0532967..91dbd137575c9191fcb48d561880f0b7a309334b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -287,6 +287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 91% rename from patches/server/0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index 249a12dda7d9..1f17b1f7b132 100644 --- a/patches/server/0904-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3c1a3a757cec89058ae9300be6902d3fe9342d25..e8dc785913f5fd1238a73c2384d2abef0e9d2e4b 100644 +index 5b2de5cdac2440a4043c34525a0852067aa9371f..ab472d2e81c0756020ffb727db4b71aeb8d9d020 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1704,6 +1704,11 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0905-Use-array-for-gamerule-storage.patch b/patches/server/0904-Use-array-for-gamerule-storage.patch similarity index 97% rename from patches/server/0905-Use-array-for-gamerule-storage.patch rename to patches/server/0904-Use-array-for-gamerule-storage.patch index 37b97e470a0e..1629a3b7cfba 100644 --- a/patches/server/0905-Use-array-for-gamerule-storage.patch +++ b/patches/server/0904-Use-array-for-gamerule-storage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use array for gamerule storage diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index dd03426943dd380cefe12afe3e63c3180a22ec4f..afe91d02363bf7385d34447dda8960980ec48443 100644 +index 0112ef51815c4fab38b95d5e917d335eeaaa21cd..c246981987017a2f86c5d632929356855e2b5714 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java @@ -114,6 +114,7 @@ public class GameRules { diff --git a/patches/server/0906-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0905-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0906-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0905-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0907-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0906-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 91% rename from patches/server/0907-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0906-Fix-demo-flag-not-enabling-demo-mode.patch index 80f51e212026..588524d49e22 100644 --- a/patches/server/0907-Fix-demo-flag-not-enabling-demo-mode.patch +++ b/patches/server/0906-Fix-demo-flag-not-enabling-demo-mode.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix demo flag not enabling demo mode https://github.com/PaperMC/Paper/issues/9046 diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index e65546ab25b9dc814ea14aabfbae8f80017ab88b..4a565321174d9230823a07cf37fb104f9f92245f 100644 +index 19009f0c1d572eebad6cce93f8cf56ca820fc33f..61840cfd64caba6595dfc99c91c76a195638d4ee 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -333,7 +333,9 @@ public class Main { diff --git a/patches/server/0908-Add-Mob-Experience-reward-API.patch b/patches/server/0907-Add-Mob-Experience-reward-API.patch similarity index 89% rename from patches/server/0908-Add-Mob-Experience-reward-API.patch rename to patches/server/0907-Add-Mob-Experience-reward-API.patch index f8e4f5e75424..874d481524db 100644 --- a/patches/server/0908-Add-Mob-Experience-reward-API.patch +++ b/patches/server/0907-Add-Mob-Experience-reward-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Mob Experience reward API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -index b8d16e2e91e3bf1c004f887bf37e5502938fdd1d..5f6a1fb323782816f706ccf7df922cb203238302 100644 +index ad293ad9d5dcd7836a4fa29b4b687346e3ae516c..31f62fbb54ec7b270fbd8afba7bd7c4bfafa09e3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java @@ -170,4 +170,11 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { diff --git a/patches/server/0909-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0908-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0909-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0908-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0910-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0909-Fix-DamageCause-for-Falling-Blocks.patch similarity index 92% rename from patches/server/0910-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0909-Fix-DamageCause-for-Falling-Blocks.patch index 0bfd342e6f54..82f43537bd37 100644 --- a/patches/server/0910-Fix-DamageCause-for-Falling-Blocks.patch +++ b/patches/server/0909-Fix-DamageCause-for-Falling-Blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 5b95d95c89b962315dd07afb2a426c01c77fc4ab..afa9b967aec163eea0359910bb682395401feaa4 100644 +index 0d407f06866571f3d87891e1a22d7aef625b39db..03ac6ae291945a31552956fc107a3854227e1151 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1085,6 +1085,11 @@ public class CraftEventFactory { diff --git a/patches/server/0911-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0910-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0911-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0910-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0912-More-accurate-isInOpenWater-impl.patch b/patches/server/0911-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0912-More-accurate-isInOpenWater-impl.patch rename to patches/server/0911-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0913-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0912-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0913-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0912-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0914-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch similarity index 94% rename from patches/server/0914-Optimise-recalcBlockCounts-for-empty-sections.patch rename to patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch index 5918de4d55be..2828d37eeb57 100644 --- a/patches/server/0914-Optimise-recalcBlockCounts-for-empty-sections.patch +++ b/patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch @@ -16,7 +16,7 @@ sections with a ZeroBitStorage data to to take ~20% of the process, now it takes <1%. diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index b39fea80fcb83873b7e7085eaaf935e712f0ede7..9da74764a91bea7822c0444b48623b23e038d3f2 100644 +index 6d340a9b64ae900dfe84eeeaf7a39f7e7a139198..1a473187c22c4158959a3aae33a6823229c5b7a7 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -144,6 +144,7 @@ public class LevelChunkSection { diff --git a/patches/server/0915-Expand-PlayerItemMendEvent.patch b/patches/server/0914-Expand-PlayerItemMendEvent.patch similarity index 96% rename from patches/server/0915-Expand-PlayerItemMendEvent.patch rename to patches/server/0914-Expand-PlayerItemMendEvent.patch index c53087c23794..48868e0e0076 100644 --- a/patches/server/0915-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0914-Expand-PlayerItemMendEvent.patch @@ -33,7 +33,7 @@ index 5685951b71a8b81c7a71fd93b099b276d535b401..b37e13c5de1a0a22a3713d04b203afc6 return k > 0 ? this.repairPlayerItems(player, k) : 0; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d42d2692c34660b82ef19d8eed60322b5fceece0..c21f3ca67672fffa0b2ae0a0e241932efbaedc8a 100644 +index 65bcc0b4a864c26a3167273230f642e0603c0702..c49d3448866caae8a2ceb51a45c3a056124f8f57 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1754,11 +1754,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -51,7 +51,7 @@ index d42d2692c34660b82ef19d8eed60322b5fceece0..c21f3ca67672fffa0b2ae0a0e241932e } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index afa9b967aec163eea0359910bb682395401feaa4..8e3799f0c778ae15169fadced83a84e6553a7bc0 100644 +index 03ac6ae291945a31552956fc107a3854227e1151..b0bcef03da4f4dfe41fb88b47bfec576af76f21b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1321,10 +1321,10 @@ public class CraftEventFactory { diff --git a/patches/server/0916-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0915-Refresh-ProjectileSource-for-projectiles.patch similarity index 95% rename from patches/server/0916-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0915-Refresh-ProjectileSource-for-projectiles.patch index edd538ada45c..2b9a9a63bddf 100644 --- a/patches/server/0916-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0915-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cd28a4ca35d6fe29c51f19be6cc43795c91c0454..b8205779022e56a0af10b02b52be77e035da1a6b 100644 +index 511d4e3581ce3e525b6d8c1a7d3b2d10ceaca770..5af4da94c5710fd6d58fecbc60ba432c94319fe3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -385,6 +385,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -26,7 +26,7 @@ index cd28a4ca35d6fe29c51f19be6cc43795c91c0454..b8205779022e56a0af10b02b52be77e0 public boolean lastDamageCancelled; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled public boolean persistentInvisibility = false; diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 270dd1db56b187bffaedba9f2b86b3e46dda3152..5b6d5c799cc8e601a01b6967917e15ba1e2db721 100644 +index d01570d7c3c8c4bd40cafc32d02774b789355460..d6c0488618cedfa6fe47375daca4c38a8f49ccbc 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -50,14 +50,31 @@ public abstract class Projectile extends Entity implements TraceableEntity { diff --git a/patches/server/0917-Add-transient-modifier-API.patch b/patches/server/0916-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0917-Add-transient-modifier-API.patch rename to patches/server/0916-Add-transient-modifier-API.patch diff --git a/patches/server/0918-Fix-block-place-logic.patch b/patches/server/0917-Fix-block-place-logic.patch similarity index 97% rename from patches/server/0918-Fix-block-place-logic.patch rename to patches/server/0917-Fix-block-place-logic.patch index feb8adf581a8..750fc73db9f5 100644 --- a/patches/server/0918-Fix-block-place-logic.patch +++ b/patches/server/0917-Fix-block-place-logic.patch @@ -41,7 +41,7 @@ index 71d93daa527ae34b83138394fa79289c403a33d8..94cb7625c451df53de60783535ce0d58 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2afa2d7b5978cc8474228ff45b66d0d3fac7728a..92e823a123129694a9db5f54659f8d14abebf9b1 100644 +index 460b1c589d335e1c74cffc8d39fa1e4a1abd45c7..4ffbf7b738445bed08d9f889c6d9b5cadbb2165c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1037,17 +1037,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0919-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 94% rename from patches/server/0919-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch index 1b0f7c67c4e0..9871a477c81e 100644 --- a/patches/server/0919-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch +++ b/patches/server/0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 6070711b9825612fbc485d840ed3ed80cf912493..587167154b5528faea457485c0d38c0f48e8904a 100644 +index 94cb7625c451df53de60783535ce0d58b37e35bf..5f3512f58124e0664666eeee541a6a22c022f75a 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -544,7 +544,11 @@ public final class ItemStack { diff --git a/patches/server/0920-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0919-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0920-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0919-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0921-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 89% rename from patches/server/0921-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index c8c82e2a7ef6..15631f0f32df 100644 --- a/patches/server/0921-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 65daec67e955a7e1d36ffc1455ec561fb02d795a..5f24bab8b21452e502af70a925ceeaecbedd4a6c 100644 +index 1b4837ddb216d66164a893f5a34c0505c6f1aab2..029b88ab23f9c1faa50fb4a367a56ede77008ea8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -352,7 +352,11 @@ public final class CraftServer implements Server { @@ -17,7 +17,7 @@ index 65daec67e955a7e1d36ffc1455ec561fb02d795a..5f24bab8b21452e502af70a925ceeaec + final YamlConfiguration commandsDefaults = YamlConfiguration.loadConfiguration(new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("configurations/commands.yml"), Charsets.UTF_8)); + if (this.commandsConfiguration.contains("aliases")) commandsDefaults.set("aliases", null); + this.commandsConfiguration.setDefaults(commandsDefaults); -+ // Paper stop - don't enforce icanhasbukkit default if alias block exists ++ // Paper end - don't enforce icanhasbukkit default if alias block exists this.saveCommandsConfig(); // Migrate aliases from old file and add previously implicit $1- to pass all arguments diff --git a/patches/server/0922-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0921-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0922-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0921-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0923-Fix-sniffer-removeExploredLocation.patch b/patches/server/0922-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0923-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0922-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0924-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0923-Add-method-to-remove-all-active-potion-effects.patch similarity index 91% rename from patches/server/0924-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0923-Add-method-to-remove-all-active-potion-effects.patch index 3152d18aa2b5..56ade4ed638b 100644 --- a/patches/server/0924-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/server/0923-Add-method-to-remove-all-active-potion-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 33e977f87e06c4f022b913006c20ac53eb28f172..1f1ef68a9a449a4a90c284f34a397ab4b6d905f6 100644 +index 310ce32708601d95cda2647e101d02d48ccdbb77..4afc1c9d2a7638e84a55fe30932dc36db465c31a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -502,6 +502,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0925-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0924-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch similarity index 91% rename from patches/server/0925-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename to patches/server/0924-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch index d14b29086f76..e0a566756b14 100644 --- a/patches/server/0925-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch +++ b/patches/server/0924-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Temp: Pre-init PlayerChunkLoaderData in order to prepopulate diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 39f361e2d3b31dc2587042df225132884a9156c0..16e73128115ef92adefbd7818fef3a4b9bcebad2 100644 +index 5ad5b54e977af7dc86c2505f7ccdc77422adb33b..62d9737a8d36d4863ffd7853ba290ef83c759687 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -368,6 +368,7 @@ public class Main { diff --git a/patches/server/0926-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0925-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0926-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0925-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0927-Properly-cancel-usable-items.patch b/patches/server/0926-Properly-cancel-usable-items.patch similarity index 92% rename from patches/server/0927-Properly-cancel-usable-items.patch rename to patches/server/0926-Properly-cancel-usable-items.patch index ef9ac9fa177d..a97f6e58dc77 100644 --- a/patches/server/0927-Properly-cancel-usable-items.patch +++ b/patches/server/0926-Properly-cancel-usable-items.patch @@ -10,7 +10,7 @@ The underlying issue of this is that the client modifies their synced data value them in order for the client to reset their using item state. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index d0210fb4347cce1010499b9e2f7986e55ee9022c..4fdcff0ab2fb83cebbd05b00f5d6ed287cfc58ac 100644 +index 870447743db05043f6d3c0f2a699310077529636..84cc7d9b42cf8b2925ee433d87cb138d58a40fb3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -557,6 +557,7 @@ public class ServerPlayerGameMode { @@ -34,7 +34,7 @@ index d0210fb4347cce1010499b9e2f7986e55ee9022c..4fdcff0ab2fb83cebbd05b00f5d6ed28 return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 253d37d7e8677e438d8463eee557682aade86a1e..5d1a1b2abc62f15251d954e90e8e51dac184e8dd 100644 +index 91dbd137575c9191fcb48d561880f0b7a309334b..a9a8850b2ddb4b4326542c7efa3f263b1f532b86 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1950,6 +1950,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -46,7 +46,7 @@ index 253d37d7e8677e438d8463eee557682aade86a1e..5d1a1b2abc62f15251d954e90e8e51da return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 75ab201ecd32b1ff2cf84466ff6a2a2029134ca2..ec37b97abd1d47331b31fc9f6637ac59ee3e7f97 100644 +index 169590748b65c3160361ae41d124e7651871c7f0..629d38851558207f302e9baa0157218d7c8596d7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3814,6 +3814,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0928-Add-event-for-player-editing-sign.patch b/patches/server/0927-Add-event-for-player-editing-sign.patch similarity index 98% rename from patches/server/0928-Add-event-for-player-editing-sign.patch rename to patches/server/0927-Add-event-for-player-editing-sign.patch index 9eea1724feca..62a97be048ce 100644 --- a/patches/server/0928-Add-event-for-player-editing-sign.patch +++ b/patches/server/0927-Add-event-for-player-editing-sign.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add event for player editing sign diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 587167154b5528faea457485c0d38c0f48e8904a..064b86c80e12af1e1e7f9b28484f51e9a3474e82 100644 +index 5f3512f58124e0664666eeee541a6a22c022f75a..5756ab17e721d5886ed669a0527e18769b8e1b8b 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -523,7 +523,7 @@ public final class ItemStack { diff --git a/patches/server/0929-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0928-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0929-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0928-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0930-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0929-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 97% rename from patches/server/0930-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0929-Fix-cmd-permission-levels-for-command-blocks.patch index 509c920615f1..588d49923f86 100644 --- a/patches/server/0930-Fix-cmd-permission-levels-for-command-blocks.patch +++ b/patches/server/0929-Fix-cmd-permission-levels-for-command-blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix cmd permission levels for command blocks diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index e65d7980b7ebed60786bc31e2f8156fda3b59556..6978d0a9abc9cc5870ac5ee6308f2e9949b42fde 100644 +index 21c9b903e26f93b8d4e97f3e0d98e3b2e45857f9..623403c56d79e29421f340e97c05488efaf1893d 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -204,10 +204,29 @@ public class CommandSourceStack implements ExecutionCommandSource callInventoryOpenEventWithTitle(ServerPlayer player, AbstractContainerMenu container, boolean cancelled) { + // Paper end - Add titleOverride to InventoryOpenEvent if (player.containerMenu != player.inventoryMenu) { // fire INVENTORY_CLOSE if one already open - player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper + player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper - Inventory close reason } @@ -1456,10 +1467,10 @@ public class CraftEventFactory { diff --git a/patches/server/0981-Configure-sniffer-egg-hatch-time.patch b/patches/server/0980-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/server/0981-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0980-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/server/0982-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0981-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 97% rename from patches/server/0982-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0981-Do-crystal-portal-proximity-check-before-entity-look.patch index 0d845b7122f1..5d4a0ea4ebf3 100644 --- a/patches/server/0982-Do-crystal-portal-proximity-check-before-entity-look.patch +++ b/patches/server/0981-Do-crystal-portal-proximity-check-before-entity-look.patch @@ -34,7 +34,7 @@ index ca1edc083847b47bb450b291723aca778a5912dc..e1696f6b77df4c8fceaece64701d4db7 } diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 17f4f6b098411c64d09fe01965c22a1789faa6bb..8d57a03793934c8c0b259974bd4d9f9c2cab884d 100644 +index 2d9a7a91eb14c4f4f82d6ee491fbc628d91fb07d..4d2ec3b14ed3b6c527745111950bbdf111129c41 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -558,6 +558,12 @@ public class EndDragonFight { diff --git a/patches/server/0983-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0982-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0983-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0982-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0984-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0983-Add-slot-sanity-checks-in-container-clicks.patch similarity index 96% rename from patches/server/0984-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0983-Add-slot-sanity-checks-in-container-clicks.patch index 9cf439e965f4..0c616ab1a7af 100644 --- a/patches/server/0984-Add-slot-sanity-checks-in-container-clicks.patch +++ b/patches/server/0983-Add-slot-sanity-checks-in-container-clicks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add slot sanity checks in container clicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 96d44798583ee876ca8121c381638cd741d8338c..ba6d22426398546b70760c2205ce625cead11803 100644 +index 4ce8af82944b1d164f3435125c22d1ab3a951c19..5234d3dcb60d84f65621713b57bea034038af2a5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2987,6 +2987,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0985-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0984-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0985-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0984-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0986-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0985-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0986-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0985-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0987-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0986-Fix-silent-equipment-change-for-mobs.patch similarity index 96% rename from patches/server/0987-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0986-Fix-silent-equipment-change-for-mobs.patch index 5ad357386c78..71d648e31a96 100644 --- a/patches/server/0987-Fix-silent-equipment-change-for-mobs.patch +++ b/patches/server/0986-Fix-silent-equipment-change-for-mobs.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix silent equipment change for mobs diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 16d84042e2575418880897c728a99d1b8bbcdd15..c81c72bf1027fcbaac67808fbcf6e0af112176bc 100644 +index 74004b78673e81218b44097eea89a79217e005a6..4050c46df8537da37c3b022d94b064e9d5dd0659 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1059,13 +1059,20 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -32,7 +32,7 @@ index 16d84042e2575418880897c728a99d1b8bbcdd15..c81c72bf1027fcbaac67808fbcf6e0af } diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -index 9af5a4b46dcec727c7c862332759ffbe3ebd87b5..8527388f7cb5fce43ff485c903d6b78c10c4259e 100644 +index 40664cc7e3665432a2ab5e552802c3fc3edbdb22..586e3e92ccc275446df6dbbff9bf010a37a9aa8f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java @@ -250,8 +250,8 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo diff --git a/patches/server/0988-Fix-spigot-s-Forced-Stats.patch b/patches/server/0987-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0988-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0987-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0989-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0988-Add-missing-InventoryHolders-to-inventories.patch similarity index 96% rename from patches/server/0989-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0988-Add-missing-InventoryHolders-to-inventories.patch index 64367c8db865..2a79e00b7382 100644 --- a/patches/server/0989-Add-missing-InventoryHolders-to-inventories.patch +++ b/patches/server/0988-Add-missing-InventoryHolders-to-inventories.patch @@ -57,7 +57,7 @@ index ff1aba1e69cfde633fd01724f1a8d0af7f59437f..9546d93f90ca34b4d35bd98df847bf89 public SimpleContainer(int i, org.bukkit.inventory.InventoryHolder owner) { this.bukkitOwner = owner; diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index fd4caf18698ad51c789a57dec58e135c5de7ca19..1548bc20988fea3f032d71cad40299fdf5b08b71 100644 +index 4183afe565a46ebc52ff520b046fef405e3b22f7..48f634a7521d31c1e9dfd3cfc83139d428dbd37a 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -1029,4 +1029,15 @@ public abstract class AbstractContainerMenu { @@ -77,7 +77,7 @@ index fd4caf18698ad51c789a57dec58e135c5de7ca19..1548bc20988fea3f032d71cad40299fd + // Paper end - Add missing InventoryHolders } diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index 3c67132bd3c1e4886f7ba823fe330b019359ac9d..1eda87516b3ac9bea08d18a06e9fd9eba03d02be 100644 +index 86199457586dc4d4f0d8ccaac812e8340aaac957..ae2dc7fc4df54f9ed8e78ff1347f9782eccc9d4b 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java @@ -41,7 +41,7 @@ public class BeaconMenu extends AbstractContainerMenu { @@ -90,7 +90,7 @@ index 3c67132bd3c1e4886f7ba823fe330b019359ac9d..1eda87516b3ac9bea08d18a06e9fd9eb public boolean canPlaceItem(int slot, ItemStack stack) { return stack.is(ItemTags.BEACON_PAYMENT_ITEMS); diff --git a/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java b/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java -index 819187dbcf468d9278ce33bd97688476aab53f8e..32e7c7599bffb9ea5384615d31e0b63de08a8813 100644 +index ca3c8b31967a6efd7b0caacb091ab2151e7c0bee..45bf1c95d86bdfc709c5f1a1fbefb18e1cc51f4c 100644 --- a/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java +++ b/src/main/java/net/minecraft/world/inventory/CartographyTableMenu.java @@ -52,7 +52,7 @@ public class CartographyTableMenu extends AbstractContainerMenu { @@ -161,7 +161,7 @@ index c2d6265933dc4ceed80e2bd517970d02164a63df..343f44db579839eb61376f876b5eff2e public void setChanged() { super.setChanged(); diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java -index 24187a7ce812cb83a9a736bec8dce9e68ccc0798..4acad717bfec91e4abcdd59900e6872838d0712c 100644 +index 95ac3446fba1f37637c9700080de2e1ce7a3550a..23462de504932bd351b8dfacde514fe361343912 100644 --- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java +++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java @@ -59,8 +59,8 @@ public class GrindstoneMenu extends AbstractContainerMenu { @@ -176,7 +176,7 @@ index 24187a7ce812cb83a9a736bec8dce9e68ccc0798..4acad717bfec91e4abcdd59900e68728 public void setChanged() { super.setChanged(); diff --git a/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java b/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java -index ff770b9ce68a62418de0c7ed389650626fa1dcb2..e5a7f36843d621e6c714ef2e1cb8e2e3551924ef 100644 +index eb36a69b8da492aec9609cc9ef80d7d68ff9af03..62e1b7096fa659778b737b3d520389e73138dc5d 100644 --- a/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java @@ -18,7 +18,7 @@ public abstract class ItemCombinerMenu extends AbstractContainerMenu { @@ -206,7 +206,7 @@ index ff770b9ce68a62418de0c7ed389650626fa1dcb2..e5a7f36843d621e6c714ef2e1cb8e2e3 public void setChanged() { super.setChanged(); diff --git a/src/main/java/net/minecraft/world/inventory/LoomMenu.java b/src/main/java/net/minecraft/world/inventory/LoomMenu.java -index e28c1cdf4763e9db3e29b3c0f08d65f978017931..c70af9c36ab5806643b050554d7d27a1e2db2028 100644 +index b8440f2cd7ca46c243407ae1ba8f8c7adab4ecd4..e51dabca7b81adee35246e429dcb8f42ae0bf22c 100644 --- a/src/main/java/net/minecraft/world/inventory/LoomMenu.java +++ b/src/main/java/net/minecraft/world/inventory/LoomMenu.java @@ -73,7 +73,7 @@ public class LoomMenu extends AbstractContainerMenu { @@ -261,7 +261,7 @@ index d4592218d761eb38402e3d95c642e80a708cb333..4c4266a85c38e41e6c7e6144a68624f4 public ResultContainer() { this.itemStacks = NonNullList.withSize(1, ItemStack.EMPTY); diff --git a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java -index aa1d1466d0a7b76967a41d948b7a4114fe06242f..d6b9de312f67269e1e4b7bb5200ce8a0be674602 100644 +index 4924993fab57bcf72a5d75cc2f7e6bed4f9f511c..6ba59a60b85c04127abd7df37a647fa71745327a 100644 --- a/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java +++ b/src/main/java/net/minecraft/world/inventory/StonecutterMenu.java @@ -68,7 +68,7 @@ public class StonecutterMenu extends AbstractContainerMenu { diff --git a/patches/server/0990-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 97% rename from patches/server/0990-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch index 0da15fa481cd..a9d6af5d2793 100644 --- a/patches/server/0990-Do-not-read-tile-entities-in-chunks-that-are-positio.patch +++ b/patches/server/0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch @@ -10,7 +10,7 @@ which would cause a crash on Folia but would appear to function fine on Paper. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 72cfe25cbc2076bc83c9f965ab70b0e636800212..c57ca085afe52af0ae9e40e241452796e246f5cc 100644 +index c09d42c03e1e430dd65218e8297be9e35cdef030..362516b6703dfa037954c55b8628074965240dff 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -381,6 +381,13 @@ public class ChunkSerializer { diff --git a/patches/server/0991-Actually-optimise-explosions.patch b/patches/server/0990-Actually-optimise-explosions.patch similarity index 100% rename from patches/server/0991-Actually-optimise-explosions.patch rename to patches/server/0990-Actually-optimise-explosions.patch diff --git a/patches/server/0992-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0991-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0992-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0991-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0993-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0992-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 100% rename from patches/server/0993-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/0992-Remove-Spigot-Bug-Fix-for-MC-109346.patch diff --git a/patches/server/0994-Fix-SuspiciousStewMeta.patch b/patches/server/0993-Fix-SuspiciousStewMeta.patch similarity index 100% rename from patches/server/0994-Fix-SuspiciousStewMeta.patch rename to patches/server/0993-Fix-SuspiciousStewMeta.patch diff --git a/patches/server/0995-Optimise-chunk-tick-iteration.patch b/patches/server/0994-Optimise-chunk-tick-iteration.patch similarity index 99% rename from patches/server/0995-Optimise-chunk-tick-iteration.patch rename to patches/server/0994-Optimise-chunk-tick-iteration.patch index de585cf57640..c8dc8078c6e8 100644 --- a/patches/server/0995-Optimise-chunk-tick-iteration.patch +++ b/patches/server/0994-Optimise-chunk-tick-iteration.patch @@ -108,7 +108,7 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754 List list; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index ce808a48478be3b310d33f4b28364f70f4cd3236..1b2b510cf5ea1799c1f5dec990cec52671e900a9 100644 +index c7d78fb217869204157606db8d6d73af0126a68f..6c28b37056c70fa0076b290b24168bfb79ddd77d 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -365,7 +365,7 @@ index dfecd5531862109cd89cfd8a041a8beef70c1a6a..65a20974428ae1c0be2022d997234a16 gameprofilerfiller.pop(); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6ae35f3adce280e8be8e7e2f3bc4a0896ef6df83..84974c72dd3838ea118cc60c284709911cd7630b 100644 +index 8afbf0d40af4040b18f68a549710112a0aa5fd00..575681586667933e7f26bb16f7d2aa7c73188cde 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -325,6 +325,9 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0996-Lag-compensation-ticks.patch b/patches/server/0995-Lag-compensation-ticks.patch similarity index 97% rename from patches/server/0996-Lag-compensation-ticks.patch rename to patches/server/0995-Lag-compensation-ticks.patch index ff907a41e982..536c00fbbb0d 100644 --- a/patches/server/0996-Lag-compensation-ticks.patch +++ b/patches/server/0995-Lag-compensation-ticks.patch @@ -30,7 +30,7 @@ index 174f3dab7c7f02dd09d02dc8b4e69190284c3f48..ec1197e498d0fa8d58466b8dffe46fb0 net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e8dc785913f5fd1238a73c2384d2abef0e9d2e4b..718ebe1ed29d6db62cc666d0b628e6f9a2a3ce5c 100644 +index ab472d2e81c0756020ffb727db4b71aeb8d9d020..ae6919fb2ed273d5527a6e4e7731c074d201393f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -565,6 +565,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -65,7 +65,7 @@ index 52764f0f5b42e3b7fd9624bc342e9927037880d2..6abc5061888d965161de979465bb625c if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 09bca0dd8cb6289817f758a4f05a54c267aec885..099ee1186f84ce6a76ac33dbf9cae961641c6508 100644 +index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193b44751f2 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3819,6 +3819,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0997-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0996-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0997-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0996-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/0998-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0997-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/0998-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0997-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/0999-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0998-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/0999-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/0998-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/1000-Optimise-nearby-player-retrieval.patch b/patches/server/0999-Optimise-nearby-player-retrieval.patch similarity index 99% rename from patches/server/1000-Optimise-nearby-player-retrieval.patch rename to patches/server/0999-Optimise-nearby-player-retrieval.patch index 7cbe0ada5ee8..e2bed5bf46f0 100644 --- a/patches/server/1000-Optimise-nearby-player-retrieval.patch +++ b/patches/server/0999-Optimise-nearby-player-retrieval.patch @@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 718ebe1ed29d6db62cc666d0b628e6f9a2a3ce5c..989ea283a4dc24fa17dd4bd1e03167fde2c97132 100644 +index ae6919fb2ed273d5527a6e4e7731c074d201393f..f5254ccffc19cf451cd5e358256b97fa33e51cfc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -576,6 +576,115 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1001-Fix-missing-map-initialize-event-call.patch b/patches/server/1000-Fix-missing-map-initialize-event-call.patch similarity index 95% rename from patches/server/1001-Fix-missing-map-initialize-event-call.patch rename to patches/server/1000-Fix-missing-map-initialize-event-call.patch index e043a0374c17..db53e677a1ed 100644 --- a/patches/server/1001-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/1000-Fix-missing-map-initialize-event-call.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 989ea283a4dc24fa17dd4bd1e03167fde2c97132..56f80db3dccc9db7bb5d5cb194fcf6af39c92aac 100644 +index f5254ccffc19cf451cd5e358256b97fa33e51cfc..8680f351795eb50b8eff231cde4a28dd2f8aa509 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2113,13 +2113,25 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1002-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/1001-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 92% rename from patches/server/1002-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/1001-Update-entity-data-when-attaching-firework-to-entity.patch index 0a98851952d2..8cbc0f974a7e 100644 --- a/patches/server/1002-Update-entity-data-when-attaching-firework-to-entity.patch +++ b/patches/server/1001-Update-entity-data-when-attaching-firework-to-entity.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Update entity data when attaching firework to entity public net.minecraft.world.entity.projectile.FireworkRocketEntity DATA_ATTACHED_TO_TARGET diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java -index 13b09465952dca2e95647ddb9753a7fe2db51720..8694c0dd606ec4e0fd60be434f70860e7779a871 100644 +index fedbfbac02b73382aacc69f8a1e5a3e746c55ea2..1309fabd357eb9b8f90f882ec7ff3de9e60f187d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java @@ -69,6 +69,10 @@ public class CraftFirework extends CraftProjectile implements Firework { diff --git a/patches/server/1003-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/1002-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/1003-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/1002-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/1004-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/1003-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/1004-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/1003-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/1005-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/1004-Fix-UnsafeValues-loadAdvancement.patch similarity index 96% rename from patches/server/1005-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/1004-Fix-UnsafeValues-loadAdvancement.patch index 834c4d579be9..3f5ca7c3598d 100644 --- a/patches/server/1005-Fix-UnsafeValues-loadAdvancement.patch +++ b/patches/server/1004-Fix-UnsafeValues-loadAdvancement.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix UnsafeValues#loadAdvancement diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index da3f74ba0c84ad5a1447de72c9a90fdd88c254a7..ec2396f0e5d62b10450eaa7239a8c5479638b3c3 100644 +index 1cdcd673e67090b6ba3ec7b38bd062c0d8f7308a..509f8487a170f3dc84b091acf16df26e42391189 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -316,7 +316,27 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/1006-Add-player-idle-duration-API.patch b/patches/server/1005-Add-player-idle-duration-API.patch similarity index 91% rename from patches/server/1006-Add-player-idle-duration-API.patch rename to patches/server/1005-Add-player-idle-duration-API.patch index dcbfc330218c..4a0cf2445b33 100644 --- a/patches/server/1006-Add-player-idle-duration-API.patch +++ b/patches/server/1005-Add-player-idle-duration-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 875a195a3cb9d6330f7768fe24cc4a40f82b850b..aa1747fe82af5b5eafc5742d47007873aa20f652 100644 +index 52879f6ae48c568ffa554772507449d7908179d1..7b75e248926dfef67533f3454017ed1d24df4a56 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3311,6 +3311,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1007-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/1006-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 100% rename from patches/server/1007-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/1006-Don-t-check-if-we-can-see-non-visible-entities.patch diff --git a/patches/server/1008-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/1007-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/1008-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/1007-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/1009-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/1008-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 90% rename from patches/server/1009-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/1008-Allow-null-itemstack-for-Player-sendEquipmentChange.patch index 96a7e94ec3da..8d351f9a6879 100644 --- a/patches/server/1009-Allow-null-itemstack-for-Player-sendEquipmentChange.patch +++ b/patches/server/1008-Allow-null-itemstack-for-Player-sendEquipmentChange.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index aa1747fe82af5b5eafc5742d47007873aa20f652..e27f65114e4a916089e3c6929838f44e93fdac35 100644 +index 7b75e248926dfef67533f3454017ed1d24df4a56..d1a15bd280fdd90c282d8badfdee5b944b75b2de 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1083,7 +1083,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1010-Optimize-VarInts.patch b/patches/server/1009-Optimize-VarInts.patch similarity index 100% rename from patches/server/1010-Optimize-VarInts.patch rename to patches/server/1009-Optimize-VarInts.patch diff --git a/patches/server/1011-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/1010-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 94% rename from patches/server/1011-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/1010-Add-API-to-get-the-collision-shape-of-a-block-before.patch index b12610027d2e..7841c265cd39 100644 --- a/patches/server/1011-Add-API-to-get-the-collision-shape-of-a-block-before.patch +++ b/patches/server/1010-Add-API-to-get-the-collision-shape-of-a-block-before.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add API to get the collision shape of a block before it's diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java -index ef4d45ebfe84467454a209501dad7db7fb316416..9cf4ec4e1610d5f7cafbb90ef0310034cc818549 100644 +index d5719d943946acd77dc9b26299c9f3d12d86062f..ee5e11e5f32b92390dae176e8538a09c3553d9f5 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java @@ -678,6 +678,20 @@ public class CraftBlockData implements BlockData { diff --git a/patches/server/1012-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch similarity index 98% rename from patches/server/1012-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch index 2653ec047241..2d1ca7d6cfcb 100644 --- a/patches/server/1012-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch @@ -47,7 +47,7 @@ index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..4b7ea18a34675702c5b17c4819f79778 Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo()); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index dff7bfaef05290b07ca6cbfbdefb3fd02a1cf8f6..5e4587148f1558dafccbdeb788384047e9fbfdbe 100644 +index 55330b6b5e52f67d7490a2932a0ac7ec0387f145..1843ae08cc19cb8f7290403f8622dcd760e9399f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1125,9 +1125,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1013-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/1012-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 92% rename from patches/server/1013-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/1012-Broadcast-take-item-packets-with-collector-as-source.patch index 17735a1c70ee..3b3dea7ae88e 100644 --- a/patches/server/1013-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/1012-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f9de831797bff3707115f03c24bdca78889003a3..eb0e6cff1d93b06fea3e9b28a4ea1067e416183c 100644 +index 91d88337f9147637b0e8fa1ac8bf9193b44751f2..4785c1029f6c68406d6405ed5e950a75230dfdc0 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3704,7 +3704,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1014-Expand-LingeringPotion-API.patch b/patches/server/1013-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/1014-Expand-LingeringPotion-API.patch rename to patches/server/1013-Expand-LingeringPotion-API.patch diff --git a/patches/server/1015-Add-MaterialTagsTest.patch b/patches/server/1014-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/1015-Add-MaterialTagsTest.patch rename to patches/server/1014-Add-MaterialTagsTest.patch diff --git a/patches/server/1016-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 97% rename from patches/server/1016-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch index d0ef9bee8a2e..3ea939060d76 100644 --- a/patches/server/1016-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch +++ b/patches/server/1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch @@ -45,7 +45,7 @@ index 0db0d67f9ac15372becc1166c37f7f0aede4a4da..a9e70484b01fc082ea25d43d1d428334 BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 5e4587148f1558dafccbdeb788384047e9fbfdbe..851c186834b16a2ac18d74cc40d321eb988a5e0c 100644 +index 1843ae08cc19cb8f7290403f8622dcd760e9399f..af7ac110a30651ec02fcd57c33eb291c7fc28287 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -773,7 +773,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1017-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/1016-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/1017-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/1016-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/1018-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/1017-Fix-several-issues-with-EntityBreedEvent.patch similarity index 97% rename from patches/server/1018-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/1017-Fix-several-issues-with-EntityBreedEvent.patch index b5786626482e..27e4615bf02f 100644 --- a/patches/server/1018-Fix-several-issues-with-EntityBreedEvent.patch +++ b/patches/server/1017-Fix-several-issues-with-EntityBreedEvent.patch @@ -54,7 +54,7 @@ index 907ed82fea71254d6624eda878e2668cd26422a7..081d1e38b7b1f286e138b0981aaa760e this.level().broadcastEntityEvent(this, (byte) 18); } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 3a6483c29803acbbb9a5b4b49fae22de7575504f..387aa050235c944818617e8896d0d5f1e7e4cecb 100644 +index f783fe169141d33e8569ec7f5d71985b74bdbcb6..be554dbaa9900207753e4f67f0ba402333e21338 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -649,8 +649,9 @@ public class Panda extends Animal { @@ -82,7 +82,7 @@ index e89f454fe178483a7db381591a4a345ac24db2b8..f693d4d6a6a3c3d31c2d85ceb5b5b013 boolean bl3 = this.isBaby(); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java -index 8fe5a4ccf474c094b8081828c93e8973cdabb6ed..d9539f5275c4cb63910ba79aa522d9569ad35a89 100644 +index 94dd97662ba07689fbfa16ef5c7d99fe12ce83de..815eb15086976b8f9e03bf8182d9ed50aec14720 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java @@ -513,7 +513,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener, diff --git a/patches/server/1019-Add-UUID-attribute-modifier-API.patch b/patches/server/1018-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/1019-Add-UUID-attribute-modifier-API.patch rename to patches/server/1018-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/1020-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/1019-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 93% rename from patches/server/1020-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/1019-Fix-missing-event-call-for-entity-teleport-API.patch index 11ae1c63863f..208b33671292 100644 --- a/patches/server/1020-Fix-missing-event-call-for-entity-teleport-API.patch +++ b/patches/server/1019-Fix-missing-event-call-for-entity-teleport-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix missing event call for entity teleport API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index ed49b04d3918e46cd0769838b81cd0fae0d4e43a..1c3e1153d08b59d29b3613fc3b50a4780aa7a3ac 100644 +index 03908ccb1bcd88b68fcec48c581677cb0a484508..f16ac1d640fc97f348c244d4ea86e3278b30ae19 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -255,6 +255,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/1021-Lazily-create-LootContext-for-criterions.patch b/patches/server/1020-Lazily-create-LootContext-for-criterions.patch similarity index 95% rename from patches/server/1021-Lazily-create-LootContext-for-criterions.patch rename to patches/server/1020-Lazily-create-LootContext-for-criterions.patch index 611776bbed2a..293dfbd694f1 100644 --- a/patches/server/1021-Lazily-create-LootContext-for-criterions.patch +++ b/patches/server/1020-Lazily-create-LootContext-for-criterions.patch @@ -8,7 +8,7 @@ For each player on each tick, enter block triggers are invoked, and these create To avoid this, we now lazily create the LootContext if the criterion passes the predicate AND if any of the listener triggers require a loot context instance diff --git a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java -index 0a22ed467d04c6421f4f8ef227a665ae135a5b0b..00bf770559d9c628119658cb027eb0b970c04e1b 100644 +index 805459ba815520165c86a537fbb1f3e04b85bfbd..a327973e37b5b8d4e15683ef24548482ac3dc3d5 100644 --- a/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java +++ b/src/main/java/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java @@ -45,14 +45,14 @@ public abstract class SimpleCriterionTrigger { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index efbb37255885badf6908cad948614df7beda9712..e937ace0c4c1097de3f95198b1bc1830dbc74658 100644 +index 4785c1029f6c68406d6405ed5e950a75230dfdc0..68e1ef67e58ef348d35dfc3b3e890336d4cb2108 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1023-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/1022-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 93% rename from patches/server/1023-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/1022-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch index ccb27e52d957..8998416ffaaf 100644 --- a/patches/server/1023-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch +++ b/patches/server/1022-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix CraftMetaItem#getAttributeModifier duplication check diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index baf31c109ee8b5e59acd7ff5fc537ea46f27d164..efc6ca53c048dbd49438ce0f7718de332fd5de2f 100644 +index 4e7f5bfcdb8af7a9237dee3c8ebf9cde6f1248a4..b2f9a670c5224fb63081466fa594b2b4b3e8bddb 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -1167,7 +1167,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1023-Restore-vanilla-entity-drops-behavior.patch similarity index 97% rename from patches/server/1024-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/1023-Restore-vanilla-entity-drops-behavior.patch index af74fd9090ab..7ecbf4e964fe 100644 --- a/patches/server/1024-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1023-Restore-vanilla-entity-drops-behavior.patch @@ -9,7 +9,7 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ddea03dd90e7749ea2a347d2b9a985a0e4ab636c..2a897f577f4ed9cf8b3368fab971fa6381c90219 100644 +index 575681586667933e7f26bb16f7d2aa7c73188cde..38df47d282713522b3c5784a562ff09e3151fb27 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -944,22 +944,20 @@ public class ServerPlayer extends Player { @@ -50,7 +50,7 @@ index ddea03dd90e7749ea2a347d2b9a985a0e4ab636c..2a897f577f4ed9cf8b3368fab971fa63 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5dabf6c4ba63b82aefa22cf41ec65dcf85779fe9..ec251d54324c01212a27adffb1883d2de9db162d 100644 +index 4fdc55b78c4212603bd57a292c72d89c73d28871..1a19f18b5d4c42ac07e7e4f305e140954dea481b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2702,6 +2702,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -104,7 +104,7 @@ index 5dabf6c4ba63b82aefa22cf41ec65dcf85779fe9..ec251d54324c01212a27adffb1883d2d return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e937ace0c4c1097de3f95198b1bc1830dbc74658..e13bda6d3054dda9372c58566b5cdc5d0f4c1dcf 100644 +index 68e1ef67e58ef348d35dfc3b3e890336d4cb2108..5d27e1d3f15839663d89d198babe3be94cfd3f07 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -134,7 +134,7 @@ index 45906d273e6d6ec20cf44b4d07efdac68752ee9b..ac9eaeaf7df1e84ee588f371628c0a10 } diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 1e42372f038757b48990643aa2f118be415e0463..69f29af64c55e68d1906a0d46943751d7de66cf4 100644 +index 92b4eecf7b8ce07334256a216d9caf241fa5363b..94a30a0c1266bf919d1dc4ca2b19489edd54a7fa 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -610,7 +610,7 @@ public class ArmorStand extends LivingEntity { @@ -165,7 +165,7 @@ index 1e42372f038757b48990643aa2f118be415e0463..69f29af64c55e68d1906a0d46943751d } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9f279f469304ad83035035100eeb2559b4e8ea2e..311175ea5979d22766d897bd9a5172abcb91f1be 100644 +index b3b1211d20c6d28a14c656159a1e345f8406a093..4f4d76065edff508ff996d507e955f5d270450ac 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -937,17 +937,21 @@ public class CraftEventFactory { diff --git a/patches/server/1025-Add-Structure-check-API.patch b/patches/server/1024-Add-Structure-check-API.patch similarity index 91% rename from patches/server/1025-Add-Structure-check-API.patch rename to patches/server/1024-Add-Structure-check-API.patch index 52303f67ed48..47076e059ca4 100644 --- a/patches/server/1025-Add-Structure-check-API.patch +++ b/patches/server/1024-Add-Structure-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 851c186834b16a2ac18d74cc40d321eb988a5e0c..67a3aa7db064fe680ae25ad446ab3170b1c3c453 100644 +index af7ac110a30651ec02fcd57c33eb291c7fc28287..7f74f80d11784987a438e6aabfac6fcfb5d9a968 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -230,6 +230,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1026-Dont-resend-blocks-on-interactions.patch b/patches/server/1025-Dont-resend-blocks-on-interactions.patch similarity index 98% rename from patches/server/1026-Dont-resend-blocks-on-interactions.patch rename to patches/server/1025-Dont-resend-blocks-on-interactions.patch index cca46cbd5404..caa9e6f2e3cc 100644 --- a/patches/server/1026-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1025-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 52aadf7336c1486ccf0d192e27b742f9e63cfe9b..73823d637d9859797d57507932d132b21ba46d70 100644 +index 6abc5061888d965161de979465bb625c173c59c6..93906a31ddf99cf51541994d7a5c2e4131b697fa 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { @@ -149,7 +149,7 @@ index 4b9e726e6ac255e743479d5c2e0cdb98464399a4..6371f326fc86cfc53e39bf8ed13b646f return false; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index dc6a1a1fb78d25834f3f97c5ce3b13567c718ca0..46c7c36a07169915f7409f1146e5066e8ac65c21 100644 +index a33f22f03c54abed5fc24022a8b5f4af007e4597..ed27a963223bfe18310ad5adabf461b5e307ef9c 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -457,10 +457,12 @@ public final class ItemStack { diff --git a/patches/server/1027-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/1026-Keep-previous-behavior-for-setResourcePack.patch similarity index 94% rename from patches/server/1027-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/1026-Keep-previous-behavior-for-setResourcePack.patch index 722245e2ae50..edb8c6289510 100644 --- a/patches/server/1027-Keep-previous-behavior-for-setResourcePack.patch +++ b/patches/server/1026-Keep-previous-behavior-for-setResourcePack.patch @@ -10,7 +10,7 @@ packs before sending the new pack. Other API exists for adding a new pack to the existing packs on a client. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e27f65114e4a916089e3c6929838f44e93fdac35..02f97a9ec7b1b8354cfb97babd57595ef6503679 100644 +index d1a15bd280fdd90c282d8badfdee5b944b75b2de..fd67e7571841b345630078892e321283760341dd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2351,8 +2351,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1028-properly-read-and-store-sus-effect-duration.patch b/patches/server/1027-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/1028-properly-read-and-store-sus-effect-duration.patch rename to patches/server/1027-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/1029-Use-correct-max-stack-size-in-crafter.patch b/patches/server/1028-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/1029-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/1028-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/1030-add-more-scoreboard-API.patch b/patches/server/1029-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/1030-add-more-scoreboard-API.patch rename to patches/server/1029-add-more-scoreboard-API.patch diff --git a/patches/server/1031-Improve-Registry.patch b/patches/server/1030-Improve-Registry.patch similarity index 100% rename from patches/server/1031-Improve-Registry.patch rename to patches/server/1030-Improve-Registry.patch diff --git a/patches/server/1032-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 96% rename from patches/server/1032-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index 910c95d4307e..77d16936c06a 100644 --- a/patches/server/1032-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,10 +26,10 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7fc84405bc96d768fd373dd6844de4204a39cd6a..353f8598ae940b15a71e71d7c6b80f9d063decb6 100644 +index 5d27e1d3f15839663d89d198babe3be94cfd3f07..5e2f6a1cdaf83468c0db6a2cc8fefb71e6ec51d8 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -4205,7 +4205,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4204,7 +4204,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (!(this instanceof ServerPlayer)) { EntityTeleportEvent teleport = new EntityTeleportEvent(this.getBukkitEntity(), new Location(this.level().getWorld(), d3, d4, d5), new Location(this.level().getWorld(), d0, d6, d2)); this.level().getCraftServer().getPluginManager().callEvent(teleport); diff --git a/patches/server/1033-Add-experience-points-API.patch b/patches/server/1032-Add-experience-points-API.patch similarity index 95% rename from patches/server/1033-Add-experience-points-API.patch rename to patches/server/1032-Add-experience-points-API.patch index 68e09bcd326c..29da9409a067 100644 --- a/patches/server/1033-Add-experience-points-API.patch +++ b/patches/server/1032-Add-experience-points-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index f07b79cced4fa47dbb6b4aa75a384a2a08a53b03..5174ae8b039bdbb96f92d0059ad25b10b962ba7b 100644 +index 7562b8a0f0bc8e43b3c0b64c6d66786c2c93b5cd..777043d4e4bd253a804353df3efad43078a5c3b3 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1833,7 +1833,7 @@ public abstract class Player extends LivingEntity { @@ -18,7 +18,7 @@ index f07b79cced4fa47dbb6b4aa75a384a2a08a53b03..5174ae8b039bdbb96f92d0059ad25b10 // Paper start - send SoundEffect to everyone who can see fromEntity private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 02f97a9ec7b1b8354cfb97babd57595ef6503679..e7ec441824e034a488deeede093cb9ea7add7c3e 100644 +index fd67e7571841b345630078892e321283760341dd..b8d3398b349d9294de6b8a8594b054d3c84dbe0a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1821,6 +1821,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1034-Add-missing-InventoryType.patch b/patches/server/1033-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/1034-Add-missing-InventoryType.patch rename to patches/server/1033-Add-missing-InventoryType.patch diff --git a/patches/server/1035-Add-drops-to-shear-events.patch b/patches/server/1034-Add-drops-to-shear-events.patch similarity index 99% rename from patches/server/1035-Add-drops-to-shear-events.patch rename to patches/server/1034-Add-drops-to-shear-events.patch index e8dc631fb52b..5ff56975af9d 100644 --- a/patches/server/1035-Add-drops-to-shear-events.patch +++ b/patches/server/1034-Add-drops-to-shear-events.patch @@ -233,7 +233,7 @@ index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..b5d6857eaf2bed14adcb5f5e80d91b44 } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 311175ea5979d22766d897bd9a5172abcb91f1be..0620857b4a248657c8fdcb9b12715fa02379a291 100644 +index 4f4d76065edff508ff996d507e955f5d270450ac..bf2323c81ddc5a1e495a694585135249c3fe1c4c 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1716,20 +1716,20 @@ public class CraftEventFactory { diff --git a/patches/server/1036-Add-PlayerShieldDisableEvent.patch b/patches/server/1035-Add-PlayerShieldDisableEvent.patch similarity index 95% rename from patches/server/1036-Add-PlayerShieldDisableEvent.patch rename to patches/server/1035-Add-PlayerShieldDisableEvent.patch index 511ecbf41068..b1e67d302ab5 100644 --- a/patches/server/1036-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/1035-Add-PlayerShieldDisableEvent.patch @@ -16,7 +16,7 @@ sideeffects, meaning the disable event cannot share a handlerlist with the cooldown event diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index c81c72bf1027fcbaac67808fbcf6e0af112176bc..42e2be9286b75a1d34845f303ffc65e96fdd5416 100644 +index 4050c46df8537da37c3b022d94b064e9d5dd0659..76497f642ff268d4039590902708e0d21ddb6531 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1703,7 +1703,11 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -33,7 +33,7 @@ index c81c72bf1027fcbaac67808fbcf6e0af112176bc..42e2be9286b75a1d34845f303ffc65e9 } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 5174ae8b039bdbb96f92d0059ad25b10b962ba7b..9044458491fc9a33923852e324a15ac59d6660b2 100644 +index 777043d4e4bd253a804353df3efad43078a5c3b3..7e77383368388f6e56159892cd483513b068e402 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -979,7 +979,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/1037-Add-HiddenPotionEffect-API.patch b/patches/server/1036-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1037-Add-HiddenPotionEffect-API.patch rename to patches/server/1036-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1038-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1037-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/1038-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/1037-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/1039-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1038-fix-ItemMeta-removing-CustomModelData.patch similarity index 91% rename from patches/server/1039-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/1038-fix-ItemMeta-removing-CustomModelData.patch index 6808c2174582..6df545066ed9 100644 --- a/patches/server/1039-fix-ItemMeta-removing-CustomModelData.patch +++ b/patches/server/1038-fix-ItemMeta-removing-CustomModelData.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix ItemMeta removing CustomModelData diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java -index efc6ca53c048dbd49438ce0f7718de332fd5de2f..ef2b0e8aa9cce09097000029e39ff70f177ed3a7 100644 +index b2f9a670c5224fb63081466fa594b2b4b3e8bddb..95c75aadea68e9b60caa935a88f2829e36948ae5 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -381,7 +381,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { diff --git a/patches/server/1040-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1039-Validate-ResourceLocation-in-NBT-reading.patch similarity index 96% rename from patches/server/1040-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/1039-Validate-ResourceLocation-in-NBT-reading.patch index 42fc20efc786..bc30169ed2d6 100644 --- a/patches/server/1040-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1039-Validate-ResourceLocation-in-NBT-reading.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Validate ResourceLocation in NBT reading diff --git a/src/main/java/net/minecraft/nbt/NbtUtils.java b/src/main/java/net/minecraft/nbt/NbtUtils.java -index 18fad4f083862ace2bc56579883f548f6d697091..8e68a094a22243f3e84110ddf81136219ac1de7c 100644 +index ba0726157417cdde1c9bca93a9e37e68d9b2286d..e3a3f19a6e63fd42e29c418e5a7439972484d492 100644 --- a/src/main/java/net/minecraft/nbt/NbtUtils.java +++ b/src/main/java/net/minecraft/nbt/NbtUtils.java @@ -230,8 +230,10 @@ public final class NbtUtils { @@ -53,7 +53,7 @@ index a039217f9293ad3b0cc74c49450472eb44c6a139..e52f3da3b63cc3dba59d3e874a8420dd @Nullable diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 42e2be9286b75a1d34845f303ffc65e96fdd5416..0b5334004b9d0489e8465824870662b467ce321b 100644 +index 76497f642ff268d4039590902708e0d21ddb6531..3ebf777811cba0cc45cfae7587b277f06adeb045 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -620,7 +620,7 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/1041-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1040-Properly-handle-experience-dropping-on-block-break.patch similarity index 98% rename from patches/server/1041-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/1040-Properly-handle-experience-dropping-on-block-break.patch index cd538d60af2f..96b22c026d9d 100644 --- a/patches/server/1041-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1040-Properly-handle-experience-dropping-on-block-break.patch @@ -7,7 +7,7 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e6631ccf71dec785ab8decbf037e8bd622a7a613..04f5d1f853f1de95610404ea53a4a985fcf58066 100644 +index 1fd66fce58909b2001652f7d1d13028abee5fef7..1feca8c844c74b8f64d1a1034ae06bfd7a9c0ab2 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1102,7 +1102,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1042-Fixup-NamespacedKey-handling.patch b/patches/server/1041-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1042-Fixup-NamespacedKey-handling.patch rename to patches/server/1041-Fixup-NamespacedKey-handling.patch diff --git a/patches/server/1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/1042-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 100% rename from patches/server/1043-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/1042-Reduce-allocation-of-Vec3D-by-entity-tracker.patch diff --git a/patches/server/1044-Write-SavedData-IO-async.patch b/patches/server/1043-Write-SavedData-IO-async.patch similarity index 99% rename from patches/server/1044-Write-SavedData-IO-async.patch rename to patches/server/1043-Write-SavedData-IO-async.patch index daaa279cd64b..22cbb3848d0b 100644 --- a/patches/server/1044-Write-SavedData-IO-async.patch +++ b/patches/server/1043-Write-SavedData-IO-async.patch @@ -44,7 +44,7 @@ index 65a20974428ae1c0be2022d997234a16dc281292..77a2458b8acb21c64676934cd8d6b05e // CraftBukkit start - modelled on below diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f27c9f99e70d45c433a348dd315bb31b44fefa78..0911b39561fb158dc2268b6054d5ce7a0c1dc465 100644 +index 48b0bce01a9ae1ce869203a685be308d49a8c880..7a327afc8c08dfb94e66595b015887c6d0018c37 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1486,7 +1486,7 @@ public class ServerLevel extends Level implements WorldGenLevel { From 684319f9c6b37b29230f7f420a8d375741097a82 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 22 Jan 2024 18:04:55 +0100 Subject: [PATCH 36/45] [ci skip] Add more patch identifying comments --- ...19-Asynchronous-chunk-IO-and-loading.patch | 2 +- .../server/0018-Rewrite-chunk-system.patch | 4 +- ...-a-custom-authentication-servers-dow.patch | 4 +- patches/server/0155-Add-PlayerJumpEvent.patch | 6 +-- ...dle-ServerboundKeepAlivePacket-async.patch | 6 +-- ...rt-serverside-behavior-of-keepalives.patch | 4 +- ...dEffects-only-to-players-who-can-see.patch | 6 +-- .../0160-Add-PlayerArmorChangeEvent.patch | 4 +- ...rom-being-processed-when-the-player-.patch | 4 +- ...17075-Block-entity-unload-lag-spike.patch} | 12 +++--- .../server/0165-AsyncTabCompleteEvent.patch | 18 ++++---- .../0166-PlayerPickupExperienceEvent.patch | 4 +- ...8-PlayerNaturallySpawnCreaturesEvent.patch | 16 +++---- .../server/0170-PreCreatureSpawnEvent.patch | 42 +++++++++---------- .../0171-Fill-Profile-Property-Events.patch | 4 +- ...PlayerAdvancementCriterionGrantEvent.patch | 6 +-- ...-Extend-Player-Interact-cancellation.patch | 4 +- ...tch => 0176-Toggleable-player-crits.patch} | 6 +-- ...le-Explicit-Network-Manager-Flushing.patch | 6 +-- ...nt-extended-PaperServerListPingEvent.patch | 4 +- ...urable-sprint-interruption-on-attack.patch | 6 +-- patches/server/0188-EndermanEscapeEvent.patch | 14 +++---- ...0190-Block-Enderpearl-Travel-Exploit.patch | 8 ++-- ...nd-make-tab-spam-limits-configurable.patch | 6 +-- .../server/0287-Brigadier-Mojang-API.patch | 4 +- ...-Manager-and-add-advanced-packet-sup.patch | 4 +- .../0332-Optional-per-player-mob-spawns.patch | 12 +++--- patches/server/0433-Brand-support.patch | 6 +-- .../server/0475-Add-API-for-quit-reason.patch | 8 ++-- .../0594-Add-PlayerKickEvent-causes.patch | 14 +++---- .../server/0647-Add-critical-damage-API.patch | 6 +-- .../0668-Execute-chunk-tasks-mid-tick.patch | 10 ++--- ...-ServerboundCommandSuggestionPacket-.patch | 4 +- ...ng-PreCreatureSpawnEvent-with-per-pl.patch | 10 ++--- .../0994-Optimise-chunk-tick-iteration.patch | 10 ++--- ...5-Dont-resend-blocks-on-interactions.patch | 4 +- .../1032-Add-experience-points-API.patch | 4 +- 37 files changed, 146 insertions(+), 146 deletions(-) rename patches/server/{0162-Fix-MC-117075-TE-Unload-Lag-Spike.patch => 0162-Fix-MC-117075-Block-entity-unload-lag-spike.patch} (77%) rename patches/server/{0176-Toggleable-player-crits-helps-mitigate-hacked-client.patch => 0176-Toggleable-player-crits.patch} (80%) diff --git a/patches/removed/1.19.2-legacy-chunksystem/0019-Asynchronous-chunk-IO-and-loading.patch b/patches/removed/1.19.2-legacy-chunksystem/0019-Asynchronous-chunk-IO-and-loading.patch index f6e909b84e28..0f9c62fcb573 100644 --- a/patches/removed/1.19.2-legacy-chunksystem/0019-Asynchronous-chunk-IO-and-loading.patch +++ b/patches/removed/1.19.2-legacy-chunksystem/0019-Asynchronous-chunk-IO-and-loading.patch @@ -2777,7 +2777,7 @@ index 4e7db441f68019d6e5d3359605b76bc4b258e87e..22c095539425a6667b8e7f5c5f0a8ff2 + // Paper start + String str = packet.getCommand(); int index = -1; + if (str.length() > 64 && ((index = str.indexOf(' ')) == -1 || index >= 64)) { -+ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]))); // Paper ++ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam"))); // Paper + return; + } + // Paper end diff --git a/patches/server/0018-Rewrite-chunk-system.patch b/patches/server/0018-Rewrite-chunk-system.patch index a5b05ebf0212..9fe74587e14f 100644 --- a/patches/server/0018-Rewrite-chunk-system.patch +++ b/patches/server/0018-Rewrite-chunk-system.patch @@ -20494,7 +20494,7 @@ index c509a1318bcef38fd4927e38b6ee9846853e2d15..5de5209e04d631bd6a50e28e8d3abebf this.desiredChunksPerTick = Double.isNaN((double)desiredBatchSize) ? 0.01F : Mth.clamp(desiredBatchSize, 0.01F, 64.0F); if (this.unacknowledgedBatches == 0) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ce7caf08865df9ff032ba6c42308ea3ce4de6226..a8e8c90718a7562fd75fe66e76dbc0f8af11db35 100644 +index ce7caf08865df9ff032ba6c42308ea3ce4de6226..e8e5773776060b7b6861c80ec736bc5740a262c8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -696,6 +696,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -20504,7 +20504,7 @@ index ce7caf08865df9ff032ba6c42308ea3ce4de6226..a8e8c90718a7562fd75fe66e76dbc0f8 + // Paper start + String str = packet.getCommand(); int index = -1; + if (str.length() > 64 && ((index = str.indexOf(' ')) == -1 || index >= 64)) { -+ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]))); // Paper ++ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam"))); // Paper + return; + } + // Paper end diff --git a/patches/server/0152-Allow-specifying-a-custom-authentication-servers-dow.patch b/patches/server/0152-Allow-specifying-a-custom-authentication-servers-dow.patch index 4be32e210e58..c3134dc8fc74 100644 --- a/patches/server/0152-Allow-specifying-a-custom-authentication-servers-dow.patch +++ b/patches/server/0152-Allow-specifying-a-custom-authentication-servers-dow.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Allow specifying a custom "authentication servers down" kick diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 657466fc6e28cbb414549044f75eef7310d7aab9..6bc7df78ea2ecc97b886dcd082d8b5fb047ae2b7 100644 +index 657466fc6e28cbb414549044f75eef7310d7aab9..e15c5886b1cc80b5da2ad8e536507a48cea77d2a 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -262,7 +262,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -14,7 +14,7 @@ index 657466fc6e28cbb414549044f75eef7310d7aab9..6bc7df78ea2ecc97b886dcd082d8b5fb ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(s1)); // Spigot } else { - ServerLoginPacketListenerImpl.this.disconnect(Component.translatable("multiplayer.disconnect.authservers_down")); -+ ServerLoginPacketListenerImpl.this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(io.papermc.paper.configuration.GlobalConfiguration.get().messages.kick.authenticationServersDown)); // Paper ++ ServerLoginPacketListenerImpl.this.disconnect(io.papermc.paper.adventure.PaperAdventure.asVanilla(io.papermc.paper.configuration.GlobalConfiguration.get().messages.kick.authenticationServersDown)); // Paper - Configurable kick message ServerLoginPacketListenerImpl.LOGGER.error("Couldn't verify username because servers are unavailable"); } // CraftBukkit start - catch all exceptions diff --git a/patches/server/0155-Add-PlayerJumpEvent.patch b/patches/server/0155-Add-PlayerJumpEvent.patch index 05d1d3ad5538..64caef2dde51 100644 --- a/patches/server/0155-Add-PlayerJumpEvent.patch +++ b/patches/server/0155-Add-PlayerJumpEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerJumpEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2f6591e5a0e450bfa68ab3e30f88afba68fbef29..61671ef718bd921ad0051f717a871d3db2ac5eab 100644 +index 5d32f12b01db3d2cc5ca743048c43c76e2a5a7cb..f422b6ffcd590788085486778293aaabc141d392 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1225,7 +1225,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -13,7 +13,7 @@ index 2f6591e5a0e450bfa68ab3e30f88afba68fbef29..61671ef718bd921ad0051f717a871d3d if (this.player.onGround() && !packet.isOnGround() && flag) { - this.player.jumpFromGround(); -+ // Paper start - Add player jump event ++ // Paper start - Add PlayerJumpEvent + Player player = this.getCraftPlayer(); + Location from = new Location(player.getWorld(), lastPosX, lastPosY, lastPosZ, lastYaw, lastPitch); // Get the Players previous Event location. + Location to = player.getLocation().clone(); // Start off the To location as the Players current location. @@ -40,7 +40,7 @@ index 2f6591e5a0e450bfa68ab3e30f88afba68fbef29..61671ef718bd921ad0051f717a871d3d + this.internalTeleport(from.getX(), from.getY(), from.getZ(), from.getYaw(), from.getPitch(), Collections.emptySet()); + return; + } -+ // Paper end ++ // Paper end - Add PlayerJumpEvent } boolean flag1 = this.player.verticalCollisionBelow; diff --git a/patches/server/0156-handle-ServerboundKeepAlivePacket-async.patch b/patches/server/0156-handle-ServerboundKeepAlivePacket-async.patch index fd3e9c0b8472..f3a7c7544154 100644 --- a/patches/server/0156-handle-ServerboundKeepAlivePacket-async.patch +++ b/patches/server/0156-handle-ServerboundKeepAlivePacket-async.patch @@ -15,7 +15,7 @@ also adding some additional logging in order to help work out what is causing random disconnections for clients. diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 1135da391523c464447198ce5e3743b8bd9d66e8..910b9a2918ec58ecb9fff77cca36abb48c7db7dd 100644 +index 7947a1d2e5f66c29dc11f9966233604adae71a86..0fcedb954c20d9777d27d896e29cea7f6eebffd3 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -84,14 +84,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -23,7 +23,7 @@ index 1135da391523c464447198ce5e3743b8bd9d66e8..910b9a2918ec58ecb9fff77cca36abb4 @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { - PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // CraftBukkit -+ //PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // CraftBukkit // Paper - This shouldn't be on the main thread ++ //PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // CraftBukkit // Paper - handle ServerboundKeepAlivePacket async if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) { int i = (int) (Util.getMillis() - this.keepAliveTime); @@ -35,7 +35,7 @@ index 1135da391523c464447198ce5e3743b8bd9d66e8..910b9a2918ec58ecb9fff77cca36abb4 + server.submit(() -> { + this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE); + }); -+ // Paper endg ++ // Paper endg - This needs to be handled on the main thread for plugins } } diff --git a/patches/server/0158-revert-serverside-behavior-of-keepalives.patch b/patches/server/0158-revert-serverside-behavior-of-keepalives.patch index 6d8b7cea8476..01ca99ca6960 100644 --- a/patches/server/0158-revert-serverside-behavior-of-keepalives.patch +++ b/patches/server/0158-revert-serverside-behavior-of-keepalives.patch @@ -17,7 +17,7 @@ from networking or during connections flood of chunk packets on slower clients, at the cost of dead connections being kept open for longer. diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index c08371fdf0c10135e235efa2b2c7e4819f3b19c2..494069d69d8d0f9f1b6700349310ec6d2031abdd 100644 +index 0fcedb954c20d9777d27d896e29cea7f6eebffd3..8e96e9bc12855964dcb3a111617232df4118114e 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -48,12 +48,13 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -64,7 +64,7 @@ index c08371fdf0c10135e235efa2b2c7e4819f3b19c2..494069d69d8d0f9f1b6700349310ec6d this.send(new ClientboundKeepAlivePacket(this.keepAliveChallenge)); } } -+ // Paper end ++ // Paper end - give clients a longer time to respond to pings as per pre 1.12.2 timings this.server.getProfiler().pop(); } diff --git a/patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch index fc0cd96eb2af..1170f4b84f88 100644 --- a/patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch +++ b/patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Send attack SoundEffects only to players who can see the diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 9db07751cf1321c7fd15b2345729deaa6dd5a76f..a135b539a250966939370bba35261cf1bb276128 100644 +index 9db07751cf1321c7fd15b2345729deaa6dd5a76f..6881f6041d1605689f33d6d50b592f7d8a70cbdf 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1235,7 +1235,7 @@ public abstract class Player extends LivingEntity { @@ -59,14 +59,14 @@ index 9db07751cf1321c7fd15b2345729deaa6dd5a76f..a135b539a250966939370bba35261cf1 public int getXpNeededForNextLevel() { return this.experienceLevel >= 30 ? 112 + (this.experienceLevel - 30) * 9 : (this.experienceLevel >= 15 ? 37 + (this.experienceLevel - 15) * 5 : 7 + this.experienceLevel * 2); } -+ // Paper start - send SoundEffect to everyone who can see fromEntity ++ // Paper start - send while respecting visibility + private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { + fromEntity.level().playSound(fromEntity, x, y, z, soundEffect, soundCategory, volume, pitch); // This will not send the effect to the entity himself + if (fromEntity instanceof ServerPlayer) { + ((ServerPlayer) fromEntity).connection.send(new net.minecraft.network.protocol.game.ClientboundSoundPacket(net.minecraft.core.registries.BuiltInRegistries.SOUND_EVENT.wrapAsHolder(soundEffect), soundCategory, x, y, z, volume, pitch, fromEntity.random.nextLong())); + } + } -+ // Paper end ++ // Paper end - send while respecting visibility // CraftBukkit start public void causeFoodExhaustion(float exhaustion) { diff --git a/patches/server/0160-Add-PlayerArmorChangeEvent.patch b/patches/server/0160-Add-PlayerArmorChangeEvent.patch index f02d40a6ee98..9241f395c25f 100644 --- a/patches/server/0160-Add-PlayerArmorChangeEvent.patch +++ b/patches/server/0160-Add-PlayerArmorChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmorChangeEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b8ac19ae63579bf5325b0ebfa37293c170df6205..226afea543b581dd1b8ba0f81ff7dab7cce96395 100644 +index 202e3b66a81de2f76d5a8bba3538f1554b8debf3..914b126965392b2465fc8ce80b0e3a7917a7052b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1,5 +1,6 @@ @@ -25,7 +25,7 @@ index b8ac19ae63579bf5325b0ebfa37293c170df6205..226afea543b581dd1b8ba0f81ff7dab7 + final org.bukkit.inventory.ItemStack newItem = CraftItemStack.asBukkitCopy(itemstack1); + new PlayerArmorChangeEvent((Player) this.getBukkitEntity(), PlayerArmorChangeEvent.SlotType.valueOf(enumitemslot.name()), oldItem, newItem).callEvent(); + } -+ // Paper end ++ // Paper end - PlayerArmorChangeEvent if (map == null) { map = Maps.newEnumMap(EquipmentSlot.class); } diff --git a/patches/server/0161-Prevent-logins-from-being-processed-when-the-player-.patch b/patches/server/0161-Prevent-logins-from-being-processed-when-the-player-.patch index 095914573d2b..2c62fd9c8834 100644 --- a/patches/server/0161-Prevent-logins-from-being-processed-when-the-player-.patch +++ b/patches/server/0161-Prevent-logins-from-being-processed-when-the-player-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Prevent logins from being processed when the player has diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 2337d5f0a29201b5f2d3d1734d8feb6c6177b4b3..b7ddb05d7b4ec66def973f15bb2408b0a4fc136a 100644 +index e15c5886b1cc80b5da2ad8e536507a48cea77d2a..e84b0a6e3767605b7af3e7120517808e25039702 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -81,7 +81,9 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -15,7 +15,7 @@ index 2337d5f0a29201b5f2d3d1734d8feb6c6177b4b3..b7ddb05d7b4ec66def973f15bb2408b0 if (this.state == ServerLoginPacketListenerImpl.State.VERIFYING) { + if (this.connection.isConnected()) { // Paper - prevent logins to be processed even though disconnect was called this.verifyLoginAndFinishConnectionSetup((GameProfile) Objects.requireNonNull(this.authenticatedProfile)); -+ } // Paper ++ } // Paper - prevent logins to be processed even though disconnect was called } if (this.state == ServerLoginPacketListenerImpl.State.WAITING_FOR_DUPE_DISCONNECT && !this.isPlayerAlreadyInWorld((GameProfile) Objects.requireNonNull(this.authenticatedProfile))) { diff --git a/patches/server/0162-Fix-MC-117075-TE-Unload-Lag-Spike.patch b/patches/server/0162-Fix-MC-117075-Block-entity-unload-lag-spike.patch similarity index 77% rename from patches/server/0162-Fix-MC-117075-TE-Unload-Lag-Spike.patch rename to patches/server/0162-Fix-MC-117075-Block-entity-unload-lag-spike.patch index 434d4cd45d82..9a557780105a 100644 --- a/patches/server/0162-Fix-MC-117075-TE-Unload-Lag-Spike.patch +++ b/patches/server/0162-Fix-MC-117075-Block-entity-unload-lag-spike.patch @@ -1,19 +1,19 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: mezz Date: Wed, 9 Aug 2017 17:51:22 -0500 -Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike +Subject: [PATCH] Fix MC-117075: Block entity unload lag spike diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2afa7c73836ddbad936cb98bde241cb91acc11b2..69e7a6cd6741c190b8e04de1372c929b42963610 100644 +index 7e5cf2adf9b2adab681b25beb2cb573378815bef..b419eaee987585e2980016ae8bd2614cdc42cfce 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -816,6 +816,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { boolean flag = this.tickRateManager().runsNormally(); int tilesThisCycle = 0; -+ var toRemove = new it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet(); // Paper - use removeAll -+ toRemove.add(null); ++ var toRemove = new it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet(); // Paper - Fix MC-117075; use removeAll ++ toRemove.add(null); // Paper - Fix MC-117075 for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0; TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(this.tileTickPosition); @@ -22,13 +22,13 @@ index 2afa7c73836ddbad936cb98bde241cb91acc11b2..69e7a6cd6741c190b8e04de1372c929b // Spigot start tilesThisCycle--; - this.blockEntityTickers.remove(this.tileTickPosition--); -+ toRemove.add(tickingblockentity); // Paper - use removeAll ++ toRemove.add(tickingblockentity); // Paper - Fix MC-117075; use removeAll // Spigot end } else if (flag && this.shouldTickBlocksAt(tickingblockentity.getPos())) { tickingblockentity.tick(); } } -+ this.blockEntityTickers.removeAll(toRemove); ++ this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075 this.timings.tileEntityTick.stopTiming(); // Spigot this.tickingBlockEntities = false; diff --git a/patches/server/0165-AsyncTabCompleteEvent.patch b/patches/server/0165-AsyncTabCompleteEvent.patch index 30ae11adb3ad..af9c1a1a42b8 100644 --- a/patches/server/0165-AsyncTabCompleteEvent.patch +++ b/patches/server/0165-AsyncTabCompleteEvent.patch @@ -16,25 +16,25 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent Co-authored-by: Aikar diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 95df25f6c3ce3e945bca95bc5b5ab0c0863d94c1..9c0440a6e3768ca6300e128da7f1b11a96f10f91 100644 +index f422b6ffcd590788085486778293aaabc141d392..243e111392aca01c94aee052673d0a91008524de 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -688,12 +688,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } -+ // Paper start ++ // Paper start - AsyncTabCompleteEvent + private static final java.util.concurrent.ExecutorService TAB_COMPLETE_EXECUTOR = java.util.concurrent.Executors.newFixedThreadPool(4, + new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon(true).setNameFormat("Async Tab Complete Thread - #%d").setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER)).build()); -+ // Paper end ++ // Paper end - AsyncTabCompleteEvent @Override public void handleCustomCommandSuggestions(ServerboundCommandSuggestionPacket packet) { - PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); -+ // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - run this async ++ // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - AsyncTabCompleteEvent; run this async // CraftBukkit start if (this.chatSpamTickCount.addAndGet(1) > 500 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { - this.disconnect(Component.translatable("disconnect.spam")); -+ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]))); // Paper ++ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam"))); // Paper - AsyncTabCompleteEvent return; } // Paper start @@ -42,7 +42,7 @@ index 95df25f6c3ce3e945bca95bc5b5ab0c0863d94c1..9c0440a6e3768ca6300e128da7f1b11a } // Paper end // CraftBukkit end -+ // Paper start - async tab completion ++ // Paper start - AsyncTabCompleteEvent + TAB_COMPLETE_EXECUTOR.execute(() -> { StringReader stringreader = new StringReader(packet.getCommand()); @@ -86,12 +86,12 @@ index 95df25f6c3ce3e945bca95bc5b5ab0c0863d94c1..9c0440a6e3768ca6300e128da7f1b11a + player.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), builder.buildFuture().join())); + } }); -+ // Paper end - async tab completion ++ // Paper end - AsyncTabCompleteEvent } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 11080e6dd4ae30e20a724cb62750f1bbd63323e8..d921903070fd03abf1db15d805caf5d6bda971a0 100644 +index b56bfa447a15d56bf24c1bb4c05f74584cf37ad3..9bc095ccb142e83e419a7f88591bf1219d09bacb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2227,7 +2227,7 @@ public final class CraftServer implements Server { @@ -99,7 +99,7 @@ index 11080e6dd4ae30e20a724cb62750f1bbd63323e8..d921903070fd03abf1db15d805caf5d6 } - TabCompleteEvent tabEvent = new TabCompleteEvent(player, message, offers); -+ TabCompleteEvent tabEvent = new TabCompleteEvent(player, message, offers, message.startsWith("/") || forceCommand, pos != null ? io.papermc.paper.util.MCUtil.toLocation(((CraftWorld) player.getWorld()).getHandle(), BlockPos.containing(pos)) : null); // Paper ++ TabCompleteEvent tabEvent = new TabCompleteEvent(player, message, offers, message.startsWith("/") || forceCommand, pos != null ? io.papermc.paper.util.MCUtil.toLocation(((CraftWorld) player.getWorld()).getHandle(), BlockPos.containing(pos)) : null); // Paper - AsyncTabCompleteEvent this.getPluginManager().callEvent(tabEvent); return tabEvent.isCancelled() ? Collections.EMPTY_LIST : tabEvent.getCompletions(); diff --git a/patches/server/0166-PlayerPickupExperienceEvent.patch b/patches/server/0166-PlayerPickupExperienceEvent.patch index 88bec9ad2a86..c276fe0ac536 100644 --- a/patches/server/0166-PlayerPickupExperienceEvent.patch +++ b/patches/server/0166-PlayerPickupExperienceEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] PlayerPickupExperienceEvent Allows plugins to cancel a player picking up an experience orb diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 627fcf000f40e1bda025da874c447a99c727b98b..7eb84b1aad4f031ad17a461d174b23c213014995 100644 +index b49e48fa6dd37b5eddb45877be90018ec9d23b0e..7ef1b6decd87371db1636ace091b975db210f4fb 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -312,7 +312,7 @@ public class ExperienceOrb extends Entity { @@ -14,7 +14,7 @@ index 627fcf000f40e1bda025da874c447a99c727b98b..7eb84b1aad4f031ad17a461d174b23c2 public void playerTouch(Player player) { if (!this.level().isClientSide) { - if (player.takeXpDelay == 0) { -+ if (player.takeXpDelay == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper ++ if (player.takeXpDelay == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper - PlayerPickupExperienceEvent player.takeXpDelay = CraftEventFactory.callPlayerXpCooldownEvent(player, 2, PlayerExpCooldownChangeEvent.ChangeReason.PICKUP_ORB).getNewCooldown(); // CraftBukkit - entityhuman.takeXpDelay = 2; player.take(this, 1); int i = this.repairPlayerItems(player, this.value); diff --git a/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch b/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch index e7d4feaefc0f..fe5c651f9ed3 100644 --- a/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch +++ b/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch @@ -9,7 +9,7 @@ from triggering monster spawns on a server. Also a highly more effecient way to blanket block spawns in a world diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 5a653dffecd3877c84ac8197e1ef4b7bbc9820ce..c9e3e104cd051a38e367653dc6c4f969665fc250 100644 +index 5a653dffecd3877c84ac8197e1ef4b7bbc9820ce..422ef83670f7c4a2e5b0da48dc0906ad96b8ece0 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -700,7 +700,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -27,7 +27,7 @@ index 5a653dffecd3877c84ac8197e1ef4b7bbc9820ce..c9e3e104cd051a38e367653dc6c4f969 } entityplayer = (ServerPlayer) iterator.next(); -+ // Paper start - add PlayerNaturallySpawnCreaturesEvent ++ // Paper start - PlayerNaturallySpawnCreaturesEvent + com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent event; + blockRange = 16384.0D; + if (reducedRange) { @@ -35,19 +35,19 @@ index 5a653dffecd3877c84ac8197e1ef4b7bbc9820ce..c9e3e104cd051a38e367653dc6c4f969 + if (event == null || event.isCancelled()) return false; + blockRange = (double) ((event.getSpawnRadius() << 4) * (event.getSpawnRadius() << 4)); + } -+ // Paper end ++ // Paper end - PlayerNaturallySpawnCreaturesEvent } while (!this.playerIsCloseEnoughForSpawning(entityplayer, chunkcoordintpair, blockRange)); // Spigot return true; diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 1ad6b62ee53e2ee4a710211dfc750780519004f9..16028723b36c1ca3a3c5d1bf2a7c82d2b42a0be4 100644 +index 1ad6b62ee53e2ee4a710211dfc750780519004f9..de1d5da6318958e11a9da56ddd8fef1174d0a537 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -557,6 +557,15 @@ public class ServerChunkCache extends ChunkSource { boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit Util.shuffle(list, this.level.random); -+ // Paper start - call player naturally spawn event ++ // Paper start - PlayerNaturallySpawnCreaturesEvent + int chunkRange = level.spigotConfig.mobSpawnRange; + chunkRange = (chunkRange > level.spigotConfig.viewDistance) ? (byte) level.spigotConfig.viewDistance : chunkRange; + chunkRange = Math.min(chunkRange, 8); @@ -55,19 +55,19 @@ index 1ad6b62ee53e2ee4a710211dfc750780519004f9..16028723b36c1ca3a3c5d1bf2a7c82d2 + entityPlayer.playerNaturallySpawnedEvent = new com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent(entityPlayer.getBukkitEntity(), (byte) chunkRange); + entityPlayer.playerNaturallySpawnedEvent.callEvent(); + } -+ // Paper end ++ // Paper end - PlayerNaturallySpawnCreaturesEvent int l = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getLevelData().getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit Iterator iterator1 = list.iterator(); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d11864c05bd73fac15df454d6042924596639c25..8f826978564a1d144901f1ca2e46c5b083b68945 100644 +index 5e60c85a78aedb8275a7cd619006346fcb80405c..989359525a188cc2177e2b258de7baa44773bb53 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -265,6 +265,7 @@ public class ServerPlayer extends Player { // CraftBukkit end public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper -+ public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper ++ public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/patches/server/0170-PreCreatureSpawnEvent.patch b/patches/server/0170-PreCreatureSpawnEvent.patch index 2e32504f7ebb..78b6f9f5ca09 100644 --- a/patches/server/0170-PreCreatureSpawnEvent.patch +++ b/patches/server/0170-PreCreatureSpawnEvent.patch @@ -15,7 +15,7 @@ instead and save a lot of server resources. See: https://github.com/PaperMC/Paper/issues/917 diff --git a/src/main/java/net/minecraft/util/SpawnUtil.java b/src/main/java/net/minecraft/util/SpawnUtil.java -index b77ebe04f1018962b85110258c8a0a2db8612485..028d69907a988e191213a17e072ef22710b5bc83 100644 +index b77ebe04f1018962b85110258c8a0a2db8612485..1a0cd6ae172c911d3b4cc0f82e253536a4898ca9 100644 --- a/src/main/java/net/minecraft/util/SpawnUtil.java +++ b/src/main/java/net/minecraft/util/SpawnUtil.java @@ -22,10 +22,10 @@ public class SpawnUtil { @@ -35,7 +35,7 @@ index b77ebe04f1018962b85110258c8a0a2db8612485..028d69907a988e191213a17e072ef227 blockposition_mutableblockposition.setWithOffset(blockposition, i1, k, j1); if (worldserver.getWorldBorder().isWithinBounds((BlockPos) blockposition_mutableblockposition) && SpawnUtil.moveToPossibleSpawnPosition(worldserver, k, blockposition_mutableblockposition, spawnutil_a)) { -+ // Paper start ++ // Paper start - PreCreatureSpawnEvent + String key = EntityType.getKey(entitytypes).getPath(); + org.bukkit.entity.EntityType type = org.bukkit.entity.EntityType.fromName(key); + @@ -54,19 +54,19 @@ index b77ebe04f1018962b85110258c8a0a2db8612485..028d69907a988e191213a17e072ef227 + } + break; + } -+ // Paper end ++ // Paper end - PreCreatureSpawnEvent T t0 = entitytypes.create(worldserver, (CompoundTag) null, null, blockposition_mutableblockposition, enummobspawn, false, false); // CraftBukkit - decompile error if (t0 != null) { diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 382b55167dede435b034866bd394455f0f6f2a00..9d16fc698b0771bcb3c95f5fb017879c37ebb39b 100644 +index 382b55167dede435b034866bd394455f0f6f2a00..bd4ae65070eb4b98dae0529b5985f80093bf8185 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -418,6 +418,20 @@ public class EntityType implements FeatureElement, EntityTypeT @Nullable public T spawn(ServerLevel worldserver, @Nullable CompoundTag nbttagcompound, @Nullable Consumer consumer, BlockPos blockposition, MobSpawnType enummobspawn, boolean flag, boolean flag1, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason) { // CraftBukkit end -+ // Paper start - Call PreCreatureSpawnEvent ++ // Paper start - PreCreatureSpawnEvent + org.bukkit.entity.EntityType type = org.bukkit.entity.EntityType.fromName(EntityType.getKey(this).getPath()); + if (type != null) { + com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent event; @@ -79,7 +79,7 @@ index 382b55167dede435b034866bd394455f0f6f2a00..9d16fc698b0771bcb3c95f5fb017879c + return null; + } + } -+ // Paper end ++ // Paper end - PreCreatureSpawnEvent T t0 = this.create(worldserver, nbttagcompound, consumer, blockposition, enummobspawn, flag, flag1); if (t0 != null) { @@ -97,14 +97,14 @@ index a0a313fa5e7e4e1973c020d0262e34381a19dea7..0429b927e63ec12f53a6ce1ebe1e64d9 } } diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 393b77043cbaf58200fca6e56c22c36aa2aa2cfb..04cce4380e6e833b1d5e0a613eb0a167fdfe4e16 100644 +index 393b77043cbaf58200fca6e56c22c36aa2aa2cfb..db4beb22cf54bb3b53561ec0fe06209c478977ff 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java @@ -130,6 +130,27 @@ public abstract class BaseSpawner { } else if (!SpawnPlacements.checkSpawnRules((EntityType) optional.get(), world, MobSpawnType.SPAWNER, blockposition1, world.getRandom())) { continue; } -+ // Paper start ++ // Paper start - PreCreatureSpawnEvent + EntityType entityType = optional.get(); + String key = EntityType.getKey(entityType).getPath(); + @@ -124,12 +124,12 @@ index 393b77043cbaf58200fca6e56c22c36aa2aa2cfb..04cce4380e6e833b1d5e0a613eb0a167 + continue; + } + } -+ // Paper end ++ // Paper end - PreCreatureSpawnEvent Entity entity = EntityType.loadEntityRecursive(nbttagcompound, world, (entity1) -> { entity1.moveTo(d0, d1, d2, entity1.getYRot(), entity1.getXRot()); diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 92e76dd39dc3575e9466031dd799080a98ad8b8d..b3a7d065900f63b15ee2a8e3c1d69d5513f7b85c 100644 +index 92e76dd39dc3575e9466031dd799080a98ad8b8d..449a811202c9dea62bcf4a2f483e08a9bc1d0129 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -213,7 +213,13 @@ public final class NaturalSpawner { @@ -137,13 +137,13 @@ index 92e76dd39dc3575e9466031dd799080a98ad8b8d..b3a7d065900f63b15ee2a8e3c1d69d55 } - if (NaturalSpawner.isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2) && checker.test(biomesettingsmobs_c.type, blockposition_mutableblockposition, chunk)) { -+ // Paper start ++ // Paper start - PreCreatureSpawnEvent + PreSpawnStatus doSpawning = isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2); + if (doSpawning == PreSpawnStatus.ABORT) { + return; + } + if (doSpawning == PreSpawnStatus.SUCCESS && checker.test(biomesettingsmobs_c.type, blockposition_mutableblockposition, chunk)) { -+ // Paper end ++ // Paper end - PreCreatureSpawnEvent Mob entityinsentient = NaturalSpawner.getMobForSpawn(world, biomesettingsmobs_c.type); if (entityinsentient == null) { @@ -152,7 +152,7 @@ index 92e76dd39dc3575e9466031dd799080a98ad8b8d..b3a7d065900f63b15ee2a8e3c1d69d55 } - private static boolean isValidSpawnPostitionForType(ServerLevel world, MobCategory group, StructureManager structureAccessor, ChunkGenerator chunkGenerator, MobSpawnSettings.SpawnerData spawnEntry, BlockPos.MutableBlockPos pos, double squaredDistance) { -+ // Paper start ++ // Paper start - PreCreatureSpawnEvent + private enum PreSpawnStatus { + FAIL, + SUCCESS, @@ -160,10 +160,10 @@ index 92e76dd39dc3575e9466031dd799080a98ad8b8d..b3a7d065900f63b15ee2a8e3c1d69d55 + ABORT + } + private static PreSpawnStatus isValidSpawnPostitionForType(ServerLevel world, MobCategory group, StructureManager structureAccessor, ChunkGenerator chunkGenerator, MobSpawnSettings.SpawnerData spawnEntry, BlockPos.MutableBlockPos pos, double squaredDistance) { -+ // Paper end ++ // Paper end - PreCreatureSpawnEvent EntityType entitytypes = spawnEntry.type; -+ // Paper start ++ // Paper start - PreCreatureSpawnEvent + com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent event; + org.bukkit.entity.EntityType type = org.bukkit.entity.EntityType.fromName(EntityType.getKey(entitytypes).getPath()); + if (type != null) { @@ -178,22 +178,22 @@ index 92e76dd39dc3575e9466031dd799080a98ad8b8d..b3a7d065900f63b15ee2a8e3c1d69d55 + return PreSpawnStatus.CANCELLED; // Paper + } + } -+ // Paper end ++ // Paper end - PreCreatureSpawnEvent if (entitytypes.getCategory() == MobCategory.MISC) { - return false; -+ return PreSpawnStatus.FAIL; // Paper ++ return PreSpawnStatus.FAIL; // Paper - PreCreatureSpawnEvent } else if (!entitytypes.canSpawnFarFromPlayer() && squaredDistance > (double) (entitytypes.getCategory().getDespawnDistance() * entitytypes.getCategory().getDespawnDistance())) { - return false; -+ return PreSpawnStatus.FAIL; // Paper ++ return PreSpawnStatus.FAIL; // Paper - PreCreatureSpawnEvent } else if (entitytypes.canSummon() && NaturalSpawner.canSpawnMobAt(world, structureAccessor, chunkGenerator, group, spawnEntry, pos)) { SpawnPlacements.Type entitypositiontypes_surface = SpawnPlacements.getPlacementType(entitytypes); - return !NaturalSpawner.isSpawnPositionOk(entitypositiontypes_surface, world, pos, entitytypes) ? false : (!SpawnPlacements.checkSpawnRules(entitytypes, world, MobSpawnType.NATURAL, pos, world.random) ? false : world.noCollision(entitytypes.getAABB((double) pos.getX() + 0.5D, (double) pos.getY(), (double) pos.getZ() + 0.5D))); -+ boolean isValid = !NaturalSpawner.isSpawnPositionOk(entitypositiontypes_surface, world, pos, entitytypes) ? false : (!SpawnPlacements.checkSpawnRules(entitytypes, world, MobSpawnType.NATURAL, pos, world.random) ? false : world.noCollision(entitytypes.getAABB((double) pos.getX() + 0.5D, (double) pos.getY(), (double) pos.getZ() + 0.5D))); // Paper -+ return isValid ? PreSpawnStatus.SUCCESS : PreSpawnStatus.FAIL; // Paper ++ boolean isValid = !NaturalSpawner.isSpawnPositionOk(entitypositiontypes_surface, world, pos, entitytypes) ? false : (!SpawnPlacements.checkSpawnRules(entitytypes, world, MobSpawnType.NATURAL, pos, world.random) ? false : world.noCollision(entitytypes.getAABB((double) pos.getX() + 0.5D, (double) pos.getY(), (double) pos.getZ() + 0.5D))); // Paper - PreCreatureSpawnEvent ++ return isValid ? PreSpawnStatus.SUCCESS : PreSpawnStatus.FAIL; // Paper - PreCreatureSpawnEvent } else { - return false; -+ return PreSpawnStatus.FAIL; // Paper ++ return PreSpawnStatus.FAIL; // Paper - PreCreatureSpawnEvent } } diff --git a/patches/server/0171-Fill-Profile-Property-Events.patch b/patches/server/0171-Fill-Profile-Property-Events.patch index 68239bfad187..1c699ab0ce6b 100644 --- a/patches/server/0171-Fill-Profile-Property-Events.patch +++ b/patches/server/0171-Fill-Profile-Property-Events.patch @@ -46,7 +46,7 @@ index 985e6fc43a0946943847e0c283426242ef594a26..d577384797bb381eb57437f57b726ea8 return super.fetchProfile(profileId, requireSecure); } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java -index 92b770d10f34596ce52392a0db1ccd825108730b..4430520d32024d897c93c1d9f8652ccb2c202c01 100644 +index 92b770d10f34596ce52392a0db1ccd825108730b..252d8db6c802a2f23d6c6f8cf3726668225b853d 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java @@ -74,7 +74,7 @@ public class SkullBlockEntity extends BlockEntity { @@ -54,7 +54,7 @@ index 92b770d10f34596ce52392a0db1ccd825108730b..4430520d32024d897c93c1d9f8652ccb if (optional.isPresent() && !booleansupplier.getAsBoolean()) { UUID uuid = ((GameProfile) optional.get()).getId(); - ProfileResult profileresult = apiServices.sessionService().fetchProfile(uuid, true); -+ ProfileResult profileresult = apiServices.sessionService() instanceof com.destroystokyo.paper.profile.PaperMinecraftSessionService paperMinecraftSessionService ? paperMinecraftSessionService.fetchProfile(optional.get(), true) : apiServices.sessionService().fetchProfile(uuid, true); // Paper ++ ProfileResult profileresult = apiServices.sessionService() instanceof com.destroystokyo.paper.profile.PaperMinecraftSessionService paperMinecraftSessionService ? paperMinecraftSessionService.fetchProfile(optional.get(), true) : apiServices.sessionService().fetchProfile(uuid, true); // Paper - FillProfileEvent return profileresult != null ? Optional.ofNullable(profileresult.profile()) : optional; } else { diff --git a/patches/server/0172-Add-PlayerAdvancementCriterionGrantEvent.patch b/patches/server/0172-Add-PlayerAdvancementCriterionGrantEvent.patch index aa33b255e7e1..919a3add634f 100644 --- a/patches/server/0172-Add-PlayerAdvancementCriterionGrantEvent.patch +++ b/patches/server/0172-Add-PlayerAdvancementCriterionGrantEvent.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Add PlayerAdvancementCriterionGrantEvent diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index dbd5f1d052348d6adae8b13ae1f2686553b7a4bf..f6daa77856f5d57b1a3b38e709bff47214372973 100644 +index dbd5f1d052348d6adae8b13ae1f2686553b7a4bf..c61789a2df774761feb79123d31eab75f9996bf2 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java @@ -225,6 +225,12 @@ public class PlayerAdvancements { boolean flag1 = advancementprogress.isDone(); if (advancementprogress.grantProgress(criterionName)) { -+ // Paper start ++ // Paper start - Add PlayerAdvancementCriterionGrantEvent + if (!new com.destroystokyo.paper.event.player.PlayerAdvancementCriterionGrantEvent(this.player.getBukkitEntity(), advancement.toBukkit(), criterionName).callEvent()) { + advancementprogress.revokeProgress(criterionName); + return false; + } -+ // Paper end ++ // Paper end - Add PlayerAdvancementCriterionGrantEvent this.unregisterListeners(advancement); this.progressChanged.add(advancement); flag = true; diff --git a/patches/server/0174-Extend-Player-Interact-cancellation.patch b/patches/server/0174-Extend-Player-Interact-cancellation.patch index 006fd25c7b71..3f7b5b66d211 100644 --- a/patches/server/0174-Extend-Player-Interact-cancellation.patch +++ b/patches/server/0174-Extend-Player-Interact-cancellation.patch @@ -13,14 +13,14 @@ Update adjacent blocks of doors, double plants, pistons and beds when cancelling interaction. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 45236a077d798d6a257a2e982b58901167ecd06e..e3b7441d875b55ffce295c948f3dc867be09e042 100644 +index 45236a077d798d6a257a2e982b58901167ecd06e..f56ba2973aaf0fd41a974d6b38c2b2797631959e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -519,7 +519,13 @@ public class ServerPlayerGameMode { // send a correcting update to the client for the block above as well, this because of replaceable blocks (such as grass, sea grass etc) player.connection.send(new ClientboundBlockUpdatePacket(world, blockposition.above())); -+ // Paper start - extend Player Interact cancellation // TODO: consider merging this into the extracted method ++ // Paper start - extend Player Interact cancellation // TODO: consider merging this into the extracted method + } else if (iblockdata.getBlock() instanceof net.minecraft.world.level.block.StructureBlock) { + player.connection.send(new net.minecraft.network.protocol.game.ClientboundContainerClosePacket(this.player.containerMenu.containerId)); + } else if (iblockdata.getBlock() instanceof net.minecraft.world.level.block.CommandBlock) { diff --git a/patches/server/0176-Toggleable-player-crits-helps-mitigate-hacked-client.patch b/patches/server/0176-Toggleable-player-crits.patch similarity index 80% rename from patches/server/0176-Toggleable-player-crits-helps-mitigate-hacked-client.patch rename to patches/server/0176-Toggleable-player-crits.patch index d494f9714a45..3a0ff5f64ad3 100644 --- a/patches/server/0176-Toggleable-player-crits-helps-mitigate-hacked-client.patch +++ b/patches/server/0176-Toggleable-player-crits.patch @@ -1,18 +1,18 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MiniDigger Date: Sat, 10 Mar 2018 00:50:24 +0100 -Subject: [PATCH] Toggleable player crits, helps mitigate hacked clients. +Subject: [PATCH] Toggleable player crits diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index a135b539a250966939370bba35261cf1bb276128..26ddbd14831f6d7f2f1e8fd460f6253245f32a04 100644 +index 6881f6041d1605689f33d6d50b592f7d8a70cbdf..755364ee011df4deed65fc36ea41012d0667c918 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1242,6 +1242,7 @@ public abstract class Player extends LivingEntity { boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity; -+ flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper ++ flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits flag2 = flag2 && !this.isSprinting(); if (flag2) { f *= 1.5F; diff --git a/patches/server/0177-Disable-Explicit-Network-Manager-Flushing.patch b/patches/server/0177-Disable-Explicit-Network-Manager-Flushing.patch index a6f5d8c10c25..47975e8e6556 100644 --- a/patches/server/0177-Disable-Explicit-Network-Manager-Flushing.patch +++ b/patches/server/0177-Disable-Explicit-Network-Manager-Flushing.patch @@ -12,14 +12,14 @@ flushing on the netty event loop, so it won't do the flush on the main thread. Renable flushing by passing -Dpaper.explicit-flush=true diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index faac9ba36d83f537fe62e177c15ae237059cc5cc..df5da9398c903d073485aaa0dce8e70947137cb9 100644 +index faac9ba36d83f537fe62e177c15ae237059cc5cc..02b3f5c67b47a098f7fe15ddba0df6cb586a9ae5 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -114,6 +114,7 @@ public class Connection extends SimpleChannelInboundHandler> { // Paper start - NetworkClient implementation public int protocolVersion; public java.net.InetSocketAddress virtualHost; -+ private static boolean enableExplicitFlush = Boolean.getBoolean("paper.explicit-flush"); ++ private static boolean enableExplicitFlush = Boolean.getBoolean("paper.explicit-flush"); // Paper - Disable explicit network manager flushing // Paper end // Paper start - add utility methods @@ -28,7 +28,7 @@ index faac9ba36d83f537fe62e177c15ae237059cc5cc..df5da9398c903d073485aaa0dce8e709 if (this.channel != null) { - this.channel.flush(); -+ if (enableExplicitFlush) this.channel.eventLoop().execute(() -> this.channel.flush()); // Paper - we don't need to explicit flush here, but allow opt in incase issues are found to a better version ++ if (enableExplicitFlush) this.channel.eventLoop().execute(() -> this.channel.flush()); // Paper - Disable explicit network manager flushing; we don't need to explicit flush here, but allow opt in incase issues are found to a better version } if (this.tickCount++ % 20 == 0) { diff --git a/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch b/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch index c3a21b7e2399..44c9c1509f38 100644 --- a/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch +++ b/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch @@ -181,7 +181,7 @@ index 0000000000000000000000000000000000000000..6b0bdc266109cdfb874f08bf74323603 + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index eb443925f77aff634d4630089d7c2d096dfe8005..fa8905c2053d66cebfc8e8a4fad9d833b2ad05a3 100644 +index 06bbe33eeb2474119c22b918c93c57d6b253c319..becbff154ba757a80f9e90a8a7da00acc279d9f5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,6 +3,9 @@ package net.minecraft.server; @@ -199,7 +199,7 @@ index eb443925f77aff634d4630089d7c2d096dfe8005..fa8905c2053d66cebfc8e8a4fad9d833 return new ServerStatus.Players(i, list.size(), List.of()); } else { - int j = Math.min(list.size(), 12); -+ int j = Math.min(list.size(), org.spigotmc.SpigotConfig.playerSample); // Paper ++ int j = Math.min(list.size(), org.spigotmc.SpigotConfig.playerSample); // Paper - PaperServerListPingEvent ObjectArrayList objectarraylist = new ObjectArrayList(j); int k = Mth.nextInt(this.random, 0, list.size() - j); diff --git a/patches/server/0187-Configurable-sprint-interruption-on-attack.patch b/patches/server/0187-Configurable-sprint-interruption-on-attack.patch index 22eed74da419..f6123af66d2d 100644 --- a/patches/server/0187-Configurable-sprint-interruption-on-attack.patch +++ b/patches/server/0187-Configurable-sprint-interruption-on-attack.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable sprint interruption on attack If the sprint interruption is disabled players continue sprinting when they attack entities. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 26ddbd14831f6d7f2f1e8fd460f6253245f32a04..729c960a18a77b744eba0c9319cf5c2a9e84b707 100644 +index 755364ee011df4deed65fc36ea41012d0667c918..fd29c7f9fd50b52333f792cd07540704af579058 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1291,7 +1291,11 @@ public abstract class Player extends LivingEntity { @@ -14,11 +14,11 @@ index 26ddbd14831f6d7f2f1e8fd460f6253245f32a04..729c960a18a77b744eba0c9319cf5c2a this.setDeltaMovement(this.getDeltaMovement().multiply(0.6D, 1.0D, 0.6D)); - this.setSprinting(false); -+ // Paper start - Configuration option to disable automatic sprint interruption ++ // Paper start - Configurable sprint interruption on attack + if (!this.level().paperConfig().misc.disableSprintInterruptionOnAttack) { + this.setSprinting(false); + } -+ // Paper end ++ // Paper end - Configurable sprint interruption on attack } if (flag3) { diff --git a/patches/server/0188-EndermanEscapeEvent.patch b/patches/server/0188-EndermanEscapeEvent.patch index 3938ddc0cc1f..d5911bb2bcb1 100644 --- a/patches/server/0188-EndermanEscapeEvent.patch +++ b/patches/server/0188-EndermanEscapeEvent.patch @@ -8,18 +8,18 @@ Fires an event anytime an enderman intends to teleport away from the player You may cancel this, enabling ranged attacks to damage the enderman for example. diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 4ad0a65cce22d92972a15c18ac6e213012b90c0a..c897d55acdceae54bc2e7f3f3694ce421a8df687 100644 +index 4ad0a65cce22d92972a15c18ac6e213012b90c0a..aa7762037c3bcbbb3e51325b2ba91d5ad6db0ab0 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -124,6 +124,12 @@ public class EnderMan extends Monster implements NeutralMob { this.setTarget(target, EntityTargetEvent.TargetReason.UNKNOWN, true); } -+ // Paper start ++ // Paper start - EndermanEscapeEvent + private boolean tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason reason) { + return new com.destroystokyo.paper.event.entity.EndermanEscapeEvent((org.bukkit.craftbukkit.entity.CraftEnderman) this.getBukkitEntity(), reason).callEvent(); + } -+ // Paper end ++ // Paper end - EndermanEscapeEvent + @Override public boolean setTarget(LivingEntity entityliving, EntityTargetEvent.TargetReason reason, boolean fireEvent) { @@ -29,7 +29,7 @@ index 4ad0a65cce22d92972a15c18ac6e213012b90c0a..c897d55acdceae54bc2e7f3f3694ce42 float f = this.getLightLevelDependentMagicValue(); - if (f > 0.5F && this.level().canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F) { -+ if (f > 0.5F && this.level().canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper ++ if (f > 0.5F && this.level().canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper - EndermanEscapeEvent this.setTarget((LivingEntity) null); this.teleport(); } @@ -37,13 +37,13 @@ index 4ad0a65cce22d92972a15c18ac6e213012b90c0a..c897d55acdceae54bc2e7f3f3694ce42 } else { flag1 = flag && this.hurtWithCleanWater(source, (ThrownPotion) source.getDirectEntity(), amount); -+ if (this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.INDIRECT)) { // Paper start ++ if (this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.INDIRECT)) { // Paper - EndermanEscapeEvent for (int i = 0; i < 64; ++i) { if (this.teleport()) { return true; } } -+ } // Paper end ++ } // Paper - EndermanEscapeEvent return flag1; } @@ -52,7 +52,7 @@ index 4ad0a65cce22d92972a15c18ac6e213012b90c0a..c897d55acdceae54bc2e7f3f3694ce42 if (this.target != null && !this.enderman.isPassenger()) { if (this.enderman.isLookingAtMe((Player) this.target)) { - if (this.target.distanceToSqr((Entity) this.enderman) < 16.0D) { -+ if (this.target.distanceToSqr((Entity) this.enderman) < 16.0D && this.enderman.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.STARE)) { // Paper ++ if (this.target.distanceToSqr((Entity) this.enderman) < 16.0D && this.enderman.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.STARE)) { // Paper - EndermanEscapeEvent this.enderman.teleport(); } diff --git a/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch b/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch index 8ee73403ddfa..716c574a8e01 100644 --- a/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch +++ b/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch @@ -16,7 +16,7 @@ public net.minecraft.world.entity.projectile.Projectile cachedOwner public net.minecraft.world.entity.projectile.Projectile ownerUUID diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c63df0042b23e3728d5283b563889225691f6d56..8afcd4e3a3805c7bccffaf6ff751e23101db6ed8 100644 +index 9f958136a8a4c4632ad8ca359860681448653176..294a8eac85e49e9fa0e39b87f3954787b05fe30d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2368,6 +2368,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -28,19 +28,19 @@ index c63df0042b23e3728d5283b563889225691f6d56..8afcd4e3a3805c7bccffaf6ff751e231 + pearl.cachedOwner = null; + pearl.ownerUUID = null; + } -+ // Paper end ++ // Paper end - Reset pearls when they stop being ticked } public void onTrackingStart(Entity entity) { diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index fbbb1fa3d5f4ace67fee96aa235cec3b39deb7b1..e8620ad6be2dda7fe288f884c4ae88a924be4a62 100644 +index fbbb1fa3d5f4ace67fee96aa235cec3b39deb7b1..e432855ce79f69c0e91fa31e8f6c59a465b0d09e 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -101,6 +101,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { if (nbt.hasUUID("Owner")) { this.ownerUUID = nbt.getUUID("Owner"); this.cachedOwner = null; -+ if (this instanceof ThrownEnderpearl && this.level() != null && this.level().paperConfig().fixes.disableUnloadedChunkEnderpearlExploit) { this.ownerUUID = null; } // Paper - Don't store shooter name for pearls to block enderpearl travel exploit ++ if (this instanceof ThrownEnderpearl && this.level() != null && this.level().paperConfig().fixes.disableUnloadedChunkEnderpearlExploit) { this.ownerUUID = null; } // Paper - Reset pearls when they stop being ticked; Don't store shooter name for pearls to block enderpearl travel exploit } this.leftOwner = nbt.getBoolean("LeftOwner"); diff --git a/patches/server/0229-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0229-Break-up-and-make-tab-spam-limits-configurable.patch index 8ebb5cb69efc..13a8fbad08a8 100644 --- a/patches/server/0229-Break-up-and-make-tab-spam-limits-configurable.patch +++ b/patches/server/0229-Break-up-and-make-tab-spam-limits-configurable.patch @@ -22,7 +22,7 @@ to take the burden of this into their own hand without having to rely on plugins doing unsafe things. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a00f68b058d6d7aa28ce34ad726c5b228e5c2e64..222e9ab6fa6a40f7846451cee256d3dbbac54fde 100644 +index 2291ca80352db1aaa99b2f266de6d493785be7cf..6f628fedbba120a0db13cb942f6e79ebf2acf14b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -257,6 +257,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -43,10 +43,10 @@ index a00f68b058d6d7aa28ce34ad726c5b228e5c2e64..222e9ab6fa6a40f7846451cee256d3db --this.chatSpamTickCount; @@ -697,7 +699,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void handleCustomCommandSuggestions(ServerboundCommandSuggestionPacket packet) { - // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - run this async + // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - AsyncTabCompleteEvent; run this async // CraftBukkit start - if (this.chatSpamTickCount.addAndGet(1) > 500 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { + if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - configurable tab spam limits - server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]))); // Paper + server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam"))); // Paper - AsyncTabCompleteEvent return; } diff --git a/patches/server/0287-Brigadier-Mojang-API.patch b/patches/server/0287-Brigadier-Mojang-API.patch index 7b8adfc7ac12..beddfc74a292 100644 --- a/patches/server/0287-Brigadier-Mojang-API.patch +++ b/patches/server/0287-Brigadier-Mojang-API.patch @@ -131,7 +131,7 @@ index 2b722091920116ded43ff54c413d4dd47da65ed4..867f22bdeed5f1c3f063a5815a3477d1 if (commandnode2.canUse(source)) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 592493efdd799c76c753de825126c4f7b04a3179..efa12d25cacd0b746ff8e689f35380bc310f5d75 100644 +index c522763bd17205d31f3c37b5e582a449b2b7e06f..7b373eb64752e03227beedd41c1a7cb271d814f1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -740,8 +740,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -163,7 +163,7 @@ index 592493efdd799c76c753de825126c4f7b04a3179..efa12d25cacd0b746ff8e689f35380bc + // Paper end - Brigadier API } }); - // Paper end - async tab completion + // Paper end - AsyncTabCompleteEvent diff --git a/src/main/java/org/bukkit/craftbukkit/command/BukkitCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/BukkitCommandWrapper.java index 83d81b9371902b0302d13e53b31c15fac4e67966..d113e54a30db16e2ad955170df6030d15de530d6 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/BukkitCommandWrapper.java diff --git a/patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch index baa14e577eba..66a3fbc5b9c3 100644 --- a/patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch +++ b/patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch @@ -28,7 +28,7 @@ and then catch exceptions and close if they fire. Part of this commit was authored by: Spottedleaf, sandtechnology diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index c521e2eab937f90085c4f1a98aab13d46720a07b..c66fc75fb88c4f0a4273d69009a4e6defb0b29e9 100644 +index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3bfb463812 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -84,7 +84,7 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -42,7 +42,7 @@ index c521e2eab937f90085c4f1a98aab13d46720a07b..c66fc75fb88c4f0a4273d69009a4e6de // Spigot Start @@ -116,6 +116,10 @@ public class Connection extends SimpleChannelInboundHandler> { public java.net.InetSocketAddress virtualHost; - private static boolean enableExplicitFlush = Boolean.getBoolean("paper.explicit-flush"); + private static boolean enableExplicitFlush = Boolean.getBoolean("paper.explicit-flush"); // Paper - Disable explicit network manager flushing // Paper end + // Paper start - Optimize network + public boolean isPending = true; diff --git a/patches/server/0332-Optional-per-player-mob-spawns.patch b/patches/server/0332-Optional-per-player-mob-spawns.patch index 4566980134f0..26db4845b9de 100644 --- a/patches/server/0332-Optional-per-player-mob-spawns.patch +++ b/patches/server/0332-Optional-per-player-mob-spawns.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optional per player mob spawns diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 279cb641b795b6f4ced545c3a09b61fde69c47d6..19f1432ae1405eee0ee56dec151e7d602816a943 100644 +index b9c345d056ea8b14f19dc033cf3e7e9502b63eda..2b9a1a178233fb7cfb4d58853ff3176cb1236d3a 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -288,6 +288,29 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -39,7 +39,7 @@ index 279cb641b795b6f4ced545c3a09b61fde69c47d6..19f1432ae1405eee0ee56dec151e7d60 double d0 = (double) SectionPos.sectionToBlockCoord(pos.x, 8); double d1 = (double) SectionPos.sectionToBlockCoord(pos.z, 8); diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 16028723b36c1ca3a3c5d1bf2a7c82d2b42a0be4..488f7e2f1ab0312673983d9079b4d7d99eebe611 100644 +index de1d5da6318958e11a9da56ddd8fef1174d0a537..c05beb24972e6633e2d61ba47dcfa0189ea249b6 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -549,7 +549,19 @@ public class ServerChunkCache extends ChunkSource { @@ -64,7 +64,7 @@ index 16028723b36c1ca3a3c5d1bf2a7c82d2b42a0be4..488f7e2f1ab0312673983d9079b4d7d9 this.lastSpawnState = spawnercreature_d; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index af75f20fff15f95aed238e3f6ae57182f4076d46..f9f994f74ff2fc9024c51104eb9af536beb24943 100644 +index 0eace8fabb01083327b34e39ec47c51dbedf87ec..181b1896f5bed99c4c4e2e092f72b1a8e1551832 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -253,6 +253,10 @@ public class ServerPlayer extends Player { @@ -79,7 +79,7 @@ index af75f20fff15f95aed238e3f6ae57182f4076d46..f9f994f74ff2fc9024c51104eb9af536 // CraftBukkit start public String displayName; diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index a19c0e30ebcea8feff035a451ded567dfa86dfff..db22e35d19597488a08ba3cd710ced7da77f8b5e 100644 +index 30327580bfa00dda2b87171b2bf3c7de2600ba68..b27e0f31d0b3f5c57157a27f1f1db0f847d42a0c 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -70,6 +70,12 @@ public final class NaturalSpawner { @@ -194,14 +194,14 @@ index a19c0e30ebcea8feff035a451ded567dfa86dfff..db22e35d19597488a08ba3cd710ced7d while (k < 3) { @@ -223,14 +268,14 @@ public final class NaturalSpawner { - // Paper start + // Paper start - PreCreatureSpawnEvent PreSpawnStatus doSpawning = isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2); if (doSpawning == PreSpawnStatus.ABORT) { - return; + return j; // Paper - Optional per player mob spawns } if (doSpawning == PreSpawnStatus.SUCCESS && checker.test(biomesettingsmobs_c.type, blockposition_mutableblockposition, chunk)) { - // Paper end + // Paper end - PreCreatureSpawnEvent Mob entityinsentient = NaturalSpawner.getMobForSpawn(world, biomesettingsmobs_c.type); if (entityinsentient == null) { diff --git a/patches/server/0433-Brand-support.patch b/patches/server/0433-Brand-support.patch index 40b4914f13a6..d9dd9c999848 100644 --- a/patches/server/0433-Brand-support.patch +++ b/patches/server/0433-Brand-support.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9b3425857342f4c75ae23aee922d792977aa8c4e..07b711193d58625f3b3017e1b2ecb9dc07cc51a5 100644 +index dc0869c5f4e4fcae9d4fed41a33bc9a278da6d22..1d19688f9861f6a44ed6ff181befd1f7b5cc6947 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -278,6 +278,7 @@ public class ServerPlayer extends Player { public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper - public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper + public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent + public @Nullable String clientBrandName = null; // Paper - Brand support // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index b68301f4cf650891140d3be6aebdc7ddf0d2a54f..f453b3023b713877b286e61d3c60b0b3cfce2cdd 100644 +index 1b53b0ee686f34a881840c549c66ea1cbab36c9f..5e86123f41e63fbf3d37d0351c04a8c73da60f63 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -55,6 +55,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/server/0475-Add-API-for-quit-reason.patch b/patches/server/0475-Add-API-for-quit-reason.patch index ef9b5bf746b8..e2fcc31f87b9 100644 --- a/patches/server/0475-Add-API-for-quit-reason.patch +++ b/patches/server/0475-Add-API-for-quit-reason.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add API for quit reason diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 19df0fa85080897a36bdbffa8fcef0991dbdd191..751d24a29cf3797234adbb1eb3b64b7fb261b24e 100644 +index a25090d277f586c932e975068636ccd6cc43b204..dd7deb9175059857c59c85c745053cc88a922d3b 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -183,12 +183,15 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -25,19 +25,19 @@ index 19df0fa85080897a36bdbffa8fcef0991dbdd191..751d24a29cf3797234adbb1eb3b64b7f Connection.LOGGER.debug("Failed to sent packet", throwable); if (this.getSending() == PacketFlow.CLIENTBOUND) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 07b711193d58625f3b3017e1b2ecb9dc07cc51a5..94ddc704114af810a3f9c858863e10b5a2b87edd 100644 +index 1d19688f9861f6a44ed6ff181befd1f7b5cc6947..115ecf1d50f796adb85df6fdd8739f71740faf3e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -279,6 +279,7 @@ public class ServerPlayer extends Player { public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper - public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper + public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent public @Nullable String clientBrandName = null; // Paper - Brand support + public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index f453b3023b713877b286e61d3c60b0b3cfce2cdd..825b8f541fe3f5e4cb53f465232c19398b8e66ab 100644 +index 5e86123f41e63fbf3d37d0351c04a8c73da60f63..7c17c3d4f4f5ebc42186fcc98008bda062715e55 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -315,6 +315,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/server/0594-Add-PlayerKickEvent-causes.patch b/patches/server/0594-Add-PlayerKickEvent-causes.patch index 5aa71148a358..d9189e22000b 100644 --- a/patches/server/0594-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0594-Add-PlayerKickEvent-causes.patch @@ -48,7 +48,7 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..ba12919c3f9aec34a9e64993b143ae92 public boolean shouldDisconnect() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 748a5d8add76d4533fae2647c6e2439f518ac211..bd176eb76afec5873e6f903ef66b0e6df3e6a02f 100644 +index 2a000635c18878377b2f434929e460e809b02cc4..6f2fcf39835d8a8b7408a39a511a2a9ee1e31248 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2236,7 +2236,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - configurable tab spam limits -- server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]))); // Paper -+ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause +- server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam"))); // Paper - AsyncTabCompleteEvent ++ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - AsyncTabCompleteEvent & kick event cause return; } // Paper start diff --git a/patches/server/0647-Add-critical-damage-API.patch b/patches/server/0647-Add-critical-damage-API.patch index d905b8772db5..f4f5ef8bce2d 100644 --- a/patches/server/0647-Add-critical-damage-API.patch +++ b/patches/server/0647-Add-critical-damage-API.patch @@ -28,7 +28,7 @@ index df8c88bfa749e02f633350446101dcce05db7ac1..ed1277fad60992344b94f8a939febaca + // Paper end - add critical damage API } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 322c8c437b4c5fa4a9db038736f24da24d45d646..30b603284e5fbc48ba7bc3cc6a69b8a4b94851a1 100644 +index 04b698ab61ab8cd7e6ee7159294e473e1608f2fd..85b616bf136535bac40693545cf68a768f4e343d 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1263,7 +1263,7 @@ public abstract class Player extends LivingEntity { @@ -38,7 +38,7 @@ index 322c8c437b4c5fa4a9db038736f24da24d45d646..30b603284e5fbc48ba7bc3cc6a69b8a4 - boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity; + boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity; // Paper - Add critical damage API; diff on change - flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper + flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits flag2 = flag2 && !this.isSprinting(); @@ -1303,7 +1303,7 @@ public abstract class Player extends LivingEntity { } @@ -71,7 +71,7 @@ index 004c130fc03dc01ef75fabdb4ef1ef711e33cb95..ae4319c2532855315bc45995a39d7eb9 int k = entity.getRemainingFireTicks(); boolean flag1 = entity.getType().is(EntityTypeTags.DEFLECTS_ARROWS); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 2da51dc36e21e45ecc3cbbe357947f8359e538eb..6423af82fbae4267d06229fde2390bfb5569137a 100644 +index 166035d8f708b94a9563c3802418ab6200071bc6..25133298b26523bd36300ab03e216200c915386b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1043,7 +1043,7 @@ public class CraftEventFactory { diff --git a/patches/server/0668-Execute-chunk-tasks-mid-tick.patch b/patches/server/0668-Execute-chunk-tasks-mid-tick.patch index 918a6966285b..ee918bed7ee9 100644 --- a/patches/server/0668-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/0668-Execute-chunk-tasks-mid-tick.patch @@ -19,7 +19,7 @@ index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..46449728f69ee7d4f78470f8da23c055 private MinecraftTimings() {} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index bd176eb76afec5873e6f903ef66b0e6df3e6a02f..ec48aea4e352e8ee3ad8cda8ce8ec33daf49dae8 100644 +index 6f2fcf39835d8a8b7408a39a511a2a9ee1e31248..fd23c278d38b1b8ed3c894f55e8907e259654558 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1341,8 +1341,79 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop void guardEntityTick(Consumer tickConsumer, T entity) { try { diff --git a/patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index b6f183623ee0..8695ea1b7a33 100644 --- a/patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4a6a8de70c65ecae0a53df69881326b9b953b9e8..c84a8e6fc5f136b12bc542ec64a6686386bfe0cf 100644 +index 4f318c5e8a8cd2113d7b404aa97cdf03f7a87fd4..ff60a7951818341d5b279b51cdf3d0dd4d89bc26 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -733,6 +733,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -18,6 +18,6 @@ index 4a6a8de70c65ecae0a53df69881326b9b953b9e8..c84a8e6fc5f136b12bc542ec64a66863 + return; + } + // Paper end - Don't suggest if tab-complete is disabled - // Paper start - async tab completion + // Paper start - AsyncTabCompleteEvent TAB_COMPLETE_EXECUTOR.execute(() -> { StringReader stringreader = new StringReader(packet.getCommand()); diff --git a/patches/server/0959-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0959-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch index 48773be39239..e176aff119d6 100644 --- a/patches/server/0959-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch +++ b/patches/server/0959-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve cancelling PreCreatureSpawnEvent with per player mob diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 6ccd2a5a334c846850a9d064210f2d7f1d311470..28ad811401cd46ec17fbec27b7e1111ead1d45e7 100644 +index 4a597dd278947c7992d3c09e0813780689cbd9ab..ebf69ec2830a3e3121707fd958f31180d361d9d0 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -386,8 +386,26 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -38,7 +38,7 @@ index 6ccd2a5a334c846850a9d064210f2d7f1d311470..28ad811401cd46ec17fbec27b7e1111e // Paper end - Optional per player mob spawns diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 32129fdd5b2542a0acb828fb843fa4e44533946c..dfecd5531862109cd89cfd8a041a8beef70c1a6a 100644 +index 816678438c1714a757e5d1eebc38f101a0692521..e3618e76f9ce4d585287d0754193c2793ba1e492 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -539,7 +539,17 @@ public class ServerChunkCache extends ChunkSource { @@ -61,7 +61,7 @@ index 32129fdd5b2542a0acb828fb843fa4e44533946c..dfecd5531862109cd89cfd8a041a8bee spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true); } else { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index fb2ac7c4b9d938bc699ddc7475e2c3c3777cd056..ea76c2845965ceecce8a1c13f1a8454a088a5354 100644 +index e7f886074ddb4f5a7cb6a40c4fc57cf45418082d..f0b4c02b0c902a65f9cadfdb6ee7b451cf2cbe70 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -260,6 +260,7 @@ public class ServerPlayer extends Player { @@ -73,12 +73,12 @@ index fb2ac7c4b9d938bc699ddc7475e2c3c3777cd056..ea76c2845965ceecce8a1c13f1a8454a // CraftBukkit start public String displayName; diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index a9b452be0454082f7d62f19fbac574113ed2db64..ba67c55cde0120786e6705fed96fab4b611c1c75 100644 +index 5a4db70543ab446630c1cf0252496b57edc4252a..1712bd7c3a9b515c7bf8909f7392a385ef243ff9 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -277,6 +277,11 @@ public final class NaturalSpawner { - // Paper start + // Paper start - PreCreatureSpawnEvent PreSpawnStatus doSpawning = isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2); + // Paper start - per player mob count backoff + if (doSpawning == PreSpawnStatus.ABORT || doSpawning == PreSpawnStatus.CANCELLED) { diff --git a/patches/server/0994-Optimise-chunk-tick-iteration.patch b/patches/server/0994-Optimise-chunk-tick-iteration.patch index c8dc8078c6e8..a15bf7045bba 100644 --- a/patches/server/0994-Optimise-chunk-tick-iteration.patch +++ b/patches/server/0994-Optimise-chunk-tick-iteration.patch @@ -108,7 +108,7 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754 List list; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c7d78fb217869204157606db8d6d73af0126a68f..6c28b37056c70fa0076b290b24168bfb79ddd77d 100644 +index 815fb04fb2d14d0cea14a2b3509e81b383bbdbda..ccf0308855d6549d70cf010fc57b76abfbe93f26 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -187,7 +187,7 @@ index c80a625f7289e3bb33c6851d2072957e153ca1fb..7c425ac50c83757b66a2178bc19d4c92 public String getDebugStatus() { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index dfecd5531862109cd89cfd8a041a8beef70c1a6a..65a20974428ae1c0be2022d997234a16dc281292 100644 +index e3618e76f9ce4d585287d0754193c2793ba1e492..65a20974428ae1c0be2022d997234a16dc281292 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -516,18 +516,10 @@ public class ServerChunkCache extends ChunkSource { @@ -216,7 +216,7 @@ index dfecd5531862109cd89cfd8a041a8beef70c1a6a..65a20974428ae1c0be2022d997234a16 boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit - Util.shuffle(list, this.level.random); -- // Paper start - call player naturally spawn event +- // Paper start - PlayerNaturallySpawnCreaturesEvent - int chunkRange = level.spigotConfig.mobSpawnRange; - chunkRange = (chunkRange > level.spigotConfig.viewDistance) ? (byte) level.spigotConfig.viewDistance : chunkRange; - chunkRange = Math.min(chunkRange, 8); @@ -257,7 +257,7 @@ index dfecd5531862109cd89cfd8a041a8beef70c1a6a..65a20974428ae1c0be2022d997234a16 + player.lastEntitySpawnRadiusSquared = (double)((range << 4) * (range << 4)); // used in anyPlayerCloseEnoughForSpawning + player.playerNaturallySpawnedEvent = event; } -- // Paper end +- // Paper end - PlayerNaturallySpawnCreaturesEvent + // Paper end - optimise chunk tick iteration int l = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getLevelData().getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit @@ -365,7 +365,7 @@ index dfecd5531862109cd89cfd8a041a8beef70c1a6a..65a20974428ae1c0be2022d997234a16 gameprofilerfiller.pop(); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8afbf0d40af4040b18f68a549710112a0aa5fd00..575681586667933e7f26bb16f7d2aa7c73188cde 100644 +index a78ee295d14e0f4543b5bbdb7b72c6383a4fb23a..40632eabeb297f2cb2206d18cba7476bfb9f7ae8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -325,6 +325,9 @@ public class ServerPlayer extends Player { diff --git a/patches/server/1025-Dont-resend-blocks-on-interactions.patch b/patches/server/1025-Dont-resend-blocks-on-interactions.patch index caa9e6f2e3cc..b6ecf3d30ca6 100644 --- a/patches/server/1025-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1025-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 6abc5061888d965161de979465bb625c173c59c6..93906a31ddf99cf51541994d7a5c2e4131b697fa 100644 +index fd8a282e0a4316ed3fe51501151f8b49ce8ad0c4..cfd4ac06a9af6bf3fac293110482e1df690e075e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { @@ -123,7 +123,7 @@ index 6abc5061888d965161de979465bb625c173c59c6..93906a31ddf99cf51541994d7a5c2e41 // send a correcting update to the client for the block above as well, this because of replaceable blocks (such as grass, sea grass etc) - player.connection.send(new ClientboundBlockUpdatePacket(world, blockposition.above())); + //player.connection.send(new ClientboundBlockUpdatePacket(world, blockposition.above())); // Paper - Don't resync blocks - // Paper start - extend Player Interact cancellation // TODO: consider merging this into the extracted method + // Paper start - extend Player Interact cancellation // TODO: consider merging this into the extracted method } else if (iblockdata.getBlock() instanceof net.minecraft.world.level.block.StructureBlock) { player.connection.send(new net.minecraft.network.protocol.game.ClientboundContainerClosePacket(this.player.containerMenu.containerId)); diff --git a/src/main/java/net/minecraft/world/item/BucketItem.java b/src/main/java/net/minecraft/world/item/BucketItem.java diff --git a/patches/server/1032-Add-experience-points-API.patch b/patches/server/1032-Add-experience-points-API.patch index 29da9409a067..fe9eb0cc785f 100644 --- a/patches/server/1032-Add-experience-points-API.patch +++ b/patches/server/1032-Add-experience-points-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 7562b8a0f0bc8e43b3c0b64c6d66786c2c93b5cd..777043d4e4bd253a804353df3efad43078a5c3b3 100644 +index 276f6e650f6b6a4e14bdf3132533668382fb33b4..a0312dc208acda99b871cbd9e62f350e5899303f 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1833,7 +1833,7 @@ public abstract class Player extends LivingEntity { @@ -15,7 +15,7 @@ index 7562b8a0f0bc8e43b3c0b64c6d66786c2c93b5cd..777043d4e4bd253a804353df3efad430 - return this.experienceLevel >= 30 ? 112 + (this.experienceLevel - 30) * 9 : (this.experienceLevel >= 15 ? 37 + (this.experienceLevel - 15) * 5 : 7 + this.experienceLevel * 2); + return this.experienceLevel >= 30 ? 112 + (this.experienceLevel - 30) * 9 : (this.experienceLevel >= 15 ? 37 + (this.experienceLevel - 15) * 5 : 7 + this.experienceLevel * 2); // Paper - diff on change; calculateTotalExperiencePoints } - // Paper start - send SoundEffect to everyone who can see fromEntity + // Paper start - send while respecting visibility private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index fd67e7571841b345630078892e321283760341dd..b8d3398b349d9294de6b8a8594b054d3c84dbe0a 100644 From 9eb0b381571a2a3c8db78ac938cb596d3890a08f Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 22 Jan 2024 19:01:10 +0100 Subject: [PATCH 37/45] [ci skip] Add more patch identifying comments --- ...r-redstone-torch-rapid-clock-removal.patch | 14 +++---- ...blocking-on-Network-Manager-creation.patch | 16 ++++---- ...ptimise-BlockState-s-hashCode-equals.patch | 16 ++++---- ...onfigurable-packet-in-spam-threshold.patch | 6 +-- patches/server/0109-Add-EntityZapEvent.patch | 10 ++--- ...entity-nbt-data-from-falling-blocks.patch} | 6 +-- ...111-Cache-user-authenticator-threads.patch | 6 +-- ...ze-Level.hasChunkAt-BlockPosition-Z.patch} | 6 +-- ...-Bound-Treasure-Maps-to-World-Border.patch | 10 ++--- ...figurable-Cartographer-Treasure-Maps.patch | 14 +++---- ...to-control-if-armor-stands-can-move.patch} | 2 +- ...21-Properly-fix-item-duplication-bug.patch | 8 ++-- ...rovide-E-TE-Chunk-count-stat-methods.patch | 8 ++-- ...PI-for-Reason-Source-Triggering-play.patch | 30 ++++++--------- .../server/0127-Cap-Entity-Collisions.patch | 14 +++---- ...ke-parrots-stay-on-shoulders-despite.patch | 10 ++--- ...urable-option-to-disable-creeper-lin.patch | 4 +- .../server/0134-Item-canEntityPickup.patch | 10 ++--- ...PlayerPickupItemEvent-setFlyAtPlayer.patch | 4 +- .../0136-PlayerAttemptPickupItemEvent.patch | 6 +-- ...-profile-lookups-to-worldgen-threads.patch | 12 +++--- .../server/0139-Add-UnknownCommandEvent.patch | 38 ++++++++----------- ...player-logins-during-server-shutdown.patch | 4 +- .../server/0143-Entity-fromMobSpawner.patch | 4 +- ...=> 0145-ensureServerConversions-API.patch} | 2 +- .../0147-ProfileWhitelistVerifyEvent.patch | 8 ++-- ...dle-ServerboundKeepAlivePacket-async.patch | 4 +- ...rom-being-processed-when-the-player-.patch | 4 +- ...34-Use-ConcurrentHashMap-in-JsonList.patch | 4 +- .../0286-Async-command-map-building.patch | 8 ++-- .../server/0287-Brigadier-Mojang-API.patch | 12 +++--- ...-Manager-and-add-advanced-packet-sup.patch | 14 +++---- .../0327-Entity-Activation-Range-2.0.patch | 18 ++++----- .../0329-Alternative-item-despawn-rate.patch | 4 +- ...n-to-nerf-pigmen-from-nether-portals.patch | 10 ++--- ...Add-Channel-initialization-listeners.patch | 6 +-- ...mmands-if-tab-completion-is-disabled.patch | 4 +- ...x-and-optimise-world-force-upgrading.patch | 8 ++-- .../0594-Add-PlayerKickEvent-causes.patch | 8 ++-- ...653-Vanilla-command-permission-fixes.patch | 4 +- ...y-type-tags-suggestions-in-selectors.patch | 8 ++-- .../0784-Add-support-for-Proxy-Protocol.patch | 4 +- patches/server/0858-Friction-API.patch | 6 +-- patches/server/0937-Fix-BanList-API.patch | 4 +- ...predicate-for-blocks-when-raytracing.patch | 6 +-- 45 files changed, 195 insertions(+), 209 deletions(-) rename patches/server/{0110-Filter-bad-tile-entity-nbt-data-from-falling-blocks.patch => 0110-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch} (77%) rename patches/server/{0116-Optimize-World.isLoaded-BlockPosition-Z.patch => 0116-Optimize-Level.hasChunkAt-BlockPosition-Z.patch} (81%) rename patches/server/{0119-Add-API-methods-to-control-if-armour-stands-can-move.patch => 0119-Add-API-methods-to-control-if-armor-stands-can-move.patch} (96%) rename patches/server/{0145-Implement-ensureServerConversions-API.patch => 0145-ensureServerConversions-API.patch} (97%) diff --git a/patches/server/0100-Faster-redstone-torch-rapid-clock-removal.patch b/patches/server/0100-Faster-redstone-torch-rapid-clock-removal.patch index 24bb6dff269c..90e326013b79 100644 --- a/patches/server/0100-Faster-redstone-torch-rapid-clock-removal.patch +++ b/patches/server/0100-Faster-redstone-torch-rapid-clock-removal.patch @@ -6,19 +6,19 @@ Subject: [PATCH] Faster redstone torch rapid clock removal Only resize the the redstone torch list once, since resizing arrays / lists is costly diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9bb380e7c8973b4728b5d4aad663af9e477dda0c..48d3da58820c1d9259bc023ddd74e9632b3f62d1 100644 +index cd3a99585a471981b9fa1f614ddddfce570ee0e7..244c28cd52a177e798153bc6151f0fb0e5c51841 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -176,6 +176,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { private org.spigotmc.TickLimiter tileLimiter; private int tileTickPosition; public final Map explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions -+ public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here ++ public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Faster redstone torch rapid clock removal; Move from Map in BlockRedstoneTorch to here public CraftWorld getWorld() { return this.world; diff --git a/src/main/java/net/minecraft/world/level/block/RedstoneTorchBlock.java b/src/main/java/net/minecraft/world/level/block/RedstoneTorchBlock.java -index 68da47c3ec59518a4bbeb03c196ef0e7c6b5d049..6c49962e8f9e2a5fca50b33f3e3fff76fa36f907 100644 +index 68da47c3ec59518a4bbeb03c196ef0e7c6b5d049..1ec5f1e984b428b125f919576686c92538f34c8b 100644 --- a/src/main/java/net/minecraft/world/level/block/RedstoneTorchBlock.java +++ b/src/main/java/net/minecraft/world/level/block/RedstoneTorchBlock.java @@ -24,7 +24,7 @@ public class RedstoneTorchBlock extends BaseTorchBlock { @@ -26,7 +26,7 @@ index 68da47c3ec59518a4bbeb03c196ef0e7c6b5d049..6c49962e8f9e2a5fca50b33f3e3fff76 public static final MapCodec CODEC = simpleCodec(RedstoneTorchBlock::new); public static final BooleanProperty LIT = BlockStateProperties.LIT; - private static final Map> RECENT_TOGGLES = new WeakHashMap(); -+ // Paper - Move the mapped list to World ++ // Paper - Faster redstone torch rapid clock removal; Move the mapped list to World public static final int RECENT_TOGGLE_TIMER = 60; public static final int MAX_RECENT_TOGGLES = 8; public static final int RESTART_DELAY = 160; @@ -38,7 +38,7 @@ index 68da47c3ec59518a4bbeb03c196ef0e7c6b5d049..6c49962e8f9e2a5fca50b33f3e3fff76 - - while (list != null && !list.isEmpty() && world.getGameTime() - ((RedstoneTorchBlock.Toggle) list.get(0)).when > 60L) { - list.remove(0); -+ // Paper start ++ // Paper start - Faster redstone torch rapid clock removal + java.util.ArrayDeque redstoneUpdateInfos = world.redstoneUpdateInfos; + if (redstoneUpdateInfos != null) { + RedstoneTorchBlock.Toggle curr; @@ -46,7 +46,7 @@ index 68da47c3ec59518a4bbeb03c196ef0e7c6b5d049..6c49962e8f9e2a5fca50b33f3e3fff76 + redstoneUpdateInfos.poll(); + } } -+ // Paper end ++ // Paper end - Faster redstone torch rapid clock removal // CraftBukkit start org.bukkit.plugin.PluginManager manager = world.getCraftServer().getPluginManager(); @@ -57,7 +57,7 @@ index 68da47c3ec59518a4bbeb03c196ef0e7c6b5d049..6c49962e8f9e2a5fca50b33f3e3fff76 - List list = (List) RedstoneTorchBlock.RECENT_TOGGLES.computeIfAbsent(world, (iblockaccess) -> { - return Lists.newArrayList(); - }); -+ // Paper start ++ // Paper start - Faster redstone torch rapid clock removal + java.util.ArrayDeque list = world.redstoneUpdateInfos; + if (list == null) { + list = world.redstoneUpdateInfos = new java.util.ArrayDeque<>(); diff --git a/patches/server/0103-Avoid-blocking-on-Network-Manager-creation.patch b/patches/server/0103-Avoid-blocking-on-Network-Manager-creation.patch index 8a8d5530d3b8..16784d8691b7 100644 --- a/patches/server/0103-Avoid-blocking-on-Network-Manager-creation.patch +++ b/patches/server/0103-Avoid-blocking-on-Network-Manager-creation.patch @@ -6,22 +6,22 @@ Subject: [PATCH] Avoid blocking on Network Manager creation Per Paper issue 294 diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index dbbca784fe45b7099f683745b36f5c195ca4c2af..d870fbec236a3660f12e0f45cf9431067b18468b 100644 +index dbbca784fe45b7099f683745b36f5c195ca4c2af..187b2cf175ba5cea94158d29b53993dc5a7c5b94 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -61,6 +61,15 @@ public class ServerConnectionListener { public volatile boolean running; private final List channels = Collections.synchronizedList(Lists.newArrayList()); final List connections = Collections.synchronizedList(Lists.newArrayList()); -+ // Paper start - prevent blocking on adding a new network manager while the server is ticking ++ // Paper start - prevent blocking on adding a new connection while the server is ticking + private final java.util.Queue pending = new java.util.concurrent.ConcurrentLinkedQueue<>(); + private final void addPending() { -+ Connection manager = null; -+ while ((manager = pending.poll()) != null) { -+ connections.add(manager); ++ Connection connection; ++ while ((connection = pending.poll()) != null) { ++ connections.add(connection); + } + } -+ // Paper end ++ // Paper end - prevent blocking on adding a new connection while the server is ticking public ServerConnectionListener(MinecraftServer server) { this.server = server; @@ -31,7 +31,7 @@ index dbbca784fe45b7099f683745b36f5c195ca4c2af..d870fbec236a3660f12e0f45cf943106 - ServerConnectionListener.this.connections.add(object); + //ServerConnectionListener.this.connections.add(object); // Paper -+ pending.add(object); // Paper ++ pending.add(object); // Paper - prevent blocking on adding a new connection while the server is ticking ((Connection) object).configurePacketHandler(channelpipeline); ((Connection) object).setListenerForServerboundHandshake(new ServerHandshakePacketListenerImpl(ServerConnectionListener.this.server, (Connection) object)); } @@ -39,7 +39,7 @@ index dbbca784fe45b7099f683745b36f5c195ca4c2af..d870fbec236a3660f12e0f45cf943106 synchronized (this.connections) { // Spigot Start -+ this.addPending(); // Paper ++ this.addPending(); // Paper - prevent blocking on adding a new connection while the server is ticking // This prevents players from 'gaming' the server, and strategically relogging to increase their position in the tick order if ( org.spigotmc.SpigotConfig.playerShuffle > 0 && MinecraftServer.currentTick % org.spigotmc.SpigotConfig.playerShuffle == 0 ) { diff --git a/patches/server/0106-Optimise-BlockState-s-hashCode-equals.patch b/patches/server/0106-Optimise-BlockState-s-hashCode-equals.patch index c2a7785d0570..b303f4e71f22 100644 --- a/patches/server/0106-Optimise-BlockState-s-hashCode-equals.patch +++ b/patches/server/0106-Optimise-BlockState-s-hashCode-equals.patch @@ -9,7 +9,7 @@ object identity checks safely. Use a simpler optimized hashcode diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java -index 3084343b724098de9791bb74ffb037a499c0c430..bf7ed22094ac92a152e522bafccffb9589f84343 100644 +index 3084343b724098de9791bb74ffb037a499c0c430..8da64429eaf083578c672cd34f52dd42389ff396 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java @@ -30,8 +30,7 @@ public class BooleanProperty extends Property { @@ -18,12 +18,12 @@ index 3084343b724098de9791bb74ffb037a499c0c430..bf7ed22094ac92a152e522bafccffb95 - @Override - public boolean equals(Object object) { -+ public boolean equals_unused(Object object) { // Paper ++ public boolean equals_unused(Object object) { // Paper - Perf: Optimize hashCode/equals if (this == object) { return true; } else { diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java -index 647e295c7761b95db6da28f6fd043ec963f27872..2d69d1c17f734ee38667d51e6fd0a268211ec595 100644 +index 647e295c7761b95db6da28f6fd043ec963f27872..0a7a6c0e7635d0ada101074d4229df7edc6dd31b 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java @@ -45,8 +45,7 @@ public class EnumProperty & StringRepresentable> extends Prope @@ -32,12 +32,12 @@ index 647e295c7761b95db6da28f6fd043ec963f27872..2d69d1c17f734ee38667d51e6fd0a268 - @Override - public boolean equals(Object object) { -+ public boolean equals_unused(Object object) { // Paper ++ public boolean equals_unused(Object object) { // Paper - Perf: Optimize hashCode/equals if (this == object) { return true; } else { diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java -index d6c1b1817ba79a652c4094f003a7d899d4939971..33268d953b30d384564eee6dfab2a37fa722e465 100644 +index d6c1b1817ba79a652c4094f003a7d899d4939971..cbe6e4579cc55a427dd8f8fe403478faf6d35b8f 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java @@ -35,8 +35,7 @@ public class IntegerProperty extends Property { @@ -46,12 +46,12 @@ index d6c1b1817ba79a652c4094f003a7d899d4939971..33268d953b30d384564eee6dfab2a37f - @Override - public boolean equals(Object object) { -+ public boolean equals_unused(Object object) { // Paper ++ public boolean equals_unused(Object object) { // Paper - Perf: Optimize hashCode/equals if (this == object) { return true; } else { diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java -index d1f2e29623b15fdb99ba082fd757a54fd4713761..66b8e23d799adaf872233ea44c54330d75135544 100644 +index d1f2e29623b15fdb99ba082fd757a54fd4713761..08c2e4ba9147fbea41e0fce26ad20586832a525b 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java @@ -70,14 +70,7 @@ public abstract class Property> { @@ -66,7 +66,7 @@ index d1f2e29623b15fdb99ba082fd757a54fd4713761..66b8e23d799adaf872233ea44c54330d - Property property = (Property)object; - return this.clazz.equals(property.clazz) && this.name.equals(property.name); - } -+ return this == object; // Paper ++ return this == object; // Paper - Perf: Optimize hashCode/equals } @Override diff --git a/patches/server/0107-Configurable-packet-in-spam-threshold.patch b/patches/server/0107-Configurable-packet-in-spam-threshold.patch index aa06bfc28fa9..b23494003a7f 100644 --- a/patches/server/0107-Configurable-packet-in-spam-threshold.patch +++ b/patches/server/0107-Configurable-packet-in-spam-threshold.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable packet in spam threshold diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index fe6a995331ba489911886047130861496d75979a..4300fd30f782a2fe32519f7e27edff292ca46ef6 100644 +index 21d3b837b6875dd9833a70f6f8bca2070016c5a0..9d23e60b166caf31856b2592f844af7d6ac68469 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1536,13 +1536,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -16,12 +16,12 @@ index fe6a995331ba489911886047130861496d75979a..4300fd30f782a2fe32519f7e27edff29 private boolean checkLimit(long timestamp) { - if (this.lastLimitedPacket != -1 && timestamp - this.lastLimitedPacket < 30 && this.limitedPackets++ >= 4) { -+ if (this.lastLimitedPacket != -1 && timestamp - this.lastLimitedPacket < getSpamThreshold() && this.limitedPackets++ >= 8) { // Paper - Use threshold, raise packet limit to 8 ++ if (this.lastLimitedPacket != -1 && timestamp - this.lastLimitedPacket < getSpamThreshold() && this.limitedPackets++ >= 8) { // Paper - Configurable threshold; raise packet limit to 8 return false; } - if (this.lastLimitedPacket == -1 || timestamp - this.lastLimitedPacket >= 30) { -+ if (this.lastLimitedPacket == -1 || timestamp - this.lastLimitedPacket >= getSpamThreshold()) { // Paper ++ if (this.lastLimitedPacket == -1 || timestamp - this.lastLimitedPacket >= getSpamThreshold()) { // Paper - Configurable threshold this.lastLimitedPacket = timestamp; this.limitedPackets = 0; return true; diff --git a/patches/server/0109-Add-EntityZapEvent.patch b/patches/server/0109-Add-EntityZapEvent.patch index 93b813b3f615..c1935787f42f 100644 --- a/patches/server/0109-Add-EntityZapEvent.patch +++ b/patches/server/0109-Add-EntityZapEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityZapEvent diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 22f7318711041bfc2847d519933c46b9fd523d01..505e0031f2783192f1146b1b00249e7891c4f1ef 100644 +index 22f7318711041bfc2847d519933c46b9fd523d01..4034b8e7503f611dc9be121d8da2020ae7155b8c 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -851,10 +851,17 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -13,22 +13,22 @@ index 22f7318711041bfc2847d519933c46b9fd523d01..505e0031f2783192f1146b1b00249e78 public void thunderHit(ServerLevel world, LightningBolt lightning) { if (world.getDifficulty() != Difficulty.PEACEFUL) { - Villager.LOGGER.info("Villager {} was struck by lightning {}.", this, lightning); -+ // Paper - move log down, event can cancel ++ // Paper - Add EntityZapEvent; move log down, event can cancel Witch entitywitch = (Witch) EntityType.WITCH.create(world); if (entitywitch != null) { -+ // Paper start ++ // Paper start - Add EntityZapEvent + if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityZapEvent(this, lightning, entitywitch).isCancelled()) { + return; + } + if (org.spigotmc.SpigotConfig.logVillagerDeaths) Villager.LOGGER.info("Villager {} was struck by lightning {}.", this, lightning); // Move down -+ // Paper end ++ // Paper end - Add EntityZapEvent + entitywitch.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot()); entitywitch.finalizeSpawn(world, world.getCurrentDifficultyAt(entitywitch.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData) null, (CompoundTag) null); entitywitch.setNoAi(this.isNoAi()); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 54c4a45d5f67c7ed6ce751b4985d9e920cf62008..6436da99daa22ace3cdee794d0dab09894c1d92c 100644 +index a0dc52c805a82e267b66502a480cf76bc82a20d4..18cd6963863d030e3c360f5e00e8786f28ee04b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1265,6 +1265,14 @@ public class CraftEventFactory { diff --git a/patches/server/0110-Filter-bad-tile-entity-nbt-data-from-falling-blocks.patch b/patches/server/0110-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch similarity index 77% rename from patches/server/0110-Filter-bad-tile-entity-nbt-data-from-falling-blocks.patch rename to patches/server/0110-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch index 4586c9d06958..e97386237dea 100644 --- a/patches/server/0110-Filter-bad-tile-entity-nbt-data-from-falling-blocks.patch +++ b/patches/server/0110-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sat, 12 Nov 2016 23:25:22 -0600 -Subject: [PATCH] Filter bad tile entity nbt data from falling blocks +Subject: [PATCH] Filter bad block entity nbt data from falling blocks diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 6c4224e4752b655710c5b992d9acf9563b183483..9be45ff8139c9d385c1deb1200e3718ed3add801 100644 +index 6c4224e4752b655710c5b992d9acf9563b183483..ffed5f2295f60416535015a28635975aa2d211dd 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -334,7 +334,7 @@ public class FallingBlockEntity extends Entity { @@ -13,7 +13,7 @@ index 6c4224e4752b655710c5b992d9acf9563b183483..9be45ff8139c9d385c1deb1200e3718e } - if (nbt.contains("TileEntityData", 10)) { -+ if (nbt.contains("TileEntityData", 10) && !(this.level().paperConfig().entities.spawning.filterBadTileEntityNbtFromFallingBlocks && this.blockState.getBlock() instanceof net.minecraft.world.level.block.GameMasterBlock)) { // Paper ++ if (nbt.contains("TileEntityData", 10) && !(this.level().paperConfig().entities.spawning.filterBadTileEntityNbtFromFallingBlocks && this.blockState.getBlock() instanceof net.minecraft.world.level.block.GameMasterBlock)) { // Paper - Filter bad block entity nbt data from falling blocks this.blockData = nbt.getCompound("TileEntityData").copy(); } diff --git a/patches/server/0111-Cache-user-authenticator-threads.patch b/patches/server/0111-Cache-user-authenticator-threads.patch index caf58cd14fe6..ca76a3254f62 100644 --- a/patches/server/0111-Cache-user-authenticator-threads.patch +++ b/patches/server/0111-Cache-user-authenticator-threads.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cache user authenticator threads diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 55c15d942ddd230dec073039b7c5f95a14ff937c..d4e709b3e3df489d125ab20a98dc4b34bf61dcc9 100644 +index 55c15d942ddd230dec073039b7c5f95a14ff937c..c5b451a706240dbd6719e001825c6859fc1b2a49 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -49,6 +49,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -35,7 +35,7 @@ index 55c15d942ddd230dec073039b7c5f95a14ff937c..d4e709b3e3df489d125ab20a98dc4b34 - thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(ServerLoginPacketListenerImpl.LOGGER)); - thread.start(); + }); -+ // Paper end ++ // Paper end - Cache authenticator threads // CraftBukkit end } @@ -58,7 +58,7 @@ index 55c15d942ddd230dec073039b7c5f95a14ff937c..d4e709b3e3df489d125ab20a98dc4b34 - thread.setUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler(ServerLoginPacketListenerImpl.LOGGER)); - thread.start(); + }); -+ // Paper end ++ // Paper end - Cache authenticator threads } // CraftBukkit start diff --git a/patches/server/0116-Optimize-World.isLoaded-BlockPosition-Z.patch b/patches/server/0116-Optimize-Level.hasChunkAt-BlockPosition-Z.patch similarity index 81% rename from patches/server/0116-Optimize-World.isLoaded-BlockPosition-Z.patch rename to patches/server/0116-Optimize-Level.hasChunkAt-BlockPosition-Z.patch index 0a165f980533..11679e1ff13f 100644 --- a/patches/server/0116-Optimize-World.isLoaded-BlockPosition-Z.patch +++ b/patches/server/0116-Optimize-Level.hasChunkAt-BlockPosition-Z.patch @@ -1,12 +1,12 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 2 Dec 2016 00:11:43 -0500 -Subject: [PATCH] Optimize World.isLoaded(BlockPosition)Z +Subject: [PATCH] Optimize Level.hasChunkAt(BlockPosition)Z Reduce method invocations for World.isLoaded(BlockPosition)Z diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 48d3da58820c1d9259bc023ddd74e9632b3f62d1..e774f7930090e10889f13e8193d15e44a3b7637f 100644 +index f9e89722d50accecceea26aa12c312b9f331339a..7a5865f10b87022317b5eb3a1d711a0864da9a7f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -430,6 +430,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -15,7 +15,7 @@ index 48d3da58820c1d9259bc023ddd74e9632b3f62d1..e774f7930090e10889f13e8193d15e44 + @Override + public final boolean hasChunkAt(BlockPos pos) { -+ return getChunkIfLoaded(pos.getX() >> 4, pos.getZ() >> 4) != null; // Paper ++ return getChunkIfLoaded(pos.getX() >> 4, pos.getZ() >> 4) != null; // Paper - Perf: Optimize Level.hasChunkAt(BlockPosition)Z + } + public final boolean isLoadedAndInBounds(BlockPos blockposition) { // Paper - final for inline diff --git a/patches/server/0117-Bound-Treasure-Maps-to-World-Border.patch b/patches/server/0117-Bound-Treasure-Maps-to-World-Border.patch index a546d2ee4aa6..2154e105ae7f 100644 --- a/patches/server/0117-Bound-Treasure-Maps-to-World-Border.patch +++ b/patches/server/0117-Bound-Treasure-Maps-to-World-Border.patch @@ -11,14 +11,14 @@ that is outside happens to be closer, but unreachable, yet another reachable one is in border that would of been missed. diff --git a/src/main/java/net/minecraft/world/level/border/WorldBorder.java b/src/main/java/net/minecraft/world/level/border/WorldBorder.java -index 52325a99ea38530ad69a39ac0215233139f35268..dd74e8a034022fe72a1652f92712182b4910f651 100644 +index 52325a99ea38530ad69a39ac0215233139f35268..bf5ac907507bf3b5bfcef45b566c0bc12626e2c0 100644 --- a/src/main/java/net/minecraft/world/level/border/WorldBorder.java +++ b/src/main/java/net/minecraft/world/level/border/WorldBorder.java @@ -37,6 +37,18 @@ public class WorldBorder { return (double) (pos.getX() + 1) > this.getMinX() && (double) pos.getX() < this.getMaxX() && (double) (pos.getZ() + 1) > this.getMinZ() && (double) pos.getZ() < this.getMaxZ(); } -+ // Paper start ++ // Paper start - Bound treasure maps to world border + private final BlockPos.MutableBlockPos mutPos = new BlockPos.MutableBlockPos(); + public boolean isBlockInBounds(int chunkX, int chunkZ) { + this.mutPos.set(chunkX, 64, chunkZ); @@ -28,20 +28,20 @@ index 52325a99ea38530ad69a39ac0215233139f35268..dd74e8a034022fe72a1652f92712182b + this.mutPos.set(((chunkX << 4) + 15), 64, (chunkZ << 4) + 15); + return this.isWithinBounds(this.mutPos); + } -+ // Paper end ++ // Paper end - Bound treasure maps to world border + public boolean isWithinBounds(ChunkPos pos) { return (double) pos.getMaxBlockX() > this.getMinX() && (double) pos.getMinBlockX() < this.getMaxX() && (double) pos.getMaxBlockZ() > this.getMinZ() && (double) pos.getMinBlockZ() < this.getMaxZ(); } diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 5f4fa76fe3a1a0a4fc11064fcf57bfab20bd9729..4da303d7e15496f04f0e27bfb613176bc2a72b76 100644 +index e124ae2711bcd4681fe0b41bd266de67bef8344f..1eacb6998f99833441dd1dcb8301f25759675f53 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -217,6 +217,7 @@ public abstract class ChunkGenerator { while (iterator.hasNext()) { ChunkPos chunkcoordintpair = (ChunkPos) iterator.next(); -+ if (!world.getWorldBorder().isChunkInBounds(chunkcoordintpair.x, chunkcoordintpair.z)) { continue; } // Paper ++ if (!world.getWorldBorder().isChunkInBounds(chunkcoordintpair.x, chunkcoordintpair.z)) { continue; } // Paper - Bound treasure maps to world border blockposition_mutableblockposition.set(SectionPos.sectionToBlockCoord(chunkcoordintpair.x, 8), 32, SectionPos.sectionToBlockCoord(chunkcoordintpair.z, 8)); double d1 = blockposition_mutableblockposition.distSqr(center); diff --git a/patches/server/0118-Configurable-Cartographer-Treasure-Maps.patch b/patches/server/0118-Configurable-Cartographer-Treasure-Maps.patch index 66b897689943..61fc245ddd83 100644 --- a/patches/server/0118-Configurable-Cartographer-Treasure-Maps.patch +++ b/patches/server/0118-Configurable-Cartographer-Treasure-Maps.patch @@ -9,7 +9,7 @@ Also allow turning off treasure maps all together as they can eat up Map ID's which are limited in quantity. diff --git a/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java b/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java -index 43fb44b8cd164b0815335a32f04879b301a54728..8d0ff6e820af9a3f67e25298b34d1539841339d8 100644 +index 43fb44b8cd164b0815335a32f04879b301a54728..318b7c7cb2a88e8d4dc4456154431fe7bfe2e0dc 100644 --- a/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java +++ b/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java @@ -451,7 +451,8 @@ public class VillagerTrades { @@ -17,13 +17,13 @@ index 43fb44b8cd164b0815335a32f04879b301a54728..8d0ff6e820af9a3f67e25298b34d1539 } else { ServerLevel serverLevel = (ServerLevel)entity.level(); - BlockPos blockPos = serverLevel.findNearestMapStructure(this.destination, entity.blockPosition(), 100, true); -+ if (!serverLevel.paperConfig().environment.treasureMaps.enabled) return null; // Paper -+ BlockPos blockPos = serverLevel.findNearestMapStructure(this.destination, entity.blockPosition(), 100, !serverLevel.paperConfig().environment.treasureMaps.findAlreadyDiscoveredVillager); // Paper ++ if (!serverLevel.paperConfig().environment.treasureMaps.enabled) return null; // Paper - Configurable cartographer treasure maps ++ BlockPos blockPos = serverLevel.findNearestMapStructure(this.destination, entity.blockPosition(), 100, !serverLevel.paperConfig().environment.treasureMaps.findAlreadyDiscoveredVillager); // Paper - Configurable cartographer treasure maps if (blockPos != null) { ItemStack itemStack = MapItem.create(serverLevel, blockPos.getX(), blockPos.getZ(), (byte)2, true, true); MapItem.renderBiomePreviewMap(serverLevel, itemStack); diff --git a/src/main/java/net/minecraft/world/level/storage/loot/functions/ExplorationMapFunction.java b/src/main/java/net/minecraft/world/level/storage/loot/functions/ExplorationMapFunction.java -index dcc6da6641e78cd80bd148ba644475811a1fbf4d..d03d9451044bddd8403fccb9eb412c5d6803a518 100644 +index dcc6da6641e78cd80bd148ba644475811a1fbf4d..76b6544e75e52f931bed5bd9b25eda41957beaf7 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/functions/ExplorationMapFunction.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/functions/ExplorationMapFunction.java @@ -75,7 +75,16 @@ public class ExplorationMapFunction extends LootItemConditionalFunction { @@ -31,7 +31,7 @@ index dcc6da6641e78cd80bd148ba644475811a1fbf4d..d03d9451044bddd8403fccb9eb412c5d if (vec3 != null) { ServerLevel serverLevel = context.getLevel(); - BlockPos blockPos = serverLevel.findNearestMapStructure(this.destination, BlockPos.containing(vec3), this.searchRadius, this.skipKnownStructures); -+ // Paper start ++ // Paper start - Configurable cartographer treasure maps + if (!serverLevel.paperConfig().environment.treasureMaps.enabled) { + /* + * NOTE: I fear users will just get a plain map as their "treasure" @@ -39,8 +39,8 @@ index dcc6da6641e78cd80bd148ba644475811a1fbf4d..d03d9451044bddd8403fccb9eb412c5d + */ + return stack; + } -+ // Paper end -+ BlockPos blockPos = serverLevel.findNearestMapStructure(this.destination, BlockPos.containing(vec3), this.searchRadius, !serverLevel.paperConfig().environment.treasureMaps.findAlreadyDiscoveredLootTable.or(!this.skipKnownStructures)); // Paper ++ BlockPos blockPos = serverLevel.findNearestMapStructure(this.destination, BlockPos.containing(vec3), this.searchRadius, !serverLevel.paperConfig().environment.treasureMaps.findAlreadyDiscoveredLootTable.or(!this.skipKnownStructures)); ++ // Paper end - Configurable cartographer treasure maps if (blockPos != null) { ItemStack itemStack = MapItem.create(serverLevel, blockPos.getX(), blockPos.getZ(), this.zoom, true, true); MapItem.renderBiomePreviewMap(serverLevel, itemStack); diff --git a/patches/server/0119-Add-API-methods-to-control-if-armour-stands-can-move.patch b/patches/server/0119-Add-API-methods-to-control-if-armor-stands-can-move.patch similarity index 96% rename from patches/server/0119-Add-API-methods-to-control-if-armour-stands-can-move.patch rename to patches/server/0119-Add-API-methods-to-control-if-armor-stands-can-move.patch index 08f24fad4825..d2511f7abe4f 100644 --- a/patches/server/0119-Add-API-methods-to-control-if-armour-stands-can-move.patch +++ b/patches/server/0119-Add-API-methods-to-control-if-armor-stands-can-move.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: kashike Date: Wed, 21 Dec 2016 11:47:25 -0600 -Subject: [PATCH] Add API methods to control if armour stands can move +Subject: [PATCH] Add API methods to control if armor stands can move diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java diff --git a/patches/server/0121-Properly-fix-item-duplication-bug.patch b/patches/server/0121-Properly-fix-item-duplication-bug.patch index cfd0b688a181..a4ee97b7840f 100644 --- a/patches/server/0121-Properly-fix-item-duplication-bug.patch +++ b/patches/server/0121-Properly-fix-item-duplication-bug.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Properly fix item duplication bug Credit to prplz for figuring out the real issue diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d986c09392182335112040d4b6feae6a1a740d84..75d2213aadcbd1d0a49fd4c8cef2d4d51669c73d 100644 +index ac0b8d569a71098f92aa3d02f1f3d459e20755ab..ede3afab5c2a1d175a5beea85ffa362a3481a857 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2495,7 +2495,7 @@ public class ServerPlayer extends Player { @@ -14,12 +14,12 @@ index d986c09392182335112040d4b6feae6a1a740d84..75d2213aadcbd1d0a49fd4c8cef2d4d5 @Override public boolean isImmobile() { - return super.isImmobile() || !this.getBukkitEntity().isOnline(); -+ return super.isImmobile() || (this.connection != null && this.connection.isDisconnected()); // Paper ++ return super.isImmobile() || (this.connection != null && this.connection.isDisconnected()); // Paper - Fix duplication bugs } @Override diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 57a865c606a234556bf57486bbaa69ef54ce1370..1135da391523c464447198ce5e3743b8bd9d66e8 100644 +index 66497960995dc30abe60d26200979a78513ff2c6..4ff58939269f420fab18fea8fc3887e86297b99e 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -146,7 +146,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -27,7 +27,7 @@ index 57a865c606a234556bf57486bbaa69ef54ce1370..1135da391523c464447198ce5e3743b8 public final boolean isDisconnected() { - return !this.player.joining && !this.connection.isConnected(); -+ return (!this.player.joining && !this.connection.isConnected()) || this.processedDisconnect; // Paper ++ return (!this.player.joining && !this.connection.isConnected()) || this.processedDisconnect; // Paper - Fix duplication bugs } // CraftBukkit end diff --git a/patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch index d88b54d76a19..2759e67157a1 100644 --- a/patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch +++ b/patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch @@ -7,7 +7,7 @@ Provides counts without the ineffeciency of using .getEntities().size() which creates copy of the collections. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 720d1f9efffbc5fc74c31899f103e599aa4d3acf..2afa7c73836ddbad936cb98bde241cb91acc11b2 100644 +index 7a5865f10b87022317b5eb3a1d711a0864da9a7f..35a87775736a40ba7b4c04116c8fe007512d6161 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -119,7 +119,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -15,12 +15,12 @@ index 720d1f9efffbc5fc74c31899f103e599aa4d3acf..2afa7c73836ddbad936cb98bde241cb9 public static final int MAX_ENTITY_SPAWN_Y = 20000000; public static final int MIN_ENTITY_SPAWN_Y = -20000000; - protected final List blockEntityTickers = Lists.newArrayList(); -+ protected final List blockEntityTickers = Lists.newArrayList(); public final int getTotalTileEntityTickers() { return this.blockEntityTickers.size(); } // Paper ++ public final List blockEntityTickers = Lists.newArrayList(); // Paper - public protected final NeighborUpdater neighborUpdater; private final List pendingBlockEntityTickers = Lists.newArrayList(); private boolean tickingBlockEntities; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0a7774c4b10e6b53a78d0e7f8fdc9dceb4c95a0e..5652d7b30c7c22daef128fa49dc9dda20d2ca96b 100644 +index 3c7fdf150f39a75794a6927bd545c3eb9c480d6f..e60992a618f05174f887ce85741a127161cef408 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -157,6 +157,56 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -55,7 +55,7 @@ index 0a7774c4b10e6b53a78d0e7f8fdc9dceb4c95a0e..5652d7b30c7c22daef128fa49dc9dda2 + + @Override + public int getTickableTileEntityCount() { -+ return world.getTotalTileEntityTickers(); ++ return world.blockEntityTickers.size(); + } + + @Override diff --git a/patches/server/0126-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/server/0126-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch index 8ba21c023aa4..af577e50e999 100644 --- a/patches/server/0126-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch +++ b/patches/server/0126-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch @@ -21,10 +21,10 @@ index 4f3c82f1b5ae24d5f70318fa96fae2a58ce7fd9f..45236a077d798d6a257a2e982b589011 return true; diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 59bad6c92cc421dd05c7315e2ab694a669433ab4..b49e48fa6dd37b5eddb45877be90018ec9d23b0e 100644 +index 59bad6c92cc421dd05c7315e2ab694a669433ab4..ae70ad9d6c02fcb5631a3c45db283b29844bbb0d 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -@@ -39,13 +39,67 @@ public class ExperienceOrb extends Entity { +@@ -39,9 +39,63 @@ public class ExperienceOrb extends Entity { public int value; private int count; private Player followingPlayer; @@ -35,11 +35,11 @@ index 59bad6c92cc421dd05c7315e2ab694a669433ab4..b49e48fa6dd37b5eddb45877be90018e + public java.util.UUID triggerEntityId; + public org.bukkit.entity.ExperienceOrb.SpawnReason spawnReason = org.bukkit.entity.ExperienceOrb.SpawnReason.UNKNOWN; + -+ private void loadPaperNBT(CompoundTag nbttagcompound) { -+ if (!nbttagcompound.contains("Paper.ExpData", net.minecraft.nbt.Tag.TAG_COMPOUND)) { ++ private void loadPaperNBT(CompoundTag tag) { ++ if (!tag.contains("Paper.ExpData", net.minecraft.nbt.Tag.TAG_COMPOUND)) { + return; + } -+ CompoundTag comp = nbttagcompound.getCompound("Paper.ExpData"); ++ CompoundTag comp = tag.getCompound("Paper.ExpData"); + if (comp.hasUUID("source")) { + this.sourceEntityId = comp.getUUID("source"); + } @@ -55,7 +55,7 @@ index 59bad6c92cc421dd05c7315e2ab694a669433ab4..b49e48fa6dd37b5eddb45877be90018e + } + } + } -+ private void savePaperNBT(CompoundTag nbttagcompound) { ++ private void savePaperNBT(CompoundTag tag) { + CompoundTag comp = new CompoundTag(); + if (this.sourceEntityId != null) { + comp.putUUID("source", this.sourceEntityId); @@ -66,7 +66,7 @@ index 59bad6c92cc421dd05c7315e2ab694a669433ab4..b49e48fa6dd37b5eddb45877be90018e + if (this.spawnReason != null && this.spawnReason != org.bukkit.entity.ExperienceOrb.SpawnReason.UNKNOWN) { + comp.putString("reason", this.spawnReason.name()); + } -+ nbttagcompound.put("Paper.ExpData", comp); ++ tag.put("Paper.ExpData", comp); + } + @io.papermc.paper.annotation.DoNotUse @@ -75,25 +75,19 @@ index 59bad6c92cc421dd05c7315e2ab694a669433ab4..b49e48fa6dd37b5eddb45877be90018e + this(world, x, y, z, amount, null, null); + } + -+ public ExperienceOrb(Level world, double d0, double d1, double d2, int i, @javax.annotation.Nullable org.bukkit.entity.ExperienceOrb.SpawnReason reason, @javax.annotation.Nullable Entity triggerId) { -+ this(world, d0, d1, d2, i, reason, triggerId, null); ++ public ExperienceOrb(Level world, double x, double y, double z, int amount, @javax.annotation.Nullable org.bukkit.entity.ExperienceOrb.SpawnReason reason, @javax.annotation.Nullable Entity triggerId) { ++ this(world, x, y, z, amount, reason, triggerId, null); + } + -+ public ExperienceOrb(Level world, double d0, double d1, double d2, int i, @javax.annotation.Nullable org.bukkit.entity.ExperienceOrb.SpawnReason reason, @javax.annotation.Nullable Entity triggerId, @javax.annotation.Nullable Entity sourceId) { ++ public ExperienceOrb(Level world, double x, double y, double z, int amount, @javax.annotation.Nullable org.bukkit.entity.ExperienceOrb.SpawnReason reason, @javax.annotation.Nullable Entity triggerId, @javax.annotation.Nullable Entity sourceId) { this(EntityType.EXPERIENCE_ORB, world); -- this.setPos(x, y, z); + this.sourceEntityId = sourceId != null ? sourceId.getUUID() : null; + this.triggerEntityId = triggerId != null ? triggerId.getUUID() : null; + this.spawnReason = reason != null ? reason : org.bukkit.entity.ExperienceOrb.SpawnReason.UNKNOWN; + // Paper end -+ this.setPos(d0, d1, d2); + this.setPos(x, y, z); this.setYRot((float) (this.random.nextDouble() * 360.0D)); this.setDeltaMovement((this.random.nextDouble() * 0.20000000298023224D - 0.10000000149011612D) * 2.0D, this.random.nextDouble() * 0.2D * 2.0D, (this.random.nextDouble() * 0.20000000298023224D - 0.10000000149011612D) * 2.0D); -- this.value = amount; -+ this.value = i; - } - - public ExperienceOrb(EntityType type, Level world) { @@ -160,12 +214,20 @@ public class ExperienceOrb extends Entity { } @@ -227,7 +221,7 @@ index 2471800014d1661c2f422e5a24f0f3b00fa838f2..f5ce6423b8146cc741023e15004fe981 if (this.dragonFight != null) { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 505e0031f2783192f1146b1b00249e7891c4f1ef..a0a313fa5e7e4e1973c020d0262e34381a19dea7 100644 +index 4034b8e7503f611dc9be121d8da2020ae7155b8c..f0d5e45d0d6ac51106379d20690d34a032a24c39 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -638,7 +638,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler diff --git a/patches/server/0127-Cap-Entity-Collisions.patch b/patches/server/0127-Cap-Entity-Collisions.patch index 3a5642f78d93..630d692f835c 100644 --- a/patches/server/0127-Cap-Entity-Collisions.patch +++ b/patches/server/0127-Cap-Entity-Collisions.patch @@ -12,33 +12,33 @@ just as it does in Vanilla, but entity pushing logic will be capped. You can set this to 0 to disable collisions. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index edbfc7bc783833a62542a4515dde13034ae29c10..515d0f3a7ea6f19ce8f1cb16d798d898894be445 100644 +index edbfc7bc783833a62542a4515dde13034ae29c10..fbdb708379dc77ce90ca2ca90ebd0bd49ebec12f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -394,6 +394,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void inactiveTick() { } // Spigot end // Paper start -+ protected int numCollisions = 0; // Paper ++ protected int numCollisions = 0; // Paper - Cap entity collisions @javax.annotation.Nullable private org.bukkit.util.Vector origin; @javax.annotation.Nullable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 77a4122cf5a11b29b14a7fc4ac6420ccea49af1b..202e3b66a81de2f76d5a8bba3538f1554b8debf3 100644 +index 77a4122cf5a11b29b14a7fc4ac6420ccea49af1b..e2635fc1a80629f8ea1ddd406785be8b07f4f140 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3348,10 +3348,12 @@ public abstract class LivingEntity extends Entity implements Attackable { } Iterator iterator1 = list.iterator(); -+ this.numCollisions = Math.max(0, this.numCollisions - this.level().paperConfig().collisions.maxEntityCollisions); // Paper ++ this.numCollisions = Math.max(0, this.numCollisions - this.level().paperConfig().collisions.maxEntityCollisions); // Paper - Cap entity collisions - while (iterator1.hasNext()) { -+ while (iterator1.hasNext() && this.numCollisions < this.level().paperConfig().collisions.maxEntityCollisions) { // Paper ++ while (iterator1.hasNext() && this.numCollisions < this.level().paperConfig().collisions.maxEntityCollisions) { // Paper - Cap entity collisions Entity entity1 = (Entity) iterator1.next(); - -+ entity1.numCollisions++; // Paper -+ this.numCollisions++; // Paper ++ entity1.numCollisions++; // Paper - Cap entity collisions ++ this.numCollisions++; // Paper - Cap entity collisions this.doPush(entity1); } } diff --git a/patches/server/0130-Add-option-to-make-parrots-stay-on-shoulders-despite.patch b/patches/server/0130-Add-option-to-make-parrots-stay-on-shoulders-despite.patch index 4956a8d9a7d7..62d5f2a25590 100644 --- a/patches/server/0130-Add-option-to-make-parrots-stay-on-shoulders-despite.patch +++ b/patches/server/0130-Add-option-to-make-parrots-stay-on-shoulders-despite.patch @@ -14,7 +14,7 @@ To be converted into a Paper-API event at some point in the future? public net.minecraft.world.entity.player.Player removeEntitiesOnShoulder()V diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 121cbb94863b7bd6d47ff73ffafb2ef600ad6a96..c90bcd4df41c847c6a33a33efb4c6383894b8a67 100644 +index 4c689d2a794e53a2d9915f1ba46435c41bfa74e9..03bc7ae947360a721fef5a772ecadb4a18ac73b2 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2184,6 +2184,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -22,24 +22,24 @@ index 121cbb94863b7bd6d47ff73ffafb2ef600ad6a96..c90bcd4df41c847c6a33a33efb4c6383 case PRESS_SHIFT_KEY: this.player.setShiftKeyDown(true); + -+ // Paper start - Hang on! ++ // Paper start - Add option to make parrots stay + if (this.player.level().paperConfig().entities.behavior.parrotsAreUnaffectedByPlayerMovement) { + this.player.removeEntitiesOnShoulder(); + } -+ // Paper end ++ // Paper end - Add option to make parrots stay + break; case RELEASE_SHIFT_KEY: this.player.setShiftKeyDown(false); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index c2725113b3ec36a79c88bcf9837c0ef2955b613e..09d5561deb40549ce6a7661ebfd9b9db24db0d12 100644 +index c2725113b3ec36a79c88bcf9837c0ef2955b613e..45b56ca0ec79669cb41d0a14603e2f9ba140c1f1 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -589,6 +589,7 @@ public abstract class Player extends LivingEntity { this.playShoulderEntityAmbientSound(this.getShoulderEntityLeft()); this.playShoulderEntityAmbientSound(this.getShoulderEntityRight()); if (!this.level().isClientSide && (this.fallDistance > 0.5F || this.isInWater()) || this.abilities.flying || this.isSleeping() || this.isInPowderSnow) { -+ if (!this.level().paperConfig().entities.behavior.parrotsAreUnaffectedByPlayerMovement) // Paper - Hang on! ++ if (!this.level().paperConfig().entities.behavior.parrotsAreUnaffectedByPlayerMovement) // Paper - Add option to make parrots stay this.removeEntitiesOnShoulder(); } diff --git a/patches/server/0133-provide-a-configurable-option-to-disable-creeper-lin.patch b/patches/server/0133-provide-a-configurable-option-to-disable-creeper-lin.patch index f21ade656c39..6b82339bcc0e 100644 --- a/patches/server/0133-provide-a-configurable-option-to-disable-creeper-lin.patch +++ b/patches/server/0133-provide-a-configurable-option-to-disable-creeper-lin.patch @@ -6,7 +6,7 @@ Subject: [PATCH] provide a configurable option to disable creeper lingering diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 25c4092d8d28b04b7ba5caee592b96530a08227c..6594d501f51d18f5850999cceb9febfe206ec596 100644 +index 1c6ebab20ac03f0553e2a25eff10171a39e06a3f..db7485806d90fe90f806736ac55143564488467d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -287,7 +287,7 @@ public class Creeper extends Monster implements PowerableMob { @@ -14,7 +14,7 @@ index 25c4092d8d28b04b7ba5caee592b96530a08227c..6594d501f51d18f5850999cceb9febfe Collection collection = this.getActiveEffects(); - if (!collection.isEmpty()) { -+ if (!collection.isEmpty() && !this.level().paperConfig().entities.behavior.disableCreeperLingeringEffect) { // Paper ++ if (!collection.isEmpty() && !this.level().paperConfig().entities.behavior.disableCreeperLingeringEffect) { // Paper - Option to disable creeper lingering effect AreaEffectCloud entityareaeffectcloud = new AreaEffectCloud(this.level(), this.getX(), this.getY(), this.getZ()); entityareaeffectcloud.setOwner(this); // CraftBukkit diff --git a/patches/server/0134-Item-canEntityPickup.patch b/patches/server/0134-Item-canEntityPickup.patch index 5494504d8d61..67309fbb0bdc 100644 --- a/patches/server/0134-Item-canEntityPickup.patch +++ b/patches/server/0134-Item-canEntityPickup.patch @@ -5,30 +5,30 @@ Subject: [PATCH] Item#canEntityPickup diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 3d054cfa5050f4b75eab4a18035655c1bfd9290b..fa0e96fd884a0338b44f68506b1d3ee6c42f17b1 100644 +index 3d054cfa5050f4b75eab4a18035655c1bfd9290b..374a91e712c2a6a8ad87d1047bb07d44eaa9908a 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -670,6 +670,11 @@ public abstract class Mob extends LivingEntity implements Targeting { ItemEntity entityitem = (ItemEntity) iterator.next(); if (!entityitem.isRemoved() && !entityitem.getItem().isEmpty() && !entityitem.hasPickUpDelay() && this.wantsToPickUp(entityitem.getItem())) { -+ // Paper start ++ // Paper start - Item#canEntityPickup + if (!entityitem.canMobPickup) { + continue; + } -+ // Paper end ++ // Paper end - Item#canEntityPickup this.pickUpItem(entityitem); } } diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 5bb26ca5c81635d27ca59352d5184d8b4300e0b5..6905090f030c86f640e841e94c32ad90acb75d2a 100644 +index 5bb26ca5c81635d27ca59352d5184d8b4300e0b5..6c2e22f1b2b1ce2903c0ee1d2dbde96b40bd1624 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -54,6 +54,7 @@ public class ItemEntity extends Entity implements TraceableEntity { public UUID target; public final float bobOffs; private int lastTick = MinecraftServer.currentTick - 1; // CraftBukkit -+ public boolean canMobPickup = true; // Paper ++ public boolean canMobPickup = true; // Paper - Item#canEntityPickup public ItemEntity(EntityType type, Level world) { super(type, world); diff --git a/patches/server/0135-PlayerPickupItemEvent-setFlyAtPlayer.patch b/patches/server/0135-PlayerPickupItemEvent-setFlyAtPlayer.patch index 1619a5d25533..ced79db4ddca 100644 --- a/patches/server/0135-PlayerPickupItemEvent-setFlyAtPlayer.patch +++ b/patches/server/0135-PlayerPickupItemEvent-setFlyAtPlayer.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerPickupItemEvent#setFlyAtPlayer diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 6905090f030c86f640e841e94c32ad90acb75d2a..afb01096f41ed76e431848466d02aaefdc0c69c7 100644 +index 6c2e22f1b2b1ce2903c0ee1d2dbde96b40bd1624..1d7d3a7e3b4153b97d69eb1ae6e43a43a4ebabd4 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -423,6 +423,7 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -35,7 +35,7 @@ index 6905090f030c86f640e841e94c32ad90acb75d2a..afb01096f41ed76e431848466d02aaef // CraftBukkit end if (this.pickupDelay == 0 && (this.target == null || this.target.equals(player.getUUID())) && player.getInventory().add(itemstack)) { -+ if (flyAtPlayer) // Paper ++ if (flyAtPlayer) // Paper - PlayerPickupItemEvent player.take(this, i); if (itemstack.isEmpty()) { this.discard(); diff --git a/patches/server/0136-PlayerAttemptPickupItemEvent.patch b/patches/server/0136-PlayerAttemptPickupItemEvent.patch index c0836a703c5f..55df96a705e5 100644 --- a/patches/server/0136-PlayerAttemptPickupItemEvent.patch +++ b/patches/server/0136-PlayerAttemptPickupItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerAttemptPickupItemEvent diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 6847d100a6fe2b57d7986b121f5ce0f981cfa415..18c9c7c2b0605bee2936fbb084108dd9791f7ebe 100644 +index 1d7d3a7e3b4153b97d69eb1ae6e43a43a4ebabd4..1523be0c9f7ae3b8015b8017797601489c068e8c 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -36,6 +36,7 @@ import org.bukkit.entity.Player; @@ -20,7 +20,7 @@ index 6847d100a6fe2b57d7986b121f5ce0f981cfa415..18c9c7c2b0605bee2936fbb084108dd9 int remaining = i - canHold; boolean flyAtPlayer = false; // Paper -+ // Paper start ++ // Paper start - PlayerAttemptPickupItemEvent + if (this.pickupDelay <= 0) { + PlayerAttemptPickupItemEvent attemptEvent = new PlayerAttemptPickupItemEvent((org.bukkit.entity.Player) player.getBukkitEntity(), (org.bukkit.entity.Item) this.getBukkitEntity(), remaining); + this.level().getCraftServer().getPluginManager().callEvent(attemptEvent); @@ -34,7 +34,7 @@ index 6847d100a6fe2b57d7986b121f5ce0f981cfa415..18c9c7c2b0605bee2936fbb084108dd9 + return; + } + } -+ // Paper end ++ // Paper end - PlayerAttemptPickupItemEvent + if (this.pickupDelay <= 0 && canHold > 0) { itemstack.setCount(canHold); diff --git a/patches/server/0137-Do-not-submit-profile-lookups-to-worldgen-threads.patch b/patches/server/0137-Do-not-submit-profile-lookups-to-worldgen-threads.patch index 42071875fc77..36723921bcc0 100644 --- a/patches/server/0137-Do-not-submit-profile-lookups-to-worldgen-threads.patch +++ b/patches/server/0137-Do-not-submit-profile-lookups-to-worldgen-threads.patch @@ -37,7 +37,7 @@ index 114f4017c4133042178c57d424f10079163835dd..aa52b271bd556a29f774fde375b713d0 private static final int LINEAR_LOOKUP_THRESHOLD = 8; public static final long NANOS_PER_MILLI = 1000000L; diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 09de1ca3802e97442bc090db0cc87fd833ad3a9f..9c500642eb2b59bf9aabd6b5d563e5fb15603056 100644 +index 64f7c3180a745a62bb5d71a42668cc67b5d56c3a..bbd8cf8b9f51cb5ca881a54df2e6d6227c0bfd6c 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -169,7 +169,7 @@ public class GameProfileCache { @@ -45,12 +45,12 @@ index 09de1ca3802e97442bc090db0cc87fd833ad3a9f..9c500642eb2b59bf9aabd6b5d563e5fb CompletableFuture> completablefuture1 = CompletableFuture.supplyAsync(() -> { return this.get(username); - }, Util.backgroundExecutor()).whenCompleteAsync((optional, throwable) -> { -+ }, Util.PROFILE_EXECUTOR).whenCompleteAsync((optional, throwable) -> { // Paper - not a good idea to use BLOCKING OPERATIONS on the worldgen executor ++ }, Util.PROFILE_EXECUTOR).whenCompleteAsync((optional, throwable) -> { // Paper - don't submit BLOCKING PROFILE LOOKUPS to the world gen thread this.requests.remove(username); }, this.executor); diff --git a/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java -index bffc770105800ba78c6d9bfb56ad9ad425f19910..92b770d10f34596ce52392a0db1ccd825108730b 100644 +index bffc770105800ba78c6d9bfb56ad9ad425f19910..d0b3a836de9830a4da534bedd9f94a16a82ef9c6 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java @@ -80,7 +80,7 @@ public class SkullBlockEntity extends BlockEntity { @@ -58,12 +58,12 @@ index bffc770105800ba78c6d9bfb56ad9ad425f19910..92b770d10f34596ce52392a0db1ccd82 return Optional.empty(); } - }, Util.backgroundExecutor()); -+ }, Util.PROFILE_EXECUTOR); // Paper - not a good idea to use BLOCKING OPERATIONS on the worldgen executor ++ }, Util.PROFILE_EXECUTOR); // Paper - don't submit BLOCKING PROFILE LOOKUPS to the world gen thread } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java -index 358af0121ce3d87a9f51da2bae0699034c1560b4..91e913f8652584ffab44c44d10c0e0c47707e261 100644 +index 358af0121ce3d87a9f51da2bae0699034c1560b4..edd340c66ea8cec1c76ba29f1deab14c4784a7e5 100644 --- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java +++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java @@ -122,7 +122,7 @@ public final class CraftPlayerProfile implements PlayerProfile { @@ -71,7 +71,7 @@ index 358af0121ce3d87a9f51da2bae0699034c1560b4..91e913f8652584ffab44c44d10c0e0c4 @Override public CompletableFuture update() { - return CompletableFuture.supplyAsync(this::getUpdatedProfile, Util.backgroundExecutor()); -+ return CompletableFuture.supplyAsync(this::getUpdatedProfile, Util.PROFILE_EXECUTOR); // Paper - not a good idea to use BLOCKING OPERATIONS on the worldgen executor ++ return CompletableFuture.supplyAsync(this::getUpdatedProfile, Util.PROFILE_EXECUTOR); // Paper - don't submit BLOCKING PROFILE LOOKUPS to the world gen thread } private CraftPlayerProfile getUpdatedProfile() { diff --git a/patches/server/0139-Add-UnknownCommandEvent.patch b/patches/server/0139-Add-UnknownCommandEvent.patch index 79dd3b5bbad5..38cfb8b04de9 100644 --- a/patches/server/0139-Add-UnknownCommandEvent.patch +++ b/patches/server/0139-Add-UnknownCommandEvent.patch @@ -6,33 +6,33 @@ Subject: [PATCH] Add UnknownCommandEvent Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index b836a85ce3a4374e94061fe9368e86a61522615d..ae7be8678ab2859b8eb5e04bc31d76271a74c66b 100644 +index f6938c35ac6f6116084d3e7ec9cdc918f20b6f61..edf49f2d9921b4517fb98929d842f7a62c5549df 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -334,8 +334,13 @@ public class CommandSourceStack implements ExecutionCommandSource dispatcher = new com.mojang.brigadier.CommandDispatcher(); -+ public final java.util.List> vanillaCommandNodes = new java.util.ArrayList<>(); // Paper ++ public final java.util.List> vanillaCommandNodes = new java.util.ArrayList<>(); // Paper - Add UnknownCommandEvent public Commands(Commands.CommandSelection environment, CommandBuildContext commandRegistryAccess) { this(); // CraftBukkit @@ -40,7 +40,7 @@ index 495a7b713a7ab9c19aad34512b76523bad43b89d..5a1accff1a7dc2ab40224ec0952a287c if (environment.includeIntegrated) { PublishCommand.register(this.dispatcher); } -+ this.vanillaCommandNodes.addAll(this.dispatcher.getRoot().getChildren()); // Paper ++ this.vanillaCommandNodes.addAll(this.dispatcher.getRoot().getChildren()); // Paper - Add UnknownCommandEvent // CraftBukkit start } @@ -49,7 +49,7 @@ index 495a7b713a7ab9c19aad34512b76523bad43b89d..5a1accff1a7dc2ab40224ec0952a287c return "/" + s; }); - ContextChain contextchain = Commands.finishParsing(parseresults, s, commandlistenerwrapper, label); // CraftBukkit -+ ContextChain contextchain = this.finishParsing(parseresults, s, commandlistenerwrapper, label); // CraftBukkit // Paper - make finishParsing not static ++ ContextChain contextchain = this.finishParsing(parseresults, s, commandlistenerwrapper, label); // CraftBukkit // Paper - Add UnknownCommandEvent try { if (contextchain != null) { @@ -58,7 +58,7 @@ index 495a7b713a7ab9c19aad34512b76523bad43b89d..5a1accff1a7dc2ab40224ec0952a287c @Nullable - private static ContextChain finishParsing(ParseResults parseresults, String s, CommandSourceStack commandlistenerwrapper, String label) { // CraftBukkit -+ private ContextChain finishParsing(ParseResults parseresults, String s, CommandSourceStack commandlistenerwrapper, String label) { // CraftBukkit // Paper - make not static ++ private ContextChain finishParsing(ParseResults parseresults, String s, CommandSourceStack commandlistenerwrapper, String label) { // CraftBukkit // Paper - Add UnknownCommandEvent try { Commands.validateParseResults(parseresults); return (ContextChain) ContextChain.tryFlatten(parseresults.getContext().build(s)).orElseThrow(() -> { @@ -66,7 +66,7 @@ index 495a7b713a7ab9c19aad34512b76523bad43b89d..5a1accff1a7dc2ab40224ec0952a287c }); } catch (CommandSyntaxException commandsyntaxexception) { - commandlistenerwrapper.sendFailure(ComponentUtils.fromMessage(commandsyntaxexception.getRawMessage())); -+ // Paper start ++ // Paper start - Add UnknownCommandEvent + final net.kyori.adventure.text.TextComponent.Builder builder = net.kyori.adventure.text.Component.text(); + if ((parseresults.getContext().getNodes().isEmpty() || !this.vanillaCommandNodes.contains(parseresults.getContext().getNodes().get(0).getNode()))) { + if (!org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty()) { @@ -75,24 +75,16 @@ index 495a7b713a7ab9c19aad34512b76523bad43b89d..5a1accff1a7dc2ab40224ec0952a287c + } else { + // commandlistenerwrapper.sendFailure(ComponentUtils.fromMessage(commandsyntaxexception.getRawMessage())); + builder.color(net.kyori.adventure.text.format.NamedTextColor.RED).append(io.papermc.paper.brigadier.PaperBrigadier.componentFromMessage(commandsyntaxexception.getRawMessage())); -+ // Paper end ++ // Paper end - Add UnknownCommandEvent if (commandsyntaxexception.getInput() != null && commandsyntaxexception.getCursor() >= 0) { int i = Math.min(commandsyntaxexception.getInput().length(), commandsyntaxexception.getCursor()); MutableComponent ichatmutablecomponent = Component.empty().withStyle(ChatFormatting.GRAY).withStyle((chatmodifier) -> { -@@ -380,6 +391,7 @@ public class Commands { - ichatmutablecomponent.append(CommonComponents.ELLIPSIS); - } - -+ - ichatmutablecomponent.append(commandsyntaxexception.getInput().substring(Math.max(0, i - 10), i)); - if (i < commandsyntaxexception.getInput().length()) { - MutableComponent ichatmutablecomponent1 = Component.literal(commandsyntaxexception.getInput().substring(i)).withStyle(ChatFormatting.RED, ChatFormatting.UNDERLINE); -@@ -388,7 +400,18 @@ public class Commands { +@@ -388,7 +399,18 @@ public class Commands { } ichatmutablecomponent.append((Component) Component.translatable("command.context.here").withStyle(ChatFormatting.RED, ChatFormatting.ITALIC)); - commandlistenerwrapper.sendFailure(ichatmutablecomponent); -+ // Paper start ++ // Paper start - Add UnknownCommandEvent + // commandlistenerwrapper.sendFailure(ichatmutablecomponent); + builder + .append(net.kyori.adventure.text.Component.newline()) @@ -103,12 +95,12 @@ index 495a7b713a7ab9c19aad34512b76523bad43b89d..5a1accff1a7dc2ab40224ec0952a287c + org.bukkit.Bukkit.getServer().getPluginManager().callEvent(event); + if (event.message() != null) { + commandlistenerwrapper.sendFailure(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.message()), false); -+ // Paper end ++ // Paper end - Add UnknownCommandEvent } return null; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a4426373070ca065884ae80e6aa9215df89c741d..a41b39a7b8f6011327584d5556ddb304a6e32e4b 100644 +index f06afed5f786aad4415cd369903d97a0912dfac7..b56bfa447a15d56bf24c1bb4c05f74584cf37ad3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -527,6 +527,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0142-Block-player-logins-during-server-shutdown.patch b/patches/server/0142-Block-player-logins-during-server-shutdown.patch index 85cf55389a07..3de7220f1260 100644 --- a/patches/server/0142-Block-player-logins-during-server-shutdown.patch +++ b/patches/server/0142-Block-player-logins-during-server-shutdown.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Block player logins during server shutdown diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index db07502d4d7b73c0e74814334be6603121f60673..a738f70c9c2f8832277a239e6d79d91d663d4cf9 100644 +index c5b451a706240dbd6719e001825c6859fc1b2a49..33bd60b5ef7383061acf2da24cfee35b495ebfc7 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -74,6 +74,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -17,7 +17,7 @@ index db07502d4d7b73c0e74814334be6603121f60673..a738f70c9c2f8832277a239e6d79d91d + this.disconnect(org.bukkit.craftbukkit.util.CraftChatMessage.fromString(org.spigotmc.SpigotConfig.restartMessage)[0]); + return; + } -+ // Paper end ++ // Paper end - Do not allow logins while the server is shutting down if (this.state == ServerLoginPacketListenerImpl.State.VERIFYING) { this.verifyLoginAndFinishConnectionSetup((GameProfile) Objects.requireNonNull(this.authenticatedProfile)); } diff --git a/patches/server/0143-Entity-fromMobSpawner.patch b/patches/server/0143-Entity-fromMobSpawner.patch index de3adaf37778..130ee5def82f 100644 --- a/patches/server/0143-Entity-fromMobSpawner.patch +++ b/patches/server/0143-Entity-fromMobSpawner.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Entity#fromMobSpawner() diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 515d0f3a7ea6f19ce8f1cb16d798d898894be445..d66d30a016ac04d5f051e59ca168a6c2bb8794ab 100644 +index fbdb708379dc77ce90ca2ca90ebd0bd49ebec12f..4ccdb5ca52700249cb0a24dff186e8cf047df2bb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -395,6 +395,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Spigot end // Paper start - protected int numCollisions = 0; // Paper + protected int numCollisions = 0; // Paper - Cap entity collisions + public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable private org.bukkit.util.Vector origin; diff --git a/patches/server/0145-Implement-ensureServerConversions-API.patch b/patches/server/0145-ensureServerConversions-API.patch similarity index 97% rename from patches/server/0145-Implement-ensureServerConversions-API.patch rename to patches/server/0145-ensureServerConversions-API.patch index c4acab74e402..976464eb5418 100644 --- a/patches/server/0145-Implement-ensureServerConversions-API.patch +++ b/patches/server/0145-ensureServerConversions-API.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 4 May 2016 22:43:12 -0400 -Subject: [PATCH] Implement ensureServerConversions API +Subject: [PATCH] ensureServerConversions API This will take a Bukkit ItemStack and run it through any conversions a server process would perform on it, to ensure it meets latest minecraft expectations. diff --git a/patches/server/0147-ProfileWhitelistVerifyEvent.patch b/patches/server/0147-ProfileWhitelistVerifyEvent.patch index 46edc414f4a4..1ac23dfe6073 100644 --- a/patches/server/0147-ProfileWhitelistVerifyEvent.patch +++ b/patches/server/0147-ProfileWhitelistVerifyEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] ProfileWhitelistVerifyEvent diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ea7effdb4274c7e2c19d737a74b1fc5847b9888c..6e0a21935f9d5f35cbce72b32e0a89bb636804e2 100644 +index ea7effdb4274c7e2c19d737a74b1fc5847b9888c..29b4399e0f78067ee84748bb15b3978aa6bcd719 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -631,9 +631,9 @@ public abstract class PlayerList { @@ -15,7 +15,7 @@ index ea7effdb4274c7e2c19d737a74b1fc5847b9888c..6e0a21935f9d5f35cbce72b32e0a89bb - } else if (!this.isWhiteListed(gameprofile)) { - ichatmutablecomponent = Component.translatable("multiplayer.disconnect.not_whitelisted"); - event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.whitelistMessage)); // Spigot // Paper - Adventure -+ } else if (!this.isWhiteListed(gameprofile, event)) { // Paper ++ } else if (!this.isWhiteListed(gameprofile, event)) { // Paper - ProfileWhitelistVerifyEvent + //ichatmutablecomponent = Component.translatable("multiplayer.disconnect.not_whitelisted"); // Paper + //event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.whitelistMessage)); // Spigot // Paper - Adventure - moved to isWhitelisted } else if (this.getIpBans().isBanned(socketaddress) && !this.getIpBans().get(socketaddress).hasExpired()) { @@ -26,7 +26,7 @@ index ea7effdb4274c7e2c19d737a74b1fc5847b9888c..6e0a21935f9d5f35cbce72b32e0a89bb public boolean isWhiteListed(GameProfile profile) { - return !this.doWhiteList || this.ops.contains(profile) || this.whitelist.contains(profile); -+ // Paper start ++ // Paper start - ProfileWhitelistVerifyEvent + return isWhiteListed(profile, null); + } + public boolean isWhiteListed(GameProfile gameprofile, org.bukkit.event.player.PlayerLoginEvent loginEvent) { @@ -42,7 +42,7 @@ index ea7effdb4274c7e2c19d737a74b1fc5847b9888c..6e0a21935f9d5f35cbce72b32e0a89bb + return false; + } + return true; -+ // Paper end ++ // Paper end - ProfileWhitelistVerifyEvent } public boolean isOp(GameProfile profile) { diff --git a/patches/server/0156-handle-ServerboundKeepAlivePacket-async.patch b/patches/server/0156-handle-ServerboundKeepAlivePacket-async.patch index f3a7c7544154..0075be703833 100644 --- a/patches/server/0156-handle-ServerboundKeepAlivePacket-async.patch +++ b/patches/server/0156-handle-ServerboundKeepAlivePacket-async.patch @@ -15,7 +15,7 @@ also adding some additional logging in order to help work out what is causing random disconnections for clients. diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 7947a1d2e5f66c29dc11f9966233604adae71a86..0fcedb954c20d9777d27d896e29cea7f6eebffd3 100644 +index 4ff58939269f420fab18fea8fc3887e86297b99e..156cb6a00a2580eb16e05c80bc3267128b5804a3 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -84,14 +84,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -35,7 +35,7 @@ index 7947a1d2e5f66c29dc11f9966233604adae71a86..0fcedb954c20d9777d27d896e29cea7f + server.submit(() -> { + this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE); + }); -+ // Paper endg - This needs to be handled on the main thread for plugins ++ // Paper end - This needs to be handled on the main thread for plugins } } diff --git a/patches/server/0161-Prevent-logins-from-being-processed-when-the-player-.patch b/patches/server/0161-Prevent-logins-from-being-processed-when-the-player-.patch index 2c62fd9c8834..28f5efe52b65 100644 --- a/patches/server/0161-Prevent-logins-from-being-processed-when-the-player-.patch +++ b/patches/server/0161-Prevent-logins-from-being-processed-when-the-player-.patch @@ -6,12 +6,12 @@ Subject: [PATCH] Prevent logins from being processed when the player has diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index e15c5886b1cc80b5da2ad8e536507a48cea77d2a..e84b0a6e3767605b7af3e7120517808e25039702 100644 +index c01596f87efd316816b597b83c3cac1dbddc22c2..abfeaa9485b71d0b802c41bfd8e113d0bc9e9773 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -81,7 +81,9 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, } - // Paper end + // Paper end - Do not allow logins while the server is shutting down if (this.state == ServerLoginPacketListenerImpl.State.VERIFYING) { + if (this.connection.isConnected()) { // Paper - prevent logins to be processed even though disconnect was called this.verifyLoginAndFinishConnectionSetup((GameProfile) Objects.requireNonNull(this.authenticatedProfile)); diff --git a/patches/server/0234-Use-ConcurrentHashMap-in-JsonList.patch b/patches/server/0234-Use-ConcurrentHashMap-in-JsonList.patch index 118f8ba7bbe4..7e2c9a02b199 100644 --- a/patches/server/0234-Use-ConcurrentHashMap-in-JsonList.patch +++ b/patches/server/0234-Use-ConcurrentHashMap-in-JsonList.patch @@ -23,11 +23,11 @@ Modified isEmpty to use the isEmpty() method instead of the slightly confusing s The point of this is readability, but does have a side-benefit of a small microptimization diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index b4643717c98193884a43089ec7a7e362b7153d20..af26a2b45cba7083f3bd7ddbbfde5bcfb30f1907 100644 +index a0779dfcbcfad3807163bc309ac4003114898394..88f27be746b5ca02bde3001d57a105f779271bdb 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -634,7 +634,7 @@ public abstract class PlayerList { - } else if (!this.isWhiteListed(gameprofile, event)) { // Paper + } else if (!this.isWhiteListed(gameprofile, event)) { // Paper - ProfileWhitelistVerifyEvent //ichatmutablecomponent = Component.translatable("multiplayer.disconnect.not_whitelisted"); // Paper //event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.whitelistMessage)); // Spigot // Paper - Adventure - moved to isWhitelisted - } else if (this.getIpBans().isBanned(socketaddress) && !this.getIpBans().get(socketaddress).hasExpired()) { diff --git a/patches/server/0286-Async-command-map-building.patch b/patches/server/0286-Async-command-map-building.patch index 3ab586b43be7..5ed527dc5a49 100644 --- a/patches/server/0286-Async-command-map-building.patch +++ b/patches/server/0286-Async-command-map-building.patch @@ -9,10 +9,10 @@ commands if the server is restarting. Using the default async pool caused issues due to the shutdown logic generally being much later. diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 5a1accff1a7dc2ab40224ec0952a287cd6099aee..2b722091920116ded43ff54c413d4dd47da65ed4 100644 +index 15a5059994371da4850adcf726034a715b80efba..af7cb518a32a4d550eae833fdd5bb17fd4058717 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -458,6 +458,24 @@ public class Commands { +@@ -457,6 +457,24 @@ public class Commands { if ( org.spigotmc.SpigotConfig.tabComplete < 0 ) return; // Spigot // CraftBukkit start // Register Vanilla commands into builtRoot as before @@ -37,7 +37,7 @@ index 5a1accff1a7dc2ab40224ec0952a287cd6099aee..2b722091920116ded43ff54c413d4dd4 Map, CommandNode> map = Maps.newIdentityHashMap(); // Use identity to prevent aliasing issues RootCommandNode vanillaRoot = new RootCommandNode(); -@@ -475,7 +493,14 @@ public class Commands { +@@ -474,7 +492,14 @@ public class Commands { for (CommandNode node : rootcommandnode.getChildren()) { bukkit.add(node.getName()); } @@ -53,7 +53,7 @@ index 5a1accff1a7dc2ab40224ec0952a287cd6099aee..2b722091920116ded43ff54c413d4dd4 event.getPlayer().getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index bfcb155b1e8b04edfdbd26f4cc3bc2b4a7cbf5ea..06d70213a9f19bbd2a0f22a26af2dbb989bca5ce 100644 +index ee21ba8a6cd3e02bddbf090180b0e3186151813b..04e00e02848e15cad4efe8818da46de5d2f14080 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -926,6 +926,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { runSync(player, bukkit, rootcommandnode); }); -@@ -501,6 +502,7 @@ public class Commands { +@@ -500,6 +501,7 @@ public class Commands { private void runSync(ServerPlayer player, Collection bukkit, RootCommandNode rootcommandnode) { // Paper end - Perf: Async command map building @@ -118,7 +118,7 @@ index 2b722091920116ded43ff54c413d4dd47da65ed4..867f22bdeed5f1c3f063a5815a3477d1 PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit)); event.getPlayer().getServer().getPluginManager().callEvent(event); -@@ -519,6 +521,11 @@ public class Commands { +@@ -518,6 +520,11 @@ public class Commands { while (iterator.hasNext()) { CommandNode commandnode2 = (CommandNode) iterator.next(); @@ -131,7 +131,7 @@ index 2b722091920116ded43ff54c413d4dd47da65ed4..867f22bdeed5f1c3f063a5815a3477d1 if (commandnode2.canUse(source)) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c522763bd17205d31f3c37b5e582a449b2b7e06f..7b373eb64752e03227beedd41c1a7cb271d814f1 100644 +index 4d907d43015b9a8aa5298ec9a641580f82058f1d..2d00a3d669bf76c2aba12cf258dcd43d90ad8c82 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -740,8 +740,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch index 66a3fbc5b9c3..895e2138ad5c 100644 --- a/patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch +++ b/patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch @@ -368,22 +368,22 @@ index cc658a61065d5c0021a4b88fa58b40211b94f8ec..da11266a0a23f446196e6facf2c358cf return false; } diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index d870fbec236a3660f12e0f45cf9431067b18468b..caeead6c6082855f1651ee28263cc9f60423ca0c 100644 +index 187b2cf175ba5cea94158d29b53993dc5a7c5b94..9db7fc8c053aa9e929fa6dddf70290a8f7ad5273 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -63,10 +63,12 @@ public class ServerConnectionListener { final List connections = Collections.synchronizedList(Lists.newArrayList()); - // Paper start - prevent blocking on adding a new network manager while the server is ticking + // Paper start - prevent blocking on adding a new connection while the server is ticking private final java.util.Queue pending = new java.util.concurrent.ConcurrentLinkedQueue<>(); + private static final boolean disableFlushConsolidation = Boolean.getBoolean("Paper.disableFlushConsolidate"); // Paper - Optimize network private final void addPending() { - Connection manager = null; - while ((manager = pending.poll()) != null) { - connections.add(manager); -+ manager.isPending = false; // Paper - Optimize network + Connection connection; + while ((connection = pending.poll()) != null) { + connections.add(connection); ++ connection.isPending = false; // Paper - Optimize network } } - // Paper end + // Paper end - prevent blocking on adding a new connection while the server is ticking @@ -103,6 +105,7 @@ public class ServerConnectionListener { ; } diff --git a/patches/server/0327-Entity-Activation-Range-2.0.patch b/patches/server/0327-Entity-Activation-Range-2.0.patch index c81b7c927161..64934fdb1029 100644 --- a/patches/server/0327-Entity-Activation-Range-2.0.patch +++ b/patches/server/0327-Entity-Activation-Range-2.0.patch @@ -18,7 +18,7 @@ public net.minecraft.world.entity.Entity isInsidePortal public net.minecraft.world.entity.LivingEntity jumping diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b3e1ac038eba2153b3358f6d79861ee73b576fe8..5f6eca4e652ab96a8697e908d11a66e4eb551409 100644 +index e29c63bb29a07259c23acdb700a680344bd22672..68d6274d9b78138da228f6ce74a6c6b34eced2b0 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2,7 +2,6 @@ package net.minecraft.server.level; @@ -112,18 +112,18 @@ index b3e1ac038eba2153b3358f6d79861ee73b576fe8..5f6eca4e652ab96a8697e908d11a66e4 } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 546f1ba9bb5e4c6135d8205d7421aeae0a3bbd89..31c1e5c5e0ccd1c7bd65e5f52121f0af444f73fa 100644 +index 8d1f1c694a6ad073597934531db57fa11c99fc1c..0d51b57a302d908cfc40ff3a2e0b7c616a1a6113 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -396,6 +396,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S - public void inactiveTick() { } +@@ -397,6 +397,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Spigot end // Paper start + protected int numCollisions = 0; // Paper - Cap entity collisions + public long activatedImmunityTick = Integer.MIN_VALUE; // Paper -+ public boolean isTemporarilyActive = false; // Paper - protected int numCollisions = 0; // Paper ++ public boolean isTemporarilyActive; // Paper public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable + private org.bukkit.util.Vector origin; @@ -968,6 +970,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { this.wasOnFire = this.isOnFire(); @@ -148,7 +148,7 @@ index 546f1ba9bb5e4c6135d8205d7421aeae0a3bbd89..31c1e5c5e0ccd1c7bd65e5f52121f0af movement = this.maybeBackOffFromEdge(movement, movementType); Vec3 vec3d1 = this.collide(movement); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 40becb18c6afae979875b684c1816e84970babb5..321076a70653b5b499eb56ce3d9b2b0a4a8b92dc 100644 +index 7d0ccdd4b144afed8a93256941b3d8618c847f4d..a04240f64541009f342bcdeb725ccb04c65b697b 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -221,6 +221,19 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -244,7 +244,7 @@ index 9fc374c17f6b3ee4ab3c582d05e96321b772f2d6..07519c817cc6de04a98198c43a0c2b02 } } diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 0429b927e63ec12f53a6ce1ebe1e64d99bf7e129..c0aa370367856a159412dd141f683b7d51e11c8b 100644 +index bfd156acbae31619234fffb1804726090802fbae..7956c1ec7bf6b9fe224ec14bb695c0b8ca9dcf2d 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -227,17 +227,34 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -340,7 +340,7 @@ index b149e8bcac034bb3fc118a9adcb0de45e18ed5e9..fc35cfc9d045f3e5b6a50af1d0ba83b6 + } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1b5b703350a5c3645658429b0cd5d8aa56f647fe..12d9bcbd37b7ef67f2b922a13da7dbc3ba9838c1 100644 +index 92c85ed4eb72b950fc819b5d47ca379697ff864b..d86f158bdaefe6a71c8f48fe44c7370de158e2ea 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -162,6 +162,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0329-Alternative-item-despawn-rate.patch b/patches/server/0329-Alternative-item-despawn-rate.patch index 2928674288ee..ea7f7848dfe6 100644 --- a/patches/server/0329-Alternative-item-despawn-rate.patch +++ b/patches/server/0329-Alternative-item-despawn-rate.patch @@ -6,13 +6,13 @@ Subject: [PATCH] Alternative item-despawn-rate Co-authored-by: Noah van der Aa diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 16c30342ac9ebf5cffa0bf23ab9700b6704a1ec0..ffbeea768cbb09b6f828ef1a9394c9fe50e99914 100644 +index 7d12bedc4b80b9bcf50f468a9204191bea0894c1..7f8b35d6ae27086fa128abfe9b2369bb6c91ce60 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -56,6 +56,7 @@ public class ItemEntity extends Entity implements TraceableEntity { public final float bobOffs; private int lastTick = MinecraftServer.currentTick - 1; // CraftBukkit - public boolean canMobPickup = true; // Paper + public boolean canMobPickup = true; // Paper - Item#canEntityPickup + private int despawnRate = -1; // Paper - Alternative item-despawn-rate public ItemEntity(EntityType type, Level world) { diff --git a/patches/server/0341-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/server/0341-Add-option-to-nerf-pigmen-from-nether-portals.patch index b2c02c42233e..5dd4de2336b6 100644 --- a/patches/server/0341-Add-option-to-nerf-pigmen-from-nether-portals.patch +++ b/patches/server/0341-Add-option-to-nerf-pigmen-from-nether-portals.patch @@ -5,17 +5,17 @@ Subject: [PATCH] Add option to nerf pigmen from nether portals diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2c8e2ed7199c33f5c4fe25faa9f60fa74982de35..9efddedbe5feebf2f91eb674a9224054dba6cff3 100644 +index d19e64b6c1b85829b62854abef0987f62c616d54..b6b4be7f49ae756ebbda59e55dee98000aec2314 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -398,6 +398,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S - // Paper start +@@ -399,6 +399,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S + protected int numCollisions = 0; // Paper - Cap entity collisions public long activatedImmunityTick = Integer.MIN_VALUE; // Paper - public boolean isTemporarilyActive = false; // Paper + public boolean isTemporarilyActive; // Paper + public boolean fromNetherPortal; // Paper - Add option to nerf pigmen from nether portals - protected int numCollisions = 0; // Paper public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable + private org.bukkit.util.Vector origin; @@ -2232,6 +2233,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (spawnedViaMobSpawner) { nbttagcompound.putBoolean("Paper.FromMobSpawner", true); diff --git a/patches/server/0572-Add-Channel-initialization-listeners.patch b/patches/server/0572-Add-Channel-initialization-listeners.patch index 79b5424dbb13..b863a22fc309 100644 --- a/patches/server/0572-Add-Channel-initialization-listeners.patch +++ b/patches/server/0572-Add-Channel-initialization-listeners.patch @@ -122,7 +122,7 @@ index 0000000000000000000000000000000000000000..0d7e7db9e37ef0183c32b217bd944fb4 + COMPRESSION_DISABLED +} diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 751d24a29cf3797234adbb1eb3b64b7fb261b24e..18228713d61cbc4b6fad881ace991e5e6c64e57d 100644 +index dd7deb9175059857c59c85c745053cc88a922d3b..6e75a5e7eb51a5bbb7b73436bbd37df1519cb0fc 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -717,6 +717,7 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -142,11 +142,11 @@ index 751d24a29cf3797234adbb1eb3b64b7fb261b24e..18228713d61cbc4b6fad881ace991e5e } diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index b2bfb3893200362ac35ae60982f203f86a1148ec..4414b12218a5693fecaa8c1e7c7676a58bcad324 100644 +index dfa07c9ede9d748a05ee47826bdbcf7390ec8219..b69483e248cd84293b9d4b9df2f5ccd2a80c14cd 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -116,6 +116,7 @@ public class ServerConnectionListener { - pending.add(object); // Paper + pending.add(object); // Paper - prevent blocking on adding a new connection while the server is ticking ((Connection) object).configurePacketHandler(channelpipeline); ((Connection) object).setListenerForServerboundHandshake(new ServerHandshakePacketListenerImpl(ServerConnectionListener.this.server, (Connection) object)); + io.papermc.paper.network.ChannelInitializeListenerHolder.callListeners(channel); // Paper - Add Channel initialization listeners diff --git a/patches/server/0573-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0573-Send-empty-commands-if-tab-completion-is-disabled.patch index 30839f96f443..f385186300e0 100644 --- a/patches/server/0573-Send-empty-commands-if-tab-completion-is-disabled.patch +++ b/patches/server/0573-Send-empty-commands-if-tab-completion-is-disabled.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Send empty commands if tab completion is disabled diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index f844f7ae935b55d254c422b702a8ca2a81119baa..7802e72152628d1e853e5494ec1061fe01fefa5f 100644 +index 0741c0f85536c5188d8552e999943a9c771a548e..c11977dceeba4120cdb63972c4ec486640d8114e 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -456,7 +456,12 @@ public class Commands { +@@ -455,7 +455,12 @@ public class Commands { } public void sendCommands(ServerPlayer player) { diff --git a/patches/server/0586-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0586-Fix-and-optimise-world-force-upgrading.patch index ac253f3a9bed..31350fb93e47 100644 --- a/patches/server/0586-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0586-Fix-and-optimise-world-force-upgrading.patch @@ -267,7 +267,7 @@ index 1cad3585ca122a465572b16d4ecbb7231e87c7de..b0a0909fa9501dfacfbe70dc4118062d Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, dimensionOptionsRegistry, eraseCache); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d99217292a094713287cd597c9d7c01f04b9c7c7..748a5d8add76d4533fae2647c6e2439f518ac211 100644 +index 4a270f4a59be4dfe7d9f6baf7388a0d8d70e1bf6..2a000635c18878377b2f434929e460e809b02cc4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -586,11 +586,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions - public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here + public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Faster redstone torch rapid clock removal; Move from Map in BlockRedstoneTorch to here + // Paper start - fix and optimise world upgrading + // copied from below @@ -352,7 +352,7 @@ index 8563383d45f89ee01dd5df13af5bd0cf1b3d7b01..9e30b47ece5549c30f487e5542ae65d5 return this.regionCache.getAndMoveToFirst(ChunkPos.asLong(chunkcoordintpair.getRegionX(), chunkcoordintpair.getRegionZ())); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 05868e37b03ac912ac902b105f3956f9351b1209..08d43545262e2be74566c270f3dd2c600b773616 100644 +index 6fff086f1a6ffd02945ac30d5041b61d289e8478..ffc6e2a5e2b6e3f4595249d470e531cd555789af 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1251,9 +1251,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0594-Add-PlayerKickEvent-causes.patch b/patches/server/0594-Add-PlayerKickEvent-causes.patch index d9189e22000b..740dc9be3413 100644 --- a/patches/server/0594-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0594-Add-PlayerKickEvent-causes.patch @@ -100,7 +100,7 @@ index b9560b4ae5c0867396006119c5dadd7f3b47f78b..f3e32da770f379d46c65a0ba5a100b5f return Component.translatable("commands.kick.success", serverPlayer.getDisplayName(), reason); }, true); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 7c17c3d4f4f5ebc42186fcc98008bda062715e55..01b6c3b67d6078e9877729a955ec51f0313e5a90 100644 +index 6bb846d3ee2fb54ab3ffa116607f2a83e538460e..a65a1466dab52fca75cda16a4b22fef03b6207a0 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -95,7 +95,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -110,7 +110,7 @@ index 7c17c3d4f4f5ebc42186fcc98008bda062715e55..01b6c3b67d6078e9877729a955ec51f0 - this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE); + this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE, org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause }); - // Paper endg - This needs to be handled on the main thread for plugins + // Paper end - This needs to be handled on the main thread for plugins } @@ -131,7 +131,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } @@ -209,7 +209,7 @@ index 7c17c3d4f4f5ebc42186fcc98008bda062715e55..01b6c3b67d6078e9877729a955ec51f0 if (this.cserver.getServer().isRunning()) { this.cserver.getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 489b7f80d4a6db2240b87e0a8af428a2ff08afe5..cc4463ed0112b8f987f75d1389c7be43fb81a8f7 100644 +index e70ff6389436f33f4ec1d0b238601419bddb3fe0..cde1ae539f8808ecaf28afda20dc5ea24d006d5f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -342,7 +342,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -437,7 +437,7 @@ index 489b7f80d4a6db2240b87e0a8af428a2ff08afe5..cc4463ed0112b8f987f75d1389c7be43 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e27904551ca7f461026e62a2225c2607975a805f..c12ad5eabb7be2648f1a0314855664466b8665b0 100644 +index 5aef84c708865d7bf078e2c40b0d1d4e7dc36b82..52b57867e91c4e777c550098ddf8a75169db6c87 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -684,7 +684,7 @@ public abstract class PlayerList { diff --git a/patches/server/0653-Vanilla-command-permission-fixes.patch b/patches/server/0653-Vanilla-command-permission-fixes.patch index c033d07434e1..25c28237d660 100644 --- a/patches/server/0653-Vanilla-command-permission-fixes.patch +++ b/patches/server/0653-Vanilla-command-permission-fixes.patch @@ -33,12 +33,12 @@ index 899008b2980d13f1be6280cd8cb959c53a29bebf..d5f7da3502575f6847f3c22ab0e94284 private RedirectModifier modifier = null; private boolean forks; diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 7802e72152628d1e853e5494ec1061fe01fefa5f..e20f4e896b8c059b2d614e74d0c38e418936db6c 100644 +index c11977dceeba4120cdb63972c4ec486640d8114e..8be58d29f2a4753a241e68bd305b3e30186ca0e9 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -257,6 +257,13 @@ public class Commands { } - this.vanillaCommandNodes.addAll(this.dispatcher.getRoot().getChildren()); // Paper + this.vanillaCommandNodes.addAll(this.dispatcher.getRoot().getChildren()); // Paper - Add UnknownCommandEvent + // Paper start - Vanilla command permission fixes + for (final CommandNode node : this.dispatcher.getRoot().getChildren()) { diff --git a/patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch index e9f497606186..d6c957489ec9 100644 --- a/patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch +++ b/patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch @@ -10,7 +10,7 @@ when if this was fixed on the client, that wouldn't be needed. Mojira Issue: https://bugs.mojang.com/browse/MC-235045 diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index de7d11baf17d1b6c3d5fb3402d38052f3a28c246..21c9b903e26f93b8d4e97f3e0d98e3b2e45857f9 100644 +index 907bc9d84dbc98427384cf529bfde4b09d8ce8ca..c47944b18a35929509ae3add455385e80f09763b 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -447,4 +447,20 @@ public class CommandSourceStack implements ExecutionCommandSource tree, CommandNode result, CommandSourceStack source, Map, CommandNode> resultNodes) { Iterator iterator = tree.getChildren().iterator(); @@ -46,7 +46,7 @@ index e20f4e896b8c059b2d614e74d0c38e418936db6c..4cec7e5b1086064650af50cc9b89da27 while (iterator.hasNext()) { CommandNode commandnode2 = (CommandNode) iterator.next(); // Paper start - Brigadier API -@@ -558,6 +559,12 @@ public class Commands { +@@ -557,6 +558,12 @@ public class Commands { if (requiredargumentbuilder.getSuggestionsProvider() != null) { requiredargumentbuilder.suggests(SuggestionProviders.safelySwap(requiredargumentbuilder.getSuggestionsProvider())); diff --git a/patches/server/0784-Add-support-for-Proxy-Protocol.patch b/patches/server/0784-Add-support-for-Proxy-Protocol.patch index 1995403e4232..306ded183449 100644 --- a/patches/server/0784-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0784-Add-support-for-Proxy-Protocol.patch @@ -17,7 +17,7 @@ index ff1636d3e047e124c73496f4942e991abe01c150..376e8983fdfdbb6c3e5fd8ad0f6a05e6 implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion implementation("org.ow2.asm:asm-commons:9.5") diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 7288a942397d223d97d7afd11b9c9e5dc6a96901..1e33cabcdf2c6c4894024bdcc1a479b2d120f944 100644 +index 7383c367eba6e157b020655c858fef80bcf91822..0057f3f7669b03c36c3dd2e7629e4551e3cde700 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -111,6 +111,12 @@ public class ServerConnectionListener { @@ -60,6 +60,6 @@ index 7288a942397d223d97d7afd11b9c9e5dc6a96901..1e33cabcdf2c6c4894024bdcc1a479b2 + }); + } + // Paper end - Add support for proxy protocol - pending.add(object); // Paper + pending.add(object); // Paper - prevent blocking on adding a new connection while the server is ticking ((Connection) object).configurePacketHandler(channelpipeline); ((Connection) object).setListenerForServerboundHandshake(new ServerHandshakePacketListenerImpl(ServerConnectionListener.this.server, (Connection) object)); diff --git a/patches/server/0858-Friction-API.patch b/patches/server/0858-Friction-API.patch index 8b4f147d22be..d1a8023c7ac3 100644 --- a/patches/server/0858-Friction-API.patch +++ b/patches/server/0858-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 49fdc6d198cc7af31e6c1d1ba52c8adc0fae433f..c13a7ae57c046832f65af11dc5efbc7b197b6f74 100644 +index 39a6823a2fef8c3907a39fc611489e07cdf6d1e1..89b2977e848afb6ff577382d69616be40fd28a75 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -55,12 +55,12 @@ index 49fdc6d198cc7af31e6c1d1ba52c8adc0fae433f..c13a7ae57c046832f65af11dc5efbc7b if (nbt.contains("Attributes", 9) && this.level() != null && !this.level().isClientSide) { this.getAttributes().load(nbt.getList("Attributes", 10)); diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 13efea97d1836a48ef4c0e077a61571d9c171a0e..635f93b4205bd11a8080fbc1db53aa2430aacb77 100644 +index 8aaca29b115a55bf48306e71432c4c20d2bd21dc..eb0d6238588efa35fa868f26290547574a08eca2 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -57,6 +57,7 @@ public class ItemEntity extends Entity implements TraceableEntity { private int lastTick = MinecraftServer.currentTick - 1; // CraftBukkit - public boolean canMobPickup = true; // Paper + public boolean canMobPickup = true; // Paper - Item#canEntityPickup private int despawnRate = -1; // Paper - Alternative item-despawn-rate + public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API diff --git a/patches/server/0937-Fix-BanList-API.patch b/patches/server/0937-Fix-BanList-API.patch index 785adea805a1..2636191597ee 100644 --- a/patches/server/0937-Fix-BanList-API.patch +++ b/patches/server/0937-Fix-BanList-API.patch @@ -256,7 +256,7 @@ index c49d3448866caae8a2ceb51a45c3a056124f8f57..5527f6745d4d721666c6fa78f33a56d8 } diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java -index 6422c58907ee289359a11054fec1e4de6f495ae3..bc6151cfeb7ace4755414614723ee830081094af 100644 +index 6f779c6f4422c5b5dc22f66e3e702c714d0e052b..41336821d4e0430e19f2fc021f09430d7a1302f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java +++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java @@ -28,7 +28,7 @@ import org.bukkit.profile.PlayerProfile; @@ -274,7 +274,7 @@ index 6422c58907ee289359a11054fec1e4de6f495ae3..bc6151cfeb7ace4755414614723ee830 @Override - public CompletableFuture update() { + public CompletableFuture update() { // Paper - have to remove generic to avoid clashing between bukkit.PlayerProfile and paper.PlayerProfile - return CompletableFuture.supplyAsync(this::getUpdatedProfile, Util.PROFILE_EXECUTOR); // Paper - not a good idea to use BLOCKING OPERATIONS on the worldgen executor + return CompletableFuture.supplyAsync(this::getUpdatedProfile, Util.PROFILE_EXECUTOR); // Paper - don't submit BLOCKING PROFILE LOOKUPS to the world gen thread } @@ -277,4 +277,71 @@ public final class CraftPlayerProfile implements PlayerProfile, com.destroystoky diff --git a/patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch index 2d1ca7d6cfcb..ea4a275eafc2 100644 --- a/patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add predicate for blocks when raytracing diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..4b7ea18a34675702c5b17c4819f7977807c1c935 100644 +index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..3c54b32886c608ce91654d18e198cac83d2d2d6a 100644 --- a/src/main/java/net/minecraft/world/level/BlockGetter.java +++ b/src/main/java/net/minecraft/world/level/BlockGetter.java @@ -83,6 +83,12 @@ public interface BlockGetter extends LevelHeightAccessor { @@ -26,7 +26,7 @@ index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..4b7ea18a34675702c5b17c4819f79778 } // Paper end - Prevent raytrace from loading chunks - if (iblockdata.isAir()) return null; // Paper - Perf: optimise air cases -+ if (iblockdata.isAir() || (canCollide != null && this instanceof LevelAccessor levelAccessor && !canCollide.test(org.bukkit.craftbukkit.block.CraftBlock.at(levelAccessor, blockposition)))) return null; // Paper - Perf: optimise air cases &g check canCollide predicate ++ if (iblockdata.isAir() || (canCollide != null && this instanceof LevelAccessor levelAccessor && !canCollide.test(org.bukkit.craftbukkit.block.CraftBlock.at(levelAccessor, blockposition)))) return null; // Paper - Perf: optimise air cases & check canCollide predicate FluidState fluid = iblockdata.getFluidState(); // Paper - Perf: don't need to go to world state again Vec3 vec3d = raytrace1.getFrom(); Vec3 vec3d1 = raytrace1.getTo(); @@ -47,7 +47,7 @@ index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..4b7ea18a34675702c5b17c4819f79778 Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo()); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 55330b6b5e52f67d7490a2932a0ac7ec0387f145..1843ae08cc19cb8f7290403f8622dcd760e9399f 100644 +index 654267fcb560c45ad2db8712c056d097b1bf4904..0d66ad3728eb31bb1dbf9f35b4f9193ed3c1f880 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1125,9 +1125,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { From 25013d997057eb89471d285db2a4b40acde6272d Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Mon, 22 Jan 2024 21:04:08 +0100 Subject: [PATCH 38/45] [ci skip] Move some disruptive patches back --- ...rimise-map-impl-for-tracked-players.patch} | 2 +- ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ... 0670-Distance-manager-tick-timings.patch} | 4 +- ...ntory-not-closing-on-entity-removal.patch} | 4 +- ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 2 +- ...h => 0674-Add-packet-limiter-config.patch} | 2 +- ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0676-Ensure-valid-vehicle-status.patch} | 2 +- ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0681-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 6 +- ...unintended-light-block-manipulation.patch} | 0 ...0684-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0686-Configurable-feature-seeds.patch} | 2 +- ... 0687-Add-root-admin-user-detection.patch} | 0 ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 2 +- ...ive-velocity-through-repeated-crits.patch} | 2 +- ...e-code-using-deprecated-for-removal.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 2 +- ...e-unnecessary-itemmeta-from-clients.patch} | 4 +- ...=> 0695-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0697-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0698-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 2 +- ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0701-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 14 ++-- ...ard-CraftEntity-in-teleport-command.patch} | 6 +- ... => 0704-Improve-scoreboard-entries.patch} | 0 ...ch => 0705-Entity-powdered-snow-API.patch} | 0 ...0706-Add-API-for-item-entity-health.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0711-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0712-Bucketable-API.patch} | 0 ...es.patch => 0713-Validate-usernames.patch} | 6 +- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 6 +- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...8-Multiple-Entries-with-Scoreboards.patch} | 0 ...719-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0721-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0723-Fix-NotePlayEvent.patch} | 0 ....patch => 0724-Freeze-Tick-Lock-API.patch} | 8 +-- ...h => 0725-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 2 +- ...-missing-structure-set-seed-configs.patch} | 2 +- ...h => 0729-Implement-regenerateChunk.patch} | 2 +- ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 2 +- ...gs.patch => 0732-Add-GameEvent-tags.patch} | 2 +- ...ks-fairly-for-worlds-while-waiting-.patch} | 8 +-- ...tch => 0734-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 2 +- ...-worldlist-before-initing-the-world.patch} | 4 +- ... => 0739-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0740-Custom-Potion-Mixes.patch} | 6 +- ...41-Force-close-world-loading-screen.patch} | 2 +- ...742-Fix-falling-block-spawn-methods.patch} | 2 +- ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0745-More-Projectile-API.patch} | 2 +- ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 2 +- ...0748-Implement-getComputedBiome-API.patch} | 0 ...> 0749-Make-some-itemstacks-nonnull.patch} | 0 ...750-Implement-enchantWithLevels-API.patch} | 0 ...h => 0751-Fix-saving-in-unloadWorld.patch} | 2 +- ...h => 0752-Buffer-OOB-setBlock-calls.patch} | 0 ... 0753-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 4 +- ...bles-running-when-mob-loot-gamerule.patch} | 2 +- ...ssenger-world-matches-ridden-entity.patch} | 4 +- ...s.patch => 0757-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 4 +- ...ead-of-display-name-in-PlayerList-g.patch} | 2 +- ...-ServerLevel-for-gamerule-callbacks.patch} | 6 +- ...> 0764-Expand-PlayerItemDamageEvent.patch} | 0 ...> 0765-WorldCreator-keepSpawnLoaded.patch} | 2 +- ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 2 +- ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0771-Add-PlayerStopUsingItemEvent.patch} | 2 +- ...rs.patch => 0772-Don-t-tick-markers.patch} | 4 +- ...tch => 0773-Expand-FallingBlock-API.patch} | 2 +- ...-not-accept-invalid-client-settings.patch} | 4 +- ...0775-Add-support-for-Proxy-Protocol.patch} | 19 +----- ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0778-Sanitize-sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 2 +- ...-on-world-create-while-being-ticked.patch} | 10 +-- ...82-Dont-resent-entity-on-art-update.patch} | 0 ... => 0783-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 2 +- ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0786-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 2 +- ...pty-items-from-being-added-to-world.patch} | 4 +- ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0790-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 4 +- ...PE.patch => 0793-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 4 +- ...API.patch => 0795-More-Teleport-API.patch} | 4 +- ... => 0796-Add-EntityPortalReadyEvent.patch} | 6 +- ...level-random-in-entity-constructors.patch} | 2 +- ...k-entities-after-destroy-prediction.patch} | 6 +- ...on-plugins-accessing-faraway-chunks.patch} | 6 +- ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0802-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 2 +- ...API.patch => 0804-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 8 +-- ...806-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 2 +- ...ok-changes-from-crashing-the-server.patch} | 4 +- ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0810-Missing-eating-regain-reason.patch} | 0 ....patch => 0811-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...4-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0815-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0817-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0819-Add-getDrops-to-BlockState.patch} | 0 ...=> 0820-Fix-a-bunch-of-vanilla-bugs.patch} | 16 ++--- ...y-onTrackingStart-during-navigation.patch} | 6 +- ... 0822-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0823-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 4 +- ...-Add-PlayerInventorySlotChangeEvent.patch} | 2 +- ... 0826-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0828-Add-entity-knockback-API.patch} | 0 ....patch => 0829-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...ch => 0831-Add-EntityToggleSitEvent.patch} | 0 ... => 0832-Add-fire-tick-delay-option.patch} | 0 ...patch => 0833-Add-Moving-Piston-API.patch} | 0 ...> 0834-Ignore-impossible-spawn-tick.patch} | 2 +- ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 6 +- ...Event-cancellation-cant-fully-preve.patch} | 4 +- ...0838-Add-PrePlayerAttackEntityEvent.patch} | 2 +- ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 0 ... 0841-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 2 +- ...843-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 10 +-- ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0846-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0847-Friction-API.patch} | 0 ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0849-Fix-player-kick-on-shutdown.patch} | 8 +-- ... => 0850-Sync-offhand-slot-in-menus.patch} | 2 +- ... 0851-Player-Entity-Tracking-Events.patch} | 6 +- ...tch => 0852-Limit-pet-look-distance.patch} | 0 ...nd-additions-to-the-SpawnReason-API.patch} | 2 +- ...ments.patch => 0854-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 8 +-- ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0857-Add-BlockLockCheckEvent.patch} | 0 ... 0858-Add-Sneaking-API-for-Entities.patch} | 2 +- ... => 0859-Improve-logging-and-errors.patch} | 4 +- ....patch => 0860-Improve-PortalEvents.patch} | 4 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 4 +- ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0864-Flying-Fall-Damage.patch} | 2 +- ...k-state-to-BlockExplodeEvent-and-En.patch} | 2 +- ...ion-moving-velocity-to-VehicleBlock.patch} | 4 +- ...onfig-for-disabling-entity-tag-tags.patch} | 2 +- ...e-player-info-update-packet-on-join.patch} | 6 +- ...k-items-during-EntityResurrectEvent.patch} | 2 +- ...en-API.patch => 0870-Win-Screen-API.patch} | 0 ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0873-Add-Entity-Body-Yaw-API.patch} | 4 +- ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 4 +- ...=> 0876-Add-EntityFertilizeEggEvent.patch} | 4 +- ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 2 +- ...881-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0883-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...ives-generating-from-using-bonemeal.patch} | 2 +- ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 4 +- ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 4 +- ...ts-being-fired-from-unloaded-chunks.patch} | 4 +- ...0891-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0894-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 2 +- ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...98-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ... => 0900-Expand-PlayerItemMendEvent.patch} | 4 +- ...sh-ProjectileSource-for-projectiles.patch} | 4 +- ... => 0902-Add-transient-modifier-API.patch} | 0 ...patch => 0903-Fix-block-place-logic.patch} | 6 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 2 +- ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 2 +- ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...yerChunkLoaderData-in-order-to-prep.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0912-Properly-cancel-usable-items.patch} | 8 +-- ...3-Add-event-for-player-editing-sign.patch} | 2 +- ...recalcBlockCounts-for-empty-sections.patch | 37 ----------- ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 4 +- ...Add-option-to-disable-block-updates.patch} | 14 ++-- ...917-Call-missing-BlockDispenseEvent.patch} | 2 +- ...-chunks-for-supporting-block-checks.patch} | 4 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...920-Add-Sign-getInteractableSideFor.patch} | 0 ...21-Array-backed-synched-entity-data.patch} | 2 +- ...2-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0923-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 2 +- ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0929-Add-whitelist-events.patch} | 0 ... 0930-Implement-PlayerFailMoveEvent.patch} | 64 +++++++++---------- ...olia-scheduler-and-owned-region-API.patch} | 16 ++--- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 4 +- ...tion-when-spawning-display-entities.patch} | 0 ...935-Only-capture-actual-tree-growth.patch} | 10 +-- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 2 +- ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0940-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0942-Bandaid-fix-for-Effect.patch} | 2 +- ...tch => 0943-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 4 +- ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 4 +- ...lace-methods-with-old-StructureType.patch} | 2 +- ...e-namespaced-commands-if-send-names.patch} | 4 +- ...-handle-BlockBreakEvent-isDropItems.patch} | 4 +- ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 2 +- ... => 0951-Add-Listing-API-for-Player.patch} | 2 +- ...figurable-Region-Compression-Format.patch} | 13 ++-- ...3-Add-BlockFace-to-BlockDamageEvent.patch} | 4 +- ...h => 0954-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0955-Expand-Pose-API.patch} | 4 +- ...patch => 0956-More-DragonBattle-API.patch} | 0 ... 0957-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0958-Add-PlayerPickItemEvent.patch} | 4 +- ...=> 0959-Allow-trident-custom-damage.patch} | 0 ...0-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 2 +- ...Implement-OfflinePlayer-isConnected.patch} | 0 ....patch => 0963-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 2 +- ...65-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 4 +- ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 2 +- ...h => 0972-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 6 +- ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...atch => 0977-Fix-SuspiciousStewMeta.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 4 +- ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...85-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 0986-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 4 +- ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 0990-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...em-packets-with-collector-as-source.patch} | 2 +- ... => 0994-Expand-LingeringPotion-API.patch} | 0 ....patch => 0995-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 2 +- ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...999-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 2 +- ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 10 +-- ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 18 +++--- ...tch => 1005-Add-Structure-check-API.patch} | 2 +- ...-Dont-resend-blocks-on-interactions.patch} | 4 +- ...evious-behavior-for-setResourcePack.patch} | 0 ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 1010-add-more-scoreboard-API.patch} | 0 ...stry.patch => 1011-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 4 +- ...h => 1013-Add-experience-points-API.patch} | 2 +- ...h => 1014-Add-missing-InventoryType.patch} | 0 ...h => 1015-Add-drops-to-shear-events.patch} | 2 +- ...> 1016-Add-PlayerShieldDisableEvent.patch} | 4 +- ... => 1017-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 4 +- ...-experience-dropping-on-block-break.patch} | 10 +-- ...> 1022-Fixup-NamespacedKey-handling.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 4 +- ...ch => 1024-Write-SavedData-IO-async.patch} | 10 +-- ...> 1025-Execute-chunk-tasks-mid-tick.patch} | 26 ++++---- ... 1026-Optimise-random-block-ticking.patch} | 61 ++++++++---------- ...ulate-regionfile-header-if-it-is-co.patch} | 14 ++-- ...city-compression-and-cipher-natives.patch} | 16 ++--- ...-more-information-in-watchdog-dumps.patch} | 20 +++--- ...tch => 1030-Collision-optimisations.patch} | 55 ++++++++-------- ...n-checking-in-player-move-packet-ha.patch} | 41 +++++------- ...32-Fix-tripwire-state-inconsistency.patch} | 12 ++-- ...-type-tags-suggestions-in-selectors.patch} | 28 ++++---- ...ate-Current-redstone-implementation.patch} | 13 ++-- ...35-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 1036-Properly-resend-entities.patch} | 16 ++--- ...pers.patch => 1037-Optimize-Hoppers.patch} | 8 +-- ...-Improve-performance-of-mass-crafts.patch} | 0 ...> 1039-Actually-optimise-explosions.patch} | 0 ... 1040-Optimise-chunk-tick-iteration.patch} | 12 ++-- ...atch => 1041-Lag-compensation-ticks.patch} | 18 +++--- ...42-Optimise-nearby-player-retrieval.patch} | 2 +- scripts/moveback.py | 44 +++++++++++++ 377 files changed, 543 insertions(+), 568 deletions(-) rename patches/server/{0669-Oprimise-map-impl-for-tracked-players.patch => 0668-Oprimise-map-impl-for-tracked-players.patch} (92%) rename patches/server/{0670-Optimise-BlockSoil-nearby-water-lookup.patch => 0669-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0675-Distance-manager-tick-timings.patch => 0670-Distance-manager-tick-timings.patch} (91%) rename patches/server/{0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0671-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (90%) rename patches/server/{0677-Check-requirement-before-suggesting-root-nodes.patch => 0672-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0673-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (92%) rename patches/server/{0679-Add-packet-limiter-config.patch => 0674-Add-packet-limiter-config.patch} (98%) rename patches/server/{0680-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0675-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0681-Ensure-valid-vehicle-status.patch => 0676-Ensure-valid-vehicle-status.patch} (91%) rename patches/server/{0682-Prevent-softlocked-end-exit-portal-generation.patch => 0677-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0683-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0678-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0684-Don-t-log-debug-logging-being-disabled.patch => 0679-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0685-fix-various-menus-with-empty-level-accesses.patch => 0680-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0686-Preserve-overstacked-loot.patch => 0681-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0687-Update-head-rotation-in-missing-places.patch => 0682-Update-head-rotation-in-missing-places.patch} (84%) rename patches/server/{0688-prevent-unintended-light-block-manipulation.patch => 0683-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0689-Fix-CraftCriteria-defaults-map.patch => 0684-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0690-Fix-upstreams-block-state-factories.patch => 0685-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0691-Configurable-feature-seeds.patch => 0686-Configurable-feature-seeds.patch} (96%) rename patches/server/{0692-Add-root-admin-user-detection.patch => 0687-Add-root-admin-user-detection.patch} (100%) rename patches/server/{0693-Always-allow-item-changing-in-Fireball.patch => 0688-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0694-don-t-attempt-to-teleport-dead-entities.patch => 0689-don-t-attempt-to-teleport-dead-entities.patch} (91%) rename patches/server/{0695-Prevent-excessive-velocity-through-repeated-crits.patch => 0690-Prevent-excessive-velocity-through-repeated-crits.patch} (94%) rename patches/server/{0696-Remove-client-side-code-using-deprecated-for-removal.patch => 0691-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0697-Fix-removing-recipes-from-RecipeIterator.patch => 0692-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0698-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0693-Prevent-sending-oversized-item-data-in-equipment-and.patch} (98%) rename patches/server/{0699-Hide-unnecessary-itemmeta-from-clients.patch => 0694-Hide-unnecessary-itemmeta-from-clients.patch} (97%) rename patches/server/{0700-Fix-Spigot-growth-modifiers.patch => 0695-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0701-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0696-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0702-Add-PlayerItemFrameChangeEvent.patch => 0697-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0703-Optimize-HashMapPalette.patch => 0698-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0704-Allow-delegation-to-vanilla-chunk-gen.patch => 0699-Allow-delegation-to-vanilla-chunk-gen.patch} (98%) rename patches/server/{0707-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0700-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0708-Add-more-Campfire-API.patch => 0701-Add-more-Campfire-API.patch} (100%) rename patches/server/{0709-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0702-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (88%) rename patches/server/{0711-Forward-CraftEntity-in-teleport-command.patch => 0703-Forward-CraftEntity-in-teleport-command.patch} (89%) rename patches/server/{0712-Improve-scoreboard-entries.patch => 0704-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0713-Entity-powdered-snow-API.patch => 0705-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0714-Add-API-for-item-entity-health.patch => 0706-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0716-Configurable-max-block-light-for-monster-spawning.patch => 0707-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0717-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0708-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0718-Load-effect-amplifiers-greater-than-127-correctly.patch => 0709-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0719-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0710-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0720-Fix-bees-aging-inside-hives.patch => 0711-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0721-Bucketable-API.patch => 0712-Bucketable-API.patch} (100%) rename patches/server/{0722-Validate-usernames.patch => 0713-Validate-usernames.patch} (93%) rename patches/server/{0723-Make-water-animal-spawn-height-configurable.patch => 0714-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (96%) rename patches/server/{0725-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0716-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0726-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0717-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0727-Multiple-Entries-with-Scoreboards.patch => 0718-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0728-Reset-placed-block-on-exception.patch => 0719-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0729-Add-configurable-height-for-slime-spawn.patch => 0720-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0730-Fix-xp-reward-for-baby-zombies.patch => 0721-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0731-Multi-Block-Change-API-Implementation.patch => 0722-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0732-Fix-NotePlayEvent.patch => 0723-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0733-Freeze-Tick-Lock-API.patch => 0724-Freeze-Tick-Lock-API.patch} (92%) rename patches/server/{0734-More-PotionEffectType-API.patch => 0725-More-PotionEffectType-API.patch} (100%) rename patches/server/{0735-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0726-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0736-API-for-creating-command-sender-which-forwards-feedb.patch => 0727-API-for-creating-command-sender-which-forwards-feedb.patch} (98%) rename patches/server/{0737-Add-missing-structure-set-seed-configs.patch => 0728-Add-missing-structure-set-seed-configs.patch} (99%) rename patches/server/{0738-Implement-regenerateChunk.patch => 0729-Implement-regenerateChunk.patch} (98%) rename patches/server/{0739-Fix-cancelled-powdered-snow-bucket-placement.patch => 0730-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0731-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (92%) rename patches/server/{0741-Add-GameEvent-tags.patch => 0732-Add-GameEvent-tags.patch} (97%) rename patches/server/{0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (83%) rename patches/server/{0743-Furnace-RecipesUsed-API.patch => 0734-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0744-Configurable-sculk-sensor-listener-range.patch => 0735-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0745-Add-missing-block-data-mins-and-maxes.patch => 0736-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0746-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0737-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (96%) rename patches/server/{0747-Put-world-into-worldlist-before-initing-the-world.patch => 0738-Put-world-into-worldlist-before-initing-the-world.patch} (92%) rename patches/server/{0748-Fix-Entity-Position-Desync.patch => 0739-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0749-Custom-Potion-Mixes.patch => 0740-Custom-Potion-Mixes.patch} (97%) rename patches/server/{0750-Force-close-world-loading-screen.patch => 0741-Force-close-world-loading-screen.patch} (95%) rename patches/server/{0751-Fix-falling-block-spawn-methods.patch => 0742-Fix-falling-block-spawn-methods.patch} (97%) rename patches/server/{0752-Expose-furnace-minecart-push-values.patch => 0743-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0753-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0744-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0754-More-Projectile-API.patch => 0745-More-Projectile-API.patch} (99%) rename patches/server/{0755-Fix-swamp-hut-cat-generation-deadlock.patch => 0746-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0747-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (94%) rename patches/server/{0757-Implement-getComputedBiome-API.patch => 0748-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0758-Make-some-itemstacks-nonnull.patch => 0749-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0759-Implement-enchantWithLevels-API.patch => 0750-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0760-Fix-saving-in-unloadWorld.patch => 0751-Fix-saving-in-unloadWorld.patch} (90%) rename patches/server/{0761-Buffer-OOB-setBlock-calls.patch => 0752-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0762-Add-TameableDeathMessageEvent.patch => 0753-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0754-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (98%) rename patches/server/{0764-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0755-fix-player-loottables-running-when-mob-loot-gamerule.patch} (93%) rename patches/server/{0765-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0756-Ensure-entity-passenger-world-matches-ridden-entity.patch} (85%) rename patches/server/{0766-cache-resource-keys.patch => 0757-cache-resource-keys.patch} (100%) rename patches/server/{0767-Allow-changing-the-EnderDragon-podium.patch => 0758-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/server/{0768-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0759-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0769-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0760-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0770-Prevent-tile-entity-copies-loading-chunks.patch => 0761-Prevent-tile-entity-copies-loading-chunks.patch} (90%) rename patches/server/{0771-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0762-Use-username-instead-of-display-name-in-PlayerList-g.patch} (92%) rename patches/server/{0772-Pass-ServerLevel-for-gamerule-callbacks.patch => 0763-Pass-ServerLevel-for-gamerule-callbacks.patch} (98%) rename patches/server/{0773-Expand-PlayerItemDamageEvent.patch => 0764-Expand-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0774-WorldCreator-keepSpawnLoaded.patch => 0765-WorldCreator-keepSpawnLoaded.patch} (94%) rename patches/server/{0775-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0766-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0767-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (97%) rename patches/server/{0777-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0768-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0778-Fire-CauldronLevelChange-on-initial-fill.patch => 0769-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0779-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0770-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0780-Add-PlayerStopUsingItemEvent.patch => 0771-Add-PlayerStopUsingItemEvent.patch} (91%) rename patches/server/{0781-Don-t-tick-markers.patch => 0772-Don-t-tick-markers.patch} (95%) rename patches/server/{0782-Expand-FallingBlock-API.patch => 0773-Expand-FallingBlock-API.patch} (98%) rename patches/server/{0783-Do-not-accept-invalid-client-settings.patch => 0774-Do-not-accept-invalid-client-settings.patch} (90%) rename patches/server/{0784-Add-support-for-Proxy-Protocol.patch => 0775-Add-support-for-Proxy-Protocol.patch} (74%) rename patches/server/{0785-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0776-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0786-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0777-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0787-Sanitize-sent-BlockEntity-NBT.patch => 0778-Sanitize-sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0788-Disable-component-selector-resolving-in-books-by-def.patch => 0779-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0789-Prevent-entity-loading-causing-async-lookups.patch => 0780-Prevent-entity-loading-causing-async-lookups.patch} (97%) rename patches/server/{0790-Throw-exception-on-world-create-while-being-ticked.patch => 0781-Throw-exception-on-world-create-while-being-ticked.patch} (91%) rename patches/server/{0792-Dont-resent-entity-on-art-update.patch => 0782-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0793-Add-WardenAngerChangeEvent.patch => 0783-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0794-Add-option-for-strict-advancement-dimension-checks.patch => 0784-Add-option-for-strict-advancement-dimension-checks.patch} (96%) rename patches/server/{0795-Add-missing-important-BlockStateListPopulator-method.patch => 0785-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0796-Nameable-Banner-API.patch => 0786-Nameable-Banner-API.patch} (100%) rename patches/server/{0797-Don-t-broadcast-messages-to-command-blocks.patch => 0787-Don-t-broadcast-messages-to-command-blocks.patch} (95%) rename patches/server/{0798-Prevent-empty-items-from-being-added-to-world.patch => 0788-Prevent-empty-items-from-being-added-to-world.patch} (89%) rename patches/server/{0799-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0789-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0800-Add-Player-getFishHook.patch => 0790-Add-Player-getFishHook.patch} (100%) rename patches/server/{0801-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0791-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0802-Add-various-missing-EntityDropItemEvent-calls.patch => 0792-Add-various-missing-EntityDropItemEvent-calls.patch} (96%) rename patches/server/{0803-Fix-Bee-flower-NPE.patch => 0793-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0804-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0794-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (87%) rename patches/server/{0805-More-Teleport-API.patch => 0795-More-Teleport-API.patch} (98%) rename patches/server/{0806-Add-EntityPortalReadyEvent.patch => 0796-Add-EntityPortalReadyEvent.patch} (88%) rename patches/server/{0807-Don-t-use-level-random-in-entity-constructors.patch => 0797-Don-t-use-level-random-in-entity-constructors.patch} (96%) rename patches/server/{0808-Send-block-entities-after-destroy-prediction.patch => 0798-Send-block-entities-after-destroy-prediction.patch} (95%) rename patches/server/{0809-Warn-on-plugins-accessing-faraway-chunks.patch => 0799-Warn-on-plugins-accessing-faraway-chunks.patch} (95%) rename patches/server/{0810-Custom-Chat-Completion-Suggestions-API.patch => 0800-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0811-Add-and-fix-missing-BlockFadeEvents.patch => 0801-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0812-Collision-API.patch => 0802-Collision-API.patch} (100%) rename patches/server/{0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0803-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (92%) rename patches/server/{0814-Block-Ticking-API.patch => 0804-Block-Ticking-API.patch} (100%) rename patches/server/{0815-Add-Velocity-IP-Forwarding-Support.patch => 0805-Add-Velocity-IP-Forwarding-Support.patch} (97%) rename patches/server/{0816-Add-NamespacedKey-biome-methods.patch => 0806-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0817-Fix-plugin-loggers-on-server-shutdown.patch => 0807-Fix-plugin-loggers-on-server-shutdown.patch} (96%) rename patches/server/{0818-Stop-large-look-changes-from-crashing-the-server.patch => 0808-Stop-large-look-changes-from-crashing-the-server.patch} (93%) rename patches/server/{0819-Fire-EntityChangeBlockEvent-in-more-places.patch => 0809-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0820-Missing-eating-regain-reason.patch => 0810-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0821-Missing-effect-cause.patch => 0811-Missing-effect-cause.patch} (100%) rename patches/server/{0822-Added-byte-array-serialization-deserialization-for-P.patch => 0812-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0823-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0813-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0824-Call-BlockPhysicsEvent-more-often.patch => 0814-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0825-Configurable-chat-thread-limit.patch => 0815-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0826-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0816-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0827-fix-Jigsaw-block-kicking-user.patch => 0817-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0828-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0818-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0829-Add-getDrops-to-BlockState.patch => 0819-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0830-Fix-a-bunch-of-vanilla-bugs.patch => 0820-Fix-a-bunch-of-vanilla-bugs.patch} (96%) rename patches/server/{0831-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0821-Remove-unnecessary-onTrackingStart-during-navigation.patch} (88%) rename patches/server/{0832-Fix-custom-piglin-loved-items.patch => 0822-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0833-EntityPickupItemEvent-fixes.patch => 0823-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0834-Correctly-handle-interactions-with-items-on-cooldown.patch => 0824-Correctly-handle-interactions-with-items-on-cooldown.patch} (95%) rename patches/server/{0835-Add-PlayerInventorySlotChangeEvent.patch => 0825-Add-PlayerInventorySlotChangeEvent.patch} (97%) rename patches/server/{0836-Elder-Guardian-appearance-API.patch => 0826-Elder-Guardian-appearance-API.patch} (100%) rename patches/server/{0837-Allow-changing-bed-s-occupied-property.patch => 0827-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0838-Add-entity-knockback-API.patch => 0828-Add-entity-knockback-API.patch} (100%) rename patches/server/{0839-Detect-headless-JREs.patch => 0829-Detect-headless-JREs.patch} (100%) rename patches/server/{0840-fix-entity-vehicle-collision-event-not-called.patch => 0830-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0842-Add-EntityToggleSitEvent.patch => 0831-Add-EntityToggleSitEvent.patch} (100%) rename patches/server/{0843-Add-fire-tick-delay-option.patch => 0832-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0844-Add-Moving-Piston-API.patch => 0833-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0845-Ignore-impossible-spawn-tick.patch => 0834-Ignore-impossible-spawn-tick.patch} (90%) rename patches/server/{0846-Track-projectile-source-for-fireworks-from-dispenser.patch => 0835-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0847-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0836-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (84%) rename patches/server/{0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (92%) rename patches/server/{0849-Add-PrePlayerAttackEntityEvent.patch => 0838-Add-PrePlayerAttackEntityEvent.patch} (93%) rename patches/server/{0850-ensure-reset-EnderDragon-boss-event-name.patch => 0839-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0851-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0840-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0852-Add-Player-Warden-Warning-API.patch => 0841-Add-Player-Warden-Warning-API.patch} (100%) rename patches/server/{0853-More-vanilla-friendly-methods-to-update-trades.patch => 0842-More-vanilla-friendly-methods-to-update-trades.patch} (97%) rename patches/server/{0854-Add-paper-dumplisteners-command.patch => 0843-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0855-check-global-player-list-where-appropriate.patch => 0844-check-global-player-list-where-appropriate.patch} (92%) rename patches/server/{0856-Fix-async-entity-add-due-to-fungus-trees.patch => 0845-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0857-ItemStack-damage-API.patch => 0846-ItemStack-damage-API.patch} (100%) rename patches/server/{0858-Friction-API.patch => 0847-Friction-API.patch} (100%) rename patches/server/{0859-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0848-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0860-Fix-player-kick-on-shutdown.patch => 0849-Fix-player-kick-on-shutdown.patch} (81%) rename patches/server/{0861-Sync-offhand-slot-in-menus.patch => 0850-Sync-offhand-slot-in-menus.patch} (97%) rename patches/server/{0862-Player-Entity-Tracking-Events.patch => 0851-Player-Entity-Tracking-Events.patch} (90%) rename patches/server/{0863-Limit-pet-look-distance.patch => 0852-Limit-pet-look-distance.patch} (100%) rename patches/server/{0865-Fixes-and-additions-to-the-SpawnReason-API.patch => 0853-Fixes-and-additions-to-the-SpawnReason-API.patch} (97%) rename patches/server/{0866-fix-Instruments.patch => 0854-fix-Instruments.patch} (100%) rename patches/server/{0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (91%) rename patches/server/{0868-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0856-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0869-Add-BlockLockCheckEvent.patch => 0857-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0870-Add-Sneaking-API-for-Entities.patch => 0858-Add-Sneaking-API-for-Entities.patch} (91%) rename patches/server/{0871-Improve-logging-and-errors.patch => 0859-Improve-logging-and-errors.patch} (97%) rename patches/server/{0872-Improve-PortalEvents.patch => 0860-Improve-PortalEvents.patch} (89%) rename patches/server/{0873-Add-config-option-for-spider-worldborder-climbing.patch => 0861-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0874-Add-missing-SpigotConfig-logCommands-check.patch => 0862-Add-missing-SpigotConfig-logCommands-check.patch} (88%) rename patches/server/{0875-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0863-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0876-Flying-Fall-Damage.patch => 0864-Flying-Fall-Damage.patch} (96%) rename patches/server/{0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (99%) rename patches/server/{0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (86%) rename patches/server/{0879-config-for-disabling-entity-tag-tags.patch => 0867-config-for-disabling-entity-tag-tags.patch} (94%) rename patches/server/{0880-Use-single-player-info-update-packet-on-join.patch => 0868-Use-single-player-info-update-packet-on-join.patch} (92%) rename patches/server/{0881-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0869-Correctly-shrink-items-during-EntityResurrectEvent.patch} (95%) rename patches/server/{0882-Win-Screen-API.patch => 0870-Win-Screen-API.patch} (100%) rename patches/server/{0883-Remove-CraftItemStack-setAmount-null-assignment.patch => 0871-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0884-Fix-force-opening-enchantment-tables.patch => 0872-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0885-Add-Entity-Body-Yaw-API.patch => 0873-Add-Entity-Body-Yaw-API.patch} (93%) rename patches/server/{0886-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0874-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0887-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0875-Update-the-flag-when-a-captured-block-state-is-outda.patch} (83%) rename patches/server/{0888-Add-EntityFertilizeEggEvent.patch => 0876-Add-EntityFertilizeEggEvent.patch} (97%) rename patches/server/{0889-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0877-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0890-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0878-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0891-Correctly-handle-ArmorStand-invisibility.patch => 0879-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0892-Fix-advancement-triggers-for-entity-damage.patch => 0880-Fix-advancement-triggers-for-entity-damage.patch} (97%) rename patches/server/{0893-Fix-text-display-error-on-spawn.patch => 0881-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0894-Fix-inventories-returning-null-Locations.patch => 0882-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0895-Add-Shearable-API.patch => 0883-Add-Shearable-API.patch} (100%) rename patches/server/{0896-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0884-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0898-Fix-beehives-generating-from-using-bonemeal.patch => 0885-Fix-beehives-generating-from-using-bonemeal.patch} (96%) rename patches/server/{0899-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0886-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0900-Treat-sequence-violations-like-they-should-be.patch => 0887-Treat-sequence-violations-like-they-should-be.patch} (86%) rename patches/server/{0901-remove-duplicate-animate-packet-for-records.patch => 0888-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0902-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0889-Prevent-causing-expired-keys-from-impacting-new-join.patch} (95%) rename patches/server/{0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0890-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (86%) rename patches/server/{0904-Use-array-for-gamerule-storage.patch => 0891-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0905-Fix-a-couple-of-upstream-bed-issues.patch => 0892-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0906-Fix-demo-flag-not-enabling-demo-mode.patch => 0893-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0907-Add-Mob-Experience-reward-API.patch => 0894-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0908-Break-redstone-on-top-of-trap-doors-early.patch => 0895-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0909-Fix-DamageCause-for-Falling-Blocks.patch => 0896-Fix-DamageCause-for-Falling-Blocks.patch} (92%) rename patches/server/{0910-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0897-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0911-More-accurate-isInOpenWater-impl.patch => 0898-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0912-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0899-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0914-Expand-PlayerItemMendEvent.patch => 0900-Expand-PlayerItemMendEvent.patch} (96%) rename patches/server/{0915-Refresh-ProjectileSource-for-projectiles.patch => 0901-Refresh-ProjectileSource-for-projectiles.patch} (95%) rename patches/server/{0916-Add-transient-modifier-API.patch => 0902-Add-transient-modifier-API.patch} (100%) rename patches/server/{0917-Fix-block-place-logic.patch => 0903-Fix-block-place-logic.patch} (94%) rename patches/server/{0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0904-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (94%) rename patches/server/{0919-Call-BlockGrowEvent-for-missing-blocks.patch => 0905-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0906-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (94%) rename patches/server/{0921-fix-MapLike-spam-for-missing-key-selector.patch => 0907-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0922-Fix-sniffer-removeExploredLocation.patch => 0908-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0923-Add-method-to-remove-all-active-potion-effects.patch => 0909-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0924-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch => 0910-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch} (100%) rename patches/server/{0925-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0911-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0926-Properly-cancel-usable-items.patch => 0912-Properly-cancel-usable-items.patch} (91%) rename patches/server/{0927-Add-event-for-player-editing-sign.patch => 0913-Add-event-for-player-editing-sign.patch} (98%) delete mode 100644 patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch rename patches/server/{0928-Only-tick-item-frames-if-players-can-see-it.patch => 0914-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0929-Fix-cmd-permission-levels-for-command-blocks.patch => 0915-Fix-cmd-permission-levels-for-command-blocks.patch} (97%) rename patches/server/{0930-Add-option-to-disable-block-updates.patch => 0916-Add-option-to-disable-block-updates.patch} (96%) rename patches/server/{0931-Call-missing-BlockDispenseEvent.patch => 0917-Call-missing-BlockDispenseEvent.patch} (98%) rename patches/server/{0932-Don-t-load-chunks-for-supporting-block-checks.patch => 0918-Don-t-load-chunks-for-supporting-block-checks.patch} (84%) rename patches/server/{0933-Optimize-player-lookups-for-beacons.patch => 0919-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0934-Add-Sign-getInteractableSideFor.patch => 0920-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0935-Array-backed-synched-entity-data.patch => 0921-Array-backed-synched-entity-data.patch} (96%) rename patches/server/{0936-fix-item-meta-for-tadpole-buckets.patch => 0922-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0937-Fix-BanList-API.patch => 0923-Fix-BanList-API.patch} (100%) rename patches/server/{0938-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0924-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0939-Fix-possible-NPE-on-painting-creation.patch => 0925-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0940-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0926-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0941-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0927-ExperienceOrb-should-call-EntitySpawnEvent.patch} (93%) rename patches/server/{0942-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0928-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0943-Add-whitelist-events.patch => 0929-Add-whitelist-events.patch} (100%) rename patches/server/{0944-Implement-PlayerFailMoveEvent.patch => 0930-Implement-PlayerFailMoveEvent.patch} (72%) rename patches/server/{0945-Folia-scheduler-and-owned-region-API.patch => 0931-Folia-scheduler-and-owned-region-API.patch} (98%) rename patches/server/{0946-Only-erase-allay-memory-on-non-item-targets.patch => 0932-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0947-API-for-updating-recipes-on-clients.patch => 0933-API-for-updating-recipes-on-clients.patch} (95%) rename patches/server/{0948-Fix-rotation-when-spawning-display-entities.patch => 0934-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0949-Only-capture-actual-tree-growth.patch => 0935-Only-capture-actual-tree-growth.patch} (92%) rename patches/server/{0950-Use-correct-source-for-mushroom-block-spread-event.patch => 0936-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0951-Respect-randomizeData-on-more-entities-when-spawning.patch => 0937-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0952-Use-correct-seed-on-api-world-load.patch => 0938-Use-correct-seed-on-api-world-load.patch} (91%) rename patches/server/{0953-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0939-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0954-Cache-map-ids-on-item-frames.patch => 0940-Cache-map-ids-on-item-frames.patch} (100%) rename patches/server/{0955-Fix-custom-statistic-criteria-creation.patch => 0941-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0956-Bandaid-fix-for-Effect.patch => 0942-Bandaid-fix-for-Effect.patch} (98%) rename patches/server/{0957-SculkCatalyst-bloom-API.patch => 0943-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0958-API-for-an-entity-s-scoreboard-name.patch => 0944-API-for-an-entity-s-scoreboard-name.patch} (86%) rename patches/server/{0959-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0945-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (96%) rename patches/server/{0960-Deprecate-and-replace-methods-with-old-StructureType.patch => 0946-Deprecate-and-replace-methods-with-old-StructureType.patch} (96%) rename patches/server/{0961-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0947-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (92%) rename patches/server/{0962-Properly-handle-BlockBreakEvent-isDropItems.patch => 0948-Properly-handle-BlockBreakEvent-isDropItems.patch} (98%) rename patches/server/{0963-Fire-entity-death-event-for-ender-dragon.patch => 0949-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0964-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0950-Configurable-entity-tracking-range-by-Y-coordinate.patch} (94%) rename patches/server/{0965-Add-Listing-API-for-Player.patch => 0951-Add-Listing-API-for-Player.patch} (99%) rename patches/server/{0966-Configurable-Region-Compression-Format.patch => 0952-Configurable-Region-Compression-Format.patch} (73%) rename patches/server/{0967-Add-BlockFace-to-BlockDamageEvent.patch => 0953-Add-BlockFace-to-BlockDamageEvent.patch} (92%) rename patches/server/{0968-Fix-NPE-on-Boat-getStatus.patch => 0954-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0969-Expand-Pose-API.patch => 0955-Expand-Pose-API.patch} (91%) rename patches/server/{0970-More-DragonBattle-API.patch => 0956-More-DragonBattle-API.patch} (100%) rename patches/server/{0971-Deep-clone-unhandled-nbt-tags.patch => 0957-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0972-Add-PlayerPickItemEvent.patch => 0958-Add-PlayerPickItemEvent.patch} (94%) rename patches/server/{0974-Allow-trident-custom-damage.patch => 0959-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0975-Expose-hand-in-BlockCanBuildEvent.patch => 0960-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0976-Optimize-nearest-structure-border-iteration.patch => 0961-Optimize-nearest-structure-border-iteration.patch} (95%) rename patches/server/{0977-Implement-OfflinePlayer-isConnected.patch => 0962-Implement-OfflinePlayer-isConnected.patch} (100%) rename patches/server/{0978-Fix-inventory-desync.patch => 0963-Fix-inventory-desync.patch} (100%) rename patches/server/{0979-Add-titleOverride-to-InventoryOpenEvent.patch => 0964-Add-titleOverride-to-InventoryOpenEvent.patch} (98%) rename patches/server/{0980-Configure-sniffer-egg-hatch-time.patch => 0965-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0981-Do-crystal-portal-proximity-check-before-entity-look.patch => 0966-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0982-Skip-POI-finding-if-stuck-in-vehicle.patch => 0967-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0983-Add-slot-sanity-checks-in-container-clicks.patch => 0968-Add-slot-sanity-checks-in-container-clicks.patch} (94%) rename patches/server/{0984-Call-BlockRedstoneEvents-for-lecterns.patch => 0969-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0985-Allow-proper-checking-of-empty-item-stacks.patch => 0970-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0986-Fix-silent-equipment-change-for-mobs.patch => 0971-Fix-silent-equipment-change-for-mobs.patch} (98%) rename patches/server/{0987-Fix-spigot-s-Forced-Stats.patch => 0972-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0988-Add-missing-InventoryHolders-to-inventories.patch => 0973-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/server/{0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0974-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (93%) rename patches/server/{0991-Add-missing-logs-for-log-ips-config-option.patch => 0975-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0992-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0976-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{0993-Fix-SuspiciousStewMeta.patch => 0977-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{0996-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0978-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{0997-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0979-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{0998-Fix-team-sidebar-objectives-not-being-cleared.patch => 0980-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{1000-Fix-missing-map-initialize-event-call.patch => 0981-Fix-missing-map-initialize-event-call.patch} (93%) rename patches/server/{1001-Update-entity-data-when-attaching-firework-to-entity.patch => 0982-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{1002-Use-correct-variable-for-initializing-CraftLootTable.patch => 0983-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{1003-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 0984-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{1004-Fix-UnsafeValues-loadAdvancement.patch => 0985-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{1005-Add-player-idle-duration-API.patch => 0986-Add-player-idle-duration-API.patch} (100%) rename patches/server/{1006-Don-t-check-if-we-can-see-non-visible-entities.patch => 0987-Don-t-check-if-we-can-see-non-visible-entities.patch} (85%) rename patches/server/{1007-Fix-NPE-in-SculkBloomEvent-world-access.patch => 0988-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{1008-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 0989-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/server/{1009-Optimize-VarInts.patch => 0990-Optimize-VarInts.patch} (100%) rename patches/server/{1010-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0991-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{1011-Add-predicate-for-blocks-when-raytracing.patch => 0992-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/server/{1012-Broadcast-take-item-packets-with-collector-as-source.patch => 0993-Broadcast-take-item-packets-with-collector-as-source.patch} (92%) rename patches/server/{1013-Expand-LingeringPotion-API.patch => 0994-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{1014-Add-MaterialTagsTest.patch => 0995-Add-MaterialTagsTest.patch} (100%) rename patches/server/{1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 0996-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (97%) rename patches/server/{1016-Add-hand-to-fish-event-for-all-player-interactions.patch => 0997-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{1017-Fix-several-issues-with-EntityBreedEvent.patch => 0998-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{1018-Add-UUID-attribute-modifier-API.patch => 0999-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{1019-Fix-missing-event-call-for-entity-teleport-API.patch => 1000-Fix-missing-event-call-for-entity-teleport-API.patch} (93%) rename patches/server/{1020-Lazily-create-LootContext-for-criterions.patch => 1001-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{1021-Don-t-fire-sync-events-during-worldgen.patch => 1002-Don-t-fire-sync-events-during-worldgen.patch} (96%) rename patches/server/{1022-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 1003-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{1023-Restore-vanilla-entity-drops-behavior.patch => 1004-Restore-vanilla-entity-drops-behavior.patch} (95%) rename patches/server/{1024-Add-Structure-check-API.patch => 1005-Add-Structure-check-API.patch} (91%) rename patches/server/{1025-Dont-resend-blocks-on-interactions.patch => 1006-Dont-resend-blocks-on-interactions.patch} (98%) rename patches/server/{1026-Keep-previous-behavior-for-setResourcePack.patch => 1007-Keep-previous-behavior-for-setResourcePack.patch} (100%) rename patches/server/{1027-properly-read-and-store-sus-effect-duration.patch => 1008-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{1028-Use-correct-max-stack-size-in-crafter.patch => 1009-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{1029-add-more-scoreboard-API.patch => 1010-add-more-scoreboard-API.patch} (100%) rename patches/server/{1030-Improve-Registry.patch => 1011-Improve-Registry.patch} (100%) rename patches/server/{1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (96%) rename patches/server/{1032-Add-experience-points-API.patch => 1013-Add-experience-points-API.patch} (97%) rename patches/server/{1033-Add-missing-InventoryType.patch => 1014-Add-missing-InventoryType.patch} (100%) rename patches/server/{1034-Add-drops-to-shear-events.patch => 1015-Add-drops-to-shear-events.patch} (99%) rename patches/server/{1035-Add-PlayerShieldDisableEvent.patch => 1016-Add-PlayerShieldDisableEvent.patch} (95%) rename patches/server/{1036-Add-HiddenPotionEffect-API.patch => 1017-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1037-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1018-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{1038-fix-ItemMeta-removing-CustomModelData.patch => 1019-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/server/{1039-Validate-ResourceLocation-in-NBT-reading.patch => 1020-Validate-ResourceLocation-in-NBT-reading.patch} (96%) rename patches/server/{1040-Properly-handle-experience-dropping-on-block-break.patch => 1021-Properly-handle-experience-dropping-on-block-break.patch} (93%) rename patches/server/{1041-Fixup-NamespacedKey-handling.patch => 1022-Fixup-NamespacedKey-handling.patch} (100%) rename patches/server/{1042-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (95%) rename patches/server/{1043-Write-SavedData-IO-async.patch => 1024-Write-SavedData-IO-async.patch} (96%) rename patches/server/{0668-Execute-chunk-tasks-mid-tick.patch => 1025-Execute-chunk-tasks-mid-tick.patch} (88%) rename patches/server/{0671-Optimise-random-block-ticking.patch => 1026-Optimise-random-block-ticking.patch} (92%) rename patches/server/{0672-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1027-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (98%) rename patches/server/{0673-Use-Velocity-compression-and-cipher-natives.patch => 1028-Use-Velocity-compression-and-cipher-natives.patch} (96%) rename patches/server/{0674-Detail-more-information-in-watchdog-dumps.patch => 1029-Detail-more-information-in-watchdog-dumps.patch} (94%) rename patches/server/{0705-Collision-optimisations.patch => 1030-Collision-optimisations.patch} (99%) rename patches/server/{0706-Optimise-collision-checking-in-player-move-packet-ha.patch => 1031-Optimise-collision-checking-in-player-move-packet-ha.patch} (79%) rename patches/server/{0710-Fix-tripwire-state-inconsistency.patch => 1032-Fix-tripwire-state-inconsistency.patch} (89%) rename patches/server/{0715-Fix-entity-type-tags-suggestions-in-selectors.patch => 1033-Fix-entity-type-tags-suggestions-in-selectors.patch} (90%) rename patches/server/{0791-Add-Alternate-Current-redstone-implementation.patch => 1034-Add-Alternate-Current-redstone-implementation.patch} (99%) rename patches/server/{0841-optimize-dirt-and-snow-spreading.patch => 1035-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{0864-Properly-resend-entities.patch => 1036-Properly-resend-entities.patch} (93%) rename patches/server/{0897-Optimize-Hoppers.patch => 1037-Optimize-Hoppers.patch} (99%) rename patches/server/{0973-Improve-performance-of-mass-crafts.patch => 1038-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{0990-Actually-optimise-explosions.patch => 1039-Actually-optimise-explosions.patch} (100%) rename patches/server/{0994-Optimise-chunk-tick-iteration.patch => 1040-Optimise-chunk-tick-iteration.patch} (98%) rename patches/server/{0995-Lag-compensation-ticks.patch => 1041-Lag-compensation-ticks.patch} (91%) rename patches/server/{0999-Optimise-nearby-player-retrieval.patch => 1042-Optimise-nearby-player-retrieval.patch} (99%) create mode 100644 scripts/moveback.py diff --git a/patches/server/0669-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0668-Oprimise-map-impl-for-tracked-players.patch similarity index 92% rename from patches/server/0669-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0668-Oprimise-map-impl-for-tracked-players.patch index e1755f403837..a3103e4ff01f 100644 --- a/patches/server/0669-Oprimise-map-impl-for-tracked-players.patch +++ b/patches/server/0668-Oprimise-map-impl-for-tracked-players.patch @@ -7,7 +7,7 @@ Reference2BooleanOpenHashMap is going to have better lookups than HashMap. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index bdda124f6cc89b8a7ed198fdf095aee5f3f24ce3..f761d600bb5d995a25ffbbe5469625508de1f8bc 100644 +index 03eb13021c3aa6d7b7254660ebc40908460a4cb6..dd16f13ca44cda3051a38085f6de117a475ce797 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1297,7 +1297,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0670-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0669-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0670-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0669-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0675-Distance-manager-tick-timings.patch b/patches/server/0670-Distance-manager-tick-timings.patch similarity index 91% rename from patches/server/0675-Distance-manager-tick-timings.patch rename to patches/server/0670-Distance-manager-tick-timings.patch index f946d92596ee..451525be15da 100644 --- a/patches/server/0675-Distance-manager-tick-timings.patch +++ b/patches/server/0670-Distance-manager-tick-timings.patch @@ -7,7 +7,7 @@ Recently this has been taking up more time, so add a timings to really figure out how much. diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java -index 46449728f69ee7d4f78470f8da23c055acd53a3b..4b467f1af93452d13829f756d55dee18b8889d40 100644 +index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..7a4234abf620b8394307fa01913bc00215a64e23 100644 --- a/src/main/java/co/aikar/timings/MinecraftTimings.java +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java @@ -47,6 +47,7 @@ public final class MinecraftTimings { @@ -16,7 +16,7 @@ index 46449728f69ee7d4f78470f8da23c055acd53a3b..4b467f1af93452d13829f756d55dee18 public static final Timing scoreboardScoreSearch = Timings.ofSafe("Scoreboard score search"); // Paper - add timings for scoreboard search + public static final Timing distanceManagerTick = Timings.ofSafe("Distance Manager Tick"); // Paper - add timings for distance manager - public static final Timing midTickChunkTasks = Timings.ofSafe("Mid Tick Chunk Tasks"); + private static final Map, String> taskNameCache = new MapMaker().weakKeys().makeMap(); diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java index 5b446e6ac151f99f64f0c442d0b40b5e251bc4c4..6bc7c6f16a1649fc9e24e7cf90fca401e5bd4875 100644 diff --git a/patches/server/0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0671-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 90% rename from patches/server/0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0671-Fix-merchant-inventory-not-closing-on-entity-removal.patch index 0ae49a07a39a..b7f14756ca37 100644 --- a/patches/server/0676-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0671-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0c60fa914310c7b6706e72cd3a61630873005102..4b0d854ed9fc16ecbdfabca4192969aa1beeaa19 100644 +index 109143fca98c6952ca6129f261a9ff8b43f00e52..6540c4e1d9d347ce41fb0f504ee275ee3a1c0a4f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2676,6 +2676,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2629,6 +2629,11 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message diff --git a/patches/server/0677-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0672-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0677-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0672-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0673-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 92% rename from patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0673-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch index 8695ea1b7a33..f3b2d0191f40 100644 --- a/patches/server/0678-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch +++ b/patches/server/0673-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4f318c5e8a8cd2113d7b404aa97cdf03f7a87fd4..ff60a7951818341d5b279b51cdf3d0dd4d89bc26 100644 +index 27bcfe893db83bb369186ccf1d48f28e9d2cae82..0280c215f4e502cd0471523b040d8b54c50f7ab8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -733,6 +733,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0679-Add-packet-limiter-config.patch b/patches/server/0674-Add-packet-limiter-config.patch similarity index 98% rename from patches/server/0679-Add-packet-limiter-config.patch rename to patches/server/0674-Add-packet-limiter-config.patch index 7ed138c36fe7..0771f0d552da 100644 --- a/patches/server/0679-Add-packet-limiter-config.patch +++ b/patches/server/0674-Add-packet-limiter-config.patch @@ -24,7 +24,7 @@ and an action can be defined: DROP or KICK If interval or rate are less-than 0, the limit is ignored diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 5d73043dc9847ae195cef804fa0b0f4bf6db06f2..e18406b4172499b0cb116a45cd5a968ae3e3fdce 100644 +index 6e75a5e7eb51a5bbb7b73436bbd37df1519cb0fc..a0434b92615c10a319eb4528808a83d01df2c516 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -132,6 +132,22 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0680-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0675-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0680-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0675-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0681-Ensure-valid-vehicle-status.patch b/patches/server/0676-Ensure-valid-vehicle-status.patch similarity index 91% rename from patches/server/0681-Ensure-valid-vehicle-status.patch rename to patches/server/0676-Ensure-valid-vehicle-status.patch index f98873e291df..c5d3159b8339 100644 --- a/patches/server/0681-Ensure-valid-vehicle-status.patch +++ b/patches/server/0676-Ensure-valid-vehicle-status.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure valid vehicle status diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8d657cdb516b6b439b29100c48cccd5b27178fe9..5d30d67745ce3988f42457137f43b15b75a96a0c 100644 +index 9cd64d14d4b6df92bb30d0ad610f8af85791962a..c1dd624e03c85eaba8733769dc650d33142af714 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -576,7 +576,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0682-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0677-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0682-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0677-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0683-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0678-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0683-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0678-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0684-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0679-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0684-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0679-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0685-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0680-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0685-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0680-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0686-Preserve-overstacked-loot.patch b/patches/server/0681-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0686-Preserve-overstacked-loot.patch rename to patches/server/0681-Preserve-overstacked-loot.patch diff --git a/patches/server/0687-Update-head-rotation-in-missing-places.patch b/patches/server/0682-Update-head-rotation-in-missing-places.patch similarity index 84% rename from patches/server/0687-Update-head-rotation-in-missing-places.patch rename to patches/server/0682-Update-head-rotation-in-missing-places.patch index 75018caea04e..a55311ded37f 100644 --- a/patches/server/0687-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0682-Update-head-rotation-in-missing-places.patch @@ -8,10 +8,10 @@ This is because bukkit uses a separate head rotation field for yaw. This issue only applies to players. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d548a262515548808ffe075606ee2f2dba38740f..fe0f57dd69cb5477b64317ef940e3f748037d0e0 100644 +index 51791692213866adaff2eea48f14f818aaaa276c..b90caa5e25837bfb866bbac884468bd730b1f6d5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1917,6 +1917,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1875,6 +1875,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setXRot(Mth.clamp(pitch, -90.0F, 90.0F) % 360.0F); this.yRotO = this.getYRot(); this.xRotO = this.getXRot(); @@ -19,7 +19,7 @@ index d548a262515548808ffe075606ee2f2dba38740f..fe0f57dd69cb5477b64317ef940e3f74 } public void absMoveTo(double x, double y, double z) { -@@ -1955,6 +1956,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1913,6 +1914,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setXRot(pitch); this.setOldPosAndRot(); this.reapplyPosition(); diff --git a/patches/server/0688-prevent-unintended-light-block-manipulation.patch b/patches/server/0683-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0688-prevent-unintended-light-block-manipulation.patch rename to patches/server/0683-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0689-Fix-CraftCriteria-defaults-map.patch b/patches/server/0684-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0689-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0684-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0690-Fix-upstreams-block-state-factories.patch b/patches/server/0685-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0690-Fix-upstreams-block-state-factories.patch rename to patches/server/0685-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0691-Configurable-feature-seeds.patch b/patches/server/0686-Configurable-feature-seeds.patch similarity index 96% rename from patches/server/0691-Configurable-feature-seeds.patch rename to patches/server/0686-Configurable-feature-seeds.patch index dfeea66b8d19..c376ba22605b 100644 --- a/patches/server/0691-Configurable-feature-seeds.patch +++ b/patches/server/0686-Configurable-feature-seeds.patch @@ -19,7 +19,7 @@ index 1080e1f67afe5574baca0df50cdb1d029a7a586a..a2f71a6d1a9e98133dff6cd0f625da94 } final Object val = config.get(key); diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 0a21632a3e02690a8edcc17ac25d2551a8964bbe..10b4458f3081dea06c1ff39d4134ab8e99adcc99 100644 +index 180f8ae443d1ea44a748c7f3ebb82a0bab8d31f1..f8306b4d0d1c0a4e7336bd5f99222f59920ab796 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -431,7 +431,14 @@ public abstract class ChunkGenerator { diff --git a/patches/server/0692-Add-root-admin-user-detection.patch b/patches/server/0687-Add-root-admin-user-detection.patch similarity index 100% rename from patches/server/0692-Add-root-admin-user-detection.patch rename to patches/server/0687-Add-root-admin-user-detection.patch diff --git a/patches/server/0693-Always-allow-item-changing-in-Fireball.patch b/patches/server/0688-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0693-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0688-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0694-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0689-don-t-attempt-to-teleport-dead-entities.patch similarity index 91% rename from patches/server/0694-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0689-don-t-attempt-to-teleport-dead-entities.patch index 9ad1287070fb..6410a0cf6c44 100644 --- a/patches/server/0694-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0689-don-t-attempt-to-teleport-dead-entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fe0f57dd69cb5477b64317ef940e3f748037d0e0..22d25fea0c995bf1509bb78d5f10e2b63eb484cb 100644 +index b90caa5e25837bfb866bbac884468bd730b1f6d5..6c2c9c2e0599fbe03f6a1622c64e071f92b66f34 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -793,7 +793,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0695-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0690-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 94% rename from patches/server/0695-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0690-Prevent-excessive-velocity-through-repeated-crits.patch index 0f925cea8f17..7bef82bf1853 100644 --- a/patches/server/0695-Prevent-excessive-velocity-through-repeated-crits.patch +++ b/patches/server/0690-Prevent-excessive-velocity-through-repeated-crits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index dfc62f5cfad3e0e0f5f25c614055426bbfcd5327..3fca4aad128195325d9d00433fae09f193f8f868 100644 +index 09425940b041755fd640a94362fffcd69636bcf1..9bd611292cf6e686c9e737d332bb0ae6d2fbaa98 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2677,13 +2677,26 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0696-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0691-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0696-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0691-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0697-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0692-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0697-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0692-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0698-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0693-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 98% rename from patches/server/0698-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0693-Prevent-sending-oversized-item-data-in-equipment-and.patch index 5985cfea035f..93eb21653236 100644 --- a/patches/server/0698-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0693-Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -34,7 +34,7 @@ index e0802f1cb73a80b08482832c2b269ac8485d5c1a..945a0317e9e49a159a1f42882a0a267a } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3fca4aad128195325d9d00433fae09f193f8f868..c8592032106e1e355fa51428cde03ec3c4184953 100644 +index 9bd611292cf6e686c9e737d332bb0ae6d2fbaa98..afed1b1287668250974bea61a7bc1b6720d19701 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3188,7 +3188,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0699-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0694-Hide-unnecessary-itemmeta-from-clients.patch similarity index 97% rename from patches/server/0699-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0694-Hide-unnecessary-itemmeta-from-clients.patch index b97231a3bae2..b59fc0acc1bd 100644 --- a/patches/server/0699-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0694-Hide-unnecessary-itemmeta-from-clients.patch @@ -18,7 +18,7 @@ index 945a0317e9e49a159a1f42882a0a267a2141e86d..e9fd9590e90e58fd4c31985a704a4511 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c84a8e6fc5f136b12bc542ec64a6686386bfe0cf..2c4da4f18a217269f17e281cf99a573e759a5d52 100644 +index 0280c215f4e502cd0471523b040d8b54c50f7ab8..5aa9f337e1e251485310436f87786b02d181bcbb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2561,8 +2561,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -33,7 +33,7 @@ index c84a8e6fc5f136b12bc542ec64a6686386bfe0cf..2c4da4f18a217269f17e281cf99a573e } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c8592032106e1e355fa51428cde03ec3c4184953..51e8cfeb21206793245b54379c5a14266d3e67bd 100644 +index afed1b1287668250974bea61a7bc1b6720d19701..fc965b9d51cc0c8fd5c0ea6440e4eae3eb50ed73 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3190,7 +3190,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0700-Fix-Spigot-growth-modifiers.patch b/patches/server/0695-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0700-Fix-Spigot-growth-modifiers.patch rename to patches/server/0695-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0701-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0696-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0701-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0696-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0702-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0697-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0702-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0697-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0703-Optimize-HashMapPalette.patch b/patches/server/0698-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0703-Optimize-HashMapPalette.patch rename to patches/server/0698-Optimize-HashMapPalette.patch diff --git a/patches/server/0704-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0699-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 98% rename from patches/server/0704-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0699-Allow-delegation-to-vanilla-chunk-gen.patch index 56b54104c807..caa2d8631bae 100644 --- a/patches/server/0704-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0699-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b603541d56c7cee7aff8d3448d18c76cd72b63cb..4dc80d0cbd414cde8137d7030d7fe90d1fac424a 100644 +index b9e6d28d8eb982a404981ac4df71238bf30d0989..468756c24c9439fd6afe4f73f82e0094e41ade25 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2459,6 +2459,88 @@ public final class CraftServer implements Server { diff --git a/patches/server/0707-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0700-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0707-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0700-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0708-Add-more-Campfire-API.patch b/patches/server/0701-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0708-Add-more-Campfire-API.patch rename to patches/server/0701-Add-more-Campfire-API.patch diff --git a/patches/server/0709-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0702-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 88% rename from patches/server/0709-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0702-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch index f83ede080746..f8ec0881ddc2 100644 --- a/patches/server/0709-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch +++ b/patches/server/0702-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch @@ -8,10 +8,10 @@ This ensures at least a valid version of the chunk exists on disk, even if outdated 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 1f8fa4a054ed1c76688d1a919ea170587fb4806f..50de979a447171ab98de59bf25b6c82871d03543 100644 +index 0ae3d1ea6f00efcdea5da5bf1a0f984f4473f5a2..6ca572500a3bb36acf481e54262e811295d64136 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 -@@ -1003,6 +1003,9 @@ public class RegionFile implements AutoCloseable { +@@ -529,6 +529,9 @@ public class RegionFile implements AutoCloseable { } } @@ -21,7 +21,7 @@ index 1f8fa4a054ed1c76688d1a919ea170587fb4806f..50de979a447171ab98de59bf25b6c828 // Paper end private class ChunkBuffer extends ByteArrayOutputStream { -@@ -1018,6 +1021,24 @@ public class RegionFile implements AutoCloseable { +@@ -544,6 +547,24 @@ public class RegionFile implements AutoCloseable { this.pos = chunkcoordintpair; } @@ -47,10 +47,10 @@ index 1f8fa4a054ed1c76688d1a919ea170587fb4806f..50de979a447171ab98de59bf25b6c828 ByteBuffer bytebuffer = ByteBuffer.wrap(this.buf, 0, this.count); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 156cecae8ea7ffbc38974829942a1c92e828eca9..a25e7183da64f726773aa279707ae67941246b46 100644 +index 9e30b47ece5549c30f487e5542ae65d5faaa8c39..99f2e104b2214dbbc0b6e43d9011744ff4b0b843 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -@@ -314,10 +314,17 @@ public class RegionFileStorage implements AutoCloseable { +@@ -286,10 +286,17 @@ public class RegionFileStorage implements AutoCloseable { NbtIo.write(nbt, (DataOutput) dataoutputstream); regionfile.setStatus(pos.x, pos.z, ChunkSerializer.getStatus(nbt)); // Paper - Cache chunk status regionfile.setOversized(pos.x, pos.z, false); // Paper - We don't do this anymore, mojang stores differently, but clear old meta flag if it exists to get rid of our own meta file once last oversized is gone @@ -69,7 +69,7 @@ index 156cecae8ea7ffbc38974829942a1c92e828eca9..a25e7183da64f726773aa279707ae679 } catch (Throwable throwable1) { throwable.addSuppressed(throwable1); } -@@ -325,10 +332,7 @@ public class RegionFileStorage implements AutoCloseable { +@@ -297,10 +304,7 @@ public class RegionFileStorage implements AutoCloseable { throw throwable; } @@ -81,7 +81,7 @@ index 156cecae8ea7ffbc38974829942a1c92e828eca9..a25e7183da64f726773aa279707ae679 } // Paper start return; -@@ -374,4 +378,13 @@ public class RegionFileStorage implements AutoCloseable { +@@ -346,4 +350,13 @@ public class RegionFileStorage implements AutoCloseable { } } diff --git a/patches/server/0711-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0703-Forward-CraftEntity-in-teleport-command.patch similarity index 89% rename from patches/server/0711-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0703-Forward-CraftEntity-in-teleport-command.patch index d63ed2b34c84..68f60189303a 100644 --- a/patches/server/0711-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0703-Forward-CraftEntity-in-teleport-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 696497771e607cd07bd8414deeffdd0f211a5ef6..85c48c92987bd87ee5e8c0ffb8847447e7ba4b78 100644 +index 6c2c9c2e0599fbe03f6a1622c64e071f92b66f34..3e8fe380f676fc93538a75650aa23e9034409614 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3530,6 +3530,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3344,6 +3344,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void restoreFrom(Entity original) { @@ -22,7 +22,7 @@ index 696497771e607cd07bd8414deeffdd0f211a5ef6..85c48c92987bd87ee5e8c0ffb8847447 CompoundTag nbttagcompound = original.saveWithoutId(new CompoundTag()); nbttagcompound.remove("Dimension"); -@@ -3620,10 +3627,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3434,10 +3441,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } // CraftBukkit end diff --git a/patches/server/0712-Improve-scoreboard-entries.patch b/patches/server/0704-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0712-Improve-scoreboard-entries.patch rename to patches/server/0704-Improve-scoreboard-entries.patch diff --git a/patches/server/0713-Entity-powdered-snow-API.patch b/patches/server/0705-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0713-Entity-powdered-snow-API.patch rename to patches/server/0705-Entity-powdered-snow-API.patch diff --git a/patches/server/0714-Add-API-for-item-entity-health.patch b/patches/server/0706-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0714-Add-API-for-item-entity-health.patch rename to patches/server/0706-Add-API-for-item-entity-health.patch diff --git a/patches/server/0716-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0707-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0716-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0707-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0717-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0708-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0717-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0708-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0718-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0709-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0718-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0709-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0719-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0710-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0719-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0710-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0720-Fix-bees-aging-inside-hives.patch b/patches/server/0711-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0720-Fix-bees-aging-inside-hives.patch rename to patches/server/0711-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0721-Bucketable-API.patch b/patches/server/0712-Bucketable-API.patch similarity index 100% rename from patches/server/0721-Bucketable-API.patch rename to patches/server/0712-Bucketable-API.patch diff --git a/patches/server/0722-Validate-usernames.patch b/patches/server/0713-Validate-usernames.patch similarity index 93% rename from patches/server/0722-Validate-usernames.patch rename to patches/server/0713-Validate-usernames.patch index 2c5507f00c39..230d95c9d711 100644 --- a/patches/server/0722-Validate-usernames.patch +++ b/patches/server/0713-Validate-usernames.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Validate usernames diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 67c1cf5eb198079bd146a4a8ca0492b94cca788c..c03329267a2a97af32a0c2c9d7e94fa00596e1cf 100644 +index d4658328eeecb1c9e3e25eec14dea07e9e2a8b74..ebda34825bbd10145a81d54c345e31c2a4fb5de4 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -63,6 +63,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -26,7 +26,7 @@ index 67c1cf5eb198079bd146a4a8ca0492b94cca788c..c03329267a2a97af32a0c2c9d7e94fa0 GameProfile gameprofile = this.server.getSingleplayerProfile(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 00f65551b82935a6b7b88cba4650404b9311f8f2..801b1f9b9b7dcdf4fe758e3a7a5800bf4b07d93b 100644 +index 385a2abff1660ed892a498e1d3283eb3b9fc4310..89e745736e6b53223cbab9dd63456ace43757f75 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -679,7 +679,7 @@ public abstract class PlayerList { @@ -39,7 +39,7 @@ index 00f65551b82935a6b7b88cba4650404b9311f8f2..801b1f9b9b7dcdf4fe758e3a7a5800bf } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 80caada014bae0571a5aa6aa67d9bb87f89db17f..61516fbc3cbfb3aa85895b4458b5319752149f73 100644 +index e33278611e4f52ff01cf628c570bd3378ff5c071..dbecf65fdd4e094b9b8b8f9267618934642db40f 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -2340,9 +2340,23 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0723-Make-water-animal-spawn-height-configurable.patch b/patches/server/0714-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0723-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0714-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 96% rename from patches/server/0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 9a8d9831b9f2..2c7897ae7034 100644 --- a/patches/server/0724-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ec48aea4e352e8ee3ad8cda8ce8ec33daf49dae8..5329f98cd455e863a1eae9dc12d26146e492e730 100644 +index 6f2fcf39835d8a8b7408a39a511a2a9ee1e31248..497cc9729faceccaa43ac0a39ec75674507b1567 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -596,7 +596,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 10b4458f3081dea06c1ff39d4134ab8e99adcc99..6b743d4c7b304c21e2e89300e69df8eff672e8a6 100644 +index f8306b4d0d1c0a4e7336bd5f99222f59920ab796..aa2a014f5451e780219415fffcb64a6e7cdf9b87 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -568,7 +568,7 @@ public abstract class ChunkGenerator { diff --git a/patches/server/0738-Implement-regenerateChunk.patch b/patches/server/0729-Implement-regenerateChunk.patch similarity index 98% rename from patches/server/0738-Implement-regenerateChunk.patch rename to patches/server/0729-Implement-regenerateChunk.patch index 24b04eadce8b..53ba1bb4ffab 100644 --- a/patches/server/0738-Implement-regenerateChunk.patch +++ b/patches/server/0729-Implement-regenerateChunk.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement regenerateChunk Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 94f722229432d5b88fc1ced115b0fbeb0eca5f57..ba71ea08e1e2fa178366fdce1aa752fa12030ee6 100644 +index 921cbadba393616a7169e708a60846eea20b3438..f59555c21014cf5ff0b0e1c2c5fd0f73ba689803 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -144,6 +144,7 @@ import org.jetbrains.annotations.NotNull; diff --git a/patches/server/0739-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0730-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0739-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0730-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0731-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 92% rename from patches/server/0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0731-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 10fb87ad3231..10ebcc7715c5 100644 --- a/patches/server/0740-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0731-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 3bf600de4eb99bd33bc4cd20529e38002f22f1d3..8257b94fc234b6d10c9120a8ba4de526c45e66b1 100644 +index 4e239b061db4b3d05804dd4fc44bb23bd803597a..c569ddd5ae932d172aa791efab5c92c1394caf02 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2287,6 +2287,8 @@ public final class CraftServer implements Server { diff --git a/patches/server/0741-Add-GameEvent-tags.patch b/patches/server/0732-Add-GameEvent-tags.patch similarity index 97% rename from patches/server/0741-Add-GameEvent-tags.patch rename to patches/server/0732-Add-GameEvent-tags.patch index 58b00003dd1e..55aaa582d5a8 100644 --- a/patches/server/0741-Add-GameEvent-tags.patch +++ b/patches/server/0732-Add-GameEvent-tags.patch @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8257b94fc234b6d10c9120a8ba4de526c45e66b1..1f70bd8267772a6f477caee4958a1cb271b30ee2 100644 +index c569ddd5ae932d172aa791efab5c92c1394caf02..8dc49151791b847aeec4f3f0341de0c6013ed757 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2708,6 +2708,15 @@ public final class CraftServer implements Server { diff --git a/patches/server/0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 83% rename from patches/server/0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index c99353017ec5..ec13c594883e 100644 --- a/patches/server/0742-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,18 +9,18 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5329f98cd455e863a1eae9dc12d26146e492e730..2d41aaa651dfefff9968ccbfee693c4410ba0f4e 100644 +index 497cc9729faceccaa43ac0a39ec75674507b1567..02f2c0185324ffd0f6f0a832f75efec28f691915 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1416,6 +1416,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index ba71ea08e1e2fa178366fdce1aa752fa12030ee6..a39f439716678611bc7daf943d29b4c330ab5acc 100644 +index f59555c21014cf5ff0b0e1c2c5fd0f73ba689803..c0e7680bff3f65269a7031c08c06f38fdbaa4979 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1453,7 +1453,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0752-Expose-furnace-minecart-push-values.patch b/patches/server/0743-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0752-Expose-furnace-minecart-push-values.patch rename to patches/server/0743-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0753-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0744-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0753-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0744-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0754-More-Projectile-API.patch b/patches/server/0745-More-Projectile-API.patch similarity index 99% rename from patches/server/0754-More-Projectile-API.patch rename to patches/server/0745-More-Projectile-API.patch index 0a909b85ae77..fa5579c3591a 100644 --- a/patches/server/0754-More-Projectile-API.patch +++ b/patches/server/0745-More-Projectile-API.patch @@ -509,7 +509,7 @@ index 20f9735c7cb76024e15dbdca7684f5c560876175..8a6af0db8e0aa0cffbf19584be747076 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6423af82fbae4267d06229fde2390bfb5569137a..01fac95fde3c9b9d58e6a7ef7b35b48fe1c992ed 100644 +index 25133298b26523bd36300ab03e216200c915386b..af7e3acde2eb521ac809b4c5980ff6adb30c7135 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -831,19 +831,19 @@ public class CraftEventFactory { diff --git a/patches/server/0755-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0746-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0755-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0746-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0747-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 94% rename from patches/server/0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0747-Don-t-allow-vehicle-movement-from-players-while-tele.patch index b6efa41b2d50..3d23d4c0b641 100644 --- a/patches/server/0756-Don-t-allow-vehicle-movement-from-players-while-tele.patch +++ b/patches/server/0747-Don-t-allow-vehicle-movement-from-players-while-tele.patch @@ -7,7 +7,7 @@ Bring the vehicle move packet behavior in line with the regular player move packet. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e6e9a2688a3d2f789831a9e095e555f784bd9c4a..6842ccf68ab5ae2b2c093ea8ac34eeabc0f95770 100644 +index 5aa9f337e1e251485310436f87786b02d181bcbb..22d93d04d614ad68d12cddd2b7607a8988da0d3c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -465,6 +465,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0757-Implement-getComputedBiome-API.patch b/patches/server/0748-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0757-Implement-getComputedBiome-API.patch rename to patches/server/0748-Implement-getComputedBiome-API.patch diff --git a/patches/server/0758-Make-some-itemstacks-nonnull.patch b/patches/server/0749-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0758-Make-some-itemstacks-nonnull.patch rename to patches/server/0749-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0759-Implement-enchantWithLevels-API.patch b/patches/server/0750-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0759-Implement-enchantWithLevels-API.patch rename to patches/server/0750-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0760-Fix-saving-in-unloadWorld.patch b/patches/server/0751-Fix-saving-in-unloadWorld.patch similarity index 90% rename from patches/server/0760-Fix-saving-in-unloadWorld.patch rename to patches/server/0751-Fix-saving-in-unloadWorld.patch index 8de450b8cc43..04a743911eea 100644 --- a/patches/server/0760-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0751-Fix-saving-in-unloadWorld.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix saving in unloadWorld Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6cbf54f50538082a9027ec04de3337fe20bda452..f4faa98285ab8cd675e84a5f5a02afb0c5cec599 100644 +index 884d3ba1be2d89da076b4cb63da6dd43c1c3ed95..e94c4a5419806e35aaabb88624afe672f93ffa57 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1336,7 +1336,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0761-Buffer-OOB-setBlock-calls.patch b/patches/server/0752-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0761-Buffer-OOB-setBlock-calls.patch rename to patches/server/0752-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0762-Add-TameableDeathMessageEvent.patch b/patches/server/0753-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0762-Add-TameableDeathMessageEvent.patch rename to patches/server/0753-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0754-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 98% rename from patches/server/0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0754-Fix-new-block-data-for-EntityChangeBlockEvent.patch index a82a8f47272a..6f15c61aa801 100644 --- a/patches/server/0763-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0754-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -91,7 +91,7 @@ index 0a2c2b847dc516abf31870116056dbdbb22f31d9..45906d273e6d6ec20cf44b4d07efdac6 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 2a8ed27101ff78542db120ff183ff33276fb832a..fed8a2519f6b20466f1986702baec2c0f7078dfe 100644 +index c360135b923aa8d1ed2c7caf97ede981cb605cf2..f33c03e81b7ff643741f56eea055e6af260de618 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -580,7 +580,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -196,7 +196,7 @@ index 61abbcfe97e3d3e3da5ee658672549d14594ad17..05e14322e519d1399e87beb532e1cc4a } // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 01fac95fde3c9b9d58e6a7ef7b35b48fe1c992ed..269a3837becfe8eb56997276e840c7055e10e6eb 100644 +index af7e3acde2eb521ac809b4c5980ff6adb30c7135..52a4a2b90f5b4684ffb94bf1db6020490e14942d 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1410,11 +1410,11 @@ public class CraftEventFactory { diff --git a/patches/server/0764-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0755-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 93% rename from patches/server/0764-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0755-fix-player-loottables-running-when-mob-loot-gamerule.patch index 84358c61a81d..5345851a6370 100644 --- a/patches/server/0764-fix-player-loottables-running-when-mob-loot-gamerule.patch +++ b/patches/server/0755-fix-player-loottables-running-when-mob-loot-gamerule.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c76358e108a72297baf92b234d43145dde09e99f..aba972c49d6044f5b72c98a2c4f99f6e3d531a91 100644 +index c1dd624e03c85eaba8733769dc650d33142af714..8332af6921e37d7dbf2a57a40f8413443a1706f8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -924,12 +924,14 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0765-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0756-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 85% rename from patches/server/0765-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0756-Ensure-entity-passenger-world-matches-ridden-entity.patch index 3a8db84ffbbc..8a0081b8a6bc 100644 --- a/patches/server/0765-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0756-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6c995ac8a40e61a29d685b5527807efa73375147..cef8f5473baab959471e108b81e418f6a668e8ac 100644 +index 6f1bd75c5bd38ac198290e05ceb2d9cf7fc0fbf1..1c72365643ea807c56f5f0b7484c06252acb1b6e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2846,7 +2846,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2660,7 +2660,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean startRiding(Entity entity, boolean force) { diff --git a/patches/server/0766-cache-resource-keys.patch b/patches/server/0757-cache-resource-keys.patch similarity index 100% rename from patches/server/0766-cache-resource-keys.patch rename to patches/server/0757-cache-resource-keys.patch diff --git a/patches/server/0767-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0758-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/server/0767-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0758-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/server/0768-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0759-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0768-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0759-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0769-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0760-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 100% rename from patches/server/0769-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0760-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch diff --git a/patches/server/0770-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0761-Prevent-tile-entity-copies-loading-chunks.patch similarity index 90% rename from patches/server/0770-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0761-Prevent-tile-entity-copies-loading-chunks.patch index 7e4fc6073694..44efe882ca44 100644 --- a/patches/server/0770-Prevent-tile-entity-copies-loading-chunks.patch +++ b/patches/server/0761-Prevent-tile-entity-copies-loading-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent tile entity copies loading chunks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6842ccf68ab5ae2b2c093ea8ac34eeabc0f95770..985fdb70d4bc9fd6c08de83889108824facfd049 100644 +index 22d93d04d614ad68d12cddd2b7607a8988da0d3c..a5f4bc0160b073c0551107b382889031fed24d52 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3192,7 +3192,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3118,7 +3118,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound); if (this.player.level().isLoaded(blockposition)) { diff --git a/patches/server/0771-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0762-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 92% rename from patches/server/0771-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0762-Use-username-instead-of-display-name-in-PlayerList-g.patch index f6ec1a29509b..ebddad6ea940 100644 --- a/patches/server/0771-Use-username-instead-of-display-name-in-PlayerList-g.patch +++ b/patches/server/0762-Use-username-instead-of-display-name-in-PlayerList-g.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use username instead of display name in diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 506d91df4dbcced7554db14b6efdf8697ea6805a..f22ca56e6acd56d894bd26d46133e835c7901b72 100644 +index ec0c53a86c9e76f8c5bbd0eed8f7c7fa1d31a804..c0ffcca75509b1ccee155c799ad8fbdfa657db26 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1449,7 +1449,7 @@ public abstract class PlayerList { diff --git a/patches/server/0772-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0763-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 98% rename from patches/server/0772-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0763-Pass-ServerLevel-for-gamerule-callbacks.patch index e384656b1c17..8e0d1d5762f4 100644 --- a/patches/server/0772-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0763-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -18,10 +18,10 @@ index bb3acbe0ad049703245c51a92539376811365eb2..30b9685963ffc620846c220d1fff3fda if (dedicatedserverproperties.enableQuery) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 985fdb70d4bc9fd6c08de83889108824facfd049..79f791dbe8dced29b311ad50237da9bfec0fbb2f 100644 +index a5f4bc0160b073c0551107b382889031fed24d52..a08cf32d56b6f5491d2f2e8e9486a5d65ec9a825 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2756,7 +2756,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2682,7 +2682,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH); if (this.server.isHardcore()) { this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper - Expand PlayerGameModeChangeEvent @@ -167,7 +167,7 @@ index f3cdf1fa7731eb7bb1cb89aa6a37204d81257cb0..0112ef51815c4fab38b95d5e917d335e this.onChanged(server); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index a39f439716678611bc7daf943d29b4c330ab5acc..499452383527844354b39b43fb2ea0853ba5478e 100644 +index c0e7680bff3f65269a7031c08c06f38fdbaa4979..f22048c66f28a0c2cb6edb6afda4d3cf1469d913 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2038,7 +2038,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0773-Expand-PlayerItemDamageEvent.patch b/patches/server/0764-Expand-PlayerItemDamageEvent.patch similarity index 100% rename from patches/server/0773-Expand-PlayerItemDamageEvent.patch rename to patches/server/0764-Expand-PlayerItemDamageEvent.patch diff --git a/patches/server/0774-WorldCreator-keepSpawnLoaded.patch b/patches/server/0765-WorldCreator-keepSpawnLoaded.patch similarity index 94% rename from patches/server/0774-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0765-WorldCreator-keepSpawnLoaded.patch index fa5c412bf69a..fb14f7b798bd 100644 --- a/patches/server/0774-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0765-WorldCreator-keepSpawnLoaded.patch @@ -5,7 +5,7 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f4faa98285ab8cd675e84a5f5a02afb0c5cec599..eff4f3100b018bc6475a9307bfe9853cd69abd2f 100644 +index e94c4a5419806e35aaabb88624afe672f93ffa57..583e3cfcd223561d1733c503f84b99edbb4b365e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1283,7 +1283,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0775-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0766-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0775-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0766-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0767-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 97% rename from patches/server/0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0767-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch index bb631548bf3e..b23922a4d122 100644 --- a/patches/server/0776-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch +++ b/patches/server/0767-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Trigger bee_nest_destroyed trigger in the correct place diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 066e7e420b8eaa9733532a893855bcab14c22d0e..cfd09698025262f262489c4d024dc8b0013b542d 100644 +index 03b337ce5ccb1db61dc395b91b061a2aecf8fbf6..c783e0cbc2f124eeacebc7c7cabb9c38f720a328 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -423,12 +423,16 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0777-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0768-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0777-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0768-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0778-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0769-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0778-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0769-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0779-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0770-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0779-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0770-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0780-Add-PlayerStopUsingItemEvent.patch b/patches/server/0771-Add-PlayerStopUsingItemEvent.patch similarity index 91% rename from patches/server/0780-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0771-Add-PlayerStopUsingItemEvent.patch index 68ae540fefa0..a13ae5457ea1 100644 --- a/patches/server/0780-Add-PlayerStopUsingItemEvent.patch +++ b/patches/server/0771-Add-PlayerStopUsingItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c41153ad6025fe276326132f6cbfd3986f9c5c51..35ea0d337684f8ff41142c1defc05121f1348ef7 100644 +index 69afdbf5eac010f04b1a7f0c0b99bc7e0035fda1..6b561cb21497f214b82d8d91affb79ce1f63fbad 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4025,6 +4025,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0781-Don-t-tick-markers.patch b/patches/server/0772-Don-t-tick-markers.patch similarity index 95% rename from patches/server/0781-Don-t-tick-markers.patch rename to patches/server/0772-Don-t-tick-markers.patch index 32bb643d7173..af2d0b352bd1 100644 --- a/patches/server/0781-Don-t-tick-markers.patch +++ b/patches/server/0772-Don-t-tick-markers.patch @@ -23,10 +23,10 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5e5a018433414af76eaa1e781f61612d } }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4b0d854ed9fc16ecbdfabca4192969aa1beeaa19..0d5cdef130fb138c1b373ced129ccca245be4ec0 100644 +index 6540c4e1d9d347ce41fb0f504ee275ee3a1c0a4f..6f271c36f2dc47678f7e0b66872ae2c90baebafc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2585,6 +2585,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2538,6 +2538,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } public void onTickingStart(Entity entity) { diff --git a/patches/server/0782-Expand-FallingBlock-API.patch b/patches/server/0773-Expand-FallingBlock-API.patch similarity index 98% rename from patches/server/0782-Expand-FallingBlock-API.patch rename to patches/server/0773-Expand-FallingBlock-API.patch index 4e95766e5889..0f7c1bbd7b02 100644 --- a/patches/server/0782-Expand-FallingBlock-API.patch +++ b/patches/server/0773-Expand-FallingBlock-API.patch @@ -13,7 +13,7 @@ public net.minecraft.world.entity.item.FallingBlockEntity blockState Co-authored-by: Lukas Planz diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index fc33d05cf1a3cceb220dab1ee1da33ffe37834db..21a4669b01e9c57100224e20500bc23f8e101434 100644 +index bfd8304f4fc2aded1681c7a59cf9d81192e5a3b2..a75e48f27cd8fbf6165c96c5df09671494eb9dd8 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -66,6 +66,7 @@ public class FallingBlockEntity extends Entity { diff --git a/patches/server/0783-Do-not-accept-invalid-client-settings.patch b/patches/server/0774-Do-not-accept-invalid-client-settings.patch similarity index 90% rename from patches/server/0783-Do-not-accept-invalid-client-settings.patch rename to patches/server/0774-Do-not-accept-invalid-client-settings.patch index 18f009fc3c2a..c00092c57a95 100644 --- a/patches/server/0783-Do-not-accept-invalid-client-settings.patch +++ b/patches/server/0774-Do-not-accept-invalid-client-settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Do not accept invalid client settings diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 79f791dbe8dced29b311ad50237da9bfec0fbb2f..f98e289c90425864576dead48eacb21c00970dcc 100644 +index a08cf32d56b6f5491d2f2e8e9486a5d65ec9a825..9810c476ba7cdee6a2ed17c48f8f101426596aea 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3316,6 +3316,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3242,6 +3242,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleClientInformation(ServerboundClientInformationPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); diff --git a/patches/server/0784-Add-support-for-Proxy-Protocol.patch b/patches/server/0775-Add-support-for-Proxy-Protocol.patch similarity index 74% rename from patches/server/0784-Add-support-for-Proxy-Protocol.patch rename to patches/server/0775-Add-support-for-Proxy-Protocol.patch index 306ded183449..ef9bc5a74d2f 100644 --- a/patches/server/0784-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0775-Add-support-for-Proxy-Protocol.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add support for Proxy Protocol diff --git a/build.gradle.kts b/build.gradle.kts -index ff1636d3e047e124c73496f4942e991abe01c150..376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf 100644 +index c6241f858209ed662d8720217d143340916024e9..7c563ef33d12b227856e65392905bffa5289285a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,6 +30,7 @@ dependencies { @@ -17,23 +17,10 @@ index ff1636d3e047e124c73496f4942e991abe01c150..376e8983fdfdbb6c3e5fd8ad0f6a05e6 implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion implementation("org.ow2.asm:asm-commons:9.5") diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 7383c367eba6e157b020655c858fef80bcf91822..0057f3f7669b03c36c3dd2e7629e4551e3cde700 100644 +index 13fc9b88c06b0436d23039ef4686f3a88589447e..a4a29a7ea0035ecf4c61ee8547a9eb24acb667d0 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -@@ -111,6 +111,12 @@ public class ServerConnectionListener { - ServerConnectionListener.LOGGER.info("Paper: Using " + com.velocitypowered.natives.util.Natives.cipher.getLoadedVariant() + " cipher from Velocity."); - // Paper end - Use Velocity cipher - -+ // Paper start - Add support for proxy protocol -+ if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.proxyProtocol) { -+ ServerConnectionListener.LOGGER.info("Paper: Using Proxy Protocol"); -+ } -+ // Paper end - Add support for proxy protocol -+ - this.channels.add(((ServerBootstrap) ((ServerBootstrap) (new ServerBootstrap()).channel(oclass)).childHandler(new ChannelInitializer() { - protected void initChannel(Channel channel) { - Connection.setInitialProtocolAttributes(channel); -@@ -129,6 +135,29 @@ public class ServerConnectionListener { +@@ -124,6 +124,29 @@ public class ServerConnectionListener { Connection object = j > 0 ? new RateKickingConnection(j) : new Connection(PacketFlow.SERVERBOUND); // CraftBukkit - decompile error //ServerConnectionListener.this.connections.add(object); // Paper diff --git a/patches/server/0785-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0776-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0785-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0776-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0786-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0777-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0786-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0777-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0787-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0778-Sanitize-sent-BlockEntity-NBT.patch similarity index 100% rename from patches/server/0787-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0778-Sanitize-sent-BlockEntity-NBT.patch diff --git a/patches/server/0788-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0779-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0788-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0779-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0789-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0780-Prevent-entity-loading-causing-async-lookups.patch similarity index 97% rename from patches/server/0789-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0780-Prevent-entity-loading-causing-async-lookups.patch index 1d69022c7aa0..8742952c58cc 100644 --- a/patches/server/0789-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0780-Prevent-entity-loading-causing-async-lookups.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cef8f5473baab959471e108b81e418f6a668e8ac..2490da0e881e3514466bd44ba4f9336be67d603d 100644 +index 1c72365643ea807c56f5f0b7484c06252acb1b6e..3b23d1e1c1fb76e8931952846aa9f9d34584cd67 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -802,6 +802,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0790-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0781-Throw-exception-on-world-create-while-being-ticked.patch similarity index 91% rename from patches/server/0790-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0781-Throw-exception-on-world-create-while-being-ticked.patch index 8491aaff8b5a..be42f8546a1b 100644 --- a/patches/server/0790-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0781-Throw-exception-on-world-create-while-being-ticked.patch @@ -7,7 +7,7 @@ There are no plans to support creating worlds while worlds are being ticked themselvess. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ffd0e4326c0c4ddd18b0f09f9f3037b1eefd546f..c3ce869eb8c53ba01f41840d050502ce94771253 100644 +index f5c551a0d6a63c4a28169052cb7c8c6d0b688dda..d42d9b38a9334e1e2b83fde671757ec191898c4b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -310,6 +310,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -1633,7 +1634,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper -@@ -1703,6 +1706,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= i) { // CraftBukkit this.level().getProfiler().push("portal"); this.portalTime = i; @@ -22,7 +22,7 @@ index 0d7d96af96eeb882e53938244ca57e0c439eb130..4ac42a1cac859853f64fa5de3e709e78 this.setPortalCooldown(); // CraftBukkit start if (this instanceof ServerPlayer) { -@@ -3105,6 +3112,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2919,6 +2926,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { this.changeDimension(worldserver1); } diff --git a/patches/server/0807-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0797-Don-t-use-level-random-in-entity-constructors.patch similarity index 96% rename from patches/server/0807-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0797-Don-t-use-level-random-in-entity-constructors.patch index c45ff812fbaa..bc78c6a47426 100644 --- a/patches/server/0807-Don-t-use-level-random-in-entity-constructors.patch +++ b/patches/server/0797-Don-t-use-level-random-in-entity-constructors.patch @@ -9,7 +9,7 @@ should be supported. Some entities (for whatever reason) use the level's random in some places. diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index c865456d58cf7c2077ac452b6a1e3db2b84047ef..13efea97d1836a48ef4c0e077a61571d9c171a0e 100644 +index 459f793a6603d4f98c84df4e549f069298c54985..8aaca29b115a55bf48306e71432c4c20d2bd21dc 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -66,7 +66,12 @@ public class ItemEntity extends Entity implements TraceableEntity { diff --git a/patches/server/0808-Send-block-entities-after-destroy-prediction.patch b/patches/server/0798-Send-block-entities-after-destroy-prediction.patch similarity index 95% rename from patches/server/0808-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0798-Send-block-entities-after-destroy-prediction.patch index 04def1f820da..4d84d9c447a1 100644 --- a/patches/server/0808-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0798-Send-block-entities-after-destroy-prediction.patch @@ -7,7 +7,7 @@ Minecraft's prediction system does not handle block entities, so if we are manua block breaking we need to set it after the prediction is finished. This fixes block entities not showing when cancelling the BlockBreakEvent. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index cfd09698025262f262489c4d024dc8b0013b542d..fc19c68c19d443be654a5600f633d3a77f7069c1 100644 +index c783e0cbc2f124eeacebc7c7cabb9c38f720a328..c24701ed78824dc5377f8517dedf6a5aeff0614d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -62,6 +62,8 @@ public class ServerPlayerGameMode { @@ -57,10 +57,10 @@ index cfd09698025262f262489c4d024dc8b0013b542d..fc19c68c19d443be654a5600f633d3a7 } } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7a90ad5c707a01ae63662f94507fab312d415b85..dd1a969c6ac8ee08c9898703953dda88c7b4f97e 100644 +index 15a2d3fb2db4abfe66392a22d9a33159a816f285..e868c434be0bf223728b439df9a0db6afeaee46e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1778,8 +1778,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1704,8 +1704,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return; } // Paper end - Don't allow digging into unloaded chunks diff --git a/patches/server/0809-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0799-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 95% rename from patches/server/0809-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0799-Warn-on-plugins-accessing-faraway-chunks.patch index be3a5623d16b..a68f5b7ce420 100644 --- a/patches/server/0809-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0799-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 17f8dc044619bfa055f67f12cd9a296504ac76ee..b5815acea75cd70f65d9eb2b554b435c91be9994 100644 +index 6309ab0373e7f64c7f63a55d43ff4e54d4542332..d21667480e585c7a124e9c53b4a22fa1a8115082 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -812,7 +812,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -444,7 +444,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } private static boolean isInWorldBoundsHorizontal(BlockPos pos) { @@ -18,7 +18,7 @@ index 17f8dc044619bfa055f67f12cd9a296504ac76ee..b5815acea75cd70f65d9eb2b554b435c private static boolean isOutsideSpawnableHeight(int y) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 499452383527844354b39b43fb2ea0853ba5478e..d4fae4420b96520b2e1f6db40141e5392559c6fe 100644 +index f22048c66f28a0c2cb6edb6afda4d3cf1469d913..7899e9c905dd420821f1c422c6c07e63ac4d3121 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -312,9 +312,24 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0810-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0800-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/server/0810-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0800-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/server/0811-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0801-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0811-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0801-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0812-Collision-API.patch b/patches/server/0802-Collision-API.patch similarity index 100% rename from patches/server/0812-Collision-API.patch rename to patches/server/0802-Collision-API.patch diff --git a/patches/server/0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0803-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 92% rename from patches/server/0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0803-Fix-suggest-command-message-for-brigadier-syntax-exc.patch index c042d581242b..8645146d6179 100644 --- a/patches/server/0813-Fix-suggest-command-message-for-brigadier-syntax-exc.patch +++ b/patches/server/0803-Fix-suggest-command-message-for-brigadier-syntax-exc.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix suggest command message for brigadier syntax exceptions This is a bug accidentally introduced in upstream CB diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 4cec7e5b1086064650af50cc9b89da274c74bfd0..c1a80e0aa6692205f14d01b3c8c069e452101525 100644 +index 8be58d29f2a4753a241e68bd305b3e30186ca0e9..dd7c1ac97505ce7a846aa8ee91bb654d060acc1a 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -392,7 +392,7 @@ public class Commands { diff --git a/patches/server/0814-Block-Ticking-API.patch b/patches/server/0804-Block-Ticking-API.patch similarity index 100% rename from patches/server/0814-Block-Ticking-API.patch rename to patches/server/0804-Block-Ticking-API.patch diff --git a/patches/server/0815-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0805-Add-Velocity-IP-Forwarding-Support.patch similarity index 97% rename from patches/server/0815-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0805-Add-Velocity-IP-Forwarding-Support.patch index 9db3935d77e4..cd339cb4f30e 100644 --- a/patches/server/0815-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0805-Add-Velocity-IP-Forwarding-Support.patch @@ -134,7 +134,7 @@ index 30b9685963ffc620846c220d1fff3fda834f1ffa..6de6dad36203479677a29ad61e21bc36 DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index c03329267a2a97af32a0c2c9d7e94fa00596e1cf..399786839bb9dbf96d2ecd654f999cb944cf2822 100644 +index ebda34825bbd10145a81d54c345e31c2a4fb5de4..42ae62bdbe11fdfbacebf621d64e7c4985bbd1c7 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -64,6 +64,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -162,7 +162,7 @@ index c03329267a2a97af32a0c2c9d7e94fa00596e1cf..399786839bb9dbf96d2ecd654f999cb9 // CraftBukkit start // Paper start - Cache authenticator threads authenticatorPool.execute(new Runnable() { -@@ -291,6 +302,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -289,6 +300,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, // CraftBukkit start private GameProfile callPlayerPreLoginEvents(GameProfile gameprofile) throws Exception { // Paper - Add more fields to AsyncPlayerPreLoginEvent @@ -175,7 +175,7 @@ index c03329267a2a97af32a0c2c9d7e94fa00596e1cf..399786839bb9dbf96d2ecd654f999cb9 String playerName = gameprofile.getName(); java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress(); java.util.UUID uniqueId = gameprofile.getId(); -@@ -336,6 +353,51 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -334,6 +351,51 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @Override public void handleCustomQueryPacket(ServerboundCustomQueryAnswerPacket packet) { @@ -228,7 +228,7 @@ index c03329267a2a97af32a0c2c9d7e94fa00596e1cf..399786839bb9dbf96d2ecd654f999cb9 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 874387cce637c0adc3ded0f45f169c2c3b213d0d..1b4837ddb216d66164a893f5a34c0505c6f1aab2 100644 +index 0d1fbb78394e60666d17fb7be67d5716d02a3099..fd31a716ec66235970af4854dd7d83c1f88e229d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -803,7 +803,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0816-Add-NamespacedKey-biome-methods.patch b/patches/server/0806-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0816-Add-NamespacedKey-biome-methods.patch rename to patches/server/0806-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0817-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0807-Fix-plugin-loggers-on-server-shutdown.patch similarity index 96% rename from patches/server/0817-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0807-Fix-plugin-loggers-on-server-shutdown.patch index df7630d2fee2..a851566240e7 100644 --- a/patches/server/0817-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0807-Fix-plugin-loggers-on-server-shutdown.patch @@ -37,7 +37,7 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c3ce869eb8c53ba01f41840d050502ce94771253..ed9839ff23d0810912a6961979690c3fe9fc0e16 100644 +index d42d9b38a9334e1e2b83fde671757ec191898c4b..8d39cce9f938260817f00f42326771be8ff0fbaf 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1026,6 +1026,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 35ea0d337684f8ff41142c1defc05121f1348ef7..fd0af0cbcef59ff1c23e65a1e214fb9939a56a6e 100644 +index 6b561cb21497f214b82d8d91affb79ce1f63fbad..fca8970baaf7dea9397024f8c1aa2a044f7b721c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3056,37 +3056,15 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -54,7 +54,7 @@ index 35ea0d337684f8ff41142c1defc05121f1348ef7..fd0af0cbcef59ff1c23e65a1e214fb99 this.level().getProfiler().pop(); this.animStep += f2; diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index cd9ef09e2d975ab16a3b96b8662477b687d58a4f..d01570d7c3c8c4bd40cafc32d02774b789355460 100644 +index 20842ed5b730dda88efd0cda9292a37f879a4017..0a207f3f2e4c0790e784fb4b0c3c2dfa49c39724 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -259,13 +259,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { diff --git a/patches/server/0819-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0809-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0819-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0809-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0820-Missing-eating-regain-reason.patch b/patches/server/0810-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0820-Missing-eating-regain-reason.patch rename to patches/server/0810-Missing-eating-regain-reason.patch diff --git a/patches/server/0821-Missing-effect-cause.patch b/patches/server/0811-Missing-effect-cause.patch similarity index 100% rename from patches/server/0821-Missing-effect-cause.patch rename to patches/server/0811-Missing-effect-cause.patch diff --git a/patches/server/0822-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0812-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0822-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0812-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0823-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0813-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0823-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0813-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0824-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0814-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0824-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0814-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0825-Configurable-chat-thread-limit.patch b/patches/server/0815-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0825-Configurable-chat-thread-limit.patch rename to patches/server/0815-Configurable-chat-thread-limit.patch diff --git a/patches/server/0826-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0816-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0826-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0816-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0827-fix-Jigsaw-block-kicking-user.patch b/patches/server/0817-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0827-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0817-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0828-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0818-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0828-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0818-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0829-Add-getDrops-to-BlockState.patch b/patches/server/0819-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0829-Add-getDrops-to-BlockState.patch rename to patches/server/0819-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0830-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0820-Fix-a-bunch-of-vanilla-bugs.patch similarity index 96% rename from patches/server/0830-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0820-Fix-a-bunch-of-vanilla-bugs.patch index c8051b90c4ec..152d117626d2 100644 --- a/patches/server/0830-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0820-Fix-a-bunch-of-vanilla-bugs.patch @@ -113,7 +113,7 @@ index 6cd6d69a20e95e344fc18ab67dc300824537a59b..2e2a7c2cf3081187da817479a9da3eb1 } } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index f761d600bb5d995a25ffbbe5469625508de1f8bc..7fa3066575fd8e762dcf5de59a333e15044226e8 100644 +index dd16f13ca44cda3051a38085f6de117a475ce797..879a07656954fa2492db19a5fa158571de538a4f 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -894,7 +894,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -126,10 +126,10 @@ index f761d600bb5d995a25ffbbe5469625508de1f8bc..7fa3066575fd8e762dcf5de59a333e15 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3d5e055e9ad5dff1ccc0836bd88bbacf09c02173..4f121bf2e36d9d76bb4e7b3c379969105c12065e 100644 +index b15b3c1216baa84f696881deeae2de9d81201e27..f3884f7169835d3d65b8935ee41038f80306a61b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1027,7 +1027,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1006,7 +1006,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } else { AABB axisalignedbb = AABB.encapsulatingFullBlocks(blockposition1, new BlockPos(blockposition1.atY(this.getMaxBuildHeight()))).inflate(3.0D); List list = this.getEntitiesOfClass(LivingEntity.class, axisalignedbb, (entityliving) -> { @@ -139,7 +139,7 @@ index 3d5e055e9ad5dff1ccc0836bd88bbacf09c02173..4f121bf2e36d9d76bb4e7b3c37996910 if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4cad73c9d53198dff598ae2cbc4ff0ea8fc9e828..5bfeb1d214817b425f89265375281395e326c101 100644 +index 1b9459aeb7a676cb3ac1fbee3561f21923d9b20d..b43baee9a03f17801712e8a1af3317e1297248ab 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -468,14 +468,14 @@ public class ServerPlayer extends Player { @@ -148,7 +148,7 @@ index 4cad73c9d53198dff598ae2cbc4ff0ea8fc9e828..5bfeb1d214817b425f89265375281395 if (blockposition1 != null) { - this.moveTo(blockposition1, 0.0F, 0.0F); + this.moveTo(blockposition1, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored - if (world.noCollision(this, this.getBoundingBox(), true)) { // Paper - make sure this loads chunks, we default to NOT loading now + if (world.noCollision((Entity) this)) { break; } } @@ -157,10 +157,10 @@ index 4cad73c9d53198dff598ae2cbc4ff0ea8fc9e828..5bfeb1d214817b425f89265375281395 - this.moveTo(blockposition, 0.0F, 0.0F); + this.moveTo(blockposition, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored - while (!world.noCollision(this, this.getBoundingBox(), true) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { // Paper - make sure this loads chunks, we default to NOT loading now + while (!world.noCollision((Entity) this) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { this.setPos(this.getX(), this.getY() + 1.0D, this.getZ()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index fc19c68c19d443be654a5600f633d3a77f7069c1..9503511b28888e98ed65befdb95d03685ae9e5e1 100644 +index c24701ed78824dc5377f8517dedf6a5aeff0614d..a38cda0029af022eccb12c12f1652fa8053b2aa6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -92,7 +92,7 @@ public class ServerPlayerGameMode { @@ -173,7 +173,7 @@ index fc19c68c19d443be654a5600f633d3a77f7069c1..9503511b28888e98ed65befdb95d0368 this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f22ca56e6acd56d894bd26d46133e835c7901b72..d2d21ccc45381787698c84870537ba11ebb75127 100644 +index c0ffcca75509b1ccee155c799ad8fbdfa657db26..56242bc33ed435e3ab06d7c7bebc05c255538633 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -711,8 +711,10 @@ public abstract class PlayerList { diff --git a/patches/server/0831-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0821-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 88% rename from patches/server/0831-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0821-Remove-unnecessary-onTrackingStart-during-navigation.patch index 0b9ee9c5bf5b..e70e8070cb01 100644 --- a/patches/server/0831-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0821-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4f121bf2e36d9d76bb4e7b3c379969105c12065e..f1f0056157d209ba5d987b6e09ce1fc020920fd9 100644 +index f3884f7169835d3d65b8935ee41038f80306a61b..528901e658cf553de0580bcff21e42740b5d0cd4 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2621,7 +2621,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2566,7 +2566,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; @@ -17,7 +17,7 @@ index 4f121bf2e36d9d76bb4e7b3c379969105c12065e..f1f0056157d209ba5d987b6e09ce1fc0 String s = "onTrackingStart called during navigation iteration"; Util.logAndPauseIfInIde("onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration")); -@@ -2707,7 +2707,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2652,7 +2652,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; diff --git a/patches/server/0832-Fix-custom-piglin-loved-items.patch b/patches/server/0822-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0832-Fix-custom-piglin-loved-items.patch rename to patches/server/0822-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0833-EntityPickupItemEvent-fixes.patch b/patches/server/0823-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0833-EntityPickupItemEvent-fixes.patch rename to patches/server/0823-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0834-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0824-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 95% rename from patches/server/0834-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0824-Correctly-handle-interactions-with-items-on-cooldown.patch index ce638840723c..88286e5950d4 100644 --- a/patches/server/0834-Correctly-handle-interactions-with-items-on-cooldown.patch +++ b/patches/server/0824-Correctly-handle-interactions-with-items-on-cooldown.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Correctly handle interactions with items on cooldown diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 9503511b28888e98ed65befdb95d03685ae9e5e1..870447743db05043f6d3c0f2a699310077529636 100644 +index a38cda0029af022eccb12c12f1652fa8053b2aa6..521fc5fd6b66c7095c729dd4aaf49bbc443f0200 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -516,6 +516,7 @@ public class ServerPlayerGameMode { @@ -30,7 +30,7 @@ index 9503511b28888e98ed65befdb95d03685ae9e5e1..870447743db05043f6d3c0f2a6993100 this.interactResult = event.useItemInHand() == Event.Result.DENY; this.interactPosition = blockposition.immutable(); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 269a3837becfe8eb56997276e840c7055e10e6eb..fe855fd532e80a2d6b10053670dfb1b8fc009ac2 100644 +index 52a4a2b90f5b4684ffb94bf1db6020490e14942d..944bb12b14d50cdd7064ae7300c71465e15cb217 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -543,7 +543,13 @@ public class CraftEventFactory { diff --git a/patches/server/0835-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0825-Add-PlayerInventorySlotChangeEvent.patch similarity index 97% rename from patches/server/0835-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0825-Add-PlayerInventorySlotChangeEvent.patch index fc01c1ca33ed..9fcf5ded688d 100644 --- a/patches/server/0835-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/server/0825-Add-PlayerInventorySlotChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5bfeb1d214817b425f89265375281395e326c101..cdd5c2fa44d114058391b78434e1cb268c40dc6e 100644 +index b43baee9a03f17801712e8a1af3317e1297248ab..de80b618efcf9f0ceae40ed0b53d3436afca27b8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -379,6 +379,25 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0836-Elder-Guardian-appearance-API.patch b/patches/server/0826-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/server/0836-Elder-Guardian-appearance-API.patch rename to patches/server/0826-Elder-Guardian-appearance-API.patch diff --git a/patches/server/0837-Allow-changing-bed-s-occupied-property.patch b/patches/server/0827-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0837-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0827-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0838-Add-entity-knockback-API.patch b/patches/server/0828-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0838-Add-entity-knockback-API.patch rename to patches/server/0828-Add-entity-knockback-API.patch diff --git a/patches/server/0839-Detect-headless-JREs.patch b/patches/server/0829-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0839-Detect-headless-JREs.patch rename to patches/server/0829-Detect-headless-JREs.patch diff --git a/patches/server/0840-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0830-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0840-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0830-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0842-Add-EntityToggleSitEvent.patch b/patches/server/0831-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0842-Add-EntityToggleSitEvent.patch rename to patches/server/0831-Add-EntityToggleSitEvent.patch diff --git a/patches/server/0843-Add-fire-tick-delay-option.patch b/patches/server/0832-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0843-Add-fire-tick-delay-option.patch rename to patches/server/0832-Add-fire-tick-delay-option.patch diff --git a/patches/server/0844-Add-Moving-Piston-API.patch b/patches/server/0833-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0844-Add-Moving-Piston-API.patch rename to patches/server/0833-Add-Moving-Piston-API.patch diff --git a/patches/server/0845-Ignore-impossible-spawn-tick.patch b/patches/server/0834-Ignore-impossible-spawn-tick.patch similarity index 90% rename from patches/server/0845-Ignore-impossible-spawn-tick.patch rename to patches/server/0834-Ignore-impossible-spawn-tick.patch index 9c98b51936c2..fc336b2c29ac 100644 --- a/patches/server/0845-Ignore-impossible-spawn-tick.patch +++ b/patches/server/0834-Ignore-impossible-spawn-tick.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ignore impossible spawn tick diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index b90c1e4e03f85dbfa7134bffd8da59330cea1e28..21b5765a12c5e4998870601e9665bd066a4ea471 100644 +index a9c74ef33182505b6982fea273a760e937ddbf51..7d08099b82dc47cf4b1ce49c721a4aca90b489af 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java @@ -82,6 +82,7 @@ public abstract class BaseSpawner { diff --git a/patches/server/0846-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0835-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0846-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0835-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0847-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0836-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 84% rename from patches/server/0847-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0836-Fix-EntityArgument-suggestion-permissions-to-align-w.patch index e8c896203a87..8a2c14c67ddd 100644 --- a/patches/server/0847-Fix-EntityArgument-suggestion-permissions-to-align-w.patch +++ b/patches/server/0836-Fix-EntityArgument-suggestion-permissions-to-align-w.patch @@ -9,19 +9,19 @@ suggestions, which especially matters when we force suggestions to the server for this type diff --git a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java -index d93698fd814683d451a3c8e8bcbb9cd475c79515..8d79cfa371546996ef65f94232c1d344e7c590ec 100644 +index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..8e008e752c5b11781088e2b4b5ba180bacb59326 100644 --- a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java @@ -128,7 +128,12 @@ public class EntityArgument implements ArgumentType { StringReader stringreader = new StringReader(suggestionsbuilder.getInput()); stringreader.setCursor(suggestionsbuilder.getStart()); -- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2), true); // Paper - tell clients to ask server for suggestions for EntityArguments +- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2)); + // Paper start - Fix EntityArgument suggestion permissions + final boolean permission = object instanceof CommandSourceStack stack + ? stack.bypassSelectorPermissions || stack.hasPermission(2, "minecraft.command.selector") + : icompletionprovider.hasPermission(2); -+ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission, true); // Paper - tell clients to ask server for suggestions for EntityArguments ++ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission); + // Paper end - Fix EntityArgument suggestion permissions try { diff --git a/patches/server/0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 92% rename from patches/server/0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index 52bbf44364df..7b4cc4c7a21b 100644 --- a/patches/server/0848-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4ac42a1cac859853f64fa5de3e709e7826d1f27f..888a8f5920083a24601d13123b6defd12b6b64d7 100644 +index 0ab98129e5d3e09046b76938a7246a89602b95a9..df64101be3440828479ef4afeb70140eb4bdd9da 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3377,6 +3377,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3191,6 +3191,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S pluginManager.callEvent(entityCombustEvent); if (!entityCombustEvent.isCancelled()) { this.setSecondsOnFire(entityCombustEvent.getDuration(), false); diff --git a/patches/server/0849-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0838-Add-PrePlayerAttackEntityEvent.patch similarity index 93% rename from patches/server/0849-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0838-Add-PrePlayerAttackEntityEvent.patch index de0539fb9eb4..99884e7e7854 100644 --- a/patches/server/0849-Add-PrePlayerAttackEntityEvent.patch +++ b/patches/server/0838-Add-PrePlayerAttackEntityEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PrePlayerAttackEntityEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 61516fbc3cbfb3aa85895b4458b5319752149f73..d72ea2f3d9528f79149791e34065ea1f299cd089 100644 +index dbecf65fdd4e094b9b8b8f9267618934642db40f..06aef23895f486efc7eb00c35df356d0a88d58ed 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1240,8 +1240,17 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0850-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0839-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0850-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0839-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0851-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0840-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0851-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0840-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0852-Add-Player-Warden-Warning-API.patch b/patches/server/0841-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/server/0852-Add-Player-Warden-Warning-API.patch rename to patches/server/0841-Add-Player-Warden-Warning-API.patch diff --git a/patches/server/0853-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0842-More-vanilla-friendly-methods-to-update-trades.patch similarity index 97% rename from patches/server/0853-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0842-More-vanilla-friendly-methods-to-update-trades.patch index 0617aa53ad19..7bb1eafa6b72 100644 --- a/patches/server/0853-More-vanilla-friendly-methods-to-update-trades.patch +++ b/patches/server/0842-More-vanilla-friendly-methods-to-update-trades.patch @@ -5,7 +5,7 @@ Subject: [PATCH] More vanilla friendly methods to update trades diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index b33fa26d6e3cf8999fb24137069d0a4178f82caf..5c2010fb247462433bed6ae58d88a72c4e137ede 100644 +index fb5d4b1a86d00fce9482ed4fd4ae71fdcdb63781..1aae466e3e334d7f4bbb3ea9365a255afcc3dd3a 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -944,6 +944,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler diff --git a/patches/server/0854-Add-paper-dumplisteners-command.patch b/patches/server/0843-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0854-Add-paper-dumplisteners-command.patch rename to patches/server/0843-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0855-check-global-player-list-where-appropriate.patch b/patches/server/0844-check-global-player-list-where-appropriate.patch similarity index 92% rename from patches/server/0855-check-global-player-list-where-appropriate.patch rename to patches/server/0844-check-global-player-list-where-appropriate.patch index 8ce81166b67b..9e3e8c00bf74 100644 --- a/patches/server/0855-check-global-player-list-where-appropriate.patch +++ b/patches/server/0844-check-global-player-list-where-appropriate.patch @@ -7,10 +7,10 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f1f0056157d209ba5d987b6e09ce1fc020920fd9..5b2de5cdac2440a4043c34525a0852067aa9371f 100644 +index 528901e658cf553de0580bcff21e42740b5d0cd4..a15bdf56c32b16c143c3060dc7d5f61544f8dc5f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2744,4 +2744,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2689,4 +2689,12 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::move); } } @@ -24,7 +24,7 @@ index f1f0056157d209ba5d987b6e09ce1fc020920fd9..5b2de5cdac2440a4043c34525a085206 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index fd0af0cbcef59ff1c23e65a1e214fb9939a56a6e..49fdc6d198cc7af31e6c1d1ba52c8adc0fae433f 100644 +index fca8970baaf7dea9397024f8c1aa2a044f7b721c..39a6823a2fef8c3907a39fc611489e07cdf6d1e1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -50,10 +50,10 @@ index d4ac3e566b47cfc8688bcc2ab08385b6de4693f8..7de9d012e7416eaa0189b513a0972c84 if (entityhuman instanceof ServerPlayer) { CriteriaTriggers.CURED_ZOMBIE_VILLAGER.trigger((ServerPlayer) entityhuman, this, entityvillager); diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index 9f892de55ab03367daed4c30cc44c9dd8adc29ed..a3d15f30eaab29d85cb6b3d693df9980a880f686 100644 +index a25497eec004add7408a63b1a0f09e3fa443b324..8c436d16914e160be8e3074badc1293af2ae6b31 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java -@@ -280,4 +280,11 @@ public interface EntityGetter { +@@ -243,4 +243,11 @@ public interface EntityGetter { return null; } diff --git a/patches/server/0856-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0845-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0856-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0845-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0857-ItemStack-damage-API.patch b/patches/server/0846-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0857-ItemStack-damage-API.patch rename to patches/server/0846-ItemStack-damage-API.patch diff --git a/patches/server/0858-Friction-API.patch b/patches/server/0847-Friction-API.patch similarity index 100% rename from patches/server/0858-Friction-API.patch rename to patches/server/0847-Friction-API.patch diff --git a/patches/server/0859-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0848-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0859-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0848-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0860-Fix-player-kick-on-shutdown.patch b/patches/server/0849-Fix-player-kick-on-shutdown.patch similarity index 81% rename from patches/server/0860-Fix-player-kick-on-shutdown.patch rename to patches/server/0849-Fix-player-kick-on-shutdown.patch index 6c78f5fc99f5..0c36dc939894 100644 --- a/patches/server/0860-Fix-player-kick-on-shutdown.patch +++ b/patches/server/0849-Fix-player-kick-on-shutdown.patch @@ -9,15 +9,15 @@ also check if all packets are ignored during the shutdown process. See net.minecraft.network.Connection#channelRead0(ChannelHandlerContext, Packet) and net.minecraft.util.thread.BlockableEventLoop#executeIfPossible(Runnable) diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -index 7297bca9224c12d7ace0e1967340d99436afafc1..3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644 100644 +index 7de24c39b460e43d27839b3821e67213508ece81..454d0187ff8370a0d99cca051ee0a8c50b39cfb7 100644 --- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java +++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -@@ -44,7 +44,7 @@ public class PacketUtils { +@@ -26,7 +26,7 @@ public class PacketUtils { public static void ensureRunningOnSameThread(Packet packet, T listener, BlockableEventLoop engine) throws RunningOnDifferentThreadException { if (!engine.isSameThread()) { - engine.executeIfPossible(() -> { + engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown - packetProcessing.push(listener); // Paper - detailed watchdog information - try { // Paper - detailed watchdog information if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerCommonPacketListenerImpl && ((ServerCommonPacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590 + if (listener.shouldHandleMessage(packet)) { + co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings diff --git a/patches/server/0861-Sync-offhand-slot-in-menus.patch b/patches/server/0850-Sync-offhand-slot-in-menus.patch similarity index 97% rename from patches/server/0861-Sync-offhand-slot-in-menus.patch rename to patches/server/0850-Sync-offhand-slot-in-menus.patch index b04cc1689ceb..ac269b60ca1d 100644 --- a/patches/server/0861-Sync-offhand-slot-in-menus.patch +++ b/patches/server/0850-Sync-offhand-slot-in-menus.patch @@ -8,7 +8,7 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th by pressing the offhand swap item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index cdd5c2fa44d114058391b78434e1cb268c40dc6e..fb2ac7c4b9d938bc699ddc7475e2c3c3777cd056 100644 +index de80b618efcf9f0ceae40ed0b53d3436afca27b8..46a69ef6794065e144e4948ad165a1ea0f0e2f33 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -348,6 +348,13 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0862-Player-Entity-Tracking-Events.patch b/patches/server/0851-Player-Entity-Tracking-Events.patch similarity index 90% rename from patches/server/0862-Player-Entity-Tracking-Events.patch rename to patches/server/0851-Player-Entity-Tracking-Events.patch index 58c861db2024..258f2374658e 100644 --- a/patches/server/0862-Player-Entity-Tracking-Events.patch +++ b/patches/server/0851-Player-Entity-Tracking-Events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player Entity Tracking Events diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 7fa3066575fd8e762dcf5de59a333e15044226e8..6ccd2a5a334c846850a9d064210f2d7f1d311470 100644 +index 879a07656954fa2492db19a5fa158571de538a4f..4a597dd278947c7992d3c09e0813780689cbd9ab 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1405,7 +1405,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -21,10 +21,10 @@ index 7fa3066575fd8e762dcf5de59a333e15044226e8..6ccd2a5a334c846850a9d064210f2d7f } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 888a8f5920083a24601d13123b6defd12b6b64d7..c15c3e4da36c8804934c2c0b046aabd457be6855 100644 +index df64101be3440828479ef4afeb70140eb4bdd9da..c6cddb7099cf713e41b8a2478b562285e2aae3f0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4104,7 +4104,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3918,7 +3918,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void startSeenByPlayer(ServerPlayer player) {} diff --git a/patches/server/0863-Limit-pet-look-distance.patch b/patches/server/0852-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0863-Limit-pet-look-distance.patch rename to patches/server/0852-Limit-pet-look-distance.patch diff --git a/patches/server/0865-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0853-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 97% rename from patches/server/0865-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0853-Fixes-and-additions-to-the-SpawnReason-API.patch index 4398db1d19cd..3a7ad38e7b8e 100644 --- a/patches/server/0865-Fixes-and-additions-to-the-SpawnReason-API.patch +++ b/patches/server/0853-Fixes-and-additions-to-the-SpawnReason-API.patch @@ -8,7 +8,7 @@ Fixes some wrong reasons, and adds missing spawn reasons for entities. Co-authored-by: Doc diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 2fa2e5cada590c0f44a4735bcf20de51892f428b..3c4a57bc6159eac53fe37e817e765018d4b2bec9 100644 +index 3ddb1cc0edddcf77c1b5d6157247498cb90c57a7..847b2637434561e50e3f4f1a3e58cea50caab9f2 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -353,7 +353,7 @@ public class EntityType implements FeatureElement, EntityTypeT diff --git a/patches/server/0866-fix-Instruments.patch b/patches/server/0854-fix-Instruments.patch similarity index 100% rename from patches/server/0866-fix-Instruments.patch rename to patches/server/0854-fix-Instruments.patch diff --git a/patches/server/0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 91% rename from patches/server/0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch index 638f7e665c56..187a68ae375b 100644 --- a/patches/server/0867-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch +++ b/patches/server/0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Improve inlining for some hot BlockBehavior and FluidState diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 100c2629f2746fc00435f60998dba70135637ef7..7fa2b2bc9d6e7eea8b18fd649c9220945d71a4ff 100644 +index d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26..42a086dcebcdba6ce19a8d0e77ba88ba91d63669 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -1078,15 +1078,15 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -995,15 +995,15 @@ public abstract class BlockBehaviour implements FeatureElement { return this.shapeExceedsCube; // Paper - moved into shape cache init } @@ -28,7 +28,7 @@ index 100c2629f2746fc00435f60998dba70135637ef7..7fa2b2bc9d6e7eea8b18fd649c922094 return this.isAir; } -@@ -1170,7 +1170,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1087,7 +1087,7 @@ public abstract class BlockBehaviour implements FeatureElement { } } @@ -37,7 +37,7 @@ index 100c2629f2746fc00435f60998dba70135637ef7..7fa2b2bc9d6e7eea8b18fd649c922094 return this.canOcclude; } -@@ -1378,11 +1378,11 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1295,11 +1295,11 @@ public abstract class BlockBehaviour implements FeatureElement { return this.getBlock().builtInRegistryHolder().is(key); } diff --git a/patches/server/0868-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0856-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0868-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0856-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0869-Add-BlockLockCheckEvent.patch b/patches/server/0857-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0869-Add-BlockLockCheckEvent.patch rename to patches/server/0857-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0870-Add-Sneaking-API-for-Entities.patch b/patches/server/0858-Add-Sneaking-API-for-Entities.patch similarity index 91% rename from patches/server/0870-Add-Sneaking-API-for-Entities.patch rename to patches/server/0858-Add-Sneaking-API-for-Entities.patch index 116708204d3a..0a0f88cbef43 100644 --- a/patches/server/0870-Add-Sneaking-API-for-Entities.patch +++ b/patches/server/0858-Add-Sneaking-API-for-Entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Sneaking API for Entities diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 49e5a9fa95ebf4568eb875953f3032b8a7142080..35b6aa33b7715032686acdfd8e5b07d63729593b 100644 +index dab7108644aefe69448b5e361099d97354c8db1a..243726b6f503acc7d8ced18fbc4e697982a3fc4f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -871,6 +871,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0871-Improve-logging-and-errors.patch b/patches/server/0859-Improve-logging-and-errors.patch similarity index 97% rename from patches/server/0871-Improve-logging-and-errors.patch rename to patches/server/0859-Improve-logging-and-errors.patch index f10cdbe3e8e3..852cf6ed5853 100644 --- a/patches/server/0871-Improve-logging-and-errors.patch +++ b/patches/server/0859-Improve-logging-and-errors.patch @@ -40,10 +40,10 @@ index 536f0c496ce36ca3248fc6eeac9bbd77214a36f9..31718823250a1490b783f426fff65bf5 while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0fe7770fd4506980667e154c83d7024112cac26d..9b7da229e8dc8249b36e7ccf1e77997a146efb88 100644 +index e868c434be0bf223728b439df9a0db6afeaee46e..058ee906665d64b3631be5a6b9de39bd65bcf6be 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3390,7 +3390,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3316,7 +3316,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator)); } catch (ProfilePublicKey.ValidationException profilepublickey_b) { diff --git a/patches/server/0872-Improve-PortalEvents.patch b/patches/server/0860-Improve-PortalEvents.patch similarity index 89% rename from patches/server/0872-Improve-PortalEvents.patch rename to patches/server/0860-Improve-PortalEvents.patch index c3be194782b6..663ad158f5e0 100644 --- a/patches/server/0872-Improve-PortalEvents.patch +++ b/patches/server/0860-Improve-PortalEvents.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c15c3e4da36c8804934c2c0b046aabd457be6855..2777f71abf23be6748b0a80fe4dd64a89d38ffdb 100644 +index c6cddb7099cf713e41b8a2478b562285e2aae3f0..3c9e58f033932bc6c2fad33cd54107952c19b1f2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3762,7 +3762,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3576,7 +3576,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S Location enter = bukkitEntity.getLocation(); Location exit = CraftLocation.toBukkit(exitPosition, exitWorldServer.getWorld()); diff --git a/patches/server/0873-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0861-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0873-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0861-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0874-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0862-Add-missing-SpigotConfig-logCommands-check.patch similarity index 88% rename from patches/server/0874-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0862-Add-missing-SpigotConfig-logCommands-check.patch index f694ecb04de4..32d796a32f4c 100644 --- a/patches/server/0874-Add-missing-SpigotConfig-logCommands-check.patch +++ b/patches/server/0862-Add-missing-SpigotConfig-logCommands-check.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9b7da229e8dc8249b36e7ccf1e77997a146efb88..813f42c2f3925bd50f08b0a4f422bbff91e003e5 100644 +index 058ee906665d64b3631be5a6b9de39bd65bcf6be..07850cf4117f05bfbd96a4f02fd57db1566f90af 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2134,7 +2134,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2060,7 +2060,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void performChatCommand(ServerboundChatCommandPacket packet, LastSeenMessages lastSeenMessages) { // CraftBukkit start String command = "/" + packet.command(); diff --git a/patches/server/0875-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0863-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0875-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0863-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0876-Flying-Fall-Damage.patch b/patches/server/0864-Flying-Fall-Damage.patch similarity index 96% rename from patches/server/0876-Flying-Fall-Damage.patch rename to patches/server/0864-Flying-Fall-Damage.patch index de70f746b54e..4a0d52fb1876 100644 --- a/patches/server/0876-Flying-Fall-Damage.patch +++ b/patches/server/0864-Flying-Fall-Damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index d72ea2f3d9528f79149791e34065ea1f299cd089..7562b8a0f0bc8e43b3c0b64c6d66786c2c93b5cd 100644 +index 06aef23895f486efc7eb00c35df356d0a88d58ed..a629755f07415997e6dbdd96f9b447b90e20b1d5 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 99% rename from patches/server/0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch index 3d4a817caea6..b5625b77685c 100644 --- a/patches/server/0877-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch +++ b/patches/server/0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch @@ -130,7 +130,7 @@ index f81c0d07a5efc92942d8ab5c50a8260db033307d..8afc396c162d928902a9d9beb9f039b0 // See BlockStateFactory#createBlockState(World, BlockPosition, IBlockData, TileEntity) private static CraftBlockState getBlockState(World world, BlockPos blockPosition, net.minecraft.world.level.block.state.BlockState blockData, BlockEntity tileEntity) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index fe855fd532e80a2d6b10053670dfb1b8fc009ac2..019c333a477e6e5f90447110f39ba0e9591a56f3 100644 +index 944bb12b14d50cdd7064ae7300c71465e15cb217..d55c52e6a89ddd469fdd648fbe5d0f44a60b0892 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1045,7 +1045,7 @@ public class CraftEventFactory { diff --git a/patches/server/0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 86% rename from patches/server/0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index 18f693331ef5..8bef6203640d 100644 --- a/patches/server/0878-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2777f71abf23be6748b0a80fe4dd64a89d38ffdb..511d4e3581ce3e525b6d8c1a7d3b2d10ceaca770 100644 +index 3c9e58f033932bc6c2fad33cd54107952c19b1f2..128c21c6fada9de2569e97f3a03decf2d36649c8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1161,7 +1161,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1126,7 +1126,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } if (!bl.getType().isAir()) { diff --git a/patches/server/0879-config-for-disabling-entity-tag-tags.patch b/patches/server/0867-config-for-disabling-entity-tag-tags.patch similarity index 94% rename from patches/server/0879-config-for-disabling-entity-tag-tags.patch rename to patches/server/0867-config-for-disabling-entity-tag-tags.patch index d9fd989731d8..345d6b598197 100644 --- a/patches/server/0879-config-for-disabling-entity-tag-tags.patch +++ b/patches/server/0867-config-for-disabling-entity-tag-tags.patch @@ -5,7 +5,7 @@ Subject: [PATCH] config for disabling entity tag tags diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 3c4a57bc6159eac53fe37e817e765018d4b2bec9..dd4cf9011bf48623e95d5d0f3ff27ee962c88200 100644 +index 847b2637434561e50e3f4f1a3e58cea50caab9f2..a6e20b5ee4fe1841dfc2350264b5935b968fe3f3 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -497,6 +497,13 @@ public class EntityType implements FeatureElement, EntityTypeT diff --git a/patches/server/0880-Use-single-player-info-update-packet-on-join.patch b/patches/server/0868-Use-single-player-info-update-packet-on-join.patch similarity index 92% rename from patches/server/0880-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0868-Use-single-player-info-update-packet-on-join.patch index 32a22c880389..a16546c0e7a3 100644 --- a/patches/server/0880-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0868-Use-single-player-info-update-packet-on-join.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Use single player info update packet on join diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 813f42c2f3925bd50f08b0a4f422bbff91e003e5..7fea36c86d5f11604aa910c84a26898519b61422 100644 +index 07850cf4117f05bfbd96a4f02fd57db1566f90af..50f2c11d98dc4e8aa2e6f577fc802279e33e3e6b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3420,7 +3420,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3346,7 +3346,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.signedMessageDecoder = session.createMessageDecoder(this.player.getUUID()); this.chatMessageChain.append(() -> { this.player.setChatSession(session); @@ -18,7 +18,7 @@ index 813f42c2f3925bd50f08b0a4f422bbff91e003e5..7fea36c86d5f11604aa910c84a268985 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a625091f59aadccae7fc40c94b620248bca125de..f13bb3e384b45f8dd34b61de372c1068437a0f90 100644 +index 56242bc33ed435e3ab06d7c7bebc05c255538633..571354de840bce6fe86f45a1ba38ef923228f27a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { diff --git a/patches/server/0881-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0869-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 95% rename from patches/server/0881-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0869-Correctly-shrink-items-during-EntityResurrectEvent.patch index 00d0733f65dd..049130cd16db 100644 --- a/patches/server/0881-Correctly-shrink-items-during-EntityResurrectEvent.patch +++ b/patches/server/0869-Correctly-shrink-items-during-EntityResurrectEvent.patch @@ -22,7 +22,7 @@ This patch corrects this behaviour by only shrinking the item if a totem of undying was found and the event was called uncancelled. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c13a7ae57c046832f65af11dc5efbc7b197b6f74..a0b7ab6a740992ff7b498effe16dc0c09a3b3f84 100644 +index 89b2977e848afb6ff577382d69616be40fd28a75..32f147ff4c5c889d8ce3c11d5b0c5274f2774248 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1611,7 +1611,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0882-Win-Screen-API.patch b/patches/server/0870-Win-Screen-API.patch similarity index 100% rename from patches/server/0882-Win-Screen-API.patch rename to patches/server/0870-Win-Screen-API.patch diff --git a/patches/server/0883-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0871-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0883-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0871-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0884-Fix-force-opening-enchantment-tables.patch b/patches/server/0872-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0884-Fix-force-opening-enchantment-tables.patch rename to patches/server/0872-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0885-Add-Entity-Body-Yaw-API.patch b/patches/server/0873-Add-Entity-Body-Yaw-API.patch similarity index 93% rename from patches/server/0885-Add-Entity-Body-Yaw-API.patch rename to patches/server/0873-Add-Entity-Body-Yaw-API.patch index 782143031806..f7b3bebaf706 100644 --- a/patches/server/0885-Add-Entity-Body-Yaw-API.patch +++ b/patches/server/0873-Add-Entity-Body-Yaw-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 35b6aa33b7715032686acdfd8e5b07d63729593b..e1a3d047743befa9fbc26e7491cb982df19b2f0c 100644 +index 243726b6f503acc7d8ced18fbc4e697982a3fc4f..8692e54ee6defecf391884488121fef84731eac6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1139,6 +1139,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1135,6 +1135,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { public boolean isInPowderedSnow() { return getHandle().isInPowderSnow || getHandle().wasInPowderSnow; // depending on the location in the entity "tick" either could be needed. } diff --git a/patches/server/0886-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0874-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0886-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0874-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0887-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0875-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 83% rename from patches/server/0887-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0875-Update-the-flag-when-a-captured-block-state-is-outda.patch index 6d30351d9c84..91148395bb84 100644 --- a/patches/server/0887-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0875-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b5815acea75cd70f65d9eb2b554b435c91be9994..460b1c589d335e1c74cffc8d39fa1e4a1abd45c7 100644 +index d21667480e585c7a124e9c53b4a22fa1a8115082..9464d79b8adb5099c4ba4400e5fa8ae6ce7be500 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -922,6 +922,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -554,6 +554,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); this.capturedBlockStates.put(pos.immutable(), blockstate); } diff --git a/patches/server/0888-Add-EntityFertilizeEggEvent.patch b/patches/server/0876-Add-EntityFertilizeEggEvent.patch similarity index 97% rename from patches/server/0888-Add-EntityFertilizeEggEvent.patch rename to patches/server/0876-Add-EntityFertilizeEggEvent.patch index 3558b6dd4da4..6191dc1646ea 100644 --- a/patches/server/0888-Add-EntityFertilizeEggEvent.patch +++ b/patches/server/0876-Add-EntityFertilizeEggEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityFertilizeEggEvent diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 2a3f1d14a4b24a3219d191b4f2e97ed7b061e006..f97bdfbd07db000845d3b791de64056c3c23f7ba 100644 +index 6bbcdd34fb89ea5774e825de8f9a588552716fc2..1a2a4dcb3cfa2690f2aa936a6c176319d807bd74 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -445,6 +445,10 @@ public class Turtle extends Animal { @@ -69,7 +69,7 @@ index 0e85e3ab58d848b119212fa7d2eb4f92d3efe29b..0a5b953bd8c0c7f181da4090b950e9e6 this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F); } // Paper - Call EntityDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 019c333a477e6e5f90447110f39ba0e9591a56f3..0d407f06866571f3d87891e1a22d7aef625b39db 100644 +index d55c52e6a89ddd469fdd648fbe5d0f44a60b0892..8925e85ebbdbca9b9c8527c5494e190b989d1291 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -2092,4 +2092,29 @@ public class CraftEventFactory { diff --git a/patches/server/0889-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0877-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0889-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0877-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0890-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0878-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0890-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0878-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0891-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0879-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0891-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0879-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0892-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0880-Fix-advancement-triggers-for-entity-damage.patch similarity index 97% rename from patches/server/0892-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0880-Fix-advancement-triggers-for-entity-damage.patch index a1bff3ea4178..712823f2d664 100644 --- a/patches/server/0892-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0880-Fix-advancement-triggers-for-entity-damage.patch @@ -23,7 +23,7 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a0b7ab6a740992ff7b498effe16dc0c09a3b3f84..169590748b65c3160361ae41d124e7651871c7f0 100644 +index 32f147ff4c5c889d8ce3c11d5b0c5274f2774248..722273f0307a920365d3b2ca2879e5fc8cc5a398 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2302,7 +2302,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0893-Fix-text-display-error-on-spawn.patch b/patches/server/0881-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0893-Fix-text-display-error-on-spawn.patch rename to patches/server/0881-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0894-Fix-inventories-returning-null-Locations.patch b/patches/server/0882-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0894-Fix-inventories-returning-null-Locations.patch rename to patches/server/0882-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0895-Add-Shearable-API.patch b/patches/server/0883-Add-Shearable-API.patch similarity index 100% rename from patches/server/0895-Add-Shearable-API.patch rename to patches/server/0883-Add-Shearable-API.patch diff --git a/patches/server/0896-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0884-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0896-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0884-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0898-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0885-Fix-beehives-generating-from-using-bonemeal.patch similarity index 96% rename from patches/server/0898-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0885-Fix-beehives-generating-from-using-bonemeal.patch index d8bf63c06264..51f5e5014e18 100644 --- a/patches/server/0898-Fix-beehives-generating-from-using-bonemeal.patch +++ b/patches/server/0885-Fix-beehives-generating-from-using-bonemeal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix beehives generating from using bonemeal diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 6d1986d4dfa4dd4f5988c6afa023f9bd518e1d4e..71d93daa527ae34b83138394fa79289c403a33d8 100644 +index 23fec59b51c99c1f0ac19ffd6c84ffa8fc3caaac..0e9d515381a673e683b63a12c1a9e79a5eedd80b 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -422,6 +422,7 @@ public final class ItemStack { diff --git a/patches/server/0899-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0886-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0899-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0886-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0900-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0887-Treat-sequence-violations-like-they-should-be.patch similarity index 86% rename from patches/server/0900-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0887-Treat-sequence-violations-like-they-should-be.patch index 3470210a4c19..32175ef982fc 100644 --- a/patches/server/0900-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0887-Treat-sequence-violations-like-they-should-be.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7fea36c86d5f11604aa910c84a26898519b61422..ac126672d5fa58be8110c573abce5628f0532967 100644 +index 50f2c11d98dc4e8aa2e6f577fc802279e33e3e6b..522cb67c335ae831d560c8d452b263871782c3fd 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2038,6 +2038,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1964,6 +1964,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void ackBlockChangesUpTo(int sequence) { if (sequence < 0) { diff --git a/patches/server/0901-remove-duplicate-animate-packet-for-records.patch b/patches/server/0888-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0901-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0888-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0902-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0889-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 95% rename from patches/server/0902-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0889-Prevent-causing-expired-keys-from-impacting-new-join.patch index 937e6c80c11b..68ab96c59a60 100644 --- a/patches/server/0902-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0889-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -24,7 +24,7 @@ index 0e54e8faa48751a651b953bec72543a94edf74bc..d43106eb89b14667e85cd6e8fa047d64 UPDATE_GAME_MODE((serialized, buf) -> { serialized.gameMode = GameType.byId(buf.readVarInt()); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ac126672d5fa58be8110c573abce5628f0532967..91dbd137575c9191fcb48d561880f0b7a309334b 100644 +index 522cb67c335ae831d560c8d452b263871782c3fd..d2916743981c6632957ab8bed5ae7a2334c5646b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -287,6 +287,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -49,7 +49,7 @@ index ac126672d5fa58be8110c573abce5628f0532967..91dbd137575c9191fcb48d561880f0b7 } public void resetPosition() { -@@ -3418,6 +3426,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3344,6 +3352,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void resetPlayerChatState(RemoteChatSession session) { this.chatSession = session; diff --git a/patches/server/0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0890-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 86% rename from patches/server/0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0890-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index 1f17b1f7b132..130ee87db03e 100644 --- a/patches/server/0903-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0890-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5b2de5cdac2440a4043c34525a0852067aa9371f..ab472d2e81c0756020ffb727db4b71aeb8d9d020 100644 +index a15bdf56c32b16c143c3060dc7d5f61544f8dc5f..d803b2c246f7e1935d2a466fe509df7fe80b2498 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1704,6 +1704,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1656,6 +1656,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void gameEvent(GameEvent event, Vec3 emitterPos, GameEvent.Context emitter) { diff --git a/patches/server/0904-Use-array-for-gamerule-storage.patch b/patches/server/0891-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0904-Use-array-for-gamerule-storage.patch rename to patches/server/0891-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0905-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0892-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0905-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0892-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0906-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0893-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0906-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0893-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0907-Add-Mob-Experience-reward-API.patch b/patches/server/0894-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0907-Add-Mob-Experience-reward-API.patch rename to patches/server/0894-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0908-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0895-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0908-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0895-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0909-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0896-Fix-DamageCause-for-Falling-Blocks.patch similarity index 92% rename from patches/server/0909-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0896-Fix-DamageCause-for-Falling-Blocks.patch index 82f43537bd37..bb215c5eda79 100644 --- a/patches/server/0909-Fix-DamageCause-for-Falling-Blocks.patch +++ b/patches/server/0896-Fix-DamageCause-for-Falling-Blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix DamageCause for Falling Blocks diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 0d407f06866571f3d87891e1a22d7aef625b39db..03ac6ae291945a31552956fc107a3854227e1151 100644 +index 8925e85ebbdbca9b9c8527c5494e190b989d1291..16ac933192a8d1c805e1b7d38fc1966d7de691a3 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1085,6 +1085,11 @@ public class CraftEventFactory { diff --git a/patches/server/0910-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0897-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0910-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0897-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0911-More-accurate-isInOpenWater-impl.patch b/patches/server/0898-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0911-More-accurate-isInOpenWater-impl.patch rename to patches/server/0898-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0912-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0899-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0912-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0899-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0914-Expand-PlayerItemMendEvent.patch b/patches/server/0900-Expand-PlayerItemMendEvent.patch similarity index 96% rename from patches/server/0914-Expand-PlayerItemMendEvent.patch rename to patches/server/0900-Expand-PlayerItemMendEvent.patch index 48868e0e0076..ee6e1d3c4cea 100644 --- a/patches/server/0914-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0900-Expand-PlayerItemMendEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand PlayerItemMendEvent diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 5685951b71a8b81c7a71fd93b099b276d535b401..b37e13c5de1a0a22a3713d04b203afc6c03ccbac 100644 +index 36d5d1736bf826f3abc756277de431c94cabb744..e814b2ef2577f032d6760de2f798d4fe18c67d0c 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -337,7 +337,7 @@ public class ExperienceOrb extends Entity { @@ -51,7 +51,7 @@ index 65bcc0b4a864c26a3167273230f642e0603c0702..c49d3448866caae8a2ceb51a45c3a056 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 03ac6ae291945a31552956fc107a3854227e1151..b0bcef03da4f4dfe41fb88b47bfec576af76f21b 100644 +index 16ac933192a8d1c805e1b7d38fc1966d7de691a3..8081fe1a1855b6c00bfa3914380ba045ed872292 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1321,10 +1321,10 @@ public class CraftEventFactory { diff --git a/patches/server/0915-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0901-Refresh-ProjectileSource-for-projectiles.patch similarity index 95% rename from patches/server/0915-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0901-Refresh-ProjectileSource-for-projectiles.patch index 2b9a9a63bddf..685db14db82e 100644 --- a/patches/server/0915-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0901-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 511d4e3581ce3e525b6d8c1a7d3b2d10ceaca770..5af4da94c5710fd6d58fecbc60ba432c94319fe3 100644 +index 128c21c6fada9de2569e97f3a03decf2d36649c8..1a6d5af5a9cd91617696c5bc91d9a4d97ec617c4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -385,6 +385,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -26,7 +26,7 @@ index 511d4e3581ce3e525b6d8c1a7d3b2d10ceaca770..5af4da94c5710fd6d58fecbc60ba432c public boolean lastDamageCancelled; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled public boolean persistentInvisibility = false; diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index d01570d7c3c8c4bd40cafc32d02774b789355460..d6c0488618cedfa6fe47375daca4c38a8f49ccbc 100644 +index 0a207f3f2e4c0790e784fb4b0c3c2dfa49c39724..156809090f1f83ad68e7e2477a3cfddac5757a8e 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -50,14 +50,31 @@ public abstract class Projectile extends Entity implements TraceableEntity { diff --git a/patches/server/0916-Add-transient-modifier-API.patch b/patches/server/0902-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0916-Add-transient-modifier-API.patch rename to patches/server/0902-Add-transient-modifier-API.patch diff --git a/patches/server/0917-Fix-block-place-logic.patch b/patches/server/0903-Fix-block-place-logic.patch similarity index 94% rename from patches/server/0917-Fix-block-place-logic.patch rename to patches/server/0903-Fix-block-place-logic.patch index 750fc73db9f5..c6a2251a6a3d 100644 --- a/patches/server/0917-Fix-block-place-logic.patch +++ b/patches/server/0903-Fix-block-place-logic.patch @@ -22,7 +22,7 @@ index 1ac739c92031e80c35e1af4417e6358346079580..8c54b92b65b3d379e14a11370b09d453 if ((entityhuman == null || !entityhuman.getAbilities().instabuild) && itemstack != ItemStack.EMPTY) { // CraftBukkit itemstack.shrink(1); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 71d93daa527ae34b83138394fa79289c403a33d8..94cb7625c451df53de60783535ce0d58b37e35bf 100644 +index 0e9d515381a673e683b63a12c1a9e79a5eedd80b..096eb30dcfdd62b1d946891f7480e9d9c4dbb71d 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -493,13 +493,7 @@ public final class ItemStack { @@ -41,10 +41,10 @@ index 71d93daa527ae34b83138394fa79289c403a33d8..94cb7625c451df53de60783535ce0d58 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 460b1c589d335e1c74cffc8d39fa1e4a1abd45c7..4ffbf7b738445bed08d9f889c6d9b5cadbb2165c 100644 +index 9464d79b8adb5099c4ba4400e5fa8ae6ce7be500..94c553295538c5c27783b11fc9449fead5fca70b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1037,17 +1037,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -669,17 +669,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam CraftWorld world = ((ServerLevel) this).getWorld(); diff --git a/patches/server/0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0904-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 94% rename from patches/server/0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0904-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch index 9871a477c81e..3b104d8aa337 100644 --- a/patches/server/0918-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch +++ b/patches/server/0904-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 94cb7625c451df53de60783535ce0d58b37e35bf..5f3512f58124e0664666eeee541a6a22c022f75a 100644 +index 096eb30dcfdd62b1d946891f7480e9d9c4dbb71d..ecea96202f81e4955c0af554da070984e6e416ff 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -544,7 +544,11 @@ public final class ItemStack { diff --git a/patches/server/0919-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0905-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0919-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0905-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0906-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 94% rename from patches/server/0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0906-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index 15631f0f32df..9b243f88762b 100644 --- a/patches/server/0920-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0906-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1b4837ddb216d66164a893f5a34c0505c6f1aab2..029b88ab23f9c1faa50fb4a367a56ede77008ea8 100644 +index fd31a716ec66235970af4854dd7d83c1f88e229d..fd1245ae71b05d283d2c56d05bc1959788f77a91 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -352,7 +352,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0921-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0907-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0921-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0907-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0922-Fix-sniffer-removeExploredLocation.patch b/patches/server/0908-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0922-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0908-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0923-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0909-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0923-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0909-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0924-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0910-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch similarity index 100% rename from patches/server/0924-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename to patches/server/0910-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch diff --git a/patches/server/0925-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0911-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0925-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0911-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0926-Properly-cancel-usable-items.patch b/patches/server/0912-Properly-cancel-usable-items.patch similarity index 91% rename from patches/server/0926-Properly-cancel-usable-items.patch rename to patches/server/0912-Properly-cancel-usable-items.patch index a97f6e58dc77..dba24348b65e 100644 --- a/patches/server/0926-Properly-cancel-usable-items.patch +++ b/patches/server/0912-Properly-cancel-usable-items.patch @@ -10,7 +10,7 @@ The underlying issue of this is that the client modifies their synced data value them in order for the client to reset their using item state. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 870447743db05043f6d3c0f2a699310077529636..84cc7d9b42cf8b2925ee433d87cb138d58a40fb3 100644 +index 521fc5fd6b66c7095c729dd4aaf49bbc443f0200..93ae151375608b6bbaa5e68a7384a04dc30a9502 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -557,6 +557,7 @@ public class ServerPlayerGameMode { @@ -34,10 +34,10 @@ index 870447743db05043f6d3c0f2a699310077529636..84cc7d9b42cf8b2925ee433d87cb138d return enuminteractionresult; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 91dbd137575c9191fcb48d561880f0b7a309334b..a9a8850b2ddb4b4326542c7efa3f263b1f532b86 100644 +index d2916743981c6632957ab8bed5ae7a2334c5646b..33bdfb66f36cce5e89be1a0de8b5a3346dbfa1e3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1950,6 +1950,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1876,6 +1876,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (cancelled) { @@ -46,7 +46,7 @@ index 91dbd137575c9191fcb48d561880f0b7a309334b..a9a8850b2ddb4b4326542c7efa3f263b return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 169590748b65c3160361ae41d124e7651871c7f0..629d38851558207f302e9baa0157218d7c8596d7 100644 +index 722273f0307a920365d3b2ca2879e5fc8cc5a398..93eecdc6322dfc6161fbb80828d338aa4a311640 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3814,6 +3814,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0927-Add-event-for-player-editing-sign.patch b/patches/server/0913-Add-event-for-player-editing-sign.patch similarity index 98% rename from patches/server/0927-Add-event-for-player-editing-sign.patch rename to patches/server/0913-Add-event-for-player-editing-sign.patch index 62a97be048ce..9e38aba9d85b 100644 --- a/patches/server/0927-Add-event-for-player-editing-sign.patch +++ b/patches/server/0913-Add-event-for-player-editing-sign.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add event for player editing sign diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 5f3512f58124e0664666eeee541a6a22c022f75a..5756ab17e721d5886ed669a0527e18769b8e1b8b 100644 +index ecea96202f81e4955c0af554da070984e6e416ff..e14d928e8bf484c61f2687621623942a27f30db1 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -523,7 +523,7 @@ public final class ItemStack { diff --git a/patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch b/patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch deleted file mode 100644 index 2828d37eeb57..000000000000 --- a/patches/server/0913-Optimise-recalcBlockCounts-for-empty-sections.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Spottedleaf -Date: Mon, 15 May 2023 20:25:26 -0700 -Subject: [PATCH] Optimise recalcBlockCounts() for empty sections - -In 1.18, every chunk section is initialised to a non-null value -and recalcBlockCounts() is invoked for each section. -However, in a standard world, most sections are empty. In such cases, -recalcBlockCounts() would iterate over ever position - even though -the block data would all be air. To avoid this, we skip -searching the section unless the palette indicates there _could_ be -a non-air block state or non-empty fluid state. - -Chunk loading initially showed that recalcBlockCounts() over -sections with a ZeroBitStorage data to to take ~20% of the process, -now it takes <1%. - -diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index 6d340a9b64ae900dfe84eeeaf7a39f7e7a139198..1a473187c22c4158959a3aae33a6823229c5b7a7 100644 ---- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -@@ -144,6 +144,7 @@ public class LevelChunkSection { - this.nonEmptyBlockCount = 0; - this.tickingBlockCount = 0; - this.tickingFluidCount = 0; -+ if (this.maybeHas((BlockState state) -> !state.isAir() || !state.getFluidState().isEmpty())) { // Paper - Perf: do not run forEachLocation on clearly empty sections - this.states.forEachLocation((BlockState iblockdata, int i) -> { - FluidState fluid = iblockdata.getFluidState(); - -@@ -169,6 +170,7 @@ public class LevelChunkSection { - // Paper end - optimise collisions - - }); -+ } // Paper - Perf: do not run forEachLocation on clearly empty sections - // Paper end - } - diff --git a/patches/server/0928-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0914-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0928-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0914-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0929-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0915-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 97% rename from patches/server/0929-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0915-Fix-cmd-permission-levels-for-command-blocks.patch index 588d49923f86..8bc99edf2c90 100644 --- a/patches/server/0929-Fix-cmd-permission-levels-for-command-blocks.patch +++ b/patches/server/0915-Fix-cmd-permission-levels-for-command-blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix cmd permission levels for command blocks diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 21c9b903e26f93b8d4e97f3e0d98e3b2e45857f9..623403c56d79e29421f340e97c05488efaf1893d 100644 +index 907bc9d84dbc98427384cf529bfde4b09d8ce8ca..faa375f2722793a86265248a4be4fa14736d9818 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -204,10 +204,29 @@ public class CommandSourceStack implements ExecutionCommandSource Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) { // CraftBukkit end @@ -56,45 +56,47 @@ index a9a8850b2ddb4b4326542c7efa3f263b1f532b86..0ea2e00372659174e9fd941428e30d1d } } } -@@ -1457,8 +1470,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - boolean flag2 = false; +@@ -1419,14 +1432,29 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + + d8 = d2 - this.player.getZ(); + d10 = d6 * d6 + d7 * d7 + d8 * d8; +- boolean flag2 = false; ++ boolean movedWrongly = false; // Paper - Add fail move event; rename if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot +- flag2 = true; + // Paper start - Add fail move event + io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.MOVED_WRONGLY, + toX, toY, toZ, toYaw, toPitch, true); + if (!event.isAllowed()) { - flag2 = true; // Paper - diff on change, this should be moved wrongly ++ movedWrongly = true; + if (event.getLogWarning()) ServerGamePacketListenerImpl.LOGGER.warn("{} moved wrongly!", this.player.getName().getString()); + } -+ // Paper end - Add fail move event } - // Paper start - optimise out extra getCubes -@@ -1471,6 +1491,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - if (didCollide || !axisalignedbb.equals(newBox)) { - // note: only call after setLocation, or else getBoundingBox is wrong - teleportBack = this.hasNewCollision(worldserver, this.player, axisalignedbb, newBox); -+ // Paper start - Add fail move event -+ if (teleportBack) { -+ io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK, -+ toX, toY, toZ, toYaw, toPitch, false); -+ if (event.isAllowed()) { -+ teleportBack = false; -+ } -+ } -+ // Paper end - Add fail move event - } // else: no collision at all detected, why do we care? - } - if (!this.player.noPhysics && !this.player.isSleeping() && teleportBack) { // Paper end - optimise out extra getCubes -@@ -1564,6 +1593,18 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - } - } +- if (!this.player.noPhysics && !this.player.isSleeping() && (flag2 && worldserver.noCollision(this.player, axisalignedbb) || this.isPlayerCollidingWithAnythingNew(worldserver, axisalignedbb, d0, d1, d2))) { ++ boolean teleportBack = !this.player.noPhysics && !this.player.isSleeping() && (movedWrongly && worldserver.noCollision(this.player, axisalignedbb) || this.isPlayerCollidingWithAnythingNew(worldserver, axisalignedbb, d0, d1, d2)); ++ if (teleportBack) { ++ io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK, ++ toX, toY, toZ, toYaw, toPitch, false); ++ if (event.isAllowed()) { ++ teleportBack = false; ++ } ++ } ++ if (teleportBack) { ++ // Paper end - Add fail move event + this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet. + this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround()); + } else { +@@ -3371,4 +3399,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + InteractionResult run(ServerPlayer player, Entity entity, InteractionHand hand); + } ++ + // Paper start - Add fail move event + private io.papermc.paper.event.player.PlayerFailMoveEvent fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason failReason, -+ double toX, double toY, double toZ, float toYaw, float toPitch, boolean logWarning) { ++ double toX, double toY, double toZ, float toYaw, float toPitch, boolean logWarning) { + Player player = this.getCraftPlayer(); + Location from = new Location(player.getWorld(), this.lastPosX, this.lastPosY, this.lastPosZ, this.lastYaw, this.lastPitch); + Location to = new Location(player.getWorld(), toX, toY, toZ, toYaw, toPitch); @@ -104,6 +106,4 @@ index a9a8850b2ddb4b4326542c7efa3f263b1f532b86..0ea2e00372659174e9fd941428e30d1d + return event; + } + // Paper end - Add fail move event - // Paper start - optimise out extra getCubes - private boolean hasNewCollision(final ServerLevel world, final Entity entity, final AABB oldBox, final AABB newBox) { - final List collisionsBB = new java.util.ArrayList<>(); + } diff --git a/patches/server/0945-Folia-scheduler-and-owned-region-API.patch b/patches/server/0931-Folia-scheduler-and-owned-region-API.patch similarity index 98% rename from patches/server/0945-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0931-Folia-scheduler-and-owned-region-API.patch index 76aeed293a86..85e5d959c0e2 100644 --- a/patches/server/0945-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0931-Folia-scheduler-and-owned-region-API.patch @@ -1148,10 +1148,10 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index afc23f859188a6cda27a683babd551c250a748ef..174f3dab7c7f02dd09d02dc8b4e69190284c3f48 100644 +index 8d39cce9f938260817f00f42326771be8ff0fbaf..fe9a5820d82e5563b53d949af060e80cc7a259f6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1629,6 +1629,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { diff --git a/patches/server/0962-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0948-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 98% rename from patches/server/0962-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0948-Properly-handle-BlockBreakEvent-isDropItems.patch index 337ed7f3d241..07e3ba5929f8 100644 --- a/patches/server/0962-Properly-handle-BlockBreakEvent-isDropItems.patch +++ b/patches/server/0948-Properly-handle-BlockBreakEvent-isDropItems.patch @@ -9,7 +9,7 @@ food consumption, turtle egg count decreases, ice to water conversions and beehive releases diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 84cc7d9b42cf8b2925ee433d87cb138d58a40fb3..98ebffb4f0345aa06c1cfbd404f0884ecc523d69 100644 +index 93ae151375608b6bbaa5e68a7384a04dc30a9502..b48663de0d749f2a6b53c7ad6ff7941e9e8072d6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -433,8 +433,8 @@ public class ServerPlayerGameMode { @@ -39,7 +39,7 @@ index a0ab721a01faccf216259c46e6d6f638426732c2..2d4a770ec7c0737eee6f06b32958716d BeehiveBlockEntity tileentitybeehive = (BeehiveBlockEntity) blockEntity; diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 6c4fd56956982eee743b4dea4e8b925891dd3b6f..5379c4a8c89cbbe73c3ab741d609cecdc81d928c 100644 +index af62781cc96354c87aa63d4f03f9e25b81959081..6ec04bf5cd1f7f2e74d86daa95209bd2f2124b91 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -423,10 +423,18 @@ public class Block extends BlockBehaviour implements ItemLike { diff --git a/patches/server/0963-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0949-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/server/0963-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0949-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/server/0964-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0950-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 94% rename from patches/server/0964-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0950-Configurable-entity-tracking-range-by-Y-coordinate.patch index 0e3d1aa36171..1695f7f673ce 100644 --- a/patches/server/0964-Configurable-entity-tracking-range-by-Y-coordinate.patch +++ b/patches/server/0950-Configurable-entity-tracking-range-by-Y-coordinate.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable entity tracking range by Y coordinate Options to configure entity tracking by Y coordinate, also for each entity category. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 28ad811401cd46ec17fbec27b7e1111ead1d45e7..c7d78fb217869204157606db8d6d73af0126a68f 100644 +index ebf69ec2830a3e3121707fd958f31180d361d9d0..815fb04fb2d14d0cea14a2b3509e81b383bbdbda 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1415,6 +1415,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0965-Add-Listing-API-for-Player.patch b/patches/server/0951-Add-Listing-API-for-Player.patch similarity index 99% rename from patches/server/0965-Add-Listing-API-for-Player.patch rename to patches/server/0951-Add-Listing-API-for-Player.patch index f77a0da9469d..f16c9fe8f915 100644 --- a/patches/server/0965-Add-Listing-API-for-Player.patch +++ b/patches/server/0951-Add-Listing-API-for-Player.patch @@ -74,7 +74,7 @@ index d43106eb89b14667e85cd6e8fa047d64f2e8ec87..56eddd28429cf42c02d88b8bf79f8b61 static class EntryBuilder { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ab750eb0f3520c4bc5f6d06ea095e0bf67d8bdf4..1c89b95ac40120ee970da0f06fd7fff36eb55e61 100644 +index 86c1bb0d324cb070b1dbab8222913d4b46c4a94a..947cb3b24d6e379b080f3de8cd4ea60e0ca457e4 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -356,14 +356,22 @@ public abstract class PlayerList { diff --git a/patches/server/0966-Configurable-Region-Compression-Format.patch b/patches/server/0952-Configurable-Region-Compression-Format.patch similarity index 73% rename from patches/server/0966-Configurable-Region-Compression-Format.patch rename to patches/server/0952-Configurable-Region-Compression-Format.patch index 9a895f6dacdb..facebba0b6d7 100644 --- a/patches/server/0966-Configurable-Region-Compression-Format.patch +++ b/patches/server/0952-Configurable-Region-Compression-Format.patch @@ -5,25 +5,20 @@ Subject: [PATCH] Configurable Region Compression Format 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 50de979a447171ab98de59bf25b6c82871d03543..0761096829e2afc5f8dd88b9a693874fc2f1bb8b 100644 +index 6ca572500a3bb36acf481e54262e811295d64136..c5dbab099a328b37f5a59824384ee6e4be2f3482 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 -@@ -424,11 +424,11 @@ public class RegionFile implements AutoCloseable { +@@ -75,7 +75,7 @@ public class RegionFile implements AutoCloseable { // Paper end - Cache chunk status public RegionFile(Path file, Path directory, boolean dsync) throws IOException { - this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync); + this(file, directory, RegionFileVersion.getCompressionFormat(), dsync); // Paper - Configurable region compression format } - // Paper start - add can recalc flag - public RegionFile(Path file, Path directory, boolean dsync, boolean canRecalcHeader) throws IOException { -- this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync, canRecalcHeader); -+ this(file, directory, RegionFileVersion.getCompressionFormat(), dsync, canRecalcHeader); // Paper - Configurable region compression format - } - // Paper end - add can recalc flag + public RegionFile(Path file, Path directory, RegionFileVersion outputChunkStreamVersion, boolean dsync) throws IOException { diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java -index 4411e427d3b6b592f8a18e61b6c59309cf699d3f..6210a202d27788b1304e749b5bc2d9e2b88f5a63 100644 +index 5fa7a842431dd64c7a0dc5d8e940563a2aeef463..374ff77f15e339500714580673ae8077482ba247 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java @@ -30,6 +30,17 @@ public class RegionFileVersion { diff --git a/patches/server/0967-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0953-Add-BlockFace-to-BlockDamageEvent.patch similarity index 92% rename from patches/server/0967-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/server/0953-Add-BlockFace-to-BlockDamageEvent.patch index 3b4bca41185f..6a0a891d90be 100644 --- a/patches/server/0967-Add-BlockFace-to-BlockDamageEvent.patch +++ b/patches/server/0953-Add-BlockFace-to-BlockDamageEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add BlockFace to BlockDamageEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 98ebffb4f0345aa06c1cfbd404f0884ecc523d69..52764f0f5b42e3b7fd9624bc342e9927037880d2 100644 +index b48663de0d749f2a6b53c7ad6ff7941e9e8072d6..a8c723c718aeb8e2aec997503a071c4cfedcd8ae 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -253,7 +253,7 @@ public class ServerPlayerGameMode { @@ -18,7 +18,7 @@ index 98ebffb4f0345aa06c1cfbd404f0884ecc523d69..52764f0f5b42e3b7fd9624bc342e9927 if (blockEvent.isCancelled()) { // Let the client know the block still exists diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9af251585723ab963a16f0a0405276666e14ce2b..48dcf53304c52a39b60cd5b51e60bca42b7b04d0 100644 +index f64a0628f5d487cb113d86319d7b51237b4a9f6e..51cf0a068d17c0b6eaee38bb1af5b3c470de5875 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -649,13 +649,13 @@ public class CraftEventFactory { diff --git a/patches/server/0968-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0954-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/server/0968-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0954-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/server/0969-Expand-Pose-API.patch b/patches/server/0955-Expand-Pose-API.patch similarity index 91% rename from patches/server/0969-Expand-Pose-API.patch rename to patches/server/0955-Expand-Pose-API.patch index 8985b6b76992..dfd883c86ce9 100644 --- a/patches/server/0969-Expand-Pose-API.patch +++ b/patches/server/0955-Expand-Pose-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 617f96f0def49f9c0331963da01df8245046da66..be36e4307636a02c806ed8eb9d217e84d837fef2 100644 +index 03bc38ef6a31e762a2db9e1993e064eb1656a986..e9df37e802a982d9332a40a7f889206440ac1cc2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -422,6 +422,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -25,7 +25,7 @@ index 617f96f0def49f9c0331963da01df8245046da66..be36e4307636a02c806ed8eb9d217e84 if (pose == this.getPose()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 7abc465b815ed645e84fa6fdd8eda7f4ba87b104..03908ccb1bcd88b68fcec48c581677cb0a484508 100644 +index cc14e635a5f2f8afe593afc676c718c431361dfb..395476ab15a04f95710c671c9a896a9a37daa9b4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -896,6 +896,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0970-More-DragonBattle-API.patch b/patches/server/0956-More-DragonBattle-API.patch similarity index 100% rename from patches/server/0970-More-DragonBattle-API.patch rename to patches/server/0956-More-DragonBattle-API.patch diff --git a/patches/server/0971-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0957-Deep-clone-unhandled-nbt-tags.patch similarity index 100% rename from patches/server/0971-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0957-Deep-clone-unhandled-nbt-tags.patch diff --git a/patches/server/0972-Add-PlayerPickItemEvent.patch b/patches/server/0958-Add-PlayerPickItemEvent.patch similarity index 94% rename from patches/server/0972-Add-PlayerPickItemEvent.patch rename to patches/server/0958-Add-PlayerPickItemEvent.patch index 454a662705ed..dce304a5c23a 100644 --- a/patches/server/0972-Add-PlayerPickItemEvent.patch +++ b/patches/server/0958-Add-PlayerPickItemEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerPickItemEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3e20918724125e7e60f880026bbc93e7cca06897..4ce8af82944b1d164f3435125c22d1ab3a951c19 100644 +index a48915fb14e0bfba762853924913b7760a8aec2f..70941e46dd15db9d221b505577511cd0295ba603 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -941,8 +941,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -907,8 +907,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.disconnect("Invalid hotbar selection (Hacking?)", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause return; } diff --git a/patches/server/0974-Allow-trident-custom-damage.patch b/patches/server/0959-Allow-trident-custom-damage.patch similarity index 100% rename from patches/server/0974-Allow-trident-custom-damage.patch rename to patches/server/0959-Allow-trident-custom-damage.patch diff --git a/patches/server/0975-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0960-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/server/0975-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/server/0960-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/server/0976-Optimize-nearest-structure-border-iteration.patch b/patches/server/0961-Optimize-nearest-structure-border-iteration.patch similarity index 95% rename from patches/server/0976-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0961-Optimize-nearest-structure-border-iteration.patch index ddf78eeb7387..2fedf7960147 100644 --- a/patches/server/0976-Optimize-nearest-structure-border-iteration.patch +++ b/patches/server/0961-Optimize-nearest-structure-border-iteration.patch @@ -14,7 +14,7 @@ ensure that the returned found structure (which may for example be a buried treasure that will be marked on a treasure map) is the same as in vanilla. diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 6b743d4c7b304c21e2e89300e69df8eff672e8a6..9cfb0283e568a7d4d554a2fed2417b375485df94 100644 +index aa2a014f5451e780219415fffcb64a6e7cdf9b87..b8b78494449c0cd638f9706a803dc54e184d981f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -260,12 +260,15 @@ public abstract class ChunkGenerator { diff --git a/patches/server/0977-Implement-OfflinePlayer-isConnected.patch b/patches/server/0962-Implement-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/server/0977-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0962-Implement-OfflinePlayer-isConnected.patch diff --git a/patches/server/0978-Fix-inventory-desync.patch b/patches/server/0963-Fix-inventory-desync.patch similarity index 100% rename from patches/server/0978-Fix-inventory-desync.patch rename to patches/server/0963-Fix-inventory-desync.patch diff --git a/patches/server/0979-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0964-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 98% rename from patches/server/0979-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0964-Add-titleOverride-to-InventoryOpenEvent.patch index 0afa17ab3aea..7e24ee9238ed 100644 --- a/patches/server/0979-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/0964-Add-titleOverride-to-InventoryOpenEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ea76c2845965ceecce8a1c13f1a8454a088a5354..8afbf0d40af4040b18f68a549710112a0aa5fd00 100644 +index 4520a6dddddb3857245c4dc8a0260664fba2dde6..361541e8c152a9311634411d434cc29ec87c17e2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1573,12 +1573,17 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0980-Configure-sniffer-egg-hatch-time.patch b/patches/server/0965-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/server/0980-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0965-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/server/0981-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0966-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 100% rename from patches/server/0981-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0966-Do-crystal-portal-proximity-check-before-entity-look.patch diff --git a/patches/server/0982-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0967-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0982-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0967-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0983-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0968-Add-slot-sanity-checks-in-container-clicks.patch similarity index 94% rename from patches/server/0983-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0968-Add-slot-sanity-checks-in-container-clicks.patch index 0c616ab1a7af..351246e50520 100644 --- a/patches/server/0983-Add-slot-sanity-checks-in-container-clicks.patch +++ b/patches/server/0968-Add-slot-sanity-checks-in-container-clicks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add slot sanity checks in container clicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4ce8af82944b1d164f3435125c22d1ab3a951c19..5234d3dcb60d84f65621713b57bea034038af2a5 100644 +index 70941e46dd15db9d221b505577511cd0295ba603..9342efcb855dce5cced227b15356df090e9c451a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2987,6 +2987,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2900,6 +2900,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl break; case SWAP: if ((packet.getButtonNum() >= 0 && packet.getButtonNum() < 9) || packet.getButtonNum() == 40) { diff --git a/patches/server/0984-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0969-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0984-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0969-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0985-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0970-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0985-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0970-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0986-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0971-Fix-silent-equipment-change-for-mobs.patch similarity index 98% rename from patches/server/0986-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0971-Fix-silent-equipment-change-for-mobs.patch index 71d648e31a96..c56a73642fe4 100644 --- a/patches/server/0986-Fix-silent-equipment-change-for-mobs.patch +++ b/patches/server/0971-Fix-silent-equipment-change-for-mobs.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix silent equipment change for mobs diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 74004b78673e81218b44097eea89a79217e005a6..4050c46df8537da37c3b022d94b064e9d5dd0659 100644 +index 59b776c591af3e890b81f9c2ca67c119ba89695e..c411b692ba71400e4e3d2ed7af4f35c4a4fed4be 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1059,13 +1059,20 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/0987-Fix-spigot-s-Forced-Stats.patch b/patches/server/0972-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0987-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0972-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0988-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0973-Add-missing-InventoryHolders-to-inventories.patch similarity index 100% rename from patches/server/0988-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0973-Add-missing-InventoryHolders-to-inventories.patch diff --git a/patches/server/0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0974-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 93% rename from patches/server/0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0974-Do-not-read-tile-entities-in-chunks-that-are-positio.patch index a9d6af5d2793..058652cce840 100644 --- a/patches/server/0989-Do-not-read-tile-entities-in-chunks-that-are-positio.patch +++ b/patches/server/0974-Do-not-read-tile-entities-in-chunks-that-are-positio.patch @@ -10,10 +10,10 @@ which would cause a crash on Folia but would appear to function fine on Paper. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index c09d42c03e1e430dd65218e8297be9e35cdef030..362516b6703dfa037954c55b8628074965240dff 100644 +index 0ef8ecc7932107029d85e961e2e747d7312d816e..bb5da9ddcd3030c8d6148902f3c649227430baab 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -@@ -381,6 +381,13 @@ public class ChunkSerializer { +@@ -369,6 +369,13 @@ public class ChunkSerializer { for (int k1 = 0; k1 < nbttaglist3.size(); ++k1) { CompoundTag nbttagcompound4 = nbttaglist3.getCompound(k1); @@ -27,7 +27,7 @@ index c09d42c03e1e430dd65218e8297be9e35cdef030..362516b6703dfa037954c55b86280749 ((ChunkAccess) object1).setBlockEntityNbt(nbttagcompound4); } -@@ -679,10 +686,19 @@ public class ChunkSerializer { +@@ -667,10 +674,19 @@ public class ChunkSerializer { CompoundTag nbttagcompound1 = nbttaglist1.getCompound(i); boolean flag = nbttagcompound1.getBoolean("keepPacked"); diff --git a/patches/server/0991-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0975-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0991-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0975-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0992-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0976-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 100% rename from patches/server/0992-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/0976-Remove-Spigot-Bug-Fix-for-MC-109346.patch diff --git a/patches/server/0993-Fix-SuspiciousStewMeta.patch b/patches/server/0977-Fix-SuspiciousStewMeta.patch similarity index 100% rename from patches/server/0993-Fix-SuspiciousStewMeta.patch rename to patches/server/0977-Fix-SuspiciousStewMeta.patch diff --git a/patches/server/0996-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0978-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0996-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0978-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/0997-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0979-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/0997-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0979-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/0998-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0980-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/0998-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/0980-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/1000-Fix-missing-map-initialize-event-call.patch b/patches/server/0981-Fix-missing-map-initialize-event-call.patch similarity index 93% rename from patches/server/1000-Fix-missing-map-initialize-event-call.patch rename to patches/server/0981-Fix-missing-map-initialize-event-call.patch index db53e677a1ed..cd4415beb827 100644 --- a/patches/server/1000-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/0981-Fix-missing-map-initialize-event-call.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f5254ccffc19cf451cd5e358256b97fa33e51cfc..8680f351795eb50b8eff231cde4a28dd2f8aa509 100644 +index d803b2c246f7e1935d2a466fe509df7fe80b2498..9e8f47ab8b337a43760d781852348e4bddbb46d9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2113,13 +2113,25 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1945,13 +1945,25 @@ public class ServerLevel extends Level implements WorldGenLevel { @Nullable @Override public MapItemSavedData getMapData(String id) { diff --git a/patches/server/1001-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/0982-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/1001-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/0982-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/1002-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/0983-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/1002-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/0983-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/1003-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/0984-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/1003-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/0984-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/1004-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0985-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/1004-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/0985-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/1005-Add-player-idle-duration-API.patch b/patches/server/0986-Add-player-idle-duration-API.patch similarity index 100% rename from patches/server/1005-Add-player-idle-duration-API.patch rename to patches/server/0986-Add-player-idle-duration-API.patch diff --git a/patches/server/1006-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0987-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 85% rename from patches/server/1006-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/0987-Don-t-check-if-we-can-see-non-visible-entities.patch index b2ef1fef5c4e..3bc97743170a 100644 --- a/patches/server/1006-Don-t-check-if-we-can-see-non-visible-entities.patch +++ b/patches/server/0987-Don-t-check-if-we-can-see-non-visible-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't check if we can see non-visible entities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 6c28b37056c70fa0076b290b24168bfb79ddd77d..257303162e3550e332cae01d5f6f158558b7ebf8 100644 +index 815fb04fb2d14d0cea14a2b3509e81b383bbdbda..303ab1ea6747bb71adbd3a09e419b2677c9b8c5f 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1431,7 +1431,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1426,7 +1426,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end - Configurable entity tracking range by Y // CraftBukkit start - respect vanish API diff --git a/patches/server/1007-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0988-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/1007-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/0988-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/1008-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0989-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 100% rename from patches/server/1008-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/0989-Allow-null-itemstack-for-Player-sendEquipmentChange.patch diff --git a/patches/server/1009-Optimize-VarInts.patch b/patches/server/0990-Optimize-VarInts.patch similarity index 100% rename from patches/server/1009-Optimize-VarInts.patch rename to patches/server/0990-Optimize-VarInts.patch diff --git a/patches/server/1010-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0991-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/1010-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/0991-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0992-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/server/1011-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/0992-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/server/1012-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0993-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 92% rename from patches/server/1012-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/0993-Broadcast-take-item-packets-with-collector-as-source.patch index 3b3dea7ae88e..91ef80895e7a 100644 --- a/patches/server/1012-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/0993-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 91d88337f9147637b0e8fa1ac8bf9193b44751f2..4785c1029f6c68406d6405ed5e950a75230dfdc0 100644 +index 93eecdc6322dfc6161fbb80828d338aa4a311640..3bedc89be56dddb858d40c155a8137665bbf3726 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3704,7 +3704,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1013-Expand-LingeringPotion-API.patch b/patches/server/0994-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/1013-Expand-LingeringPotion-API.patch rename to patches/server/0994-Expand-LingeringPotion-API.patch diff --git a/patches/server/1014-Add-MaterialTagsTest.patch b/patches/server/0995-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/1014-Add-MaterialTagsTest.patch rename to patches/server/0995-Add-MaterialTagsTest.patch diff --git a/patches/server/1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0996-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 97% rename from patches/server/1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/0996-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch index 3ea939060d76..50459d0a12de 100644 --- a/patches/server/1015-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch +++ b/patches/server/0996-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch @@ -45,7 +45,7 @@ index 0db0d67f9ac15372becc1166c37f7f0aede4a4da..a9e70484b01fc082ea25d43d1d428334 BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 1843ae08cc19cb8f7290403f8622dcd760e9399f..af7ac110a30651ec02fcd57c33eb291c7fc28287 100644 +index 0d66ad3728eb31bb1dbf9f35b4f9193ed3c1f880..4303c4bd263356d9f4ab44226bbc485f4b260413 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -773,7 +773,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1016-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0997-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/1016-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/0997-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/1017-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0998-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/1017-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/0998-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/1018-Add-UUID-attribute-modifier-API.patch b/patches/server/0999-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/1018-Add-UUID-attribute-modifier-API.patch rename to patches/server/0999-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/1019-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/1000-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 93% rename from patches/server/1019-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/1000-Fix-missing-event-call-for-entity-teleport-API.patch index 208b33671292..538b1a6306d7 100644 --- a/patches/server/1019-Fix-missing-event-call-for-entity-teleport-API.patch +++ b/patches/server/1000-Fix-missing-event-call-for-entity-teleport-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix missing event call for entity teleport API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 03908ccb1bcd88b68fcec48c581677cb0a484508..f16ac1d640fc97f348c244d4ea86e3278b30ae19 100644 +index 395476ab15a04f95710c671c9a896a9a37daa9b4..9b8ba3199fa091c7b20a89044ff986d9861f088f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -255,6 +255,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/1020-Lazily-create-LootContext-for-criterions.patch b/patches/server/1001-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/1020-Lazily-create-LootContext-for-criterions.patch rename to patches/server/1001-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/1021-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/1002-Don-t-fire-sync-events-during-worldgen.patch similarity index 96% rename from patches/server/1021-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/1002-Don-t-fire-sync-events-during-worldgen.patch index 5c8ab53f3eef..bf0a1af3935b 100644 --- a/patches/server/1021-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/1002-Don-t-fire-sync-events-during-worldgen.patch @@ -19,10 +19,10 @@ where generation happened directly to a ServerLevel and the entity still has the flag set. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8680f351795eb50b8eff231cde4a28dd2f8aa509..48b0bce01a9ae1ce869203a685be308d49a8c880 100644 +index 9e8f47ab8b337a43760d781852348e4bddbb46d9..0c4c20ce794dd7e12cf1712dccc975bf21b01133 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1676,6 +1676,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1508,6 +1508,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit start private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot @@ -31,7 +31,7 @@ index 8680f351795eb50b8eff231cde4a28dd2f8aa509..48b0bce01a9ae1ce869203a685be308d if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index be36e4307636a02c806ed8eb9d217e84d837fef2..4fdc55b78c4212603bd57a292c72d89c73d28871 100644 +index e9df37e802a982d9332a40a7f889206440ac1cc2..ec5a7f44b379a10c61f152eb57641994d382b017 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -712,7 +712,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -48,7 +48,7 @@ index be36e4307636a02c806ed8eb9d217e84d837fef2..4fdc55b78c4212603bd57a292c72d89c this.entityData.set(Entity.DATA_POSE, pose); } diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index dd4cf9011bf48623e95d5d0f3ff27ee962c88200..a039217f9293ad3b0cc74c49450472eb44c6a139 100644 +index a6e20b5ee4fe1841dfc2350264b5935b968fe3f3..9da8d56ff3768fb37d1ab89300da4eca19e6218d 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -588,9 +588,15 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -68,7 +68,7 @@ index dd4cf9011bf48623e95d5d0f3ff27ee962c88200..a039217f9293ad3b0cc74c49450472eb }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4785c1029f6c68406d6405ed5e950a75230dfdc0..68e1ef67e58ef348d35dfc3b3e890336d4cb2108 100644 +index 3bedc89be56dddb858d40c155a8137665bbf3726..18004cc231804220aa63e41389a8caffcc434d66 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1022-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/1003-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/1022-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/1003-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/1023-Restore-vanilla-entity-drops-behavior.patch b/patches/server/1004-Restore-vanilla-entity-drops-behavior.patch similarity index 95% rename from patches/server/1023-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/1004-Restore-vanilla-entity-drops-behavior.patch index 7ecbf4e964fe..8d807f67cd64 100644 --- a/patches/server/1023-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/1004-Restore-vanilla-entity-drops-behavior.patch @@ -9,10 +9,10 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 575681586667933e7f26bb16f7d2aa7c73188cde..38df47d282713522b3c5784a562ff09e3151fb27 100644 +index 361541e8c152a9311634411d434cc29ec87c17e2..bd1a53e2ce2644681c23f8cf678afa2a99166d9b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -944,22 +944,20 @@ public class ServerPlayer extends Player { +@@ -941,22 +941,20 @@ public class ServerPlayer extends Player { if (this.isRemoved()) { return; } @@ -38,7 +38,7 @@ index 575681586667933e7f26bb16f7d2aa7c73188cde..38df47d282713522b3c5784a562ff09e this.drops.clear(); // SPIGOT-5188: make sure to clear } // Paper - fix player loottables running when mob loot gamerule is false -@@ -2442,8 +2440,8 @@ public class ServerPlayer extends Player { +@@ -2439,8 +2437,8 @@ public class ServerPlayer extends Player { } @Override @@ -50,10 +50,10 @@ index 575681586667933e7f26bb16f7d2aa7c73188cde..38df47d282713522b3c5784a562ff09e if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4fdc55b78c4212603bd57a292c72d89c73d28871..1a19f18b5d4c42ac07e7e4f305e140954dea481b 100644 +index ec5a7f44b379a10c61f152eb57641994d382b017..f2f8bc9f8f55a43174acd9c5e841fb9a7d1b8065 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2702,6 +2702,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2575,6 +2575,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public ItemEntity spawnAtLocation(ItemStack stack, float yOffset) { @@ -79,7 +79,7 @@ index 4fdc55b78c4212603bd57a292c72d89c73d28871..1a19f18b5d4c42ac07e7e4f305e14095 if (stack.isEmpty()) { return null; } else if (this.level().isClientSide) { -@@ -2709,14 +2728,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2582,14 +2601,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -104,7 +104,7 @@ index 4fdc55b78c4212603bd57a292c72d89c73d28871..1a19f18b5d4c42ac07e7e4f305e14095 return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 68e1ef67e58ef348d35dfc3b3e890336d4cb2108..5d27e1d3f15839663d89d198babe3be94cfd3f07 100644 +index 18004cc231804220aa63e41389a8caffcc434d66..563b30aca4a1dd04e298db3b9252904740422203 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -134,7 +134,7 @@ index 45906d273e6d6ec20cf44b4d07efdac68752ee9b..ac9eaeaf7df1e84ee588f371628c0a10 } diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 92b4eecf7b8ce07334256a216d9caf241fa5363b..94a30a0c1266bf919d1dc4ca2b19489edd54a7fa 100644 +index e3412f9dd86dddd241bea8f6dcaeed77a7e67f08..6dfcc296ff7e59ecbebc5446973fabc9eff3cb43 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -610,7 +610,7 @@ public class ArmorStand extends LivingEntity { @@ -165,7 +165,7 @@ index 92b4eecf7b8ce07334256a216d9caf241fa5363b..94a30a0c1266bf919d1dc4ca2b19489e } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index b3b1211d20c6d28a14c656159a1e345f8406a093..4f4d76065edff508ff996d507e955f5d270450ac 100644 +index 3865e6c7af0203ff9a366571a276b8af43b97c7c..93f79e5c7244fc155364a35a75a62d42f2d1ee27 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -937,17 +937,21 @@ public class CraftEventFactory { diff --git a/patches/server/1024-Add-Structure-check-API.patch b/patches/server/1005-Add-Structure-check-API.patch similarity index 91% rename from patches/server/1024-Add-Structure-check-API.patch rename to patches/server/1005-Add-Structure-check-API.patch index 47076e059ca4..032a08ac1e94 100644 --- a/patches/server/1024-Add-Structure-check-API.patch +++ b/patches/server/1005-Add-Structure-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index af7ac110a30651ec02fcd57c33eb291c7fc28287..7f74f80d11784987a438e6aabfac6fcfb5d9a968 100644 +index 4303c4bd263356d9f4ab44226bbc485f4b260413..835ad8dc64f2342da7fd26e6ef2ea4603c115ae6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -230,6 +230,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/1025-Dont-resend-blocks-on-interactions.patch b/patches/server/1006-Dont-resend-blocks-on-interactions.patch similarity index 98% rename from patches/server/1025-Dont-resend-blocks-on-interactions.patch rename to patches/server/1006-Dont-resend-blocks-on-interactions.patch index b6ecf3d30ca6..b9bd693428e3 100644 --- a/patches/server/1025-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/1006-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index fd8a282e0a4316ed3fe51501151f8b49ce8ad0c4..cfd4ac06a9af6bf3fac293110482e1df690e075e 100644 +index a8c723c718aeb8e2aec997503a071c4cfedcd8ae..83e017efd15d0ecaffc327f02d6d5330c8ed6937 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { @@ -149,7 +149,7 @@ index 4b9e726e6ac255e743479d5c2e0cdb98464399a4..6371f326fc86cfc53e39bf8ed13b646f return false; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index a33f22f03c54abed5fc24022a8b5f4af007e4597..ed27a963223bfe18310ad5adabf461b5e307ef9c 100644 +index 0fd5decb0790423aba80a7c1e55ce39aff6761b4..2470acc82292bedd930be404a2e1d1f8fad700e1 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -457,10 +457,12 @@ public final class ItemStack { diff --git a/patches/server/1026-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/1007-Keep-previous-behavior-for-setResourcePack.patch similarity index 100% rename from patches/server/1026-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/1007-Keep-previous-behavior-for-setResourcePack.patch diff --git a/patches/server/1027-properly-read-and-store-sus-effect-duration.patch b/patches/server/1008-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/1027-properly-read-and-store-sus-effect-duration.patch rename to patches/server/1008-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/1028-Use-correct-max-stack-size-in-crafter.patch b/patches/server/1009-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/1028-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/1009-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/1029-add-more-scoreboard-API.patch b/patches/server/1010-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/1029-add-more-scoreboard-API.patch rename to patches/server/1010-add-more-scoreboard-API.patch diff --git a/patches/server/1030-Improve-Registry.patch b/patches/server/1011-Improve-Registry.patch similarity index 100% rename from patches/server/1030-Improve-Registry.patch rename to patches/server/1011-Improve-Registry.patch diff --git a/patches/server/1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 96% rename from patches/server/1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index 77d16936c06a..3a2aaebbf4ef 100644 --- a/patches/server/1031-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,10 +26,10 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5d27e1d3f15839663d89d198babe3be94cfd3f07..5e2f6a1cdaf83468c0db6a2cc8fefb71e6ec51d8 100644 +index 563b30aca4a1dd04e298db3b9252904740422203..b920f72e659956cc2d2d44743caddb0136d467e4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -4204,7 +4204,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4186,7 +4186,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (!(this instanceof ServerPlayer)) { EntityTeleportEvent teleport = new EntityTeleportEvent(this.getBukkitEntity(), new Location(this.level().getWorld(), d3, d4, d5), new Location(this.level().getWorld(), d0, d6, d2)); this.level().getCraftServer().getPluginManager().callEvent(teleport); diff --git a/patches/server/1032-Add-experience-points-API.patch b/patches/server/1013-Add-experience-points-API.patch similarity index 97% rename from patches/server/1032-Add-experience-points-API.patch rename to patches/server/1013-Add-experience-points-API.patch index fe9eb0cc785f..f7a36a99c9fd 100644 --- a/patches/server/1032-Add-experience-points-API.patch +++ b/patches/server/1013-Add-experience-points-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 276f6e650f6b6a4e14bdf3132533668382fb33b4..a0312dc208acda99b871cbd9e62f350e5899303f 100644 +index a629755f07415997e6dbdd96f9b447b90e20b1d5..4713ed2d407e1425d7f5f18d0b43c6917ef876ec 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1833,7 +1833,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/1033-Add-missing-InventoryType.patch b/patches/server/1014-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/1033-Add-missing-InventoryType.patch rename to patches/server/1014-Add-missing-InventoryType.patch diff --git a/patches/server/1034-Add-drops-to-shear-events.patch b/patches/server/1015-Add-drops-to-shear-events.patch similarity index 99% rename from patches/server/1034-Add-drops-to-shear-events.patch rename to patches/server/1015-Add-drops-to-shear-events.patch index 5ff56975af9d..77b35dfe1fcf 100644 --- a/patches/server/1034-Add-drops-to-shear-events.patch +++ b/patches/server/1015-Add-drops-to-shear-events.patch @@ -233,7 +233,7 @@ index 8adcfc8f6772a32b5915e4a07100e8eb735f907a..b5d6857eaf2bed14adcb5f5e80d91b44 } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 4f4d76065edff508ff996d507e955f5d270450ac..bf2323c81ddc5a1e495a694585135249c3fe1c4c 100644 +index 93f79e5c7244fc155364a35a75a62d42f2d1ee27..b9e90f589749dfc9324c4aa2062c505fbd4447bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1716,20 +1716,20 @@ public class CraftEventFactory { diff --git a/patches/server/1035-Add-PlayerShieldDisableEvent.patch b/patches/server/1016-Add-PlayerShieldDisableEvent.patch similarity index 95% rename from patches/server/1035-Add-PlayerShieldDisableEvent.patch rename to patches/server/1016-Add-PlayerShieldDisableEvent.patch index b1e67d302ab5..14308e197048 100644 --- a/patches/server/1035-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/1016-Add-PlayerShieldDisableEvent.patch @@ -16,7 +16,7 @@ sideeffects, meaning the disable event cannot share a handlerlist with the cooldown event diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 4050c46df8537da37c3b022d94b064e9d5dd0659..76497f642ff268d4039590902708e0d21ddb6531 100644 +index c411b692ba71400e4e3d2ed7af4f35c4a4fed4be..dc941429b047d33fe39c1e4664371bc0ce8d5245 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1703,7 +1703,11 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -33,7 +33,7 @@ index 4050c46df8537da37c3b022d94b064e9d5dd0659..76497f642ff268d4039590902708e0d2 } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 777043d4e4bd253a804353df3efad43078a5c3b3..7e77383368388f6e56159892cd483513b068e402 100644 +index 4713ed2d407e1425d7f5f18d0b43c6917ef876ec..35869e655a7488f7b5868895287b8045b03f2d63 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -979,7 +979,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/1036-Add-HiddenPotionEffect-API.patch b/patches/server/1017-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1036-Add-HiddenPotionEffect-API.patch rename to patches/server/1017-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1037-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1018-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/1037-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/1018-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/1038-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1019-fix-ItemMeta-removing-CustomModelData.patch similarity index 100% rename from patches/server/1038-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/1019-fix-ItemMeta-removing-CustomModelData.patch diff --git a/patches/server/1039-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1020-Validate-ResourceLocation-in-NBT-reading.patch similarity index 96% rename from patches/server/1039-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/1020-Validate-ResourceLocation-in-NBT-reading.patch index bc30169ed2d6..6cf68dcdf741 100644 --- a/patches/server/1039-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/1020-Validate-ResourceLocation-in-NBT-reading.patch @@ -40,7 +40,7 @@ index 5f9dcab27a07969c93555ad0892683c62cbebc8c..a4d875df936b6de16f0233482b03af05 this.path = path; } diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index a039217f9293ad3b0cc74c49450472eb44c6a139..e52f3da3b63cc3dba59d3e874a8420dd312b5e96 100644 +index 9da8d56ff3768fb37d1ab89300da4eca19e6218d..edc723ea5ca3a325106e7af38c60dbf9f0f5fb77 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -618,7 +618,7 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -53,7 +53,7 @@ index a039217f9293ad3b0cc74c49450472eb44c6a139..e52f3da3b63cc3dba59d3e874a8420dd @Nullable diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 76497f642ff268d4039590902708e0d21ddb6531..3ebf777811cba0cc45cfae7587b277f06adeb045 100644 +index dc941429b047d33fe39c1e4664371bc0ce8d5245..22506c5c823c65e65034a962312c1dbd44356e23 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -620,7 +620,7 @@ public abstract class Mob extends LivingEntity implements Targeting { diff --git a/patches/server/1040-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1021-Properly-handle-experience-dropping-on-block-break.patch similarity index 93% rename from patches/server/1040-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/1021-Properly-handle-experience-dropping-on-block-break.patch index 96b22c026d9d..e2efaa8c2c82 100644 --- a/patches/server/1040-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1021-Properly-handle-experience-dropping-on-block-break.patch @@ -7,10 +7,10 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1fd66fce58909b2001652f7d1d13028abee5fef7..1feca8c844c74b8f64d1a1034ae06bfd7a9c0ab2 100644 +index 0b2e7e098ad0d8250156a6277491676357e0b1db..e5944ff3c1118e57c9e7a14cbb5181b2d7f7a79a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1102,7 +1102,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -734,7 +734,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (drop) { BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null; @@ -21,7 +21,7 @@ index 1fd66fce58909b2001652f7d1d13028abee5fef7..1feca8c844c74b8f64d1a1034ae06bfd boolean flag1 = this.setBlock(pos, fluid.createLegacyBlock(), 3, maxUpdateDepth); diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 5379c4a8c89cbbe73c3ab741d609cecdc81d928c..73d6f881a7d4d8ff96040d34ac502e5b0937d577 100644 +index 6ec04bf5cd1f7f2e74d86daa95209bd2f2124b91..68b94b4ebd710f3ab18f397d9dfa0ef5b8f182e0 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -333,23 +333,31 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -68,10 +68,10 @@ index 5379c4a8c89cbbe73c3ab741d609cecdc81d928c..73d6f881a7d4d8ff96040d34ac502e5b } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 7fa2b2bc9d6e7eea8b18fd649c9220945d71a4ff..97a9fbbe6d8435e88e5fe716770e4034ab0db7a7 100644 +index 42a086dcebcdba6ce19a8d0e77ba88ba91d63669..7ba5d00516dc310355d08dda955c934fe26786ee 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -1286,6 +1286,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1203,6 +1203,7 @@ public abstract class BlockBehaviour implements FeatureElement { public void spawnAfterBreak(ServerLevel world, BlockPos pos, ItemStack tool, boolean dropExperience) { this.getBlock().spawnAfterBreak(this.asState(), world, pos, tool, dropExperience); diff --git a/patches/server/1041-Fixup-NamespacedKey-handling.patch b/patches/server/1022-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1041-Fixup-NamespacedKey-handling.patch rename to patches/server/1022-Fixup-NamespacedKey-handling.patch diff --git a/patches/server/1042-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 95% rename from patches/server/1042-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index 0551bc6470e2..82f9b1f9d975 100644 --- a/patches/server/1042-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch @@ -18,10 +18,10 @@ index 3c4ac79c094dc2fff7de94150a34b7bf814ac0de..38b56923a642afc1cb411480ba03cc78 @VisibleForTesting static long encode(double value) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 257303162e3550e332cae01d5f6f158558b7ebf8..639c46a7d2b35f13d2310d9ded8a92a4703f6ebb 100644 +index 303ab1ea6747bb71adbd3a09e419b2677c9b8c5f..90393101fddd54f60b0b173beffd8650ad23349e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1414,10 +1414,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1409,10 +1409,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void updatePlayer(ServerPlayer player) { org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot if (player != this.entity) { diff --git a/patches/server/1043-Write-SavedData-IO-async.patch b/patches/server/1024-Write-SavedData-IO-async.patch similarity index 96% rename from patches/server/1043-Write-SavedData-IO-async.patch rename to patches/server/1024-Write-SavedData-IO-async.patch index 22cbb3848d0b..014bb081f9ec 100644 --- a/patches/server/1043-Write-SavedData-IO-async.patch +++ b/patches/server/1024-Write-SavedData-IO-async.patch @@ -26,7 +26,7 @@ index 513833c2ea23df5b079d157bc5cb89d5c9754c0b..9017907c0ec67a37a506f09b7e4499ce this.threadPool.shutdown(); diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 65a20974428ae1c0be2022d997234a16dc281292..77a2458b8acb21c64676934cd8d6b05ef6351c10 100644 +index 15139198a02e366c0bbfcd5495a21c48e05b3a23..3b0fd733e8fd9639362f251876bea814a2515618 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -467,6 +467,13 @@ public class ServerChunkCache extends ChunkSource { @@ -44,10 +44,10 @@ index 65a20974428ae1c0be2022d997234a16dc281292..77a2458b8acb21c64676934cd8d6b05e // CraftBukkit start - modelled on below diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 48b0bce01a9ae1ce869203a685be308d49a8c880..7a327afc8c08dfb94e66595b015887c6d0018c37 100644 +index 0c4c20ce794dd7e12cf1712dccc975bf21b01133..4edae565873fdafdd83a0b4509676d4c62b3bbbe 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1486,7 +1486,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1318,7 +1318,7 @@ public class ServerLevel extends Level implements WorldGenLevel { try (co.aikar.timings.Timing ignored = this.timings.worldSave.startTiming()) { if (doFull) { @@ -56,7 +56,7 @@ index 48b0bce01a9ae1ce869203a685be308d49a8c880..7a327afc8c08dfb94e66595b015887c6 } this.timings.worldSaveChunks.startTiming(); // Paper -@@ -1522,7 +1522,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1354,7 +1354,7 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } @@ -65,7 +65,7 @@ index 48b0bce01a9ae1ce869203a685be308d49a8c880..7a327afc8c08dfb94e66595b015887c6 if (progressListener != null) { progressListener.progressStage(Component.translatable("menu.savingChunks")); } -@@ -1545,12 +1545,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1377,12 +1377,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit end } diff --git a/patches/server/0668-Execute-chunk-tasks-mid-tick.patch b/patches/server/1025-Execute-chunk-tasks-mid-tick.patch similarity index 88% rename from patches/server/0668-Execute-chunk-tasks-mid-tick.patch rename to patches/server/1025-Execute-chunk-tasks-mid-tick.patch index ee918bed7ee9..1cb6d89d1d2e 100644 --- a/patches/server/0668-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/1025-Execute-chunk-tasks-mid-tick.patch @@ -6,12 +6,12 @@ Subject: [PATCH] Execute chunk tasks mid-tick This will help the server load chunks if tick times are high. diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java -index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..46449728f69ee7d4f78470f8da23c055acd53a3b 100644 +index 7a4234abf620b8394307fa01913bc00215a64e23..4b467f1af93452d13829f756d55dee18b8889d40 100644 --- a/src/main/java/co/aikar/timings/MinecraftTimings.java +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java -@@ -48,6 +48,8 @@ public final class MinecraftTimings { - public static final Timing antiXrayObfuscateTimer = Timings.ofSafe("anti-xray - obfuscate"); +@@ -49,6 +49,8 @@ public final class MinecraftTimings { public static final Timing scoreboardScoreSearch = Timings.ofSafe("Scoreboard score search"); // Paper - add timings for scoreboard search + public static final Timing distanceManagerTick = Timings.ofSafe("Distance Manager Tick"); // Paper - add timings for distance manager + public static final Timing midTickChunkTasks = Timings.ofSafe("Mid Tick Chunk Tasks"); + @@ -19,10 +19,10 @@ index 6b3cde6d4d1e63bec01f502f2027ee9fddac08aa..46449728f69ee7d4f78470f8da23c055 private MinecraftTimings() {} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6f2fcf39835d8a8b7408a39a511a2a9ee1e31248..fd23c278d38b1b8ed3c894f55e8907e259654558 100644 +index fe9a5820d82e5563b53d949af060e80cc7a259f6..9f4fc17622dd78b7c455de0bc2d8b772cc030024 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1341,8 +1341,79 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop void guardEntityTick(Consumer tickConsumer, T entity) { try { tickConsumer.accept(entity); diff --git a/patches/server/0671-Optimise-random-block-ticking.patch b/patches/server/1026-Optimise-random-block-ticking.patch similarity index 92% rename from patches/server/0671-Optimise-random-block-ticking.patch rename to patches/server/1026-Optimise-random-block-ticking.patch index d94de95efe85..638b1e6921be 100644 --- a/patches/server/0671-Optimise-random-block-ticking.patch +++ b/patches/server/1026-Optimise-random-block-ticking.patch @@ -90,7 +90,7 @@ index 0000000000000000000000000000000000000000..7d93652c1abbb6aee6eb7c26cf35d4d0 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ec64866f695dbc62dfedf6c1de5abb130edd9cfa..15b11c48e78318d382e88c3dba322ede537ec005 100644 +index 30b9a46ec74978adeb80222eea67a6a43b3203e2..88f8821aba04adb23b11531a93f395381a0e4ce7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -855,6 +855,10 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -311,7 +311,7 @@ index f0f764f36fb92c64ab2dc8a0a50c3f48321c3c9a..311625277a26c9c187025a1036978229 public void getAll(IntConsumer action) { for(int i = 0; i < this.size; ++i) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 6bbcdd34fb89ea5774e825de8f9a588552716fc2..2a3f1d14a4b24a3219d191b4f2e97ed7b061e006 100644 +index 1a2a4dcb3cfa2690f2aa936a6c176319d807bd74..f97bdfbd07db000845d3b791de64056c3c23f7ba 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -87,7 +87,7 @@ public class Turtle extends Animal { @@ -324,10 +324,10 @@ index 6bbcdd34fb89ea5774e825de8f9a588552716fc2..2a3f1d14a4b24a3219d191b4f2e97ed7 public BlockPos getHomePos() { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 34156fb87cfcd453b11a13a466239a7d56383000..4e51db012b4afc606734ab93c7ebc5101cabe6c6 100644 +index 267de93f036541a8a31971bcbd0f79678ab35d7b..c003f9b8109bd3e688d5b160150d229be4ae4d8a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1397,10 +1397,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1400,10 +1400,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract RecipeManager getRecipeManager(); public BlockPos getBlockRandomPos(int x, int y, int z, int l) { @@ -348,7 +348,7 @@ index 34156fb87cfcd453b11a13a466239a7d56383000..4e51db012b4afc606734ab93c7ebc510 public boolean noSave() { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index 3efd0a462306fbd02a506a3f952d609645b1f874..4a781375a4a18011259edcb4e24550748a05dfa0 100644 +index 3efd0a462306fbd02a506a3f952d609645b1f874..52377adb01df3db297eaf2ece54efde63f9c2cfe 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -25,6 +25,7 @@ public class LevelChunkSection { @@ -379,7 +379,7 @@ index 3efd0a462306fbd02a506a3f952d609645b1f874..4a781375a4a18011259edcb4e2455074 } } -@@ -115,40 +122,31 @@ public class LevelChunkSection { +@@ -115,40 +122,34 @@ public class LevelChunkSection { } public void recalcBlockCounts() { @@ -392,50 +392,45 @@ index 3efd0a462306fbd02a506a3f952d609645b1f874..4a781375a4a18011259edcb4e2455074 - a() {} - - public void accept(BlockState iblockdata, int i) { -- FluidState fluid = iblockdata.getFluidState(); -- -- if (!iblockdata.isAir()) { -- this.nonEmptyBlockCount += i; -- if (iblockdata.isRandomlyTicking()) { -- this.tickingBlockCount += i; -- } + // Paper start - unfuck this + this.tickingList.clear(); + this.nonEmptyBlockCount = 0; + this.tickingBlockCount = 0; + this.tickingFluidCount = 0; -+ this.states.forEachLocation((BlockState iblockdata, int i) -> { -+ FluidState fluid = iblockdata.getFluidState(); -+ -+ if (!iblockdata.isAir()) { -+ this.nonEmptyBlockCount = (short) (this.nonEmptyBlockCount + 1); -+ if (iblockdata.isRandomlyTicking()) { -+ this.tickingBlockCount = (short)(this.tickingBlockCount + 1); -+ this.tickingList.add(i, iblockdata); ++ // Don't run this on clearly empty sections ++ if (this.maybeHas((BlockState state) -> !state.isAir() || !state.getFluidState().isEmpty())) { ++ this.states.forEachLocation((BlockState iblockdata, int i) -> { + FluidState fluid = iblockdata.getFluidState(); + + if (!iblockdata.isAir()) { +- this.nonEmptyBlockCount += i; ++ this.nonEmptyBlockCount = (short) (this.nonEmptyBlockCount + 1); + if (iblockdata.isRandomlyTicking()) { +- this.tickingBlockCount += i; ++ this.tickingBlockCount = (short)(this.tickingBlockCount + 1); ++ this.tickingList.add(i, iblockdata); + } } -+ } -- if (!fluid.isEmpty()) { + if (!fluid.isEmpty()) { - this.nonEmptyBlockCount += i; -- if (fluid.isRandomlyTicking()) { ++ this.nonEmptyBlockCount = (short) (this.nonEmptyBlockCount + 1); + if (fluid.isRandomlyTicking()) { - this.tickingFluidCount += i; -- } -+ if (!fluid.isEmpty()) { -+ this.nonEmptyBlockCount = (short) (this.nonEmptyBlockCount + 1); -+ if (fluid.isRandomlyTicking()) { -+ this.tickingFluidCount = (short) (this.tickingFluidCount + 1); ++ this.tickingFluidCount = (short) (this.tickingFluidCount + 1); + } } -- - } -- } +- } ++ }); + } +- - a a0 = new a(); - - this.states.count(a0); - this.nonEmptyBlockCount = (short) a0.nonEmptyBlockCount; - this.tickingBlockCount = (short) a0.tickingBlockCount; - this.tickingFluidCount = (short) a0.tickingFluidCount; -+ }); + // Paper end } diff --git a/patches/server/0672-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1027-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 98% rename from patches/server/0672-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/1027-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch index 563a31ce2125..3bf394920451 100644 --- a/patches/server/0672-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch +++ b/patches/server/1027-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch @@ -10,7 +10,7 @@ hoping that at least then we don't swap chunks, and maybe recover them all. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 0ef8ecc7932107029d85e961e2e747d7312d816e..c09d42c03e1e430dd65218e8297be9e35cdef030 100644 +index bb5da9ddcd3030c8d6148902f3c649227430baab..362516b6703dfa037954c55b8628074965240dff 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -70,6 +70,18 @@ import net.minecraft.world.ticks.ProtoChunkTicks; @@ -32,7 +32,7 @@ index 0ef8ecc7932107029d85e961e2e747d7312d816e..c09d42c03e1e430dd65218e8297be9e3 public static final Codec> BLOCK_STATE_CODEC = PalettedContainer.codecRW(Block.BLOCK_STATE_REGISTRY, BlockState.CODEC, PalettedContainer.Strategy.SECTION_STATES, Blocks.AIR.defaultBlockState(), null); // Paper - Anti-Xray - Add preset block states private static final Logger LOGGER = LogUtils.getLogger(); -@@ -450,7 +462,7 @@ public class ChunkSerializer { +@@ -457,7 +469,7 @@ public class ChunkSerializer { nbttagcompound.putInt("xPos", chunkcoordintpair.x); nbttagcompound.putInt("yPos", chunk.getMinSection()); nbttagcompound.putInt("zPos", chunkcoordintpair.z); @@ -87,7 +87,7 @@ index c8298a597818227de33a4afce4698ec0666cf758..6762b0f71ea9e369bb77103b7f193898 this.used.set(start, start + size); } 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 0ae3d1ea6f00efcdea5da5bf1a0f984f4473f5a2..1f8fa4a054ed1c76688d1a919ea170587fb4806f 100644 +index c5dbab099a328b37f5a59824384ee6e4be2f3482..4373ae3b454ad3fb8550e83b868e98cc04893c1b 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 @@ -50,6 +50,355 @@ public class RegionFile implements AutoCloseable { @@ -448,11 +448,11 @@ index 0ae3d1ea6f00efcdea5da5bf1a0f984f4473f5a2..1f8fa4a054ed1c76688d1a919ea17058 @@ -77,8 +426,19 @@ public class RegionFile implements AutoCloseable { public RegionFile(Path file, Path directory, boolean dsync) throws IOException { - this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync); + this(file, directory, RegionFileVersion.getCompressionFormat(), dsync); // Paper - Configurable region compression format } + // Paper start - add can recalc flag + public RegionFile(Path file, Path directory, boolean dsync, boolean canRecalcHeader) throws IOException { -+ this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync, canRecalcHeader); ++ this(file, directory, RegionFileVersion.getCompressionFormat(), dsync, canRecalcHeader); + } + // Paper end - add can recalc flag @@ -685,7 +685,7 @@ index 0ae3d1ea6f00efcdea5da5bf1a0f984f4473f5a2..1f8fa4a054ed1c76688d1a919ea17058 return bytebuffer; } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 9e30b47ece5549c30f487e5542ae65d5faaa8c39..156cecae8ea7ffbc38974829942a1c92e828eca9 100644 +index 99f2e104b2214dbbc0b6e43d9011744ff4b0b843..a25e7183da64f726773aa279707ae67941246b46 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -24,6 +24,7 @@ public class RegionFileStorage implements AutoCloseable { @@ -763,7 +763,7 @@ index 9e30b47ece5549c30f487e5542ae65d5faaa8c39..156cecae8ea7ffbc38974829942a1c92 } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java -index 5fa7a842431dd64c7a0dc5d8e940563a2aeef463..4411e427d3b6b592f8a18e61b6c59309cf699d3f 100644 +index 374ff77f15e339500714580673ae8077482ba247..6210a202d27788b1304e749b5bc2d9e2b88f5a63 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileVersion.java @@ -14,7 +14,7 @@ import javax.annotation.Nullable; diff --git a/patches/server/0673-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1028-Use-Velocity-compression-and-cipher-natives.patch similarity index 96% rename from patches/server/0673-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/1028-Use-Velocity-compression-and-cipher-natives.patch index 032492558901..8f8f34ad27f3 100644 --- a/patches/server/0673-Use-Velocity-compression-and-cipher-natives.patch +++ b/patches/server/1028-Use-Velocity-compression-and-cipher-natives.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Use Velocity compression and cipher natives diff --git a/build.gradle.kts b/build.gradle.kts -index c6241f858209ed662d8720217d143340916024e9..ff1636d3e047e124c73496f4942e991abe01c150 100644 +index 7c563ef33d12b227856e65392905bffa5289285a..376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -39,6 +39,11 @@ dependencies { +@@ -40,6 +40,11 @@ dependencies { runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1") runtimeOnly("com.mysql:mysql-connector-j:8.2.0") runtimeOnly("com.lmax:disruptor:3.4.4") // Paper @@ -264,10 +264,10 @@ index 859af8c845bae9781a62fa4acae56c6e2d449e10..f67f59f287d9a5cdd685b6b56ed1daf3 return this.threshold; } diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 18228713d61cbc4b6fad881ace991e5e6c64e57d..28adc086f7bc1b6f403e65c5db51b267c90f2f37 100644 +index a0434b92615c10a319eb4528808a83d01df2c516..3a4d03a936bbbbb54cb3d63b57ad9c3490f98c83 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -669,11 +669,28 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -734,11 +734,28 @@ public class Connection extends SimpleChannelInboundHandler> { return networkmanager; } @@ -300,7 +300,7 @@ index 18228713d61cbc4b6fad881ace991e5e6c64e57d..28adc086f7bc1b6f403e65c5db51b267 public boolean isEncrypted() { return this.encrypted; -@@ -706,16 +723,17 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -771,16 +788,17 @@ public class Connection extends SimpleChannelInboundHandler> { public void setupCompression(int compressionThreshold, boolean rejectsBadPackets) { if (compressionThreshold >= 0) { @@ -321,7 +321,7 @@ index 18228713d61cbc4b6fad881ace991e5e6c64e57d..28adc086f7bc1b6f403e65c5db51b267 this.channel.pipeline().fireUserEventTriggered(io.papermc.paper.network.ConnectionEvent.COMPRESSION_THRESHOLD_SET); // Paper - Add Channel initialization listeners } else { diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index c0ae3ccf4ddf14a4967c86548ec7305cfcc0b48a..7288a942397d223d97d7afd11b9c9e5dc6a96901 100644 +index a4a29a7ea0035ecf4c61ee8547a9eb24acb667d0..586521a2cbb1d4dcfb912029f65e4363ec7674a7 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -106,6 +106,11 @@ public class ServerConnectionListener { @@ -337,10 +337,10 @@ index c0ae3ccf4ddf14a4967c86548ec7305cfcc0b48a..7288a942397d223d97d7afd11b9c9e5d protected void initChannel(Channel channel) { Connection.setInitialProtocolAttributes(channel); diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index e2c7fa3fd05ebb3b76388410d26b6493baf4f877..67c1cf5eb198079bd146a4a8ca0492b94cca788c 100644 +index 42ae62bdbe11fdfbacebf621d64e7c4985bbd1c7..f92d240e2984b0b49d09662ff33f5c524605ed47 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -223,12 +223,14 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -235,12 +235,14 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, } SecretKey secretkey = packet.getSecretKey(privatekey); diff --git a/patches/server/0674-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1029-Detail-more-information-in-watchdog-dumps.patch similarity index 94% rename from patches/server/0674-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/1029-Detail-more-information-in-watchdog-dumps.patch index 521520be634f..46a806a471ec 100644 --- a/patches/server/0674-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/1029-Detail-more-information-in-watchdog-dumps.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Detail more information in watchdog dumps - Dump player name, player uuid, position, and world for packet handling diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 28adc086f7bc1b6f403e65c5db51b267c90f2f37..5d73043dc9847ae195cef804fa0b0f4bf6db06f2 100644 +index 3a4d03a936bbbbb54cb3d63b57ad9c3490f98c83..b189aeb8646b5385c7cca0c4babfcb071a642220 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -521,7 +521,13 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -586,7 +586,13 @@ public class Connection extends SimpleChannelInboundHandler> { if (!(this.packetListener instanceof net.minecraft.server.network.ServerLoginPacketListenerImpl loginPacketListener) || loginPacketListener.state != net.minecraft.server.network.ServerLoginPacketListenerImpl.State.VERIFYING || Connection.joinAttemptsThisTick++ < MAX_PER_TICK) { @@ -25,7 +25,7 @@ index 28adc086f7bc1b6f403e65c5db51b267c90f2f37..5d73043dc9847ae195cef804fa0b0f4b // Paper end - Buffer joins to world } diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java -index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d99436afafc1 100644 +index 454d0187ff8370a0d99cca051ee0a8c50b39cfb7..3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644 100644 --- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java +++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java @@ -18,6 +18,24 @@ public class PacketUtils { @@ -56,7 +56,7 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994 @@ -27,6 +45,8 @@ public class PacketUtils { public static void ensureRunningOnSameThread(Packet packet, T listener, BlockableEventLoop engine) throws RunningOnDifferentThreadException { if (!engine.isSameThread()) { - engine.executeIfPossible(() -> { + engine.execute(() -> { // Paper - Fix preemptive player kick on a server shutdown + packetProcessing.push(listener); // Paper - detailed watchdog information + try { // Paper - detailed watchdog information if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerCommonPacketListenerImpl && ((ServerCommonPacketListenerImpl) listener).processedDisconnect)) return; // CraftBukkit, MC-142590 @@ -76,7 +76,7 @@ index 7de24c39b460e43d27839b3821e67213508ece81..7297bca9224c12d7ace0e1967340d994 }); throw RunningOnDifferentThreadException.RUNNING_ON_DIFFERENT_THREAD; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 15b11c48e78318d382e88c3dba322ede537ec005..0c60fa914310c7b6706e72cd3a61630873005102 100644 +index 88f8821aba04adb23b11531a93f395381a0e4ce7..2d4830b4b7df1516c75de1fefd6f8176d8ef16a2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1239,7 +1239,26 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -122,10 +122,10 @@ index 15b11c48e78318d382e88c3dba322ede537ec005..0c60fa914310c7b6706e72cd3a616308 private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 66df50658958c7ad799fbe9d2cdb676a90d8bb4e..d548a262515548808ffe075606ee2f2dba38740f 100644 +index f2f8bc9f8f55a43174acd9c5e841fb9a7d1b8065..ab8cbf4a3fabeaeab71f5323068dd700d6e6666a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1030,7 +1030,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1051,7 +1051,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.onGround; } @@ -168,7 +168,7 @@ index 66df50658958c7ad799fbe9d2cdb676a90d8bb4e..d548a262515548808ffe075606ee2f2d if (this.noPhysics) { this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); } else { -@@ -1200,6 +1235,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1221,6 +1256,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.level().getProfiler().pop(); } } @@ -182,7 +182,7 @@ index 66df50658958c7ad799fbe9d2cdb676a90d8bb4e..d548a262515548808ffe075606ee2f2d } private boolean isStateClimbable(BlockState state) { -@@ -4269,7 +4311,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4365,7 +4407,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void setDeltaMovement(Vec3 velocity) { @@ -192,7 +192,7 @@ index 66df50658958c7ad799fbe9d2cdb676a90d8bb4e..d548a262515548808ffe075606ee2f2d } public void addDeltaMovement(Vec3 velocity) { -@@ -4372,7 +4416,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4468,7 +4512,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // Paper end - Fix MC-4 if (this.position.x != x || this.position.y != y || this.position.z != z) { diff --git a/patches/server/0705-Collision-optimisations.patch b/patches/server/1030-Collision-optimisations.patch similarity index 99% rename from patches/server/0705-Collision-optimisations.patch rename to patches/server/1030-Collision-optimisations.patch index 0fdbaa5dd56b..374f174e4829 100644 --- a/patches/server/0705-Collision-optimisations.patch +++ b/patches/server/1030-Collision-optimisations.patch @@ -2179,21 +2179,21 @@ index 073c717bb676b9e99aada00c349fb7eee91df1e7..2a9fc1f1dfc0c5894c1e74dad5a79ae9 private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) { this.data3d = id; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5d30d67745ce3988f42457137f43b15b75a96a0c..c76358e108a72297baf92b234d43145dde09e99f 100644 +index bd1a53e2ce2644681c23f8cf678afa2a99166d9b..4ef7cc68bdcad9eaa157325a195aa74e62b478e5 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -469,7 +469,7 @@ public class ServerPlayer extends Player { +@@ -496,7 +496,7 @@ public class ServerPlayer extends Player { if (blockposition1 != null) { - this.moveTo(blockposition1, 0.0F, 0.0F); + this.moveTo(blockposition1, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored - if (world.noCollision((Entity) this)) { + if (world.noCollision(this, this.getBoundingBox(), true)) { // Paper - make sure this loads chunks, we default to NOT loading now break; } } -@@ -477,7 +477,7 @@ public class ServerPlayer extends Player { +@@ -504,7 +504,7 @@ public class ServerPlayer extends Player { } else { - this.moveTo(blockposition, 0.0F, 0.0F); + this.moveTo(blockposition, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored - while (!world.noCollision((Entity) this) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { + while (!world.noCollision(this, this.getBoundingBox(), true) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { // Paper - make sure this loads chunks, we default to NOT loading now @@ -2201,10 +2201,10 @@ index 5d30d67745ce3988f42457137f43b15b75a96a0c..c76358e108a72297baf92b234d43145d } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6e56b55329e31682d3052949110762e8f9fc96da..00f65551b82935a6b7b88cba4650404b9311f8f2 100644 +index 947cb3b24d6e379b080f3de8cd4ea60e0ca457e4..5a932f329f67fd01a263b9536cbfb1c9a011f746 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -909,7 +909,7 @@ public abstract class PlayerList { +@@ -936,7 +936,7 @@ public abstract class PlayerList { entityplayer1.forceSetPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); worldserver1.getChunkSource().addRegionTicket(net.minecraft.server.level.TicketType.POST_TELEPORT, new net.minecraft.world.level.ChunkPos(location.getBlockX() >> 4, location.getBlockZ() >> 4), 1, entityplayer.getId()); // Paper @@ -2214,10 +2214,10 @@ index 6e56b55329e31682d3052949110762e8f9fc96da..00f65551b82935a6b7b88cba4650404b entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 22d25fea0c995bf1509bb78d5f10e2b63eb484cb..696497771e607cd07bd8414deeffdd0f211a5ef6 100644 +index ab8cbf4a3fabeaeab71f5323068dd700d6e6666a..554fc0d4e791a98a46216714f0fb07e178ddabe4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1216,9 +1216,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1237,9 +1237,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S float f = this.getBlockSpeedFactor(); this.setDeltaMovement(this.getDeltaMovement().multiply((double) f, 1.0D, (double) f)); @@ -2265,7 +2265,7 @@ index 22d25fea0c995bf1509bb78d5f10e2b63eb484cb..696497771e607cd07bd8414deeffdd0f if (this.remainingFireTicks <= 0) { this.setRemainingFireTicks(-this.getFireImmuneTicks()); } -@@ -1398,32 +1433,82 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1419,32 +1454,82 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } private Vec3 collide(Vec3 movement) { @@ -2364,7 +2364,7 @@ index 22d25fea0c995bf1509bb78d5f10e2b63eb484cb..696497771e607cd07bd8414deeffdd0f } public static Vec3 collideBoundingBox(@Nullable Entity entity, Vec3 movement, AABB entityBoundingBox, Level world, List collisions) { -@@ -2628,11 +2713,70 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2689,11 +2774,70 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S float f = this.dimensions.width * 0.8F; AABB axisalignedbb = AABB.ofSize(this.getEyePosition(), (double) f, 1.0E-6D, (double) f); @@ -2440,7 +2440,7 @@ index 22d25fea0c995bf1509bb78d5f10e2b63eb484cb..696497771e607cd07bd8414deeffdd0f } diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index e3412f9dd86dddd241bea8f6dcaeed77a7e67f08..92b4eecf7b8ce07334256a216d9caf241fa5363b 100644 +index 6dfcc296ff7e59ecbebc5446973fabc9eff3cb43..94a30a0c1266bf919d1dc4ca2b19489edd54a7fa 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -353,7 +353,7 @@ public class ArmorStand extends LivingEntity { @@ -2498,7 +2498,7 @@ index c476e37df8a75d77f5093b2a449e04f25ef2c2dd..5d66aadae51db1ae760812849bfc8740 return this.noCollision((Entity)null, box); } diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java -index a25497eec004add7408a63b1a0f09e3fa443b324..9f892de55ab03367daed4c30cc44c9dd8adc29ed 100644 +index 8c436d16914e160be8e3074badc1293af2ae6b31..a3d15f30eaab29d85cb6b3d693df9980a880f686 100644 --- a/src/main/java/net/minecraft/world/level/EntityGetter.java +++ b/src/main/java/net/minecraft/world/level/EntityGetter.java @@ -45,17 +45,36 @@ public interface EntityGetter { @@ -2600,7 +2600,7 @@ index a25497eec004add7408a63b1a0f09e3fa443b324..9f892de55ab03367daed4c30cc44c9dd // Paper start diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4e51db012b4afc606734ab93c7ebc5101cabe6c6..205323c8e643c77b7aefe588d5ee2f8b2b29ede4 100644 +index c003f9b8109bd3e688d5b160150d229be4ae4d8a..4d91ff3dda92bdd503dd16d4f9e56aa18458592b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -299,6 +299,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -2985,7 +2985,7 @@ index 4e51db012b4afc606734ab93c7ebc5101cabe6c6..205323c8e643c77b7aefe588d5ee2f8b @Override public boolean isClientSide() { return this.isClientSide; -@@ -960,7 +1328,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -963,7 +1331,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public boolean noCollision(@Nullable Entity entity, AABB box) { if (entity instanceof net.minecraft.world.entity.decoration.ArmorStand && !entity.level().paperConfig().entities.armorStands.doCollisionEntityLookups) return false; @@ -3005,7 +3005,7 @@ index 4e51db012b4afc606734ab93c7ebc5101cabe6c6..205323c8e643c77b7aefe588d5ee2f8b // Paper end - Option to prevent armor stands from doing entity lookups diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index af62781cc96354c87aa63d4f03f9e25b81959081..6c4fd56956982eee743b4dea4e8b925891dd3b6f 100644 +index 68b94b4ebd710f3ab18f397d9dfa0ef5b8f182e0..73d6f881a7d4d8ff96040d34ac502e5b0937d577 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -284,7 +284,7 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -3018,7 +3018,7 @@ index af62781cc96354c87aa63d4f03f9e25b81959081..6c4fd56956982eee743b4dea4e8b9258 public boolean propagatesSkylightDown(BlockState state, BlockGetter world, BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26..100c2629f2746fc00435f60998dba70135637ef7 100644 +index 7ba5d00516dc310355d08dda955c934fe26786ee..97a9fbbe6d8435e88e5fe716770e4034ab0db7a7 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -882,6 +882,10 @@ public abstract class BlockBehaviour implements FeatureElement { @@ -3126,7 +3126,7 @@ index d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26..100c2629f2746fc00435f60998dba701 public Block getBlock() { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index 4a781375a4a18011259edcb4e24550748a05dfa0..6d340a9b64ae900dfe84eeeaf7a39f7e7a139198 100644 +index 52377adb01df3db297eaf2ece54efde63f9c2cfe..b10c652f53edfbf29f28b047d3b3c8edca21bc56 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -26,6 +26,22 @@ public class LevelChunkSection { @@ -3171,19 +3171,18 @@ index 4a781375a4a18011259edcb4e24550748a05dfa0..6d340a9b64ae900dfe84eeeaf7a39f7e return iblockdata1; } -@@ -145,6 +162,12 @@ public class LevelChunkSection { +@@ -147,6 +164,11 @@ public class LevelChunkSection { + } } - } -+ // Paper start - optimise collisions -+ if (io.papermc.paper.util.CollisionUtil.isSpecialCollidingBlock(iblockdata)) { -+ ++this.specialCollidingBlocks; -+ } -+ // Paper end - optimise collisions -+ - }); ++ // Paper start - optimise collisions ++ if (io.papermc.paper.util.CollisionUtil.isSpecialCollidingBlock(iblockdata)) { ++ ++this.specialCollidingBlocks; ++ } ++ // Paper end - optimise collisions + }); + } // Paper end - } diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java index a98ab20814cc29a25e9d29adfbb7e70d46768df2..6d8ff6c06af5545634f255ed17dc1e489ece2548 100644 --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java diff --git a/patches/server/0706-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1031-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 79% rename from patches/server/0706-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/1031-Optimise-collision-checking-in-player-move-packet-ha.patch index a3ff14cfda15..28eb8d3c0c10 100644 --- a/patches/server/0706-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/1031-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -8,10 +8,10 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN CHECK ME diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f784bd9c4a 100644 +index 9342efcb855dce5cced227b15356df090e9c451a..721b6c47c7141871fba0d306da42147bff082b0a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -540,7 +540,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -553,7 +553,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return; } @@ -20,7 +20,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7 d6 = d3 - this.vehicleLastGoodX; // Paper - diff on change, used for checking large move vectors above d7 = d4 - this.vehicleLastGoodY - 1.0E-6D; // Paper - diff on change, used for checking large move vectors above -@@ -556,6 +556,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -569,6 +569,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } entity.move(MoverType.PLAYER, new Vec3(d6, d7, d8)); @@ -28,7 +28,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7 double d11 = d7; d6 = d3 - entity.getX(); -@@ -569,15 +570,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -582,15 +583,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean flag2 = false; if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot @@ -55,7 +55,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7 entity.absMoveTo(d0, d1, d2, f, f1); this.player.absMoveTo(d0, d1, d2, this.player.getYRot(), this.player.getXRot()); // CraftBukkit this.send(new ClientboundMoveVehiclePacket(entity)); -@@ -656,7 +665,32 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -669,7 +678,32 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } private boolean noBlocksAround(Entity entity) { @@ -89,7 +89,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7 } @Override -@@ -1255,7 +1289,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1282,7 +1316,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } if (this.awaitingPositionFromClient != null) { @@ -98,7 +98,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7 this.awaitingTeleportTime = this.tickCount; this.teleport(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot()); } -@@ -1349,7 +1383,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1389,7 +1423,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } @@ -107,7 +107,7 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7 d6 = d0 - this.lastGoodX; // Paper - diff on change, used for checking large move vectors above d7 = d1 - this.lastGoodY; // Paper - diff on change, used for checking large move vectors above -@@ -1391,6 +1425,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1431,6 +1465,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.move(MoverType.PLAYER, new Vec3(d6, d7, d8)); this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move @@ -115,21 +115,14 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7 // Paper start - prevent position desync if (this.awaitingPositionFromClient != null) { return; // ... thanks Mojang for letting move calls teleport across dimensions. -@@ -1409,11 +1444,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - boolean flag2 = false; - - if (!this.player.isChangingDimension() && d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot -- flag2 = true; -+ flag2 = true; // Paper - diff on change, this should be moved wrongly - ServerGamePacketListenerImpl.LOGGER.warn("{} moved wrongly!", this.player.getName().getString()); +@@ -1459,7 +1494,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + } } -- if (!this.player.noPhysics && !this.player.isSleeping() && (flag2 && worldserver.noCollision(this.player, axisalignedbb) || this.isPlayerCollidingWithAnythingNew(worldserver, axisalignedbb, d0, d1, d2))) { +- boolean teleportBack = !this.player.noPhysics && !this.player.isSleeping() && (movedWrongly && worldserver.noCollision(this.player, axisalignedbb) || this.isPlayerCollidingWithAnythingNew(worldserver, axisalignedbb, d0, d1, d2)); + // Paper start - optimise out extra getCubes ++ boolean teleportBack = !this.player.noPhysics && !this.player.isSleeping() && movedWrongly; + this.player.absMoveTo(d0, d1, d2, f, f1); // prevent desync by tping to the set position, dropped for unknown reasons by mojang -+ // Original for reference: -+ // boolean teleportBack = flag2 && worldserver.getCubes(this.player, axisalignedbb) || (didCollide && this.a((IWorldReader) worldserver, axisalignedbb)); -+ boolean teleportBack = flag2; // violating this is always a fail + if (!this.player.noPhysics && !this.player.isSleeping() && !teleportBack) { + AABB newBox = this.player.getBoundingBox(); + if (didCollide || !axisalignedbb.equals(newBox)) { @@ -137,11 +130,11 @@ index 2c4da4f18a217269f17e281cf99a573e759a5d52..e6e9a2688a3d2f789831a9e095e555f7 + teleportBack = this.hasNewCollision(worldserver, this.player, axisalignedbb, newBox); + } // else: no collision at all detected, why do we care? + } -+ if (!this.player.noPhysics && !this.player.isSleeping() && teleportBack) { // Paper end - optimise out extra getCubes - this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet. - this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround()); - } else { -@@ -1504,6 +1551,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl ++ // Paper end - optimise out extra getCubes + if (teleportBack) { + io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK, + toX, toY, toZ, toYaw, toPitch, false); +@@ -1559,6 +1604,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } } diff --git a/patches/server/0710-Fix-tripwire-state-inconsistency.patch b/patches/server/1032-Fix-tripwire-state-inconsistency.patch similarity index 89% rename from patches/server/0710-Fix-tripwire-state-inconsistency.patch rename to patches/server/1032-Fix-tripwire-state-inconsistency.patch index 6f9de7ceebc5..bce767ae73b5 100644 --- a/patches/server/0710-Fix-tripwire-state-inconsistency.patch +++ b/patches/server/1032-Fix-tripwire-state-inconsistency.patch @@ -6,22 +6,22 @@ Subject: [PATCH] Fix tripwire state inconsistency This patch prevents updating and re-setting the tripwire when being removed in certain conditions diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java -index 003fd247b12323cca5fd82a6cdf31bd897afd682..a93a085b2e9564a2ff950fff505d856be7904863 100644 +index bdb99b799d1a97f1340c3d388d2901f7cb1c3527..3cb1db27dba902678a5848a1fb5e2c6ec6241e60 100644 --- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java -@@ -87,7 +87,7 @@ public class TripWireBlock extends Block { - @Override +@@ -91,7 +91,7 @@ public class TripWireBlock extends Block { public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean moved) { + if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating if (!moved && !state.is(newState.getBlock())) { - this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true)); + this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix tripwire state inconsistency } } -@@ -102,6 +102,12 @@ public class TripWireBlock extends Block { - } +@@ -108,6 +108,12 @@ public class TripWireBlock extends Block { private void updateSource(Level world, BlockPos pos, BlockState state) { + if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating + // Paper start - fix tripwire state inconsistency + this.updateSource(world, pos, state, false); + } @@ -31,7 +31,7 @@ index 003fd247b12323cca5fd82a6cdf31bd897afd682..a93a085b2e9564a2ff950fff505d856b Direction[] aenumdirection = new Direction[]{Direction.SOUTH, Direction.WEST}; int i = aenumdirection.length; int j = 0; -@@ -117,7 +123,7 @@ public class TripWireBlock extends Block { +@@ -123,7 +129,7 @@ public class TripWireBlock extends Block { if (iblockdata1.is(this.hook)) { if (iblockdata1.getValue(TripWireHookBlock.FACING) == enumdirection.getOpposite()) { diff --git a/patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1033-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 90% rename from patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/1033-Fix-entity-type-tags-suggestions-in-selectors.patch index d6c957489ec9..83872a369344 100644 --- a/patches/server/0715-Fix-entity-type-tags-suggestions-in-selectors.patch +++ b/patches/server/1033-Fix-entity-type-tags-suggestions-in-selectors.patch @@ -10,10 +10,10 @@ when if this was fixed on the client, that wouldn't be needed. Mojira Issue: https://bugs.mojang.com/browse/MC-235045 diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 907bc9d84dbc98427384cf529bfde4b09d8ce8ca..c47944b18a35929509ae3add455385e80f09763b 100644 +index faa375f2722793a86265248a4be4fa14736d9818..f341813e9713e39bfe142ca34b751de3d8efd25b 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java -@@ -447,4 +447,20 @@ public class CommandSourceStack implements ExecutionCommandSource tree, CommandNode result, CommandSourceStack source, Map, CommandNode> resultNodes) { Iterator iterator = tree.getChildren().iterator(); @@ -46,7 +46,7 @@ index 8be58d29f2a4753a241e68bd305b3e30186ca0e9..39a47750d7feec04b2759929527d8776 while (iterator.hasNext()) { CommandNode commandnode2 = (CommandNode) iterator.next(); // Paper start - Brigadier API -@@ -557,6 +558,12 @@ public class Commands { +@@ -548,6 +549,12 @@ public class Commands { if (requiredargumentbuilder.getSuggestionsProvider() != null) { requiredargumentbuilder.suggests(SuggestionProviders.safelySwap(requiredargumentbuilder.getSuggestionsProvider())); @@ -60,19 +60,19 @@ index 8be58d29f2a4753a241e68bd305b3e30186ca0e9..39a47750d7feec04b2759929527d8776 } diff --git a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java -index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..d93698fd814683d451a3c8e8bcbb9cd475c79515 100644 +index 8e008e752c5b11781088e2b4b5ba180bacb59326..8d79cfa371546996ef65f94232c1d344e7c590ec 100644 --- a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java -@@ -128,7 +128,7 @@ public class EntityArgument implements ArgumentType { - StringReader stringreader = new StringReader(suggestionsbuilder.getInput()); - - stringreader.setCursor(suggestionsbuilder.getStart()); -- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2)); -+ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, icompletionprovider.hasPermission(2), true); // Paper - tell clients to ask server for suggestions for EntityArguments +@@ -132,7 +132,7 @@ public class EntityArgument implements ArgumentType { + final boolean permission = object instanceof CommandSourceStack stack + ? stack.bypassSelectorPermissions || stack.hasPermission(2, "minecraft.command.selector") + : icompletionprovider.hasPermission(2); +- EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission); ++ EntitySelectorParser argumentparserselector = new EntitySelectorParser(stringreader, permission, true); // Paper - tell clients to ask server for suggestions for EntityArguments + // Paper end - Fix EntityArgument suggestion permissions try { - argumentparserselector.parse(); -@@ -137,7 +137,19 @@ public class EntityArgument implements ArgumentType { +@@ -142,7 +142,19 @@ public class EntityArgument implements ArgumentType { } return argumentparserselector.fillSuggestions(suggestionsbuilder, (suggestionsbuilder1) -> { diff --git a/patches/server/0791-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1034-Add-Alternate-Current-redstone-implementation.patch similarity index 99% rename from patches/server/0791-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/1034-Add-Alternate-Current-redstone-implementation.patch index e7485866afa4..445a356f2dba 100644 --- a/patches/server/0791-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/1034-Add-Alternate-Current-redstone-implementation.patch @@ -2008,7 +2008,7 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0d5cdef130fb138c1b373ced129ccca245be4ec0..88151659d6552d1678c202b8414476683807eafb 100644 +index 2d4830b4b7df1516c75de1fefd6f8176d8ef16a2..1f0e9689acc1470a65a3c51505d5a386da7abc8e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2019,7 +2019,7 @@ index 0d5cdef130fb138c1b373ced129ccca245be4ec0..88151659d6552d1678c202b841447668 @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately -@@ -2574,6 +2575,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2593,6 +2594,13 @@ public class ServerLevel extends Level implements WorldGenLevel { return crashreportsystemdetails; } @@ -2034,14 +2034,13 @@ index 0d5cdef130fb138c1b373ced129ccca245be4ec0..88151659d6552d1678c202b841447668 EntityCallbacks() {} diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 205323c8e643c77b7aefe588d5ee2f8b2b29ede4..17f8dc044619bfa055f67f12cd9a296504ac76ee 100644 +index 4d91ff3dda92bdd503dd16d4f9e56aa18458592b..ae42d5b3dea423a144056c64337af213609923d4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1884,4 +1884,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - return range <= 0 ? 64.0 * 64.0 : range * range; // 64 is taken from default in ServerLevel#levelEvent +@@ -1897,4 +1897,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + } } - // Paper end - respect global sound events gamerule -+ + // Paper end - notify observers even if grow failed + // Paper start - optimize redstone (Alternate Current) + public alternate.current.wire.WireHandler getWireHandler() { + // This method is overridden in ServerLevel. diff --git a/patches/server/0841-optimize-dirt-and-snow-spreading.patch b/patches/server/1035-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/0841-optimize-dirt-and-snow-spreading.patch rename to patches/server/1035-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/0864-Properly-resend-entities.patch b/patches/server/1036-Properly-resend-entities.patch similarity index 93% rename from patches/server/0864-Properly-resend-entities.patch rename to patches/server/1036-Properly-resend-entities.patch index c4448fc5bfa4..2144df7aa21f 100644 --- a/patches/server/0864-Properly-resend-entities.patch +++ b/patches/server/1036-Properly-resend-entities.patch @@ -16,10 +16,10 @@ See: https://github.com/PaperMC/Paper/pull/1896 public net.minecraft.server.level.ChunkMap$TrackedEntity serverEntity diff --git a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java -index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0da37464c8 100644 +index 07a362f9e485d0d507f16f1dda1ac84ade07ab27..58b602e550258c1062ee940bc46538dac95d8979 100644 --- a/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java +++ b/src/main/java/net/minecraft/network/syncher/SynchedEntityData.java -@@ -253,14 +253,63 @@ public class SynchedEntityData { +@@ -275,14 +275,63 @@ public class SynchedEntityData { // CraftBukkit start public void refresh(ServerPlayer to) { if (!this.isEmpty()) { @@ -85,10 +85,10 @@ index d088479d160dbd2fc90b48a30553be141db8eef2..ccb7d92b6c36b6225a2e640f8cea6c0d public static class DataItem { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index dd1a969c6ac8ee08c9898703953dda88c7b4f97e..0fe7770fd4506980667e154c83d7024112cac26d 100644 +index 721b6c47c7141871fba0d306da42147bff082b0a..42b433d9461d0912b39542263684323369469ac0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2653,7 +2653,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2705,7 +2705,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Entity in bucket - SPIGOT-4048 and SPIGOT-6859a if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { @@ -98,10 +98,10 @@ index dd1a969c6ac8ee08c9898703953dda88c7b4f97e..0fe7770fd4506980667e154c83d70241 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d2d21ccc45381787698c84870537ba11ebb75127..a625091f59aadccae7fc40c94b620248bca125de 100644 +index 5a932f329f67fd01a263b9536cbfb1c9a011f746..2544495835f8f67eab07907ee8eb572b99ea0fcd 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -376,7 +376,7 @@ public abstract class PlayerList { +@@ -390,7 +390,7 @@ public abstract class PlayerList { ((ServerLevel)player.level()).getChunkSource().chunkMap.addEntity(player); // Paper - Fire PlayerJoinEvent when Player is actually ready; track entity now // CraftBukkit end @@ -125,10 +125,10 @@ index 37596c7b65f280be00e8e59ae18bd1aceae21080..eca18540aeb0b0d4098477d73b14c78a } entity.playSound(((Bucketable) entity).getPickupSound(), 1.0F, 1.0F); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index dab7108644aefe69448b5e361099d97354c8db1a..49e5a9fa95ebf4568eb875953f3032b8a7142080 100644 +index 9b8ba3199fa091c7b20a89044ff986d9861f088f..f16ac1d640fc97f348c244d4ea86e3278b30ae19 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -947,7 +947,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -999,7 +999,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return; } diff --git a/patches/server/0897-Optimize-Hoppers.patch b/patches/server/1037-Optimize-Hoppers.patch similarity index 99% rename from patches/server/0897-Optimize-Hoppers.patch rename to patches/server/1037-Optimize-Hoppers.patch index 17aa94ac70ff..f6f81b43e214 100644 --- a/patches/server/0897-Optimize-Hoppers.patch +++ b/patches/server/1037-Optimize-Hoppers.patch @@ -50,10 +50,10 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ed9839ff23d0810912a6961979690c3fe9fc0e16..afc23f859188a6cda27a683babd551c250a748ef 100644 +index 9f4fc17622dd78b7c455de0bc2d8b772cc030024..093d9fa59fce871ba1d592482f7fc6616fd9b1ac 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1672,6 +1672,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper @@ -62,10 +62,10 @@ index ed9839ff23d0810912a6961979690c3fe9fc0e16..afc23f859188a6cda27a683babd551c2 this.profiler.push(() -> { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 23fec59b51c99c1f0ac19ffd6c84ffa8fc3caaac..6d1986d4dfa4dd4f5988c6afa023f9bd518e1d4e 100644 +index 2470acc82292bedd930be404a2e1d1f8fad700e1..ed27a963223bfe18310ad5adabf461b5e307ef9c 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -749,10 +749,16 @@ public final class ItemStack { +@@ -751,10 +751,16 @@ public final class ItemStack { } public ItemStack copy() { diff --git a/patches/server/0973-Improve-performance-of-mass-crafts.patch b/patches/server/1038-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/0973-Improve-performance-of-mass-crafts.patch rename to patches/server/1038-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/0990-Actually-optimise-explosions.patch b/patches/server/1039-Actually-optimise-explosions.patch similarity index 100% rename from patches/server/0990-Actually-optimise-explosions.patch rename to patches/server/1039-Actually-optimise-explosions.patch diff --git a/patches/server/0994-Optimise-chunk-tick-iteration.patch b/patches/server/1040-Optimise-chunk-tick-iteration.patch similarity index 98% rename from patches/server/0994-Optimise-chunk-tick-iteration.patch rename to patches/server/1040-Optimise-chunk-tick-iteration.patch index a15bf7045bba..9597d6ba34a7 100644 --- a/patches/server/0994-Optimise-chunk-tick-iteration.patch +++ b/patches/server/1040-Optimise-chunk-tick-iteration.patch @@ -108,7 +108,7 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754 List list; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 815fb04fb2d14d0cea14a2b3509e81b383bbdbda..ccf0308855d6549d70cf010fc57b76abfbe93f26 100644 +index 90393101fddd54f60b0b173beffd8650ad23349e..424de333bf4fc5632410c689d9b17b2eab3371c4 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -187,10 +187,10 @@ index c80a625f7289e3bb33c6851d2072957e153ca1fb..7c425ac50c83757b66a2178bc19d4c92 public String getDebugStatus() { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index e3618e76f9ce4d585287d0754193c2793ba1e492..65a20974428ae1c0be2022d997234a16dc281292 100644 +index c2973fcfde402b5432db37468e4a40a1a119cca1..77a2458b8acb21c64676934cd8d6b05ef6351c10 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -516,18 +516,10 @@ public class ServerChunkCache extends ChunkSource { +@@ -523,18 +523,10 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.push("pollingChunks"); gameprofilerfiller.push("filteringLoadedChunks"); @@ -211,7 +211,7 @@ index e3618e76f9ce4d585287d0754193c2793ba1e492..65a20974428ae1c0be2022d997234a16 if (this.level.getServer().tickRateManager().runsNormally()) { gameprofilerfiller.popPush("naturalSpawnCount"); -@@ -562,38 +554,109 @@ public class ServerChunkCache extends ChunkSource { +@@ -569,38 +561,109 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.popPush("spawnAndTick"); boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit @@ -337,7 +337,7 @@ index e3618e76f9ce4d585287d0754193c2793ba1e492..65a20974428ae1c0be2022d997234a16 this.level.timings.chunkTicks.stopTiming(); // Paper gameprofilerfiller.popPush("customSpawners"); -@@ -605,11 +668,23 @@ public class ServerChunkCache extends ChunkSource { +@@ -612,11 +675,23 @@ public class ServerChunkCache extends ChunkSource { } gameprofilerfiller.popPush("broadcast"); @@ -365,7 +365,7 @@ index e3618e76f9ce4d585287d0754193c2793ba1e492..65a20974428ae1c0be2022d997234a16 gameprofilerfiller.pop(); } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a78ee295d14e0f4543b5bbdb7b72c6383a4fb23a..40632eabeb297f2cb2206d18cba7476bfb9f7ae8 100644 +index 4ef7cc68bdcad9eaa157325a195aa74e62b478e5..4a0df97430cf025d1e830f681ef791ecec985102 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -325,6 +325,9 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0995-Lag-compensation-ticks.patch b/patches/server/1041-Lag-compensation-ticks.patch similarity index 91% rename from patches/server/0995-Lag-compensation-ticks.patch rename to patches/server/1041-Lag-compensation-ticks.patch index 536c00fbbb0d..b874637e1f92 100644 --- a/patches/server/0995-Lag-compensation-ticks.patch +++ b/patches/server/1041-Lag-compensation-ticks.patch @@ -8,7 +8,7 @@ Areas affected by lag comepnsation: - Eating food items diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 174f3dab7c7f02dd09d02dc8b4e69190284c3f48..ec1197e498d0fa8d58466b8dffe46fb0683b530c 100644 +index 093d9fa59fce871ba1d592482f7fc6616fd9b1ac..49ab2773658a2c6fababa316707762a8e2b19c58 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -311,6 +311,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - Add EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ab472d2e81c0756020ffb727db4b71aeb8d9d020..ae6919fb2ed273d5527a6e4e7731c074d201393f 100644 +index 1f0e9689acc1470a65a3c51505d5a386da7abc8e..ffe910da16c33ebbce77fef441d9d5c2d097ce61 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -565,6 +565,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -52,7 +52,7 @@ index ab472d2e81c0756020ffb727db4b71aeb8d9d020..ae6919fb2ed273d5527a6e4e7731c074 // Add env and gen to constructor, IWorldDataServer -> WorldDataServer public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 52764f0f5b42e3b7fd9624bc342e9927037880d2..6abc5061888d965161de979465bb625c173c59c6 100644 +index 83e017efd15d0ecaffc327f02d6d5330c8ed6937..cfd4ac06a9af6bf3fac293110482e1df690e075e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -124,7 +124,7 @@ public class ServerPlayerGameMode { @@ -65,10 +65,10 @@ index 52764f0f5b42e3b7fd9624bc342e9927037880d2..6abc5061888d965161de979465bb625c if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193b44751f2 100644 +index b920f72e659956cc2d2d44743caddb0136d467e4..ca1900d29a86b9b39078da39b071950128c08c23 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3819,6 +3819,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3827,6 +3827,10 @@ public abstract class LivingEntity extends Entity implements Attackable { this.getEntityData().resendPossiblyDesyncedDataValues(java.util.List.of(DATA_LIVING_ENTITY_FLAGS), serverPlayer); } // Paper end - Properly cancel usable items @@ -79,7 +79,7 @@ index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193 private void updatingUsingItem() { if (this.isUsingItem()) { if (ItemStack.isSameItem(this.getItemInHand(this.getUsedItemHand()), this.useItem)) { -@@ -3837,7 +3841,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3845,7 +3849,12 @@ public abstract class LivingEntity extends Entity implements Attackable { this.triggerItemUseEffects(stack, 5); } @@ -93,7 +93,7 @@ index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193 this.completeUsingItem(); } -@@ -3885,7 +3894,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3893,7 +3902,10 @@ public abstract class LivingEntity extends Entity implements Attackable { if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper - Prevent consuming the wrong itemstack this.useItem = itemstack; @@ -105,7 +105,7 @@ index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193 if (!this.level().isClientSide) { this.setLivingEntityFlag(1, true); this.setLivingEntityFlag(2, hand == InteractionHand.OFF_HAND); -@@ -3910,7 +3922,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3918,7 +3930,10 @@ public abstract class LivingEntity extends Entity implements Attackable { } } else if (!this.isUsingItem() && !this.useItem.isEmpty()) { this.useItem = ItemStack.EMPTY; @@ -117,7 +117,7 @@ index 629d38851558207f302e9baa0157218d7c8596d7..91d88337f9147637b0e8fa1ac8bf9193 } } -@@ -4045,7 +4060,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4053,7 +4068,10 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.useItem = ItemStack.EMPTY; diff --git a/patches/server/0999-Optimise-nearby-player-retrieval.patch b/patches/server/1042-Optimise-nearby-player-retrieval.patch similarity index 99% rename from patches/server/0999-Optimise-nearby-player-retrieval.patch rename to patches/server/1042-Optimise-nearby-player-retrieval.patch index e2bed5bf46f0..c41f2cf2739e 100644 --- a/patches/server/0999-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1042-Optimise-nearby-player-retrieval.patch @@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ae6919fb2ed273d5527a6e4e7731c074d201393f..f5254ccffc19cf451cd5e358256b97fa33e51cfc 100644 +index ffe910da16c33ebbce77fef441d9d5c2d097ce61..fa203e66887f5db1083728166e2f81ea4f656bd7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -576,6 +576,115 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/scripts/moveback.py b/scripts/moveback.py new file mode 100644 index 000000000000..744f101a1e28 --- /dev/null +++ b/scripts/moveback.py @@ -0,0 +1,44 @@ +import os +import sys + +# Use inside of server patch dir +# py ../../scripts/moveback.py '' +patch_target = 1038 # TODO: Update this + + +def increment_number(filename): + current_number = int(filename[:4]) + new_number = current_number + 1 + return f"{new_number:04d}-{filename[5:]}" + + +if len(sys.argv) != 2: + print("python moveback.py ''") + sys.exit(1) + +input_string = sys.argv[1].replace(' ', '-').lower() +if len(input_string) < 5: + print("Commit title is too short") + sys.exit(1) + +matching_files = [file for file in os.listdir() if input_string in file.lower()] + +if len(matching_files) == 0: + print("No file found matching the given string") + sys.exit(1) + +matching_file = matching_files[0] +print(f"Found: {matching_file}") + +# Move all files after the target one up +for file in os.listdir(): + num = int(file[:4]) + if num >= patch_target: + new_filename = increment_number(file) + os.rename(file, new_filename) + print(f"Renamed {file} to {new_filename}") + +# Rename the file to the target +new_filename = f"{patch_target:04d}-{matching_file[5:]}" +os.rename(matching_file, new_filename) +print(f"Renamed {matching_file} to {new_filename}") From 484d6bfb4efe5caac0207cd64a466dcca31bf2dd Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Tue, 23 Jan 2024 12:06:27 +0100 Subject: [PATCH 39/45] [ci skip] Move some disruptive patches back --- ...ove-existing-players-to-world-spawn.patch} | 4 +- ....patch => 0359-Optimize-Pathfinding.patch} | 0 ...0-Reduce-Either-Optional-allocation.patch} | 0 ...uce-memory-footprint-of-CompoundTag.patch} | 0 ...ent-opening-inventories-when-frozen.patch} | 2 +- ...entity-collision-code-if-not-needed.patch} | 2 +- ...Implement-Player-Client-Options-API.patch} | 2 +- ...ayer-is-attempted-to-be-removed-fro.patch} | 0 ...Event-when-Player-is-actually-ready.patch} | 6 +- ...awn-point-if-spawn-in-unloaded-worl.patch} | 6 +- ...layerAttackEntityCooldownResetEvent.patch} | 2 +- ...-fire-BlockFade-on-worldgen-threads.patch} | 0 ...tom-creative-and-insomniac-controls.patch} | 0 ...tem-duplication-and-teleport-issues.patch} | 14 ++-- ...patch => 0372-Villager-Restocks-API.patch} | 0 ...ickItem-Packet-and-kick-for-invalid.patch} | 2 +- ...n.patch => 0374-Expose-game-version.patch} | 2 +- ...per-thread-native-byte-buffer-cache.patch} | 2 +- ....patch => 0376-misc-debugging-dumps.patch} | 20 +++--- ...7-Prevent-teleporting-dead-entities.patch} | 2 +- ...traces-in-log-messages-crash-report.patch} | 18 ++--- ...atch => 0379-Implement-Mob-Goal-API.patch} | 34 ++------- ...=> 0380-Add-villager-reputation-API.patch} | 0 ...maximum-exp-value-when-merging-orbs.patch} | 0 ...tch => 0382-ExperienceOrbMergeEvent.patch} | 0 ...-Fix-PotionEffect-ignores-icon-flag.patch} | 0 ...API.patch => 0384-Potential-bed-API.patch} | 0 ...ait-for-Async-Tasks-during-shutdown.patch} | 6 +- ...er-respects-game-and-entity-rules-f.patch} | 0 ...> 0387-Ensure-safe-gateway-teleport.patch} | 0 ...-for-console-having-all-permissions.patch} | 0 ...x-villager-trading-demand-MC-163962.patch} | 0 ... => 0390-Maps-shouldn-t-load-chunks.patch} | 0 ...okup-for-Treasure-Maps-Fixes-lag-fr.patch} | 0 ...r-runTaskTimerAsynchronously-Plugin.patch} | 0 ...ton-physics-inconsistency-MC-188840.patch} | 4 +- ...uping.patch => 0394-Fix-sand-duping.patch} | 2 +- ...sing-chunks-due-to-integer-overflow.patch} | 0 ...-position-desync-causing-tp-exploit.patch} | 2 +- ...older-method-without-block-snapshot.patch} | 0 ...API.patch => 0398-Improve-Arrow-API.patch} | 0 ...0399-Add-PlayerRecipeBookClickEvent.patch} | 2 +- ...-Hide-sync-chunk-writes-behind-flag.patch} | 0 ...1-Add-permission-for-command-blocks.patch} | 4 +- ...position-and-AABB-are-never-invalid.patch} | 8 +-- ...d-Difficulty-Remembering-Difficulty.patch} | 18 ++--- ...atch => 0404-Paper-dumpitem-command.patch} | 0 ...Legacy-Component-serialization-size.patch} | 0 ...Plugin-Tickets-to-API-Chunk-Methods.patch} | 4 +- ...incremental-chunk-and-player-saving.patch} | 20 +++--- ...408-Support-old-UUID-format-for-NBT.patch} | 0 ...vert-legacy-attributes-in-Item-Meta.patch} | 0 ...0410-Support-components-in-ItemMeta.patch} | 0 ...e-fix-EntityTargetLivingEntityEvent.patch} | 0 ...patch => 0412-Add-entity-liquid-API.patch} | 0 ...date-itemstack-legacy-name-and-lore.patch} | 0 ...atch => 0414-Add-PrepareResultEvent.patch} | 0 ...-for-portal-on-world-gen-entity-add.patch} | 2 +- ...x-arrows-never-despawning-MC-125757.patch} | 0 ...Vanilla-Command-permission-checking.patch} | 2 +- ...-5989.patch => 0418-Fix-SPIGOT-5989.patch} | 4 +- ...-Bukkit-world-container-is-not-used.patch} | 0 ...5885-Unable-to-disable-advancements.patch} | 0 ...taPlayer-leak-due-from-quitting-ear.patch} | 2 +- ...e-NetworkManager-Exception-Handling.patch} | 0 ...ix-some-rails-connecting-improperly.patch} | 0 ...stake-in-CB-NBT-int-deserialization.patch} | 0 ...support.patch => 0425-Brand-support.patch} | 4 +- ...PickupItemAnimation-to-LivingEntity.patch} | 0 ...h => 0427-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 4 +- ...PI.patch => 0429-Add-moon-phase-API.patch} | 0 ...rver-load-chunks-from-newer-version.patch} | 0 ...headless-pistons-from-being-created.patch} | 4 +- ...ent.patch => 0432-Add-BellRingEvent.patch} | 2 +- ...dd-zombie-targets-turtle-egg-config.patch} | 0 ...patch => 0434-Buffer-joins-to-world.patch} | 2 +- ...s-not-working-in-some-kick-messages.patch} | 2 +- ...reateEvent-needs-to-know-its-entity.patch} | 2 +- ...I.patch => 0437-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0440-Cache-block-data-strings.patch} | 4 +- ...rtation-and-cancel-velocity-if-tele.patch} | 10 +-- ...l-open-container-api-to-HumanEntity.patch} | 0 ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 4 +- ...-Counter-to-allow-plugins-to-use-va.patch} | 4 +- ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0447-Entity-isTicking.patch} | 4 +- ...non-whitelisted-player-when-white-l.patch} | 4 +- ...-Concurrency-issue-in-ShufflingList.patch} | 2 +- ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 0 ...-large-move-vectors-crashing-server.patch} | 2 +- ...atch => 0452-Optimise-getType-calls.patch} | 0 ....patch => 0453-Villager-resetOffers.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 2 +- ...lockpos-allocation-from-pathfinding.patch} | 0 ...em-locations-dropped-from-campfires.patch} | 0 ...7-Fix-bell-block-entity-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 2 +- ...ch => 0460-Add-ignore-discounts-API.patch} | 2 +- ...Toggle-for-removing-existing-dragon.patch} | 0 ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0463-Item-no-age-no-player-pickup.patch} | 0 ...464-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0465-Add-API-for-quit-reason.patch} | 6 +- ...ng-Trader-spawn-rate-config-options.patch} | 0 ...ch => 0467-Expose-world-spawn-angle.patch} | 2 +- ...patch => 0468-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 0 ...70-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0471-Add-PlayerItemCooldownEvent.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...PI.patch => 0473-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 6 +- ...-missing-default-perms-for-commands.patch} | 0 ...h => 0476-Add-PlayerShearBlockEvent.patch} | 0 ....patch => 0477-Limit-recipe-packets.patch} | 2 +- ...-CraftSound-backwards-compatibility.patch} | 0 ...479-Player-Chunk-Load-Unload-Events.patch} | 0 ...0-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 2 +- ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 2 +- ...valid-ingredient-lists-in-VillagerA.patch} | 0 ...nt.patch => 0484-Add-TargetHitEvent.patch} | 0 ... 0485-MC-4-Fix-item-position-desync.patch} | 4 +- ... 0486-Additional-Block-Material-API.patch} | 0 ...tch => 0487-Fix-harming-potion-dupe.patch} | 0 ...t-Material-from-Boats-and-Minecarts.patch} | 0 ....patch => 0489-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 0 ...-Add-PlayerFlowerPotManipulateEvent.patch} | 0 ...ct-event-not-being-called-sometimes.patch} | 2 +- ...h => 0494-Zombie-API-breaking-doors.patch} | 0 ...495-Fix-nerfed-slime-when-splitting.patch} | 0 ...=> 0496-Add-EntityLoadCrossbowEvent.patch} | 0 ...> 0497-Add-WorldGameRuleChangeEvent.patch} | 2 +- ...98-Add-ServerResourcesReloadedEvent.patch} | 6 +- ...d-settings-for-mobs-picking-up-loot.patch} | 0 ...> 0500-Add-BlockFailedDispenseEvent.patch} | 2 +- ...01-Add-PlayerLecternPageChangeEvent.patch} | 0 ...02-Add-PlayerLoomPatternSelectEvent.patch} | 0 ...nfigurable-door-breaking-difficulty.patch} | 0 ...ty-commands-shall-not-be-dispatched.patch} | 2 +- ...OIs.patch => 0505-Remove-stale-POIs.patch} | 2 +- ...h => 0506-Fix-villager-boat-exploit.patch} | 2 +- ...I.patch => 0507-Add-sendOpLevel-API.patch} | 6 +- ...0508-TODO-Registry-Modification-API.patch} | 0 ...h => 0509-Add-StructuresLocateEvent.patch} | 2 +- ...-for-requiring-a-player-participant.patch} | 4 +- ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 2 +- ...513-Make-schedule-command-per-world.patch} | 0 ...514-Configurable-max-leash-distance.patch} | 0 ...h => 0515-Add-BlockPreDispenseEvent.patch} | 2 +- ...6-Add-PlayerChangeBeaconEffectEvent.patch} | 0 ...e-for-always-placing-the-dragon-egg.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...h => 0519-Expand-EntityUnleashEvent.patch} | 4 +- ...shield-blocking-on-dimension-change.patch} | 2 +- ...atch => 0521-Add-DragonEggFormEvent.patch} | 0 ...t.patch => 0522-Add-EntityMoveEvent.patch} | 8 +-- ...isable-pathfinding-updates-on-block.patch} | 2 +- ... 0524-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 2 +- ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ...atch => 0530-Expose-Tracked-Players.patch} | 0 ...GUI.patch => 0531-Improve-ServerGUI.patch} | 0 ...532-fix-converting-txt-to-json-file.patch} | 4 +- ...atch => 0533-Add-worldborder-events.patch} | 2 +- ...h => 0534-Add-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 0 ...h => 0536-Add-recipe-to-cook-events.patch} | 0 ...patch => 0537-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 2 +- ....patch => 0539-Expand-world-key-API.patch} | 2 +- ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0541-Item-Rarity-API.patch} | 0 ...d-item-when-player-has-disconnected.patch} | 2 +- ...elist-use-configurable-kick-message.patch} | 4 +- ...gnore-result-of-PlayerEditBookEvent.patch} | 2 +- ...tch => 0545-Expose-protocol-version.patch} | 0 ...ab-completions-for-brigadier-comman.patch} | 2 +- ...temConsumeEvent-cancelling-properly.patch} | 2 +- ...patch => 0548-Add-bypass-host-check.patch} | 0 ...0549-Set-area-affect-cloud-rotation.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 2 +- ...ch => 0555-Add-PlayerDeepSleepEvent.patch} | 2 +- ...ld-API.patch => 0556-More-World-API.patch} | 2 +- ...=> 0557-Add-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 2 +- ...awnEvent-fix-passed-parameter-issue.patch} | 4 +- ...acon-activation-deactivation-events.patch} | 0 ...dd-Channel-initialization-listeners.patch} | 0 ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0563-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...65-Entity-load-save-limit-per-chunk.patch} | 2 +- ...ssage-to-PlayerAdvancementDoneEvent.patch} | 2 +- ...close.patch => 0567-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0569-Add-basic-Datapack-API.patch} | 2 +- ...ment-variable-to-disable-server-gui.patch} | 0 ...71-Expand-PlayerGameModeChangeEvent.patch} | 6 +- ... => 0572-ItemStack-repair-check-API.patch} | 0 ....patch => 0573-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 2 +- ...-and-optimise-world-force-upgrading.patch} | 8 +-- ...PI.patch => 0576-Add-Mob-lookAt-API.patch} | 0 ...0577-Add-Unix-domain-socket-support.patch} | 6 +- ... => 0578-Add-EntityInsideBlockEvent.patch} | 0 ...79-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 4 +- ...patch => 0581-More-Lidded-Block-API.patch} | 0 ...82-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0583-Add-PlayerKickEvent-causes.patch} | 10 +-- ...0584-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 2 +- ...h => 0588-Add-BellRevealRaiderEvent.patch} | 0 ... 0589-Fix-invulnerable-end-crystals.patch} | 0 ...90-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0591-Fix-dangerous-end-portal-logic.patch} | 16 ++--- ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...patch => 0594-Line-Of-Sight-Changes.patch} | 2 +- ... => 0595-add-per-world-spawn-limits.patch} | 2 +- ...h => 0596-Fix-potions-splash-events.patch} | 0 ... => 0597-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 4 +- ...PI.patch => 0599-Missing-Entity-API.patch} | 2 +- ...ect-for-book-edit-is-called-on-main.patch} | 2 +- ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 4 +- ...rom-signs-not-firing-command-events.patch} | 0 ...tch => 0604-Add-PlayerArmSwingEvent.patch} | 2 +- ...-event-leave-message-not-being-sent.patch} | 8 +-- ...-for-mobs-immune-to-default-effects.patch} | 2 +- ...-t-apply-cramming-damage-to-players.patch} | 2 +- ...d-timings-for-sensors-and-behaviors.patch} | 0 ... 0609-Add-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0610-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0612-Add-System.out-err-catcher.patch} | 2 +- ...-to-contain-the-source-jars-in-stac.patch} | 2 +- ...AFK-kick-while-watching-end-credits.patch} | 2 +- ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0616-Add-PlayerSetSpawnEvent.patch} | 4 +- ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...h => 0620-Add-EntityDamageItemEvent.patch} | 0 ...timize-indirect-passenger-iteration.patch} | 6 +- ...em-frame-map-cursor-update-interval.patch} | 0 ...623-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0625-Add-BlockBreakBlockEvent.patch} | 8 +-- ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0627-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0629-Add-back-EntityPortalExitEvent.patch} | 6 +- ...-find-targets-for-lightning-strikes.patch} | 4 +- ... 0631-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0632-Left-handed-API.patch} | 0 ...ch => 0633-Add-more-advancement-API.patch} | 0 ...634-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0635-Add-critical-damage-API.patch} | 2 +- ...0636-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0638-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...0-Add-Raw-Byte-Entity-Serialization.patch} | 4 +- ...41-Vanilla-command-permission-fixes.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 6 +- ...43-Fix-GameProfileCache-concurrency.patch} | 2 +- ...644-Improve-and-expand-AsyncCatcher.patch} | 6 +- ...per-mobcaps-and-paper-playermobcaps.patch} | 6 +- ...tize-ResourceLocation-error-logging.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 6 +- ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 2 +- ...our-chunk-data-off-disk-when-conver.patch} | 0 ...d-state-when-raytracing-skip-air-bl.patch} | 0 ...atch => 0652-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...rimise-map-impl-for-tracked-players.patch} | 4 +- ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ... 0656-Distance-manager-tick-timings.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 0 ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 0 ...h => 0660-Add-packet-limiter-config.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0662-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0667-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 6 +- ...unintended-light-block-manipulation.patch} | 0 ...0670-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0672-Configurable-feature-seeds.patch} | 0 ... 0673-Add-root-admin-user-detection.patch} | 2 +- ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 4 +- ...ive-velocity-through-repeated-crits.patch} | 4 +- ...e-code-using-deprecated-for-removal.patch} | 4 +- ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 6 +- ...e-unnecessary-itemmeta-from-clients.patch} | 6 +- ...=> 0681-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0683-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0684-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0687-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 6 +- ... => 0690-Improve-scoreboard-entries.patch} | 0 ...ch => 0691-Entity-powdered-snow-API.patch} | 0 ...0692-Add-API-for-item-entity-health.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 8 +-- ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0697-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0698-Bucketable-API.patch} | 0 ...es.patch => 0699-Validate-usernames.patch} | 2 +- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 4 +- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...4-Multiple-Entries-with-Scoreboards.patch} | 0 ...705-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0707-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0709-Fix-NotePlayEvent.patch} | 0 ....patch => 0710-Freeze-Tick-Lock-API.patch} | 14 ++-- ...h => 0711-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0715-Implement-regenerateChunk.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 0 ...gs.patch => 0718-Add-GameEvent-tags.patch} | 0 ...ks-fairly-for-worlds-while-waiting-.patch} | 6 +- ...tch => 0720-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 4 +- ...-worldlist-before-initing-the-world.patch} | 4 +- ... => 0725-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0726-Custom-Potion-Mixes.patch} | 10 +-- ...27-Force-close-world-loading-screen.patch} | 2 +- ...728-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0731-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0734-Implement-getComputedBiome-API.patch} | 0 ...> 0735-Make-some-itemstacks-nonnull.patch} | 0 ...736-Implement-enchantWithLevels-API.patch} | 0 ...h => 0737-Fix-saving-in-unloadWorld.patch} | 0 ...h => 0738-Buffer-OOB-setBlock-calls.patch} | 0 ... 0739-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 4 +- ...s.patch => 0743-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 4 +- ...-ServerLevel-for-gamerule-callbacks.patch} | 4 +- ...> 0750-Expand-PlayerItemDamageEvent.patch} | 0 ...> 0751-WorldCreator-keepSpawnLoaded.patch} | 0 ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0757-Add-PlayerStopUsingItemEvent.patch} | 4 +- ...rs.patch => 0758-Don-t-tick-markers.patch} | 0 ...tch => 0759-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 0 ...0761-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0764-Sanitize-sent-BlockEntity-NBT.patch} | 0 ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 4 +- ...-on-world-create-while-being-ticked.patch} | 16 ++--- ...68-Dont-resent-entity-on-art-update.patch} | 0 ... => 0769-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0772-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 0 ...pty-items-from-being-added-to-world.patch} | 0 ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0776-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 4 +- ...PE.patch => 0779-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 0 ...API.patch => 0781-More-Teleport-API.patch} | 0 ... => 0782-Add-EntityPortalReadyEvent.patch} | 6 +- ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 0 ...on-plugins-accessing-faraway-chunks.patch} | 2 +- ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0788-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0790-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 2 +- ...792-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 20 +++--- ...ok-changes-from-crashing-the-server.patch} | 4 +- ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0796-Missing-eating-regain-reason.patch} | 0 ....patch => 0797-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...0-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0801-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0803-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0805-Add-getDrops-to-BlockState.patch} | 0 ...=> 0806-Fix-a-bunch-of-vanilla-bugs.patch} | 6 +- ...y-onTrackingStart-during-navigation.patch} | 0 ... 0808-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0809-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 2 +- ... 0812-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0814-Add-entity-knockback-API.patch} | 0 ....patch => 0815-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...ch => 0817-Add-EntityToggleSitEvent.patch} | 0 ... => 0818-Add-fire-tick-delay-option.patch} | 0 ...patch => 0819-Add-Moving-Piston-API.patch} | 0 ...> 0820-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 4 +- ...0824-Add-PrePlayerAttackEntityEvent.patch} | 0 ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 0 ... 0827-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...829-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 4 +- ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0832-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0833-Friction-API.patch} | 2 +- ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0835-Fix-player-kick-on-shutdown.patch} | 0 ... => 0836-Sync-offhand-slot-in-menus.patch} | 2 +- ... 0837-Player-Entity-Tracking-Events.patch} | 8 +-- ...tch => 0838-Limit-pet-look-distance.patch} | 0 ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0840-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 8 +-- ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0843-Add-BlockLockCheckEvent.patch} | 0 ... 0844-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0845-Improve-logging-and-errors.patch} | 0 ....patch => 0846-Improve-PortalEvents.patch} | 4 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 0 ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0850-Flying-Fall-Damage.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 4 +- ...ion-moving-velocity-to-VehicleBlock.patch} | 4 +- ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 2 +- ...k-items-during-EntityResurrectEvent.patch} | 4 +- ...en-API.patch => 0856-Win-Screen-API.patch} | 0 ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0859-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 4 +- ...=> 0862-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 6 +- ...867-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0869-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...ives-generating-from-using-bonemeal.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 0 ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 0 ...0877-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0880-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...84-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ... => 0886-Expand-PlayerItemMendEvent.patch} | 0 ...sh-ProjectileSource-for-projectiles.patch} | 4 +- ... => 0888-Add-transient-modifier-API.patch} | 0 ...patch => 0889-Fix-block-place-logic.patch} | 4 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 0 ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0897-Properly-cancel-usable-items.patch} | 4 +- ...8-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 0 ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 0 ...902-Call-missing-BlockDispenseEvent.patch} | 0 ...-chunks-for-supporting-block-checks.patch} | 4 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...905-Add-Sign-getInteractableSideFor.patch} | 0 ...06-Array-backed-synched-entity-data.patch} | 0 ...7-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0908-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...ayerChunkLoaderData-in-order-to-prep.patch | 19 ----- ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 0 ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0914-Add-whitelist-events.patch} | 0 ... 0915-Implement-PlayerFailMoveEvent.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 14 ++-- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 6 +- ...tion-when-spawning-display-entities.patch} | 0 ...920-Only-capture-actual-tree-growth.patch} | 4 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 0 ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0925-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0927-Bandaid-fix-for-Effect.patch} | 0 ...tch => 0928-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 4 +- ...lace-methods-with-old-StructureType.patch} | 0 ...e-namespaced-commands-if-send-names.patch} | 0 ...-handle-BlockBreakEvent-isDropItems.patch} | 4 +- ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 4 +- ... => 0936-Add-Listing-API-for-Player.patch} | 2 +- ...figurable-Region-Compression-Format.patch} | 0 ...8-Add-BlockFace-to-BlockDamageEvent.patch} | 0 ...h => 0939-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0940-Expand-Pose-API.patch} | 6 +- ...patch => 0941-More-DragonBattle-API.patch} | 0 ... 0942-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0943-Add-PlayerPickItemEvent.patch} | 0 ...=> 0944-Allow-trident-custom-damage.patch} | 0 ...5-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 0 ....patch => 0948-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...50-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 2 +- ...t-sanity-checks-in-container-clicks.patch} | 2 +- ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0957-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 4 +- ...entities-in-chunks-that-are-positio.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...atch => 0962-Fix-SuspiciousStewMeta.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 0 ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...70-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 0971-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 4 +- ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 0975-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...em-packets-with-collector-as-source.patch} | 4 +- ... => 0979-Expand-LingeringPotion-API.patch} | 0 ....patch => 0980-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...984-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 6 +- ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 8 +-- ...tch => 0990-Add-Structure-check-API.patch} | 0 ...-Dont-resend-blocks-on-interactions.patch} | 0 ...evious-behavior-for-setResourcePack.patch} | 0 ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 0995-add-more-scoreboard-API.patch} | 0 ...stry.patch => 0996-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 4 +- ...h => 0998-Add-experience-points-API.patch} | 0 ...h => 0999-Add-missing-InventoryType.patch} | 0 ...h => 1000-Add-drops-to-shear-events.patch} | 0 ...> 1001-Add-PlayerShieldDisableEvent.patch} | 0 ... => 1002-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 0 ...-experience-dropping-on-block-break.patch} | 14 ++-- ...> 1007-Fixup-NamespacedKey-handling.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 4 +- ...ch => 1009-Write-SavedData-IO-async.patch} | 0 ...timize-Collision-to-not-load-chunks.patch} | 8 +-- ...alSelector-Goal.Flag-Set-operations.patch} | 19 +++-- ...h => 1012-Improved-Watchdog-Support.patch} | 70 ++++++++++--------- ...> 1013-Optimize-Voxel-Shape-Merging.patch} | 0 ...nd-End-Portal-Frames-from-being-des.patch} | 28 ++++---- ...ance-map-to-optimise-entity-tracker.patch} | 20 +++--- ...Optimize-Bit-Operations-by-inlining.patch} | 2 +- ...> 1017-Remove-streams-from-hot-code.patch} | 2 +- ...-Eigencraft-redstone-implementation.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 8 +-- ...-Improve-boat-collision-performance.patch} | 10 +-- ...=> 1022-Optimise-general-POI-access.patch} | 4 +- ...ementation-for-blockstate-state-loo.patch} | 8 +-- ...> 1024-Execute-chunk-tasks-mid-tick.patch} | 4 +- ... 1025-Optimise-random-block-ticking.patch} | 0 ...ulate-regionfile-header-if-it-is-co.patch} | 0 ...city-compression-and-cipher-natives.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 2 +- ...tch => 1029-Collision-optimisations.patch} | 2 +- ...n-checking-in-player-move-packet-ha.patch} | 0 ...31-Fix-tripwire-state-inconsistency.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ate-Current-redstone-implementation.patch} | 0 ...34-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 1035-Properly-resend-entities.patch} | 0 ...pers.patch => 1036-Optimize-Hoppers.patch} | 4 +- ...-Improve-performance-of-mass-crafts.patch} | 0 ...> 1038-Actually-optimise-explosions.patch} | 0 ... 1039-Optimise-chunk-tick-iteration.patch} | 0 ...atch => 1040-Lag-compensation-ticks.patch} | 12 ++-- ...41-Optimise-nearby-player-retrieval.patch} | 0 scripts/moveback.py | 2 +- 686 files changed, 532 insertions(+), 564 deletions(-) rename patches/server/{0359-Don-t-move-existing-players-to-world-spawn.patch => 0358-Don-t-move-existing-players-to-world-spawn.patch} (93%) rename patches/server/{0362-Optimize-Pathfinding.patch => 0359-Optimize-Pathfinding.patch} (100%) rename patches/server/{0363-Reduce-Either-Optional-allocation.patch => 0360-Reduce-Either-Optional-allocation.patch} (100%) rename patches/server/{0364-Reduce-memory-footprint-of-CompoundTag.patch => 0361-Reduce-memory-footprint-of-CompoundTag.patch} (100%) rename patches/server/{0365-Prevent-opening-inventories-when-frozen.patch => 0362-Prevent-opening-inventories-when-frozen.patch} (97%) rename patches/server/{0366-Don-t-run-entity-collision-code-if-not-needed.patch => 0363-Don-t-run-entity-collision-code-if-not-needed.patch} (96%) rename patches/server/{0367-Implement-Player-Client-Options-API.patch => 0364-Implement-Player-Client-Options-API.patch} (99%) rename patches/server/{0368-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch => 0365-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch} (100%) rename patches/server/{0369-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch => 0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch} (95%) rename patches/server/{0370-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch => 0367-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch} (96%) rename patches/server/{0371-Add-PlayerAttackEntityCooldownResetEvent.patch => 0368-Add-PlayerAttackEntityCooldownResetEvent.patch} (95%) rename patches/server/{0372-Don-t-fire-BlockFade-on-worldgen-threads.patch => 0369-Don-t-fire-BlockFade-on-worldgen-threads.patch} (100%) rename patches/server/{0373-Add-phantom-creative-and-insomniac-controls.patch => 0370-Add-phantom-creative-and-insomniac-controls.patch} (100%) rename patches/server/{0374-Fix-item-duplication-and-teleport-issues.patch => 0371-Fix-item-duplication-and-teleport-issues.patch} (95%) rename patches/server/{0375-Villager-Restocks-API.patch => 0372-Villager-Restocks-API.patch} (100%) rename patches/server/{0376-Validate-PickItem-Packet-and-kick-for-invalid.patch => 0373-Validate-PickItem-Packet-and-kick-for-invalid.patch} (95%) rename patches/server/{0377-Expose-game-version.patch => 0374-Expose-game-version.patch} (89%) rename patches/server/{0379-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch => 0375-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch} (93%) rename patches/server/{0380-misc-debugging-dumps.patch => 0376-misc-debugging-dumps.patch} (88%) rename patches/server/{0381-Prevent-teleporting-dead-entities.patch => 0377-Prevent-teleporting-dead-entities.patch} (93%) rename patches/server/{0382-Deobfuscate-stacktraces-in-log-messages-crash-report.patch => 0378-Deobfuscate-stacktraces-in-log-messages-crash-report.patch} (97%) rename patches/server/{0383-Implement-Mob-Goal-API.patch => 0379-Implement-Mob-Goal-API.patch} (95%) rename patches/server/{0384-Add-villager-reputation-API.patch => 0380-Add-villager-reputation-API.patch} (100%) rename patches/server/{0385-Option-for-maximum-exp-value-when-merging-orbs.patch => 0381-Option-for-maximum-exp-value-when-merging-orbs.patch} (100%) rename patches/server/{0386-ExperienceOrbMergeEvent.patch => 0382-ExperienceOrbMergeEvent.patch} (100%) rename patches/server/{0387-Fix-PotionEffect-ignores-icon-flag.patch => 0383-Fix-PotionEffect-ignores-icon-flag.patch} (100%) rename patches/server/{0388-Potential-bed-API.patch => 0384-Potential-bed-API.patch} (100%) rename patches/server/{0389-Wait-for-Async-Tasks-during-shutdown.patch => 0385-Wait-for-Async-Tasks-during-shutdown.patch} (91%) rename patches/server/{0390-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch => 0386-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch} (100%) rename patches/server/{0392-Ensure-safe-gateway-teleport.patch => 0387-Ensure-safe-gateway-teleport.patch} (100%) rename patches/server/{0393-Add-option-for-console-having-all-permissions.patch => 0388-Add-option-for-console-having-all-permissions.patch} (100%) rename patches/server/{0394-Fix-villager-trading-demand-MC-163962.patch => 0389-Fix-villager-trading-demand-MC-163962.patch} (100%) rename patches/server/{0395-Maps-shouldn-t-load-chunks.patch => 0390-Maps-shouldn-t-load-chunks.patch} (100%) rename patches/server/{0396-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch => 0391-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch} (100%) rename patches/server/{0397-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch => 0392-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch} (100%) rename patches/server/{0398-Fix-piston-physics-inconsistency-MC-188840.patch => 0393-Fix-piston-physics-inconsistency-MC-188840.patch} (97%) rename patches/server/{0399-Fix-sand-duping.patch => 0394-Fix-sand-duping.patch} (94%) rename patches/server/{0400-Fix-missing-chunks-due-to-integer-overflow.patch => 0395-Fix-missing-chunks-due-to-integer-overflow.patch} (100%) rename patches/server/{0401-Prevent-position-desync-causing-tp-exploit.patch => 0396-Prevent-position-desync-causing-tp-exploit.patch} (94%) rename patches/server/{0402-Inventory-getHolder-method-without-block-snapshot.patch => 0397-Inventory-getHolder-method-without-block-snapshot.patch} (100%) rename patches/server/{0403-Improve-Arrow-API.patch => 0398-Improve-Arrow-API.patch} (100%) rename patches/server/{0404-Add-PlayerRecipeBookClickEvent.patch => 0399-Add-PlayerRecipeBookClickEvent.patch} (97%) rename patches/server/{0406-Hide-sync-chunk-writes-behind-flag.patch => 0400-Hide-sync-chunk-writes-behind-flag.patch} (100%) rename patches/server/{0407-Add-permission-for-command-blocks.patch => 0401-Add-permission-for-command-blocks.patch} (97%) rename patches/server/{0408-Ensure-Entity-position-and-AABB-are-never-invalid.patch => 0402-Ensure-Entity-position-and-AABB-are-never-invalid.patch} (91%) rename patches/server/{0409-Fix-Per-World-Difficulty-Remembering-Difficulty.patch => 0403-Fix-Per-World-Difficulty-Remembering-Difficulty.patch} (91%) rename patches/server/{0410-Paper-dumpitem-command.patch => 0404-Paper-dumpitem-command.patch} (100%) rename patches/server/{0411-Improve-Legacy-Component-serialization-size.patch => 0405-Improve-Legacy-Component-serialization-size.patch} (100%) rename patches/server/{0413-Add-Plugin-Tickets-to-API-Chunk-Methods.patch => 0406-Add-Plugin-Tickets-to-API-Chunk-Methods.patch} (97%) rename patches/server/{0414-incremental-chunk-and-player-saving.patch => 0407-incremental-chunk-and-player-saving.patch} (92%) rename patches/server/{0415-Support-old-UUID-format-for-NBT.patch => 0408-Support-old-UUID-format-for-NBT.patch} (100%) rename patches/server/{0416-Convert-legacy-attributes-in-Item-Meta.patch => 0409-Convert-legacy-attributes-in-Item-Meta.patch} (100%) rename patches/server/{0418-Support-components-in-ItemMeta.patch => 0410-Support-components-in-ItemMeta.patch} (100%) rename patches/server/{0419-Improve-fix-EntityTargetLivingEntityEvent.patch => 0411-Improve-fix-EntityTargetLivingEntityEvent.patch} (100%) rename patches/server/{0420-Add-entity-liquid-API.patch => 0412-Add-entity-liquid-API.patch} (100%) rename patches/server/{0421-Update-itemstack-legacy-name-and-lore.patch => 0413-Update-itemstack-legacy-name-and-lore.patch} (100%) rename patches/server/{0422-Add-PrepareResultEvent.patch => 0414-Add-PrepareResultEvent.patch} (100%) rename patches/server/{0423-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch => 0415-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch} (91%) rename patches/server/{0424-Fix-arrows-never-despawning-MC-125757.patch => 0416-Fix-arrows-never-despawning-MC-125757.patch} (100%) rename patches/server/{0425-Thread-Safe-Vanilla-Command-permission-checking.patch => 0417-Thread-Safe-Vanilla-Command-permission-checking.patch} (97%) rename patches/server/{0426-Fix-SPIGOT-5989.patch => 0418-Fix-SPIGOT-5989.patch} (95%) rename patches/server/{0427-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0419-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (100%) rename patches/server/{0428-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0420-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (100%) rename patches/server/{0429-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0421-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (97%) rename patches/server/{0430-Optimize-NetworkManager-Exception-Handling.patch => 0422-Optimize-NetworkManager-Exception-Handling.patch} (100%) rename patches/server/{0431-Fix-some-rails-connecting-improperly.patch => 0423-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/server/{0432-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0424-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/server/{0433-Brand-support.patch => 0425-Brand-support.patch} (96%) rename patches/server/{0434-Add-playPickupItemAnimation-to-LivingEntity.patch => 0426-Add-playPickupItemAnimation-to-LivingEntity.patch} (100%) rename patches/server/{0435-Don-t-require-FACING-data.patch => 0427-Don-t-require-FACING-data.patch} (100%) rename patches/server/{0436-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0428-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (93%) rename patches/server/{0437-Add-moon-phase-API.patch => 0429-Add-moon-phase-API.patch} (100%) rename patches/server/{0438-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0430-Do-not-let-the-server-load-chunks-from-newer-version.patch} (100%) rename patches/server/{0439-Prevent-headless-pistons-from-being-created.patch => 0431-Prevent-headless-pistons-from-being-created.patch} (92%) rename patches/server/{0440-Add-BellRingEvent.patch => 0432-Add-BellRingEvent.patch} (93%) rename patches/server/{0441-Add-zombie-targets-turtle-egg-config.patch => 0433-Add-zombie-targets-turtle-egg-config.patch} (100%) rename patches/server/{0442-Buffer-joins-to-world.patch => 0434-Buffer-joins-to-world.patch} (95%) rename patches/server/{0444-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0435-Fix-hex-colors-not-working-in-some-kick-messages.patch} (97%) rename patches/server/{0445-PortalCreateEvent-needs-to-know-its-entity.patch => 0436-PortalCreateEvent-needs-to-know-its-entity.patch} (98%) rename patches/server/{0446-Add-more-Evoker-API.patch => 0437-Add-more-Evoker-API.patch} (100%) rename patches/server/{0447-Add-methods-to-get-translation-keys.patch => 0438-Add-methods-to-get-translation-keys.patch} (100%) rename patches/server/{0448-Create-HoverEvent-from-ItemStack-Entity.patch => 0439-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0449-Cache-block-data-strings.patch => 0440-Cache-block-data-strings.patch} (95%) rename patches/server/{0450-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0441-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (92%) rename patches/server/{0451-Add-additional-open-container-api-to-HumanEntity.patch => 0442-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/server/{0452-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0443-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0453-Extend-block-drop-capture-to-capture-all-items-added.patch => 0444-Extend-block-drop-capture-to-capture-all-items-added.patch} (93%) rename patches/server/{0454-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0445-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (90%) rename patches/server/{0455-Lazily-track-plugin-scoreboards-by-default.patch => 0446-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0456-Entity-isTicking.patch => 0447-Entity-isTicking.patch} (90%) rename patches/server/{0457-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0448-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (90%) rename patches/server/{0458-Fix-Concurrency-issue-in-ShufflingList.patch => 0449-Fix-Concurrency-issue-in-ShufflingList.patch} (97%) rename patches/server/{0459-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0450-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (100%) rename patches/server/{0460-Fix-for-large-move-vectors-crashing-server.patch => 0451-Fix-for-large-move-vectors-crashing-server.patch} (98%) rename patches/server/{0461-Optimise-getType-calls.patch => 0452-Optimise-getType-calls.patch} (100%) rename patches/server/{0462-Villager-resetOffers.patch => 0453-Villager-resetOffers.patch} (100%) rename patches/server/{0463-Retain-block-place-order-when-capturing-blockstates.patch => 0454-Retain-block-place-order-when-capturing-blockstates.patch} (93%) rename patches/server/{0464-Reduce-blockpos-allocation-from-pathfinding.patch => 0455-Reduce-blockpos-allocation-from-pathfinding.patch} (100%) rename patches/server/{0465-Fix-item-locations-dropped-from-campfires.patch => 0456-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0466-Fix-bell-block-entity-memory-leak.patch => 0457-Fix-bell-block-entity-memory-leak.patch} (100%) rename patches/server/{0467-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0458-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0468-Add-getOfflinePlayerIfCached-String.patch => 0459-Add-getOfflinePlayerIfCached-String.patch} (93%) rename patches/server/{0469-Add-ignore-discounts-API.patch => 0460-Add-ignore-discounts-API.patch} (99%) rename patches/server/{0470-Toggle-for-removing-existing-dragon.patch => 0461-Toggle-for-removing-existing-dragon.patch} (100%) rename patches/server/{0471-Fix-client-lag-on-advancement-loading.patch => 0462-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/server/{0472-Item-no-age-no-player-pickup.patch => 0463-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0474-Beacon-API-custom-effect-ranges.patch => 0464-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0475-Add-API-for-quit-reason.patch => 0465-Add-API-for-quit-reason.patch} (95%) rename patches/server/{0476-Add-Wandering-Trader-spawn-rate-config-options.patch => 0466-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/server/{0477-Expose-world-spawn-angle.patch => 0467-Expose-world-spawn-angle.patch} (91%) rename patches/server/{0478-Add-Destroy-Speed-API.patch => 0468-Add-Destroy-Speed-API.patch} (100%) rename patches/server/{0479-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0469-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (100%) rename patches/server/{0480-Add-LivingEntity-clearActiveItem.patch => 0470-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/server/{0481-Add-PlayerItemCooldownEvent.patch => 0471-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0482-Significantly-improve-performance-of-the-end-generat.patch => 0472-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0483-More-lightning-API.patch => 0473-More-lightning-API.patch} (100%) rename patches/server/{0484-Climbing-should-not-bypass-cramming-gamerule.patch => 0474-Climbing-should-not-bypass-cramming-gamerule.patch} (97%) rename patches/server/{0485-Add-missing-default-perms-for-commands.patch => 0475-Add-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0486-Add-PlayerShearBlockEvent.patch => 0476-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0487-Limit-recipe-packets.patch => 0477-Limit-recipe-packets.patch} (96%) rename patches/server/{0488-Fix-CraftSound-backwards-compatibility.patch => 0478-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0489-Player-Chunk-Load-Unload-Events.patch => 0479-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/server/{0490-Optimize-Dynamic-get-Missing-Keys.patch => 0480-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0491-Expose-LivingEntity-hurt-direction.patch => 0481-Expose-LivingEntity-hurt-direction.patch} (96%) rename patches/server/{0492-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0482-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (91%) rename patches/server/{0493-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch => 0483-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch} (100%) rename patches/server/{0495-Add-TargetHitEvent.patch => 0484-Add-TargetHitEvent.patch} (100%) rename patches/server/{0496-MC-4-Fix-item-position-desync.patch => 0485-MC-4-Fix-item-position-desync.patch} (93%) rename patches/server/{0497-Additional-Block-Material-API.patch => 0486-Additional-Block-Material-API.patch} (100%) rename patches/server/{0498-Fix-harming-potion-dupe.patch => 0487-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0499-API-to-get-Material-from-Boats-and-Minecarts.patch => 0488-API-to-get-Material-from-Boats-and-Minecarts.patch} (100%) rename patches/server/{0500-Cache-burn-durations.patch => 0489-Cache-burn-durations.patch} (100%) rename patches/server/{0501-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0490-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/server/{0502-Fix-Not-a-string-Map-Conversion-spam.patch => 0491-Fix-Not-a-string-Map-Conversion-spam.patch} (100%) rename patches/server/{0503-Add-PlayerFlowerPotManipulateEvent.patch => 0492-Add-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0504-Fix-interact-event-not-being-called-sometimes.patch => 0493-Fix-interact-event-not-being-called-sometimes.patch} (97%) rename patches/server/{0505-Zombie-API-breaking-doors.patch => 0494-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0506-Fix-nerfed-slime-when-splitting.patch => 0495-Fix-nerfed-slime-when-splitting.patch} (100%) rename patches/server/{0507-Add-EntityLoadCrossbowEvent.patch => 0496-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0508-Add-WorldGameRuleChangeEvent.patch => 0497-Add-WorldGameRuleChangeEvent.patch} (98%) rename patches/server/{0509-Add-ServerResourcesReloadedEvent.patch => 0498-Add-ServerResourcesReloadedEvent.patch} (94%) rename patches/server/{0510-Add-world-settings-for-mobs-picking-up-loot.patch => 0499-Add-world-settings-for-mobs-picking-up-loot.patch} (100%) rename patches/server/{0511-Add-BlockFailedDispenseEvent.patch => 0500-Add-BlockFailedDispenseEvent.patch} (96%) rename patches/server/{0512-Add-PlayerLecternPageChangeEvent.patch => 0501-Add-PlayerLecternPageChangeEvent.patch} (100%) rename patches/server/{0513-Add-PlayerLoomPatternSelectEvent.patch => 0502-Add-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/server/{0514-Configurable-door-breaking-difficulty.patch => 0503-Configurable-door-breaking-difficulty.patch} (100%) rename patches/server/{0515-Empty-commands-shall-not-be-dispatched.patch => 0504-Empty-commands-shall-not-be-dispatched.patch} (89%) rename patches/server/{0516-Remove-stale-POIs.patch => 0505-Remove-stale-POIs.patch} (92%) rename patches/server/{0517-Fix-villager-boat-exploit.patch => 0506-Fix-villager-boat-exploit.patch} (93%) rename patches/server/{0518-Add-sendOpLevel-API.patch => 0507-Add-sendOpLevel-API.patch} (91%) rename patches/server/{0519-TODO-Registry-Modification-API.patch => 0508-TODO-Registry-Modification-API.patch} (100%) rename patches/server/{0520-Add-StructuresLocateEvent.patch => 0509-Add-StructuresLocateEvent.patch} (99%) rename patches/server/{0521-Collision-option-for-requiring-a-player-participant.patch => 0510-Collision-option-for-requiring-a-player-participant.patch} (95%) rename patches/server/{0522-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0511-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0523-Return-chat-component-with-empty-text-instead-of-thr.patch => 0512-Return-chat-component-with-empty-text-instead-of-thr.patch} (92%) rename patches/server/{0524-Make-schedule-command-per-world.patch => 0513-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0525-Configurable-max-leash-distance.patch => 0514-Configurable-max-leash-distance.patch} (100%) rename patches/server/{0526-Add-BlockPreDispenseEvent.patch => 0515-Add-BlockPreDispenseEvent.patch} (95%) rename patches/server/{0527-Add-PlayerChangeBeaconEffectEvent.patch => 0516-Add-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/server/{0528-Add-toggle-for-always-placing-the-dragon-egg.patch => 0517-Add-toggle-for-always-placing-the-dragon-egg.patch} (100%) rename patches/server/{0529-Add-PlayerStonecutterRecipeSelectEvent.patch => 0518-Add-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/server/{0530-Expand-EntityUnleashEvent.patch => 0519-Expand-EntityUnleashEvent.patch} (98%) rename patches/server/{0531-Reset-shield-blocking-on-dimension-change.patch => 0520-Reset-shield-blocking-on-dimension-change.patch} (90%) rename patches/server/{0532-Add-DragonEggFormEvent.patch => 0521-Add-DragonEggFormEvent.patch} (100%) rename patches/server/{0533-Add-EntityMoveEvent.patch => 0522-Add-EntityMoveEvent.patch} (91%) rename patches/server/{0534-added-option-to-disable-pathfinding-updates-on-block.patch => 0523-added-option-to-disable-pathfinding-updates-on-block.patch} (92%) rename patches/server/{0535-Inline-shift-direction-fields.patch => 0524-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0536-Allow-adding-items-to-BlockDropItemEvent.patch => 0525-Allow-adding-items-to-BlockDropItemEvent.patch} (95%) rename patches/server/{0537-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0526-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0538-living-entity-allow-attribute-registration.patch => 0527-living-entity-allow-attribute-registration.patch} (100%) rename patches/server/{0539-fix-dead-slime-setSize-invincibility.patch => 0528-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0540-Merchant-getRecipes-should-return-an-immutable-list.patch => 0529-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0541-Expose-Tracked-Players.patch => 0530-Expose-Tracked-Players.patch} (100%) rename patches/server/{0542-Improve-ServerGUI.patch => 0531-Improve-ServerGUI.patch} (100%) rename patches/server/{0543-fix-converting-txt-to-json-file.patch => 0532-fix-converting-txt-to-json-file.patch} (95%) rename patches/server/{0544-Add-worldborder-events.patch => 0533-Add-worldborder-events.patch} (97%) rename patches/server/{0545-Add-PlayerNameEntityEvent.patch => 0534-Add-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0546-Prevent-grindstones-from-overstacking-items.patch => 0535-Prevent-grindstones-from-overstacking-items.patch} (100%) rename patches/server/{0547-Add-recipe-to-cook-events.patch => 0536-Add-recipe-to-cook-events.patch} (100%) rename patches/server/{0548-Add-Block-isValidTool.patch => 0537-Add-Block-isValidTool.patch} (100%) rename patches/server/{0549-Allow-using-signs-inside-spawn-protection.patch => 0538-Allow-using-signs-inside-spawn-protection.patch} (95%) rename patches/server/{0550-Expand-world-key-API.patch => 0539-Expand-world-key-API.patch} (97%) rename patches/server/{0551-Add-fast-alternative-constructor-for-Rotations.patch => 0540-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0552-Item-Rarity-API.patch => 0541-Item-Rarity-API.patch} (100%) rename patches/server/{0553-Drop-carried-item-when-player-has-disconnected.patch => 0542-Drop-carried-item-when-player-has-disconnected.patch} (93%) rename patches/server/{0554-forced-whitelist-use-configurable-kick-message.patch => 0543-forced-whitelist-use-configurable-kick-message.patch} (87%) rename patches/server/{0555-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0544-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (91%) rename patches/server/{0556-Expose-protocol-version.patch => 0545-Expose-protocol-version.patch} (100%) rename patches/server/{0557-Enhance-console-tab-completions-for-brigadier-comman.patch => 0546-Enhance-console-tab-completions-for-brigadier-comman.patch} (99%) rename patches/server/{0558-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0547-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (93%) rename patches/server/{0559-Add-bypass-host-check.patch => 0548-Add-bypass-host-check.patch} (100%) rename patches/server/{0560-Set-area-affect-cloud-rotation.patch => 0549-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0561-add-isDeeplySleeping-to-HumanEntity.patch => 0550-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/server/{0562-add-consumeFuel-to-FurnaceBurnEvent.patch => 0551-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0563-add-get-set-drop-chance-to-EntityEquipment.patch => 0552-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0564-fix-PigZombieAngerEvent-cancellation.patch => 0553-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0565-fix-PlayerItemHeldEvent-firing-twice.patch => 0554-fix-PlayerItemHeldEvent-firing-twice.patch} (93%) rename patches/server/{0566-Add-PlayerDeepSleepEvent.patch => 0555-Add-PlayerDeepSleepEvent.patch} (91%) rename patches/server/{0567-More-World-API.patch => 0556-More-World-API.patch} (97%) rename patches/server/{0568-Add-PlayerBedFailEnterEvent.patch => 0557-Add-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0569-Implement-methods-to-convert-between-Component-and-B.patch => 0558-Implement-methods-to-convert-between-Component-and-B.patch} (96%) rename patches/server/{0570-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch => 0559-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch} (95%) rename patches/server/{0571-Introduce-beacon-activation-deactivation-events.patch => 0560-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0572-Add-Channel-initialization-listeners.patch => 0561-Add-Channel-initialization-listeners.patch} (100%) rename patches/server/{0573-Send-empty-commands-if-tab-completion-is-disabled.patch => 0562-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0574-Add-more-WanderingTrader-API.patch => 0563-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0575-Add-EntityBlockStorage-clearEntities.patch => 0564-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0576-Entity-load-save-limit-per-chunk.patch => 0565-Entity-load-save-limit-per-chunk.patch} (97%) rename patches/server/{0577-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0566-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (96%) rename patches/server/{0578-Inventory-close.patch => 0567-Inventory-close.patch} (100%) rename patches/server/{0579-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0568-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0580-Add-basic-Datapack-API.patch => 0569-Add-basic-Datapack-API.patch} (98%) rename patches/server/{0581-Add-environment-variable-to-disable-server-gui.patch => 0570-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0582-Expand-PlayerGameModeChangeEvent.patch => 0571-Expand-PlayerGameModeChangeEvent.patch} (97%) rename patches/server/{0583-ItemStack-repair-check-API.patch => 0572-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0584-More-Enchantment-API.patch => 0573-More-Enchantment-API.patch} (100%) rename patches/server/{0585-Move-range-check-for-block-placing-up.patch => 0574-Move-range-check-for-block-placing-up.patch} (92%) rename patches/server/{0586-Fix-and-optimise-world-force-upgrading.patch => 0575-Fix-and-optimise-world-force-upgrading.patch} (98%) rename patches/server/{0587-Add-Mob-lookAt-API.patch => 0576-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0588-Add-Unix-domain-socket-support.patch => 0577-Add-Unix-domain-socket-support.patch} (96%) rename patches/server/{0589-Add-EntityInsideBlockEvent.patch => 0578-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0590-Attributes-API-for-item-defaults.patch => 0579-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0591-Add-cause-to-Weather-ThunderChangeEvents.patch => 0580-Add-cause-to-Weather-ThunderChangeEvents.patch} (97%) rename patches/server/{0592-More-Lidded-Block-API.patch => 0581-More-Lidded-Block-API.patch} (100%) rename patches/server/{0593-Limit-item-frame-cursors-on-maps.patch => 0582-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0594-Add-PlayerKickEvent-causes.patch => 0583-Add-PlayerKickEvent-causes.patch} (98%) rename patches/server/{0595-Add-PufferFishStateChangeEvent.patch => 0584-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0596-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0585-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0597-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0586-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/server/{0598-Add-option-to-fix-items-merging-through-walls.patch => 0587-Add-option-to-fix-items-merging-through-walls.patch} (93%) rename patches/server/{0599-Add-BellRevealRaiderEvent.patch => 0588-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0600-Fix-invulnerable-end-crystals.patch => 0589-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0601-Add-ElderGuardianAppearanceEvent.patch => 0590-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0602-Fix-dangerous-end-portal-logic.patch => 0591-Fix-dangerous-end-portal-logic.patch} (86%) rename patches/server/{0603-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0592-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0604-Make-item-validations-configurable.patch => 0593-Make-item-validations-configurable.patch} (100%) rename patches/server/{0605-Line-Of-Sight-Changes.patch => 0594-Line-Of-Sight-Changes.patch} (97%) rename patches/server/{0606-add-per-world-spawn-limits.patch => 0595-add-per-world-spawn-limits.patch} (91%) rename patches/server/{0607-Fix-potions-splash-events.patch => 0596-Fix-potions-splash-events.patch} (100%) rename patches/server/{0608-Add-more-LimitedRegion-API.patch => 0597-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0609-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0598-Fix-PlayerDropItemEvent-using-wrong-item.patch} (89%) rename patches/server/{0610-Missing-Entity-API.patch => 0599-Missing-Entity-API.patch} (99%) rename patches/server/{0611-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0600-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (92%) rename patches/server/{0612-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0601-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0613-Use-getChunkIfLoadedImmediately-in-places.patch => 0602-Use-getChunkIfLoadedImmediately-in-places.patch} (94%) rename patches/server/{0614-Fix-commands-from-signs-not-firing-command-events.patch => 0603-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0615-Add-PlayerArmSwingEvent.patch => 0604-Add-PlayerArmSwingEvent.patch} (93%) rename patches/server/{0616-Fix-kick-event-leave-message-not-being-sent.patch => 0605-Fix-kick-event-leave-message-not-being-sent.patch} (94%) rename patches/server/{0617-Add-config-for-mobs-immune-to-default-effects.patch => 0606-Add-config-for-mobs-immune-to-default-effects.patch} (97%) rename patches/server/{0618-Don-t-apply-cramming-damage-to-players.patch => 0607-Don-t-apply-cramming-damage-to-players.patch} (94%) rename patches/server/{0619-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0608-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0620-Add-missing-forceDrop-toggles.patch => 0609-Add-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0621-Stinger-API.patch => 0610-Stinger-API.patch} (100%) rename patches/server/{0622-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0611-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0623-Add-System.out-err-catcher.patch => 0612-Add-System.out-err-catcher.patch} (98%) rename patches/server/{0624-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0613-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (98%) rename patches/server/{0626-Prevent-AFK-kick-while-watching-end-credits.patch => 0614-Prevent-AFK-kick-while-watching-end-credits.patch} (93%) rename patches/server/{0627-Allow-skipping-writing-of-comments-to-server.propert.patch => 0615-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0628-Add-PlayerSetSpawnEvent.patch => 0616-Add-PlayerSetSpawnEvent.patch} (98%) rename patches/server/{0629-Make-hoppers-respect-inventory-max-stack-size.patch => 0617-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0630-Optimize-entity-tracker-passenger-checks.patch => 0618-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0631-Config-option-for-Piglins-guarding-chests.patch => 0619-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0632-Add-EntityDamageItemEvent.patch => 0620-Add-EntityDamageItemEvent.patch} (100%) rename patches/server/{0633-Optimize-indirect-passenger-iteration.patch => 0621-Optimize-indirect-passenger-iteration.patch} (91%) rename patches/server/{0634-Configurable-item-frame-map-cursor-update-interval.patch => 0622-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0635-Clear-bucket-NBT-after-dispense.patch => 0623-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0636-Change-EnderEye-target-without-changing-other-things.patch => 0624-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0637-Add-BlockBreakBlockEvent.patch => 0625-Add-BlockBreakBlockEvent.patch} (94%) rename patches/server/{0638-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0626-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0639-More-CommandBlock-API.patch => 0627-More-CommandBlock-API.patch} (100%) rename patches/server/{0640-Add-missing-team-sidebar-display-slots.patch => 0628-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0641-Add-back-EntityPortalExitEvent.patch => 0629-Add-back-EntityPortalExitEvent.patch} (93%) rename patches/server/{0642-Add-methods-to-find-targets-for-lightning-strikes.patch => 0630-Add-methods-to-find-targets-for-lightning-strikes.patch} (94%) rename patches/server/{0643-Get-entity-default-attributes.patch => 0631-Get-entity-default-attributes.patch} (100%) rename patches/server/{0644-Left-handed-API.patch => 0632-Left-handed-API.patch} (100%) rename patches/server/{0645-Add-more-advancement-API.patch => 0633-Add-more-advancement-API.patch} (100%) rename patches/server/{0646-Add-ItemFactory-getSpawnEgg-API.patch => 0634-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0647-Add-critical-damage-API.patch => 0635-Add-critical-damage-API.patch} (98%) rename patches/server/{0648-Fix-issues-with-mob-conversion.patch => 0636-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0649-Add-isCollidable-methods-to-various-places.patch => 0637-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0650-Goat-ram-API.patch => 0638-Goat-ram-API.patch} (100%) rename patches/server/{0651-Add-API-for-resetting-a-single-score.patch => 0639-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0652-Add-Raw-Byte-Entity-Serialization.patch => 0640-Add-Raw-Byte-Entity-Serialization.patch} (96%) rename patches/server/{0653-Vanilla-command-permission-fixes.patch => 0641-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0654-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0642-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (93%) rename patches/server/{0655-Fix-GameProfileCache-concurrency.patch => 0643-Fix-GameProfileCache-concurrency.patch} (98%) rename patches/server/{0656-Improve-and-expand-AsyncCatcher.patch => 0644-Improve-and-expand-AsyncCatcher.patch} (97%) rename patches/server/{0657-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0645-Add-paper-mobcaps-and-paper-playermobcaps.patch} (98%) rename patches/server/{0658-Sanitize-ResourceLocation-error-logging.patch => 0646-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0661-Manually-inline-methods-in-BlockPosition.patch => 0647-Manually-inline-methods-in-BlockPosition.patch} (92%) rename patches/server/{0662-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0648-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0663-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0649-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (94%) rename patches/server/{0664-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0650-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0665-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch => 0651-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (100%) rename patches/server/{0666-Time-scoreboard-search.patch => 0652-Time-scoreboard-search.patch} (100%) rename patches/server/{0667-Send-full-pos-packets-for-hard-colliding-entities.patch => 0653-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{0668-Oprimise-map-impl-for-tracked-players.patch => 0654-Oprimise-map-impl-for-tracked-players.patch} (87%) rename patches/server/{0669-Optimise-BlockSoil-nearby-water-lookup.patch => 0655-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0670-Distance-manager-tick-timings.patch => 0656-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0671-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0657-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (100%) rename patches/server/{0672-Check-requirement-before-suggesting-root-nodes.patch => 0658-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0673-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0659-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/server/{0674-Add-packet-limiter-config.patch => 0660-Add-packet-limiter-config.patch} (100%) rename patches/server/{0675-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0661-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0676-Ensure-valid-vehicle-status.patch => 0662-Ensure-valid-vehicle-status.patch} (100%) rename patches/server/{0677-Prevent-softlocked-end-exit-portal-generation.patch => 0663-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0678-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0664-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0679-Don-t-log-debug-logging-being-disabled.patch => 0665-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0680-fix-various-menus-with-empty-level-accesses.patch => 0666-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0681-Preserve-overstacked-loot.patch => 0667-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0682-Update-head-rotation-in-missing-places.patch => 0668-Update-head-rotation-in-missing-places.patch} (84%) rename patches/server/{0683-prevent-unintended-light-block-manipulation.patch => 0669-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0684-Fix-CraftCriteria-defaults-map.patch => 0670-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0685-Fix-upstreams-block-state-factories.patch => 0671-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0686-Configurable-feature-seeds.patch => 0672-Configurable-feature-seeds.patch} (100%) rename patches/server/{0687-Add-root-admin-user-detection.patch => 0673-Add-root-admin-user-detection.patch} (97%) rename patches/server/{0688-Always-allow-item-changing-in-Fireball.patch => 0674-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0689-don-t-attempt-to-teleport-dead-entities.patch => 0675-don-t-attempt-to-teleport-dead-entities.patch} (85%) rename patches/server/{0690-Prevent-excessive-velocity-through-repeated-crits.patch => 0676-Prevent-excessive-velocity-through-repeated-crits.patch} (91%) rename patches/server/{0691-Remove-client-side-code-using-deprecated-for-removal.patch => 0677-Remove-client-side-code-using-deprecated-for-removal.patch} (90%) rename patches/server/{0692-Fix-removing-recipes-from-RecipeIterator.patch => 0678-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0693-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0679-Prevent-sending-oversized-item-data-in-equipment-and.patch} (95%) rename patches/server/{0694-Hide-unnecessary-itemmeta-from-clients.patch => 0680-Hide-unnecessary-itemmeta-from-clients.patch} (97%) rename patches/server/{0695-Fix-Spigot-growth-modifiers.patch => 0681-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0696-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0682-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0697-Add-PlayerItemFrameChangeEvent.patch => 0683-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0698-Optimize-HashMapPalette.patch => 0684-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0699-Allow-delegation-to-vanilla-chunk-gen.patch => 0685-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/server/{0700-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0686-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0701-Add-more-Campfire-API.patch => 0687-Add-more-Campfire-API.patch} (100%) rename patches/server/{0702-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0688-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0703-Forward-CraftEntity-in-teleport-command.patch => 0689-Forward-CraftEntity-in-teleport-command.patch} (89%) rename patches/server/{0704-Improve-scoreboard-entries.patch => 0690-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0705-Entity-powdered-snow-API.patch => 0691-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0706-Add-API-for-item-entity-health.patch => 0692-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0707-Configurable-max-block-light-for-monster-spawning.patch => 0693-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0708-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0694-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (93%) rename patches/server/{0709-Load-effect-amplifiers-greater-than-127-correctly.patch => 0695-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0710-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0696-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0711-Fix-bees-aging-inside-hives.patch => 0697-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0712-Bucketable-API.patch => 0698-Bucketable-API.patch} (100%) rename patches/server/{0713-Validate-usernames.patch => 0699-Validate-usernames.patch} (97%) rename patches/server/{0714-Make-water-animal-spawn-height-configurable.patch => 0700-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0701-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (98%) rename patches/server/{0716-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0702-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0717-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0703-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0718-Multiple-Entries-with-Scoreboards.patch => 0704-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0719-Reset-placed-block-on-exception.patch => 0705-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0720-Add-configurable-height-for-slime-spawn.patch => 0706-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0721-Fix-xp-reward-for-baby-zombies.patch => 0707-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0722-Multi-Block-Change-API-Implementation.patch => 0708-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0723-Fix-NotePlayEvent.patch => 0709-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0724-Freeze-Tick-Lock-API.patch => 0710-Freeze-Tick-Lock-API.patch} (87%) rename patches/server/{0725-More-PotionEffectType-API.patch => 0711-More-PotionEffectType-API.patch} (100%) rename patches/server/{0726-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0712-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0727-API-for-creating-command-sender-which-forwards-feedb.patch => 0713-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/server/{0728-Add-missing-structure-set-seed-configs.patch => 0714-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0729-Implement-regenerateChunk.patch => 0715-Implement-regenerateChunk.patch} (100%) rename patches/server/{0730-Fix-cancelled-powdered-snow-bucket-placement.patch => 0716-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0731-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0717-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (100%) rename patches/server/{0732-Add-GameEvent-tags.patch => 0718-Add-GameEvent-tags.patch} (100%) rename patches/server/{0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0719-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (87%) rename patches/server/{0734-Furnace-RecipesUsed-API.patch => 0720-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0735-Configurable-sculk-sensor-listener-range.patch => 0721-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0736-Add-missing-block-data-mins-and-maxes.patch => 0722-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0737-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0723-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (94%) rename patches/server/{0738-Put-world-into-worldlist-before-initing-the-world.patch => 0724-Put-world-into-worldlist-before-initing-the-world.patch} (93%) rename patches/server/{0739-Fix-Entity-Position-Desync.patch => 0725-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0740-Custom-Potion-Mixes.patch => 0726-Custom-Potion-Mixes.patch} (97%) rename patches/server/{0741-Force-close-world-loading-screen.patch => 0727-Force-close-world-loading-screen.patch} (95%) rename patches/server/{0742-Fix-falling-block-spawn-methods.patch => 0728-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0743-Expose-furnace-minecart-push-values.patch => 0729-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0744-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0730-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0745-More-Projectile-API.patch => 0731-More-Projectile-API.patch} (100%) rename patches/server/{0746-Fix-swamp-hut-cat-generation-deadlock.patch => 0732-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0747-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0733-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/server/{0748-Implement-getComputedBiome-API.patch => 0734-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0749-Make-some-itemstacks-nonnull.patch => 0735-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0750-Implement-enchantWithLevels-API.patch => 0736-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0751-Fix-saving-in-unloadWorld.patch => 0737-Fix-saving-in-unloadWorld.patch} (100%) rename patches/server/{0752-Buffer-OOB-setBlock-calls.patch => 0738-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0753-Add-TameableDeathMessageEvent.patch => 0739-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0754-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0740-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (100%) rename patches/server/{0755-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0741-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/server/{0756-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0742-Ensure-entity-passenger-world-matches-ridden-entity.patch} (85%) rename patches/server/{0757-cache-resource-keys.patch => 0743-cache-resource-keys.patch} (100%) rename patches/server/{0758-Allow-changing-the-EnderDragon-podium.patch => 0744-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/server/{0759-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0745-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0760-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0746-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0761-Prevent-tile-entity-copies-loading-chunks.patch => 0747-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/server/{0762-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0748-Use-username-instead-of-display-name-in-PlayerList-g.patch} (87%) rename patches/server/{0763-Pass-ServerLevel-for-gamerule-callbacks.patch => 0749-Pass-ServerLevel-for-gamerule-callbacks.patch} (98%) rename patches/server/{0764-Expand-PlayerItemDamageEvent.patch => 0750-Expand-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0765-WorldCreator-keepSpawnLoaded.patch => 0751-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/server/{0766-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0752-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0767-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0753-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0768-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0754-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0769-Fire-CauldronLevelChange-on-initial-fill.patch => 0755-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0770-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0756-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0771-Add-PlayerStopUsingItemEvent.patch => 0757-Add-PlayerStopUsingItemEvent.patch} (85%) rename patches/server/{0772-Don-t-tick-markers.patch => 0758-Don-t-tick-markers.patch} (100%) rename patches/server/{0773-Expand-FallingBlock-API.patch => 0759-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0774-Do-not-accept-invalid-client-settings.patch => 0760-Do-not-accept-invalid-client-settings.patch} (100%) rename patches/server/{0775-Add-support-for-Proxy-Protocol.patch => 0761-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0776-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0762-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0777-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0763-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0778-Sanitize-sent-BlockEntity-NBT.patch => 0764-Sanitize-sent-BlockEntity-NBT.patch} (100%) rename patches/server/{0779-Disable-component-selector-resolving-in-books-by-def.patch => 0765-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0780-Prevent-entity-loading-causing-async-lookups.patch => 0766-Prevent-entity-loading-causing-async-lookups.patch} (95%) rename patches/server/{0781-Throw-exception-on-world-create-while-being-ticked.patch => 0767-Throw-exception-on-world-create-while-being-ticked.patch} (87%) rename patches/server/{0782-Dont-resent-entity-on-art-update.patch => 0768-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0783-Add-WardenAngerChangeEvent.patch => 0769-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0784-Add-option-for-strict-advancement-dimension-checks.patch => 0770-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/server/{0785-Add-missing-important-BlockStateListPopulator-method.patch => 0771-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0786-Nameable-Banner-API.patch => 0772-Nameable-Banner-API.patch} (100%) rename patches/server/{0787-Don-t-broadcast-messages-to-command-blocks.patch => 0773-Don-t-broadcast-messages-to-command-blocks.patch} (100%) rename patches/server/{0788-Prevent-empty-items-from-being-added-to-world.patch => 0774-Prevent-empty-items-from-being-added-to-world.patch} (100%) rename patches/server/{0789-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0775-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0790-Add-Player-getFishHook.patch => 0776-Add-Player-getFishHook.patch} (100%) rename patches/server/{0791-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0777-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0792-Add-various-missing-EntityDropItemEvent-calls.patch => 0778-Add-various-missing-EntityDropItemEvent-calls.patch} (96%) rename patches/server/{0793-Fix-Bee-flower-NPE.patch => 0779-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0794-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0780-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (100%) rename patches/server/{0795-More-Teleport-API.patch => 0781-More-Teleport-API.patch} (100%) rename patches/server/{0796-Add-EntityPortalReadyEvent.patch => 0782-Add-EntityPortalReadyEvent.patch} (88%) rename patches/server/{0797-Don-t-use-level-random-in-entity-constructors.patch => 0783-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0798-Send-block-entities-after-destroy-prediction.patch => 0784-Send-block-entities-after-destroy-prediction.patch} (100%) rename patches/server/{0799-Warn-on-plugins-accessing-faraway-chunks.patch => 0785-Warn-on-plugins-accessing-faraway-chunks.patch} (98%) rename patches/server/{0800-Custom-Chat-Completion-Suggestions-API.patch => 0786-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0801-Add-and-fix-missing-BlockFadeEvents.patch => 0787-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0802-Collision-API.patch => 0788-Collision-API.patch} (100%) rename patches/server/{0803-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0789-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/server/{0804-Block-Ticking-API.patch => 0790-Block-Ticking-API.patch} (100%) rename patches/server/{0805-Add-Velocity-IP-Forwarding-Support.patch => 0791-Add-Velocity-IP-Forwarding-Support.patch} (99%) rename patches/server/{0806-Add-NamespacedKey-biome-methods.patch => 0792-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0807-Fix-plugin-loggers-on-server-shutdown.patch => 0793-Fix-plugin-loggers-on-server-shutdown.patch} (78%) rename patches/server/{0808-Stop-large-look-changes-from-crashing-the-server.patch => 0794-Stop-large-look-changes-from-crashing-the-server.patch} (94%) rename patches/server/{0809-Fire-EntityChangeBlockEvent-in-more-places.patch => 0795-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0810-Missing-eating-regain-reason.patch => 0796-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0811-Missing-effect-cause.patch => 0797-Missing-effect-cause.patch} (100%) rename patches/server/{0812-Added-byte-array-serialization-deserialization-for-P.patch => 0798-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0813-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0799-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0814-Call-BlockPhysicsEvent-more-often.patch => 0800-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0815-Configurable-chat-thread-limit.patch => 0801-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0816-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0802-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0817-fix-Jigsaw-block-kicking-user.patch => 0803-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0818-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0804-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0819-Add-getDrops-to-BlockState.patch => 0805-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0820-Fix-a-bunch-of-vanilla-bugs.patch => 0806-Fix-a-bunch-of-vanilla-bugs.patch} (99%) rename patches/server/{0821-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0807-Remove-unnecessary-onTrackingStart-during-navigation.patch} (100%) rename patches/server/{0822-Fix-custom-piglin-loved-items.patch => 0808-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0823-EntityPickupItemEvent-fixes.patch => 0809-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0824-Correctly-handle-interactions-with-items-on-cooldown.patch => 0810-Correctly-handle-interactions-with-items-on-cooldown.patch} (100%) rename patches/server/{0825-Add-PlayerInventorySlotChangeEvent.patch => 0811-Add-PlayerInventorySlotChangeEvent.patch} (97%) rename patches/server/{0826-Elder-Guardian-appearance-API.patch => 0812-Elder-Guardian-appearance-API.patch} (100%) rename patches/server/{0827-Allow-changing-bed-s-occupied-property.patch => 0813-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0828-Add-entity-knockback-API.patch => 0814-Add-entity-knockback-API.patch} (100%) rename patches/server/{0829-Detect-headless-JREs.patch => 0815-Detect-headless-JREs.patch} (100%) rename patches/server/{0830-fix-entity-vehicle-collision-event-not-called.patch => 0816-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0831-Add-EntityToggleSitEvent.patch => 0817-Add-EntityToggleSitEvent.patch} (100%) rename patches/server/{0832-Add-fire-tick-delay-option.patch => 0818-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0833-Add-Moving-Piston-API.patch => 0819-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0834-Ignore-impossible-spawn-tick.patch => 0820-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0835-Track-projectile-source-for-fireworks-from-dispenser.patch => 0821-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0836-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0822-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0823-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (92%) rename patches/server/{0838-Add-PrePlayerAttackEntityEvent.patch => 0824-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/server/{0839-ensure-reset-EnderDragon-boss-event-name.patch => 0825-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0840-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0826-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0841-Add-Player-Warden-Warning-API.patch => 0827-Add-Player-Warden-Warning-API.patch} (100%) rename patches/server/{0842-More-vanilla-friendly-methods-to-update-trades.patch => 0828-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0843-Add-paper-dumplisteners-command.patch => 0829-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0844-check-global-player-list-where-appropriate.patch => 0830-check-global-player-list-where-appropriate.patch} (96%) rename patches/server/{0845-Fix-async-entity-add-due-to-fungus-trees.patch => 0831-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0846-ItemStack-damage-API.patch => 0832-ItemStack-damage-API.patch} (100%) rename patches/server/{0847-Friction-API.patch => 0833-Friction-API.patch} (98%) rename patches/server/{0848-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0834-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0849-Fix-player-kick-on-shutdown.patch => 0835-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0850-Sync-offhand-slot-in-menus.patch => 0836-Sync-offhand-slot-in-menus.patch} (97%) rename patches/server/{0851-Player-Entity-Tracking-Events.patch => 0837-Player-Entity-Tracking-Events.patch} (87%) rename patches/server/{0852-Limit-pet-look-distance.patch => 0838-Limit-pet-look-distance.patch} (100%) rename patches/server/{0853-Fixes-and-additions-to-the-SpawnReason-API.patch => 0839-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0854-fix-Instruments.patch => 0840-fix-Instruments.patch} (100%) rename patches/server/{0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0841-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (91%) rename patches/server/{0856-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0842-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0857-Add-BlockLockCheckEvent.patch => 0843-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0858-Add-Sneaking-API-for-Entities.patch => 0844-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/server/{0859-Improve-logging-and-errors.patch => 0845-Improve-logging-and-errors.patch} (100%) rename patches/server/{0860-Improve-PortalEvents.patch => 0846-Improve-PortalEvents.patch} (89%) rename patches/server/{0861-Add-config-option-for-spider-worldborder-climbing.patch => 0847-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0862-Add-missing-SpigotConfig-logCommands-check.patch => 0848-Add-missing-SpigotConfig-logCommands-check.patch} (100%) rename patches/server/{0863-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0849-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0864-Flying-Fall-Damage.patch => 0850-Flying-Fall-Damage.patch} (100%) rename patches/server/{0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0851-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (98%) rename patches/server/{0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0852-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (86%) rename patches/server/{0867-config-for-disabling-entity-tag-tags.patch => 0853-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0868-Use-single-player-info-update-packet-on-join.patch => 0854-Use-single-player-info-update-packet-on-join.patch} (97%) rename patches/server/{0869-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0855-Correctly-shrink-items-during-EntityResurrectEvent.patch} (92%) rename patches/server/{0870-Win-Screen-API.patch => 0856-Win-Screen-API.patch} (100%) rename patches/server/{0871-Remove-CraftItemStack-setAmount-null-assignment.patch => 0857-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0872-Fix-force-opening-enchantment-tables.patch => 0858-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0873-Add-Entity-Body-Yaw-API.patch => 0859-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0874-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0860-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0875-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0861-Update-the-flag-when-a-captured-block-state-is-outda.patch} (83%) rename patches/server/{0876-Add-EntityFertilizeEggEvent.patch => 0862-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/server/{0877-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0863-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0878-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0864-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0879-Correctly-handle-ArmorStand-invisibility.patch => 0865-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0880-Fix-advancement-triggers-for-entity-damage.patch => 0866-Fix-advancement-triggers-for-entity-damage.patch} (93%) rename patches/server/{0881-Fix-text-display-error-on-spawn.patch => 0867-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0882-Fix-inventories-returning-null-Locations.patch => 0868-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0883-Add-Shearable-API.patch => 0869-Add-Shearable-API.patch} (100%) rename patches/server/{0884-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0870-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0885-Fix-beehives-generating-from-using-bonemeal.patch => 0871-Fix-beehives-generating-from-using-bonemeal.patch} (100%) rename patches/server/{0886-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0872-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0887-Treat-sequence-violations-like-they-should-be.patch => 0873-Treat-sequence-violations-like-they-should-be.patch} (100%) rename patches/server/{0888-remove-duplicate-animate-packet-for-records.patch => 0874-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0889-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0875-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/server/{0890-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0876-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (100%) rename patches/server/{0891-Use-array-for-gamerule-storage.patch => 0877-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0892-Fix-a-couple-of-upstream-bed-issues.patch => 0878-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0893-Fix-demo-flag-not-enabling-demo-mode.patch => 0879-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0894-Add-Mob-Experience-reward-API.patch => 0880-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0895-Break-redstone-on-top-of-trap-doors-early.patch => 0881-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0896-Fix-DamageCause-for-Falling-Blocks.patch => 0882-Fix-DamageCause-for-Falling-Blocks.patch} (100%) rename patches/server/{0897-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0883-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0898-More-accurate-isInOpenWater-impl.patch => 0884-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0899-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0885-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0900-Expand-PlayerItemMendEvent.patch => 0886-Expand-PlayerItemMendEvent.patch} (100%) rename patches/server/{0901-Refresh-ProjectileSource-for-projectiles.patch => 0887-Refresh-ProjectileSource-for-projectiles.patch} (96%) rename patches/server/{0902-Add-transient-modifier-API.patch => 0888-Add-transient-modifier-API.patch} (100%) rename patches/server/{0903-Fix-block-place-logic.patch => 0889-Fix-block-place-logic.patch} (96%) rename patches/server/{0904-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0890-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0905-Call-BlockGrowEvent-for-missing-blocks.patch => 0891-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0906-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0892-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (100%) rename patches/server/{0907-fix-MapLike-spam-for-missing-key-selector.patch => 0893-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0908-Fix-sniffer-removeExploredLocation.patch => 0894-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0909-Add-method-to-remove-all-active-potion-effects.patch => 0895-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0911-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0896-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0912-Properly-cancel-usable-items.patch => 0897-Properly-cancel-usable-items.patch} (96%) rename patches/server/{0913-Add-event-for-player-editing-sign.patch => 0898-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0914-Only-tick-item-frames-if-players-can-see-it.patch => 0899-Only-tick-item-frames-if-players-can-see-it.patch} (100%) rename patches/server/{0915-Fix-cmd-permission-levels-for-command-blocks.patch => 0900-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/server/{0916-Add-option-to-disable-block-updates.patch => 0901-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0917-Call-missing-BlockDispenseEvent.patch => 0902-Call-missing-BlockDispenseEvent.patch} (100%) rename patches/server/{0918-Don-t-load-chunks-for-supporting-block-checks.patch => 0903-Don-t-load-chunks-for-supporting-block-checks.patch} (84%) rename patches/server/{0919-Optimize-player-lookups-for-beacons.patch => 0904-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0920-Add-Sign-getInteractableSideFor.patch => 0905-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0921-Array-backed-synched-entity-data.patch => 0906-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0922-fix-item-meta-for-tadpole-buckets.patch => 0907-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0923-Fix-BanList-API.patch => 0908-Fix-BanList-API.patch} (100%) rename patches/server/{0924-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0909-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0925-Fix-possible-NPE-on-painting-creation.patch => 0910-Fix-possible-NPE-on-painting-creation.patch} (100%) delete mode 100644 patches/server/0910-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch rename patches/server/{0926-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0911-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0927-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0912-ExperienceOrb-should-call-EntitySpawnEvent.patch} (100%) rename patches/server/{0928-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0913-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0929-Add-whitelist-events.patch => 0914-Add-whitelist-events.patch} (100%) rename patches/server/{0930-Implement-PlayerFailMoveEvent.patch => 0915-Implement-PlayerFailMoveEvent.patch} (100%) rename patches/server/{0931-Folia-scheduler-and-owned-region-API.patch => 0916-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0932-Only-erase-allay-memory-on-non-item-targets.patch => 0917-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0933-API-for-updating-recipes-on-clients.patch => 0918-API-for-updating-recipes-on-clients.patch} (95%) rename patches/server/{0934-Fix-rotation-when-spawning-display-entities.patch => 0919-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0935-Only-capture-actual-tree-growth.patch => 0920-Only-capture-actual-tree-growth.patch} (97%) rename patches/server/{0936-Use-correct-source-for-mushroom-block-spread-event.patch => 0921-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0937-Respect-randomizeData-on-more-entities-when-spawning.patch => 0922-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0938-Use-correct-seed-on-api-world-load.patch => 0923-Use-correct-seed-on-api-world-load.patch} (100%) rename patches/server/{0939-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0924-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0940-Cache-map-ids-on-item-frames.patch => 0925-Cache-map-ids-on-item-frames.patch} (100%) rename patches/server/{0941-Fix-custom-statistic-criteria-creation.patch => 0926-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0942-Bandaid-fix-for-Effect.patch => 0927-Bandaid-fix-for-Effect.patch} (100%) rename patches/server/{0943-SculkCatalyst-bloom-API.patch => 0928-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0944-API-for-an-entity-s-scoreboard-name.patch => 0929-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0945-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 0930-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (97%) rename patches/server/{0946-Deprecate-and-replace-methods-with-old-StructureType.patch => 0931-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/server/{0947-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0932-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (100%) rename patches/server/{0948-Properly-handle-BlockBreakEvent-isDropItems.patch => 0933-Properly-handle-BlockBreakEvent-isDropItems.patch} (98%) rename patches/server/{0949-Fire-entity-death-event-for-ender-dragon.patch => 0934-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0950-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0935-Configurable-entity-tracking-range-by-Y-coordinate.patch} (91%) rename patches/server/{0951-Add-Listing-API-for-Player.patch => 0936-Add-Listing-API-for-Player.patch} (99%) rename patches/server/{0952-Configurable-Region-Compression-Format.patch => 0937-Configurable-Region-Compression-Format.patch} (100%) rename patches/server/{0953-Add-BlockFace-to-BlockDamageEvent.patch => 0938-Add-BlockFace-to-BlockDamageEvent.patch} (100%) rename patches/server/{0954-Fix-NPE-on-Boat-getStatus.patch => 0939-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0955-Expand-Pose-API.patch => 0940-Expand-Pose-API.patch} (90%) rename patches/server/{0956-More-DragonBattle-API.patch => 0941-More-DragonBattle-API.patch} (100%) rename patches/server/{0957-Deep-clone-unhandled-nbt-tags.patch => 0942-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0958-Add-PlayerPickItemEvent.patch => 0943-Add-PlayerPickItemEvent.patch} (100%) rename patches/server/{0959-Allow-trident-custom-damage.patch => 0944-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0960-Expose-hand-in-BlockCanBuildEvent.patch => 0945-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0961-Optimize-nearest-structure-border-iteration.patch => 0946-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0962-Implement-OfflinePlayer-isConnected.patch => 0947-Implement-OfflinePlayer-isConnected.patch} (100%) rename patches/server/{0963-Fix-inventory-desync.patch => 0948-Fix-inventory-desync.patch} (100%) rename patches/server/{0964-Add-titleOverride-to-InventoryOpenEvent.patch => 0949-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/server/{0965-Configure-sniffer-egg-hatch-time.patch => 0950-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0966-Do-crystal-portal-proximity-check-before-entity-look.patch => 0951-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0967-Skip-POI-finding-if-stuck-in-vehicle.patch => 0952-Skip-POI-finding-if-stuck-in-vehicle.patch} (94%) rename patches/server/{0968-Add-slot-sanity-checks-in-container-clicks.patch => 0953-Add-slot-sanity-checks-in-container-clicks.patch} (96%) rename patches/server/{0969-Call-BlockRedstoneEvents-for-lecterns.patch => 0954-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0970-Allow-proper-checking-of-empty-item-stacks.patch => 0955-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0971-Fix-silent-equipment-change-for-mobs.patch => 0956-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{0972-Fix-spigot-s-Forced-Stats.patch => 0957-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0973-Add-missing-InventoryHolders-to-inventories.patch => 0958-Add-missing-InventoryHolders-to-inventories.patch} (99%) rename patches/server/{0974-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0959-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{0975-Add-missing-logs-for-log-ips-config-option.patch => 0960-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0976-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0961-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{0977-Fix-SuspiciousStewMeta.patch => 0962-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{0978-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0963-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{0979-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0964-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{0980-Fix-team-sidebar-objectives-not-being-cleared.patch => 0965-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{0981-Fix-missing-map-initialize-event-call.patch => 0966-Fix-missing-map-initialize-event-call.patch} (100%) rename patches/server/{0982-Update-entity-data-when-attaching-firework-to-entity.patch => 0967-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{0983-Use-correct-variable-for-initializing-CraftLootTable.patch => 0968-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{0984-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 0969-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{0985-Fix-UnsafeValues-loadAdvancement.patch => 0970-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{0986-Add-player-idle-duration-API.patch => 0971-Add-player-idle-duration-API.patch} (100%) rename patches/server/{0987-Don-t-check-if-we-can-see-non-visible-entities.patch => 0972-Don-t-check-if-we-can-see-non-visible-entities.patch} (85%) rename patches/server/{0988-Fix-NPE-in-SculkBloomEvent-world-access.patch => 0973-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{0989-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 0974-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/server/{0990-Optimize-VarInts.patch => 0975-Optimize-VarInts.patch} (100%) rename patches/server/{0991-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0976-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{0992-Add-predicate-for-blocks-when-raytracing.patch => 0977-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/server/{0993-Broadcast-take-item-packets-with-collector-as-source.patch => 0978-Broadcast-take-item-packets-with-collector-as-source.patch} (88%) rename patches/server/{0994-Expand-LingeringPotion-API.patch => 0979-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{0995-Add-MaterialTagsTest.patch => 0980-Add-MaterialTagsTest.patch} (100%) rename patches/server/{0996-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 0981-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/server/{0997-Add-hand-to-fish-event-for-all-player-interactions.patch => 0982-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{0998-Fix-several-issues-with-EntityBreedEvent.patch => 0983-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{0999-Add-UUID-attribute-modifier-API.patch => 0984-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{1000-Fix-missing-event-call-for-entity-teleport-API.patch => 0985-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{1001-Lazily-create-LootContext-for-criterions.patch => 0986-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{1002-Don-t-fire-sync-events-during-worldgen.patch => 0987-Don-t-fire-sync-events-during-worldgen.patch} (97%) rename patches/server/{1003-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 0988-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{1004-Restore-vanilla-entity-drops-behavior.patch => 0989-Restore-vanilla-entity-drops-behavior.patch} (98%) rename patches/server/{1005-Add-Structure-check-API.patch => 0990-Add-Structure-check-API.patch} (100%) rename patches/server/{1006-Dont-resend-blocks-on-interactions.patch => 0991-Dont-resend-blocks-on-interactions.patch} (100%) rename patches/server/{1007-Keep-previous-behavior-for-setResourcePack.patch => 0992-Keep-previous-behavior-for-setResourcePack.patch} (100%) rename patches/server/{1008-properly-read-and-store-sus-effect-duration.patch => 0993-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{1009-Use-correct-max-stack-size-in-crafter.patch => 0994-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{1010-add-more-scoreboard-API.patch => 0995-add-more-scoreboard-API.patch} (100%) rename patches/server/{1011-Improve-Registry.patch => 0996-Improve-Registry.patch} (100%) rename patches/server/{1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 0997-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (96%) rename patches/server/{1013-Add-experience-points-API.patch => 0998-Add-experience-points-API.patch} (100%) rename patches/server/{1014-Add-missing-InventoryType.patch => 0999-Add-missing-InventoryType.patch} (100%) rename patches/server/{1015-Add-drops-to-shear-events.patch => 1000-Add-drops-to-shear-events.patch} (100%) rename patches/server/{1016-Add-PlayerShieldDisableEvent.patch => 1001-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/server/{1017-Add-HiddenPotionEffect-API.patch => 1002-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1018-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 1003-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{1019-fix-ItemMeta-removing-CustomModelData.patch => 1004-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/server/{1020-Validate-ResourceLocation-in-NBT-reading.patch => 1005-Validate-ResourceLocation-in-NBT-reading.patch} (100%) rename patches/server/{1021-Properly-handle-experience-dropping-on-block-break.patch => 1006-Properly-handle-experience-dropping-on-block-break.patch} (92%) rename patches/server/{1022-Fixup-NamespacedKey-handling.patch => 1007-Fixup-NamespacedKey-handling.patch} (100%) rename patches/server/{1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 1008-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (95%) rename patches/server/{1024-Write-SavedData-IO-async.patch => 1009-Write-SavedData-IO-async.patch} (100%) rename patches/server/{0358-Optimize-Collision-to-not-load-chunks.patch => 1010-Optimize-Collision-to-not-load-chunks.patch} (95%) rename patches/server/{0360-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => 1011-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (93%) rename patches/server/{0361-Improved-Watchdog-Support.patch => 1012-Improved-Watchdog-Support.patch} (90%) rename patches/server/{0378-Optimize-Voxel-Shape-Merging.patch => 1013-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/server/{0391-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 1014-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (90%) rename patches/server/{0405-Use-distance-map-to-optimise-entity-tracker.patch => 1015-Use-distance-map-to-optimise-entity-tracker.patch} (96%) rename patches/server/{0412-Optimize-Bit-Operations-by-inlining.patch => 1016-Optimize-Bit-Operations-by-inlining.patch} (99%) rename patches/server/{0417-Remove-streams-from-hot-code.patch => 1017-Remove-streams-from-hot-code.patch} (99%) rename patches/server/{0443-Eigencraft-redstone-implementation.patch => 1018-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{0473-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 1019-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{0494-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 1020-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (98%) rename patches/server/{0625-Improve-boat-collision-performance.patch => 1021-Improve-boat-collision-performance.patch} (91%) rename patches/server/{0659-Optimise-general-POI-access.patch => 1022-Optimise-general-POI-access.patch} (99%) rename patches/server/{0660-Custom-table-implementation-for-blockstate-state-loo.patch => 1023-Custom-table-implementation-for-blockstate-state-loo.patch} (97%) rename patches/server/{1025-Execute-chunk-tasks-mid-tick.patch => 1024-Execute-chunk-tasks-mid-tick.patch} (98%) rename patches/server/{1026-Optimise-random-block-ticking.patch => 1025-Optimise-random-block-ticking.patch} (100%) rename patches/server/{1027-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1026-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (100%) rename patches/server/{1028-Use-Velocity-compression-and-cipher-natives.patch => 1027-Use-Velocity-compression-and-cipher-natives.patch} (100%) rename patches/server/{1029-Detail-more-information-in-watchdog-dumps.patch => 1028-Detail-more-information-in-watchdog-dumps.patch} (99%) rename patches/server/{1030-Collision-optimisations.patch => 1029-Collision-optimisations.patch} (99%) rename patches/server/{1031-Optimise-collision-checking-in-player-move-packet-ha.patch => 1030-Optimise-collision-checking-in-player-move-packet-ha.patch} (100%) rename patches/server/{1032-Fix-tripwire-state-inconsistency.patch => 1031-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{1033-Fix-entity-type-tags-suggestions-in-selectors.patch => 1032-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{1034-Add-Alternate-Current-redstone-implementation.patch => 1033-Add-Alternate-Current-redstone-implementation.patch} (100%) rename patches/server/{1035-optimize-dirt-and-snow-spreading.patch => 1034-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{1036-Properly-resend-entities.patch => 1035-Properly-resend-entities.patch} (100%) rename patches/server/{1037-Optimize-Hoppers.patch => 1036-Optimize-Hoppers.patch} (99%) rename patches/server/{1038-Improve-performance-of-mass-crafts.patch => 1037-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{1039-Actually-optimise-explosions.patch => 1038-Actually-optimise-explosions.patch} (100%) rename patches/server/{1040-Optimise-chunk-tick-iteration.patch => 1039-Optimise-chunk-tick-iteration.patch} (100%) rename patches/server/{1041-Lag-compensation-ticks.patch => 1040-Lag-compensation-ticks.patch} (94%) rename patches/server/{1042-Optimise-nearby-player-retrieval.patch => 1041-Optimise-nearby-player-retrieval.patch} (100%) diff --git a/patches/server/0359-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0358-Don-t-move-existing-players-to-world-spawn.patch similarity index 93% rename from patches/server/0359-Don-t-move-existing-players-to-world-spawn.patch rename to patches/server/0358-Don-t-move-existing-players-to-world-spawn.patch index 3aa820769192..77541b835876 100644 --- a/patches/server/0359-Don-t-move-existing-players-to-world-spawn.patch +++ b/patches/server/0358-Don-t-move-existing-players-to-world-spawn.patch @@ -13,7 +13,7 @@ By skipping this, we avoid potential for a large spike on server start. public net.minecraft.server.level.ServerPlayer fudgeSpawnLocation(Lnet/minecraft/server/level/ServerLevel;)V diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d70316c45bd657243d6c998723f6bb1324b6a880..5c3373863bd91682bd7facd3eb57580b33e160b7 100644 +index 3fbd65849649d77f9ef8920fcd7ab32c829f91c6..d7c5697ab781bb0c1cb3cb60685dca2466e966d3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -385,7 +385,7 @@ public class ServerPlayer extends Player { @@ -35,7 +35,7 @@ index d70316c45bd657243d6c998723f6bb1324b6a880..5c3373863bd91682bd7facd3eb57580b this.gameMode.setLevel((ServerLevel) world); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 37b53bfe58689f498a48ad5e0e59d98462ccdd7f..201331acd9fae6af27f44c072379c48485b3be07 100644 +index 71619422fdb212b3aad8cf64a3a417168e3e8d2d..05983ba80532f3c0235af7e712948edf4d8f021b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -226,6 +226,7 @@ public abstract class PlayerList { diff --git a/patches/server/0362-Optimize-Pathfinding.patch b/patches/server/0359-Optimize-Pathfinding.patch similarity index 100% rename from patches/server/0362-Optimize-Pathfinding.patch rename to patches/server/0359-Optimize-Pathfinding.patch diff --git a/patches/server/0363-Reduce-Either-Optional-allocation.patch b/patches/server/0360-Reduce-Either-Optional-allocation.patch similarity index 100% rename from patches/server/0363-Reduce-Either-Optional-allocation.patch rename to patches/server/0360-Reduce-Either-Optional-allocation.patch diff --git a/patches/server/0364-Reduce-memory-footprint-of-CompoundTag.patch b/patches/server/0361-Reduce-memory-footprint-of-CompoundTag.patch similarity index 100% rename from patches/server/0364-Reduce-memory-footprint-of-CompoundTag.patch rename to patches/server/0361-Reduce-memory-footprint-of-CompoundTag.patch diff --git a/patches/server/0365-Prevent-opening-inventories-when-frozen.patch b/patches/server/0362-Prevent-opening-inventories-when-frozen.patch similarity index 97% rename from patches/server/0365-Prevent-opening-inventories-when-frozen.patch rename to patches/server/0362-Prevent-opening-inventories-when-frozen.patch index c800e18d24a3..7d9c54a36eee 100644 --- a/patches/server/0365-Prevent-opening-inventories-when-frozen.patch +++ b/patches/server/0362-Prevent-opening-inventories-when-frozen.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent opening inventories when frozen diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5c3373863bd91682bd7facd3eb57580b33e160b7..cc2378916009f961fb70d5b4b1bd5bb6867de792 100644 +index d7c5697ab781bb0c1cb3cb60685dca2466e966d3..36b4512c7f5e8d7a21b94b1eda3ec13a8d7113f2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -701,7 +701,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0366-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0363-Don-t-run-entity-collision-code-if-not-needed.patch similarity index 96% rename from patches/server/0366-Don-t-run-entity-collision-code-if-not-needed.patch rename to patches/server/0363-Don-t-run-entity-collision-code-if-not-needed.patch index dd36b88f5f48..ac9cee85c067 100644 --- a/patches/server/0366-Don-t-run-entity-collision-code-if-not-needed.patch +++ b/patches/server/0363-Don-t-run-entity-collision-code-if-not-needed.patch @@ -12,7 +12,7 @@ The entity's current team collision rule causes them to NEVER collide. Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index fa496424e48c73672605b2128ec2bd3a6be86889..1782ffbf08d362b98d648c296f99fd2c49e4d8cf 100644 +index b813357da558649c2244af524f79141fdc7f997e..ddbb823a5f1ac6318b6931fef2140b7e16e61056 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3398,10 +3398,24 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0367-Implement-Player-Client-Options-API.patch b/patches/server/0364-Implement-Player-Client-Options-API.patch similarity index 99% rename from patches/server/0367-Implement-Player-Client-Options-API.patch rename to patches/server/0364-Implement-Player-Client-Options-API.patch index 9ea02175362f..2d4cec5a3fc1 100644 --- a/patches/server/0367-Implement-Player-Client-Options-API.patch +++ b/patches/server/0364-Implement-Player-Client-Options-API.patch @@ -87,7 +87,7 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index cc2378916009f961fb70d5b4b1bd5bb6867de792..4de3de5b195698cc804d73307a2483c83f48525e 100644 +index 36b4512c7f5e8d7a21b94b1eda3ec13a8d7113f2..0a75cba1b0b5a85826bd60615e3f09d2f41cc6a3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -386,7 +386,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0368-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/patches/server/0365-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch similarity index 100% rename from patches/server/0368-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch rename to patches/server/0365-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch diff --git a/patches/server/0369-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch b/patches/server/0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch similarity index 95% rename from patches/server/0369-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch rename to patches/server/0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch index e193b8f31e65..069501220bad 100644 --- a/patches/server/0369-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch +++ b/patches/server/0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch @@ -31,7 +31,7 @@ delays anymore. public net.minecraft.server.level.ChunkMap addEntity(Lnet/minecraft/world/entity/Entity;)V diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 37e6b841b3c3d8720a1947065d4fada8c25ec2cf..2785619ed6d04e06a25bfbb2a7fbd99f81c1f858 100644 +index e3146ae94ae55764fcd7ec650a44d457889c179d..9ddad716d641d649e09c094795240bd2e8c926b9 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -996,6 +996,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -43,7 +43,7 @@ index 37e6b841b3c3d8720a1947065d4fada8c25ec2cf..2785619ed6d04e06a25bfbb2a7fbd99f EntityType entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4de3de5b195698cc804d73307a2483c83f48525e..c87e5dd12b5931f9d06bd70a3dd591882a5c1f17 100644 +index 0a75cba1b0b5a85826bd60615e3f09d2f41cc6a3..b5dcb539548ca35d7c8a076d474a5c679a61c071 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -271,6 +271,7 @@ public class ServerPlayer extends Player { @@ -55,7 +55,7 @@ index 4de3de5b195698cc804d73307a2483c83f48525e..c87e5dd12b5931f9d06bd70a3dd59188 // CraftBukkit end public boolean isRealPlayer; // Paper diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 54a82f30fd8a4712bcf7ffeccab8ce3075f55f83..2af14ca8c9008da254ddef591f0aff9e4aba8cd5 100644 +index 05983ba80532f3c0235af7e712948edf4d8f021b..dc6774fdc215de6a157b64678aec5a79344084e9 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -295,6 +295,12 @@ public abstract class PlayerList { diff --git a/patches/server/0370-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0367-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch similarity index 96% rename from patches/server/0370-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch rename to patches/server/0367-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch index c3654727937a..29df490d6ec6 100644 --- a/patches/server/0370-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch +++ b/patches/server/0367-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch @@ -10,7 +10,7 @@ Co-authored-by: Wyatt Childers Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 2af14ca8c9008da254ddef591f0aff9e4aba8cd5..805759ae7d92f690cea4c700c914769d39e3c0b6 100644 +index dc6774fdc215de6a157b64678aec5a79344084e9..7750c1980ea7e211a35ad077b95ab0e206900e17 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -194,7 +194,7 @@ public abstract class PlayerList { @@ -87,10 +87,10 @@ index 2af14ca8c9008da254ddef591f0aff9e4aba8cd5..805759ae7d92f690cea4c700c914769d } // Paper end - Entity#getEntitySpawnReason diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 538931a474841e7efae505f5aeae58715108da1b..ee55a63edd38c9919d4dfdc8434ba80f697ba0c0 100644 +index b6b4be7f49ae756ebbda59e55dee98000aec2314..0d7dff8ca6a3d68fdcbf300fb2f65b1d08c429b2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2336,27 +2336,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2335,27 +2335,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // CraftBukkit end diff --git a/patches/server/0371-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0368-Add-PlayerAttackEntityCooldownResetEvent.patch similarity index 95% rename from patches/server/0371-Add-PlayerAttackEntityCooldownResetEvent.patch rename to patches/server/0368-Add-PlayerAttackEntityCooldownResetEvent.patch index dc20899b7c1b..cf0433593ca8 100644 --- a/patches/server/0371-Add-PlayerAttackEntityCooldownResetEvent.patch +++ b/patches/server/0368-Add-PlayerAttackEntityCooldownResetEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerAttackEntityCooldownResetEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1782ffbf08d362b98d648c296f99fd2c49e4d8cf..69f7cdb2c507ba45dc4a689d4f33c059a57907a1 100644 +index ddbb823a5f1ac6318b6931fef2140b7e16e61056..e309d74047b039e595cb59396710f68490a2249a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2190,7 +2190,16 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0372-Don-t-fire-BlockFade-on-worldgen-threads.patch b/patches/server/0369-Don-t-fire-BlockFade-on-worldgen-threads.patch similarity index 100% rename from patches/server/0372-Don-t-fire-BlockFade-on-worldgen-threads.patch rename to patches/server/0369-Don-t-fire-BlockFade-on-worldgen-threads.patch diff --git a/patches/server/0373-Add-phantom-creative-and-insomniac-controls.patch b/patches/server/0370-Add-phantom-creative-and-insomniac-controls.patch similarity index 100% rename from patches/server/0373-Add-phantom-creative-and-insomniac-controls.patch rename to patches/server/0370-Add-phantom-creative-and-insomniac-controls.patch diff --git a/patches/server/0374-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0371-Fix-item-duplication-and-teleport-issues.patch similarity index 95% rename from patches/server/0374-Fix-item-duplication-and-teleport-issues.patch rename to patches/server/0371-Fix-item-duplication-and-teleport-issues.patch index fab99ea43242..64cceef8a17d 100644 --- a/patches/server/0374-Fix-item-duplication-and-teleport-issues.patch +++ b/patches/server/0371-Fix-item-duplication-and-teleport-issues.patch @@ -16,10 +16,10 @@ So even if something NEW comes up, it would be impossible to drop the same item twice because the source was destroyed. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ee55a63edd38c9919d4dfdc8434ba80f697ba0c0..be9b96f6b725c53aec5c67c8387305d52da3acfd 100644 +index 0d7dff8ca6a3d68fdcbf300fb2f65b1d08c429b2..d0f46b955041487ce1cec4a9a5ed8808ef4d9e9f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2466,11 +2466,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2465,11 +2465,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -34,7 +34,7 @@ index ee55a63edd38c9919d4dfdc8434ba80f697ba0c0..be9b96f6b725c53aec5c67c8387305d5 entityitem.setDefaultPickUpDelay(); // CraftBukkit start -@@ -3270,6 +3271,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3269,6 +3270,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public Entity teleportTo(ServerLevel worldserver, Vec3 location) { // CraftBukkit end @@ -47,7 +47,7 @@ index ee55a63edd38c9919d4dfdc8434ba80f697ba0c0..be9b96f6b725c53aec5c67c8387305d5 if (this.level() instanceof ServerLevel && !this.isRemoved()) { this.level().getProfiler().push("changeDimension"); // CraftBukkit start -@@ -3296,6 +3303,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3295,6 +3302,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit end this.level().getProfiler().popPush("reloading"); @@ -59,7 +59,7 @@ index ee55a63edd38c9919d4dfdc8434ba80f697ba0c0..be9b96f6b725c53aec5c67c8387305d5 Entity entity = this.getType().create(worldserver); if (entity != null) { -@@ -3313,10 +3325,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3312,10 +3324,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit start - Forward the CraftEntity to the new entity this.getBukkitEntity().setHandle(entity); entity.bukkitEntity = this.getBukkitEntity(); @@ -70,7 +70,7 @@ index ee55a63edd38c9919d4dfdc8434ba80f697ba0c0..be9b96f6b725c53aec5c67c8387305d5 // CraftBukkit end } -@@ -3435,7 +3443,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3434,7 +3442,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean canChangeDimensions() { @@ -80,7 +80,7 @@ index ee55a63edd38c9919d4dfdc8434ba80f697ba0c0..be9b96f6b725c53aec5c67c8387305d5 public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 69f7cdb2c507ba45dc4a689d4f33c059a57907a1..4605978cad9cbaa8b55b12c26476f85471658c82 100644 +index e309d74047b039e595cb59396710f68490a2249a..6114cc60d8cb122b708ae65db86bfd1ea2ea82c1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1705,9 +1705,9 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0375-Villager-Restocks-API.patch b/patches/server/0372-Villager-Restocks-API.patch similarity index 100% rename from patches/server/0375-Villager-Restocks-API.patch rename to patches/server/0372-Villager-Restocks-API.patch diff --git a/patches/server/0376-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0373-Validate-PickItem-Packet-and-kick-for-invalid.patch similarity index 95% rename from patches/server/0376-Validate-PickItem-Packet-and-kick-for-invalid.patch rename to patches/server/0373-Validate-PickItem-Packet-and-kick-for-invalid.patch index 0fec4603715f..703e337df1c2 100644 --- a/patches/server/0376-Validate-PickItem-Packet-and-kick-for-invalid.patch +++ b/patches/server/0373-Validate-PickItem-Packet-and-kick-for-invalid.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a191254fa3bd8cdf2cb5446c88c71ed0be6761e8..ebf436e8160c0a6ff064c2b279a47b272e3acb05 100644 +index f3abc5552d058c5b96ed56fc49ffd9f420668d01..a1da534dab13f475dca626645c246ef36aea6938 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -867,7 +867,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0377-Expose-game-version.patch b/patches/server/0374-Expose-game-version.patch similarity index 89% rename from patches/server/0377-Expose-game-version.patch rename to patches/server/0374-Expose-game-version.patch index d8b186722ec8..169ab7f81044 100644 --- a/patches/server/0377-Expose-game-version.patch +++ b/patches/server/0374-Expose-game-version.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose game version diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b501ed140902a0143553f338871e3b8b71a7f71e..363d251c80b7d8585425cab456822fd6cde67f23 100644 +index f88426ce7f1b4ebc65a39c19900e75de22c5903b..28fe0834c6287181cc21b9ceedc2dd1074db984e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -577,6 +577,13 @@ public final class CraftServer implements Server { diff --git a/patches/server/0379-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/patches/server/0375-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch similarity index 93% rename from patches/server/0379-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch rename to patches/server/0375-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch index 6960e9409945..1bcb557b1059 100644 --- a/patches/server/0379-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch +++ b/patches/server/0375-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch @@ -17,7 +17,7 @@ keeping long lived large direct buffers in cache. Set system properly at server startup if not set already to help protect from this. diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 78e007b15699fc83a3fcc2e2767209387444f0e5..68b849321757493c64e874b5a2c5d5357a52d698 100644 +index 5030b865c84d84ed5be9f4987a7f0a829b8ea1e5..b4975e80c1929826feb880526b41b2c871ac8c8f 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -26,6 +26,7 @@ public class Main { diff --git a/patches/server/0380-misc-debugging-dumps.patch b/patches/server/0376-misc-debugging-dumps.patch similarity index 88% rename from patches/server/0380-misc-debugging-dumps.patch rename to patches/server/0376-misc-debugging-dumps.patch index 721ee8807b33..1553a974f132 100644 --- a/patches/server/0380-misc-debugging-dumps.patch +++ b/patches/server/0376-misc-debugging-dumps.patch @@ -29,7 +29,7 @@ index 0000000000000000000000000000000000000000..2d5494d2813b773e60ddba6790b750a9 + } +} diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 867f22bdeed5f1c3f063a5815a3477d143057152..5c4a89fc7388b8e6ca9ade03fd34a8da79ae0ad9 100644 +index 40ff3090fb17fb0f01a9b52639fb783ea57ce6b6..d39743d9626eb01c942194387dafb1106f13601b 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -341,7 +341,7 @@ public class Commands { @@ -42,26 +42,26 @@ index 867f22bdeed5f1c3f063a5815a3477d143057152..5c4a89fc7388b8e6ca9ade03fd34a8da StackTraceElement[] astacktraceelement = exception.getStackTrace(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 570c163e4a56206d1cf259ee1ffcb6f865f72b1c..1963cf2716879c6d193cbed8de9538094dda9b3d 100644 +index 831998b12c296d5731ae09d4abb5548201226c77..0b79a72b8b2325416cd1a5743a27787e93ffa644 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -918,6 +918,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { @@ -545,7 +545,7 @@ index 61f05f34ca33837c643f2915e753ec3935a38314..85b8be8ffac0fb40e9cae0528271ed41 throw new SkipPacketException(var13); } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 0e2978b6e4f03932c4ebdf1309d20454b9130132..ab84c4b098184370c8b63cbae687116a7b077cf5 100644 +index 3779e02083fb41e93248aed27a9214be88167e5a..1d8f8b1910f50e90d60bb2a924d49f3fd3518fd6 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -194,6 +194,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -570,7 +570,7 @@ index d130f843975236018df4fa2ccc3ca6aaca7a06b8..76f31845fe50200d09e5ab6a6c08da00 // Paper end - Debugging this.connection.send(new ClientboundDisconnectPacket(ServerConfigurationPacketListenerImpl.DISCONNECT_REASON_INVALID_DATA)); diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index caeead6c6082855f1651ee28263cc9f60423ca0c..b2bfb3893200362ac35ae60982f203f86a1148ec 100644 +index 9db7fc8c053aa9e929fa6dddf70290a8f7ad5273..dfa07c9ede9d748a05ee47826bdbcf7390ec8219 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -52,10 +52,10 @@ public class ServerConnectionListener { @@ -609,7 +609,7 @@ index 14bd0b94ece3f826f822b4900c7250ebdc27d937..59eb65e207ff0206b0dfad6f2dcffe78 } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 4891073602609fc2709715460e0675a7cc2a4cdd..d85ed706703e50f76df8db414827ccd41a5985d9 100644 +index 796aa86e12cf9062b3467a3678c895af5ad626fe..9e01a22df54492d9c8e9f9defd84014dc109514b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -599,7 +599,7 @@ public class LevelChunk extends ChunkAccess { @@ -638,10 +638,10 @@ index 3c1992e212a6d6f1db4d5b807b38d71913619fc0..9c1aff17aabd062640e3f451a2ef8c50 CraftAsyncScheduler() { diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index 5ca863aa1859922fa359eba32539229db40e5b98..dca163ff5436f1007383c8261cac1ac7c0613f23 100644 +index 230d55820778e84c1c8aa2b013ae0e5e35568ea1..a15749bcfb2b36a31801cb1a26b7181ce304e0ee 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java -@@ -105,7 +105,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa +@@ -102,7 +102,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa log.log( Level.SEVERE, "During the run of the server, a plugin set an excessive velocity on an entity" ); log.log( Level.SEVERE, "This may be the cause of the issue, or it may be entirely unrelated" ); log.log( Level.SEVERE, org.bukkit.craftbukkit.CraftServer.excessiveVelEx.getMessage()); @@ -650,7 +650,7 @@ index 5ca863aa1859922fa359eba32539229db40e5b98..dca163ff5436f1007383c8261cac1ac7 { log.log( Level.SEVERE, "\t\t" + stack ); } -@@ -192,7 +192,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa +@@ -174,7 +174,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa } log.log( Level.SEVERE, "\tStack:" ); // @@ -660,7 +660,7 @@ index 5ca863aa1859922fa359eba32539229db40e5b98..dca163ff5436f1007383c8261cac1ac7 log.log( Level.SEVERE, "\t\t" + stack ); } diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml -index 266b4e6fb3988b5848021c83fdc68e342c70b188..2b247d55e39246fbef31279b14c45fc40f956bfb 100644 +index ea4e2161c0bd43884055cc6b8d70b2139f70e720..4e2ca9162450c1f54b7ab95a63c1bad8efe81a06 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -30,10 +30,14 @@ diff --git a/patches/server/0383-Implement-Mob-Goal-API.patch b/patches/server/0379-Implement-Mob-Goal-API.patch similarity index 95% rename from patches/server/0383-Implement-Mob-Goal-API.patch rename to patches/server/0379-Implement-Mob-Goal-API.patch index e5f9766f2ece..2605232bdc9d 100644 --- a/patches/server/0383-Implement-Mob-Goal-API.patch +++ b/patches/server/0379-Implement-Mob-Goal-API.patch @@ -744,41 +744,15 @@ index 0000000000000000000000000000000000000000..0d30e0b21b9024df939a9d070bd4a99b + } +} diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java -index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..b0ee4fbd4a52e30a9dff4179aa0fbf62ee1767ad 100644 +index 6667ecc4b7eded4e20a415cef1e1b1179e6710b8..16f9a98b8a939e5ca7e2dc04f87134a7ed66736b 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java -@@ -7,6 +7,14 @@ public abstract class Goal { - private final EnumSet flags = EnumSet.noneOf(Goal.Flag.class); // Paper unused, but dummy to prevent plugins from crashing as hard. Theyll need to support paper in a special case if this is super important, but really doesn't seem like it would be. - private final com.destroystokyo.paper.util.set.OptimizedSmallEnumSet goalTypes = new com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<>(Goal.Flag.class); // Paper - remove streams from pathfindergoalselector - -+ // Paper start - Mob goal API; make sure goaltypes is never empty -+ public Goal() { -+ if (this.goalTypes.size() == 0) { -+ this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR); -+ } -+ } -+ // Paper end - Mob goal API -+ - public abstract boolean canUse(); - - public boolean canContinueToUse() { -@@ -34,6 +42,10 @@ public abstract class Goal { - // Paper start - remove streams from pathfindergoalselector - this.goalTypes.clear(); - this.goalTypes.addAllUnchecked(controls); -+ // make sure its never empty -+ if (this.goalTypes.size() == 0) { -+ this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR); -+ } - // Paper end - remove streams from pathfindergoalselector - } - -@@ -56,7 +68,19 @@ public abstract class Goal { +@@ -51,7 +51,19 @@ public abstract class Goal { return Mth.positiveCeilDiv(serverTicks, 2); } + // Paper start - Mob goal api -+ private com.destroystokyo.paper.entity.ai.PaperVanillaGoal vanillaGoal = null; ++ private com.destroystokyo.paper.entity.ai.PaperVanillaGoal vanillaGoal; + public com.destroystokyo.paper.entity.ai.Goal asPaperVanillaGoal() { + if(this.vanillaGoal == null) { + this.vanillaGoal = new com.destroystokyo.paper.entity.ai.PaperVanillaGoal<>(this); @@ -794,7 +768,7 @@ index 4379b9948f1eecfe6fd7dea98e298ad5f761019a..b0ee4fbd4a52e30a9dff4179aa0fbf62 LOOK, JUMP, diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2333858596a76ff8dddb014f31ad2a3d7e926baf..6fd94e54abe92b1a081591a64af8da09b9303d08 100644 +index 42548bcd1a890e713c4b5103f36a5a9facc703d0..8997f35d4e3d66f4ac2e1b774e7869771d938dde 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2881,5 +2881,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0384-Add-villager-reputation-API.patch b/patches/server/0380-Add-villager-reputation-API.patch similarity index 100% rename from patches/server/0384-Add-villager-reputation-API.patch rename to patches/server/0380-Add-villager-reputation-API.patch diff --git a/patches/server/0385-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0381-Option-for-maximum-exp-value-when-merging-orbs.patch similarity index 100% rename from patches/server/0385-Option-for-maximum-exp-value-when-merging-orbs.patch rename to patches/server/0381-Option-for-maximum-exp-value-when-merging-orbs.patch diff --git a/patches/server/0386-ExperienceOrbMergeEvent.patch b/patches/server/0382-ExperienceOrbMergeEvent.patch similarity index 100% rename from patches/server/0386-ExperienceOrbMergeEvent.patch rename to patches/server/0382-ExperienceOrbMergeEvent.patch diff --git a/patches/server/0387-Fix-PotionEffect-ignores-icon-flag.patch b/patches/server/0383-Fix-PotionEffect-ignores-icon-flag.patch similarity index 100% rename from patches/server/0387-Fix-PotionEffect-ignores-icon-flag.patch rename to patches/server/0383-Fix-PotionEffect-ignores-icon-flag.patch diff --git a/patches/server/0388-Potential-bed-API.patch b/patches/server/0384-Potential-bed-API.patch similarity index 100% rename from patches/server/0388-Potential-bed-API.patch rename to patches/server/0384-Potential-bed-API.patch diff --git a/patches/server/0389-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0385-Wait-for-Async-Tasks-during-shutdown.patch similarity index 91% rename from patches/server/0389-Wait-for-Async-Tasks-during-shutdown.patch rename to patches/server/0385-Wait-for-Async-Tasks-during-shutdown.patch index 40dc5a4f6408..803c2f5e89fc 100644 --- a/patches/server/0389-Wait-for-Async-Tasks-during-shutdown.patch +++ b/patches/server/0385-Wait-for-Async-Tasks-during-shutdown.patch @@ -10,10 +10,10 @@ Adds a 5 second grace period for any async tasks to finish and warns if any are still running after that delay just as reload does. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1963cf2716879c6d193cbed8de9538094dda9b3d..9829f86520c4028a94f239fb4804fb0f2a2ac6fa 100644 +index 0b79a72b8b2325416cd1a5743a27787e93ffa644..87966edd7fb8b936c55659257291478c862e2542 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -958,6 +958,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= 0; --j) { diff --git a/patches/server/0399-Fix-sand-duping.patch b/patches/server/0394-Fix-sand-duping.patch similarity index 94% rename from patches/server/0399-Fix-sand-duping.patch rename to patches/server/0394-Fix-sand-duping.patch index d616a66fc13b..a32b1f5869c6 100644 --- a/patches/server/0399-Fix-sand-duping.patch +++ b/patches/server/0394-Fix-sand-duping.patch @@ -7,7 +7,7 @@ If the falling block dies during teleportation (entity#move), then we need to detect that by placing a check after the move. diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 9be45ff8139c9d385c1deb1200e3718ed3add801..fc33d05cf1a3cceb220dab1ee1da33ffe37834db 100644 +index ffed5f2295f60416535015a28635975aa2d211dd..bfd8304f4fc2aded1681c7a59cf9d81192e5a3b2 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -131,6 +131,11 @@ public class FallingBlockEntity extends Entity { diff --git a/patches/server/0400-Fix-missing-chunks-due-to-integer-overflow.patch b/patches/server/0395-Fix-missing-chunks-due-to-integer-overflow.patch similarity index 100% rename from patches/server/0400-Fix-missing-chunks-due-to-integer-overflow.patch rename to patches/server/0395-Fix-missing-chunks-due-to-integer-overflow.patch diff --git a/patches/server/0401-Prevent-position-desync-causing-tp-exploit.patch b/patches/server/0396-Prevent-position-desync-causing-tp-exploit.patch similarity index 94% rename from patches/server/0401-Prevent-position-desync-causing-tp-exploit.patch rename to patches/server/0396-Prevent-position-desync-causing-tp-exploit.patch index 54aa3e2e8ced..a22c84b5d5e7 100644 --- a/patches/server/0401-Prevent-position-desync-causing-tp-exploit.patch +++ b/patches/server/0396-Prevent-position-desync-causing-tp-exploit.patch @@ -13,7 +13,7 @@ behaviour, we need to move all of this dangerous logic outside of the move call and into an appropriate place in the tick method. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4d5fc9123e13ad764a88c40f1be1205b6f6f102e..802602882a76fbb026c524225f74bb3780d219c0 100644 +index 11f50899ee0144fc56e6829850ad37dd8e6349eb..709eb006717da012ce5f0d3dba9e5bee1e277a90 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1366,6 +1366,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0402-Inventory-getHolder-method-without-block-snapshot.patch b/patches/server/0397-Inventory-getHolder-method-without-block-snapshot.patch similarity index 100% rename from patches/server/0402-Inventory-getHolder-method-without-block-snapshot.patch rename to patches/server/0397-Inventory-getHolder-method-without-block-snapshot.patch diff --git a/patches/server/0403-Improve-Arrow-API.patch b/patches/server/0398-Improve-Arrow-API.patch similarity index 100% rename from patches/server/0403-Improve-Arrow-API.patch rename to patches/server/0398-Improve-Arrow-API.patch diff --git a/patches/server/0404-Add-PlayerRecipeBookClickEvent.patch b/patches/server/0399-Add-PlayerRecipeBookClickEvent.patch similarity index 97% rename from patches/server/0404-Add-PlayerRecipeBookClickEvent.patch rename to patches/server/0399-Add-PlayerRecipeBookClickEvent.patch index d4141a174603..e85f3cb08501 100644 --- a/patches/server/0404-Add-PlayerRecipeBookClickEvent.patch +++ b/patches/server/0399-Add-PlayerRecipeBookClickEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerRecipeBookClickEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 802602882a76fbb026c524225f74bb3780d219c0..d244a20961e5e3e459bf2bc784014b3f963590ea 100644 +index 709eb006717da012ce5f0d3dba9e5bee1e277a90..99bcaf518e22b8d3cd79068defe776bb792abe6c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2973,16 +2973,40 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0406-Hide-sync-chunk-writes-behind-flag.patch b/patches/server/0400-Hide-sync-chunk-writes-behind-flag.patch similarity index 100% rename from patches/server/0406-Hide-sync-chunk-writes-behind-flag.patch rename to patches/server/0400-Hide-sync-chunk-writes-behind-flag.patch diff --git a/patches/server/0407-Add-permission-for-command-blocks.patch b/patches/server/0401-Add-permission-for-command-blocks.patch similarity index 97% rename from patches/server/0407-Add-permission-for-command-blocks.patch rename to patches/server/0401-Add-permission-for-command-blocks.patch index 329cf1a7e04b..9f6c638bb13d 100644 --- a/patches/server/0407-Add-permission-for-command-blocks.patch +++ b/patches/server/0401-Add-permission-for-command-blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add permission for command blocks diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 3629f164f05cc2d33c76bb21cfe4598539aa08e0..5b951937511126d58665c5e2baf18186a7a8d325 100644 +index 99784bac05ea0d2ea1e9053466e21c1175fe0a4b..9f3450d6bbd330a2aebd271a086965bf364c9fe4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -399,7 +399,7 @@ public class ServerPlayerGameMode { @@ -18,7 +18,7 @@ index 3629f164f05cc2d33c76bb21cfe4598539aa08e0..5b951937511126d58665c5e2baf18186 return false; } else if (this.player.blockActionRestricted(this.level, pos, this.gameModeForPlayer)) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d244a20961e5e3e459bf2bc784014b3f963590ea..56a664d7810e4c4b0f85d714e2b89014bb460fac 100644 +index 99bcaf518e22b8d3cd79068defe776bb792abe6c..2502b8145da151a63dc769c4e717d53d651203c3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -778,7 +778,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0408-Ensure-Entity-position-and-AABB-are-never-invalid.patch b/patches/server/0402-Ensure-Entity-position-and-AABB-are-never-invalid.patch similarity index 91% rename from patches/server/0408-Ensure-Entity-position-and-AABB-are-never-invalid.patch rename to patches/server/0402-Ensure-Entity-position-and-AABB-are-never-invalid.patch index 605dcecccb6f..bfb02d5bcf65 100644 --- a/patches/server/0408-Ensure-Entity-position-and-AABB-are-never-invalid.patch +++ b/patches/server/0402-Ensure-Entity-position-and-AABB-are-never-invalid.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Ensure Entity position and AABB are never invalid Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f51453bd3018667aa491c9b64b6f9c4d5c703d7a..e68a29eb0c81285039a1a980d8b9b83f0b1d022e 100644 +index d0f46b955041487ce1cec4a9a5ed8808ef4d9e9f..7040b3b9b743b4f88f00da698e37afa42f277990 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -727,8 +727,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -693,8 +693,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void setPos(double x, double y, double z) { @@ -20,7 +20,7 @@ index f51453bd3018667aa491c9b64b6f9c4d5c703d7a..e68a29eb0c81285039a1a980d8b9b83f } protected AABB makeBoundingBox() { -@@ -4240,7 +4240,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4206,7 +4206,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.getZ((2.0D * this.random.nextDouble() - 1.0D) * widthScale); } @@ -50,7 +50,7 @@ index f51453bd3018667aa491c9b64b6f9c4d5c703d7a..e68a29eb0c81285039a1a980d8b9b83f // Paper start - rewrite chunk system if (this.updatingSectionStatus) { LOGGER.error("Refusing to update position for entity " + this + " to position " + new Vec3(x, y, z) + " since it is processing a section status update", new Throwable()); -@@ -4264,6 +4286,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4230,6 +4252,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.levelCallback.onMove(); } diff --git a/patches/server/0409-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0403-Fix-Per-World-Difficulty-Remembering-Difficulty.patch similarity index 91% rename from patches/server/0409-Fix-Per-World-Difficulty-Remembering-Difficulty.patch rename to patches/server/0403-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index 7c9c8be7fe95..cfa2f0e060f2 100644 --- a/patches/server/0409-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0403-Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -8,10 +8,10 @@ makes it so that the server keeps the last difficulty used instead of restoring the server.properties every single load. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9829f86520c4028a94f239fb4804fb0f2a2ac6fa..229f5c1d651d903e1c641e67661004a4ee010417 100644 +index 87966edd7fb8b936c55659257291478c862e2542..74ce2fc0256c1747bb1638eea8947d3416f23ab8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -828,7 +828,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && this.tickCount % autosavePeriod == 0; + try { @@ -49,14 +49,14 @@ index 229f5c1d651d903e1c641e67661004a4ee010417..08e3f07c4547f8fa7b571ecef7436ba1 + } + } finally { + this.isSaving = false; - } ++ } + this.profiler.pop(); + // Paper end - Incremental chunk and player saving io.papermc.paper.util.CachedLists.reset(); // Paper // Paper start - move executeAll() into full server tick timing try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 56fe3f4edd15239533a1ae9287e86528b3296bdc..a35957eef3f6ab2dcfebc01eaa9bea1b249599e2 100644 +index a2220291f6d0726019187c2fc93bca801a3f0610..25009accd401fc3860c57cac1ef628b233e746e7 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -450,6 +450,15 @@ public class ServerChunkCache extends ChunkSource { @@ -76,7 +76,7 @@ index 56fe3f4edd15239533a1ae9287e86528b3296bdc..a35957eef3f6ab2dcfebc01eaa9bea1b public void close() throws IOException { // CraftBukkit start diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1b92cee2f51b844340d213ccfc78d1524a71c9dc..d9d4a8df764bce67ee13a542e0b21a5ec7fd8ca7 100644 +index 6a1e893d4ec1e5fe598422807f1717b19579fe2e..cdd766ccf85df7d0c17d36c544a5346dc46b4f22 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1301,6 +1301,37 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -118,7 +118,7 @@ index 1b92cee2f51b844340d213ccfc78d1524a71c9dc..d9d4a8df764bce67ee13a542e0b21a5e // Paper start - rewrite chunk system - add close param this.save(progressListener, flush, savingDisabled, false); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 241c16b8df5128f2c88ed2f9e9c51d7f7b8420b4..9b3425857342f4c75ae23aee922d792977aa8c4e 100644 +index 6020da902ef3c05d38116c302e3848aa1828e1fa..553cdac6fef1626d0eac86ca971fcf65a17839f8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -190,6 +190,7 @@ import org.bukkit.inventory.MainHand; @@ -130,7 +130,7 @@ index 241c16b8df5128f2c88ed2f9e9c51d7f7b8420b4..9b3425857342f4c75ae23aee922d7929 private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10; private static final int FLY_STAT_RECORDING_SPEED = 25; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 805759ae7d92f690cea4c700c914769d39e3c0b6..ca0e6c8e27f998a078e6f60a3cad67ddda7706c7 100644 +index 7750c1980ea7e211a35ad077b95ab0e206900e17..8c32e68e82a1c87a473b2ea50afeeb0043b0e8fa 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -552,6 +552,7 @@ public abstract class PlayerList { @@ -141,7 +141,7 @@ index 805759ae7d92f690cea4c700c914769d39e3c0b6..ca0e6c8e27f998a078e6f60a3cad67dd this.playerIo.save(player); ServerStatsCounter serverstatisticmanager = (ServerStatsCounter) player.getStats(); // CraftBukkit -@@ -1153,10 +1154,22 @@ public abstract class PlayerList { +@@ -1152,10 +1153,22 @@ public abstract class PlayerList { } public void saveAll() { diff --git a/patches/server/0415-Support-old-UUID-format-for-NBT.patch b/patches/server/0408-Support-old-UUID-format-for-NBT.patch similarity index 100% rename from patches/server/0415-Support-old-UUID-format-for-NBT.patch rename to patches/server/0408-Support-old-UUID-format-for-NBT.patch diff --git a/patches/server/0416-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0409-Convert-legacy-attributes-in-Item-Meta.patch similarity index 100% rename from patches/server/0416-Convert-legacy-attributes-in-Item-Meta.patch rename to patches/server/0409-Convert-legacy-attributes-in-Item-Meta.patch diff --git a/patches/server/0418-Support-components-in-ItemMeta.patch b/patches/server/0410-Support-components-in-ItemMeta.patch similarity index 100% rename from patches/server/0418-Support-components-in-ItemMeta.patch rename to patches/server/0410-Support-components-in-ItemMeta.patch diff --git a/patches/server/0419-Improve-fix-EntityTargetLivingEntityEvent.patch b/patches/server/0411-Improve-fix-EntityTargetLivingEntityEvent.patch similarity index 100% rename from patches/server/0419-Improve-fix-EntityTargetLivingEntityEvent.patch rename to patches/server/0411-Improve-fix-EntityTargetLivingEntityEvent.patch diff --git a/patches/server/0420-Add-entity-liquid-API.patch b/patches/server/0412-Add-entity-liquid-API.patch similarity index 100% rename from patches/server/0420-Add-entity-liquid-API.patch rename to patches/server/0412-Add-entity-liquid-API.patch diff --git a/patches/server/0421-Update-itemstack-legacy-name-and-lore.patch b/patches/server/0413-Update-itemstack-legacy-name-and-lore.patch similarity index 100% rename from patches/server/0421-Update-itemstack-legacy-name-and-lore.patch rename to patches/server/0413-Update-itemstack-legacy-name-and-lore.patch diff --git a/patches/server/0422-Add-PrepareResultEvent.patch b/patches/server/0414-Add-PrepareResultEvent.patch similarity index 100% rename from patches/server/0422-Add-PrepareResultEvent.patch rename to patches/server/0414-Add-PrepareResultEvent.patch diff --git a/patches/server/0423-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0415-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch similarity index 91% rename from patches/server/0423-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch rename to patches/server/0415-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch index 2110cd04e4b2..a2dfcd3223c0 100644 --- a/patches/server/0423-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch +++ b/patches/server/0415-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't check chunk for portal on world gen entity add diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4605978cad9cbaa8b55b12c26476f85471658c82..be239cce5b4d326da46bcf63394d1bc03f2a9bb6 100644 +index 6114cc60d8cb122b708ae65db86bfd1ea2ea82c1..b691d188c741c8acf8d20bc9e6184b6445ba6332 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3510,7 +3510,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0424-Fix-arrows-never-despawning-MC-125757.patch b/patches/server/0416-Fix-arrows-never-despawning-MC-125757.patch similarity index 100% rename from patches/server/0424-Fix-arrows-never-despawning-MC-125757.patch rename to patches/server/0416-Fix-arrows-never-despawning-MC-125757.patch diff --git a/patches/server/0425-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0417-Thread-Safe-Vanilla-Command-permission-checking.patch similarity index 97% rename from patches/server/0425-Thread-Safe-Vanilla-Command-permission-checking.patch rename to patches/server/0417-Thread-Safe-Vanilla-Command-permission-checking.patch index b6cc617e9fe0..d3ee9cbba1d3 100644 --- a/patches/server/0425-Thread-Safe-Vanilla-Command-permission-checking.patch +++ b/patches/server/0417-Thread-Safe-Vanilla-Command-permission-checking.patch @@ -26,7 +26,7 @@ index d8142624f9f3a5909e7cc5665f1629a1a67dd302..b02fb15c98ab873fa78635d7a23706dd } // CraftBukkit end diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 8e0ea79a41136b697f5e58b5cd71f6a9bc3cab73..de7d11baf17d1b6c3d5fb3402d38052f3a28c246 100644 +index 0f98345f8adc6e9bf7fb2dc9ce4eba59a33ded61..907bc9d84dbc98427384cf529bfde4b09d8ce8ca 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -64,7 +64,7 @@ public class CommandSourceStack implements ExecutionCommandSource> list = null; diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index f6daa77856f5d57b1a3b38e709bff47214372973..f29ddc244cfa5eba9b2903d40d8509731fc18287 100644 +index c61789a2df774761feb79123d31eab75f9996bf2..6e0073a54f59621d8adb4e8a70e6c89c708eabba 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java @@ -63,6 +63,7 @@ public class PlayerAdvancements { diff --git a/patches/server/0430-Optimize-NetworkManager-Exception-Handling.patch b/patches/server/0422-Optimize-NetworkManager-Exception-Handling.patch similarity index 100% rename from patches/server/0430-Optimize-NetworkManager-Exception-Handling.patch rename to patches/server/0422-Optimize-NetworkManager-Exception-Handling.patch diff --git a/patches/server/0431-Fix-some-rails-connecting-improperly.patch b/patches/server/0423-Fix-some-rails-connecting-improperly.patch similarity index 100% rename from patches/server/0431-Fix-some-rails-connecting-improperly.patch rename to patches/server/0423-Fix-some-rails-connecting-improperly.patch diff --git a/patches/server/0432-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch b/patches/server/0424-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch similarity index 100% rename from patches/server/0432-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch rename to patches/server/0424-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch diff --git a/patches/server/0433-Brand-support.patch b/patches/server/0425-Brand-support.patch similarity index 96% rename from patches/server/0433-Brand-support.patch rename to patches/server/0425-Brand-support.patch index d9dd9c999848..f08785872250 100644 --- a/patches/server/0433-Brand-support.patch +++ b/patches/server/0425-Brand-support.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index dc0869c5f4e4fcae9d4fed41a33bc9a278da6d22..1d19688f9861f6a44ed6ff181befd1f7b5cc6947 100644 +index 553cdac6fef1626d0eac86ca971fcf65a17839f8..2834161f763a556400f0c8acdcc7e88c4317d318 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -278,6 +278,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index dc0869c5f4e4fcae9d4fed41a33bc9a278da6d22..1d19688f9861f6a44ed6ff181befd1f7 // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 1b53b0ee686f34a881840c549c66ea1cbab36c9f..5e86123f41e63fbf3d37d0351c04a8c73da60f63 100644 +index e69043316372d98b122ed3788fda79cdd36849e8..6597e6e9987ddb5906909c22704fdfb6557aee8e 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -55,6 +55,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/server/0434-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0426-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 100% rename from patches/server/0434-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/server/0426-Add-playPickupItemAnimation-to-LivingEntity.patch diff --git a/patches/server/0435-Don-t-require-FACING-data.patch b/patches/server/0427-Don-t-require-FACING-data.patch similarity index 100% rename from patches/server/0435-Don-t-require-FACING-data.patch rename to patches/server/0427-Don-t-require-FACING-data.patch diff --git a/patches/server/0436-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0428-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 93% rename from patches/server/0436-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/server/0428-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 38b19523e191..5c5e481dd0eb 100644 --- a/patches/server/0436-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0428-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d9d4a8df764bce67ee13a542e0b21a5ec7fd8ca7..489db5b6cf82c518806dbabc43ec18fca7e672c4 100644 +index cdd766ccf85df7d0c17d36c544a5346dc46b4f22..5089fe44bdd1d20b6b54ef26e8107c5c75ff3ea2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2014,9 +2014,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -21,7 +21,7 @@ index d9d4a8df764bce67ee13a542e0b21a5ec7fd8ca7..489db5b6cf82c518806dbabc43ec18fc // if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add this.removeTicketsForSpawn(this.paperConfig().spawn.keepSpawnLoadedRange * 16, prevSpawn); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 2d6ef62205ff5a4da72e718f9b33d955a58d805f..bbae63fb0a5f3f61c25f8348b72b1f20dcece00a 100644 +index b91205b8459cfc78fce4b98e04ae4517eef22e20..705c1b2bba2b60b260c59a6953151f34cdfc8960 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -262,12 +262,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0437-Add-moon-phase-API.patch b/patches/server/0429-Add-moon-phase-API.patch similarity index 100% rename from patches/server/0437-Add-moon-phase-API.patch rename to patches/server/0429-Add-moon-phase-API.patch diff --git a/patches/server/0438-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0430-Do-not-let-the-server-load-chunks-from-newer-version.patch similarity index 100% rename from patches/server/0438-Do-not-let-the-server-load-chunks-from-newer-version.patch rename to patches/server/0430-Do-not-let-the-server-load-chunks-from-newer-version.patch diff --git a/patches/server/0439-Prevent-headless-pistons-from-being-created.patch b/patches/server/0431-Prevent-headless-pistons-from-being-created.patch similarity index 92% rename from patches/server/0439-Prevent-headless-pistons-from-being-created.patch rename to patches/server/0431-Prevent-headless-pistons-from-being-created.patch index 280e6fc1c3a2..2254a27e1264 100644 --- a/patches/server/0439-Prevent-headless-pistons-from-being-created.patch +++ b/patches/server/0431-Prevent-headless-pistons-from-being-created.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Prevent headless pistons from being created Prevent headless pistons from being created by explosions or tree/mushroom growth. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index cf81854facadaf3c1f860bcaaf69db463a31b0c9..299583b1eb72cfdb4771ba0755fd71f2135484c1 100644 +index b1fdfae75aeea78ca77987e40242bf498447bc08..5097d9f1a3ab4e49e1899ede1742436357b0ad91 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -206,6 +206,15 @@ public class Explosion { +@@ -205,6 +205,15 @@ public class Explosion { if (f > 0.0F && this.damageCalculator.shouldBlockExplode(this, this.level, blockposition, iblockdata, f)) { set.add(blockposition); diff --git a/patches/server/0440-Add-BellRingEvent.patch b/patches/server/0432-Add-BellRingEvent.patch similarity index 93% rename from patches/server/0440-Add-BellRingEvent.patch rename to patches/server/0432-Add-BellRingEvent.patch index 02c07c5c36d6..6fe7f72b6583 100644 --- a/patches/server/0440-Add-BellRingEvent.patch +++ b/patches/server/0432-Add-BellRingEvent.patch @@ -7,7 +7,7 @@ Add a new event, BellRingEvent, to trigger whenever a player rings a village bell. Passes along the bell block and the player who rang it. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index d147f545e80695fc30b458da640f66c7ab809cce..d51af2830fd347d5e55f5fa788df0e5b8481248c 100644 +index 8ac093866aec59b4e031b953d4c3c3af66733812..915f49bbfca87682a3ae497dfcd335268f974efe 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -366,10 +366,11 @@ public class CraftEventFactory { diff --git a/patches/server/0441-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0433-Add-zombie-targets-turtle-egg-config.patch similarity index 100% rename from patches/server/0441-Add-zombie-targets-turtle-egg-config.patch rename to patches/server/0433-Add-zombie-targets-turtle-egg-config.patch diff --git a/patches/server/0442-Buffer-joins-to-world.patch b/patches/server/0434-Buffer-joins-to-world.patch similarity index 95% rename from patches/server/0442-Buffer-joins-to-world.patch rename to patches/server/0434-Buffer-joins-to-world.patch index e51227cf32f6..a8b0b7d087f8 100644 --- a/patches/server/0442-Buffer-joins-to-world.patch +++ b/patches/server/0434-Buffer-joins-to-world.patch @@ -8,7 +8,7 @@ the world per tick, this attempts to reduce the impact that join floods has on the server diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index b99dbe3878df8f67a6920195088c00a01289a79f..19df0fa85080897a36bdbffa8fcef0991dbdd191 100644 +index 6cfb814ecaf12161ec2e2545560453d7dd41e2da..a25090d277f586c932e975068636ccd6cc43b204 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -498,14 +498,29 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/server/0444-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0435-Fix-hex-colors-not-working-in-some-kick-messages.patch similarity index 97% rename from patches/server/0444-Fix-hex-colors-not-working-in-some-kick-messages.patch rename to patches/server/0435-Fix-hex-colors-not-working-in-some-kick-messages.patch index 4d1e146d3e01..7976f5c39fe0 100644 --- a/patches/server/0444-Fix-hex-colors-not-working-in-some-kick-messages.patch +++ b/patches/server/0435-Fix-hex-colors-not-working-in-some-kick-messages.patch @@ -29,7 +29,7 @@ index 21aafb1ea51769659462d722aa318460b37cbc1c..228359f13511262a0e4afeb9deff982c this.connection.disconnect(ichatmutablecomponent); } else { diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index e9d94abb77693a845ea6318b7045bd61a7a46feb..e2c7fa3fd05ebb3b76388410d26b6493baf4f877 100644 +index ba0bdd685c49c02bcb1b6d840ddceb9049565d34..d4658328eeecb1c9e3e25eec14dea07e9e2a8b74 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -99,7 +99,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, diff --git a/patches/server/0445-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0436-PortalCreateEvent-needs-to-know-its-entity.patch similarity index 98% rename from patches/server/0445-PortalCreateEvent-needs-to-know-its-entity.patch rename to patches/server/0436-PortalCreateEvent-needs-to-know-its-entity.patch index 0881951f2b68..a0a45caf7c71 100644 --- a/patches/server/0445-PortalCreateEvent-needs-to-know-its-entity.patch +++ b/patches/server/0436-PortalCreateEvent-needs-to-know-its-entity.patch @@ -79,7 +79,7 @@ index 5e5d0e5b41b5ed90a5f0109b231d468bbc566ae7..b1e9ea9ece5ef8ecbe2ed919fda8e115 private static int getFireTickDelay(RandomSource random) { diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 2d1062d2b0412180cc08765ecf9b0a071983c06a..d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26 100644 +index 7e4264f87a0f81db71d49dbede32a1bad87f7ca8..aa15d65f69f89da97cecd47c3458cd3b4937055f 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -43,6 +43,7 @@ import net.minecraft.world.item.DyeColor; diff --git a/patches/server/0446-Add-more-Evoker-API.patch b/patches/server/0437-Add-more-Evoker-API.patch similarity index 100% rename from patches/server/0446-Add-more-Evoker-API.patch rename to patches/server/0437-Add-more-Evoker-API.patch diff --git a/patches/server/0447-Add-methods-to-get-translation-keys.patch b/patches/server/0438-Add-methods-to-get-translation-keys.patch similarity index 100% rename from patches/server/0447-Add-methods-to-get-translation-keys.patch rename to patches/server/0438-Add-methods-to-get-translation-keys.patch diff --git a/patches/server/0448-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0439-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/server/0448-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/server/0439-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/server/0449-Cache-block-data-strings.patch b/patches/server/0440-Cache-block-data-strings.patch similarity index 95% rename from patches/server/0449-Cache-block-data-strings.patch rename to patches/server/0440-Cache-block-data-strings.patch index 0f2424d33d10..06f4d481f4fa 100644 --- a/patches/server/0449-Cache-block-data-strings.patch +++ b/patches/server/0440-Cache-block-data-strings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Cache block data strings diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 08e3f07c4547f8fa7b571ecef7436ba1fbee578a..2600be3ec00a1ba8cff5f03c8e3f7a06a05bbeaf 100644 +index efb5a5b31ada326593b3bea0f49c05591db18801..903d43aaa84fa20f1ca8a3e1dbf97c91584c8891 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2134,6 +2134,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= level; } -@@ -1870,6 +1871,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1836,6 +1837,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void moveTo(double x, double y, double z, float yaw, float pitch) { @@ -57,7 +57,7 @@ index e68a29eb0c81285039a1a980d8b9b83f0b1d022e..522b5575e7e465ccf235fad7d2e87c92 this.setYRot(yaw); this.setXRot(pitch); diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index f4e1a540243d1f699dd2ef407707af27517d9360..b90c1e4e03f85dbfa7134bffd8da59330cea1e28 100644 +index 0c14b382e7660ce518096e9f26525ccea57a1bf9..a9c74ef33182505b6982fea273a760e937ddbf51 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java @@ -169,6 +169,7 @@ public abstract class BaseSpawner { diff --git a/patches/server/0451-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0442-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/server/0451-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/server/0442-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/server/0452-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0443-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch similarity index 100% rename from patches/server/0452-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch rename to patches/server/0443-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch diff --git a/patches/server/0453-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0444-Extend-block-drop-capture-to-capture-all-items-added.patch similarity index 93% rename from patches/server/0453-Extend-block-drop-capture-to-capture-all-items-added.patch rename to patches/server/0444-Extend-block-drop-capture-to-capture-all-items-added.patch index f6c24355d990..6184e7d417b4 100644 --- a/patches/server/0453-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/patches/server/0444-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Extend block drop capture to capture all items added to the diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 489db5b6cf82c518806dbabc43ec18fca7e672c4..7227d29c6ecf77b026c84e06a3c605926e1f7e5e 100644 +index 5089fe44bdd1d20b6b54ef26e8107c5c75ff3ea2..53404e9a6f5f3aff625ce2e247bea1bfe478a996 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1512,6 +1512,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -23,7 +23,7 @@ index 489db5b6cf82c518806dbabc43ec18fca7e672c4..7227d29c6ecf77b026c84e06a3c60592 if (spawnReason != null && !CraftEventFactory.doEntityAddEventCalling(this, entity, spawnReason)) { return false; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 5b951937511126d58665c5e2baf18186a7a8d325..60c18af9253607bc51ecb9d23c23e652a9ba36e9 100644 +index 9f3450d6bbd330a2aebd271a086965bf364c9fe4..a157ccbedb94f287c610975d6c3cfb66a3bddbe8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -431,10 +431,12 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0454-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0445-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 90% rename from patches/server/0454-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/server/0445-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index ba65c24e8fae..6bc5b0b8ccfd 100644 --- a/patches/server/0454-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/0445-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 522b5575e7e465ccf235fad7d2e87c92074312bd..6ee2dc0ef43ffa89b2692adc01b3fd6090f5cbf6 100644 +index 945d702f5fd204b2197d445e74bb941e814c09f8..d26516fd10ec60bc8e27490df8e1f70aa0976d5c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4507,4 +4507,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4473,4 +4473,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S void accept(Entity entity, double x, double y, double z); } diff --git a/patches/server/0455-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0446-Lazily-track-plugin-scoreboards-by-default.patch similarity index 100% rename from patches/server/0455-Lazily-track-plugin-scoreboards-by-default.patch rename to patches/server/0446-Lazily-track-plugin-scoreboards-by-default.patch diff --git a/patches/server/0456-Entity-isTicking.patch b/patches/server/0447-Entity-isTicking.patch similarity index 90% rename from patches/server/0456-Entity-isTicking.patch rename to patches/server/0447-Entity-isTicking.patch index 06affcb103b2..1ee10cfb02ef 100644 --- a/patches/server/0456-Entity-isTicking.patch +++ b/patches/server/0447-Entity-isTicking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6ee2dc0ef43ffa89b2692adc01b3fd6090f5cbf6..c359ba2c20a5f1a63a8342ba593ba51dc8daa905 100644 +index d26516fd10ec60bc8e27490df8e1f70aa0976d5c..49bea2b71d4fd3f2e38eabd1ebb57dd66d9abe0b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4512,5 +4512,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4478,5 +4478,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public static int nextEntityId() { return ENTITY_COUNTER.incrementAndGet(); } diff --git a/patches/server/0457-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0448-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch similarity index 90% rename from patches/server/0457-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch rename to patches/server/0448-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch index 6698fe0dc41c..4a158e1ee2fc 100644 --- a/patches/server/0457-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch +++ b/patches/server/0448-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix deop kicking non-whitelisted player when white list is diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2600be3ec00a1ba8cff5f03c8e3f7a06a05bbeaf..bb2de4fafa5a21c7dbf71dbad4bd01d0e6ece36f 100644 +index 903d43aaa84fa20f1ca8a3e1dbf97c91584c8891..abee10fbb354e22f6c41b04d9f281ffeafdc4498 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2217,13 +2217,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements BehaviorControl diff --git a/patches/server/0459-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0450-Reset-Ender-Crystals-on-Dragon-Spawn.patch similarity index 100% rename from patches/server/0459-Reset-Ender-Crystals-on-Dragon-Spawn.patch rename to patches/server/0450-Reset-Ender-Crystals-on-Dragon-Spawn.patch diff --git a/patches/server/0460-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0451-Fix-for-large-move-vectors-crashing-server.patch similarity index 98% rename from patches/server/0460-Fix-for-large-move-vectors-crashing-server.patch rename to patches/server/0451-Fix-for-large-move-vectors-crashing-server.patch index ea1b925edf58..7eafb0c19494 100644 --- a/patches/server/0460-Fix-for-large-move-vectors-crashing-server.patch +++ b/patches/server/0451-Fix-for-large-move-vectors-crashing-server.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix for large move vectors crashing server Check movement distance also based on current position. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4c9a5b53d5b170593c759de1d5dc3c411d9d50b2..da28ef2db1b96a79ffae87518b8c77647f3f13df 100644 +index fba468f0a15dca041acf00e3865485055d2b8cb1..8682ba8d677461842fbb0b40a3d5fdd4d22a8e9e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -473,9 +473,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0461-Optimise-getType-calls.patch b/patches/server/0452-Optimise-getType-calls.patch similarity index 100% rename from patches/server/0461-Optimise-getType-calls.patch rename to patches/server/0452-Optimise-getType-calls.patch diff --git a/patches/server/0462-Villager-resetOffers.patch b/patches/server/0453-Villager-resetOffers.patch similarity index 100% rename from patches/server/0462-Villager-resetOffers.patch rename to patches/server/0453-Villager-resetOffers.patch diff --git a/patches/server/0463-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0454-Retain-block-place-order-when-capturing-blockstates.patch similarity index 93% rename from patches/server/0463-Retain-block-place-order-when-capturing-blockstates.patch rename to patches/server/0454-Retain-block-place-order-when-capturing-blockstates.patch index 4b8e75e7087a..91b1830d1731 100644 --- a/patches/server/0463-Retain-block-place-order-when-capturing-blockstates.patch +++ b/patches/server/0454-Retain-block-place-order-when-capturing-blockstates.patch @@ -10,7 +10,7 @@ In general, look at making this logic more robust (i.e properly handling cases where a captured entry is overriden) - but for now this will do. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 92f250b9cc965a433dc9b9de1f9bfeb2acf4363e..15021a6791a5f76c3bb55e88a32b41d0c0ebaf58 100644 +index f8246abc1bf9be51e93d645e03b9223326e919f9..b0c61b274c24e2ced86a6acc0ea007a80e61fd3e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -159,7 +159,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0464-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0455-Reduce-blockpos-allocation-from-pathfinding.patch similarity index 100% rename from patches/server/0464-Reduce-blockpos-allocation-from-pathfinding.patch rename to patches/server/0455-Reduce-blockpos-allocation-from-pathfinding.patch diff --git a/patches/server/0465-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0456-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/server/0465-Fix-item-locations-dropped-from-campfires.patch rename to patches/server/0456-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/server/0466-Fix-bell-block-entity-memory-leak.patch b/patches/server/0457-Fix-bell-block-entity-memory-leak.patch similarity index 100% rename from patches/server/0466-Fix-bell-block-entity-memory-leak.patch rename to patches/server/0457-Fix-bell-block-entity-memory-leak.patch diff --git a/patches/server/0467-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0458-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/server/0467-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/server/0458-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/server/0468-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0459-Add-getOfflinePlayerIfCached-String.patch similarity index 93% rename from patches/server/0468-Add-getOfflinePlayerIfCached-String.patch rename to patches/server/0459-Add-getOfflinePlayerIfCached-String.patch index c07593241638..32d7d4f54622 100644 --- a/patches/server/0468-Add-getOfflinePlayerIfCached-String.patch +++ b/patches/server/0459-Add-getOfflinePlayerIfCached-String.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a25cc6f7d91100b98996d9f07fff3c62018ddf86..f80846c1940d6a094c5980a451016a9214d594fb 100644 +index 6dde3d479aa1ae50c6404419ec5da52f0b68a11e..4b787a548a21512f8fe44a32568181ed18a38157 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1909,6 +1909,28 @@ public final class CraftServer implements Server { diff --git a/patches/server/0469-Add-ignore-discounts-API.patch b/patches/server/0460-Add-ignore-discounts-API.patch similarity index 99% rename from patches/server/0469-Add-ignore-discounts-API.patch rename to patches/server/0460-Add-ignore-discounts-API.patch index df5811002633..60e260aea0e2 100644 --- a/patches/server/0469-Add-ignore-discounts-API.patch +++ b/patches/server/0460-Add-ignore-discounts-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ignore discounts API diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index c0aa370367856a159412dd141f683b7d51e11c8b..b33fa26d6e3cf8999fb24137069d0a4178f82caf 100644 +index 7956c1ec7bf6b9fe224ec14bb695c0b8ca9dcf2d..fb5d4b1a86d00fce9482ed4fd4ae71fdcdb63781 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -508,6 +508,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler diff --git a/patches/server/0470-Toggle-for-removing-existing-dragon.patch b/patches/server/0461-Toggle-for-removing-existing-dragon.patch similarity index 100% rename from patches/server/0470-Toggle-for-removing-existing-dragon.patch rename to patches/server/0461-Toggle-for-removing-existing-dragon.patch diff --git a/patches/server/0471-Fix-client-lag-on-advancement-loading.patch b/patches/server/0462-Fix-client-lag-on-advancement-loading.patch similarity index 100% rename from patches/server/0471-Fix-client-lag-on-advancement-loading.patch rename to patches/server/0462-Fix-client-lag-on-advancement-loading.patch diff --git a/patches/server/0472-Item-no-age-no-player-pickup.patch b/patches/server/0463-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/server/0472-Item-no-age-no-player-pickup.patch rename to patches/server/0463-Item-no-age-no-player-pickup.patch diff --git a/patches/server/0474-Beacon-API-custom-effect-ranges.patch b/patches/server/0464-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/server/0474-Beacon-API-custom-effect-ranges.patch rename to patches/server/0464-Beacon-API-custom-effect-ranges.patch diff --git a/patches/server/0475-Add-API-for-quit-reason.patch b/patches/server/0465-Add-API-for-quit-reason.patch similarity index 95% rename from patches/server/0475-Add-API-for-quit-reason.patch rename to patches/server/0465-Add-API-for-quit-reason.patch index e2fcc31f87b9..6b25d656ad11 100644 --- a/patches/server/0475-Add-API-for-quit-reason.patch +++ b/patches/server/0465-Add-API-for-quit-reason.patch @@ -25,7 +25,7 @@ index a25090d277f586c932e975068636ccd6cc43b204..dd7deb9175059857c59c85c745053cc8 Connection.LOGGER.debug("Failed to sent packet", throwable); if (this.getSending() == PacketFlow.CLIENTBOUND) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1d19688f9861f6a44ed6ff181befd1f7b5cc6947..115ecf1d50f796adb85df6fdd8739f71740faf3e 100644 +index 2834161f763a556400f0c8acdcc7e88c4317d318..cf3c2229347f8a8ca860e8b1fbf9226c497df479 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -279,6 +279,7 @@ public class ServerPlayer extends Player { @@ -37,7 +37,7 @@ index 1d19688f9861f6a44ed6ff181befd1f7b5cc6947..115ecf1d50f796adb85df6fdd8739f71 // Paper start - replace player chunk loader private final java.util.concurrent.atomic.AtomicReference viewDistances = new java.util.concurrent.atomic.AtomicReference<>(new io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.ViewDistances(-1, -1, -1)); diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 5e86123f41e63fbf3d37d0351c04a8c73da60f63..7c17c3d4f4f5ebc42186fcc98008bda062715e55 100644 +index 6597e6e9987ddb5906909c22704fdfb6557aee8e..6bb846d3ee2fb54ab3ffa116607f2a83e538460e 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -315,6 +315,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -49,7 +49,7 @@ index 5e86123f41e63fbf3d37d0351c04a8c73da60f63..7c17c3d4f4f5ebc42186fcc98008bda0 this.connection.disconnect(ichatbasecomponent); })); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f68691542e57da7866253c43251c10235ebc57a0..fdfa2fe6a2564a963dfabff3f9a49ca26c71d2be 100644 +index d5890b41c2ddf955416a64132f3022d95850f04b..bd009fdf73d2eb03708e80683d360be0ba13edd6 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -579,7 +579,7 @@ public abstract class PlayerList { diff --git a/patches/server/0476-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0466-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/server/0476-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0466-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/server/0477-Expose-world-spawn-angle.patch b/patches/server/0467-Expose-world-spawn-angle.patch similarity index 91% rename from patches/server/0477-Expose-world-spawn-angle.patch rename to patches/server/0467-Expose-world-spawn-angle.patch index a4e4c3ef85d0..67e838080d58 100644 --- a/patches/server/0477-Expose-world-spawn-angle.patch +++ b/patches/server/0467-Expose-world-spawn-angle.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose world spawn angle diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index fdfa2fe6a2564a963dfabff3f9a49ca26c71d2be..711956432c421d812b5e0d37834ce4cd276cea06 100644 +index bd009fdf73d2eb03708e80683d360be0ba13edd6..a393af8e54837e6bf9e05050dd3b38d5ad015782 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -849,7 +849,7 @@ public abstract class PlayerList { diff --git a/patches/server/0478-Add-Destroy-Speed-API.patch b/patches/server/0468-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/server/0478-Add-Destroy-Speed-API.patch rename to patches/server/0468-Add-Destroy-Speed-API.patch diff --git a/patches/server/0479-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0469-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 100% rename from patches/server/0479-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0469-Fix-Player-spawnParticle-x-y-z-precision-loss.patch diff --git a/patches/server/0480-Add-LivingEntity-clearActiveItem.patch b/patches/server/0470-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/server/0480-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0470-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/server/0481-Add-PlayerItemCooldownEvent.patch b/patches/server/0471-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0481-Add-PlayerItemCooldownEvent.patch rename to patches/server/0471-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0482-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0472-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0482-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0472-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0483-More-lightning-API.patch b/patches/server/0473-More-lightning-API.patch similarity index 100% rename from patches/server/0483-More-lightning-API.patch rename to patches/server/0473-More-lightning-API.patch diff --git a/patches/server/0484-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0474-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 97% rename from patches/server/0484-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0474-Climbing-should-not-bypass-cramming-gamerule.patch index f5a8e23a0f74..f0a4f0386456 100644 --- a/patches/server/0484-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0474-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c359ba2c20a5f1a63a8342ba593ba51dc8daa905..b7a0fb1d6500d0a0d6734726484b04a084ce757c 100644 +index 49bea2b71d4fd3f2e38eabd1ebb57dd66d9abe0b..5baa6503b9d0e4f854c2546d0bbdd527c9f63cca 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2063,6 +2063,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2029,6 +2029,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean isPushable() { @@ -44,7 +44,7 @@ index c9c7833755af3c7bef1d40f2ca425cbec59efa68..75cdddbfbbc4c0c521194dde27ba5f5d } else if (entity.level().isClientSide && (!(entity1 instanceof Player) || !((Player) entity1).isLocalPlayer())) { return false; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index be239cce5b4d326da46bcf63394d1bc03f2a9bb6..f4050168502e714f530c249d4730525c06958f6b 100644 +index b691d188c741c8acf8d20bc9e6184b6445ba6332..cf57c977d64a76d29a4f9a4811d55a17cc51e368 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3426,7 +3426,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0485-Add-missing-default-perms-for-commands.patch b/patches/server/0475-Add-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0485-Add-missing-default-perms-for-commands.patch rename to patches/server/0475-Add-missing-default-perms-for-commands.patch diff --git a/patches/server/0486-Add-PlayerShearBlockEvent.patch b/patches/server/0476-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0486-Add-PlayerShearBlockEvent.patch rename to patches/server/0476-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0487-Limit-recipe-packets.patch b/patches/server/0477-Limit-recipe-packets.patch similarity index 96% rename from patches/server/0487-Limit-recipe-packets.patch rename to patches/server/0477-Limit-recipe-packets.patch index ad49c3d49c61..0d6c1aaa35e0 100644 --- a/patches/server/0487-Limit-recipe-packets.patch +++ b/patches/server/0477-Limit-recipe-packets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Limit recipe packets diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index da28ef2db1b96a79ffae87518b8c77647f3f13df..1f51d1e6fb85a73ed6c046a5dd32c27b43f9d63b 100644 +index 8682ba8d677461842fbb0b40a3d5fdd4d22a8e9e..3756ea70ae32005eb5d6b8285b1b1c1273c553f0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -258,6 +258,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0488-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0478-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0488-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0478-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0489-Player-Chunk-Load-Unload-Events.patch b/patches/server/0479-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/server/0489-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0479-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/server/0490-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0480-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0490-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0480-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0491-Expose-LivingEntity-hurt-direction.patch b/patches/server/0481-Expose-LivingEntity-hurt-direction.patch similarity index 96% rename from patches/server/0491-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0481-Expose-LivingEntity-hurt-direction.patch index 896e176539c8..29f45c6f9c37 100644 --- a/patches/server/0491-Expose-LivingEntity-hurt-direction.patch +++ b/patches/server/0481-Expose-LivingEntity-hurt-direction.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose LivingEntity hurt direction diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index ca7f6ffdbfc8c796c3a26108f281bef7af560f78..07e15c65bf52725b6f63c89ae421afd3d95ffd87 100644 +index 2a7d62305d16074de4eeb84d8870a089cf8641ac..1f5f27bea4afdab99bb41f87288f66b29d7c5264 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -178,7 +178,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0492-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0482-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 91% rename from patches/server/0492-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0482-Add-OBSTRUCTED-reason-to-BedEnterResult.patch index 21f0a261e4f6..4531ba2a86bf 100644 --- a/patches/server/0492-Add-OBSTRUCTED-reason-to-BedEnterResult.patch +++ b/patches/server/0482-Add-OBSTRUCTED-reason-to-BedEnterResult.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add OBSTRUCTED reason to BedEnterResult diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index d51af2830fd347d5e55f5fa788df0e5b8481248c..650ff96dc5d2b690520d2f2eb91d25bdf182e22e 100644 +index 915f49bbfca87682a3ae497dfcd335268f974efe..23fb49657e07c99e10d238420ecb177ca515a2af 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -301,6 +301,10 @@ public class CraftEventFactory { diff --git a/patches/server/0493-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch b/patches/server/0483-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch similarity index 100% rename from patches/server/0493-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch rename to patches/server/0483-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch diff --git a/patches/server/0495-Add-TargetHitEvent.patch b/patches/server/0484-Add-TargetHitEvent.patch similarity index 100% rename from patches/server/0495-Add-TargetHitEvent.patch rename to patches/server/0484-Add-TargetHitEvent.patch diff --git a/patches/server/0496-MC-4-Fix-item-position-desync.patch b/patches/server/0485-MC-4-Fix-item-position-desync.patch similarity index 93% rename from patches/server/0496-MC-4-Fix-item-position-desync.patch rename to patches/server/0485-MC-4-Fix-item-position-desync.patch index ad0abd54ba8f..d81d8f0fb951 100644 --- a/patches/server/0496-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0485-MC-4-Fix-item-position-desync.patch @@ -28,10 +28,10 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..3c4ac79c094dc2fff7de94150a34b7bf public Vec3 decode(long x, long y, long z) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b7a0fb1d6500d0a0d6734726484b04a084ce757c..7472e3aba473afe474ec0928d3cd1166bb59d0b2 100644 +index 5baa6503b9d0e4f854c2546d0bbdd527c9f63cca..0b7ac3f3115a6e83fe5f2bee8a372ad01dd91fb3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4283,6 +4283,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4249,6 +4249,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } // Paper end - rewrite chunk system diff --git a/patches/server/0497-Additional-Block-Material-API.patch b/patches/server/0486-Additional-Block-Material-API.patch similarity index 100% rename from patches/server/0497-Additional-Block-Material-API.patch rename to patches/server/0486-Additional-Block-Material-API.patch diff --git a/patches/server/0498-Fix-harming-potion-dupe.patch b/patches/server/0487-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0498-Fix-harming-potion-dupe.patch rename to patches/server/0487-Fix-harming-potion-dupe.patch diff --git a/patches/server/0499-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/server/0488-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/server/0499-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/server/0488-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/server/0500-Cache-burn-durations.patch b/patches/server/0489-Cache-burn-durations.patch similarity index 100% rename from patches/server/0500-Cache-burn-durations.patch rename to patches/server/0489-Cache-burn-durations.patch diff --git a/patches/server/0501-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0490-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/server/0501-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0490-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/server/0502-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0491-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 100% rename from patches/server/0502-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/server/0491-Fix-Not-a-string-Map-Conversion-spam.patch diff --git a/patches/server/0503-Add-PlayerFlowerPotManipulateEvent.patch b/patches/server/0492-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0503-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0492-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0504-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0493-Fix-interact-event-not-being-called-sometimes.patch similarity index 97% rename from patches/server/0504-Fix-interact-event-not-being-called-sometimes.patch rename to patches/server/0493-Fix-interact-event-not-being-called-sometimes.patch index f2c474f4449e..ce207281d03e 100644 --- a/patches/server/0504-Fix-interact-event-not-being-called-sometimes.patch +++ b/patches/server/0493-Fix-interact-event-not-being-called-sometimes.patch @@ -11,7 +11,7 @@ Subject: [PATCH] Fix interact event not being called sometimes Co-authored-by: Moulberry diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 1f51d1e6fb85a73ed6c046a5dd32c27b43f9d63b..e27395ff1b8e4546877c42f1df5ba836c11cdb6e 100644 +index 3756ea70ae32005eb5d6b8285b1b1c1273c553f0..c169c44321c8bd6ea562f99f6c8a5a5f5be79425 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1760,7 +1760,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0505-Zombie-API-breaking-doors.patch b/patches/server/0494-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0505-Zombie-API-breaking-doors.patch rename to patches/server/0494-Zombie-API-breaking-doors.patch diff --git a/patches/server/0506-Fix-nerfed-slime-when-splitting.patch b/patches/server/0495-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/server/0506-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0495-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/server/0507-Add-EntityLoadCrossbowEvent.patch b/patches/server/0496-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0507-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0496-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0508-Add-WorldGameRuleChangeEvent.patch b/patches/server/0497-Add-WorldGameRuleChangeEvent.patch similarity index 98% rename from patches/server/0508-Add-WorldGameRuleChangeEvent.patch rename to patches/server/0497-Add-WorldGameRuleChangeEvent.patch index 78f64f78baa4..449e76ade1e2 100644 --- a/patches/server/0508-Add-WorldGameRuleChangeEvent.patch +++ b/patches/server/0497-Add-WorldGameRuleChangeEvent.patch @@ -64,7 +64,7 @@ index 334001cb749600c973c82391e1c11f0e40bd2dfb..f3cdf1fa7731eb7bb1cb89aa6a37204d public int get() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index bbae63fb0a5f3f61c25f8348b72b1f20dcece00a..f62cec4122b384603ae5d3ad6f6134eff2d703fe 100644 +index 705c1b2bba2b60b260c59a6953151f34cdfc8960..e092afa65bc6d14c53a09175b0a8cd9ad50a7477 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1930,8 +1930,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0509-Add-ServerResourcesReloadedEvent.patch b/patches/server/0498-Add-ServerResourcesReloadedEvent.patch similarity index 94% rename from patches/server/0509-Add-ServerResourcesReloadedEvent.patch rename to patches/server/0498-Add-ServerResourcesReloadedEvent.patch index 5eb5aa8de0ab..8e5036524fd9 100644 --- a/patches/server/0509-Add-ServerResourcesReloadedEvent.patch +++ b/patches/server/0498-Add-ServerResourcesReloadedEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add ServerResourcesReloadedEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index bb2de4fafa5a21c7dbf71dbad4bd01d0e6ece36f..563dc53b10389f106f310d9c9ecfe33f7e701553 100644 +index abee10fbb354e22f6c41b04d9f281ffeafdc4498..6268b8ffe365c45406df7f40fcbc0567cc5d1db4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2094,7 +2094,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop completablefuture = CompletableFuture.supplyAsync(() -> { Stream stream = dataPacks.stream(); // CraftBukkit - decompile error -@@ -2135,6 +2141,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper @@ -17,7 +17,7 @@ index 563dc53b10389f106f310d9c9ecfe33f7e701553..b0e0c955e9b5c92d4a8e8d55149d5e81 this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f059ba5cfc0a3e12ea4b1b3554d85170fe782fff..186a4ea81212ba9a0c928de3226dd25fac1f4252 100644 +index fdf85454fc55de4d966442d32ee004e7e66b0ed7..4b1ddc849efaaba6fe35e46d7a979e6c65f0dbd2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -29,7 +29,7 @@ index f059ba5cfc0a3e12ea4b1b3554d85170fe782fff..186a4ea81212ba9a0c928de3226dd25f @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f4050168502e714f530c249d4730525c06958f6b..f0409e77e2bfb4463fce9f4cbbf1233589c102ea 100644 +index cf57c977d64a76d29a4f9a4811d55a17cc51e368..a2ed9d38f66004d8e7affd5d8e6277076ea04b3d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3361,6 +3361,20 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0534-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0523-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 92% rename from patches/server/0534-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0523-added-option-to-disable-pathfinding-updates-on-block.patch index f60db1c08130..4eec5bfe697b 100644 --- a/patches/server/0534-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0523-added-option-to-disable-pathfinding-updates-on-block.patch @@ -5,7 +5,7 @@ Subject: [PATCH] added option to disable pathfinding updates on block changes diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 186a4ea81212ba9a0c928de3226dd25fac1f4252..b3d5d0dc5671f3c2bb41263ef52951da5c87ed74 100644 +index 4b1ddc849efaaba6fe35e46d7a979e6c65f0dbd2..8aa3d8ea13fe7a68628e7647f4da2558873415b4 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1657,6 +1657,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0535-Inline-shift-direction-fields.patch b/patches/server/0524-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0535-Inline-shift-direction-fields.patch rename to patches/server/0524-Inline-shift-direction-fields.patch diff --git a/patches/server/0536-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0525-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 95% rename from patches/server/0536-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0525-Allow-adding-items-to-BlockDropItemEvent.patch index 5305d7daabf1..4f2a76f71189 100644 --- a/patches/server/0536-Allow-adding-items-to-BlockDropItemEvent.patch +++ b/patches/server/0525-Allow-adding-items-to-BlockDropItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow adding items to BlockDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 74d018a0184daf7535f315e65f54b5d2152ad58b..2da51dc36e21e45ecc3cbbe357947f8359e538eb 100644 +index 54b0e6e6c21c02bd6a2a702f6b6416d573f62f9c..166035d8f708b94a9563c3802418ab6200071bc6 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -450,13 +450,30 @@ public class CraftEventFactory { diff --git a/patches/server/0537-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0526-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0537-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0526-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0538-living-entity-allow-attribute-registration.patch b/patches/server/0527-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/server/0538-living-entity-allow-attribute-registration.patch rename to patches/server/0527-living-entity-allow-attribute-registration.patch diff --git a/patches/server/0539-fix-dead-slime-setSize-invincibility.patch b/patches/server/0528-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0539-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0528-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0540-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0529-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0540-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0529-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0541-Expose-Tracked-Players.patch b/patches/server/0530-Expose-Tracked-Players.patch similarity index 100% rename from patches/server/0541-Expose-Tracked-Players.patch rename to patches/server/0530-Expose-Tracked-Players.patch diff --git a/patches/server/0542-Improve-ServerGUI.patch b/patches/server/0531-Improve-ServerGUI.patch similarity index 100% rename from patches/server/0542-Improve-ServerGUI.patch rename to patches/server/0531-Improve-ServerGUI.patch diff --git a/patches/server/0543-fix-converting-txt-to-json-file.patch b/patches/server/0532-fix-converting-txt-to-json-file.patch similarity index 95% rename from patches/server/0543-fix-converting-txt-to-json-file.patch rename to patches/server/0532-fix-converting-txt-to-json-file.patch index 9c650b7e731d..019c77e87fec 100644 --- a/patches/server/0543-fix-converting-txt-to-json-file.patch +++ b/patches/server/0532-fix-converting-txt-to-json-file.patch @@ -21,7 +21,7 @@ index a20d47f54f12dfc0a5f76dd969238e34c958b618..1c9cf5e1c4ee05724ffcdbd77a19bca1 this.saveUserBanList(); this.loadIpBanList(); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 09956f69b63844d67aeab1339ae65910fc8eb8bf..c2d11d89a94218cc84790df1b5b61e50db884801 100644 +index b6f87e28625df68548a296001a0d67601513f7d1..a27e9ba8448930e45e283b8e19156bcf86b9baee 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -199,6 +199,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -48,7 +48,7 @@ index 09956f69b63844d67aeab1339ae65910fc8eb8bf..c2d11d89a94218cc84790df1b5b61e50 if (!OldUsersConverter.serverReadyAfterUserconversion(this)) { return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index b1ef7d734c053f8a26da5258826dbc50af9c1162..298c5bece0e3bd992df8027d53ca6ada5b82d507 100644 +index ed106322419be1065fd900b02f4f71d268726e38..6d31d09c4c14c7038d2698fc13de47cc56ef2964 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -176,6 +176,7 @@ public abstract class PlayerList { diff --git a/patches/server/0544-Add-worldborder-events.patch b/patches/server/0533-Add-worldborder-events.patch similarity index 97% rename from patches/server/0544-Add-worldborder-events.patch rename to patches/server/0533-Add-worldborder-events.patch index aa20cc3a084c..f39382cd6326 100644 --- a/patches/server/0544-Add-worldborder-events.patch +++ b/patches/server/0533-Add-worldborder-events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add worldborder events diff --git a/src/main/java/net/minecraft/world/level/border/WorldBorder.java b/src/main/java/net/minecraft/world/level/border/WorldBorder.java -index dd74e8a034022fe72a1652f92712182b4910f651..8e441aafff788eab9e3d6d2fc7b70183d90b9ef4 100644 +index bf5ac907507bf3b5bfcef45b566c0bc12626e2c0..350aabd20329f429248c84d73ab8b5eb145943a7 100644 --- a/src/main/java/net/minecraft/world/level/border/WorldBorder.java +++ b/src/main/java/net/minecraft/world/level/border/WorldBorder.java @@ -123,6 +123,14 @@ public class WorldBorder { diff --git a/patches/server/0545-Add-PlayerNameEntityEvent.patch b/patches/server/0534-Add-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0545-Add-PlayerNameEntityEvent.patch rename to patches/server/0534-Add-PlayerNameEntityEvent.patch diff --git a/patches/server/0546-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0535-Prevent-grindstones-from-overstacking-items.patch similarity index 100% rename from patches/server/0546-Prevent-grindstones-from-overstacking-items.patch rename to patches/server/0535-Prevent-grindstones-from-overstacking-items.patch diff --git a/patches/server/0547-Add-recipe-to-cook-events.patch b/patches/server/0536-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/server/0547-Add-recipe-to-cook-events.patch rename to patches/server/0536-Add-recipe-to-cook-events.patch diff --git a/patches/server/0548-Add-Block-isValidTool.patch b/patches/server/0537-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0548-Add-Block-isValidTool.patch rename to patches/server/0537-Add-Block-isValidTool.patch diff --git a/patches/server/0549-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0538-Allow-using-signs-inside-spawn-protection.patch similarity index 95% rename from patches/server/0549-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0538-Allow-using-signs-inside-spawn-protection.patch index 4a1cbafca42e..264b2f0c150e 100644 --- a/patches/server/0549-Allow-using-signs-inside-spawn-protection.patch +++ b/patches/server/0538-Allow-using-signs-inside-spawn-protection.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow using signs inside spawn protection diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e27395ff1b8e4546877c42f1df5ba836c11cdb6e..258855b702c6705ce78a32c20c665682ed65d3f2 100644 +index c169c44321c8bd6ea562f99f6c8a5a5f5be79425..dba0aa5d1dc63e8d9f4a429e7b7c415bea0af3d8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1752,7 +1752,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0550-Expand-world-key-API.patch b/patches/server/0539-Expand-world-key-API.patch similarity index 97% rename from patches/server/0550-Expand-world-key-API.patch rename to patches/server/0539-Expand-world-key-API.patch index c7a789fc260a..cb490b2a3bc8 100644 --- a/patches/server/0550-Expand-world-key-API.patch +++ b/patches/server/0539-Expand-world-key-API.patch @@ -20,7 +20,7 @@ index 0fb214ddd919b568da64541fd9b531c65caa5fad..9cd267f53505658d1c75187b662c4d9f // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f80846c1940d6a094c5980a451016a9214d594fb..f192bd669e48865ae3ca7c79fd3c356d96556bd8 100644 +index 4b787a548a21512f8fe44a32568181ed18a38157..cd3131c2ebac59a1a2a05fe0216214d9b301abfe 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1137,9 +1137,15 @@ public final class CraftServer implements Server { diff --git a/patches/server/0551-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0540-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0551-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0540-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0552-Item-Rarity-API.patch b/patches/server/0541-Item-Rarity-API.patch similarity index 100% rename from patches/server/0552-Item-Rarity-API.patch rename to patches/server/0541-Item-Rarity-API.patch diff --git a/patches/server/0553-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0542-Drop-carried-item-when-player-has-disconnected.patch similarity index 93% rename from patches/server/0553-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0542-Drop-carried-item-when-player-has-disconnected.patch index eeea2fbaff1c..5d0ecd0f71fb 100644 --- a/patches/server/0553-Drop-carried-item-when-player-has-disconnected.patch +++ b/patches/server/0542-Drop-carried-item-when-player-has-disconnected.patch @@ -7,7 +7,7 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro Closes #5036 diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 298c5bece0e3bd992df8027d53ca6ada5b82d507..c8cff0054c7f5eaab3143e828e463e7ad913cd92 100644 +index 6d31d09c4c14c7038d2698fc13de47cc56ef2964..be5f0e2f23673b914d259e114281fdc0b6047ab6 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -597,6 +597,14 @@ public abstract class PlayerList { diff --git a/patches/server/0554-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0543-forced-whitelist-use-configurable-kick-message.patch similarity index 87% rename from patches/server/0554-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0543-forced-whitelist-use-configurable-kick-message.patch index b4788befbcce..8798f4c76d90 100644 --- a/patches/server/0554-forced-whitelist-use-configurable-kick-message.patch +++ b/patches/server/0543-forced-whitelist-use-configurable-kick-message.patch @@ -5,10 +5,10 @@ Subject: [PATCH] forced whitelist: use configurable kick message diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b0e0c955e9b5c92d4a8e8d55149d5e8123011420..d99217292a094713287cd597c9d7c01f04b9c7c7 100644 +index e048caafe645e33764a26154b5150c5c5de5b1ad..ccb26a6ccd7b5eb493d926ba0fcff22b924280d0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2233,7 +2233,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7dad8382910b405cdd3345454721f9b72921a7f4..d64cbafda18cf6352a8d1347e4df0750df5bb0f0 100644 +index 6252f71c6b5df2a35d58c8f7cd64049b2819ddc0..cc393b070f6df598bd4523605d20900c622eac1b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2639,7 +2639,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -19,7 +19,7 @@ index 7dad8382910b405cdd3345454721f9b72921a7f4..d64cbafda18cf6352a8d1347e4df0750 } else { if (this.player.getHealth() > 0.0F) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c8cff0054c7f5eaab3143e828e463e7ad913cd92..e27904551ca7f461026e62a2225c2607975a805f 100644 +index be5f0e2f23673b914d259e114281fdc0b6047ab6..67513e8a00e2a5208628c2804dd88c5f576df993 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -781,6 +781,12 @@ public abstract class PlayerList { diff --git a/patches/server/0571-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0560-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0571-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0560-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0572-Add-Channel-initialization-listeners.patch b/patches/server/0561-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/server/0572-Add-Channel-initialization-listeners.patch rename to patches/server/0561-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0573-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0562-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0573-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0562-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0574-Add-more-WanderingTrader-API.patch b/patches/server/0563-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0574-Add-more-WanderingTrader-API.patch rename to patches/server/0563-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0575-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0564-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0575-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0564-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0576-Entity-load-save-limit-per-chunk.patch b/patches/server/0565-Entity-load-save-limit-per-chunk.patch similarity index 97% rename from patches/server/0576-Entity-load-save-limit-per-chunk.patch rename to patches/server/0565-Entity-load-save-limit-per-chunk.patch index d8ae6c858614..48d14bb036e1 100644 --- a/patches/server/0576-Entity-load-save-limit-per-chunk.patch +++ b/patches/server/0565-Entity-load-save-limit-per-chunk.patch @@ -9,7 +9,7 @@ defaults are only included for certain entites, this allows setting limits for any entity type. diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 9d16fc698b0771bcb3c95f5fb017879c37ebb39b..2fa2e5cada590c0f44a4735bcf20de51892f428b 100644 +index bd4ae65070eb4b98dae0529b5985f80093bf8185..3ddb1cc0edddcf77c1b5d6157247498cb90c57a7 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -631,9 +631,20 @@ public class EntityType implements FeatureElement, EntityTypeT diff --git a/patches/server/0577-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0566-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 96% rename from patches/server/0577-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0566-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch index fad0f8a7d920..4a803357b622 100644 --- a/patches/server/0577-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch +++ b/patches/server/0566-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Adventure message to PlayerAdvancementDoneEvent diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index f29ddc244cfa5eba9b2903d40d8509731fc18287..f655e0ae4a287886d0291cd0089bad2000249d0f 100644 +index 6e0073a54f59621d8adb4e8a70e6c89c708eabba..24e5993b281448734eb67c7a8439a349bbf9fd72 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java @@ -236,11 +236,21 @@ public class PlayerAdvancements { diff --git a/patches/server/0578-Inventory-close.patch b/patches/server/0567-Inventory-close.patch similarity index 100% rename from patches/server/0578-Inventory-close.patch rename to patches/server/0567-Inventory-close.patch diff --git a/patches/server/0579-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0568-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0579-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0568-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0580-Add-basic-Datapack-API.patch b/patches/server/0569-Add-basic-Datapack-API.patch similarity index 98% rename from patches/server/0580-Add-basic-Datapack-API.patch rename to patches/server/0569-Add-basic-Datapack-API.patch index bdb8a7c4ba4d..ae53379499c9 100644 --- a/patches/server/0580-Add-basic-Datapack-API.patch +++ b/patches/server/0569-Add-basic-Datapack-API.patch @@ -92,7 +92,7 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f192bd669e48865ae3ca7c79fd3c356d96556bd8..05868e37b03ac912ac902b105f3956f9351b1209 100644 +index cd3131c2ebac59a1a2a05fe0216214d9b301abfe..6fff086f1a6ffd02945ac30d5041b61d289e8478 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -301,6 +301,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0581-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0570-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0581-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0570-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0582-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0571-Expand-PlayerGameModeChangeEvent.patch similarity index 97% rename from patches/server/0582-Expand-PlayerGameModeChangeEvent.patch rename to patches/server/0571-Expand-PlayerGameModeChangeEvent.patch index 68f1f5ab96d8..8d6a1c2a7b43 100644 --- a/patches/server/0582-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0571-Expand-PlayerGameModeChangeEvent.patch @@ -45,7 +45,7 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..f7c9127346261d83413ca03a1cdaa849 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c9ac912c5cdd5d2aeb09154b224386fb73dfbc69..9f67542726e2b147564c4085e3b1a3cb6b6cba93 100644 +index 449bd6d823746b5d6bbcbde54eeb3105f9cf9f04..d295098c311b4a63bc1bb8a8b53e832c6ecf75cf 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1989,8 +1989,16 @@ public class ServerPlayer extends Player { @@ -94,7 +94,7 @@ index c9ac912c5cdd5d2aeb09154b224386fb73dfbc69..9f67542726e2b147564c4085e3b1a3cb } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 60c18af9253607bc51ecb9d23c23e652a9ba36e9..066e7e420b8eaa9733532a893855bcab14c22d0e 100644 +index a157ccbedb94f287c610975d6c3cfb66a3bddbe8..03b337ce5ccb1db61dc395b91b061a2aecf8fbf6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -73,21 +73,28 @@ public class ServerPlayerGameMode { @@ -131,7 +131,7 @@ index 60c18af9253607bc51ecb9d23c23e652a9ba36e9..066e7e420b8eaa9733532a893855bcab } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d64cbafda18cf6352a8d1347e4df0750df5bb0f0..dac6952492d0eaf6a83034f50dd7b6b7be5ab462 100644 +index cc393b070f6df598bd4523605d20900c622eac1b..e0e09e9d127cd54ece239c0c1e931bb8802c17a1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2648,7 +2648,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0583-ItemStack-repair-check-API.patch b/patches/server/0572-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0583-ItemStack-repair-check-API.patch rename to patches/server/0572-ItemStack-repair-check-API.patch diff --git a/patches/server/0584-More-Enchantment-API.patch b/patches/server/0573-More-Enchantment-API.patch similarity index 100% rename from patches/server/0584-More-Enchantment-API.patch rename to patches/server/0573-More-Enchantment-API.patch diff --git a/patches/server/0585-Move-range-check-for-block-placing-up.patch b/patches/server/0574-Move-range-check-for-block-placing-up.patch similarity index 92% rename from patches/server/0585-Move-range-check-for-block-placing-up.patch rename to patches/server/0574-Move-range-check-for-block-placing-up.patch index 2b62c07aaa09..c55a15074638 100644 --- a/patches/server/0585-Move-range-check-for-block-placing-up.patch +++ b/patches/server/0574-Move-range-check-for-block-placing-up.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Move range check for block placing up diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index dac6952492d0eaf6a83034f50dd7b6b7be5ab462..e68ecbc56e05b088dddaf38368e5a4b6bd6a2b51 100644 +index e0e09e9d127cd54ece239c0c1e931bb8802c17a1..2f69f4368bb0fb6d254c1f445953c8dd05d0b0aa 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1738,6 +1738,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0586-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0575-Fix-and-optimise-world-force-upgrading.patch similarity index 98% rename from patches/server/0586-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0575-Fix-and-optimise-world-force-upgrading.patch index 31350fb93e47..99e215313fed 100644 --- a/patches/server/0586-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0575-Fix-and-optimise-world-force-upgrading.patch @@ -267,10 +267,10 @@ index 1cad3585ca122a465572b16d4ecbb7231e87c7de..b0a0909fa9501dfacfbe70dc4118062d Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, dimensionOptionsRegistry, eraseCache); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4a270f4a59be4dfe7d9f6baf7388a0d8d70e1bf6..2a000635c18878377b2f434929e460e809b02cc4 100644 +index ccb26a6ccd7b5eb493d926ba0fcff22b924280d0..e789a6369c792e577e918fcb44bb59c6c5f71d49 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -586,11 +586,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop type, Level world) { + this.id = Entity.ENTITY_COUNTER.incrementAndGet(); +@@ -2844,6 +2874,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.processPortalCooldown(); diff --git a/patches/server/0603-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0592-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0603-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0592-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0604-Make-item-validations-configurable.patch b/patches/server/0593-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0604-Make-item-validations-configurable.patch rename to patches/server/0593-Make-item-validations-configurable.patch diff --git a/patches/server/0605-Line-Of-Sight-Changes.patch b/patches/server/0594-Line-Of-Sight-Changes.patch similarity index 97% rename from patches/server/0605-Line-Of-Sight-Changes.patch rename to patches/server/0594-Line-Of-Sight-Changes.patch index 4f7c11f5401a..644ecc7044c1 100644 --- a/patches/server/0605-Line-Of-Sight-Changes.patch +++ b/patches/server/0594-Line-Of-Sight-Changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Line Of Sight Changes diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1fd1d8abedeebf3f1d1e2465fa3792d404787c68..d3d2e971b36b5a240b598015edeb1166672fec89 100644 +index c7070680373145caaa2d94df15590bb308361fea..c7752c20c8e83c21cf96e0cedf9a8269775f51e5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3606,7 +3606,8 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0606-add-per-world-spawn-limits.patch b/patches/server/0595-add-per-world-spawn-limits.patch similarity index 91% rename from patches/server/0606-add-per-world-spawn-limits.patch rename to patches/server/0595-add-per-world-spawn-limits.patch index d6f7381f12c3..2be5b3262a82 100644 --- a/patches/server/0606-add-per-world-spawn-limits.patch +++ b/patches/server/0595-add-per-world-spawn-limits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add per world spawn limits diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index a2625d439fbed368a196ce71d77b8f3f1b141326..36bc006924599b8270c95e41e80dc51ad0262f61 100644 +index bce1253ce219db35bf31ec05e36dfede845bdf46..0fdc047f55473d9a208fe344b20787fdd6f23fd9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -215,6 +215,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0607-Fix-potions-splash-events.patch b/patches/server/0596-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0607-Fix-potions-splash-events.patch rename to patches/server/0596-Fix-potions-splash-events.patch diff --git a/patches/server/0608-Add-more-LimitedRegion-API.patch b/patches/server/0597-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0608-Add-more-LimitedRegion-API.patch rename to patches/server/0597-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0609-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0598-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 89% rename from patches/server/0609-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0598-Fix-PlayerDropItemEvent-using-wrong-item.patch index 66ac32f567dd..3fddefdb9919 100644 --- a/patches/server/0609-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0598-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix PlayerDropItemEvent using wrong item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9f67542726e2b147564c4085e3b1a3cb6b6cba93..f3bca38d1529a3acbd8d99237efd75c2dee774a2 100644 +index d295098c311b4a63bc1bb8a8b53e832c6ecf75cf..da43449e16ac281daf32df66cae5b23f35b160ee 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2391,7 +2391,7 @@ public class ServerPlayer extends Player { @@ -18,7 +18,7 @@ index 9f67542726e2b147564c4085e3b1a3cb6b6cba93..f3bca38d1529a3acbd8d99237efd75c2 this.awardStat(Stats.DROP); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 617ede60a9e6634ae984a63ed4f32e845e5a571b..322c8c437b4c5fa4a9db038736f24da24d45d646 100644 +index 14b96e150ea6c2068a48e1713ba98f81c8aabb54..fd28898a150a13d3e18bb46145e4b2e827b42aee 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -725,6 +725,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0610-Missing-Entity-API.patch b/patches/server/0599-Missing-Entity-API.patch similarity index 99% rename from patches/server/0610-Missing-Entity-API.patch rename to patches/server/0599-Missing-Entity-API.patch index 6f246f230682..3d09f0190710 100644 --- a/patches/server/0610-Missing-Entity-API.patch +++ b/patches/server/0599-Missing-Entity-API.patch @@ -282,7 +282,7 @@ index 14b09adeb9222600c24f3fb846ea8aee467952e6..8241dbf7591b2f56b25cdc3ce9009c71 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index d259d7b8f7380763e3976f5f20bc01f06ce6901c..2a8ed27101ff78542db120ff183ff33276fb832a 100644 +index 9637c26a3c381869f0a4dfe9189c0095387009b4..c360135b923aa8d1ed2c7caf97ede981cb605cf2 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -457,6 +457,16 @@ public class EnderMan extends Monster implements NeutralMob { diff --git a/patches/server/0611-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0600-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 92% rename from patches/server/0611-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0600-Ensure-disconnect-for-book-edit-is-called-on-main.patch index 8c8bc235d1d3..aa232f3f8abd 100644 --- a/patches/server/0611-Ensure-disconnect-for-book-edit-is-called-on-main.patch +++ b/patches/server/0600-Ensure-disconnect-for-book-edit-is-called-on-main.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 846a9595857d5e6faa0b9dbc566b52d41efaa9ed..2a24a9c95c3701ff11aadaab45c47c60fde7bcab 100644 +index cde1ae539f8808ecaf28afda20dc5ea24d006d5f..3adf67c4bd427cf666bb0b79f4ea7b94c8c5453c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1096,7 +1096,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0612-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0601-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0612-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0601-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0613-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0602-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 94% rename from patches/server/0613-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0602-Use-getChunkIfLoadedImmediately-in-places.patch index bd83e1eeff7c..89c6509a2b4b 100644 --- a/patches/server/0613-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0602-Use-getChunkIfLoadedImmediately-in-places.patch @@ -8,7 +8,7 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk load in that case). diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 41c11a6fa0d99d6c66bac35f6c9578d39f6d34ad..813acbb57271e6568d35f2cbf9a637c44603aa95 100644 +index 6409a731209b3dbb6c1ad790aff1954f449bf759..3aa1bd080064008a2f8a280947ee7741ce205b59 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -224,7 +224,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -21,7 +21,7 @@ index 41c11a6fa0d99d6c66bac35f6c9578d39f6d34ad..813acbb57271e6568d35f2cbf9a637c4 @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c253fea302d86b4b91aa814f26082a678786608a..d538dc2f15b3b1553109df99f50457ee79732e43 100644 +index 50db0a36c17791373fcae1c7b80f7353ef665f3c..80a5bd7a57ceb617752f645c1a4f046fea6e8de6 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -203,6 +203,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0614-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0603-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0614-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0603-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0615-Add-PlayerArmSwingEvent.patch b/patches/server/0604-Add-PlayerArmSwingEvent.patch similarity index 93% rename from patches/server/0615-Add-PlayerArmSwingEvent.patch rename to patches/server/0604-Add-PlayerArmSwingEvent.patch index c399b1534edc..43f3865524ae 100644 --- a/patches/server/0615-Add-PlayerArmSwingEvent.patch +++ b/patches/server/0604-Add-PlayerArmSwingEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmSwingEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2a24a9c95c3701ff11aadaab45c47c60fde7bcab..b4d3420c58fcc03c624c5d2e2f73ac911ce00f0d 100644 +index 3adf67c4bd427cf666bb0b79f4ea7b94c8c5453c..6d385f169b5daab69cd40e37ffaa38416dc91223 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2328,7 +2328,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0616-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0605-Fix-kick-event-leave-message-not-being-sent.patch similarity index 94% rename from patches/server/0616-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/server/0605-Fix-kick-event-leave-message-not-being-sent.patch index 34c5fb92d704..dcc9e9a7b3af 100644 --- a/patches/server/0616-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0605-Fix-kick-event-leave-message-not-being-sent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f3bca38d1529a3acbd8d99237efd75c2dee774a2..08f675754e7ac5574cdd4e6c3dab7a5a9890c457 100644 +index da43449e16ac281daf32df66cae5b23f35b160ee..17c11953df9308d228220e92736232376f02f248 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -273,7 +273,6 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index f3bca38d1529a3acbd8d99237efd75c2dee774a2..08f675754e7ac5574cdd4e6c3dab7a5a public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 3049377685ee4fe75f0c4b68eab39a916ac20785..f5f2d65d2e02b0d79352585d9d4ef588ab59dce7 100644 +index a65a1466dab52fca75cda16a4b22fef03b6207a0..0306771b8f90dcdd77f151c19c6c2d75c41f8feb 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -77,6 +77,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -50,7 +50,7 @@ index 3049377685ee4fe75f0c4b68eab39a916ac20785..f5f2d65d2e02b0d79352585d9d4ef588 MinecraftServer minecraftserver = this.server; Connection networkmanager = this.connection; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b4d3420c58fcc03c624c5d2e2f73ac911ce00f0d..bc3c72f66050460affcaeec272d4bbe3f49a4e73 100644 +index 6d385f169b5daab69cd40e37ffaa38416dc91223..cfe980606a87ccad1cbf9354728a8d2e57686fa4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1882,6 +1882,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -96,7 +96,7 @@ index b4d3420c58fcc03c624c5d2e2f73ac911ce00f0d..bc3c72f66050460affcaeec272d4bbe3 this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); // 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 c12ad5eabb7be2648f1a0314855664466b8665b0..c143b9eb97920945ea36c8f0f36db6086961746c 100644 +index fc26226d59bb670957587b8e221214cd1d19f844..5f7f42586949aae4a3722bd0486c68b2c8499b8f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -570,6 +570,11 @@ public abstract class PlayerList { diff --git a/patches/server/0617-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0606-Add-config-for-mobs-immune-to-default-effects.patch similarity index 97% rename from patches/server/0617-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0606-Add-config-for-mobs-immune-to-default-effects.patch index 8cd0fcdc3747..2ae8c665e870 100644 --- a/patches/server/0617-Add-config-for-mobs-immune-to-default-effects.patch +++ b/patches/server/0606-Add-config-for-mobs-immune-to-default-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config for mobs immune to default effects diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d3d2e971b36b5a240b598015edeb1166672fec89..8673e4eff6bd66b5cdf0fc6101aa9ff9c226dbfe 100644 +index c7752c20c8e83c21cf96e0cedf9a8269775f51e5..8438ca0157d8a27f76858d8f5139a5f8a699a65c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1164,7 +1164,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0618-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0607-Don-t-apply-cramming-damage-to-players.patch similarity index 94% rename from patches/server/0618-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0607-Don-t-apply-cramming-damage-to-players.patch index d969fc1f439f..f33a5fe0538e 100644 --- a/patches/server/0618-Don-t-apply-cramming-damage-to-players.patch +++ b/patches/server/0607-Don-t-apply-cramming-damage-to-players.patch @@ -11,7 +11,7 @@ It does not make a lot of sense to damage players if they get crammed, For those who really want it a config option is provided. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 08f675754e7ac5574cdd4e6c3dab7a5a9890c457..6284e567d5247b18dba06bc9525c877882fe8d88 100644 +index 17c11953df9308d228220e92736232376f02f248..2535c002c45d2d92bc779d3c9198cf3c737bd7f2 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -95,6 +95,7 @@ import net.minecraft.util.Mth; diff --git a/patches/server/0619-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0608-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0619-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0608-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0620-Add-missing-forceDrop-toggles.patch b/patches/server/0609-Add-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0620-Add-missing-forceDrop-toggles.patch rename to patches/server/0609-Add-missing-forceDrop-toggles.patch diff --git a/patches/server/0621-Stinger-API.patch b/patches/server/0610-Stinger-API.patch similarity index 100% rename from patches/server/0621-Stinger-API.patch rename to patches/server/0610-Stinger-API.patch diff --git a/patches/server/0622-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0611-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0622-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0611-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0623-Add-System.out-err-catcher.patch b/patches/server/0612-Add-System.out-err-catcher.patch similarity index 98% rename from patches/server/0623-Add-System.out-err-catcher.patch rename to patches/server/0612-Add-System.out-err-catcher.patch index a3cbc7f6c2f4..9077dcbce770 100644 --- a/patches/server/0623-Add-System.out-err-catcher.patch +++ b/patches/server/0612-Add-System.out-err-catcher.patch @@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 08d43545262e2be74566c270f3dd2c600b773616..775e40dc356406cf289807abb83cda5ca186563f 100644 +index ffc6e2a5e2b6e3f4595249d470e531cd555789af..0b780946ace3a5c644e3ad4ab89c1a6179892087 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -303,6 +303,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0624-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0613-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 98% rename from patches/server/0624-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0613-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch index f4242ad30efa..e3b686c58c2b 100644 --- a/patches/server/0624-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch +++ b/patches/server/0613-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch @@ -230,7 +230,7 @@ index 0000000000000000000000000000000000000000..34734bb969a1a74c7a4f9c17d40ebf00 + } +} diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml -index 2b247d55e39246fbef31279b14c45fc40f956bfb..675cd61221e807aadf28322b46c3daa1370241b5 100644 +index 4e2ca9162450c1f54b7ab95a63c1bad8efe81a06..32e64b3866bdd1489a90339bda2268adafbb15de 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -34,6 +34,10 @@ diff --git a/patches/server/0626-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0614-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 93% rename from patches/server/0626-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0614-Prevent-AFK-kick-while-watching-end-credits.patch index 607a60728cf9..f391ce95922a 100644 --- a/patches/server/0626-Prevent-AFK-kick-while-watching-end-credits.patch +++ b/patches/server/0614-Prevent-AFK-kick-while-watching-end-credits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent AFK kick while watching end credits diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bc3c72f66050460affcaeec272d4bbe3f49a4e73..0e92cf3206b6b694f6dca5c244ec30826ba4db9e 100644 +index cfe980606a87ccad1cbf9354728a8d2e57686fa4..fa6783305aae385723d6bdb83166e147b8ebcfe9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -390,7 +390,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0627-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0615-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0627-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0615-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0628-Add-PlayerSetSpawnEvent.patch b/patches/server/0616-Add-PlayerSetSpawnEvent.patch similarity index 98% rename from patches/server/0628-Add-PlayerSetSpawnEvent.patch rename to patches/server/0616-Add-PlayerSetSpawnEvent.patch index 2dfc85f43b34..ac149cd2b92b 100644 --- a/patches/server/0628-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0616-Add-PlayerSetSpawnEvent.patch @@ -49,7 +49,7 @@ index a2d0699e8427b2262a2396495111125eccafbb66..15db9368227dbc29d07d74e85bd126b3 } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6284e567d5247b18dba06bc9525c877882fe8d88..1951cecbd2ffe70077f0894cab4697ecbc2369c3 100644 +index 2535c002c45d2d92bc779d3c9198cf3c737bd7f2..165d75cdc40af7e35d41fed242e11eedfc385c3f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1356,7 +1356,7 @@ public class ServerPlayer extends Player { @@ -154,7 +154,7 @@ index 6284e567d5247b18dba06bc9525c877882fe8d88..1951cecbd2ffe70077f0894cab4697ec public SectionPos getLastSectionPos() { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c143b9eb97920945ea36c8f0f36db6086961746c..6e56b55329e31682d3052949110762e8f9fc96da 100644 +index 5f7f42586949aae4a3722bd0486c68b2c8499b8f..89c91072a6b50b2b917d8a21510d9b5daa5d6005 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -872,7 +872,7 @@ public abstract class PlayerList { diff --git a/patches/server/0629-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0617-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0629-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0617-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0630-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0618-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0630-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0618-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0631-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0619-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0631-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0619-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0632-Add-EntityDamageItemEvent.patch b/patches/server/0620-Add-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0632-Add-EntityDamageItemEvent.patch rename to patches/server/0620-Add-EntityDamageItemEvent.patch diff --git a/patches/server/0633-Optimize-indirect-passenger-iteration.patch b/patches/server/0621-Optimize-indirect-passenger-iteration.patch similarity index 91% rename from patches/server/0633-Optimize-indirect-passenger-iteration.patch rename to patches/server/0621-Optimize-indirect-passenger-iteration.patch index 2b01ec35e7f7..d554a6baa647 100644 --- a/patches/server/0633-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0621-Optimize-indirect-passenger-iteration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimize indirect passenger iteration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 421da47d0de7d9a7ac2d8134487b642f7f59f98c..2fe7c03eea6cff2b44fb887711168871b5f487bd 100644 +index 4a0c8976df5164423daee48f2d9494e8eb8080a8..cc72445c662107949d18ceec8285b7cf6871cc22 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3923,20 +3923,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3889,20 +3889,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } private Stream getIndirectPassengersStream() { @@ -43,7 +43,7 @@ index 421da47d0de7d9a7ac2d8134487b642f7f59f98c..2fe7c03eea6cff2b44fb887711168871 return () -> { return this.getIndirectPassengersStream().iterator(); }; -@@ -3959,6 +3973,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3925,6 +3939,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper end - rewrite chunk system public boolean hasExactlyOnePlayerPassenger() { diff --git a/patches/server/0634-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0622-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0634-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0622-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0635-Clear-bucket-NBT-after-dispense.patch b/patches/server/0623-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0635-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0623-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0636-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0624-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0636-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0624-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0637-Add-BlockBreakBlockEvent.patch b/patches/server/0625-Add-BlockBreakBlockEvent.patch similarity index 94% rename from patches/server/0637-Add-BlockBreakBlockEvent.patch rename to patches/server/0625-Add-BlockBreakBlockEvent.patch index 958399ea03d1..1fe7b5cc97e3 100644 --- a/patches/server/0637-Add-BlockBreakBlockEvent.patch +++ b/patches/server/0625-Add-BlockBreakBlockEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add BlockBreakBlockEvent diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 5e5199b50847958f7abc6d8e42cfb6806df8421f..af62781cc96354c87aa63d4f03f9e25b81959081 100644 +index 89a62fbeeb78c864938a1cea84178478c6dc1b34..9120b4a70dbf84f19480b952658414e16d2c23c1 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -326,6 +326,23 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -313,6 +313,23 @@ public class Block extends BlockBehaviour implements ItemLike { } } @@ -33,10 +33,10 @@ index 5e5199b50847958f7abc6d8e42cfb6806df8421f..af62781cc96354c87aa63d4f03f9e25b public static void dropResources(BlockState state, Level world, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity entity, ItemStack tool) { if (world instanceof ServerLevel) { diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -index c34b34a6be594c502d1cb59703ace8ad8dd96915..4342bc4535ea812fef3fab56917e5de15947c42d 100644 +index 3ae61e7b50bfc440c597f88843f92903f8a66801..0dbdcd443fe8a299119ea5ba3acb1a0412856184 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -@@ -415,7 +415,7 @@ public class PistonBaseBlock extends DirectionalBlock { +@@ -402,7 +402,7 @@ public class PistonBaseBlock extends DirectionalBlock { iblockdata1 = world.getBlockState(blockposition3); BlockEntity tileentity = iblockdata1.hasBlockEntity() ? world.getBlockEntity(blockposition3) : null; diff --git a/patches/server/0638-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0626-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0638-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0626-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0639-More-CommandBlock-API.patch b/patches/server/0627-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0639-More-CommandBlock-API.patch rename to patches/server/0627-More-CommandBlock-API.patch diff --git a/patches/server/0640-Add-missing-team-sidebar-display-slots.patch b/patches/server/0628-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0640-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0628-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0641-Add-back-EntityPortalExitEvent.patch b/patches/server/0629-Add-back-EntityPortalExitEvent.patch similarity index 93% rename from patches/server/0641-Add-back-EntityPortalExitEvent.patch rename to patches/server/0629-Add-back-EntityPortalExitEvent.patch index 5e4b6f65c970..237027a30664 100644 --- a/patches/server/0641-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0629-Add-back-EntityPortalExitEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add back EntityPortalExitEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2fe7c03eea6cff2b44fb887711168871b5f487bd..ef5782537ac65ebe113046c4e292a27b1e24510a 100644 +index cc72445c662107949d18ceec8285b7cf6871cc22..5398bcce745c977aad083777e18c72fa93245107 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3372,6 +3372,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3338,6 +3338,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start worldserver = shapedetectorshape.world; @@ -37,7 +37,7 @@ index 2fe7c03eea6cff2b44fb887711168871b5f487bd..ef5782537ac65ebe113046c4e292a27b if (worldserver == this.level) { // SPIGOT-6782: Just move the entity if a plugin changed the world to the one the entity is already in this.moveTo(shapedetectorshape.pos.x, shapedetectorshape.pos.y, shapedetectorshape.pos.z, shapedetectorshape.yRot, shapedetectorshape.xRot); -@@ -3391,8 +3413,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3357,8 +3379,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (entity != null) { entity.restoreFrom(this); diff --git a/patches/server/0642-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0630-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 94% rename from patches/server/0642-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0630-Add-methods-to-find-targets-for-lightning-strikes.patch index 74272e17b014..ca0a467760b2 100644 --- a/patches/server/0642-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0630-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Add methods to find targets for lightning strikes public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 813acbb57271e6568d35f2cbf9a637c44603aa95..290c9e34e945ce316908fa7e0dee0bb51bf3ef18 100644 +index 3aa1bd080064008a2f8a280947ee7741ce205b59..0f245c374695c6652506417e38c0a0ea58d379e6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -993,6 +993,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -31,7 +31,7 @@ index 813acbb57271e6568d35f2cbf9a637c44603aa95..290c9e34e945ce316908fa7e0dee0bb5 blockposition1 = blockposition1.above(2); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 36bc006924599b8270c95e41e80dc51ad0262f61..e3f790c50881f5b0d47ff1b68912d5e85c9b91f9 100644 +index 0fdc047f55473d9a208fe344b20787fdd6f23fd9..d1b77ffe565a112556c7a04057c82b827e8ea7aa 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -701,6 +701,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0643-Get-entity-default-attributes.patch b/patches/server/0631-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0643-Get-entity-default-attributes.patch rename to patches/server/0631-Get-entity-default-attributes.patch diff --git a/patches/server/0644-Left-handed-API.patch b/patches/server/0632-Left-handed-API.patch similarity index 100% rename from patches/server/0644-Left-handed-API.patch rename to patches/server/0632-Left-handed-API.patch diff --git a/patches/server/0645-Add-more-advancement-API.patch b/patches/server/0633-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0645-Add-more-advancement-API.patch rename to patches/server/0633-Add-more-advancement-API.patch diff --git a/patches/server/0646-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0634-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0646-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0634-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0647-Add-critical-damage-API.patch b/patches/server/0635-Add-critical-damage-API.patch similarity index 98% rename from patches/server/0647-Add-critical-damage-API.patch rename to patches/server/0635-Add-critical-damage-API.patch index f4f5ef8bce2d..2c744adb8e6e 100644 --- a/patches/server/0647-Add-critical-damage-API.patch +++ b/patches/server/0635-Add-critical-damage-API.patch @@ -28,7 +28,7 @@ index df8c88bfa749e02f633350446101dcce05db7ac1..ed1277fad60992344b94f8a939febaca + // Paper end - add critical damage API } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 04b698ab61ab8cd7e6ee7159294e473e1608f2fd..85b616bf136535bac40693545cf68a768f4e343d 100644 +index fd28898a150a13d3e18bb46145e4b2e827b42aee..e248a519db685bc744a884f56ca1c13fb38aaebc 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1263,7 +1263,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0648-Fix-issues-with-mob-conversion.patch b/patches/server/0636-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0648-Fix-issues-with-mob-conversion.patch rename to patches/server/0636-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0649-Add-isCollidable-methods-to-various-places.patch b/patches/server/0637-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0649-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0637-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0650-Goat-ram-API.patch b/patches/server/0638-Goat-ram-API.patch similarity index 100% rename from patches/server/0650-Goat-ram-API.patch rename to patches/server/0638-Goat-ram-API.patch diff --git a/patches/server/0651-Add-API-for-resetting-a-single-score.patch b/patches/server/0639-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0651-Add-API-for-resetting-a-single-score.patch rename to patches/server/0639-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0652-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0640-Add-Raw-Byte-Entity-Serialization.patch similarity index 96% rename from patches/server/0652-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0640-Add-Raw-Byte-Entity-Serialization.patch index 3bf88af036e6..b5e0cc8f286b 100644 --- a/patches/server/0652-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0640-Add-Raw-Byte-Entity-Serialization.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Add Raw Byte Entity Serialization public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ef5782537ac65ebe113046c4e292a27b1e24510a..66df50658958c7ad799fbe9d2cdb676a90d8bb4e 100644 +index 5398bcce745c977aad083777e18c72fa93245107..4335ba4821017a0f097d1664dbc8ef7ed957d807 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2158,6 +2158,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2124,6 +2124,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } diff --git a/patches/server/0653-Vanilla-command-permission-fixes.patch b/patches/server/0641-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0653-Vanilla-command-permission-fixes.patch rename to patches/server/0641-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0654-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0642-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 93% rename from patches/server/0654-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0642-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index 3868e7c91699..72c038388e4d 100644 --- a/patches/server/0654-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0642-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/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 290c9e34e945ce316908fa7e0dee0bb51bf3ef18..705c427097477cad2d75f0f1d7ee06f3311e759b 100644 +index 0f245c374695c6652506417e38c0a0ea58d379e6..109143fca98c6952ca6129f261a9ff8b43f00e52 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1558,9 +1558,13 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -28,7 +28,7 @@ index 290c9e34e945ce316908fa7e0dee0bb51bf3ef18..705c427097477cad2d75f0f1d7ee06f3 } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1951cecbd2ffe70077f0894cab4697ecbc2369c3..8d657cdb516b6b439b29100c48cccd5b27178fe9 100644 +index 165d75cdc40af7e35d41fed242e11eedfc385c3f..9cd64d14d4b6df92bb30d0ad610f8af85791962a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1630,6 +1630,18 @@ public class ServerPlayer extends Player { @@ -51,7 +51,7 @@ index 1951cecbd2ffe70077f0894cab4697ecbc2369c3..8d657cdb516b6b439b29100c48cccd5b @Override public void doCloseContainer() { diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 30b603284e5fbc48ba7bc3cc6a69b8a4b94851a1..80caada014bae0571a5aa6aa67d9bb87f89db17f 100644 +index e248a519db685bc744a884f56ca1c13fb38aaebc..e33278611e4f52ff01cf628c570bd3378ff5c071 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -508,6 +508,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0655-Fix-GameProfileCache-concurrency.patch b/patches/server/0643-Fix-GameProfileCache-concurrency.patch similarity index 98% rename from patches/server/0655-Fix-GameProfileCache-concurrency.patch rename to patches/server/0643-Fix-GameProfileCache-concurrency.patch index bd43b7aa1847..dd06a021e423 100644 --- a/patches/server/0655-Fix-GameProfileCache-concurrency.patch +++ b/patches/server/0643-Fix-GameProfileCache-concurrency.patch @@ -7,7 +7,7 @@ Separate lookup and state access locks prevent lookups from stalling simple state access/write calls diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 85172de608f04abca1be4591749564ccc0e8d600..572263b112762e69bd61fedf7c0fdd810164e6dd 100644 +index 641cbe71064e9574e16e36f8107e1a08db25a24d..6fe9065c391804818b19fad2cf68d31aa8f1ae82 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -60,6 +60,11 @@ public class GameProfileCache { diff --git a/patches/server/0656-Improve-and-expand-AsyncCatcher.patch b/patches/server/0644-Improve-and-expand-AsyncCatcher.patch similarity index 97% rename from patches/server/0656-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0644-Improve-and-expand-AsyncCatcher.patch index 54bb833e5e90..bc8d25cf11fa 100644 --- a/patches/server/0656-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0644-Improve-and-expand-AsyncCatcher.patch @@ -17,7 +17,7 @@ Async catch modifications to critical entity state Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0e92cf3206b6b694f6dca5c244ec30826ba4db9e..4a6a8de70c65ecae0a53df69881326b9b953b9e8 100644 +index fa6783305aae385723d6bdb83166e147b8ebcfe9..27bcfe893db83bb369186ccf1d48f28e9d2cae82 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1570,6 +1570,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -29,7 +29,7 @@ index 0e92cf3206b6b694f6dca5c244ec30826ba4db9e..4a6a8de70c65ecae0a53df69881326b9 if (player.isRemoved()) { LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName()); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 36ffb7f61e2e29a67c069336f251172130dda207..dfc62f5cfad3e0e0f5f25c614055426bbfcd5327 100644 +index 8438ca0157d8a27f76858d8f5139a5f8a699a65c..bcb842a40ab97b4920e4e32cb3e6c8e1ff3081bd 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1118,7 +1118,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -166,7 +166,7 @@ index bbbf6dd8e566ecdca8794e3b03765fe7e426a2bd..66ab901956ca394c251c420338643d39 PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason}); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index e3f790c50881f5b0d47ff1b68912d5e85c9b91f9..00b7ce38044ac08133d06472efc6eb92b56efad2 100644 +index d1b77ffe565a112556c7a04057c82b827e8ea7aa..989abde6b753a16b389c1145b3e6b337eb73c715 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1803,6 +1803,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0657-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0645-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 98% rename from patches/server/0657-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0645-Add-paper-mobcaps-and-paper-playermobcaps.patch index 481332ab262c..2ed183d6228f 100644 --- a/patches/server/0657-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0645-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -257,7 +257,7 @@ index 0000000000000000000000000000000000000000..d3b39d88a72ca25057fd8574d32f28db + } +} diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index db22e35d19597488a08ba3cd710ced7da77f8b5e..a9b452be0454082f7d62f19fbac574113ed2db64 100644 +index b27e0f31d0b3f5c57157a27f1f1db0f847d42a0c..5a4db70543ab446630c1cf0252496b57edc4252a 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -190,6 +190,16 @@ public final class NaturalSpawner { @@ -278,7 +278,7 @@ index db22e35d19597488a08ba3cd710ced7da77f8b5e..a9b452be0454082f7d62f19fbac57411 // Paper start - Optional per player mob spawns spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 775e40dc356406cf289807abb83cda5ca186563f..b603541d56c7cee7aff8d3448d18c76cd72b63cb 100644 +index 0b780946ace3a5c644e3ad4ab89c1a6179892087..b9e6d28d8eb982a404981ac4df71238bf30d0989 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2279,6 +2279,11 @@ public final class CraftServer implements Server { @@ -294,7 +294,7 @@ index 775e40dc356406cf289807abb83cda5ca186563f..b603541d56c7cee7aff8d3448d18c76c } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 00b7ce38044ac08133d06472efc6eb92b56efad2..3e25f22ffd656cded58634049d48f19d97694496 100644 +index 989abde6b753a16b389c1145b3e6b337eb73c715..1977368c44212eb290a1b141216bb3a880b3742e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1761,9 +1761,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0658-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0646-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0658-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0646-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0661-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0647-Manually-inline-methods-in-BlockPosition.patch similarity index 92% rename from patches/server/0661-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0647-Manually-inline-methods-in-BlockPosition.patch index e07cb082f4c4..5771a5a3077a 100644 --- a/patches/server/0661-Manually-inline-methods-in-BlockPosition.patch +++ b/patches/server/0647-Manually-inline-methods-in-BlockPosition.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Manually inline methods in BlockPosition diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 50ba9e57d60df7308f7445540b3f412a0edf6065..e17fa30966dea2836fb791becd032fc7d5cc2611 100644 +index 3b3d81886d50ee6510ff366e11817a578c645089..541cef99113af865b995af2cfb7a1e4724dd8878 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java -@@ -515,9 +515,9 @@ public class BlockPos extends Vec3i { +@@ -516,9 +516,9 @@ public class BlockPos extends Vec3i { } public BlockPos.MutableBlockPos set(int x, int y, int z) { @@ -21,7 +21,7 @@ index 50ba9e57d60df7308f7445540b3f412a0edf6065..e17fa30966dea2836fb791becd032fc7 return this; } -@@ -580,19 +580,19 @@ public class BlockPos extends Vec3i { +@@ -581,19 +581,19 @@ public class BlockPos extends Vec3i { @Override public BlockPos.MutableBlockPos setX(int i) { diff --git a/patches/server/0662-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0648-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0662-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0648-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0663-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0649-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 94% rename from patches/server/0663-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0649-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index 8eed2d279591..b550d336f0a2 100644 --- a/patches/server/0663-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0649-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -10,7 +10,7 @@ chunks did get inlined, but the standard CPS.getChunkAt method was not inlined. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index d538dc2f15b3b1553109df99f50457ee79732e43..d0470e78b55d5973d9adbf4dd1496ccad4035243 100644 +index 80a5bd7a57ceb617752f645c1a4f046fea6e8de6..a9f963ba9306b840a3d97c9a39fc81b09340065f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -457,6 +457,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0664-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0650-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0664-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0650-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0665-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0651-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 100% rename from patches/server/0665-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/server/0651-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch diff --git a/patches/server/0666-Time-scoreboard-search.patch b/patches/server/0652-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0666-Time-scoreboard-search.patch rename to patches/server/0652-Time-scoreboard-search.patch diff --git a/patches/server/0667-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0653-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/0667-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/0653-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/0668-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0654-Oprimise-map-impl-for-tracked-players.patch similarity index 87% rename from patches/server/0668-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0654-Oprimise-map-impl-for-tracked-players.patch index a3103e4ff01f..c1df820c6a00 100644 --- a/patches/server/0668-Oprimise-map-impl-for-tracked-players.patch +++ b/patches/server/0654-Oprimise-map-impl-for-tracked-players.patch @@ -7,10 +7,10 @@ Reference2BooleanOpenHashMap is going to have better lookups than HashMap. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 03eb13021c3aa6d7b7254660ebc40908460a4cb6..dd16f13ca44cda3051a38085f6de117a475ce797 100644 +index 9ddad716d641d649e09c094795240bd2e8c926b9..fea9355a25ab42f81504f90be7b3448044fa76dd 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1297,7 +1297,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1199,7 +1199,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider final Entity entity; private final int range; SectionPos lastSectionPos; diff --git a/patches/server/0669-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0655-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0669-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0655-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0670-Distance-manager-tick-timings.patch b/patches/server/0656-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0670-Distance-manager-tick-timings.patch rename to patches/server/0656-Distance-manager-tick-timings.patch diff --git a/patches/server/0671-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0657-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 100% rename from patches/server/0671-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0657-Fix-merchant-inventory-not-closing-on-entity-removal.patch diff --git a/patches/server/0672-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0658-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0672-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0658-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0673-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0659-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 100% rename from patches/server/0673-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0659-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/server/0674-Add-packet-limiter-config.patch b/patches/server/0660-Add-packet-limiter-config.patch similarity index 100% rename from patches/server/0674-Add-packet-limiter-config.patch rename to patches/server/0660-Add-packet-limiter-config.patch diff --git a/patches/server/0675-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0661-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0675-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0661-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0676-Ensure-valid-vehicle-status.patch b/patches/server/0662-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/server/0676-Ensure-valid-vehicle-status.patch rename to patches/server/0662-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0677-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0663-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0677-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0663-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0678-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0664-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0678-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0664-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0679-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0665-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0679-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0665-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0680-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0666-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0680-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0666-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0681-Preserve-overstacked-loot.patch b/patches/server/0667-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0681-Preserve-overstacked-loot.patch rename to patches/server/0667-Preserve-overstacked-loot.patch diff --git a/patches/server/0682-Update-head-rotation-in-missing-places.patch b/patches/server/0668-Update-head-rotation-in-missing-places.patch similarity index 84% rename from patches/server/0682-Update-head-rotation-in-missing-places.patch rename to patches/server/0668-Update-head-rotation-in-missing-places.patch index a55311ded37f..580638dc445a 100644 --- a/patches/server/0682-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0668-Update-head-rotation-in-missing-places.patch @@ -8,10 +8,10 @@ This is because bukkit uses a separate head rotation field for yaw. This issue only applies to players. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 51791692213866adaff2eea48f14f818aaaa276c..b90caa5e25837bfb866bbac884468bd730b1f6d5 100644 +index 4335ba4821017a0f097d1664dbc8ef7ed957d807..4fed53d9b23da65bbf2a0243a64403d4472e8407 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1875,6 +1875,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1841,6 +1841,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setXRot(Mth.clamp(pitch, -90.0F, 90.0F) % 360.0F); this.yRotO = this.getYRot(); this.xRotO = this.getXRot(); @@ -19,7 +19,7 @@ index 51791692213866adaff2eea48f14f818aaaa276c..b90caa5e25837bfb866bbac884468bd7 } public void absMoveTo(double x, double y, double z) { -@@ -1913,6 +1914,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1879,6 +1880,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setXRot(pitch); this.setOldPosAndRot(); this.reapplyPosition(); diff --git a/patches/server/0683-prevent-unintended-light-block-manipulation.patch b/patches/server/0669-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0683-prevent-unintended-light-block-manipulation.patch rename to patches/server/0669-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0684-Fix-CraftCriteria-defaults-map.patch b/patches/server/0670-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0684-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0670-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0685-Fix-upstreams-block-state-factories.patch b/patches/server/0671-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0685-Fix-upstreams-block-state-factories.patch rename to patches/server/0671-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0686-Configurable-feature-seeds.patch b/patches/server/0672-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0686-Configurable-feature-seeds.patch rename to patches/server/0672-Configurable-feature-seeds.patch diff --git a/patches/server/0687-Add-root-admin-user-detection.patch b/patches/server/0673-Add-root-admin-user-detection.patch similarity index 97% rename from patches/server/0687-Add-root-admin-user-detection.patch rename to patches/server/0673-Add-root-admin-user-detection.patch index 61ae81963dd5..e00d1ab16a16 100644 --- a/patches/server/0687-Add-root-admin-user-detection.patch +++ b/patches/server/0673-Add-root-admin-user-detection.patch @@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..6bd0afddbcc461149dfe9a5c7a86fff6 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 01535fc66fbf5fb99ee5705eb6db9b6552ba79b9..bb3acbe0ad049703245c51a92539376811365eb2 100644 +index 70fd0256a58f66122629572a72f90fb22e30bddc..3cc0aa9fa1ba11d85ce07013de86ad6f89c52f67 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -179,6 +179,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0688-Always-allow-item-changing-in-Fireball.patch b/patches/server/0674-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0688-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0674-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0689-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0675-don-t-attempt-to-teleport-dead-entities.patch similarity index 85% rename from patches/server/0689-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0675-don-t-attempt-to-teleport-dead-entities.patch index 6410a0cf6c44..49a5fc12838f 100644 --- a/patches/server/0689-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0675-don-t-attempt-to-teleport-dead-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b90caa5e25837bfb866bbac884468bd730b1f6d5..6c2c9c2e0599fbe03f6a1622c64e071f92b66f34 100644 +index 4fed53d9b23da65bbf2a0243a64403d4472e8407..e0e57b91abde69f37ce7e5c0dd8e1f9efc67069f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -793,7 +793,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -759,7 +759,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit start public void postTick() { // No clean way to break out of ticking once the entity has been copied to a new world, so instead we move the portalling later in the tick cycle diff --git a/patches/server/0690-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0676-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 91% rename from patches/server/0690-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0676-Prevent-excessive-velocity-through-repeated-crits.patch index 7bef82bf1853..d73be1c8a324 100644 --- a/patches/server/0690-Prevent-excessive-velocity-through-repeated-crits.patch +++ b/patches/server/0676-Prevent-excessive-velocity-through-repeated-crits.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 09425940b041755fd640a94362fffcd69636bcf1..9bd611292cf6e686c9e737d332bb0ae6d2fbaa98 100644 +index bcb842a40ab97b4920e4e32cb3e6c8e1ff3081bd..d6159b34c366d47a4eefd007032687a8d2557978 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2677,13 +2677,26 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2676,13 +2676,26 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.hasEffect(MobEffects.JUMP) ? 0.1F * ((float) this.getEffect(MobEffects.JUMP).getAmplifier() + 1.0F) : 0.0F; } diff --git a/patches/server/0691-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0677-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 90% rename from patches/server/0691-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0677-Remove-client-side-code-using-deprecated-for-removal.patch index c5c2fdc4f3dc..2ed18ebaebd0 100644 --- a/patches/server/0691-Remove-client-side-code-using-deprecated-for-removal.patch +++ b/patches/server/0677-Remove-client-side-code-using-deprecated-for-removal.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Remove client-side code using deprecated for removal Fixes warnings on build diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index eb80741b313daab36dcfeb1079eb0fbb19614904..b40864e41e1506884fdefefbf3cf4833a8f706c3 100644 +index 765e4bc00a0526aab6e263dae7233f63f7f31498..edf937591abf62416bd692e40b7b7a6badbe877d 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java -@@ -952,17 +952,7 @@ public class Util { +@@ -951,17 +951,7 @@ public class Util { } public void openUrl(URL url) { diff --git a/patches/server/0692-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0678-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0692-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0678-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0693-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0679-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 95% rename from patches/server/0693-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0679-Prevent-sending-oversized-item-data-in-equipment-and.patch index 93eb21653236..0e7b3d401779 100644 --- a/patches/server/0693-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0679-Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -34,10 +34,10 @@ index e0802f1cb73a80b08482832c2b269ac8485d5c1a..945a0317e9e49a159a1f42882a0a267a } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9bd611292cf6e686c9e737d332bb0ae6d2fbaa98..afed1b1287668250974bea61a7bc1b6720d19701 100644 +index d6159b34c366d47a4eefd007032687a8d2557978..140cf1fd4a9850e28c7fa0f0abef6122564474dc 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3188,7 +3188,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3187,7 +3187,10 @@ public abstract class LivingEntity extends Entity implements Attackable { equipmentChanges.forEach((enumitemslot, itemstack) -> { ItemStack itemstack1 = itemstack.copy(); @@ -49,7 +49,7 @@ index 9bd611292cf6e686c9e737d332bb0ae6d2fbaa98..afed1b1287668250974bea61a7bc1b67 switch (enumitemslot.getType()) { case HAND: this.setLastHandItem(enumitemslot, itemstack1); -@@ -3201,6 +3204,34 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3200,6 +3203,34 @@ public abstract class LivingEntity extends Entity implements Attackable { ((ServerLevel) this.level()).getChunkSource().broadcast(this, new ClientboundSetEquipmentPacket(this.getId(), list)); } diff --git a/patches/server/0694-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0680-Hide-unnecessary-itemmeta-from-clients.patch similarity index 97% rename from patches/server/0694-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0680-Hide-unnecessary-itemmeta-from-clients.patch index b59fc0acc1bd..e853de6413e7 100644 --- a/patches/server/0694-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0680-Hide-unnecessary-itemmeta-from-clients.patch @@ -33,10 +33,10 @@ index 0280c215f4e502cd0471523b040d8b54c50f7ab8..5aa9f337e1e251485310436f87786b02 } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index afed1b1287668250974bea61a7bc1b6720d19701..fc965b9d51cc0c8fd5c0ea6440e4eae3eb50ed73 100644 +index 140cf1fd4a9850e28c7fa0f0abef6122564474dc..e0f70157655ab26f5c7330f305c3234f64f677d1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3190,7 +3190,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3189,7 +3189,7 @@ public abstract class LivingEntity extends Entity implements Attackable { // Paper start - prevent oversized data ItemStack toSend = sanitizeItemStack(itemstack1, true); @@ -45,7 +45,7 @@ index afed1b1287668250974bea61a7bc1b6720d19701..fc965b9d51cc0c8fd5c0ea6440e4eae3 // Paper end - prevent oversized data switch (enumitemslot.getType()) { case HAND: -@@ -3204,6 +3204,77 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3203,6 +3203,77 @@ public abstract class LivingEntity extends Entity implements Attackable { ((ServerLevel) this.level()).getChunkSource().broadcast(this, new ClientboundSetEquipmentPacket(this.getId(), list)); } diff --git a/patches/server/0695-Fix-Spigot-growth-modifiers.patch b/patches/server/0681-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0695-Fix-Spigot-growth-modifiers.patch rename to patches/server/0681-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0696-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0682-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0696-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0682-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0697-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0683-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0697-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0683-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0698-Optimize-HashMapPalette.patch b/patches/server/0684-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0698-Optimize-HashMapPalette.patch rename to patches/server/0684-Optimize-HashMapPalette.patch diff --git a/patches/server/0699-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0685-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/server/0699-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0685-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/server/0700-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0686-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0700-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0686-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0701-Add-more-Campfire-API.patch b/patches/server/0687-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0701-Add-more-Campfire-API.patch rename to patches/server/0687-Add-more-Campfire-API.patch diff --git a/patches/server/0702-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0688-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0702-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0688-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0703-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0689-Forward-CraftEntity-in-teleport-command.patch similarity index 89% rename from patches/server/0703-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0689-Forward-CraftEntity-in-teleport-command.patch index 68f60189303a..7bbf951b76f8 100644 --- a/patches/server/0703-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0689-Forward-CraftEntity-in-teleport-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6c2c9c2e0599fbe03f6a1622c64e071f92b66f34..3e8fe380f676fc93538a75650aa23e9034409614 100644 +index e0e57b91abde69f37ce7e5c0dd8e1f9efc67069f..fc3963247a1751b2576aaf476529d2ffe2bdf72e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3344,6 +3344,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3310,6 +3310,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void restoreFrom(Entity original) { @@ -22,7 +22,7 @@ index 6c2c9c2e0599fbe03f6a1622c64e071f92b66f34..3e8fe380f676fc93538a75650aa23e90 CompoundTag nbttagcompound = original.saveWithoutId(new CompoundTag()); nbttagcompound.remove("Dimension"); -@@ -3434,10 +3441,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3400,10 +3407,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } // CraftBukkit end diff --git a/patches/server/0704-Improve-scoreboard-entries.patch b/patches/server/0690-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0704-Improve-scoreboard-entries.patch rename to patches/server/0690-Improve-scoreboard-entries.patch diff --git a/patches/server/0705-Entity-powdered-snow-API.patch b/patches/server/0691-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0705-Entity-powdered-snow-API.patch rename to patches/server/0691-Entity-powdered-snow-API.patch diff --git a/patches/server/0706-Add-API-for-item-entity-health.patch b/patches/server/0692-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0706-Add-API-for-item-entity-health.patch rename to patches/server/0692-Add-API-for-item-entity-health.patch diff --git a/patches/server/0707-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0693-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0707-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0693-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0708-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0694-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 93% rename from patches/server/0708-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0694-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch index 1a1afc823fe9..00fea74b719a 100644 --- a/patches/server/0708-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch +++ b/patches/server/0694-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch @@ -27,7 +27,7 @@ Co-authored-by: Zach Brown Co-authored-by: Madeline Miller diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -index 4342bc4535ea812fef3fab56917e5de15947c42d..be74adc86f0ca467f3b59e7b57fd47a8f381d86e 100644 +index 0dbdcd443fe8a299119ea5ba3acb1a0412856184..3dfe79684f662ac7cae4583bfe03a633438b4df7 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java @@ -159,15 +159,15 @@ public class PistonBaseBlock extends DirectionalBlock { @@ -55,7 +55,7 @@ index 4342bc4535ea812fef3fab56917e5de15947c42d..be74adc86f0ca467f3b59e7b57fd47a8 // PAIL: checkME - what happened to setTypeAndData? // CraftBukkit end world.blockEvent(pos, this, b0, enumdirection.get3DDataValue()); -@@ -250,6 +250,13 @@ public class PistonBaseBlock extends DirectionalBlock { +@@ -244,6 +244,13 @@ public class PistonBaseBlock extends DirectionalBlock { BlockState iblockdata2 = (BlockState) ((BlockState) Blocks.MOVING_PISTON.defaultBlockState().setValue(MovingPistonBlock.FACING, enumdirection)).setValue(MovingPistonBlock.TYPE, this.isSticky ? PistonType.STICKY : PistonType.DEFAULT); @@ -67,9 +67,9 @@ index 4342bc4535ea812fef3fab56917e5de15947c42d..be74adc86f0ca467f3b59e7b57fd47a8 + } + // Paper end - Fix sticky pistons and BlockPistonRetractEvent world.setBlock(pos, iblockdata2, 20); - world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); // Paper - Protect Bedrock and End Portal/Frames from being destroyed; diff on change + world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); world.blockUpdated(pos, iblockdata2.getBlock()); -@@ -276,6 +283,13 @@ public class PistonBaseBlock extends DirectionalBlock { +@@ -270,6 +277,13 @@ public class PistonBaseBlock extends DirectionalBlock { if (type == 1 && !iblockdata3.isAir() && PistonBaseBlock.isPushable(iblockdata3, world, blockposition1, enumdirection.getOpposite(), false, enumdirection) && (iblockdata3.getPistonPushReaction() == PushReaction.NORMAL || iblockdata3.is(Blocks.PISTON) || iblockdata3.is(Blocks.STICKY_PISTON))) { this.moveBlocks(world, pos, enumdirection, false); } else { diff --git a/patches/server/0709-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0695-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0709-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0695-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0710-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0696-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0710-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0696-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0711-Fix-bees-aging-inside-hives.patch b/patches/server/0697-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0711-Fix-bees-aging-inside-hives.patch rename to patches/server/0697-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0712-Bucketable-API.patch b/patches/server/0698-Bucketable-API.patch similarity index 100% rename from patches/server/0712-Bucketable-API.patch rename to patches/server/0698-Bucketable-API.patch diff --git a/patches/server/0713-Validate-usernames.patch b/patches/server/0699-Validate-usernames.patch similarity index 97% rename from patches/server/0713-Validate-usernames.patch rename to patches/server/0699-Validate-usernames.patch index 230d95c9d711..6b8a929ebb2a 100644 --- a/patches/server/0713-Validate-usernames.patch +++ b/patches/server/0699-Validate-usernames.patch @@ -26,7 +26,7 @@ index d4658328eeecb1c9e3e25eec14dea07e9e2a8b74..ebda34825bbd10145a81d54c345e31c2 GameProfile gameprofile = this.server.getSingleplayerProfile(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 385a2abff1660ed892a498e1d3283eb3b9fc4310..89e745736e6b53223cbab9dd63456ace43757f75 100644 +index 89c91072a6b50b2b917d8a21510d9b5daa5d6005..3daa5cce3cfb438ef63f60ec84f3f54271fcdfe7 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -679,7 +679,7 @@ public abstract class PlayerList { diff --git a/patches/server/0714-Make-water-animal-spawn-height-configurable.patch b/patches/server/0700-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0714-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0700-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0701-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 98% rename from patches/server/0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0701-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 2c7897ae7034..3d0f5cf41c26 100644 --- a/patches/server/0715-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0701-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6f2fcf39835d8a8b7408a39a511a2a9ee1e31248..497cc9729faceccaa43ac0a39ec75674507b1567 100644 +index 88645ffa12f630daf9bd74bb5848ed9dd23d0c1f..20790203d6ceeacc13506469b64140d7f6adfd6a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -596,7 +596,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(iworlddataserver)); LevelStem worlddimension = (LevelStem) dimensions.get(dimensionKey); diff --git a/patches/server/0716-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0702-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/server/0716-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0702-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/server/0717-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0703-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/server/0717-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/server/0703-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/server/0718-Multiple-Entries-with-Scoreboards.patch b/patches/server/0704-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/server/0718-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0704-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/server/0719-Reset-placed-block-on-exception.patch b/patches/server/0705-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/server/0719-Reset-placed-block-on-exception.patch rename to patches/server/0705-Reset-placed-block-on-exception.patch diff --git a/patches/server/0720-Add-configurable-height-for-slime-spawn.patch b/patches/server/0706-Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/server/0720-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0706-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/server/0721-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0707-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/server/0721-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0707-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/server/0722-Multi-Block-Change-API-Implementation.patch b/patches/server/0708-Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/server/0722-Multi-Block-Change-API-Implementation.patch rename to patches/server/0708-Multi-Block-Change-API-Implementation.patch diff --git a/patches/server/0723-Fix-NotePlayEvent.patch b/patches/server/0709-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0723-Fix-NotePlayEvent.patch rename to patches/server/0709-Fix-NotePlayEvent.patch diff --git a/patches/server/0724-Freeze-Tick-Lock-API.patch b/patches/server/0710-Freeze-Tick-Lock-API.patch similarity index 87% rename from patches/server/0724-Freeze-Tick-Lock-API.patch rename to patches/server/0710-Freeze-Tick-Lock-API.patch index 3dea21d29ebd..e05f9c4f5d25 100644 --- a/patches/server/0724-Freeze-Tick-Lock-API.patch +++ b/patches/server/0710-Freeze-Tick-Lock-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3e8fe380f676fc93538a75650aa23e9034409614..6f1bd75c5bd38ac198290e05ceb2d9cf7fc0fbf1 100644 +index fc3963247a1751b2576aaf476529d2ffe2bdf72e..b4c184fa88ab66bda3e801cbaa87e94567050ae8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -408,6 +408,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -406,6 +406,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S private org.bukkit.util.Vector origin; @javax.annotation.Nullable private UUID originWorld; @@ -16,7 +16,7 @@ index 3e8fe380f676fc93538a75650aa23e9034409614..6f1bd75c5bd38ac198290e05ceb2d9cf public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -839,7 +840,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -805,7 +806,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setRemainingFireTicks(this.remainingFireTicks - 1); } @@ -25,7 +25,7 @@ index 3e8fe380f676fc93538a75650aa23e9034409614..6f1bd75c5bd38ac198290e05ceb2d9cf this.setTicksFrozen(0); this.level().levelEvent((Player) null, 1009, this.blockPosition, 1); } -@@ -2326,6 +2327,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2292,6 +2293,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (fromNetherPortal) { nbttagcompound.putBoolean("Paper.FromNetherPortal", true); } @@ -35,7 +35,7 @@ index 3e8fe380f676fc93538a75650aa23e9034409614..6f1bd75c5bd38ac198290e05ceb2d9cf // Paper end return nbttagcompound; } catch (Throwable throwable) { -@@ -2470,6 +2474,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2436,6 +2440,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (spawnReason == null) { spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; } @@ -46,10 +46,10 @@ index 3e8fe380f676fc93538a75650aa23e9034409614..6f1bd75c5bd38ac198290e05ceb2d9cf } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index fc965b9d51cc0c8fd5c0ea6440e4eae3eb50ed73..69afdbf5eac010f04b1a7f0c0b99bc7e0035fda1 100644 +index e0f70157655ab26f5c7330f305c3234f64f677d1..d45a58e09cf6e59dd147fc50bf36c9c20eafe6b1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3452,7 +3452,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3451,7 +3451,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.level().getProfiler().pop(); this.level().getProfiler().push("freezing"); diff --git a/patches/server/0725-More-PotionEffectType-API.patch b/patches/server/0711-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0725-More-PotionEffectType-API.patch rename to patches/server/0711-More-PotionEffectType-API.patch diff --git a/patches/server/0726-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0712-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0726-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0712-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0727-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0713-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/server/0727-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0713-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/server/0728-Add-missing-structure-set-seed-configs.patch b/patches/server/0714-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/server/0728-Add-missing-structure-set-seed-configs.patch rename to patches/server/0714-Add-missing-structure-set-seed-configs.patch diff --git a/patches/server/0729-Implement-regenerateChunk.patch b/patches/server/0715-Implement-regenerateChunk.patch similarity index 100% rename from patches/server/0729-Implement-regenerateChunk.patch rename to patches/server/0715-Implement-regenerateChunk.patch diff --git a/patches/server/0730-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0716-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0730-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0716-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0731-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0717-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/server/0731-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0717-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0732-Add-GameEvent-tags.patch b/patches/server/0718-Add-GameEvent-tags.patch similarity index 100% rename from patches/server/0732-Add-GameEvent-tags.patch rename to patches/server/0718-Add-GameEvent-tags.patch diff --git a/patches/server/0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0719-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 87% rename from patches/server/0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0719-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index ec13c594883e..a2ce560ccc33 100644 --- a/patches/server/0733-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0719-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,10 +9,10 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 497cc9729faceccaa43ac0a39ec75674507b1567..02f2c0185324ffd0f6f0a832f75efec28f691915 100644 +index 20790203d6ceeacc13506469b64140d7f6adfd6a..3e18923079ed2def11d5d0b199b14275274e290e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1345,6 +1345,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -1562,7 +1563,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper -@@ -1632,6 +1635,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= i) { // CraftBukkit this.level().getProfiler().push("portal"); this.portalTime = i; @@ -22,7 +22,7 @@ index 4617730a47c44a00f62131d977ad2ca24424dcb6..0ab98129e5d3e09046b76938a7246a89 this.setPortalCooldown(); // CraftBukkit start if (this instanceof ServerPlayer) { -@@ -2919,6 +2926,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2885,6 +2892,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { this.changeDimension(worldserver1); } diff --git a/patches/server/0797-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0783-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/server/0797-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0783-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/server/0798-Send-block-entities-after-destroy-prediction.patch b/patches/server/0784-Send-block-entities-after-destroy-prediction.patch similarity index 100% rename from patches/server/0798-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0784-Send-block-entities-after-destroy-prediction.patch diff --git a/patches/server/0799-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0785-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 98% rename from patches/server/0799-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0785-Warn-on-plugins-accessing-faraway-chunks.patch index a68f5b7ce420..7148c5665f7d 100644 --- a/patches/server/0799-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0785-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 6309ab0373e7f64c7f63a55d43ff4e54d4542332..d21667480e585c7a124e9c53b4a22fa1a8115082 100644 +index a9f963ba9306b840a3d97c9a39fc81b09340065f..d84e1f2f085e83ff394e8dfe8bf42add64c9ee6d 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -444,7 +444,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0800-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0786-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/server/0800-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0786-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/server/0801-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0787-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0801-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0787-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0802-Collision-API.patch b/patches/server/0788-Collision-API.patch similarity index 100% rename from patches/server/0802-Collision-API.patch rename to patches/server/0788-Collision-API.patch diff --git a/patches/server/0803-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0789-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 100% rename from patches/server/0803-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0789-Fix-suggest-command-message-for-brigadier-syntax-exc.patch diff --git a/patches/server/0804-Block-Ticking-API.patch b/patches/server/0790-Block-Ticking-API.patch similarity index 100% rename from patches/server/0804-Block-Ticking-API.patch rename to patches/server/0790-Block-Ticking-API.patch diff --git a/patches/server/0805-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0791-Add-Velocity-IP-Forwarding-Support.patch similarity index 99% rename from patches/server/0805-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0791-Add-Velocity-IP-Forwarding-Support.patch index cd339cb4f30e..3518ceb444f3 100644 --- a/patches/server/0805-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0791-Add-Velocity-IP-Forwarding-Support.patch @@ -106,7 +106,7 @@ index 0000000000000000000000000000000000000000..3c31ff3330c2e925e205c0c9ff4f0b83 + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 30b9685963ffc620846c220d1fff3fda834f1ffa..6de6dad36203479677a29ad61e21bc369d4e5513 100644 +index 46708de7fac39928f52119343fc05cb877235b05..9e0c5bb92fb45cab7d78c5ad631c64170d48729f 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -274,13 +274,20 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0806-Add-NamespacedKey-biome-methods.patch b/patches/server/0792-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0806-Add-NamespacedKey-biome-methods.patch rename to patches/server/0792-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0807-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0793-Fix-plugin-loggers-on-server-shutdown.patch similarity index 78% rename from patches/server/0807-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0793-Fix-plugin-loggers-on-server-shutdown.patch index a851566240e7..1dae8c15910d 100644 --- a/patches/server/0807-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0793-Fix-plugin-loggers-on-server-shutdown.patch @@ -37,19 +37,19 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d42d9b38a9334e1e2b83fde671757ec191898c4b..8d39cce9f938260817f00f42326771be8ff0fbaf 100644 +index 44f5d7b359f172521be30c464d7acf6881dbeef0..681acc1ec995d9dbd5cfd30445b967093a3e4466 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1026,6 +1026,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6b561cb21497f214b82d8d91affb79ce1f63fbad..fca8970baaf7dea9397024f8c1aa2a044f7b721c 100644 +index c14699d0deb19b8d92fb72132ecc7cd5e99ec2b8..626012f925ae7e7e99fe86f4d57e6b063fe14904 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3056,37 +3056,15 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3055,37 +3055,15 @@ public abstract class LivingEntity extends Entity implements Attackable { this.level().getProfiler().pop(); this.level().getProfiler().push("rangeChecks"); diff --git a/patches/server/0809-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0795-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0809-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0795-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0810-Missing-eating-regain-reason.patch b/patches/server/0796-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0810-Missing-eating-regain-reason.patch rename to patches/server/0796-Missing-eating-regain-reason.patch diff --git a/patches/server/0811-Missing-effect-cause.patch b/patches/server/0797-Missing-effect-cause.patch similarity index 100% rename from patches/server/0811-Missing-effect-cause.patch rename to patches/server/0797-Missing-effect-cause.patch diff --git a/patches/server/0812-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0798-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0812-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0798-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0813-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0799-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0813-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0799-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0814-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0800-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0814-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0800-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0815-Configurable-chat-thread-limit.patch b/patches/server/0801-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0815-Configurable-chat-thread-limit.patch rename to patches/server/0801-Configurable-chat-thread-limit.patch diff --git a/patches/server/0816-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0802-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0816-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0802-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0817-fix-Jigsaw-block-kicking-user.patch b/patches/server/0803-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0817-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0803-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0818-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0804-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0818-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0804-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0819-Add-getDrops-to-BlockState.patch b/patches/server/0805-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0819-Add-getDrops-to-BlockState.patch rename to patches/server/0805-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0820-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0806-Fix-a-bunch-of-vanilla-bugs.patch similarity index 99% rename from patches/server/0820-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0806-Fix-a-bunch-of-vanilla-bugs.patch index 152d117626d2..6bf37750fdc2 100644 --- a/patches/server/0820-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0806-Fix-a-bunch-of-vanilla-bugs.patch @@ -113,10 +113,10 @@ index 6cd6d69a20e95e344fc18ab67dc300824537a59b..2e2a7c2cf3081187da817479a9da3eb1 } } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index dd16f13ca44cda3051a38085f6de117a475ce797..879a07656954fa2492db19a5fa158571de538a4f 100644 +index fea9355a25ab42f81504f90be7b3448044fa76dd..c164e222e1eaeee06cacf0c46edc32e41694b852 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -894,7 +894,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -814,7 +814,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } // Paper end - Cache chunk status on disk @@ -173,7 +173,7 @@ index c24701ed78824dc5377f8517dedf6a5aeff0614d..a38cda0029af022eccb12c12f1652fa8 this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c0ffcca75509b1ccee155c799ad8fbdfa657db26..56242bc33ed435e3ab06d7c7bebc05c255538633 100644 +index 6dca7b3f5b7f94fd3e2e6a829922b58d81a7e5f5..48211cdc96aab8db73a097f6899d7a9408595bf4 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -711,8 +711,10 @@ public abstract class PlayerList { diff --git a/patches/server/0821-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0807-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 100% rename from patches/server/0821-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0807-Remove-unnecessary-onTrackingStart-during-navigation.patch diff --git a/patches/server/0822-Fix-custom-piglin-loved-items.patch b/patches/server/0808-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0822-Fix-custom-piglin-loved-items.patch rename to patches/server/0808-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0823-EntityPickupItemEvent-fixes.patch b/patches/server/0809-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0823-EntityPickupItemEvent-fixes.patch rename to patches/server/0809-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0824-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0810-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 100% rename from patches/server/0824-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0810-Correctly-handle-interactions-with-items-on-cooldown.patch diff --git a/patches/server/0825-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0811-Add-PlayerInventorySlotChangeEvent.patch similarity index 97% rename from patches/server/0825-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0811-Add-PlayerInventorySlotChangeEvent.patch index 9fcf5ded688d..08eb6927471a 100644 --- a/patches/server/0825-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/server/0811-Add-PlayerInventorySlotChangeEvent.patch @@ -35,7 +35,7 @@ index b43baee9a03f17801712e8a1af3317e1297248ab..de80b618efcf9f0ceae40ed0b53d3436 @Override public void dataChanged(AbstractContainerMenu handler, int property, int value) {} diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 7d7b60a5c27a620b570dc5e72bb0b4c7963ca4d4..3e0de232b9f89887fd10e9bbe6de89dfe23e61ea 100644 +index 94fe6bd403222049e4e7a407bb6ca99bcaab6acb..399b2f4ddb7e9ef26fbc5e83f3b77c46d3868814 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -302,7 +302,7 @@ public abstract class AbstractContainerMenu { diff --git a/patches/server/0826-Elder-Guardian-appearance-API.patch b/patches/server/0812-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/server/0826-Elder-Guardian-appearance-API.patch rename to patches/server/0812-Elder-Guardian-appearance-API.patch diff --git a/patches/server/0827-Allow-changing-bed-s-occupied-property.patch b/patches/server/0813-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0827-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0813-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0828-Add-entity-knockback-API.patch b/patches/server/0814-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0828-Add-entity-knockback-API.patch rename to patches/server/0814-Add-entity-knockback-API.patch diff --git a/patches/server/0829-Detect-headless-JREs.patch b/patches/server/0815-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0829-Detect-headless-JREs.patch rename to patches/server/0815-Detect-headless-JREs.patch diff --git a/patches/server/0830-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0816-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0830-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0816-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0831-Add-EntityToggleSitEvent.patch b/patches/server/0817-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0831-Add-EntityToggleSitEvent.patch rename to patches/server/0817-Add-EntityToggleSitEvent.patch diff --git a/patches/server/0832-Add-fire-tick-delay-option.patch b/patches/server/0818-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0832-Add-fire-tick-delay-option.patch rename to patches/server/0818-Add-fire-tick-delay-option.patch diff --git a/patches/server/0833-Add-Moving-Piston-API.patch b/patches/server/0819-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0833-Add-Moving-Piston-API.patch rename to patches/server/0819-Add-Moving-Piston-API.patch diff --git a/patches/server/0834-Ignore-impossible-spawn-tick.patch b/patches/server/0820-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0834-Ignore-impossible-spawn-tick.patch rename to patches/server/0820-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0835-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0821-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0835-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0821-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0836-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0822-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0836-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0822-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0823-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 92% rename from patches/server/0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0823-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index 7b4cc4c7a21b..c3bb8f0204cf 100644 --- a/patches/server/0837-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0823-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0ab98129e5d3e09046b76938a7246a89602b95a9..df64101be3440828479ef4afeb70140eb4bdd9da 100644 +index eb8d1a04887a38142d9695dc96a46d76e26cf866..eb416aa2ca3c905692fa82cc29ec5eb32dee79a6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3191,6 +3191,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3157,6 +3157,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S pluginManager.callEvent(entityCombustEvent); if (!entityCombustEvent.isCancelled()) { this.setSecondsOnFire(entityCombustEvent.getDuration(), false); diff --git a/patches/server/0838-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0824-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/server/0838-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0824-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/server/0839-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0825-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0839-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0825-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0840-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0826-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0840-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0826-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0841-Add-Player-Warden-Warning-API.patch b/patches/server/0827-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/server/0841-Add-Player-Warden-Warning-API.patch rename to patches/server/0827-Add-Player-Warden-Warning-API.patch diff --git a/patches/server/0842-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0828-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0842-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0828-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0843-Add-paper-dumplisteners-command.patch b/patches/server/0829-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0843-Add-paper-dumplisteners-command.patch rename to patches/server/0829-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0844-check-global-player-list-where-appropriate.patch b/patches/server/0830-check-global-player-list-where-appropriate.patch similarity index 96% rename from patches/server/0844-check-global-player-list-where-appropriate.patch rename to patches/server/0830-check-global-player-list-where-appropriate.patch index 9e3e8c00bf74..196e9b5c85a2 100644 --- a/patches/server/0844-check-global-player-list-where-appropriate.patch +++ b/patches/server/0830-check-global-player-list-where-appropriate.patch @@ -24,10 +24,10 @@ index 528901e658cf553de0580bcff21e42740b5d0cd4..a15bdf56c32b16c143c3060dc7d5f615 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index fca8970baaf7dea9397024f8c1aa2a044f7b721c..39a6823a2fef8c3907a39fc611489e07cdf6d1e1 100644 +index 626012f925ae7e7e99fe86f4d57e6b063fe14904..c7ece2c998b5abefc8d571e4b1ad0008dfe0733a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3677,7 +3677,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } public void onItemPickup(ItemEntity item) { diff --git a/patches/server/0845-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0831-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0845-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0831-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0846-ItemStack-damage-API.patch b/patches/server/0832-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0846-ItemStack-damage-API.patch rename to patches/server/0832-ItemStack-damage-API.patch diff --git a/patches/server/0847-Friction-API.patch b/patches/server/0833-Friction-API.patch similarity index 98% rename from patches/server/0847-Friction-API.patch rename to patches/server/0833-Friction-API.patch index d1a8023c7ac3..9b4390f605e1 100644 --- a/patches/server/0847-Friction-API.patch +++ b/patches/server/0833-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 39a6823a2fef8c3907a39fc611489e07cdf6d1e1..89b2977e848afb6ff577382d69616be40fd28a75 100644 +index c7ece2c998b5abefc8d571e4b1ad0008dfe0733a..3ef0b5b1e105c973e8b135f504581625256545f9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0848-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0834-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0848-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0834-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0849-Fix-player-kick-on-shutdown.patch b/patches/server/0835-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0849-Fix-player-kick-on-shutdown.patch rename to patches/server/0835-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0850-Sync-offhand-slot-in-menus.patch b/patches/server/0836-Sync-offhand-slot-in-menus.patch similarity index 97% rename from patches/server/0850-Sync-offhand-slot-in-menus.patch rename to patches/server/0836-Sync-offhand-slot-in-menus.patch index ac269b60ca1d..3035b7f2e4d9 100644 --- a/patches/server/0850-Sync-offhand-slot-in-menus.patch +++ b/patches/server/0836-Sync-offhand-slot-in-menus.patch @@ -26,7 +26,7 @@ index de80b618efcf9f0ceae40ed0b53d3436afca27b8..46a69ef6794065e144e4948ad165a1ea public void sendSlotChange(AbstractContainerMenu handler, int slot, ItemStack stack) { ServerPlayer.this.connection.send(new ClientboundContainerSetSlotPacket(handler.containerId, handler.incrementStateId(), slot, stack)); diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 3e0de232b9f89887fd10e9bbe6de89dfe23e61ea..cdd23fb468f30bff52fdf8555b6106f13d0f5552 100644 +index 399b2f4ddb7e9ef26fbc5e83f3b77c46d3868814..24caa1cf91cd50a5972238119aca1f85ec2b3d2b 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -200,6 +200,7 @@ public abstract class AbstractContainerMenu { diff --git a/patches/server/0851-Player-Entity-Tracking-Events.patch b/patches/server/0837-Player-Entity-Tracking-Events.patch similarity index 87% rename from patches/server/0851-Player-Entity-Tracking-Events.patch rename to patches/server/0837-Player-Entity-Tracking-Events.patch index 258f2374658e..adab6a787ef1 100644 --- a/patches/server/0851-Player-Entity-Tracking-Events.patch +++ b/patches/server/0837-Player-Entity-Tracking-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player Entity Tracking Events diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 879a07656954fa2492db19a5fa158571de538a4f..4a597dd278947c7992d3c09e0813780689cbd9ab 100644 +index c164e222e1eaeee06cacf0c46edc32e41694b852..39c8f3c694904905f946d30ea4b149c8c0545989 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1405,7 +1405,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1271,7 +1271,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // CraftBukkit end if (flag) { if (this.seenBy.add(player.connection)) { @@ -21,10 +21,10 @@ index 879a07656954fa2492db19a5fa158571de538a4f..4a597dd278947c7992d3c09e08137806 } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index df64101be3440828479ef4afeb70140eb4bdd9da..c6cddb7099cf713e41b8a2478b562285e2aae3f0 100644 +index eb416aa2ca3c905692fa82cc29ec5eb32dee79a6..e8fab882d8668f4afc565356b7beb0bebe8d5faf 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3918,7 +3918,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3884,7 +3884,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void startSeenByPlayer(ServerPlayer player) {} diff --git a/patches/server/0852-Limit-pet-look-distance.patch b/patches/server/0838-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0852-Limit-pet-look-distance.patch rename to patches/server/0838-Limit-pet-look-distance.patch diff --git a/patches/server/0853-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0839-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0853-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0839-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0854-fix-Instruments.patch b/patches/server/0840-fix-Instruments.patch similarity index 100% rename from patches/server/0854-fix-Instruments.patch rename to patches/server/0840-fix-Instruments.patch diff --git a/patches/server/0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0841-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 91% rename from patches/server/0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0841-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch index 187a68ae375b..e57df1504705 100644 --- a/patches/server/0855-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch +++ b/patches/server/0841-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Improve inlining for some hot BlockBehavior and FluidState diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26..42a086dcebcdba6ce19a8d0e77ba88ba91d63669 100644 +index aa15d65f69f89da97cecd47c3458cd3b4937055f..a274d0c3b4cceb2688a41ac1c3fbaa1a03704224 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -995,15 +995,15 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -989,15 +989,15 @@ public abstract class BlockBehaviour implements FeatureElement { return this.shapeExceedsCube; // Paper - moved into shape cache init } @@ -28,7 +28,7 @@ index d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26..42a086dcebcdba6ce19a8d0e77ba88ba return this.isAir; } -@@ -1087,7 +1087,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1081,7 +1081,7 @@ public abstract class BlockBehaviour implements FeatureElement { } } @@ -37,7 +37,7 @@ index d1d00b9a078ee1f5a6c5dd51c2f0409d12c85c26..42a086dcebcdba6ce19a8d0e77ba88ba return this.canOcclude; } -@@ -1295,11 +1295,11 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1289,11 +1289,11 @@ public abstract class BlockBehaviour implements FeatureElement { return this.getBlock().builtInRegistryHolder().is(key); } diff --git a/patches/server/0856-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0842-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0856-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0842-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0857-Add-BlockLockCheckEvent.patch b/patches/server/0843-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0857-Add-BlockLockCheckEvent.patch rename to patches/server/0843-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0858-Add-Sneaking-API-for-Entities.patch b/patches/server/0844-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/server/0858-Add-Sneaking-API-for-Entities.patch rename to patches/server/0844-Add-Sneaking-API-for-Entities.patch diff --git a/patches/server/0859-Improve-logging-and-errors.patch b/patches/server/0845-Improve-logging-and-errors.patch similarity index 100% rename from patches/server/0859-Improve-logging-and-errors.patch rename to patches/server/0845-Improve-logging-and-errors.patch diff --git a/patches/server/0860-Improve-PortalEvents.patch b/patches/server/0846-Improve-PortalEvents.patch similarity index 89% rename from patches/server/0860-Improve-PortalEvents.patch rename to patches/server/0846-Improve-PortalEvents.patch index 663ad158f5e0..9e612b388afb 100644 --- a/patches/server/0860-Improve-PortalEvents.patch +++ b/patches/server/0846-Improve-PortalEvents.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c6cddb7099cf713e41b8a2478b562285e2aae3f0..3c9e58f033932bc6c2fad33cd54107952c19b1f2 100644 +index e8fab882d8668f4afc565356b7beb0bebe8d5faf..085471073643d851e3b08e2282ab37a64ebd732d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3576,7 +3576,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3542,7 +3542,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S Location enter = bukkitEntity.getLocation(); Location exit = CraftLocation.toBukkit(exitPosition, exitWorldServer.getWorld()); diff --git a/patches/server/0861-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0847-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0861-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0847-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0862-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0848-Add-missing-SpigotConfig-logCommands-check.patch similarity index 100% rename from patches/server/0862-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0848-Add-missing-SpigotConfig-logCommands-check.patch diff --git a/patches/server/0863-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0849-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0863-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0849-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0864-Flying-Fall-Damage.patch b/patches/server/0850-Flying-Fall-Damage.patch similarity index 100% rename from patches/server/0864-Flying-Fall-Damage.patch rename to patches/server/0850-Flying-Fall-Damage.patch diff --git a/patches/server/0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0851-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 98% rename from patches/server/0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0851-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch index b5625b77685c..51892eae9c45 100644 --- a/patches/server/0865-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch +++ b/patches/server/0851-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch @@ -41,10 +41,10 @@ index 8bde8c581796ed11809b80b9a30a33df86116745..f339475185645f7be30963e4f980ce81 public DamageSource outOfBorder() { diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 299583b1eb72cfdb4771ba0755fd71f2135484c1..4d51baab29b1a913c3efef2cb4ab0cac6c8cf38a 100644 +index 5097d9f1a3ab4e49e1899ede1742436357b0ad91..4aadf445daee88cc849929783eeddfa4aa005581 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -368,7 +368,7 @@ public class Explosion { +@@ -367,7 +367,7 @@ public class Explosion { bukkitBlocks = event.blockList(); this.yield = event.getYield(); } else { diff --git a/patches/server/0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0852-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 86% rename from patches/server/0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0852-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index 8bef6203640d..1f0a9d6d1032 100644 --- a/patches/server/0866-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0852-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3c9e58f033932bc6c2fad33cd54107952c19b1f2..128c21c6fada9de2569e97f3a03decf2d36649c8 100644 +index 085471073643d851e3b08e2282ab37a64ebd732d..9c998f4a9c73a807930e5b106d2ff6cc2d6afe77 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1126,7 +1126,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1092,7 +1092,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } if (!bl.getType().isAir()) { diff --git a/patches/server/0867-config-for-disabling-entity-tag-tags.patch b/patches/server/0853-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0867-config-for-disabling-entity-tag-tags.patch rename to patches/server/0853-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0868-Use-single-player-info-update-packet-on-join.patch b/patches/server/0854-Use-single-player-info-update-packet-on-join.patch similarity index 97% rename from patches/server/0868-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0854-Use-single-player-info-update-packet-on-join.patch index a16546c0e7a3..e68ff316b4ad 100644 --- a/patches/server/0868-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0854-Use-single-player-info-update-packet-on-join.patch @@ -18,7 +18,7 @@ index 07850cf4117f05bfbd96a4f02fd57db1566f90af..50f2c11d98dc4e8aa2e6f577fc802279 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 56242bc33ed435e3ab06d7c7bebc05c255538633..571354de840bce6fe86f45a1ba38ef923228f27a 100644 +index 48211cdc96aab8db73a097f6899d7a9408595bf4..14bcf8b155139dcfe3b397b3b516402b3c05e09c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { diff --git a/patches/server/0869-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0855-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 92% rename from patches/server/0869-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0855-Correctly-shrink-items-during-EntityResurrectEvent.patch index 049130cd16db..2aa84cc8e5db 100644 --- a/patches/server/0869-Correctly-shrink-items-during-EntityResurrectEvent.patch +++ b/patches/server/0855-Correctly-shrink-items-during-EntityResurrectEvent.patch @@ -22,10 +22,10 @@ This patch corrects this behaviour by only shrinking the item if a totem of undying was found and the event was called uncancelled. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 89b2977e848afb6ff577382d69616be40fd28a75..32f147ff4c5c889d8ce3c11d5b0c5274f2774248 100644 +index 3ef0b5b1e105c973e8b135f504581625256545f9..bf611c86fc095d9e9a6087d5436ddc3511835398 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1611,7 +1611,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1610,7 +1610,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.level().getCraftServer().getPluginManager().callEvent(event); if (!event.isCancelled()) { diff --git a/patches/server/0870-Win-Screen-API.patch b/patches/server/0856-Win-Screen-API.patch similarity index 100% rename from patches/server/0870-Win-Screen-API.patch rename to patches/server/0856-Win-Screen-API.patch diff --git a/patches/server/0871-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0857-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0871-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0857-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0872-Fix-force-opening-enchantment-tables.patch b/patches/server/0858-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0872-Fix-force-opening-enchantment-tables.patch rename to patches/server/0858-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0873-Add-Entity-Body-Yaw-API.patch b/patches/server/0859-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0873-Add-Entity-Body-Yaw-API.patch rename to patches/server/0859-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0874-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0860-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0874-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0860-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0875-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0861-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 83% rename from patches/server/0875-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0861-Update-the-flag-when-a-captured-block-state-is-outda.patch index 91148395bb84..0b06f11a10d5 100644 --- a/patches/server/0875-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0861-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index d21667480e585c7a124e9c53b4a22fa1a8115082..9464d79b8adb5099c4ba4400e5fa8ae6ce7be500 100644 +index d84e1f2f085e83ff394e8dfe8bf42add64c9ee6d..898a7bf653e4d213104eb339ea4bc30bc9b26455 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -554,6 +554,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -550,6 +550,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); this.capturedBlockStates.put(pos.immutable(), blockstate); } diff --git a/patches/server/0876-Add-EntityFertilizeEggEvent.patch b/patches/server/0862-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/server/0876-Add-EntityFertilizeEggEvent.patch rename to patches/server/0862-Add-EntityFertilizeEggEvent.patch diff --git a/patches/server/0877-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0863-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0877-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0863-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0878-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0864-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0878-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0864-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0879-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0865-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0879-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0865-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0880-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0866-Fix-advancement-triggers-for-entity-damage.patch similarity index 93% rename from patches/server/0880-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0866-Fix-advancement-triggers-for-entity-damage.patch index 712823f2d664..3a1d3cc88c52 100644 --- a/patches/server/0880-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0866-Fix-advancement-triggers-for-entity-damage.patch @@ -23,10 +23,10 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 32f147ff4c5c889d8ce3c11d5b0c5274f2774248..722273f0307a920365d3b2ca2879e5fc8cc5a398 100644 +index bf611c86fc095d9e9a6087d5436ddc3511835398..5e796702aca0024044b445e1dca05794e439fa44 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2302,7 +2302,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2301,7 +2301,7 @@ public abstract class LivingEntity extends Entity implements Attackable { // Duplicate triggers if blocking if (event.getDamage(DamageModifier.BLOCKING) < 0) { if (this instanceof ServerPlayer) { @@ -35,7 +35,7 @@ index 32f147ff4c5c889d8ce3c11d5b0c5274f2774248..722273f0307a920365d3b2ca2879e5fc f2 = (float) -event.getDamage(DamageModifier.BLOCKING); if (f2 > 0.0F && f2 < 3.4028235E37F) { ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, Math.round(originalDamage * 10.0F)); -@@ -2310,7 +2310,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2309,7 +2309,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } if (damagesource.getEntity() instanceof ServerPlayer) { diff --git a/patches/server/0881-Fix-text-display-error-on-spawn.patch b/patches/server/0867-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0881-Fix-text-display-error-on-spawn.patch rename to patches/server/0867-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0882-Fix-inventories-returning-null-Locations.patch b/patches/server/0868-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0882-Fix-inventories-returning-null-Locations.patch rename to patches/server/0868-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0883-Add-Shearable-API.patch b/patches/server/0869-Add-Shearable-API.patch similarity index 100% rename from patches/server/0883-Add-Shearable-API.patch rename to patches/server/0869-Add-Shearable-API.patch diff --git a/patches/server/0884-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0870-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0884-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0870-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0885-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0871-Fix-beehives-generating-from-using-bonemeal.patch similarity index 100% rename from patches/server/0885-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0871-Fix-beehives-generating-from-using-bonemeal.patch diff --git a/patches/server/0886-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0872-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0886-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0872-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0887-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0873-Treat-sequence-violations-like-they-should-be.patch similarity index 100% rename from patches/server/0887-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0873-Treat-sequence-violations-like-they-should-be.patch diff --git a/patches/server/0888-remove-duplicate-animate-packet-for-records.patch b/patches/server/0874-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0888-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0874-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0889-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0875-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/server/0889-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0875-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/server/0890-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0876-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 100% rename from patches/server/0890-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0876-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch diff --git a/patches/server/0891-Use-array-for-gamerule-storage.patch b/patches/server/0877-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0891-Use-array-for-gamerule-storage.patch rename to patches/server/0877-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0892-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0878-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0892-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0878-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0893-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0879-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0893-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0879-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0894-Add-Mob-Experience-reward-API.patch b/patches/server/0880-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0894-Add-Mob-Experience-reward-API.patch rename to patches/server/0880-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0895-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0881-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0895-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0881-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0896-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0882-Fix-DamageCause-for-Falling-Blocks.patch similarity index 100% rename from patches/server/0896-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0882-Fix-DamageCause-for-Falling-Blocks.patch diff --git a/patches/server/0897-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0883-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0897-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0883-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0898-More-accurate-isInOpenWater-impl.patch b/patches/server/0884-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0898-More-accurate-isInOpenWater-impl.patch rename to patches/server/0884-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0899-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0885-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0899-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0885-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0900-Expand-PlayerItemMendEvent.patch b/patches/server/0886-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/server/0900-Expand-PlayerItemMendEvent.patch rename to patches/server/0886-Expand-PlayerItemMendEvent.patch diff --git a/patches/server/0901-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0887-Refresh-ProjectileSource-for-projectiles.patch similarity index 96% rename from patches/server/0901-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0887-Refresh-ProjectileSource-for-projectiles.patch index 685db14db82e..db03e91e7e8b 100644 --- a/patches/server/0901-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0887-Refresh-ProjectileSource-for-projectiles.patch @@ -14,10 +14,10 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 128c21c6fada9de2569e97f3a03decf2d36649c8..1a6d5af5a9cd91617696c5bc91d9a4d97ec617c4 100644 +index 9c998f4a9c73a807930e5b106d2ff6cc2d6afe77..9fa04f43b527a1796cb849fa7ac03619dd9e19da 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -385,6 +385,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -383,6 +383,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public boolean inWorld = false; public boolean generation; public int maxAirTicks = this.getDefaultMaxAirSupply(); // CraftBukkit - SPIGOT-6907: re-implement LivingEntity#setMaximumAir() diff --git a/patches/server/0902-Add-transient-modifier-API.patch b/patches/server/0888-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0902-Add-transient-modifier-API.patch rename to patches/server/0888-Add-transient-modifier-API.patch diff --git a/patches/server/0903-Fix-block-place-logic.patch b/patches/server/0889-Fix-block-place-logic.patch similarity index 96% rename from patches/server/0903-Fix-block-place-logic.patch rename to patches/server/0889-Fix-block-place-logic.patch index c6a2251a6a3d..1402b778035c 100644 --- a/patches/server/0903-Fix-block-place-logic.patch +++ b/patches/server/0889-Fix-block-place-logic.patch @@ -41,10 +41,10 @@ index 0e9d515381a673e683b63a12c1a9e79a5eedd80b..096eb30dcfdd62b1d946891f7480e9d9 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9464d79b8adb5099c4ba4400e5fa8ae6ce7be500..94c553295538c5c27783b11fc9449fead5fca70b 100644 +index 898a7bf653e4d213104eb339ea4bc30bc9b26455..5a1d53bf288069040837995e72ef0f16b79f9ecc 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -669,17 +669,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -665,17 +665,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam CraftWorld world = ((ServerLevel) this).getWorld(); diff --git a/patches/server/0904-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0890-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0904-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0890-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0905-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0891-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0905-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0891-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0906-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0892-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 100% rename from patches/server/0906-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0892-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch diff --git a/patches/server/0907-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0893-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0907-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0893-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0908-Fix-sniffer-removeExploredLocation.patch b/patches/server/0894-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0908-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0894-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0909-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0895-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0909-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0895-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0911-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0896-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0911-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0896-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0912-Properly-cancel-usable-items.patch b/patches/server/0897-Properly-cancel-usable-items.patch similarity index 96% rename from patches/server/0912-Properly-cancel-usable-items.patch rename to patches/server/0897-Properly-cancel-usable-items.patch index dba24348b65e..f99bb170d9f1 100644 --- a/patches/server/0912-Properly-cancel-usable-items.patch +++ b/patches/server/0897-Properly-cancel-usable-items.patch @@ -46,10 +46,10 @@ index d2916743981c6632957ab8bed5ae7a2334c5646b..33bdfb66f36cce5e89be1a0de8b5a334 return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 722273f0307a920365d3b2ca2879e5fc8cc5a398..93eecdc6322dfc6161fbb80828d338aa4a311640 100644 +index 5e796702aca0024044b445e1dca05794e439fa44..825e586af663b363645586470b53e92e38774bce 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3814,6 +3814,11 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3813,6 +3813,11 @@ public abstract class LivingEntity extends Entity implements Attackable { return ((Byte) this.entityData.get(LivingEntity.DATA_LIVING_ENTITY_FLAGS) & 2) > 0 ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND; } diff --git a/patches/server/0913-Add-event-for-player-editing-sign.patch b/patches/server/0898-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0913-Add-event-for-player-editing-sign.patch rename to patches/server/0898-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0914-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0899-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0914-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0899-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0915-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0900-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0915-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0900-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0916-Add-option-to-disable-block-updates.patch b/patches/server/0901-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0916-Add-option-to-disable-block-updates.patch rename to patches/server/0901-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0917-Call-missing-BlockDispenseEvent.patch b/patches/server/0902-Call-missing-BlockDispenseEvent.patch similarity index 100% rename from patches/server/0917-Call-missing-BlockDispenseEvent.patch rename to patches/server/0902-Call-missing-BlockDispenseEvent.patch diff --git a/patches/server/0918-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0903-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 84% rename from patches/server/0918-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0903-Don-t-load-chunks-for-supporting-block-checks.patch index a6777bb1967f..dec88dbbc8d6 100644 --- a/patches/server/0918-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0903-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1a6d5af5a9cd91617696c5bc91d9a4d97ec617c4..fe61f868c595dedbc6ac9e2640c950436813151c 100644 +index 9fa04f43b527a1796cb849fa7ac03619dd9e19da..fda3aa0c11d86270e96d345cf8a8b249f817dfa3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1284,7 +1284,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1250,7 +1250,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } protected BlockPos getOnPos(float offset) { diff --git a/patches/server/0919-Optimize-player-lookups-for-beacons.patch b/patches/server/0904-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0919-Optimize-player-lookups-for-beacons.patch rename to patches/server/0904-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0920-Add-Sign-getInteractableSideFor.patch b/patches/server/0905-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0920-Add-Sign-getInteractableSideFor.patch rename to patches/server/0905-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0921-Array-backed-synched-entity-data.patch b/patches/server/0906-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0921-Array-backed-synched-entity-data.patch rename to patches/server/0906-Array-backed-synched-entity-data.patch diff --git a/patches/server/0922-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0907-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0922-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0907-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0923-Fix-BanList-API.patch b/patches/server/0908-Fix-BanList-API.patch similarity index 100% rename from patches/server/0923-Fix-BanList-API.patch rename to patches/server/0908-Fix-BanList-API.patch diff --git a/patches/server/0924-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0909-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0924-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0909-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0925-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0910-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0925-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0910-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0910-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch b/patches/server/0910-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch deleted file mode 100644 index e0a566756b14..000000000000 --- a/patches/server/0910-Temp-Pre-init-PlayerChunkLoaderData-in-order-to-prep.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Shane Freeder -Date: Sun, 18 Jun 2023 13:48:11 +0100 -Subject: [PATCH] Temp: Pre-init PlayerChunkLoaderData in order to prepopulate - the BFS lookup cache because potatos - - -diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 5ad5b54e977af7dc86c2505f7ccdc77422adb33b..62d9737a8d36d4863ffd7853ba290ef83c759687 100644 ---- a/src/main/java/org/bukkit/craftbukkit/Main.java -+++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -368,6 +368,7 @@ public class Main { - tryPreloadClass(net.minecraft.world.level.lighting.LayerLightEventListener.DummyLightLayerEventListener.class.getName()); - tryPreloadClass(net.minecraft.world.level.lighting.LayerLightEventListener.class.getName()); - tryPreloadClass(net.minecraft.util.ExceptionCollector.class.getName()); -+ tryPreloadClass(io.papermc.paper.chunk.system.RegionizedPlayerChunkLoader.PlayerChunkLoaderData.class.getName()); // Paper - Prepopulate BFS lookup for potatos - // Paper end - } - } diff --git a/patches/server/0926-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0911-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0926-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0911-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0927-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0912-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 100% rename from patches/server/0927-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0912-ExperienceOrb-should-call-EntitySpawnEvent.patch diff --git a/patches/server/0928-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0913-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0928-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0913-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0929-Add-whitelist-events.patch b/patches/server/0914-Add-whitelist-events.patch similarity index 100% rename from patches/server/0929-Add-whitelist-events.patch rename to patches/server/0914-Add-whitelist-events.patch diff --git a/patches/server/0930-Implement-PlayerFailMoveEvent.patch b/patches/server/0915-Implement-PlayerFailMoveEvent.patch similarity index 100% rename from patches/server/0930-Implement-PlayerFailMoveEvent.patch rename to patches/server/0915-Implement-PlayerFailMoveEvent.patch diff --git a/patches/server/0931-Folia-scheduler-and-owned-region-API.patch b/patches/server/0916-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0931-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0916-Folia-scheduler-and-owned-region-API.patch index 85e5d959c0e2..09b41d7040aa 100644 --- a/patches/server/0931-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0916-Folia-scheduler-and-owned-region-API.patch @@ -1148,10 +1148,10 @@ index 0000000000000000000000000000000000000000..d306f911757a4d556c82c0070d4837db + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8d39cce9f938260817f00f42326771be8ff0fbaf..fe9a5820d82e5563b53d949af060e80cc7a259f6 100644 +index 681acc1ec995d9dbd5cfd30445b967093a3e4466..6ee3eb03967f020d96e4770b71ae39df3e69a79c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1558,6 +1558,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop. diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -index d4c91e0a0c64fcb7f1145de3f30134cb1f1f8ee6..abcc3ef59475ac170fd10b4dd4a4f3371faf17e0 100644 +index 9fd6cf0c98cbf6300ef23d4aab32a6110aeba665..a0799baca3ae05ef1ff818abfe6a53d28fd99246 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java @@ -47,6 +47,7 @@ public class AcquirePoi { diff --git a/patches/server/0968-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0953-Add-slot-sanity-checks-in-container-clicks.patch similarity index 96% rename from patches/server/0968-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0953-Add-slot-sanity-checks-in-container-clicks.patch index 351246e50520..ccb4411a26e9 100644 --- a/patches/server/0968-Add-slot-sanity-checks-in-container-clicks.patch +++ b/patches/server/0953-Add-slot-sanity-checks-in-container-clicks.patch @@ -22,7 +22,7 @@ index 70941e46dd15db9d221b505577511cd0295ba603..9342efcb855dce5cced227b15356df09 Slot clickedSlot = this.player.containerMenu.getSlot(packet.getSlotNum()); if (clickedSlot.mayPickup(this.player)) { diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index cdd23fb468f30bff52fdf8555b6106f13d0f5552..4183afe565a46ebc52ff520b046fef405e3b22f7 100644 +index 24caa1cf91cd50a5972238119aca1f85ec2b3d2b..75f836f07c66dbf71017ef0b7697851353d0f2e1 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java @@ -423,6 +423,7 @@ public abstract class AbstractContainerMenu { diff --git a/patches/server/0969-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0954-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0969-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0954-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0970-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0955-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0970-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0955-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0971-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0956-Fix-silent-equipment-change-for-mobs.patch similarity index 100% rename from patches/server/0971-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0956-Fix-silent-equipment-change-for-mobs.patch diff --git a/patches/server/0972-Fix-spigot-s-Forced-Stats.patch b/patches/server/0957-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0972-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0957-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0973-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0958-Add-missing-InventoryHolders-to-inventories.patch similarity index 99% rename from patches/server/0973-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0958-Add-missing-InventoryHolders-to-inventories.patch index 2a79e00b7382..c189f4b7d297 100644 --- a/patches/server/0973-Add-missing-InventoryHolders-to-inventories.patch +++ b/patches/server/0958-Add-missing-InventoryHolders-to-inventories.patch @@ -57,10 +57,10 @@ index ff1aba1e69cfde633fd01724f1a8d0af7f59437f..9546d93f90ca34b4d35bd98df847bf89 public SimpleContainer(int i, org.bukkit.inventory.InventoryHolder owner) { this.bukkitOwner = owner; diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 4183afe565a46ebc52ff520b046fef405e3b22f7..48f634a7521d31c1e9dfd3cfc83139d428dbd37a 100644 +index 75f836f07c66dbf71017ef0b7697851353d0f2e1..eef0d3c59f0ce6e89033a5e228d31b63339c2773 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -@@ -1029,4 +1029,15 @@ public abstract class AbstractContainerMenu { +@@ -993,4 +993,15 @@ public abstract class AbstractContainerMenu { this.stateId = this.stateId + 1 & 32767; return this.stateId; } diff --git a/patches/server/0974-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0959-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/server/0974-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0959-Do-not-read-tile-entities-in-chunks-that-are-positio.patch diff --git a/patches/server/0975-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0960-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0975-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0960-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0976-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0961-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 100% rename from patches/server/0976-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/0961-Remove-Spigot-Bug-Fix-for-MC-109346.patch diff --git a/patches/server/0977-Fix-SuspiciousStewMeta.patch b/patches/server/0962-Fix-SuspiciousStewMeta.patch similarity index 100% rename from patches/server/0977-Fix-SuspiciousStewMeta.patch rename to patches/server/0962-Fix-SuspiciousStewMeta.patch diff --git a/patches/server/0978-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0963-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0978-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0963-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/0979-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0964-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/0979-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0964-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/0980-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0965-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/0980-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/0965-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/0981-Fix-missing-map-initialize-event-call.patch b/patches/server/0966-Fix-missing-map-initialize-event-call.patch similarity index 100% rename from patches/server/0981-Fix-missing-map-initialize-event-call.patch rename to patches/server/0966-Fix-missing-map-initialize-event-call.patch diff --git a/patches/server/0982-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/0967-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/0982-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/0967-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/0983-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/0968-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/0983-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/0968-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/0984-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/0969-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/0984-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/0969-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/0985-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0970-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/0985-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/0970-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/0986-Add-player-idle-duration-API.patch b/patches/server/0971-Add-player-idle-duration-API.patch similarity index 100% rename from patches/server/0986-Add-player-idle-duration-API.patch rename to patches/server/0971-Add-player-idle-duration-API.patch diff --git a/patches/server/0987-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0972-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 85% rename from patches/server/0987-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/0972-Don-t-check-if-we-can-see-non-visible-entities.patch index 3bc97743170a..f646d9df51b5 100644 --- a/patches/server/0987-Don-t-check-if-we-can-see-non-visible-entities.patch +++ b/patches/server/0972-Don-t-check-if-we-can-see-non-visible-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't check if we can see non-visible entities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 815fb04fb2d14d0cea14a2b3509e81b383bbdbda..303ab1ea6747bb71adbd3a09e419b2677c9b8c5f 100644 +index 32bbea0e65176d3a05ed02ce5351f7fea00bf53f..fa29444c43925eabe5c26cafaefb46ebb246b006 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1426,7 +1426,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1292,7 +1292,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end - Configurable entity tracking range by Y // CraftBukkit start - respect vanish API diff --git a/patches/server/0988-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0973-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/0988-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/0973-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/0989-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0974-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 100% rename from patches/server/0989-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/0974-Allow-null-itemstack-for-Player-sendEquipmentChange.patch diff --git a/patches/server/0990-Optimize-VarInts.patch b/patches/server/0975-Optimize-VarInts.patch similarity index 100% rename from patches/server/0990-Optimize-VarInts.patch rename to patches/server/0975-Optimize-VarInts.patch diff --git a/patches/server/0991-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0976-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/0991-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/0976-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/0992-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0977-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/server/0992-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/0977-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/server/0993-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0978-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 88% rename from patches/server/0993-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/0978-Broadcast-take-item-packets-with-collector-as-source.patch index 91ef80895e7a..bcd63d3b655a 100644 --- a/patches/server/0993-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/0978-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 93eecdc6322dfc6161fbb80828d338aa4a311640..3bedc89be56dddb858d40c155a8137665bbf3726 100644 +index 825e586af663b363645586470b53e92e38774bce..e11eb4b3796debeadde58e43d9176aef029228bd 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3704,7 +3704,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3703,7 +3703,7 @@ public abstract class LivingEntity extends Entity implements Attackable { public void take(Entity item, int count) { if (!item.isRemoved() && !this.level().isClientSide && (item instanceof ItemEntity || item instanceof AbstractArrow || item instanceof ExperienceOrb)) { diff --git a/patches/server/0994-Expand-LingeringPotion-API.patch b/patches/server/0979-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/0994-Expand-LingeringPotion-API.patch rename to patches/server/0979-Expand-LingeringPotion-API.patch diff --git a/patches/server/0995-Add-MaterialTagsTest.patch b/patches/server/0980-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/0995-Add-MaterialTagsTest.patch rename to patches/server/0980-Add-MaterialTagsTest.patch diff --git a/patches/server/0996-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0981-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 100% rename from patches/server/0996-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/0981-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch diff --git a/patches/server/0997-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0982-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/0997-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/0982-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/0998-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0983-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/0998-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/0983-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/0999-Add-UUID-attribute-modifier-API.patch b/patches/server/0984-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/0999-Add-UUID-attribute-modifier-API.patch rename to patches/server/0984-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/1000-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0985-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/server/1000-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/0985-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/1001-Lazily-create-LootContext-for-criterions.patch b/patches/server/0986-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/1001-Lazily-create-LootContext-for-criterions.patch rename to patches/server/0986-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/1002-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0987-Don-t-fire-sync-events-during-worldgen.patch similarity index 97% rename from patches/server/1002-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/0987-Don-t-fire-sync-events-during-worldgen.patch index bf0a1af3935b..600c45af210b 100644 --- a/patches/server/1002-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/0987-Don-t-fire-sync-events-during-worldgen.patch @@ -31,10 +31,10 @@ index 9e8f47ab8b337a43760d781852348e4bddbb46d9..0c4c20ce794dd7e12cf1712dccc975bf if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e9df37e802a982d9332a40a7f889206440ac1cc2..ec5a7f44b379a10c61f152eb57641994d382b017 100644 +index 633a709d3f7768dce644affc4ce9b75711e971f1..da52068d063f5dd978454e3b516384df25eb204b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -712,7 +712,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -678,7 +678,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (pose == this.getPose()) { return; } @@ -68,7 +68,7 @@ index a6e20b5ee4fe1841dfc2350264b5935b968fe3f3..9da8d56ff3768fb37d1ab89300da4eca }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3bedc89be56dddb858d40c155a8137665bbf3726..18004cc231804220aa63e41389a8caffcc434d66 100644 +index e11eb4b3796debeadde58e43d9176aef029228bd..228e8233caf3653d6411e4d85e5dcfd6a012b40f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1003-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0988-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/1003-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/0988-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/1004-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0989-Restore-vanilla-entity-drops-behavior.patch similarity index 98% rename from patches/server/1004-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/0989-Restore-vanilla-entity-drops-behavior.patch index 8d807f67cd64..df93739baf0b 100644 --- a/patches/server/1004-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/0989-Restore-vanilla-entity-drops-behavior.patch @@ -50,10 +50,10 @@ index 361541e8c152a9311634411d434cc29ec87c17e2..bd1a53e2ce2644681c23f8cf678afa2a if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ec5a7f44b379a10c61f152eb57641994d382b017..f2f8bc9f8f55a43174acd9c5e841fb9a7d1b8065 100644 +index da52068d063f5dd978454e3b516384df25eb204b..3d7c6d38dba3e74bc0b868ee5efb7cc80bc0352c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2575,6 +2575,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2541,6 +2541,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public ItemEntity spawnAtLocation(ItemStack stack, float yOffset) { @@ -79,7 +79,7 @@ index ec5a7f44b379a10c61f152eb57641994d382b017..f2f8bc9f8f55a43174acd9c5e841fb9a if (stack.isEmpty()) { return null; } else if (this.level().isClientSide) { -@@ -2582,14 +2601,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2548,14 +2567,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -104,7 +104,7 @@ index ec5a7f44b379a10c61f152eb57641994d382b017..f2f8bc9f8f55a43174acd9c5e841fb9a return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 18004cc231804220aa63e41389a8caffcc434d66..563b30aca4a1dd04e298db3b9252904740422203 100644 +index 228e8233caf3653d6411e4d85e5dcfd6a012b40f..5741fb18e9538c161c8516de6322b2e4dbe2cb4d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1005-Add-Structure-check-API.patch b/patches/server/0990-Add-Structure-check-API.patch similarity index 100% rename from patches/server/1005-Add-Structure-check-API.patch rename to patches/server/0990-Add-Structure-check-API.patch diff --git a/patches/server/1006-Dont-resend-blocks-on-interactions.patch b/patches/server/0991-Dont-resend-blocks-on-interactions.patch similarity index 100% rename from patches/server/1006-Dont-resend-blocks-on-interactions.patch rename to patches/server/0991-Dont-resend-blocks-on-interactions.patch diff --git a/patches/server/1007-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/0992-Keep-previous-behavior-for-setResourcePack.patch similarity index 100% rename from patches/server/1007-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/0992-Keep-previous-behavior-for-setResourcePack.patch diff --git a/patches/server/1008-properly-read-and-store-sus-effect-duration.patch b/patches/server/0993-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/1008-properly-read-and-store-sus-effect-duration.patch rename to patches/server/0993-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/1009-Use-correct-max-stack-size-in-crafter.patch b/patches/server/0994-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/1009-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/0994-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/1010-add-more-scoreboard-API.patch b/patches/server/0995-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/1010-add-more-scoreboard-API.patch rename to patches/server/0995-add-more-scoreboard-API.patch diff --git a/patches/server/1011-Improve-Registry.patch b/patches/server/0996-Improve-Registry.patch similarity index 100% rename from patches/server/1011-Improve-Registry.patch rename to patches/server/0996-Improve-Registry.patch diff --git a/patches/server/1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0997-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 96% rename from patches/server/1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/0997-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index 3a2aaebbf4ef..ecdce557feef 100644 --- a/patches/server/1012-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/0997-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,10 +26,10 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 563b30aca4a1dd04e298db3b9252904740422203..b920f72e659956cc2d2d44743caddb0136d467e4 100644 +index 5741fb18e9538c161c8516de6322b2e4dbe2cb4d..ec495c0080e15b1baeeb57cd7c80d2e6b06e7d2e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -4186,7 +4186,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4185,7 +4185,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (!(this instanceof ServerPlayer)) { EntityTeleportEvent teleport = new EntityTeleportEvent(this.getBukkitEntity(), new Location(this.level().getWorld(), d3, d4, d5), new Location(this.level().getWorld(), d0, d6, d2)); this.level().getCraftServer().getPluginManager().callEvent(teleport); diff --git a/patches/server/1013-Add-experience-points-API.patch b/patches/server/0998-Add-experience-points-API.patch similarity index 100% rename from patches/server/1013-Add-experience-points-API.patch rename to patches/server/0998-Add-experience-points-API.patch diff --git a/patches/server/1014-Add-missing-InventoryType.patch b/patches/server/0999-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/1014-Add-missing-InventoryType.patch rename to patches/server/0999-Add-missing-InventoryType.patch diff --git a/patches/server/1015-Add-drops-to-shear-events.patch b/patches/server/1000-Add-drops-to-shear-events.patch similarity index 100% rename from patches/server/1015-Add-drops-to-shear-events.patch rename to patches/server/1000-Add-drops-to-shear-events.patch diff --git a/patches/server/1016-Add-PlayerShieldDisableEvent.patch b/patches/server/1001-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/server/1016-Add-PlayerShieldDisableEvent.patch rename to patches/server/1001-Add-PlayerShieldDisableEvent.patch diff --git a/patches/server/1017-Add-HiddenPotionEffect-API.patch b/patches/server/1002-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1017-Add-HiddenPotionEffect-API.patch rename to patches/server/1002-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1018-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/1003-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/1018-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/1003-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/1019-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/1004-fix-ItemMeta-removing-CustomModelData.patch similarity index 100% rename from patches/server/1019-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/1004-fix-ItemMeta-removing-CustomModelData.patch diff --git a/patches/server/1020-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/1005-Validate-ResourceLocation-in-NBT-reading.patch similarity index 100% rename from patches/server/1020-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/1005-Validate-ResourceLocation-in-NBT-reading.patch diff --git a/patches/server/1021-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/1006-Properly-handle-experience-dropping-on-block-break.patch similarity index 92% rename from patches/server/1021-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/1006-Properly-handle-experience-dropping-on-block-break.patch index e2efaa8c2c82..cba1154441ff 100644 --- a/patches/server/1021-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/1006-Properly-handle-experience-dropping-on-block-break.patch @@ -7,10 +7,10 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0b2e7e098ad0d8250156a6277491676357e0b1db..e5944ff3c1118e57c9e7a14cbb5181b2d7f7a79a 100644 +index 8fac839ea8131060a29c326a9530a21fbf47dfa3..25ed0f62058fa531d8bf9cf1e8fb99651ee46a67 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -734,7 +734,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -730,7 +730,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (drop) { BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null; @@ -21,10 +21,10 @@ index 0b2e7e098ad0d8250156a6277491676357e0b1db..e5944ff3c1118e57c9e7a14cbb5181b2 boolean flag1 = this.setBlock(pos, fluid.createLegacyBlock(), 3, maxUpdateDepth); diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 6ec04bf5cd1f7f2e74d86daa95209bd2f2124b91..68b94b4ebd710f3ab18f397d9dfa0ef5b8f182e0 100644 +index 660ede322b4f4ccad241820d8ffd4540ebb18fbc..63217d3db86b467f3358730eb8b9b3c941558bab 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -333,23 +333,31 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -320,23 +320,31 @@ public class Block extends BlockBehaviour implements ItemLike { for (net.minecraft.world.item.ItemStack drop : net.minecraft.world.level.block.Block.getDrops(state, world.getMinecraftWorld(), pos, blockEntity)) { items.add(org.bukkit.craftbukkit.inventory.CraftItemStack.asBukkitCopy(drop)); } @@ -58,7 +58,7 @@ index 6ec04bf5cd1f7f2e74d86daa95209bd2f2124b91..68b94b4ebd710f3ab18f397d9dfa0ef5 } } -@@ -433,7 +441,7 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -420,7 +428,7 @@ public class Block extends BlockBehaviour implements ItemLike { player.awardStat(Stats.BLOCK_MINED.get(this)); player.causeFoodExhaustion(0.005F, org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.BLOCK_MINED); // CraftBukkit - EntityExhaustionEvent if (includeDrops) { // Paper - fix drops not preventing stats/food exhaustion @@ -68,10 +68,10 @@ index 6ec04bf5cd1f7f2e74d86daa95209bd2f2124b91..68b94b4ebd710f3ab18f397d9dfa0ef5 } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 42a086dcebcdba6ce19a8d0e77ba88ba91d63669..7ba5d00516dc310355d08dda955c934fe26786ee 100644 +index a274d0c3b4cceb2688a41ac1c3fbaa1a03704224..4c6ab71c3222ce03edd70abef35c71398d885c13 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -1203,6 +1203,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1197,6 +1197,7 @@ public abstract class BlockBehaviour implements FeatureElement { public void spawnAfterBreak(ServerLevel world, BlockPos pos, ItemStack tool, boolean dropExperience) { this.getBlock().spawnAfterBreak(this.asState(), world, pos, tool, dropExperience); diff --git a/patches/server/1022-Fixup-NamespacedKey-handling.patch b/patches/server/1007-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1022-Fixup-NamespacedKey-handling.patch rename to patches/server/1007-Fixup-NamespacedKey-handling.patch diff --git a/patches/server/1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/1008-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 95% rename from patches/server/1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/1008-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index 82f9b1f9d975..b72c50ec11a1 100644 --- a/patches/server/1023-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/1008-Reduce-allocation-of-Vec3D-by-entity-tracker.patch @@ -18,10 +18,10 @@ index 3c4ac79c094dc2fff7de94150a34b7bf814ac0de..38b56923a642afc1cb411480ba03cc78 @VisibleForTesting static long encode(double value) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 303ab1ea6747bb71adbd3a09e419b2677c9b8c5f..90393101fddd54f60b0b173beffd8650ad23349e 100644 +index fa29444c43925eabe5c26cafaefb46ebb246b006..370747aefba28dbfce59f45d303d47db9bfceb42 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1409,10 +1409,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1275,10 +1275,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void updatePlayer(ServerPlayer player) { org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot if (player != this.entity) { diff --git a/patches/server/1024-Write-SavedData-IO-async.patch b/patches/server/1009-Write-SavedData-IO-async.patch similarity index 100% rename from patches/server/1024-Write-SavedData-IO-async.patch rename to patches/server/1009-Write-SavedData-IO-async.patch diff --git a/patches/server/0358-Optimize-Collision-to-not-load-chunks.patch b/patches/server/1010-Optimize-Collision-to-not-load-chunks.patch similarity index 95% rename from patches/server/0358-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/1010-Optimize-Collision-to-not-load-chunks.patch index 43cbe7752ef5..10741651991a 100644 --- a/patches/server/0358-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/1010-Optimize-Collision-to-not-load-chunks.patch @@ -14,10 +14,10 @@ movement will load only the chunk the player enters anyways and avoids loading massive amounts of surrounding chunks due to large AABB lookups. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 81acbabe942de6f1716e384dc4e9cbd451f0a535..37b53bfe58689f498a48ad5e0e59d98462ccdd7f 100644 +index 17573871e13affb72e282da02eaba395808b3d9d..f168c9bb2fa3ca5b3168fb4c420a77e5bba6185b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -820,6 +820,7 @@ public abstract class PlayerList { +@@ -935,6 +935,7 @@ public abstract class PlayerList { entityplayer1.setShiftKeyDown(false); entityplayer1.forceSetPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); @@ -26,10 +26,10 @@ index 81acbabe942de6f1716e384dc4e9cbd451f0a535..37b53bfe58689f498a48ad5e0e59d984 // CraftBukkit end entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9efddedbe5feebf2f91eb674a9224054dba6cff3..538931a474841e7efae505f5aeae58715108da1b 100644 +index 3d7c6d38dba3e74bc0b868ee5efb7cc80bc0352c..c20a9fb40a2c3f555096299de662b5488c00ee26 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -240,6 +240,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -241,6 +241,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason; // Paper - Entity#getEntitySpawnReason public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper diff --git a/patches/server/0360-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/1011-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 93% rename from patches/server/0360-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/server/1011-Optimize-GoalSelector-Goal.Flag-Set-operations.patch index 70dff6f0dc9c..e43e1e88f693 100644 --- a/patches/server/0360-Optimize-GoalSelector-Goal.Flag-Set-operations.patch +++ b/patches/server/1011-Optimize-GoalSelector-Goal.Flag-Set-operations.patch @@ -7,20 +7,28 @@ Optimise the stream.anyMatch statement to move to a bitset where we can replace the call with a single bitwise operation. diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java -index 6667ecc4b7eded4e20a415cef1e1b1179e6710b8..4379b9948f1eecfe6fd7dea98e298ad5f761019a 100644 +index 16f9a98b8a939e5ca7e2dc04f87134a7ed66736b..54a2ce8c7069e91a939fe03de4349385705b0c67 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java -@@ -4,7 +4,8 @@ import java.util.EnumSet; +@@ -4,7 +4,16 @@ import java.util.EnumSet; import net.minecraft.util.Mth; public abstract class Goal { - private final EnumSet flags = EnumSet.noneOf(Goal.Flag.class); + private final EnumSet flags = EnumSet.noneOf(Goal.Flag.class); // Paper unused, but dummy to prevent plugins from crashing as hard. Theyll need to support paper in a special case if this is super important, but really doesn't seem like it would be. + private final com.destroystokyo.paper.util.set.OptimizedSmallEnumSet goalTypes = new com.destroystokyo.paper.util.set.OptimizedSmallEnumSet<>(Goal.Flag.class); // Paper - remove streams from pathfindergoalselector ++ ++ // Paper start - remove streams from pathfindergoalselector; make sure types are not empty ++ public Goal() { ++ if (this.goalTypes.size() == 0) { ++ this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR); ++ } ++ } ++ // Paper end - remove streams from pathfindergoalselector public abstract boolean canUse(); -@@ -30,8 +31,10 @@ public abstract class Goal { +@@ -30,8 +39,13 @@ public abstract class Goal { } public void setFlags(EnumSet controls) { @@ -29,11 +37,14 @@ index 6667ecc4b7eded4e20a415cef1e1b1179e6710b8..4379b9948f1eecfe6fd7dea98e298ad5 + // Paper start - remove streams from pathfindergoalselector + this.goalTypes.clear(); + this.goalTypes.addAllUnchecked(controls); ++ if (this.goalTypes.size() == 0) { ++ this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR); ++ } + // Paper end - remove streams from pathfindergoalselector } @Override -@@ -39,8 +42,10 @@ public abstract class Goal { +@@ -39,8 +53,10 @@ public abstract class Goal { return this.getClass().getSimpleName(); } diff --git a/patches/server/0361-Improved-Watchdog-Support.patch b/patches/server/1012-Improved-Watchdog-Support.patch similarity index 90% rename from patches/server/0361-Improved-Watchdog-Support.patch rename to patches/server/1012-Improved-Watchdog-Support.patch index 426ef801d8f5..cc36f13c7c9f 100644 --- a/patches/server/0361-Improved-Watchdog-Support.patch +++ b/patches/server/1012-Improved-Watchdog-Support.patch @@ -59,10 +59,10 @@ index 6aaed8e8bf8c721fc834da5c76ac72a4c3e92458..4b002e8b75d117b726b0de274a76d359 // Many servers tend to restart at a fixed time at xx:00 which causes an uneven distribution of requests on the // bStats backend. To circumvent this problem, we introduce some randomness into the initial and second delay. diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java -index a9a0248b1bd1ac454064e977b61f9b7d80962ff8..059b1a0bf048af6a28c322f35da3d3cbbe426546 100644 +index 6f2452de76e8f5fcc1367066e0e753740764eb98..e047dee632022abfe05865d1e71838be8d5d053a 100644 --- a/src/main/java/net/minecraft/CrashReport.java +++ b/src/main/java/net/minecraft/CrashReport.java -@@ -233,6 +233,7 @@ public class CrashReport { +@@ -234,6 +234,7 @@ public class CrashReport { } public static CrashReport forThrowable(Throwable cause, String title) { @@ -71,7 +71,7 @@ index a9a0248b1bd1ac454064e977b61f9b7d80962ff8..059b1a0bf048af6a28c322f35da3d3cb cause = cause.getCause(); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5cb0f93bc7d4495e65674c22de2ebd8854c696fe..570c163e4a56206d1cf259ee1ffcb6f865f72b1c 100644 +index 6ee3eb03967f020d96e4770b71ae39df3e69a79c..69b3d89a352fe5cfd51e2e566c9fa4dfbd765263 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -297,7 +297,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system -@@ -914,6 +917,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && new File( split[0] ).isFile() ) diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index 230d55820778e84c1c8aa2b013ae0e5e35568ea1..5ca863aa1859922fa359eba32539229db40e5b98 100644 +index a15749bcfb2b36a31801cb1a26b7181ce304e0ee..dca163ff5436f1007383c8261cac1ac7c0613f23 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java @@ -11,6 +11,7 @@ import org.bukkit.Bukkit; @@ -528,7 +532,7 @@ index 230d55820778e84c1c8aa2b013ae0e5e35568ea1..5ca863aa1859922fa359eba32539229d break; } // Paper end diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml -index ea4e2161c0bd43884055cc6b8d70b2139f70e720..266b4e6fb3988b5848021c83fdc68e342c70b188 100644 +index 32e64b3866bdd1489a90339bda2268adafbb15de..675cd61221e807aadf28322b46c3daa1370241b5 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -1,5 +1,5 @@ diff --git a/patches/server/0378-Optimize-Voxel-Shape-Merging.patch b/patches/server/1013-Optimize-Voxel-Shape-Merging.patch similarity index 100% rename from patches/server/0378-Optimize-Voxel-Shape-Merging.patch rename to patches/server/1013-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/server/0391-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/1014-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch similarity index 90% rename from patches/server/0391-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch rename to patches/server/1014-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch index 9c31c335b109..86d6309f5baf 100644 --- a/patches/server/0391-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch +++ b/patches/server/1014-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch @@ -13,7 +13,7 @@ A config is provided if you rather let players use these exploits, and let them destroy the worlds End Portals and get on top of the nether easy. diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index b1fdfae75aeea78ca77987e40242bf498447bc08..cf81854facadaf3c1f860bcaaf69db463a31b0c9 100644 +index 4aadf445daee88cc849929783eeddfa4aa005581..4d51baab29b1a913c3efef2cb4ab0cac6c8cf38a 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -191,6 +191,7 @@ public class Explosion { @@ -25,10 +25,10 @@ index b1fdfae75aeea78ca77987e40242bf498447bc08..cf81854facadaf3c1f860bcaaf69db46 if (!this.level.isInWorldBounds(blockposition)) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 43c5316fde139f92ebe9c0db38ccd8dad0402975..92f250b9cc965a433dc9b9de1f9bfeb2acf4363e 100644 +index 1e78a00ab36362ff7650410ed2af1a822613de4f..e5944ff3c1118e57c9e7a14cbb5181b2d7f7a79a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -520,6 +520,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -545,6 +545,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { @@ -40,7 +40,7 @@ index 43c5316fde139f92ebe9c0db38ccd8dad0402975..92f250b9cc965a433dc9b9de1f9bfeb2 if (blockstate == null) { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 89a62fbeeb78c864938a1cea84178478c6dc1b34..5e5199b50847958f7abc6d8e42cfb6806df8421f 100644 +index 63217d3db86b467f3358730eb8b9b3c941558bab..68b94b4ebd710f3ab18f397d9dfa0ef5b8f182e0 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -90,6 +90,19 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -64,7 +64,7 @@ index 89a62fbeeb78c864938a1cea84178478c6dc1b34..5e5199b50847958f7abc6d8e42cfb680 public co.aikar.timings.Timing getTiming() { if (timing == null) { diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java -index b3732a6246a2b011e36c5c35fa2ac7749e75db16..e4a3c937950b26e81b89d6ddcf3d6c2794ed934d 100644 +index 3dfe79684f662ac7cae4583bfe03a633438b4df7..be74adc86f0ca467f3b59e7b57fd47a8f381d86e 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonBaseBlock.java @@ -212,6 +212,12 @@ public class PistonBaseBlock extends DirectionalBlock { @@ -80,16 +80,16 @@ index b3732a6246a2b011e36c5c35fa2ac7749e75db16..e4a3c937950b26e81b89d6ddcf3d6c27 BlockState iblockdata1 = (BlockState) state.setValue(PistonBaseBlock.EXTENDED, true); if (!world.isClientSide) { -@@ -245,7 +251,7 @@ public class PistonBaseBlock extends DirectionalBlock { - BlockState iblockdata2 = (BlockState) ((BlockState) Blocks.MOVING_PISTON.defaultBlockState().setValue(MovingPistonBlock.FACING, enumdirection)).setValue(MovingPistonBlock.TYPE, this.isSticky ? PistonType.STICKY : PistonType.DEFAULT); - +@@ -252,7 +258,7 @@ public class PistonBaseBlock extends DirectionalBlock { + } + // Paper end - Fix sticky pistons and BlockPistonRetractEvent world.setBlock(pos, iblockdata2, 20); - world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); + world.setBlockEntity(MovingPistonBlock.newMovingBlockEntity(pos, iblockdata2, (BlockState) this.defaultBlockState().setValue(PistonBaseBlock.FACING, Direction.from3DDataValue(data & 7)), enumdirection, false, true)); // Paper - Protect Bedrock and End Portal/Frames from being destroyed; diff on change world.blockUpdated(pos, iblockdata2.getBlock()); iblockdata2.updateNeighbourShapes(world, pos, 2); if (this.isSticky) { -@@ -274,7 +280,14 @@ public class PistonBaseBlock extends DirectionalBlock { +@@ -288,7 +294,14 @@ public class PistonBaseBlock extends DirectionalBlock { } } } else { @@ -106,10 +106,10 @@ index b3732a6246a2b011e36c5c35fa2ac7749e75db16..e4a3c937950b26e81b89d6ddcf3d6c27 world.playSound((Player) null, pos, SoundEvents.PISTON_CONTRACT, SoundSource.BLOCKS, 0.5F, world.random.nextFloat() * 0.15F + 0.6F); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 7e4264f87a0f81db71d49dbede32a1bad87f7ca8..2d1062d2b0412180cc08765ecf9b0a071983c06a 100644 +index 4c6ab71c3222ce03edd70abef35c71398d885c13..7ba5d00516dc310355d08dda955c934fe26786ee 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -182,7 +182,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -189,7 +189,7 @@ public abstract class BlockBehaviour implements FeatureElement { /** @deprecated */ @Deprecated public void onExplosionHit(BlockState state, Level world, BlockPos pos, Explosion explosion, BiConsumer stackMerger) { @@ -118,7 +118,7 @@ index 7e4264f87a0f81db71d49dbede32a1bad87f7ca8..2d1062d2b0412180cc08765ecf9b0a07 Block block = state.getBlock(); boolean flag = explosion.getIndirectSourceEntity() instanceof Player; -@@ -278,7 +278,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -285,7 +285,7 @@ public abstract class BlockBehaviour implements FeatureElement { /** @deprecated */ @Deprecated public boolean canBeReplaced(BlockState state, BlockPlaceContext context) { @@ -127,7 +127,7 @@ index 7e4264f87a0f81db71d49dbede32a1bad87f7ca8..2d1062d2b0412180cc08765ecf9b0a07 } /** @deprecated */ -@@ -958,6 +958,12 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -965,6 +965,12 @@ public abstract class BlockBehaviour implements FeatureElement { return this.legacySolid; } @@ -140,7 +140,7 @@ index 7e4264f87a0f81db71d49dbede32a1bad87f7ca8..2d1062d2b0412180cc08765ecf9b0a07 public boolean isValidSpawn(BlockGetter world, BlockPos pos, EntityType type) { return this.getBlock().properties.isValidSpawn.test(this.asState(), world, pos, type); } -@@ -1061,7 +1067,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1068,7 +1074,7 @@ public abstract class BlockBehaviour implements FeatureElement { } public PushReaction getPistonPushReaction() { diff --git a/patches/server/0405-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/1015-Use-distance-map-to-optimise-entity-tracker.patch similarity index 96% rename from patches/server/0405-Use-distance-map-to-optimise-entity-tracker.patch rename to patches/server/1015-Use-distance-map-to-optimise-entity-tracker.patch index c3ef95a6a14f..03063e59b490 100644 --- a/patches/server/0405-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/1015-Use-distance-map-to-optimise-entity-tracker.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use distance map to optimise entity tracker Use the distance map to find candidate players for tracking. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 2785619ed6d04e06a25bfbb2a7fbd99f81c1f858..bdda124f6cc89b8a7ed198fdf095aee5f3f24ce3 100644 +index 370747aefba28dbfce59f45d303d47db9bfceb42..90393101fddd54f60b0b173beffd8650ad23349e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -146,6 +146,23 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -124,7 +124,7 @@ index 2785619ed6d04e06a25bfbb2a7fbd99f81c1f858..bdda124f6cc89b8a7ed198fdf095aee5 } // Paper start -@@ -925,17 +1005,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -943,17 +1023,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void move(ServerPlayer player) { @@ -143,7 +143,7 @@ index 2785619ed6d04e06a25bfbb2a7fbd99f81c1f858..bdda124f6cc89b8a7ed198fdf095aee5 SectionPos sectionposition = player.getLastSectionPos(); SectionPos sectionposition1 = SectionPos.of((EntityAccess) player); -@@ -1012,7 +1082,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1030,7 +1100,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker this.entityMap.put(entity.getId(), playerchunkmap_entitytracker); @@ -152,7 +152,7 @@ index 2785619ed6d04e06a25bfbb2a7fbd99f81c1f858..bdda124f6cc89b8a7ed198fdf095aee5 if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -1056,9 +1126,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1074,9 +1144,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = null; // Paper - We're no longer tracked } @@ -192,7 +192,7 @@ index 2785619ed6d04e06a25bfbb2a7fbd99f81c1f858..bdda124f6cc89b8a7ed198fdf095aee5 List list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); -@@ -1208,6 +1306,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1226,6 +1324,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.lastSectionPos = SectionPos.of((EntityAccess) entity); } @@ -236,7 +236,7 @@ index 2785619ed6d04e06a25bfbb2a7fbd99f81c1f858..bdda124f6cc89b8a7ed198fdf095aee5 return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index be9b96f6b725c53aec5c67c8387305d52da3acfd..f51453bd3018667aa491c9b64b6f9c4d5c703d7a 100644 +index c20a9fb40a2c3f555096299de662b5488c00ee26..199624dee66e0d47d110ee077646111cbdf2ccbd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -56,6 +56,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; @@ -247,10 +247,10 @@ index be9b96f6b725c53aec5c67c8387305d52da3acfd..f51453bd3018667aa491c9b64b6f9c4d import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -@@ -487,6 +488,38 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S - - public boolean updatingSectionStatus = false; - // Paper end +@@ -533,6 +534,38 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S + this.teleportTo(worldserver, null); + } + // Paper end - make end portalling safe + // Paper start - optimise entity tracking + final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this); + diff --git a/patches/server/0412-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1016-Optimize-Bit-Operations-by-inlining.patch similarity index 99% rename from patches/server/0412-Optimize-Bit-Operations-by-inlining.patch rename to patches/server/1016-Optimize-Bit-Operations-by-inlining.patch index 8544e7a4ec00..269787b9ed6a 100644 --- a/patches/server/0412-Optimize-Bit-Operations-by-inlining.patch +++ b/patches/server/1016-Optimize-Bit-Operations-by-inlining.patch @@ -7,7 +7,7 @@ Inline bit operations and reduce instruction count to make these hot operations faster diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java -index 3b3d81886d50ee6510ff366e11817a578c645089..50ba9e57d60df7308f7445540b3f412a0edf6065 100644 +index 541cef99113af865b995af2cfb7a1e4724dd8878..e17fa30966dea2836fb791becd032fc7d5cc2611 100644 --- a/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java @@ -37,15 +37,16 @@ public class BlockPos extends Vec3i { diff --git a/patches/server/0417-Remove-streams-from-hot-code.patch b/patches/server/1017-Remove-streams-from-hot-code.patch similarity index 99% rename from patches/server/0417-Remove-streams-from-hot-code.patch rename to patches/server/1017-Remove-streams-from-hot-code.patch index cbf894f942cc..75a38173c74f 100644 --- a/patches/server/0417-Remove-streams-from-hot-code.patch +++ b/patches/server/1017-Remove-streams-from-hot-code.patch @@ -7,7 +7,7 @@ Co-authored-by: Bjarne Koll Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java -index 419eadbe31b86b7192fd7a63268d547705e7c7ce..281b5cf91135984a37ad013614c910f7d4d2fee3 100644 +index 4b31a91a8d8a3b231e323692d0a0f7ae04dc7e89..79e7a7adf9f9d8b9fee7ae3bb3bebab86fa7fd72 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/GateBehavior.java @@ -52,7 +52,7 @@ public class GateBehavior implements BehaviorControl diff --git a/patches/server/0443-Eigencraft-redstone-implementation.patch b/patches/server/1018-Eigencraft-redstone-implementation.patch similarity index 100% rename from patches/server/0443-Eigencraft-redstone-implementation.patch rename to patches/server/1018-Eigencraft-redstone-implementation.patch diff --git a/patches/server/0473-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1019-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/server/0473-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/1019-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/server/0494-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/1020-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch similarity index 98% rename from patches/server/0494-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch rename to patches/server/1020-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch index 23c6573d82af..14c24b80b2be 100644 --- a/patches/server/0494-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch +++ b/patches/server/1020-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch @@ -37,10 +37,10 @@ index 9bc5a9592cabe087effc03e5347ea1d75794960b..4e6c2f6b2e54a4c126e9a026b9cad05c CriteriaTriggers.TRADE.trigger((ServerPlayer) this.tradingPlayer, this, offer.getResult()); } diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -index 52e57fa3b25dce10c17682964cbd4bcb4c130dc6..1465dbc29fc34bfe6ebb53e95fa6a4cbf2127a6c 100644 +index eef0d3c59f0ce6e89033a5e228d31b63339c2773..48f634a7521d31c1e9dfd3cfc83139d428dbd37a 100644 --- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java -@@ -760,6 +760,14 @@ public abstract class AbstractContainerMenu { +@@ -768,6 +768,14 @@ public abstract class AbstractContainerMenu { public abstract boolean stillValid(Player player); protected boolean moveItemStackTo(ItemStack stack, int startIndex, int endIndex, boolean fromLast) { @@ -55,7 +55,7 @@ index 52e57fa3b25dce10c17682964cbd4bcb4c130dc6..1465dbc29fc34bfe6ebb53e95fa6a4cb boolean flag1 = false; int k = startIndex; -@@ -782,18 +790,27 @@ public abstract class AbstractContainerMenu { +@@ -790,18 +798,27 @@ public abstract class AbstractContainerMenu { slot = (Slot) this.slots.get(k); itemstack1 = slot.getItem(); @@ -83,7 +83,7 @@ index 52e57fa3b25dce10c17682964cbd4bcb4c130dc6..1465dbc29fc34bfe6ebb53e95fa6a4cb flag1 = true; } } -@@ -824,14 +841,33 @@ public abstract class AbstractContainerMenu { +@@ -832,14 +849,33 @@ public abstract class AbstractContainerMenu { slot = (Slot) this.slots.get(k); itemstack1 = slot.getItem(); diff --git a/patches/server/0625-Improve-boat-collision-performance.patch b/patches/server/1021-Improve-boat-collision-performance.patch similarity index 91% rename from patches/server/0625-Improve-boat-collision-performance.patch rename to patches/server/1021-Improve-boat-collision-performance.patch index 18d0eec23083..083f40bc9c46 100644 --- a/patches/server/0625-Improve-boat-collision-performance.patch +++ b/patches/server/1021-Improve-boat-collision-performance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Improve boat collision performance diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 765e4bc00a0526aab6e263dae7233f63f7f31498..eb80741b313daab36dcfeb1079eb0fbb19614904 100644 +index edf937591abf62416bd692e40b7b7a6badbe877d..b40864e41e1506884fdefefbf3cf4833a8f706c3 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -121,6 +121,7 @@ public class Util { @@ -17,10 +17,10 @@ index 765e4bc00a0526aab6e263dae7233f63f7f31498..eb80741b313daab36dcfeb1079eb0fbb }; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8673e4eff6bd66b5cdf0fc6101aa9ff9c226dbfe..36ffb7f61e2e29a67c069336f251172130dda207 100644 +index ec495c0080e15b1baeeb57cd7c80d2e6b06e7d2e..b920f72e659956cc2d2d44743caddb0136d467e4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1413,7 +1413,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1437,7 +1437,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (!source.is(DamageTypeTags.IS_PROJECTILE)) { Entity entity = source.getDirectEntity(); @@ -29,7 +29,7 @@ index 8673e4eff6bd66b5cdf0fc6101aa9ff9c226dbfe..36ffb7f61e2e29a67c069336f2511721 LivingEntity entityliving = (LivingEntity) entity; this.blockUsingShield(entityliving); -@@ -1507,11 +1507,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1531,11 +1531,12 @@ public abstract class LivingEntity extends Entity implements Attackable { } if (entity1 != null && !source.is(DamageTypeTags.NO_KNOCKBACK)) { @@ -44,7 +44,7 @@ index 8673e4eff6bd66b5cdf0fc6101aa9ff9c226dbfe..36ffb7f61e2e29a67c069336f2511721 d0 = (Math.random() - Math.random()) * 0.01D; } -@@ -2241,7 +2242,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2265,7 +2266,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.hurtCurrentlyUsedShield((float) -event.getDamage(DamageModifier.BLOCKING)); Entity entity = damagesource.getDirectEntity(); diff --git a/patches/server/0659-Optimise-general-POI-access.patch b/patches/server/1022-Optimise-general-POI-access.patch similarity index 99% rename from patches/server/0659-Optimise-general-POI-access.patch rename to patches/server/1022-Optimise-general-POI-access.patch index a92e0b765938..499482538675 100644 --- a/patches/server/0659-Optimise-general-POI-access.patch +++ b/patches/server/1022-Optimise-general-POI-access.patch @@ -841,10 +841,10 @@ index 0000000000000000000000000000000000000000..69be1761b3b5ba7b496c1c10a4db897e + } +} diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -index 9fd6cf0c98cbf6300ef23d4aab32a6110aeba665..d4c91e0a0c64fcb7f1145de3f30134cb1f1f8ee6 100644 +index a0799baca3ae05ef1ff818abfe6a53d28fd99246..abcc3ef59475ac170fd10b4dd4a4f3371faf17e0 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -@@ -62,7 +62,11 @@ public class AcquirePoi { +@@ -63,7 +63,11 @@ public class AcquirePoi { return true; } }; diff --git a/patches/server/0660-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/1023-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 97% rename from patches/server/0660-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/1023-Custom-table-implementation-for-blockstate-state-loo.patch index 0023c8bd8c56..52bdb3212cfc 100644 --- a/patches/server/0660-Custom-table-implementation-for-blockstate-state-loo.patch +++ b/patches/server/1023-Custom-table-implementation-for-blockstate-state-loo.patch @@ -246,7 +246,7 @@ index 89ba12d44865ecddebabbc39c769af4cd8c82702..5f285d190186a2ff5a61d05070593e1d } diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java -index bf7ed22094ac92a152e522bafccffb9589f84343..591ee974391c465be0e523e2da0f176436a7d567 100644 +index 8da64429eaf083578c672cd34f52dd42389ff396..bdd7d9c80eda872496272e46d8772634e44e622a 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java @@ -7,6 +7,13 @@ import java.util.Optional; @@ -264,7 +264,7 @@ index bf7ed22094ac92a152e522bafccffb9589f84343..591ee974391c465be0e523e2da0f1764 super(name, Boolean.class); } diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java -index 2d69d1c17f734ee38667d51e6fd0a268211ec595..034b2618aa178c003c34eb621c6beb7c30958a38 100644 +index 0a7a6c0e7635d0ada101074d4229df7edc6dd31b..e658d0b1a025192b48090e865b082ac4d99088d4 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java @@ -15,6 +15,15 @@ public class EnumProperty & StringRepresentable> extends Prope @@ -299,7 +299,7 @@ index 2d69d1c17f734ee38667d51e6fd0a268211ec595..034b2618aa178c003c34eb621c6beb7c @Override diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java -index 33268d953b30d384564eee6dfab2a37fa722e465..dfeec6c580963e4a6f907e1344e2265d39326027 100644 +index cbe6e4579cc55a427dd8f8fe403478faf6d35b8f..765b1092d50608d479bbbe09c457999790ecf42c 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java @@ -11,6 +11,16 @@ public class IntegerProperty extends Property { @@ -320,7 +320,7 @@ index 33268d953b30d384564eee6dfab2a37fa722e465..dfeec6c580963e4a6f907e1344e2265d super(name, Integer.class); if (min < 0) { diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java -index 66b8e23d799adaf872233ea44c54330d75135544..9d4faa3da8d62028074ce25f4a728e9ba5281428 100644 +index 08c2e4ba9147fbea41e0fce26ad20586832a525b..1d8c3f2e57aa9b0830cf7cfb6354fcf636e9c74b 100644 --- a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java +++ b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java @@ -24,6 +24,17 @@ public abstract class Property> { diff --git a/patches/server/1025-Execute-chunk-tasks-mid-tick.patch b/patches/server/1024-Execute-chunk-tasks-mid-tick.patch similarity index 98% rename from patches/server/1025-Execute-chunk-tasks-mid-tick.patch rename to patches/server/1024-Execute-chunk-tasks-mid-tick.patch index 1cb6d89d1d2e..5f51c7bab658 100644 --- a/patches/server/1025-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/1024-Execute-chunk-tasks-mid-tick.patch @@ -19,10 +19,10 @@ index 7a4234abf620b8394307fa01913bc00215a64e23..4b467f1af93452d13829f756d55dee18 private MinecraftTimings() {} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fe9a5820d82e5563b53d949af060e80cc7a259f6..9f4fc17622dd78b7c455de0bc2d8b772cc030024 100644 +index 69b3d89a352fe5cfd51e2e566c9fa4dfbd765263..8817f62324bcf8367bd6d4486e6ed99caf547f4f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1352,8 +1352,79 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper diff --git a/patches/server/1038-Improve-performance-of-mass-crafts.patch b/patches/server/1037-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/1038-Improve-performance-of-mass-crafts.patch rename to patches/server/1037-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/1039-Actually-optimise-explosions.patch b/patches/server/1038-Actually-optimise-explosions.patch similarity index 100% rename from patches/server/1039-Actually-optimise-explosions.patch rename to patches/server/1038-Actually-optimise-explosions.patch diff --git a/patches/server/1040-Optimise-chunk-tick-iteration.patch b/patches/server/1039-Optimise-chunk-tick-iteration.patch similarity index 100% rename from patches/server/1040-Optimise-chunk-tick-iteration.patch rename to patches/server/1039-Optimise-chunk-tick-iteration.patch diff --git a/patches/server/1041-Lag-compensation-ticks.patch b/patches/server/1040-Lag-compensation-ticks.patch similarity index 94% rename from patches/server/1041-Lag-compensation-ticks.patch rename to patches/server/1040-Lag-compensation-ticks.patch index b874637e1f92..7c7208dcd3f8 100644 --- a/patches/server/1041-Lag-compensation-ticks.patch +++ b/patches/server/1040-Lag-compensation-ticks.patch @@ -8,20 +8,18 @@ Areas affected by lag comepnsation: - Eating food items diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 093d9fa59fce871ba1d592482f7fc6616fd9b1ac..49ab2773658a2c6fababa316707762a8e2b19c58 100644 +index 8c6962029ae04285351e5f16ab4c010cd28f486a..c0ae62a5e9af48e7778b37d64aeef7e069256d4c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -311,6 +311,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -1685,6 +1688,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop Date: Tue, 23 Jan 2024 14:34:17 +0100 Subject: [PATCH 40/45] [ci skip] Add more patch identifying comments --- .../0050-Add-PlayerInitialSpawnEvent.patch | 4 +- ...urable-Disabling-Cat-Chest-Detection.patch | 4 +- ...052-Improve-Player-chat-API-handling.patch | 8 +-- ...chunks-are-slime-spawn-chunks-toggle.patch | 4 +- ...dd-configurable-portal-search-radius.patch | 10 ++-- .../0060-Add-exception-reporting-event.patch | 34 ++++++------- ...oreboards-for-non-players-by-default.patch | 8 +-- .../server/0063-Chunk-Save-Reattempt.patch | 14 +++--- ...urable-Non-Player-Arrow-Despawn-Rate.patch | 4 +- .../server/0070-Add-World-Util-Methods.patch | 15 +----- ...th-absorb-values-and-repair-bad-data.patch | 16 +++--- ...074-Use-a-Shared-Random-for-Entities.patch | 12 ++--- ...le-spawn-chances-for-skeleton-horses.patch | 4 +- ...ckPhysicsEvent-if-a-plugin-has-a-lis.patch | 14 +++--- ...Entity-AddTo-RemoveFrom-World-Events.patch | 2 +- patches/server/0080-EntityPathfindEvent.patch | 41 +++++++-------- ...egionFileCache-and-make-configurable.patch | 6 +-- ...2-Do-not-load-chunks-for-Pathfinding.patch | 10 ++-- ...gurable-random-tick-rates-for-blocks.patch | 10 ++-- ...g-BlockPlaceEvent-triggering-physics.patch | 2 +- patches/server/0086-Optimize-DataBits.patch | 50 +++++++++---------- .../0088-Configurable-Player-Collision.patch | 26 +++++----- ...ent-to-allow-plugins-to-handle-clien.patch | 6 +-- .../0090-Configurable-RCON-IP-address.patch | 6 +-- ...-to-configure-frosted_ice-properties.patch | 8 +-- ...item-frames-performance-and-bug-fixe.patch | 2 +- ...y-scoreboard-teams-to-scoreboard.dat.patch | 4 +- ...ble-API-and-replenishable-lootables.patch} | 6 +-- .../0098-Async-GameProfileCache-saving.patch | 22 ++++---- ...9-Optional-TNT-doesn-t-move-in-water.patch | 23 ++------- .../0102-Fix-global-sound-handling.patch | 4 +- ...vent-Pathfinding-out-of-World-Border.patch | 6 +-- ...0190-Block-Enderpearl-Travel-Exploit.patch | 2 +- ...ld.spawnParticle-API-and-add-Builder.patch | 4 +- .../0212-InventoryCloseEvent-Reason-API.patch | 12 ++--- ...ies-option-to-debug-dupe-uuid-issues.patch | 6 +-- .../0292-Entity-getEntitySpawnReason.patch | 10 ++-- ...le-Keep-Spawn-Loaded-range-per-world.patch | 6 +-- ...ptimise-EntityGetter-getPlayerByUUID.patch | 2 +- .../0327-Entity-Activation-Range-2.0.patch | 6 +-- patches/server/0333-Anti-Xray.patch | 12 ++--- .../0337-Add-debug-for-sync-chunk-loads.patch | 4 +- ...-PlayerChunkMap-adds-crashing-server.patch | 4 +- .../server/0359-Optimize-Pathfinding.patch | 4 +- ...nEvent-when-Player-is-actually-ready.patch | 12 +---- ...ktraces-in-log-messages-crash-report.patch | 12 ++--- ...-incremental-chunk-and-player-saving.patch | 10 ++-- patches/server/0418-Fix-SPIGOT-5989.patch | 10 ++-- ...geEvent-not-firing-for-all-use-cases.patch | 2 +- ...p-capture-to-capture-all-items-added.patch | 2 +- .../server/0465-Add-API-for-quit-reason.patch | 4 +- .../0467-Expose-world-spawn-angle.patch | 4 +- patches/server/0505-Remove-stale-POIs.patch | 2 +- .../0506-Fix-villager-boat-exploit.patch | 4 +- patches/server/0507-Add-sendOpLevel-API.patch | 8 +-- patches/server/0522-Add-EntityMoveEvent.patch | 12 ++--- ...disable-pathfinding-updates-on-block.patch | 2 +- ...0532-fix-converting-txt-to-json-file.patch | 6 +-- ...ed-item-when-player-has-disconnected.patch | 6 +-- .../server/0548-Add-bypass-host-check.patch | 4 +- ...pawnEvent-fix-passed-parameter-issue.patch | 10 ++-- .../0577-Add-Unix-domain-socket-support.patch | 4 +- ...cause-to-Weather-ThunderChangeEvents.patch | 2 +- .../0583-Add-PlayerKickEvent-causes.patch | 10 ++-- ...etChunkIfLoadedImmediately-in-places.patch | 6 +-- ...k-event-leave-message-not-being-sent.patch | 4 +- .../server/0616-Add-PlayerSetSpawnEvent.patch | 6 +-- ...o-find-targets-for-lightning-strikes.patch | 2 +- ...-logic-for-inventories-on-chunk-unlo.patch | 2 +- ...entory-not-closing-on-entity-removal.patch | 2 +- ...-data-to-disk-if-it-serializes-witho.patch | 6 +-- patches/server/0699-Validate-usernames.patch | 4 +- ...-configurable-height-for-slime-spawn.patch | 4 +- ...tead-of-display-name-in-PlayerList-g.patch | 4 +- patches/server/0758-Don-t-tick-markers.patch | 2 +- ...n-on-world-create-while-being-ticked.patch | 4 +- ...mpty-items-from-being-added-to-world.patch | 2 +- .../0806-Fix-a-bunch-of-vanilla-bugs.patch | 6 +-- ...ry-onTrackingStart-during-navigation.patch | 2 +- ...global-player-list-where-appropriate.patch | 4 +- patches/server/0833-Friction-API.patch | 8 +-- ...nts-being-fired-from-unloaded-chunks.patch | 2 +- .../server/0889-Fix-block-place-logic.patch | 4 +- ...Folia-scheduler-and-owned-region-API.patch | 8 +-- ...-API-for-updating-recipes-on-clients.patch | 6 +-- ...ix-missing-map-initialize-event-call.patch | 2 +- ...n-t-fire-sync-events-during-worldgen.patch | 6 +-- .../1009-Write-SavedData-IO-async.patch | 2 +- ...ptimize-Collision-to-not-load-chunks.patch | 6 +-- .../1012-Improved-Watchdog-Support.patch | 14 +++--- .../1024-Execute-chunk-tasks-mid-tick.patch | 6 +-- .../1025-Optimise-random-block-ticking.patch | 8 +-- ...l-more-information-in-watchdog-dumps.patch | 4 +- .../server/1029-Collision-optimisations.patch | 8 +-- ...nate-Current-redstone-implementation.patch | 8 +-- ...034-optimize-dirt-and-snow-spreading.patch | 4 +- patches/server/1036-Optimize-Hoppers.patch | 4 +- .../server/1040-Lag-compensation-ticks.patch | 8 +-- ...041-Optimise-nearby-player-retrieval.patch | 2 +- 99 files changed, 360 insertions(+), 393 deletions(-) rename patches/server/{0096-LootTable-API-Replenishable-Lootables-Feature.patch => 0096-LootTable-API-and-replenishable-lootables.patch} (99%) diff --git a/patches/server/0050-Add-PlayerInitialSpawnEvent.patch b/patches/server/0050-Add-PlayerInitialSpawnEvent.patch index a085a843bb6e..657f196ed2f1 100644 --- a/patches/server/0050-Add-PlayerInitialSpawnEvent.patch +++ b/patches/server/0050-Add-PlayerInitialSpawnEvent.patch @@ -12,7 +12,7 @@ improve setPosition to use raw public net.minecraft.world.entity.Entity setRot(FF)V diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index fdf3bf3decb14378f5e59e41bab26e965bc7be14..b74689297ca20efee391fe1da80377082d1758e5 100644 +index fdf3bf3decb14378f5e59e41bab26e965bc7be14..ffd73624360e76caef477aeb0074fc8eba13c1c6 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -227,7 +227,7 @@ public abstract class PlayerList { @@ -32,7 +32,7 @@ index fdf3bf3decb14378f5e59e41bab26e965bc7be14..b74689297ca20efee391fe1da8037708 + // Paper start - set raw so we aren't fully joined to the world (not added to chunk or world) + player.setPosRaw(loc.getX(), loc.getY(), loc.getZ()); + player.setRot(loc.getYaw(), loc.getPitch()); -+ // Paper end ++ // Paper end - set raw so we aren't fully joined to the world // Spigot end // CraftBukkit - Moved message to after join diff --git a/patches/server/0051-Configurable-Disabling-Cat-Chest-Detection.patch b/patches/server/0051-Configurable-Disabling-Cat-Chest-Detection.patch index acadfed2272b..1ebc3875d7e6 100644 --- a/patches/server/0051-Configurable-Disabling-Cat-Chest-Detection.patch +++ b/patches/server/0051-Configurable-Disabling-Cat-Chest-Detection.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable Disabling Cat Chest Detection Offers a gameplay feature to stop cats from blocking chests diff --git a/src/main/java/net/minecraft/world/level/block/ChestBlock.java b/src/main/java/net/minecraft/world/level/block/ChestBlock.java -index 3d153e5c48bc80ec969de9a32113537e03fb812b..9804ee2020e5cef23d3f5174d153fc149e611503 100644 +index 3d153e5c48bc80ec969de9a32113537e03fb812b..305bce4d833116cc21e64fdcdfe13f03e94ff4ba 100644 --- a/src/main/java/net/minecraft/world/level/block/ChestBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ChestBlock.java @@ -364,6 +364,11 @@ public class ChestBlock extends AbstractChestBlock implements @@ -17,7 +17,7 @@ index 3d153e5c48bc80ec969de9a32113537e03fb812b..9804ee2020e5cef23d3f5174d153fc14 + if (world.getMinecraftWorld().paperConfig().entities.behavior.disableChestCatDetection) { + return false; + } -+ // Paper end ++ // Paper end - Option to disable chest cat detection List list = world.getEntitiesOfClass(Cat.class, new AABB((double) pos.getX(), (double) (pos.getY() + 1), (double) pos.getZ(), (double) (pos.getX() + 1), (double) (pos.getY() + 2), (double) (pos.getZ() + 1))); if (!list.isEmpty()) { diff --git a/patches/server/0052-Improve-Player-chat-API-handling.patch b/patches/server/0052-Improve-Player-chat-API-handling.patch index 88533728b86c..cdc107e9f988 100644 --- a/patches/server/0052-Improve-Player-chat-API-handling.patch +++ b/patches/server/0052-Improve-Player-chat-API-handling.patch @@ -17,7 +17,7 @@ Co-authored-by: Jake Potrebic Co-authored-by: SoSeDiK diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d22341dd864ac3423ec4ae1e3f4febefe24ae3f6..8c8c3085711989c90ea9ae51b3d95abee284a71e 100644 +index e8e5773776060b7b6861c80ec736bc5740a262c8..64b5af3745642d2a2e2075cb70ef4defbee64d15 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1937,7 +1937,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -40,7 +40,7 @@ index d22341dd864ac3423ec4ae1e3f4febefe24ae3f6..8c8c3085711989c90ea9ae51b3d95abe if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e2da717c11f48573babe27d0dac1d679e8eb6964..b80e4acbb67d6f2fbe31b1e518c20d7ec0ec4e49 100644 +index 73ed8a00ed83a0f7da7a5f69e743850d7a5b76cc..7e7dfec65f1756e21eb79359e13d429fe1955bba 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -885,7 +885,7 @@ public final class CraftServer implements Server { @@ -53,7 +53,7 @@ index e2da717c11f48573babe27d0dac1d679e8eb6964..b80e4acbb67d6f2fbe31b1e518c20d7e if (this.commandMap.dispatch(sender, commandLine)) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 49d0e2988d2267c4721d8ce37a96eb1d3944ea5a..054ada5455c6570f86d9a010fcb8eaf57bf7151d 100644 +index 49d0e2988d2267c4721d8ce37a96eb1d3944ea5a..1ebbd53d545d4b9ac3341c6a68ec97a2f468fb48 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -498,7 +498,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -74,7 +74,7 @@ index 49d0e2988d2267c4721d8ce37a96eb1d3944ea5a..054ada5455c6570f86d9a010fcb8eaf5 + this.getHandle().connection.chat(msg, playerChatMessage, false); + } + } -+ // Paper end ++ // Paper end - Improve chat handling } @Override diff --git a/patches/server/0053-All-chunks-are-slime-spawn-chunks-toggle.patch b/patches/server/0053-All-chunks-are-slime-spawn-chunks-toggle.patch index e870c64acc4f..f6eb2e9da25c 100644 --- a/patches/server/0053-All-chunks-are-slime-spawn-chunks-toggle.patch +++ b/patches/server/0053-All-chunks-are-slime-spawn-chunks-toggle.patch @@ -5,7 +5,7 @@ Subject: [PATCH] All chunks are slime spawn chunks toggle diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index 8b2206c5c56341ecd96837bdb3e0c6ab7c874af5..ef382b08ff8e7f24500aed6752c76e6ffc3f0729 100644 +index 8b2206c5c56341ecd96837bdb3e0c6ab7c874af5..897c815fb448d1e9ca75b7f8b93b4021dccf7596 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java @@ -338,7 +338,7 @@ public class Slime extends Mob implements Enemy { @@ -13,7 +13,7 @@ index 8b2206c5c56341ecd96837bdb3e0c6ab7c874af5..ef382b08ff8e7f24500aed6752c76e6f ChunkPos chunkcoordintpair = new ChunkPos(pos); - boolean flag = WorldgenRandom.seedSlimeChunk(chunkcoordintpair.x, chunkcoordintpair.z, ((WorldGenLevel) world).getSeed(), world.getMinecraftWorld().spigotConfig.slimeSeed).nextInt(10) == 0; // Spigot -+ boolean flag = world.getMinecraftWorld().paperConfig().entities.spawning.allChunksAreSlimeChunks || WorldgenRandom.seedSlimeChunk(chunkcoordintpair.x, chunkcoordintpair.z, ((WorldGenLevel) world).getSeed(), world.getMinecraftWorld().spigotConfig.slimeSeed).nextInt(10) == 0; // Spigot // Paper ++ boolean flag = world.getMinecraftWorld().paperConfig().entities.spawning.allChunksAreSlimeChunks || WorldgenRandom.seedSlimeChunk(chunkcoordintpair.x, chunkcoordintpair.z, ((WorldGenLevel) world).getSeed(), world.getMinecraftWorld().spigotConfig.slimeSeed).nextInt(10) == 0; // Spigot // Paper if (random.nextInt(10) == 0 && flag && pos.getY() < 40) { return checkMobSpawnRules(type, world, spawnReason, pos, random); diff --git a/patches/server/0057-Add-configurable-portal-search-radius.patch b/patches/server/0057-Add-configurable-portal-search-radius.patch index 94b5fff486a5..e36f7677d632 100644 --- a/patches/server/0057-Add-configurable-portal-search-radius.patch +++ b/patches/server/0057-Add-configurable-portal-search-radius.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add configurable portal search radius diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 450a55fd1b01ac67d911d152a04a3dee3aa0a2e9..6fe0883a6746a31acff7ede501e058b68ad6e78d 100644 +index 16fa26878fc7bcf5d22d779ce7b37a59582ba033..927428f11e005fff28f01cfb584a2789aad02afb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3233,7 +3233,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -13,18 +13,18 @@ index 450a55fd1b01ac67d911d152a04a3dee3aa0a2e9..6fe0883a6746a31acff7ede501e058b6 BlockPos blockposition = worldborder.clampToBounds(this.getX() * d0, this.getY(), this.getZ() * d0); // CraftBukkit start - CraftPortalEvent event = this.callPortalEvent(this, destination, new Vec3(blockposition.getX(), blockposition.getY(), blockposition.getZ()), PlayerTeleportEvent.TeleportCause.NETHER_PORTAL, flag2 ? 16 : 128, 16); -+ // Paper start ++ // Paper start - Configurable portal search radius + int portalSearchRadius = destination.paperConfig().environment.portalSearchRadius; + if (level.paperConfig().environment.portalSearchVanillaDimensionScaling && flag2) { // == THE_NETHER + portalSearchRadius = (int) (portalSearchRadius / destination.dimensionType().coordinateScale()); + } -+ // Paper end ++ // Paper end - Configurable portal search radius + CraftPortalEvent event = this.callPortalEvent(this, destination, new Vec3(blockposition.getX(), blockposition.getY(), blockposition.getZ()), PlayerTeleportEvent.TeleportCause.NETHER_PORTAL, portalSearchRadius, destination.paperConfig().environment.portalCreateRadius); // Paper start - configurable portal radius if (event == null) { return null; } diff --git a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java -index 0762bb248b3bd43a06e89aa1893a6189f0e13866..ed5210c63d964be7c28f59df315766794ec3ea1f 100644 +index 0762bb248b3bd43a06e89aa1893a6189f0e13866..431f1cf004471dbfb149f697300c3c7fe6bfda4d 100644 --- a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java +++ b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java @@ -43,7 +43,7 @@ public class PortalForcer { @@ -32,7 +32,7 @@ index 0762bb248b3bd43a06e89aa1893a6189f0e13866..ed5210c63d964be7c28f59df31576679 public Optional findPortalAround(BlockPos pos, boolean destIsNether, WorldBorder worldBorder) { // CraftBukkit start - return this.findPortalAround(pos, worldBorder, destIsNether ? 16 : 128); // Search Radius -+ return this.findPortalAround(pos, worldBorder, destIsNether ? level.paperConfig().environment.portalCreateRadius : level.paperConfig().environment.portalSearchRadius); // Search Radius // Paper - search Radius ++ return this.findPortalAround(pos, worldBorder, destIsNether ? level.paperConfig().environment.portalCreateRadius : level.paperConfig().environment.portalSearchRadius); // Search Radius // Paper - Configurable portal search radius } public Optional findPortalAround(BlockPos blockposition, WorldBorder worldborder, int i) { diff --git a/patches/server/0060-Add-exception-reporting-event.patch b/patches/server/0060-Add-exception-reporting-event.patch index 961ac4d600a8..adf9e7af3384 100644 --- a/patches/server/0060-Add-exception-reporting-event.patch +++ b/patches/server/0060-Add-exception-reporting-event.patch @@ -49,7 +49,7 @@ index 0000000000000000000000000000000000000000..f699ce18ca044f813e194ef2786b7ea8 + } +} diff --git a/src/main/java/net/minecraft/server/players/OldUsersConverter.java b/src/main/java/net/minecraft/server/players/OldUsersConverter.java -index 8d06e8d286da2573e40794adab695ff77e5afd86..78b11d6fd74fb0714a8013fdc78d096643c4f83c 100644 +index 8d06e8d286da2573e40794adab695ff77e5afd86..b3c6e76105ee26a79a84a203935530f859460652 100644 --- a/src/main/java/net/minecraft/server/players/OldUsersConverter.java +++ b/src/main/java/net/minecraft/server/players/OldUsersConverter.java @@ -1,5 +1,6 @@ @@ -63,7 +63,7 @@ index 8d06e8d286da2573e40794adab695ff77e5afd86..78b11d6fd74fb0714a8013fdc78d0966 root = NbtIo.readCompressed(new java.io.FileInputStream(file5), NbtAccounter.unlimitedHeap()); } catch (Exception exception) { exception.printStackTrace(); -+ ServerInternalException.reportInternalException(exception); // Paper ++ ServerInternalException.reportInternalException(exception); // Paper - ServerExceptionEvent } if (root != null) { @@ -71,24 +71,24 @@ index 8d06e8d286da2573e40794adab695ff77e5afd86..78b11d6fd74fb0714a8013fdc78d0966 NbtIo.writeCompressed(root, new java.io.FileOutputStream(file2)); } catch (Exception exception) { exception.printStackTrace(); -+ ServerInternalException.reportInternalException(exception); // Paper ++ ServerInternalException.reportInternalException(exception); // Paper - ServerExceptionEvent } } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/ai/village/VillageSiege.java b/src/main/java/net/minecraft/world/entity/ai/village/VillageSiege.java -index c6fb4c33d7ea52b88d8fc0d90748cbab7387c565..fed09b886f4fa0006d160e5f2abb00dfee45434d 100644 +index c6fb4c33d7ea52b88d8fc0d90748cbab7387c565..2b5b2869589991be37a4f128faabbff50e661470 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/VillageSiege.java +++ b/src/main/java/net/minecraft/world/entity/ai/village/VillageSiege.java @@ -118,6 +118,7 @@ public class VillageSiege implements CustomSpawner { entityzombie.finalizeSpawn(world, world.getCurrentDifficultyAt(entityzombie.blockPosition()), MobSpawnType.EVENT, (SpawnGroupData) null, (CompoundTag) null); } catch (Exception exception) { VillageSiege.LOGGER.warn("Failed to create zombie for village siege at {}", vec3d, exception); -+ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(exception); // Paper ++ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(exception); // Paper - ServerExceptionEvent return; } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8be40065d6f0d53d5a264464fc4be208c7bad3a9..9a39bf50668340a77bbfd45218c03d9c00a6ce1e 100644 +index 1b5eb2685c43804e5e4014ff1b70f52652be67f5..0032914a53154d11e2d36267771fd2da6d2f1d05 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1,5 +1,10 @@ @@ -106,19 +106,19 @@ index 8be40065d6f0d53d5a264464fc4be208c7bad3a9..9a39bf50668340a77bbfd45218c03d9c // Paper start - Prevent tile entity and entity crashes final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ()); MinecraftServer.LOGGER.error(msg, throwable); -+ getCraftServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable))); ++ getCraftServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable))); // Paper - ServerExceptionEvent entity.discard(); // Paper end } diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 5d65baba605dd83e5f74d526aeda36d8ede8c014..92e76dd39dc3575e9466031dd799080a98ad8b8d 100644 +index 5d65baba605dd83e5f74d526aeda36d8ede8c014..604766a286d00bb4b40c20482376fe80651beabe 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -291,6 +291,7 @@ public final class NaturalSpawner { NaturalSpawner.LOGGER.warn("Can't spawn entity of type: {}", BuiltInRegistries.ENTITY_TYPE.getKey(type)); } catch (Exception exception) { NaturalSpawner.LOGGER.warn("Failed to create mob", exception); -+ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(exception); // Paper ++ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(exception); // Paper - ServerExceptionEvent } return null; @@ -126,12 +126,12 @@ index 5d65baba605dd83e5f74d526aeda36d8ede8c014..92e76dd39dc3575e9466031dd799080a entity = biomesettingsmobs_c.type.create(world.getLevel()); } catch (Exception exception) { NaturalSpawner.LOGGER.warn("Failed to create mob", exception); -+ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(exception); // Paper ++ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(exception); // Paper - ServerExceptionEvent continue; } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index db3ee1f1d8429d3d646623877adc9f6920b7764f..b589b67471367f37e6d1f4737122914a649c01b3 100644 +index db3ee1f1d8429d3d646623877adc9f6920b7764f..7208b7b916ff179e8dbe9925fb246e3652b4f9c2 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -1,6 +1,7 @@ @@ -150,7 +150,7 @@ index db3ee1f1d8429d3d646623877adc9f6920b7764f..b589b67471367f37e6d1f4737122914a - + " (" + this.getBlockState(blockposition) + ") where there was no entity tile!"); - System.out.println("Chunk coordinates: " + (this.chunkPos.x * 16) + "," + (this.chunkPos.z * 16)); - new Exception().printStackTrace(); -+ // Paper start ++ // Paper start - ServerExceptionEvent + ServerInternalException e = new ServerInternalException( + "Attempted to place a tile entity (" + blockEntity + ") at " + blockEntity.getBlockPos().getX() + "," + + blockEntity.getBlockPos().getY() + "," + blockEntity.getBlockPos().getZ() @@ -159,7 +159,7 @@ index db3ee1f1d8429d3d646623877adc9f6920b7764f..b589b67471367f37e6d1f4737122914a + "\nWorld: " + level.getLevel().dimension().location()); + e.printStackTrace(); + ServerInternalException.reportInternalException(e); -+ // Paper end ++ // Paper end - ServerExceptionEvent // CraftBukkit end } } @@ -167,19 +167,19 @@ index db3ee1f1d8429d3d646623877adc9f6920b7764f..b589b67471367f37e6d1f4737122914a // Paper start - Prevent tile entity and entity crashes final String msg = String.format("BlockEntity threw exception at %s:%s,%s,%s", LevelChunk.this.getLevel().getWorld().getName(), this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()); net.minecraft.server.MinecraftServer.LOGGER.error(msg, throwable); -+ net.minecraft.world.level.chunk.LevelChunk.this.level.getCraftServer().getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new ServerInternalException(msg, throwable))); ++ net.minecraft.world.level.chunk.LevelChunk.this.level.getCraftServer().getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new ServerInternalException(msg, throwable))); // Paper - ServerExceptionEvent LevelChunk.this.removeBlockEntity(this.getPos()); // Paper end // Spigot start 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 5103081e8469dd5a393595eae00c6f6c9d0a5028..ab9681ba3a86212e0e23a9af8788eec1dbee36ab 100644 +index 5103081e8469dd5a393595eae00c6f6c9d0a5028..9623a7bac79af37016ba5a5b37d4ef0b3dcb7312 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 @@ -275,6 +275,7 @@ public class RegionFile implements AutoCloseable { return true; } } catch (IOException ioexception) { -+ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(ioexception); // Paper ++ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(ioexception); // Paper - ServerExceptionEvent return false; } } @@ -187,7 +187,7 @@ index 5103081e8469dd5a393595eae00c6f6c9d0a5028..ab9681ba3a86212e0e23a9af8788eec1 ((java.nio.Buffer) buf).position(5); // CraftBukkit - decompile error filechannel.write(buf); } catch (Throwable throwable) { -+ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(throwable); // Paper ++ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(throwable); // Paper - ServerExceptionEvent if (filechannel != null) { try { filechannel.close(); diff --git a/patches/server/0061-Disable-Scoreboards-for-non-players-by-default.patch b/patches/server/0061-Disable-Scoreboards-for-non-players-by-default.patch index 475344265b26..f9694767e4dd 100644 --- a/patches/server/0061-Disable-Scoreboards-for-non-players-by-default.patch +++ b/patches/server/0061-Disable-Scoreboards-for-non-players-by-default.patch @@ -11,26 +11,26 @@ So avoid looking up scoreboards and short circuit to the "not on a team" logic which is most likely to be true. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6fe0883a6746a31acff7ede501e058b68ad6e78d..08e3e87b2aa9d586cd1b441e7314d0775f7537c8 100644 +index 927428f11e005fff28f01cfb584a2789aad02afb..939707c42db4509aa71ccd43bbfe4c17e6bc2c3f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2860,6 +2860,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public PlayerTeam getTeam() { -+ if (!this.level().paperConfig().scoreboards.allowNonPlayerEntitiesOnScoreboards && !(this instanceof Player)) { return null; } // Paper ++ if (!this.level().paperConfig().scoreboards.allowNonPlayerEntitiesOnScoreboards && !(this instanceof Player)) { return null; } // Paper - Perf: Disable Scoreboards for non players by default return this.level().getScoreboard().getPlayersTeam(this.getScoreboardName()); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4afd257f30ab063c4805e8a3144f51d643c49db3..a43539db71a7344e9477918dc5c7b07d46903bea 100644 +index 2e47008a8ff1bb56b752d4eb880173b9edfbc4ad..3eeb40c2176a80b9e2a472d43671ae0fe087d9e7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -832,6 +832,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (nbt.contains("Team", 8)) { String s = nbt.getString("Team"); PlayerTeam scoreboardteam = this.level().getScoreboard().getPlayerTeam(s); -+ if (!this.level().paperConfig().scoreboards.allowNonPlayerEntitiesOnScoreboards && !(this instanceof net.minecraft.world.entity.player.Player)) { scoreboardteam = null; } // Paper ++ if (!this.level().paperConfig().scoreboards.allowNonPlayerEntitiesOnScoreboards && !(this instanceof net.minecraft.world.entity.player.Player)) { scoreboardteam = null; } // Paper - Perf: Disable Scoreboards for non players by default boolean flag = scoreboardteam != null && this.level().getScoreboard().addPlayerToTeam(this.getStringUUID(), scoreboardteam); if (!flag) { diff --git a/patches/server/0063-Chunk-Save-Reattempt.patch b/patches/server/0063-Chunk-Save-Reattempt.patch index 2717b86ad19c..9d576223e033 100644 --- a/patches/server/0063-Chunk-Save-Reattempt.patch +++ b/patches/server/0063-Chunk-Save-Reattempt.patch @@ -6,27 +6,27 @@ Subject: [PATCH] Chunk Save Reattempt We commonly have "Stream Closed" errors on chunk saving, so this code should re-try to save the chunk in the event of failure and hopefully prevent rollbacks. 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 ab9681ba3a86212e0e23a9af8788eec1dbee36ab..2a7f17726a161ddbcd0397fb4332de6980199c38 100644 +index 9623a7bac79af37016ba5a5b37d4ef0b3dcb7312..f3d169436ce05f1c56599cfe15a56671b7d13516 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 @@ -275,7 +275,7 @@ public class RegionFile implements AutoCloseable { return true; } } catch (IOException ioexception) { -- com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(ioexception); // Paper -+ com.destroystokyo.paper.util.SneakyThrow.sneaky(ioexception); // Paper - we want the upper try/catch to retry this +- com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(ioexception); // Paper - ServerExceptionEvent ++ com.destroystokyo.paper.util.SneakyThrow.sneaky(ioexception); // Paper - Chunk save reattempt; we want the upper try/catch to retry this return false; } } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 2b6ba2e30c9a4682d6deb2ab750d6923ad8469e4..2d00333f25828ef5912c925d1213a56c564d85c9 100644 +index 2b6ba2e30c9a4682d6deb2ab750d6923ad8469e4..fa592d5db10dbd4824de74658655ef61230ed431 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -209,6 +209,7 @@ public class RegionFileStorage implements AutoCloseable { } // Paper end - rewrite chunk system try { // Paper -+ int attempts = 0; Exception laste = null; while (attempts++ < 5) { try { // Paper ++ int attempts = 0; Exception laste = null; while (attempts++ < 5) { try { // Paper - Chunk save reattempt if (nbt == null) { regionfile.clear(pos); @@ -34,7 +34,7 @@ index 2b6ba2e30c9a4682d6deb2ab750d6923ad8469e4..2d00333f25828ef5912c925d1213a56c dataoutputstream.close(); } } -+ // Paper start ++ // Paper start - Chunk save reattempt + return; + } catch (Exception ex) { + laste = ex; @@ -45,7 +45,7 @@ index 2b6ba2e30c9a4682d6deb2ab750d6923ad8469e4..2d00333f25828ef5912c925d1213a56c + com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(laste); + net.minecraft.server.MinecraftServer.LOGGER.error("Failed to save chunk " + pos, laste); + } -+ // Paper end ++ // Paper end - Chunk save reattempt } finally { // Paper start regionfile.fileLock.unlock(); } // Paper end diff --git a/patches/server/0069-Configurable-Non-Player-Arrow-Despawn-Rate.patch b/patches/server/0069-Configurable-Non-Player-Arrow-Despawn-Rate.patch index b9e970478836..a2f39fff2f12 100644 --- a/patches/server/0069-Configurable-Non-Player-Arrow-Despawn-Rate.patch +++ b/patches/server/0069-Configurable-Non-Player-Arrow-Despawn-Rate.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable Non Player Arrow Despawn Rate Can set a much shorter despawn rate for arrows that players can not pick up. diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 95d49d1f47a9c04535e94350bdcb4da88a1e5d27..b24f828d39fc26b4f85f5c76010f0ba47e9fe05f 100644 +index 95d49d1f47a9c04535e94350bdcb4da88a1e5d27..0f700442a7559fac5d27d1fb6b3716f3853a9897 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -319,7 +319,7 @@ public abstract class AbstractArrow extends Projectile { @@ -14,7 +14,7 @@ index 95d49d1f47a9c04535e94350bdcb4da88a1e5d27..b24f828d39fc26b4f85f5c76010f0ba4 protected void tickDespawn() { ++this.life; - if (this.life >= ((this instanceof ThrownTrident) ? this.level().spigotConfig.tridentDespawnRate : this.level().spigotConfig.arrowDespawnRate)) { // Spigot -+ if (this.life >= (pickup == Pickup.CREATIVE_ONLY ? this.level().paperConfig().entities.spawning.creativeArrowDespawnRate.value() : (pickup == Pickup.DISALLOWED ? this.level().paperConfig().entities.spawning.nonPlayerArrowDespawnRate.value() : ((this instanceof ThrownTrident) ? this.level().spigotConfig.tridentDespawnRate : this.level().spigotConfig.arrowDespawnRate)))) { // Spigot // Paper - TODO: Extract this to init? ++ if (this.life >= (pickup == Pickup.CREATIVE_ONLY ? this.level().paperConfig().entities.spawning.creativeArrowDespawnRate.value() : (pickup == Pickup.DISALLOWED ? this.level().paperConfig().entities.spawning.nonPlayerArrowDespawnRate.value() : ((this instanceof ThrownTrident) ? this.level().spigotConfig.tridentDespawnRate : this.level().spigotConfig.arrowDespawnRate)))) { // Spigot // Paper - Configurable non-player arrow despawn rate; TODO: Extract this to init? this.discard(); } diff --git a/patches/server/0070-Add-World-Util-Methods.patch b/patches/server/0070-Add-World-Util-Methods.patch index 59a123af8b8f..288ee9797079 100644 --- a/patches/server/0070-Add-World-Util-Methods.patch +++ b/patches/server/0070-Add-World-Util-Methods.patch @@ -5,21 +5,8 @@ Subject: [PATCH] Add World Util Methods Methods that can be used for other patches to help improve logic. -diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f1b34765b436461f09e8b9122cb981e319684838..68035b041157ddbfcbefbcc3a2a3e2a18c558c2c 100644 ---- a/src/main/java/net/minecraft/server/level/ServerLevel.java -+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -222,7 +222,7 @@ public class ServerLevel extends Level implements WorldGenLevel { - public final LevelStorageSource.LevelStorageAccess convertable; - public final UUID uuid; - -- public LevelChunk getChunkIfLoaded(int x, int z) { -+ @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI - return this.chunkSource.getChunk(x, z, false); - } - diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 9a39bf50668340a77bbfd45218c03d9c00a6ce1e..076caf94ff0b91b1c3d2b8a335e3d67f006e0c73 100644 +index 0032914a53154d11e2d36267771fd2da6d2f1d05..85b1e406b856f3452fe44f909fa5475196f1cf58 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -345,6 +345,22 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch index 6d75ae43ca30..08709918bc14 100644 --- a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch +++ b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch @@ -5,7 +5,7 @@ Subject: [PATCH] handle NaN health/absorb values and repair bad data diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 497cd74cd6efc4ad3679fd1a7489ebd194030835..52c895bf50d722c81ab08c5f53c2bc1212ab5ef3 100644 +index 537ddaec422399dfa926936501d35bdc48b0baa3..966059931fa4b6c06dd5269be09db8cf9ca0bd51 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -793,7 +793,13 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -13,13 +13,13 @@ index 497cd74cd6efc4ad3679fd1a7489ebd194030835..52c895bf50d722c81ab08c5f53c2bc12 @Override public void readAdditionalSaveData(CompoundTag nbt) { - this.internalSetAbsorptionAmount(nbt.getFloat("AbsorptionAmount")); -+ // Paper start - jvm keeps optimizing the setter ++ // Paper start - Check for NaN + float absorptionAmount = nbt.getFloat("AbsorptionAmount"); + if (Float.isNaN(absorptionAmount)) { + absorptionAmount = 0; + } + this.internalSetAbsorptionAmount(absorptionAmount); -+ // Paper end ++ // Paper end - Check for NaN if (nbt.contains("Attributes", 9) && this.level() != null && !this.level().isClientSide) { this.getAttributes().load(nbt.getList("Attributes", 10)); } @@ -27,10 +27,10 @@ index 497cd74cd6efc4ad3679fd1a7489ebd194030835..52c895bf50d722c81ab08c5f53c2bc12 } public void setHealth(float health) { -+ // Paper start ++ // Paper start - Check for NaN + if (Float.isNaN(health)) { health = getMaxHealth(); if (this.valid) { + System.err.println("[NAN-HEALTH] " + getScoreboardName() + " had NaN health set"); -+ } } // Paper end ++ } } // Paper end - Check for NaN // CraftBukkit start - Handle scaled health if (this instanceof ServerPlayer) { org.bukkit.craftbukkit.entity.CraftPlayer player = ((ServerPlayer) this).getBukkitEntity(); @@ -39,19 +39,19 @@ index 497cd74cd6efc4ad3679fd1a7489ebd194030835..52c895bf50d722c81ab08c5f53c2bc12 public final void setAbsorptionAmount(float absorptionAmount) { - this.internalSetAbsorptionAmount(Mth.clamp(absorptionAmount, 0.0F, this.getMaxAbsorption())); -+ this.internalSetAbsorptionAmount(!Float.isNaN(absorptionAmount) ? Mth.clamp(absorptionAmount, 0.0F, this.getMaxAbsorption()) : 0.0F); // Paper ++ this.internalSetAbsorptionAmount(!Float.isNaN(absorptionAmount) ? Mth.clamp(absorptionAmount, 0.0F, this.getMaxAbsorption()) : 0.0F); // Paper - Check for NaN } protected void internalSetAbsorptionAmount(float absorptionAmount) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index babd5dd5a83682d2bc36f988f008e788257b4157..a40d4d486ed674aae6ff319879c2ca2b2e4ce2cb 100644 +index 1d48824c4cfd99ced6a70284aa3b7bce46af81fa..b15df5f55dc12c358df74df500f210976eaba048 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2232,6 +2232,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void setRealHealth(double health) { -+ if (Double.isNaN(health)) {return;} // Paper ++ if (Double.isNaN(health)) {return;} // Paper - Check for NaN this.health = health; } diff --git a/patches/server/0074-Use-a-Shared-Random-for-Entities.patch b/patches/server/0074-Use-a-Shared-Random-for-Entities.patch index 0c3d54988f32..111b8eab9546 100644 --- a/patches/server/0074-Use-a-Shared-Random-for-Entities.patch +++ b/patches/server/0074-Use-a-Shared-Random-for-Entities.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Use a Shared Random for Entities Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 76dddcd1a339842e6214bb1e4b813a858dbee63b..39ef390739c4bde28c87c1b83610602a86afd6ad 100644 +index 939707c42db4509aa71ccd43bbfe4c17e6bc2c3f..6d3c575d12b3c1cc7c06a4cf1b671a2de894892a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -165,6 +165,79 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return tag.contains("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level; } -+ // Paper start ++ // Paper start - Share random for entities to make them more random + public static RandomSource SHARED_RANDOM = new RandomRandomSource(); + private static final class RandomRandomSource extends java.util.Random implements net.minecraft.world.level.levelgen.BitRandomSource { + private boolean locked = false; @@ -84,7 +84,7 @@ index 76dddcd1a339842e6214bb1e4b813a858dbee63b..39ef390739c4bde28c87c1b83610602a + return super.nextGaussian(); + } + } -+ // Paper end ++ // Paper end - Share random for entities to make them more random + private CraftEntity bukkitEntity; @@ -94,12 +94,12 @@ index 76dddcd1a339842e6214bb1e4b813a858dbee63b..39ef390739c4bde28c87c1b83610602a this.stuckSpeedMultiplier = Vec3.ZERO; this.nextStep = 1.0F; - this.random = RandomSource.create(); -+ this.random = SHARED_RANDOM; // Paper ++ this.random = SHARED_RANDOM; // Paper - Share random for entities to make them more random this.remainingFireTicks = -this.getFireImmuneTicks(); this.fluidHeight = new Object2DoubleArrayMap(2); this.fluidOnEyes = new HashSet(); diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java -index 891d8b4c8cb73d5e310970066831ab3e2af14e91..f60c4cd0543fd5d50fa7e2c1a9e8381227adb540 100644 +index 891d8b4c8cb73d5e310970066831ab3e2af14e91..4f32597c7af34d599f6658fe4962d41624e60419 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Squid.java +++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java @@ -44,7 +44,7 @@ public class Squid extends WaterAnimal { @@ -107,7 +107,7 @@ index 891d8b4c8cb73d5e310970066831ab3e2af14e91..f60c4cd0543fd5d50fa7e2c1a9e83812 public Squid(EntityType type, Level world) { super(type, world); - this.random.setSeed((long)this.getId()); -+ //this.random.setSeed((long)this.getId()); // Paper - we set the random to shared, do not clobber the seed ++ //this.random.setSeed((long)this.getId()); // Paper - Share random for entities to make them more random this.tentacleSpeed = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F; } diff --git a/patches/server/0075-Configurable-spawn-chances-for-skeleton-horses.patch b/patches/server/0075-Configurable-spawn-chances-for-skeleton-horses.patch index 18fdfc4694ce..0dfd24368a9f 100644 --- a/patches/server/0075-Configurable-spawn-chances-for-skeleton-horses.patch +++ b/patches/server/0075-Configurable-spawn-chances-for-skeleton-horses.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable spawn chances for skeleton horses diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 68035b041157ddbfcbefbcc3a2a3e2a18c558c2c..148d1a15e861a26c8fd49204f9bd9821f3cde2fd 100644 +index 5a5bb0daf8074a428f18e01bb522a46e4672b2a6..817e0ddc8821dd112fc5aa72bbbe11fdd1b56488 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -851,7 +851,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -13,7 +13,7 @@ index 68035b041157ddbfcbefbcc3a2a3e2a18c558c2c..148d1a15e861a26c8fd49204f9bd9821 if (this.isRainingAt(blockposition)) { DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition); - boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * 0.01D && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); -+ boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper ++ boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper - Configurable spawn chances for skeleton horses if (flag1) { SkeletonHorse entityhorseskeleton = (SkeletonHorse) EntityType.SKELETON_HORSE.create(this); diff --git a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch index ff6fee931863..e525b3d00f07 100644 --- a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch +++ b/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch @@ -6,31 +6,31 @@ Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener Saves on some object allocation and processing when no plugin listens to this diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8072eedb5bc699aa5b04fbca39f4db30534cde4b..62a40958f3cd1fa42073071e23e4307beccad722 100644 +index 1c0238932eec690d369dc9d55069f8b6aa15ada3..53a135f9f61a29ddfff5aa7eb20b96a2f0fc1fdf 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1447,6 +1447,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper ++ worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2fe69d7f530adaba026d3903f109987ac8d7da8d..404193d1a674ae8e92b4fcf5efdec6052fff21b4 100644 +index 817e0ddc8821dd112fc5aa72bbbe11fdd1b56488..181a4e0e44cd05528c66ce87b653c33d6bd2fd03 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit start public final LevelStorageSource.LevelStorageAccess convertable; public final UUID uuid; -+ public boolean hasPhysicsEvent = true; // Paper ++ public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent - @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI + public LevelChunk getChunkIfLoaded(int x, int z) { return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0af602c33d9940a0db68b2245e8caed2d78518fe..cd3a99585a471981b9fa1f614ddddfce570ee0e7 100644 +index 48357a6af14af74195bd6c77488f7f1dc84221cf..1b1a4b91e7185013e9969fdb3a6582a5a6895663 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -583,7 +583,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -38,7 +38,7 @@ index 0af602c33d9940a0db68b2245e8caed2d78518fe..cd3a99585a471981b9fa1f614ddddfce iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam CraftWorld world = ((ServerLevel) this).getWorld(); - if (world != null) { -+ if (world != null && ((ServerLevel)this).hasPhysicsEvent) { // Paper ++ if (world != null && ((ServerLevel)this).hasPhysicsEvent) { // Paper - BlockPhysicsEvent BlockPhysicsEvent event = new BlockPhysicsEvent(world.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()), CraftBlockData.fromData(iblockdata)); this.getCraftServer().getPluginManager().callEvent(event); diff --git a/patches/server/0078-Entity-AddTo-RemoveFrom-World-Events.patch b/patches/server/0078-Entity-AddTo-RemoveFrom-World-Events.patch index 0a8704bc073e..7c2c9e53c60f 100644 --- a/patches/server/0078-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/patches/server/0078-Entity-AddTo-RemoveFrom-World-Events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity AddTo/RemoveFrom World Events diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f95d4fc714b98a86d732d16f0b783cd943ce0c15..ab55b028239f75b23a3e3fee10305a7896c2522b 100644 +index 181a4e0e44cd05528c66ce87b653c33d6bd2fd03..449f2ebc77a1850fc948bffc66e605f7bdc8efdd 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2415,6 +2415,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0080-EntityPathfindEvent.patch b/patches/server/0080-EntityPathfindEvent.patch index 0bab129aaf9f..c262d243bda7 100644 --- a/patches/server/0080-EntityPathfindEvent.patch +++ b/patches/server/0080-EntityPathfindEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] EntityPathfindEvent Fires when an Entity decides to start moving to a location. diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java -index 3db41017c6690d4519564496edd8e7365b2f5a22..027eef4ace908147285c8d72b612d16e4f925672 100644 +index 3db41017c6690d4519564496edd8e7365b2f5a22..e35c38feb62c3345d82636081decc09db9f061ab 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/FlyingPathNavigation.java @@ -40,7 +40,7 @@ public class FlyingPathNavigation extends PathNavigation { @@ -14,12 +14,12 @@ index 3db41017c6690d4519564496edd8e7365b2f5a22..027eef4ace908147285c8d72b612d16e @Override public Path createPath(Entity entity, int distance) { - return this.createPath(entity.blockPosition(), distance); -+ return this.createPath(entity.blockPosition(), entity, distance); // Paper - Forward target entity ++ return this.createPath(entity.blockPosition(), entity, distance); // Paper - EntityPathfindEvent } @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java -index 12564909abff7da4e5a4bb3d004a7ede2ffda12d..ac996b066415e461af1fcb71b19807401179c7f8 100644 +index 12564909abff7da4e5a4bb3d004a7ede2ffda12d..47de460ff5435ea6712c800c77093126908d0fce 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/GroundPathNavigation.java @@ -41,7 +41,7 @@ public class GroundPathNavigation extends PathNavigation { @@ -27,7 +27,7 @@ index 12564909abff7da4e5a4bb3d004a7ede2ffda12d..ac996b066415e461af1fcb71b1980740 @Override - public Path createPath(BlockPos target, int distance) { -+ public Path createPath(BlockPos target, @javax.annotation.Nullable Entity entity, int distance) { // Paper ++ public Path createPath(BlockPos target, @javax.annotation.Nullable Entity entity, int distance) { // Paper - EntityPathfindEvent LevelChunk levelChunk = this.level.getChunkSource().getChunkNow(SectionPos.blockToSectionCoord(target.getX()), SectionPos.blockToSectionCoord(target.getZ())); if (levelChunk == null) { return null; @@ -36,7 +36,7 @@ index 12564909abff7da4e5a4bb3d004a7ede2ffda12d..ac996b066415e461af1fcb71b1980740 if (blockPos.getY() > this.level.getMinBuildHeight()) { - return super.createPath(blockPos.above(), distance); -+ return super.createPath(blockPos.above(), entity, distance); // Paper ++ return super.createPath(blockPos.above(), entity, distance); // Paper - EntityPathfindEvent } while(blockPos.getY() < this.level.getMaxBuildHeight() && levelChunk.getBlockState(blockPos).isAir()) { @@ -45,14 +45,14 @@ index 12564909abff7da4e5a4bb3d004a7ede2ffda12d..ac996b066415e461af1fcb71b1980740 if (!levelChunk.getBlockState(target).isSolid()) { - return super.createPath(target, distance); -+ return super.createPath(target, entity, distance); // Paper ++ return super.createPath(target, entity, distance); // Paper - EntityPathfindEvent } else { BlockPos blockPos2; for(blockPos2 = target.above(); blockPos2.getY() < this.level.getMaxBuildHeight() && levelChunk.getBlockState(blockPos2).isSolid(); blockPos2 = blockPos2.above()) { } - return super.createPath(blockPos2, distance); -+ return super.createPath(blockPos2, entity, distance); // Paper ++ return super.createPath(blockPos2, entity, distance); // Paper - EntityPathfindEvent } } } @@ -60,12 +60,12 @@ index 12564909abff7da4e5a4bb3d004a7ede2ffda12d..ac996b066415e461af1fcb71b1980740 @Override public Path createPath(Entity entity, int distance) { - return this.createPath(entity.blockPosition(), distance); -+ return this.createPath(entity.blockPosition(), entity, distance); // Paper - Forward target entity ++ return this.createPath(entity.blockPosition(), entity, distance); // Paper - EntityPathfindEvent } private int getSurfaceY() { diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..d14b329e5bccf13139c32f71da274082efc7199c 100644 +index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..85b3da93b6dd8e1a40d884db0721f30b9b237c69 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java @@ -110,7 +110,13 @@ public abstract class PathNavigation { @@ -73,13 +73,13 @@ index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..d14b329e5bccf13139c32f71da274082 @Nullable public Path createPath(BlockPos target, int distance) { - return this.createPath(ImmutableSet.of(target), 8, false, distance); -+ // Paper start - add target entity parameter ++ // Paper start - EntityPathfindEvent + return this.createPath(target, null, distance); + } + @Nullable + public Path createPath(BlockPos target, @Nullable Entity entity, int distance) { + return this.createPath(ImmutableSet.of(target), entity, 8, false, distance); -+ // Paper end ++ // Paper end - EntityPathfindEvent } @Nullable @@ -88,14 +88,15 @@ index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..d14b329e5bccf13139c32f71da274082 @Nullable public Path createPath(Entity entity, int distance) { - return this.createPath(ImmutableSet.of(entity.blockPosition()), 16, true, distance); -+ return this.createPath(ImmutableSet.of(entity.blockPosition()), entity, 16, true, distance); // Paper ++ return this.createPath(ImmutableSet.of(entity.blockPosition()), entity, 16, true, distance); // Paper - EntityPathfindEvent } @Nullable -@@ -130,6 +136,16 @@ public abstract class PathNavigation { +@@ -130,6 +136,17 @@ public abstract class PathNavigation { @Nullable protected Path createPath(Set positions, int range, boolean useHeadPos, int distance, float followRange) { ++ // Paper start - EntityPathfindEvent + return this.createPath(positions, null, range, useHeadPos, distance, followRange); + } + @@ -105,15 +106,15 @@ index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..d14b329e5bccf13139c32f71da274082 + } + + @Nullable protected Path createPath(Set positions, @Nullable Entity target, int range, boolean useHeadPos, int distance, float followRange) { -+ // Paper end ++ // Paper end - EntityPathfindEvent if (positions.isEmpty()) { return null; } else if (this.mob.getY() < (double)this.level.getMinBuildHeight()) { -@@ -139,6 +155,23 @@ public abstract class PathNavigation { +@@ -139,6 +156,23 @@ public abstract class PathNavigation { } else if (this.path != null && !this.path.isDone() && positions.contains(this.targetPos)) { return this.path; } else { -+ // Paper start - Pathfind event ++ // Paper start - EntityPathfindEvent + boolean copiedSet = false; + for (BlockPos possibleTarget : positions) { + if (!new com.destroystokyo.paper.event.entity.EntityPathfindEvent(this.mob.getBukkitEntity(), @@ -129,12 +130,12 @@ index fa19df17967f57b5ac99b8eee9d38864c0b7a1bb..d14b329e5bccf13139c32f71da274082 + } + } + } -+ // Paper end ++ // Paper end - EntityPathfindEvent this.level.getProfiler().push("pathfind"); BlockPos blockPos = useHeadPos ? this.mob.blockPosition().above() : this.mob.blockPosition(); int i = (int)(followRange + (float)range); diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java -index e9b49c72aa73dfcef6c136d9ed7bb5044fe8405d..2d1b2b84d7cf5bafe2cccfa0dec2bae805dbe7cf 100644 +index e9b49c72aa73dfcef6c136d9ed7bb5044fe8405d..185550dce31b3b31a1d1dfcebb29147131bfad66 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/WallClimberNavigation.java @@ -16,9 +16,9 @@ public class WallClimberNavigation extends GroundPathNavigation { @@ -142,10 +143,10 @@ index e9b49c72aa73dfcef6c136d9ed7bb5044fe8405d..2d1b2b84d7cf5bafe2cccfa0dec2bae8 @Override - public Path createPath(BlockPos target, int distance) { -+ public Path createPath(BlockPos target, @Nullable Entity entity, int distance) { // Paper ++ public Path createPath(BlockPos target, @Nullable Entity entity, int distance) { // Paper - EntityPathfindEvent this.pathToPosition = target; - return super.createPath(target, distance); -+ return super.createPath(target, entity, distance); // Paper ++ return super.createPath(target, entity, distance); // Paper - EntityPathfindEvent } @Override diff --git a/patches/server/0081-Sanitise-RegionFileCache-and-make-configurable.patch b/patches/server/0081-Sanitise-RegionFileCache-and-make-configurable.patch index 87c1dfbbb95d..1748da6f300f 100644 --- a/patches/server/0081-Sanitise-RegionFileCache-and-make-configurable.patch +++ b/patches/server/0081-Sanitise-RegionFileCache-and-make-configurable.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Antony Riley Date: Tue, 29 Mar 2016 08:22:55 +0300 -Subject: [PATCH] Sanitise RegionFileCache and make configurable. +Subject: [PATCH] Sanitise RegionFileCache and make configurable RegionFileCache prior to this patch would close every single open region file upon reaching a size of 256. @@ -11,7 +11,7 @@ The implementation uses a LinkedHashMap as an LRU cache (modified from HashMap). The maximum size of the RegionFileCache is also made configurable. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 2d00333f25828ef5912c925d1213a56c564d85c9..465ad0bae446a20e941e8f2dbf2d85f2627482b9 100644 +index fa592d5db10dbd4824de74658655ef61230ed431..e9cfbee008c1dda2eeac55196d490984fa62ab09 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -92,7 +92,7 @@ public class RegionFileStorage implements AutoCloseable { @@ -19,7 +19,7 @@ index 2d00333f25828ef5912c925d1213a56c564d85c9..465ad0bae446a20e941e8f2dbf2d85f2 } // Paper end - cache regionfile does not exist state - if (this.regionCache.size() >= 256) { -+ if (this.regionCache.size() >= io.papermc.paper.configuration.GlobalConfiguration.get().misc.regionFileCacheSize) { // Paper - configurable ++ if (this.regionCache.size() >= io.papermc.paper.configuration.GlobalConfiguration.get().misc.regionFileCacheSize) { // Paper - Sanitise RegionFileCache and make configurable. ((RegionFile) this.regionCache.removeLast()).close(); } diff --git a/patches/server/0082-Do-not-load-chunks-for-Pathfinding.patch b/patches/server/0082-Do-not-load-chunks-for-Pathfinding.patch index 5d5acfa445b3..3dfd3d8f383f 100644 --- a/patches/server/0082-Do-not-load-chunks-for-Pathfinding.patch +++ b/patches/server/0082-Do-not-load-chunks-for-Pathfinding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Do not load chunks for Pathfinding diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java -index cd6778fa1d4261caf846ae71702621d2ec6b98c1..8e90b284fb576738b834626bb52c9962ccbc5ad2 100644 +index cd6778fa1d4261caf846ae71702621d2ec6b98c1..dbb6a7d950b1a6f58a845b4d399ead6eb6d4fe14 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java @@ -465,7 +465,12 @@ public class WalkNodeEvaluator extends NodeEvaluator { @@ -13,12 +13,12 @@ index cd6778fa1d4261caf846ae71702621d2ec6b98c1..8e90b284fb576738b834626bb52c9962 if (l != 0 || n != 0) { pos.set(i + l, j + m, k + n); - BlockState blockState = world.getBlockState(pos); -+ // Paper start ++ // Paper start - Do not load chunks during pathfinding + BlockState blockState = world.getBlockStateIfLoaded(pos); + if (blockState == null) { + return BlockPathTypes.BLOCKED; + } else { -+ // Paper end ++ // Paper end - Do not load chunks during pathfinding if (blockState.is(Blocks.CACTUS) || blockState.is(Blocks.SWEET_BERRY_BUSH)) { return BlockPathTypes.DANGER_OTHER; } @@ -35,8 +35,8 @@ index cd6778fa1d4261caf846ae71702621d2ec6b98c1..8e90b284fb576738b834626bb52c9962 protected static BlockPathTypes getBlockPathTypeRaw(BlockGetter world, BlockPos pos) { - BlockState blockState = world.getBlockState(pos); -+ BlockState blockState = world.getBlockStateIfLoaded(pos); // Paper -+ if (blockState == null) return BlockPathTypes.BLOCKED; // Paper ++ BlockState blockState = world.getBlockStateIfLoaded(pos); // Paper - Do not load chunks during pathfinding ++ if (blockState == null) return BlockPathTypes.BLOCKED; // Paper - Do not load chunks during pathfinding Block block = blockState.getBlock(); if (blockState.isAir()) { return BlockPathTypes.OPEN; diff --git a/patches/server/0084-Configurable-random-tick-rates-for-blocks.patch b/patches/server/0084-Configurable-random-tick-rates-for-blocks.patch index 5255c876b587..1b4e70611e67 100644 --- a/patches/server/0084-Configurable-random-tick-rates-for-blocks.patch +++ b/patches/server/0084-Configurable-random-tick-rates-for-blocks.patch @@ -9,20 +9,20 @@ of a variety of blocks that are random ticked. Co-authored-by: MrPowerGamerBR diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index 3ce4bb344dbb8b50ef4041801e034e79f0b0d19d..6c1e8ba518c883aa5c079b4c94f068833609acc3 100644 +index 3ce4bb344dbb8b50ef4041801e034e79f0b0d19d..66106b821d7a384a2eb0f27993beb9f4257e6815 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -92,6 +92,8 @@ public class FarmBlock extends Block { @Override public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { int i = (Integer) state.getValue(FarmBlock.MOISTURE); -+ if (i > 0 && world.paperConfig().tickRates.wetFarmland != 1 && (world.paperConfig().tickRates.wetFarmland < 1 || (net.minecraft.server.MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.wetFarmland != 0)) { return; } // Paper -+ if (i == 0 && world.paperConfig().tickRates.dryFarmland != 1 && (world.paperConfig().tickRates.dryFarmland < 1 || (net.minecraft.server.MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.dryFarmland != 0)) { return; } // Paper ++ if (i > 0 && world.paperConfig().tickRates.wetFarmland != 1 && (world.paperConfig().tickRates.wetFarmland < 1 || (net.minecraft.server.MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.wetFarmland != 0)) { return; } // Paper - Configurable random tick rates for blocks ++ if (i == 0 && world.paperConfig().tickRates.dryFarmland != 1 && (world.paperConfig().tickRates.dryFarmland < 1 || (net.minecraft.server.MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.dryFarmland != 0)) { return; } // Paper - Configurable random tick rates for blocks if (!FarmBlock.isNearWater(world, pos) && !world.isRainingAt(pos.above())) { if (i > 0) { diff --git a/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java b/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java -index 65db2229dae0547c7a3e2847bba7b1a1795ce30f..f38524cbcaa908644d901bf0929331d6dfd99ed9 100644 +index 65db2229dae0547c7a3e2847bba7b1a1795ce30f..4e2e80006bd4edae227af7be5ca8e3284b7494f6 100644 --- a/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java @@ -3,6 +3,7 @@ package net.minecraft.world.level.block; @@ -37,7 +37,7 @@ index 65db2229dae0547c7a3e2847bba7b1a1795ce30f..f38524cbcaa908644d901bf0929331d6 @Override public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { -+ if (this instanceof GrassBlock && world.paperConfig().tickRates.grassSpread != 1 && (world.paperConfig().tickRates.grassSpread < 1 || (MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.grassSpread != 0)) { return; } // Paper ++ if (this instanceof GrassBlock && world.paperConfig().tickRates.grassSpread != 1 && (world.paperConfig().tickRates.grassSpread < 1 || (MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.grassSpread != 0)) { return; } // Paper - Configurable random tick rates for blocks if (!SpreadingSnowyDirtBlock.canBeGrass(state, world, pos)) { // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.callBlockFadeEvent(world, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) { diff --git a/patches/server/0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch b/patches/server/0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch index 5a4e12618eca..a0dfb79bea33 100644 --- a/patches/server/0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch +++ b/patches/server/0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix Cancelling BlockPlaceEvent triggering physics diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ab55b028239f75b23a3e3fee10305a7896c2522b..3379c481659b28671779f5434b31523941cb620e 100644 +index 449f2ebc77a1850fc948bffc66e605f7bdc8efdd..ad9b4e88e2aaa5d7e70f65536c86742beafc91df 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1623,6 +1623,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0086-Optimize-DataBits.patch b/patches/server/0086-Optimize-DataBits.patch index b621ae42cc7f..07da053cf1c6 100644 --- a/patches/server/0086-Optimize-DataBits.patch +++ b/patches/server/0086-Optimize-DataBits.patch @@ -11,7 +11,7 @@ After: http://i.imgur.com/nJ46crB.png Optimize redundant converting of static fields into an unsigned long each call by precomputing it in ctor diff --git a/src/main/java/net/minecraft/util/SimpleBitStorage.java b/src/main/java/net/minecraft/util/SimpleBitStorage.java -index f677cc252d5510a2365e73dc42bd266e56115e83..2b3fd62dca2d1475075b5dcde56cea85b749cb44 100644 +index f677cc252d5510a2365e73dc42bd266e56115e83..18d8f3114831310c5f10da43d4333849d4eb6cae 100644 --- a/src/main/java/net/minecraft/util/SimpleBitStorage.java +++ b/src/main/java/net/minecraft/util/SimpleBitStorage.java @@ -11,8 +11,8 @@ public class SimpleBitStorage implements BitStorage { @@ -20,8 +20,8 @@ index f677cc252d5510a2365e73dc42bd266e56115e83..2b3fd62dca2d1475075b5dcde56cea85 private final int valuesPerLong; - private final int divideMul; - private final int divideAdd; -+ private final int divideMul; private final long divideMulUnsigned; // Paper - referenced in b(int) with 2 Integer.toUnsignedLong calls -+ private final int divideAdd; private final long divideAddUnsigned; // Paper ++ private final int divideMul; private final long divideMulUnsigned; // Paper - Perf: Optimize SimpleBitStorage; referenced in b(int) with 2 Integer.toUnsignedLong calls ++ private final int divideAdd; private final long divideAddUnsigned; // Paper - Perf: Optimize SimpleBitStorage private final int divideShift; public SimpleBitStorage(int elementBits, int size, int[] data) { @@ -31,8 +31,8 @@ index f677cc252d5510a2365e73dc42bd266e56115e83..2b3fd62dca2d1475075b5dcde56cea85 int i = 3 * (this.valuesPerLong - 1); - this.divideMul = MAGIC[i + 0]; - this.divideAdd = MAGIC[i + 1]; -+ this.divideMul = MAGIC[i + 0]; this.divideMulUnsigned = Integer.toUnsignedLong(this.divideMul); // Paper -+ this.divideAdd = MAGIC[i + 1]; this.divideAddUnsigned = Integer.toUnsignedLong(this.divideAdd); // Paper ++ this.divideMul = MAGIC[i + 0]; this.divideMulUnsigned = Integer.toUnsignedLong(this.divideMul); // Paper - Perf: Optimize SimpleBitStorage ++ this.divideAdd = MAGIC[i + 1]; this.divideAddUnsigned = Integer.toUnsignedLong(this.divideAdd); // Paper - Perf: Optimize SimpleBitStorage this.divideShift = MAGIC[i + 2]; int j = (size + this.valuesPerLong - 1) / this.valuesPerLong; if (data != null) { @@ -43,18 +43,18 @@ index f677cc252d5510a2365e73dc42bd266e56115e83..2b3fd62dca2d1475075b5dcde56cea85 - long l = Integer.toUnsignedLong(this.divideMul); - long m = Integer.toUnsignedLong(this.divideAdd); - return (int)((long)index * l + m >> 32 >> this.divideShift); -+ //long l = Integer.toUnsignedLong(this.divideMul); // Paper -+ //long m = Integer.toUnsignedLong(this.divideAdd); // Paper -+ return (int) ((long) index * this.divideMulUnsigned + this.divideAddUnsigned >> 32 >> this.divideShift); // Paper ++ //long l = Integer.toUnsignedLong(this.divideMul); // Paper - Perf: Optimize SimpleBitStorage ++ //long m = Integer.toUnsignedLong(this.divideAdd); // Paper - Perf: Optimize SimpleBitStorage ++ return (int) ((long) index * this.divideMulUnsigned + this.divideAddUnsigned >> 32 >> this.divideShift); // Paper - Perf: Optimize SimpleBitStorage } @Override - public int getAndSet(int index, int value) { - Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); - Validate.inclusiveBetween(0L, this.mask, (long)value); -+ public final int getAndSet(int index, int value) { // Paper - make final for inline -+ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); // Paper -+ //Validate.inclusiveBetween(0L, this.mask, (long)value); // Paper ++ public final int getAndSet(int index, int value) { // Paper - Perf: Optimize SimpleBitStorage ++ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); // Paper - Perf: Optimize SimpleBitStorage ++ //Validate.inclusiveBetween(0L, this.mask, (long)value); // Paper - Perf: Optimize SimpleBitStorage int i = this.cellIndex(index); long l = this.data[i]; int j = (index - i * this.valuesPerLong) * this.bits; @@ -65,9 +65,9 @@ index f677cc252d5510a2365e73dc42bd266e56115e83..2b3fd62dca2d1475075b5dcde56cea85 - public void set(int index, int value) { - Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); - Validate.inclusiveBetween(0L, this.mask, (long)value); -+ public final void set(int index, int value) { // Paper - make final for inline -+ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); // Paper -+ //Validate.inclusiveBetween(0L, this.mask, (long)value); // Paper ++ public final void set(int index, int value) { // Paper - Perf: Optimize SimpleBitStorage ++ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); // Paper - Perf: Optimize SimpleBitStorage ++ //Validate.inclusiveBetween(0L, this.mask, (long)value); // Paper - Perf: Optimize SimpleBitStorage int i = this.cellIndex(index); long l = this.data[i]; int j = (index - i * this.valuesPerLong) * this.bits; @@ -77,13 +77,13 @@ index f677cc252d5510a2365e73dc42bd266e56115e83..2b3fd62dca2d1475075b5dcde56cea85 @Override - public int get(int index) { - Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); -+ public final int get(int index) { // Paper - make final for inline -+ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); ++ public final int get(int index) { // Paper - Perf: Optimize SimpleBitStorage ++ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); - Perf: Optimize SimpleBitStorage int i = this.cellIndex(index); long l = this.data[i]; int j = (index - i * this.valuesPerLong) * this.bits; diff --git a/src/main/java/net/minecraft/util/ZeroBitStorage.java b/src/main/java/net/minecraft/util/ZeroBitStorage.java -index 0710c72441c832a93275f3f9bd9dd7643dc0f229..f0f764f36fb92c64ab2dc8a0a50c3f48321c3c9a 100644 +index 0710c72441c832a93275f3f9bd9dd7643dc0f229..b7a3f15dc1ed9e9322a86921052984c7cbd3262a 100644 --- a/src/main/java/net/minecraft/util/ZeroBitStorage.java +++ b/src/main/java/net/minecraft/util/ZeroBitStorage.java @@ -13,21 +13,21 @@ public class ZeroBitStorage implements BitStorage { @@ -93,9 +93,9 @@ index 0710c72441c832a93275f3f9bd9dd7643dc0f229..f0f764f36fb92c64ab2dc8a0a50c3f48 - public int getAndSet(int index, int value) { - Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); - Validate.inclusiveBetween(0L, 0L, (long)value); -+ public final int getAndSet(int index, int value) { // Paper - make final for inline -+ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); // Paper -+ //Validate.inclusiveBetween(0L, 0L, (long)value); // Paper ++ public final int getAndSet(int index, int value) { // Paper - Perf: Optimize SimpleBitStorage ++ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); // Paper - Perf: Optimize SimpleBitStorage ++ //Validate.inclusiveBetween(0L, 0L, (long)value); // Paper - Perf: Optimize SimpleBitStorage return 0; } @@ -103,16 +103,16 @@ index 0710c72441c832a93275f3f9bd9dd7643dc0f229..f0f764f36fb92c64ab2dc8a0a50c3f48 - public void set(int index, int value) { - Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); - Validate.inclusiveBetween(0L, 0L, (long)value); -+ public final void set(int index, int value) { // Paper - make final for inline -+ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); // Paper -+ //Validate.inclusiveBetween(0L, 0L, (long)value); // Paper ++ public final void set(int index, int value) { // Paper - Perf: Optimize SimpleBitStorage ++ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); // Paper - Perf: Optimize SimpleBitStorage ++ //Validate.inclusiveBetween(0L, 0L, (long)value); // Paper - Perf: Optimize SimpleBitStorage } @Override - public int get(int index) { - Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); -+ public final int get(int index) { // Paper - make final for inline -+ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); // Paper ++ public final int get(int index) { // Paper - Perf: Optimize SimpleBitStorage ++ //Validate.inclusiveBetween(0L, (long)(this.size - 1), (long)index); // Paper - Perf: Optimize SimpleBitStorage return 0; } diff --git a/patches/server/0088-Configurable-Player-Collision.patch b/patches/server/0088-Configurable-Player-Collision.patch index b969efc9b169..7647d8059ae9 100644 --- a/patches/server/0088-Configurable-Player-Collision.patch +++ b/patches/server/0088-Configurable-Player-Collision.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable Player Collision diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java -index 3d2a689d11bfa230bab61a2a65c6051328f6b78d..e52644010dc2cf41bbf508b16b8ec2f0003e9d0b 100644 +index 3d2a689d11bfa230bab61a2a65c6051328f6b78d..cf31771648549ab6d7e4e38b30409ca48a976bea 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetPlayerTeamPacket.java @@ -193,7 +193,7 @@ public class ClientboundSetPlayerTeamPacket implements Packet toRemove = scoreboard.getPlayerTeams().stream().filter(team -> team.getName().startsWith("collideRule_")).map(net.minecraft.world.scores.PlayerTeam::getName).collect(java.util.stream.Collectors.toList()); + for (String teamName : toRemove) { @@ -37,20 +37,20 @@ index 180bcaa2b5a74c527d8556301fb4a8161c76a64c..24f7ecc68c206346e4e2957bc27bf557 + net.minecraft.world.scores.PlayerTeam collideTeam = scoreboard.addPlayerTeam(this.getPlayerList().collideRuleTeamName); + collideTeam.setSeeFriendlyInvisibles(false); // Because we want to mimic them not being on a team at all + } -+ // Paper end ++ // Paper end - Configurable player collision + this.server.enablePlugins(org.bukkit.plugin.PluginLoadOrder.POSTWORLD); this.server.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.STARTUP)); this.connection.acceptConnections(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index b74689297ca20efee391fe1da80377082d1758e5..828abde34c7d883831e81b7759a862db43cfe2c6 100644 +index ffd73624360e76caef477aeb0074fc8eba13c1c6..e3195f03ac449e6e4870489d530ef40918cd5556 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -156,6 +156,7 @@ public abstract class PlayerList { // CraftBukkit start private CraftServer cserver; private final Map playersByName = new java.util.HashMap<>(); -+ public @Nullable String collideRuleTeamName; // Paper - Team name used for collideRule ++ public @Nullable String collideRuleTeamName; // Paper - Configurable player collision public PlayerList(MinecraftServer server, LayeredRegistryAccess registryManager, PlayerDataStorage saveHandler, int maxPlayers) { this.cserver = server.server = new CraftServer((DedicatedServer) server, this); @@ -58,13 +58,13 @@ index b74689297ca20efee391fe1da80377082d1758e5..828abde34c7d883831e81b7759a862db player.initInventoryMenu(); // CraftBukkit - Moved from above, added world -+ // Paper start - Add to collideRule team if needed ++ // Paper start - Configurable player collision; Add to collideRule team if needed + final net.minecraft.world.scores.Scoreboard scoreboard = this.getServer().getLevel(Level.OVERWORLD).getScoreboard(); + final PlayerTeam collideRuleTeam = scoreboard.getPlayerTeam(this.collideRuleTeamName); + if (this.collideRuleTeamName != null && collideRuleTeam != null && player.getTeam() == null) { + scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam); + } -+ // Paper end ++ // Paper end - Configurable player collision PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ()); } @@ -72,7 +72,7 @@ index b74689297ca20efee391fe1da80377082d1758e5..828abde34c7d883831e81b7759a862db entityplayer.doTick(); // SPIGOT-924 // CraftBukkit end -+ // Paper start - Remove from collideRule team if needed ++ // Paper start - Configurable player collision; Remove from collideRule team if needed + if (this.collideRuleTeamName != null) { + final net.minecraft.world.scores.Scoreboard scoreBoard = this.server.getLevel(Level.OVERWORLD).getScoreboard(); + final PlayerTeam team = scoreBoard.getPlayersTeam(this.collideRuleTeamName); @@ -80,7 +80,7 @@ index b74689297ca20efee391fe1da80377082d1758e5..828abde34c7d883831e81b7759a862db + scoreBoard.removePlayerFromTeam(entityplayer.getScoreboardName(), team); + } + } -+ // Paper end ++ // Paper end - Configurable player collision + this.save(entityplayer); if (entityplayer.isPassenger()) { @@ -89,13 +89,13 @@ index b74689297ca20efee391fe1da80377082d1758e5..828abde34c7d883831e81b7759a862db } // CraftBukkit end -+ // Paper start - Remove collideRule team if it exists ++ // Paper start - Configurable player collision; Remove collideRule team if it exists + if (this.collideRuleTeamName != null) { + final net.minecraft.world.scores.Scoreboard scoreboard = this.getServer().getLevel(Level.OVERWORLD).getScoreboard(); + final PlayerTeam team = scoreboard.getPlayersTeam(this.collideRuleTeamName); + if (team != null) scoreboard.removePlayerTeam(team); + } -+ // Paper end ++ // Paper end - Configurable player collision } // CraftBukkit start diff --git a/patches/server/0089-Add-handshake-event-to-allow-plugins-to-handle-clien.patch b/patches/server/0089-Add-handshake-event-to-allow-plugins-to-handle-clien.patch index 34e135f90744..b368b4d286a6 100644 --- a/patches/server/0089-Add-handshake-event-to-allow-plugins-to-handle-clien.patch +++ b/patches/server/0089-Add-handshake-event-to-allow-plugins-to-handle-clien.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Add handshake event to allow plugins to handle client diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 4a649a2006f907c9b7542843ec6938d9375ca645..0d9658b1c6b5912a34058c0ce53b8e7f8c28afac 100644 +index 5dedfeaa6cc683b5fc6c21f842265b8aea64fa58..ce51bde4db395ff30c7d75e3badd68d6395fa40f 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -89,9 +89,44 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL this.connection.disconnect(ichatmutablecomponent); } else { this.connection.setListener(new ServerLoginPacketListenerImpl(this.server, this.connection)); -+ // Paper start - handshake event ++ // Paper start - PlayerHandshakeEvent + boolean proxyLogicEnabled = org.spigotmc.SpigotConfig.bungee; + boolean handledByEvent = false; + // Try and handle the handshake through the event @@ -50,7 +50,7 @@ index 4a649a2006f907c9b7542843ec6938d9375ca645..0d9658b1c6b5912a34058c0ce53b8e7f - if (org.spigotmc.SpigotConfig.bungee) { + // Don't try and handle default logic if it's been handled by the event. + if (!handledByEvent && proxyLogicEnabled) { -+ // Paper end ++ // Paper end - PlayerHandshakeEvent + // if (org.spigotmc.SpigotConfig.bungee) { // Paper - comment out, we check above! if ( ( split.length == 3 || split.length == 4 ) && ( ServerHandshakePacketListenerImpl.HOST_PATTERN.matcher( split[1] ).matches() ) ) { this.connection.hostname = split[0]; diff --git a/patches/server/0090-Configurable-RCON-IP-address.patch b/patches/server/0090-Configurable-RCON-IP-address.patch index bb99ea9ebe89..f1088bf865c0 100644 --- a/patches/server/0090-Configurable-RCON-IP-address.patch +++ b/patches/server/0090-Configurable-RCON-IP-address.patch @@ -9,14 +9,14 @@ For servers with multiple IP's, ability to bind to a specific interface. public net.minecraft.server.dedicated.Settings getStringRaw(Ljava/lang/String;)Ljava/lang/String; diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java -index d64ac84d4c5ef3dd3054a601deee128d3069686b..7edce6f8d1f313a9e1e100704d625e317f779fa0 100644 +index d64ac84d4c5ef3dd3054a601deee128d3069686b..90fe26a546eeebf90ccf7f899103346cdb3ae702 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java @@ -108,6 +108,8 @@ public class DedicatedServerProperties extends Settings 11 - state.getValue(AGE) - state.getLightBlock(world, pos) && this.slightlyMelt(state, world, pos)) { BlockPos.MutableBlockPos mutableBlockPos = new BlockPos.MutableBlockPos(); @@ -21,13 +21,13 @@ index 5c8f0751def701359b388eabeb14d1dc83438c5a..0d08a9d5555ebc296a1461aefbf48e8e BlockState blockState = world.getBlockState(mutableBlockPos); if (blockState.is(this) && !this.slightlyMelt(blockState, world, mutableBlockPos)) { - world.scheduleTick(mutableBlockPos, this, Mth.nextInt(random, 20, 40)); -+ world.scheduleTick(mutableBlockPos, this, Mth.nextInt(random, world.paperConfig().environment.frostedIce.delay.min, world.paperConfig().environment.frostedIce.delay.max)); // Paper - use configurable min/max delay ++ world.scheduleTick(mutableBlockPos, this, Mth.nextInt(random, world.paperConfig().environment.frostedIce.delay.min, world.paperConfig().environment.frostedIce.delay.max)); // Paper - Frosted ice options } } } else { - world.scheduleTick(pos, this, Mth.nextInt(random, 20, 40)); -+ world.scheduleTick(pos, this, Mth.nextInt(random, world.paperConfig().environment.frostedIce.delay.min, world.paperConfig().environment.frostedIce.delay.max)); // Paper - use configurable min/max delay ++ world.scheduleTick(pos, this, Mth.nextInt(random, world.paperConfig().environment.frostedIce.delay.min, world.paperConfig().environment.frostedIce.delay.max)); // Paper - Frosted ice options } } diff --git a/patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch index 43b9ea01a1c9..7c234c7104c1 100644 --- a/patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch +++ b/patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch @@ -13,7 +13,7 @@ custom renderers are in use, defaulting to the much simpler Vanilla system. Additionally, numerous issues to player position tracking on maps has been fixed. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3379c481659b28671779f5434b31523941cb620e..eb7c37da48b4b06d24f4f02132a5d5ac89de658b 100644 +index ad9b4e88e2aaa5d7e70f65536c86742beafc91df..adb4e72652605f25b25dcd5690fbe7bb499c8809 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2436,6 +2436,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0095-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch b/patches/server/0095-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch index af1910ff88fc..ca993796638e 100644 --- a/patches/server/0095-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch +++ b/patches/server/0095-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Don't save empty scoreboard teams to scoreboard.dat diff --git a/src/main/java/net/minecraft/world/scores/ScoreboardSaveData.java b/src/main/java/net/minecraft/world/scores/ScoreboardSaveData.java -index 28e631be85fb06245e152e1f5e0bae16b7358cfd..b49d60d20d170d16a7daf2bc874e5d8d04552b3e 100644 +index 28e631be85fb06245e152e1f5e0bae16b7358cfd..6c3ed29e13ea78ceb1c9bb11ce0d9938bb8b4c62 100644 --- a/src/main/java/net/minecraft/world/scores/ScoreboardSaveData.java +++ b/src/main/java/net/minecraft/world/scores/ScoreboardSaveData.java @@ -148,6 +148,7 @@ public class ScoreboardSaveData extends SavedData { ListTag listTag = new ListTag(); for(PlayerTeam playerTeam : this.scoreboard.getPlayerTeams()) { -+ if (!io.papermc.paper.configuration.GlobalConfiguration.get().scoreboards.saveEmptyScoreboardTeams && playerTeam.getPlayers().isEmpty()) continue; // Paper ++ if (!io.papermc.paper.configuration.GlobalConfiguration.get().scoreboards.saveEmptyScoreboardTeams && playerTeam.getPlayers().isEmpty()) continue; // Paper - Don't save empty scoreboard teams to scoreboard.dat CompoundTag compoundTag = new CompoundTag(); compoundTag.putString("Name", playerTeam.getName()); compoundTag.putString("DisplayName", Component.Serializer.toJson(playerTeam.getDisplayName())); diff --git a/patches/server/0096-LootTable-API-Replenishable-Lootables-Feature.patch b/patches/server/0096-LootTable-API-and-replenishable-lootables.patch similarity index 99% rename from patches/server/0096-LootTable-API-Replenishable-Lootables-Feature.patch rename to patches/server/0096-LootTable-API-and-replenishable-lootables.patch index 53f5ac46320c..2fa90ad76a17 100644 --- a/patches/server/0096-LootTable-API-Replenishable-Lootables-Feature.patch +++ b/patches/server/0096-LootTable-API-and-replenishable-lootables.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 1 May 2016 21:19:14 -0400 -Subject: [PATCH] LootTable API & Replenishable Lootables Feature +Subject: [PATCH] LootTable API and replenishable lootables Provides an API to control the loot table for an object. Also provides a feature that any Lootable Inventory (Chests in Structures) @@ -504,12 +504,12 @@ index 0000000000000000000000000000000000000000..9cfa5d36a6991067a3866e0d437749fa + } +} diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 39ef390739c4bde28c87c1b83610602a86afd6ad..edbfc7bc783833a62542a4515dde13034ae29c10 100644 +index 6d3c575d12b3c1cc7c06a4cf1b671a2de894892a..34bd4a3f8639295d4980d2b36fe07e2be0ec0d1e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -238,6 +238,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } - // Paper end + // Paper end - Share random for entities to make them more random + public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper private CraftEntity bukkitEntity; diff --git a/patches/server/0098-Async-GameProfileCache-saving.patch b/patches/server/0098-Async-GameProfileCache-saving.patch index c5edd52bafae..67a19c70bb33 100644 --- a/patches/server/0098-Async-GameProfileCache-saving.patch +++ b/patches/server/0098-Async-GameProfileCache-saving.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Async GameProfileCache saving diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3ecb45c98bfbc189e8235e980b14ee6b11536cc5..77ea9b316f186243c74cc080cc7c382ab6666a21 100644 +index da845f0e07e1541514c60252192d49a85163b1a8..3410a2b68146f34f37446c9daeb20f8860b37292 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -960,7 +960,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { // Paper ++ Runnable save = () -> { // Paper - Perf: Async GameProfileCache saving try { BufferedWriter bufferedwriter = Files.newWriter(this.file, StandardCharsets.UTF_8); @@ -73,14 +73,14 @@ index f5ac34923eb29a4d8df59d35f3381cdf08f74cf6..1924757cec5d7f2d13ef35f9bbe1554d } catch (IOException ioexception) { ; } -+ // Paper start ++ // Paper start - Perf: Async GameProfileCache saving + }; + if (asyncSave) { + io.papermc.paper.util.MCUtil.scheduleAsyncTask(save); + } else { + save.run(); + } -+ // Paper end ++ // Paper end - Perf: Async GameProfileCache saving } diff --git a/patches/server/0099-Optional-TNT-doesn-t-move-in-water.patch b/patches/server/0099-Optional-TNT-doesn-t-move-in-water.patch index 205200e68e56..8327ae86cdd5 100644 --- a/patches/server/0099-Optional-TNT-doesn-t-move-in-water.patch +++ b/patches/server/0099-Optional-TNT-doesn-t-move-in-water.patch @@ -4,28 +4,15 @@ Date: Sun, 22 May 2016 20:20:55 -0500 Subject: [PATCH] Optional TNT doesn't move in water -diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index fb16216b54eea81fceaf3edafa69b554ad01c807..90d2fa5b90d64ddb28075a50f4478b464a29a285 100644 ---- a/src/main/java/net/minecraft/server/level/ServerEntity.java -+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -73,7 +73,7 @@ public class ServerEntity { - @Nullable - private List> trackedDataValues; - // CraftBukkit start -- private final Set trackedPlayers; -+ final Set trackedPlayers; // Paper - private -> package - - public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer> consumer, Set trackedPlayers) { - this.trackedPlayers = trackedPlayers; diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 5c3b86e2301079e775971aa4da6a8f2dc6a40d1f..d9ed22e9853eebdf6c517b41787a27a1a56a0871 100644 +index 5c3b86e2301079e775971aa4da6a8f2dc6a40d1f..fe51d34f9d764ed4bff4a2a0c566e132dde36e55 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -106,6 +106,27 @@ public class PrimedTnt extends Entity implements TraceableEntity { } } -+ // Paper start - Optional prevent TNT from moving in water ++ // Paper start - Option to prevent TNT from moving in water + if (!this.isRemoved() && this.wasTouchingWater && this.level().paperConfig().fixes.preventTntFromMovingInWater) { + /* + * Author: Jedediah Smith @@ -45,7 +32,7 @@ index 5c3b86e2301079e775971aa4da6a8f2dc6a40d1f..d9ed22e9853eebdf6c517b41787a27a1 + }); + } + } -+ // Paper end ++ // Paper end - Option to prevent TNT from moving in water } private void explode() { @@ -54,10 +41,10 @@ index 5c3b86e2301079e775971aa4da6a8f2dc6a40d1f..d9ed22e9853eebdf6c517b41787a27a1 return (BlockState) this.entityData.get(PrimedTnt.DATA_BLOCK_STATE_ID); } + -+ // Paper start - Optional prevent TNT from moving in water ++ // Paper start - Option to prevent TNT from moving in water + @Override + public boolean isPushedByFluid() { + return !level().paperConfig().fixes.preventTntFromMovingInWater && super.isPushedByFluid(); + } -+ // Paper end ++ // Paper end - Option to prevent TNT from moving in water } diff --git a/patches/server/0102-Fix-global-sound-handling.patch b/patches/server/0102-Fix-global-sound-handling.patch index 0f804af1ee45..8fd65a12d89a 100644 --- a/patches/server/0102-Fix-global-sound-handling.patch +++ b/patches/server/0102-Fix-global-sound-handling.patch @@ -11,7 +11,7 @@ Co-authored-by: lexikiq Co-authored-by: Aikar diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index eb7c37da48b4b06d24f4f02132a5d5ac89de658b..c63df0042b23e3728d5283b563889225691f6d56 100644 +index adb4e72652605f25b25dcd5690fbe7bb499c8809..d96be9d3a24a5eb89fc2a7180b6d7e236e7c2448 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1557,7 +1557,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -81,7 +81,7 @@ index 5bc68514a1e8a212e2681f06b918548c0ec565b6..1977e702f6af39ebf100c1f2f2edc2d1 double deltaLength = Math.sqrt(distanceSquared); double relativeX = player.getX() + (deltaX / deltaLength) * viewDistance; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index f093a271cc0b5a0e1f55930d2b3b48161abc9185..cbb531c7993bd5062255564e6e6546afb948f6ed 100644 +index 50f9c4c2974b0a0150068c334e0537e69c0de8f7..36c6a79628ec16eb1ef018e541ed1bec2126bbe6 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1366,4 +1366,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0115-Prevent-Pathfinding-out-of-World-Border.patch b/patches/server/0115-Prevent-Pathfinding-out-of-World-Border.patch index 5e7b08af481a..f473b6a56e97 100644 --- a/patches/server/0115-Prevent-Pathfinding-out-of-World-Border.patch +++ b/patches/server/0115-Prevent-Pathfinding-out-of-World-Border.patch @@ -13,11 +13,11 @@ by adding code to all overrides in: to return BLOCKED if it is outside the world border. diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index d14b329e5bccf13139c32f71da274082efc7199c..68edd488087a6ec1e65797cfbd4118bd0efbab50 100644 +index 85b3da93b6dd8e1a40d884db0721f30b9b237c69..c3b406e6302ae0ac1ef56253ab614ca201a7a1c8 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -@@ -158,7 +158,7 @@ public abstract class PathNavigation { - // Paper start - Pathfind event +@@ -159,7 +159,7 @@ public abstract class PathNavigation { + // Paper start - EntityPathfindEvent boolean copiedSet = false; for (BlockPos possibleTarget : positions) { - if (!new com.destroystokyo.paper.event.entity.EntityPathfindEvent(this.mob.getBukkitEntity(), diff --git a/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch b/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch index 716c574a8e01..a4c7873ceb4b 100644 --- a/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch +++ b/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch @@ -16,7 +16,7 @@ public net.minecraft.world.entity.projectile.Projectile cachedOwner public net.minecraft.world.entity.projectile.Projectile ownerUUID diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9f958136a8a4c4632ad8ca359860681448653176..294a8eac85e49e9fa0e39b87f3954787b05fe30d 100644 +index d96be9d3a24a5eb89fc2a7180b6d7e236e7c2448..b974d917879a42d8df4bca4cbb505cb599c6f2ff 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2368,6 +2368,12 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch index 0752dc8c8b54..0f3b44801832 100644 --- a/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -10,7 +10,7 @@ Adds an option to control the force mode of the particle. This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c6fd543d03813d6edc12aa919e77bb9a7c7315e7..d5ff2037fd2756da1aac9660e65453913be172cd 100644 +index b974d917879a42d8df4bca4cbb505cb599c6f2ff..a306269019b6b8ff6f24cbc3f209f2359ac668fe 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1742,12 +1742,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -34,7 +34,7 @@ index c6fd543d03813d6edc12aa919e77bb9a7c7315e7..d5ff2037fd2756da1aac9660e6545391 if (this.sendParticles(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 35ac3878b4391da29e248d26a6c76bf1582ea09d..c8e13ea3bc256b112fa5fd916c0fb583322c081b 100644 +index e60992a618f05174f887ce85741a127161cef408..6abf000543cb842ff43f0adbde035fff595e553d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1948,13 +1948,20 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0212-InventoryCloseEvent-Reason-API.patch b/patches/server/0212-InventoryCloseEvent-Reason-API.patch index 3c1786bd0a65..7f704e7c3d58 100644 --- a/patches/server/0212-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0212-InventoryCloseEvent-Reason-API.patch @@ -7,7 +7,7 @@ Allows you to determine why an inventory was closed, enabling plugin developers to "confirm" things based on if it was player triggered close or not. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d5ff2037fd2756da1aac9660e65453913be172cd..0bb2ed82e8a3dffa9fd9d7aa41685dd50dafac0c 100644 +index a306269019b6b8ff6f24cbc3f209f2359ac668fe..9e967dac4db56e6b0713b7351a1cd0896e757c7e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1474,7 +1474,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -29,7 +29,7 @@ index d5ff2037fd2756da1aac9660e65453913be172cd..0bb2ed82e8a3dffa9fd9d7aa41685dd5 } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3014467f1c9159e04afd0bb816e02af6599f1f71..e144adc6e5e2a195174ed7617c29993804ab87ff 100644 +index 708d1033306da34844827854edaf8a68ed67a936..0bdb75f733896335b87a19eb4d29024186e2d4d0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -692,7 +692,7 @@ public class ServerPlayer extends Player { @@ -75,7 +75,7 @@ index 3014467f1c9159e04afd0bb816e02af6599f1f71..e144adc6e5e2a195174ed7617c299938 this.doCloseContainer(); } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c1c9076be05cd4b0b19d16aabbf0320c2531cca1..d1c2dad79f6e265e184d374494b3f45414c5fafc 100644 +index 51d5bed032f89333917accca242772a09ee98d93..678c46517757e3f37d5051fc88c481cbe8bf861b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -219,6 +219,7 @@ import org.bukkit.event.inventory.ClickType; @@ -104,7 +104,7 @@ index c1c9076be05cd4b0b19d16aabbf0320c2531cca1..d1c2dad79f6e265e184d374494b3f454 this.player.doCloseContainer(); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 782cc6d910efe5bc5498d0083afab42fad6c4fa2..b4643717c98193884a43089ec7a7e362b7153d20 100644 +index 99ba7c82f8a8db9d5841cce18ed5f39439b512b0..5517f873e709b6f3b9206f0ad0212a9524f2c691 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -518,7 +518,7 @@ public abstract class PlayerList { @@ -117,7 +117,7 @@ index 782cc6d910efe5bc5498d0083afab42fad6c4fa2..b4643717c98193884a43089ec7a7e362 PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName()))); // Paper - Adventure diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 0704fad49e680d3274b23024497963c4d0ad353b..636c8d53e5c07f5d75881113b8cfb366a007a162 100644 +index 2ec9d75ad64c40cb4577151a050c534e38226b72..0c34063bdbfa70d65b3548e5ea800ef088a5444d 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -265,7 +265,7 @@ public abstract class Player extends LivingEntity { @@ -173,7 +173,7 @@ index 092d2bfab7e8fd9840e853f09adc85311ab29046..af6f8d11f0384c353332f5c5bb0967e5 @Override public boolean isBlocking() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f929327522b98c12823ebbf94531c1c3681b1efa..f0392f2562ee2b65011da556dbe1a8369c5f954c 100644 +index bcbe11807186d2d79a155f6be7bda029ca5f555d..91ca962588fffc486ca44289f2eb0bac6fcd808d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1194,7 +1194,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 542702aaab1e..78694ba4a138 100644 --- a/patches/server/0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/patches/server/0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c9e3e104cd051a38e367653dc6c4f969665fc250..45ee0cd242271883412284625230822d9c8a5452 100644 +index 422ef83670f7c4a2e5b0da48dc0906ad96b8ece0..e4936a70d3a686e5cba0ea9d878f6e09fbee713d 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -878,6 +878,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -26,7 +26,7 @@ index c9e3e104cd051a38e367653dc6c4f969665fc250..45ee0cd242271883412284625230822d protected void tick() { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0bb2ed82e8a3dffa9fd9d7aa41685dd50dafac0c..8168a9a3f2b166775a531e7f834710669845d0ae 100644 +index 9e967dac4db56e6b0713b7351a1cd0896e757c7e..2a7d7881a200e12ae9369bb2d704aecce9322e52 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1436,6 +1436,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -43,7 +43,7 @@ index 0bb2ed82e8a3dffa9fd9d7aa41685dd50dafac0c..8168a9a3f2b166775a531e7f83471066 // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ad2e61c7fd7906477e30e91c826d9ce4fb6bffc0..bbb6abd5a51a0ffef41f2ee38eb6d7a21d1c6c23 100644 +index 47ba1f8fbbe3e5a052028ee1dbff31844bc61f78..72478a84e1dca85bb9694ea9816a1acc09c8ff5f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -241,6 +241,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0292-Entity-getEntitySpawnReason.patch b/patches/server/0292-Entity-getEntitySpawnReason.patch index a5998f47b0e7..68a02f0df901 100644 --- a/patches/server/0292-Entity-getEntitySpawnReason.patch +++ b/patches/server/0292-Entity-getEntitySpawnReason.patch @@ -22,7 +22,7 @@ index 2eddeb8d5239bbfeefbf4d3bd363f1ad083299b6..e2b44b8ddb8afc6e1f7dddadb434c226 }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8168a9a3f2b166775a531e7f834710669845d0ae..4d468f34cfff2162928928d2e093502a2142189f 100644 +index 2a7d7881a200e12ae9369bb2d704aecce9322e52..2010cc573b447d79552b64d61acfe8a668007a2f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1442,6 +1442,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -34,7 +34,7 @@ index 8168a9a3f2b166775a531e7f834710669845d0ae..4d468f34cfff2162928928d2e093502a // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 3748e7d8267f659cb4942e54efa7e993fa4a99b5..2670d20fce0e1c3e1930f3e4dc18c22b7cc1e0ec 100644 +index a7119e1bccf009428e74cd3375bc61555062e408..f4e1fe5e5a12e5a3547a2e0305814ea60160c3fc 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -223,6 +223,11 @@ public abstract class PlayerList { @@ -59,13 +59,13 @@ index 3748e7d8267f659cb4942e54efa7e993fa4a99b5..2670d20fce0e1c3e1930f3e4dc18c22b }); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4b9cb1c85ed17250f145e815d5c40cf09b34e4d2..546f1ba9bb5e4c6135d8205d7421aeae0a3bbd89 100644 +index 797c1c9db2fabd3f0ca6a37a17a368f63f144eb4..7abdfeacec4787819e2e66d3b8a322b750d203f7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -237,6 +237,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } - // Paper end + // Paper end - Share random for entities to make them more random + public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason; // Paper - Entity#getEntitySpawnReason public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper @@ -108,7 +108,7 @@ index 4b9cb1c85ed17250f145e815d5c40cf09b34e4d2..546f1ba9bb5e4c6135d8205d7421aeae } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 713608239cc7518d05b04d3dd79c3af0c358c64e..0d04581b73a9daa91bbcb0ef0b28d601fc0e9599 100644 +index 388a66e37c9f1d9c62e0c8977a2d5b9068c58fe7..1bc11de2144bc8e0a313e753bbfeed571132d9d5 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java @@ -189,6 +189,7 @@ public abstract class BaseSpawner { diff --git a/patches/server/0305-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/patches/server/0305-Configurable-Keep-Spawn-Loaded-range-per-world.patch index 5102c023cc72..a41b64c4100a 100644 --- a/patches/server/0305-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/patches/server/0305-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable Keep Spawn Loaded range per world This lets you disable it for some worlds and lower it for others. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index cef1554db34a1d917fa5c7bbccfe22efd93bebfd..f92e4d6cfae684b5c8df6424d63a574cb17ef6b7 100644 +index f3a66cd277a3950b75076fd5f80f159f6eb4dd1c..fe6098ffcd63e4bb28c223c5693482b47c6a2331 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -768,30 +768,33 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 50bdb4596eecf04738817b46a125097bc1d3b45b..1b92cee2f51b844340d213ccfc78d1524a71c9dc 100644 +index 5b8d3588fa062df8ccbfcd08af7918ab5c8487a3..97a04d12acbf0d6eb8f9f4ecc45085570f74a0f5 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2496,7 +2496,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0359-Optimize-Pathfinding.patch b/patches/server/0359-Optimize-Pathfinding.patch index 72f4ca5ac6af..0bd6e0950739 100644 --- a/patches/server/0359-Optimize-Pathfinding.patch +++ b/patches/server/0359-Optimize-Pathfinding.patch @@ -7,10 +7,10 @@ Prevents pathfinding from spamming failures for things such as arrow attacks. diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index 68edd488087a6ec1e65797cfbd4118bd0efbab50..a9922074b6aa6a9898615385bb11d2a758662970 100644 +index c3b406e6302ae0ac1ef56253ab614ca201a7a1c8..a04fb58c29b462e20ed0b702cef478e3985b7cd2 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -@@ -192,9 +192,29 @@ public abstract class PathNavigation { +@@ -193,9 +193,29 @@ public abstract class PathNavigation { return this.moveTo(this.createPath(x, y, z, 1), speed); } diff --git a/patches/server/0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch b/patches/server/0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch index 069501220bad..d0d27efd056b 100644 --- a/patches/server/0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch +++ b/patches/server/0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch @@ -55,7 +55,7 @@ index 0a75cba1b0b5a85826bd60615e3f09d2f41cc6a3..b5dcb539548ca35d7c8a076d474a5c67 // CraftBukkit end public boolean isRealPlayer; // Paper diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 05983ba80532f3c0235af7e712948edf4d8f021b..dc6774fdc215de6a157b64678aec5a79344084e9 100644 +index c04db4712ac4127cffe250e404eed9198b377429..4be466a21fb1fb936e1eaa6351e30a53c7b5cbb4 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -295,6 +295,12 @@ public abstract class PlayerList { @@ -102,12 +102,4 @@ index 05983ba80532f3c0235af7e712948edf4d8f021b..dc6774fdc215de6a157b64678aec5a79 + // Paper end - Fire PlayerJoinEvent when Player is actually ready player.initInventoryMenu(); // CraftBukkit - Moved from above, added world - // Paper start - Add to collideRule team if needed -@@ -412,6 +429,7 @@ public abstract class PlayerList { - scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam); - } - // Paper end -+ // CraftBukkit - Moved from above, added world - PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ()); - } - + // Paper start - Configurable player collision; Add to collideRule team if needed diff --git a/patches/server/0378-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0378-Deobfuscate-stacktraces-in-log-messages-crash-report.patch index e6644e517296..ce872507210f 100644 --- a/patches/server/0378-Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/0378-Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -545,7 +545,7 @@ index 61f05f34ca33837c643f2915e753ec3935a38314..85b8be8ffac0fb40e9cae0528271ed41 throw new SkipPacketException(var13); } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 3779e02083fb41e93248aed27a9214be88167e5a..1d8f8b1910f50e90d60bb2a924d49f3fd3518fd6 100644 +index 9c7079d0c3c25bef970891b0579daa940fa61e33..249944e48d3e07cc5dd412f58f39a3abdbe446b1 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -194,6 +194,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -587,7 +587,7 @@ index 9db7fc8c053aa9e929fa6dddf70290a8f7ad5273..dfa07c9ede9d748a05ee47826bdbcf73 final MinecraftServer server; public volatile boolean running; diff --git a/src/main/java/net/minecraft/server/players/OldUsersConverter.java b/src/main/java/net/minecraft/server/players/OldUsersConverter.java -index 14bd0b94ece3f826f822b4900c7250ebdc27d937..59eb65e207ff0206b0dfad6f2dcffe785f61f8ff 100644 +index e697b8f7b165d2394d8155cbee7453e23ac2bee4..6706ac701963fed4798247e6e835b06fc92b0cf4 100644 --- a/src/main/java/net/minecraft/server/players/OldUsersConverter.java +++ b/src/main/java/net/minecraft/server/players/OldUsersConverter.java @@ -358,7 +358,7 @@ public class OldUsersConverter { @@ -596,7 +596,7 @@ index 14bd0b94ece3f826f822b4900c7250ebdc27d937..59eb65e207ff0206b0dfad6f2dcffe78 } catch (Exception exception) { - exception.printStackTrace(); + io.papermc.paper.util.TraceUtil.printStackTrace(exception); // Paper - ServerInternalException.reportInternalException(exception); // Paper + ServerInternalException.reportInternalException(exception); // Paper - ServerExceptionEvent } @@ -372,7 +372,7 @@ public class OldUsersConverter { @@ -605,11 +605,11 @@ index 14bd0b94ece3f826f822b4900c7250ebdc27d937..59eb65e207ff0206b0dfad6f2dcffe78 } catch (Exception exception) { - exception.printStackTrace(); + io.papermc.paper.util.TraceUtil.printStackTrace(exception); // Paper - ServerInternalException.reportInternalException(exception); // Paper + ServerInternalException.reportInternalException(exception); // Paper - ServerExceptionEvent } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 796aa86e12cf9062b3467a3678c895af5ad626fe..9e01a22df54492d9c8e9f9defd84014dc109514b 100644 +index 873e8de4638d14ce9052e3978f528e10fa591924..6e1006675339551ca499a57a8f8553020f16a4fa 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -599,7 +599,7 @@ public class LevelChunk extends ChunkAccess { @@ -619,7 +619,7 @@ index 796aa86e12cf9062b3467a3678c895af5ad626fe..9e01a22df54492d9c8e9f9defd84014d - e.printStackTrace(); + io.papermc.paper.util.TraceUtil.printStackTrace(e); ServerInternalException.reportInternalException(e); - // Paper end + // Paper end - ServerExceptionEvent // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftAsyncScheduler.java index 3c1992e212a6d6f1db4d5b807b38d71913619fc0..9c1aff17aabd062640e3f451a2ef8c50a7c62f10 100644 diff --git a/patches/server/0407-incremental-chunk-and-player-saving.patch b/patches/server/0407-incremental-chunk-and-player-saving.patch index a0d416a43a15..44ffbfc04ca4 100644 --- a/patches/server/0407-incremental-chunk-and-player-saving.patch +++ b/patches/server/0407-incremental-chunk-and-player-saving.patch @@ -5,7 +5,7 @@ Subject: [PATCH] incremental chunk and player saving diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 74ce2fc0256c1747bb1638eea8947d3416f23ab8..efb5a5b31ada326593b3bea0f49c05591db18801 100644 +index e824ac0c487ab42c68cbf1a6f7c24d4b689809c3..7d265471685e34b434ab25bee14854f6f261837b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -898,7 +898,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { diff --git a/patches/server/0507-Add-sendOpLevel-API.patch b/patches/server/0507-Add-sendOpLevel-API.patch index 4dcf5e90013b..529cef3fac82 100644 --- a/patches/server/0507-Add-sendOpLevel-API.patch +++ b/patches/server/0507-Add-sendOpLevel-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 77302ac01edc715c0536821611a88ac951135a41..ed106322419be1065fd900b02f4f71d268726e38 100644 +index a24aa06d65dadaece78e37ba6f67aee724c410f0..5541508a1c50ec5375db48d87203c922c6a439de 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1102,6 +1102,11 @@ public abstract class PlayerList { +@@ -1101,6 +1101,11 @@ public abstract class PlayerList { } private void sendPlayerPermissionLevel(ServerPlayer player, int permissionLevel) { @@ -20,7 +20,7 @@ index 77302ac01edc715c0536821611a88ac951135a41..ed106322419be1065fd900b02f4f71d2 if (player.connection != null) { byte b0; -@@ -1116,8 +1121,10 @@ public abstract class PlayerList { +@@ -1115,8 +1120,10 @@ public abstract class PlayerList { player.connection.send(new ClientboundEntityEventPacket(player, b0)); } @@ -32,7 +32,7 @@ index 77302ac01edc715c0536821611a88ac951135a41..ed106322419be1065fd900b02f4f71d2 public boolean isWhiteListed(GameProfile profile) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index bbe18e0342ad68c844f095d3b6413929adc18ab5..8b23a8fbdc1db7043969ca0a36c59dffd92782d3 100644 +index 7d5733f6c45c0521b1d1a37d6dfc3b0a7aad1662..a0e33c3b6e8134ec7570a8c160da41c4a92d5040 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -633,6 +633,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0522-Add-EntityMoveEvent.patch b/patches/server/0522-Add-EntityMoveEvent.patch index f8555a31fbe6..172eded7ce42 100644 --- a/patches/server/0522-Add-EntityMoveEvent.patch +++ b/patches/server/0522-Add-EntityMoveEvent.patch @@ -5,31 +5,31 @@ Subject: [PATCH] Add EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6268b8ffe365c45406df7f40fcbc0567cc5d1db4..e048caafe645e33764a26154b5150c5c5de5b1ad 100644 +index 1aa73c3934c754fb9a4e09e8ac9c7f96d608ceb5..849161e11d547445d9bd10ac54bcd994a62aab06 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1529,6 +1529,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper + worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent + worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index fdf85454fc55de4d966442d32ee004e7e66b0ed7..4b1ddc849efaaba6fe35e46d7a979e6c65f0dbd2 100644 +index 30a71abd6dab3967d7206583ece6c496f5ff61df..be76b852ced7ac9cd3c2d3469d6120cc504e9700 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final LevelStorageSource.LevelStorageAccess convertable; public final UUID uuid; - public boolean hasPhysicsEvent = true; // Paper + public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent + public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent - @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI + public LevelChunk getChunkIfLoaded(int x, int z) { return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cf57c977d64a76d29a4f9a4811d55a17cc51e368..a2ed9d38f66004d8e7affd5d8e6277076ea04b3d 100644 +index 71aaa67177cb782e3ee20d57b73a4f6904b39cf1..6db503e99166cae9efdc25d2eae66956e6cf9699 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3361,6 +3361,20 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0523-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0523-added-option-to-disable-pathfinding-updates-on-block.patch index 4eec5bfe697b..2c41565a0aa8 100644 --- a/patches/server/0523-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0523-added-option-to-disable-pathfinding-updates-on-block.patch @@ -5,7 +5,7 @@ Subject: [PATCH] added option to disable pathfinding updates on block changes diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 4b1ddc849efaaba6fe35e46d7a979e6c65f0dbd2..8aa3d8ea13fe7a68628e7647f4da2558873415b4 100644 +index be76b852ced7ac9cd3c2d3469d6120cc504e9700..a27dd0fe48f018e5e2f99e00d8ef5d1f61cea635 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1657,6 +1657,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0532-fix-converting-txt-to-json-file.patch b/patches/server/0532-fix-converting-txt-to-json-file.patch index 019c77e87fec..de9066f8805e 100644 --- a/patches/server/0532-fix-converting-txt-to-json-file.patch +++ b/patches/server/0532-fix-converting-txt-to-json-file.patch @@ -21,7 +21,7 @@ index a20d47f54f12dfc0a5f76dd969238e34c958b618..1c9cf5e1c4ee05724ffcdbd77a19bca1 this.saveUserBanList(); this.loadIpBanList(); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index b6f87e28625df68548a296001a0d67601513f7d1..a27e9ba8448930e45e283b8e19156bcf86b9baee 100644 +index 5ecf65315b42cd07dcd69a10c445b1f0576f03c5..a27e9ba8448930e45e283b8e19156bcf86b9baee 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -199,6 +199,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -42,13 +42,13 @@ index b6f87e28625df68548a296001a0d67601513f7d1..a27e9ba8448930e45e283b8e19156bcf } - if (this.convertOldUsers()) { -- this.getProfileCache().save(false); // Paper +- this.getProfileCache().save(false); // Paper - Perf: Async GameProfileCache saving - } if (!OldUsersConverter.serverReadyAfterUserconversion(this)) { return false; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ed106322419be1065fd900b02f4f71d268726e38..6d31d09c4c14c7038d2698fc13de47cc56ef2964 100644 +index 5541508a1c50ec5375db48d87203c922c6a439de..974ca4ebdbbbbe38ef0f0c1992f69bdcfd52cbf9 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -176,6 +176,7 @@ public abstract class PlayerList { diff --git a/patches/server/0542-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0542-Drop-carried-item-when-player-has-disconnected.patch index 5d0ecd0f71fb..6a35c353de9c 100644 --- a/patches/server/0542-Drop-carried-item-when-player-has-disconnected.patch +++ b/patches/server/0542-Drop-carried-item-when-player-has-disconnected.patch @@ -7,12 +7,12 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro Closes #5036 diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6d31d09c4c14c7038d2698fc13de47cc56ef2964..be5f0e2f23673b914d259e114281fdc0b6047ab6 100644 +index 974ca4ebdbbbbe38ef0f0c1992f69bdcfd52cbf9..b6f173055be42e8627f162f02da00227a4e5f2b6 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -597,6 +597,14 @@ public abstract class PlayerList { +@@ -596,6 +596,14 @@ public abstract class PlayerList { } - // Paper end + // Paper end - Configurable player collision + // Paper - Drop carried item when player has disconnected + if (!entityplayer.containerMenu.getCarried().isEmpty()) { diff --git a/patches/server/0548-Add-bypass-host-check.patch b/patches/server/0548-Add-bypass-host-check.patch index 3e482d71a913..b53ee2c2d872 100644 --- a/patches/server/0548-Add-bypass-host-check.patch +++ b/patches/server/0548-Add-bypass-host-check.patch @@ -8,7 +8,7 @@ Paper.bypassHostCheck Seriously, fix your firewalls. -.- diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 228359f13511262a0e4afeb9deff982ca0f46d9a..e694fd535212105e9229a6047002fdde93aede79 100644 +index 9b611fc277baf99a5d24b30a11f0efa77b22693f..0c6d172c8b723d2ceff7443dfe50ae280cb6dc2d 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -30,6 +30,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL @@ -21,7 +21,7 @@ index 228359f13511262a0e4afeb9deff982ca0f46d9a..e694fd535212105e9229a6047002fdde this.server = server; @@ -129,7 +130,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL if (!handledByEvent && proxyLogicEnabled) { - // Paper end + // Paper end - PlayerHandshakeEvent // if (org.spigotmc.SpigotConfig.bungee) { // Paper - comment out, we check above! - if ( ( split.length == 3 || split.length == 4 ) && ( ServerHandshakePacketListenerImpl.HOST_PATTERN.matcher( split[1] ).matches() ) ) { + if ( ( split.length == 3 || split.length == 4 ) && ( ServerHandshakePacketListenerImpl.BYPASS_HOSTCHECK || ServerHandshakePacketListenerImpl.HOST_PATTERN.matcher( split[1] ).matches() ) ) { // Paper - Add bypass host check diff --git a/patches/server/0559-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/server/0559-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch index 3cb57469a4a6..d23fa92efd33 100644 --- a/patches/server/0559-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch +++ b/patches/server/0559-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch @@ -19,10 +19,10 @@ index 6252f71c6b5df2a35d58c8f7cd64049b2819ddc0..cc393b070f6df598bd4523605d20900c } else { if (this.player.getHealth() > 0.0F) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index be5f0e2f23673b914d259e114281fdc0b6047ab6..67513e8a00e2a5208628c2804dd88c5f576df993 100644 +index b6f173055be42e8627f162f02da00227a4e5f2b6..cb71aacd23696bf0bf83d2850a5f9cbd46eb1996 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -781,6 +781,12 @@ public abstract class PlayerList { +@@ -780,6 +780,12 @@ public abstract class PlayerList { } public ServerPlayer respawn(ServerPlayer entityplayer, ServerLevel worldserver, boolean flag, Location location, boolean avoidSuffocation, RespawnReason reason) { @@ -35,7 +35,7 @@ index be5f0e2f23673b914d259e114281fdc0b6047ab6..67513e8a00e2a5208628c2804dd88c5f entityplayer.stopRiding(); // CraftBukkit this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot -@@ -822,6 +828,7 @@ public abstract class PlayerList { +@@ -821,6 +827,7 @@ public abstract class PlayerList { // Paper start - Add PlayerPostRespawnEvent boolean isBedSpawn = false; @@ -43,7 +43,7 @@ index be5f0e2f23673b914d259e114281fdc0b6047ab6..67513e8a00e2a5208628c2804dd88c5f boolean isRespawn = false; boolean isLocAltered = false; // Paper - Fix SPIGOT-5989 // Paper end - Add PlayerPostRespawnEvent -@@ -842,6 +849,7 @@ public abstract class PlayerList { +@@ -841,6 +848,7 @@ public abstract class PlayerList { if (optional.isPresent()) { BlockState iblockdata = worldserver1.getBlockState(blockposition); boolean flag3 = iblockdata.is(Blocks.RESPAWN_ANCHOR); @@ -51,7 +51,7 @@ index be5f0e2f23673b914d259e114281fdc0b6047ab6..67513e8a00e2a5208628c2804dd88c5f Vec3 vec3d = (Vec3) optional.get(); float f1; -@@ -870,7 +878,7 @@ public abstract class PlayerList { +@@ -869,7 +877,7 @@ public abstract class PlayerList { } Player respawnPlayer = entityplayer1.getBukkitEntity(); diff --git a/patches/server/0577-Add-Unix-domain-socket-support.patch b/patches/server/0577-Add-Unix-domain-socket-support.patch index 77027b2a12ec..1f06b5c59b89 100644 --- a/patches/server/0577-Add-Unix-domain-socket-support.patch +++ b/patches/server/0577-Add-Unix-domain-socket-support.patch @@ -103,7 +103,7 @@ index 2f69f4368bb0fb6d254c1f445953c8dd05d0b0aa..e70ff6389436f33f4ec1d0b238601419 } // Spigot End diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index e694fd535212105e9229a6047002fdde93aede79..a0b655f23176b034d302ea12261f7aac1176213d 100644 +index 0c6d172c8b723d2ceff7443dfe50ae280cb6dc2d..a53dd1ea02bd19826cd9fd337459b08e9533bce8 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -45,6 +45,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL @@ -123,7 +123,7 @@ index e694fd535212105e9229a6047002fdde93aede79..a0b655f23176b034d302ea12261f7aac org.apache.logging.log4j.LogManager.getLogger().debug("Failed to check connection throttle", t); } @@ -131,8 +133,11 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL - // Paper end + // Paper end - PlayerHandshakeEvent // if (org.spigotmc.SpigotConfig.bungee) { // Paper - comment out, we check above! if ( ( split.length == 3 || split.length == 4 ) && ( ServerHandshakePacketListenerImpl.BYPASS_HOSTCHECK || ServerHandshakePacketListenerImpl.HOST_PATTERN.matcher( split[1] ).matches() ) ) { // Paper - Add bypass host check + // Paper start - Unix domain socket support diff --git a/patches/server/0580-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0580-Add-cause-to-Weather-ThunderChangeEvents.patch index be3df38915a0..4e867eaaa611 100644 --- a/patches/server/0580-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0580-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8aa3d8ea13fe7a68628e7647f4da2558873415b4..6409a731209b3dbb6c1ad790aff1954f449bf759 100644 +index a27dd0fe48f018e5e2f99e00d8ef5d1f61cea635..2abfa8df53a0cbb1abefd5ee121ccdc6524d8523 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -667,8 +667,8 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0583-Add-PlayerKickEvent-causes.patch b/patches/server/0583-Add-PlayerKickEvent-causes.patch index 60350d70b3b1..6250c10ff433 100644 --- a/patches/server/0583-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0583-Add-PlayerKickEvent-causes.patch @@ -48,7 +48,7 @@ index 96814e626a95e4e3c2f4df1a0339d37bb02f2e61..ba12919c3f9aec34a9e64993b143ae92 public boolean shouldDisconnect() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e789a6369c792e577e918fcb44bb59c6c5f71d49..88645ffa12f630daf9bd74bb5848ed9dd23d0c1f 100644 +index ad6a0f1a1a9ed11760098b700e8f305faf066fcd..6f7a55bc2379f28e17b7e3500959972bbff9830d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2173,7 +2173,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper + worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent @@ -1577,6 +1580,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e11eb4b3796debeadde58e43d9176aef029228bd..228e8233caf3653d6411e4d85e5dcfd6a012b40f 100644 +index a51f16f01a05860f4188b2b777a015908adbd120..dcbcd97f4b16083c1c56ffdccdc35bc3ad1e20dc 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1009-Write-SavedData-IO-async.patch b/patches/server/1009-Write-SavedData-IO-async.patch index 014bb081f9ec..cd17c4d8505d 100644 --- a/patches/server/1009-Write-SavedData-IO-async.patch +++ b/patches/server/1009-Write-SavedData-IO-async.patch @@ -44,7 +44,7 @@ index 15139198a02e366c0bbfcd5495a21c48e05b3a23..3b0fd733e8fd9639362f251876bea814 // CraftBukkit start - modelled on below diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0c4c20ce794dd7e12cf1712dccc975bf21b01133..4edae565873fdafdd83a0b4509676d4c62b3bbbe 100644 +index 0793c75dccc765b14718392fbc136b8f8ffc8f91..715f6fb68d832545f36184a77f2229c2a1a79f75 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1318,7 +1318,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/1010-Optimize-Collision-to-not-load-chunks.patch b/patches/server/1010-Optimize-Collision-to-not-load-chunks.patch index 10741651991a..f6c26488c549 100644 --- a/patches/server/1010-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/1010-Optimize-Collision-to-not-load-chunks.patch @@ -14,10 +14,10 @@ movement will load only the chunk the player enters anyways and avoids loading massive amounts of surrounding chunks due to large AABB lookups. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 17573871e13affb72e282da02eaba395808b3d9d..f168c9bb2fa3ca5b3168fb4c420a77e5bba6185b 100644 +index d1ca2b75d82653064b905b94a638abbb2d0e710d..1c56b7cd0cfc8cdc0ccfc7ce79cd3e23bef1b334 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -935,6 +935,7 @@ public abstract class PlayerList { +@@ -934,6 +934,7 @@ public abstract class PlayerList { entityplayer1.setShiftKeyDown(false); entityplayer1.forceSetPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); @@ -26,7 +26,7 @@ index 17573871e13affb72e282da02eaba395808b3d9d..f168c9bb2fa3ca5b3168fb4c420a77e5 // CraftBukkit end entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3d7c6d38dba3e74bc0b868ee5efb7cc80bc0352c..c20a9fb40a2c3f555096299de662b5488c00ee26 100644 +index 51b0ec061da092aa1a303ff88b8d029133b82e73..5aa9498f41a3f70af6aec04cfaa587841e2fbebb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -241,6 +241,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1012-Improved-Watchdog-Support.patch b/patches/server/1012-Improved-Watchdog-Support.patch index cc36f13c7c9f..da85e17753b9 100644 --- a/patches/server/1012-Improved-Watchdog-Support.patch +++ b/patches/server/1012-Improved-Watchdog-Support.patch @@ -71,7 +71,7 @@ index 6f2452de76e8f5fcc1367066e0e753740764eb98..e047dee632022abfe05865d1e71838be cause = cause.getCause(); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6ee3eb03967f020d96e4770b71ae39df3e69a79c..69b3d89a352fe5cfd51e2e566c9fa4dfbd765263 100644 +index b703a21df8f27a987f74f99ceff476ec75f647d0..e2e37b75475c7c243245ca3ff78d29c51ff0ad39 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -297,7 +297,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> 4, location.getBlockZ() >> 4), 1, entityplayer.getId()); // Paper @@ -2214,7 +2214,7 @@ index 947cb3b24d6e379b080f3de8cd4ea60e0ca457e4..5a932f329f67fd01a263b9536cbfb1c9 entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1242487930b28fce587114a51a4da3cf9086b762..5bccb05967ac48175d6c45a7d19f83b1f61e5de9 100644 +index 4bf49ef00ad54869966a84c34ebe5f1829f19417..1b72c095f35ba4d94aae0b626aaf2ff500352ad9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1237,9 +1237,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2600,7 +2600,7 @@ index 8c436d16914e160be8e3074badc1293af2ae6b31..a3d15f30eaab29d85cb6b3d693df9980 // Paper start diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c003f9b8109bd3e688d5b160150d229be4ae4d8a..4d91ff3dda92bdd503dd16d4f9e56aa18458592b 100644 +index 1dfc48d4beabff13d5affd662acc99f49902843a..c405265a536b17b93e47384fbb699670f0ac431f 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -299,6 +299,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1033-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1033-Add-Alternate-Current-redstone-implementation.patch index 445a356f2dba..15738d0ba4d0 100644 --- a/patches/server/1033-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/1033-Add-Alternate-Current-redstone-implementation.patch @@ -2008,16 +2008,16 @@ index 0000000000000000000000000000000000000000..33cd90c30c22200a4e1ae64f40a0bf78 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2d4830b4b7df1516c75de1fefd6f8176d8ef16a2..1f0e9689acc1470a65a3c51505d5a386da7abc8e 100644 +index 38c57ad6f028db325bb78fd849e9150af2d6d2ca..c8ed96a458ab05f20c5904d4e449f08f68522184 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -223,6 +223,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final UUID uuid; - public boolean hasPhysicsEvent = true; // Paper + public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent + private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current) - @Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI + public LevelChunk getChunkIfLoaded(int x, int z) { return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately @@ -2593,6 +2594,13 @@ public class ServerLevel extends Level implements WorldGenLevel { return crashreportsystemdetails; @@ -2034,7 +2034,7 @@ index 2d4830b4b7df1516c75de1fefd6f8176d8ef16a2..1f0e9689acc1470a65a3c51505d5a386 EntityCallbacks() {} diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4d91ff3dda92bdd503dd16d4f9e56aa18458592b..ae42d5b3dea423a144056c64337af213609923d4 100644 +index c405265a536b17b93e47384fbb699670f0ac431f..0f4e0a20cc6478d37f6e6a39a551532855021380 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1897,4 +1897,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1034-optimize-dirt-and-snow-spreading.patch b/patches/server/1034-optimize-dirt-and-snow-spreading.patch index 5c1d0ffe0c97..223dbd9a3ee7 100644 --- a/patches/server/1034-optimize-dirt-and-snow-spreading.patch +++ b/patches/server/1034-optimize-dirt-and-snow-spreading.patch @@ -5,7 +5,7 @@ Subject: [PATCH] optimize dirt and snow spreading diff --git a/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java b/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java -index f38524cbcaa908644d901bf0929331d6dfd99ed9..35a70bd30bc4beb06de4bb6e305ec3a787b43044 100644 +index 4e2e80006bd4edae227af7be5ca8e3284b7494f6..f3003a3832deff7724d28b4b3a091f4802a4cb29 100644 --- a/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SpreadingSnowyDirtBlock.java @@ -19,8 +19,13 @@ public abstract class SpreadingSnowyDirtBlock extends SnowyDirtBlock { @@ -41,7 +41,7 @@ index f38524cbcaa908644d901bf0929331d6dfd99ed9..35a70bd30bc4beb06de4bb6e305ec3a7 @Override public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) { - if (this instanceof GrassBlock && world.paperConfig().tickRates.grassSpread != 1 && (world.paperConfig().tickRates.grassSpread < 1 || (MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.grassSpread != 0)) { return; } // Paper + if (this instanceof GrassBlock && world.paperConfig().tickRates.grassSpread != 1 && (world.paperConfig().tickRates.grassSpread < 1 || (MinecraftServer.currentTick + pos.hashCode()) % world.paperConfig().tickRates.grassSpread != 0)) { return; } // Paper - Configurable random tick rates for blocks - if (!SpreadingSnowyDirtBlock.canBeGrass(state, world, pos)) { + // Paper start - Perf: optimize dirt and snow spreading + net.minecraft.world.level.chunk.ChunkAccess cachedBlockChunk = world.getChunkIfLoaded(pos); diff --git a/patches/server/1036-Optimize-Hoppers.patch b/patches/server/1036-Optimize-Hoppers.patch index c6e56308ad55..6c47acb43176 100644 --- a/patches/server/1036-Optimize-Hoppers.patch +++ b/patches/server/1036-Optimize-Hoppers.patch @@ -50,13 +50,13 @@ index 0000000000000000000000000000000000000000..5c42823726e70ce6c9d0121d07431548 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8817f62324bcf8367bd6d4486e6ed99caf547f4f..8c6962029ae04285351e5f16ab4c010cd28f486a 100644 +index 399cb6d50b5a49ab873fab9b5f86c986364d49c3..a18d9569627ba39ad2898be61d40e147d601f84e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1687,6 +1687,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper + worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent + net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent diff --git a/patches/server/1040-Lag-compensation-ticks.patch b/patches/server/1040-Lag-compensation-ticks.patch index 7c7208dcd3f8..37cf98cafa06 100644 --- a/patches/server/1040-Lag-compensation-ticks.patch +++ b/patches/server/1040-Lag-compensation-ticks.patch @@ -8,7 +8,7 @@ Areas affected by lag comepnsation: - Eating food items diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8c6962029ae04285351e5f16ab4c010cd28f486a..c0ae62a5e9af48e7778b37d64aeef7e069256d4c 100644 +index a18d9569627ba39ad2898be61d40e147d601f84e..559e159a0cfdefb5a0d69224409d91c4ad67371a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -311,6 +311,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper + worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1f0e9689acc1470a65a3c51505d5a386da7abc8e..ffe910da16c33ebbce77fef441d9d5c2d097ce61 100644 +index c8ed96a458ab05f20c5904d4e449f08f68522184..f32a28474b7f604df871a9bf3e1fb2e4077c8bc1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -565,6 +565,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -63,7 +63,7 @@ index 83e017efd15d0ecaffc327f02d6d5330c8ed6937..cfd4ac06a9af6bf3fac293110482e1df if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b920f72e659956cc2d2d44743caddb0136d467e4..ca1900d29a86b9b39078da39b071950128c08c23 100644 +index a0b556d91151ba5941f5a433c303c27e4000db5e..fb6cf6e8c72c11b58788c50c2ed34c4e25fc94f9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3827,6 +3827,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1041-Optimise-nearby-player-retrieval.patch b/patches/server/1041-Optimise-nearby-player-retrieval.patch index c41f2cf2739e..f7af520328a1 100644 --- a/patches/server/1041-Optimise-nearby-player-retrieval.patch +++ b/patches/server/1041-Optimise-nearby-player-retrieval.patch @@ -8,7 +8,7 @@ we can instead use the nearby player tracking system to reduce the number of tests per search. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ffe910da16c33ebbce77fef441d9d5c2d097ce61..fa203e66887f5db1083728166e2f81ea4f656bd7 100644 +index f32a28474b7f604df871a9bf3e1fb2e4077c8bc1..8e9936c3725194775cf9b342bd44275a0e2a0088 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -576,6 +576,115 @@ public class ServerLevel extends Level implements WorldGenLevel { From e66037960b02c7b22bbed75318904c55a4177977 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Tue, 23 Jan 2024 15:43:48 +0100 Subject: [PATCH 41/45] [ci skip] Move some disruptive patches back --- ...h-absorb-values-and-repair-bad-data.patch} | 2 +- ...73-Use-a-Shared-Random-for-Entities.patch} | 0 ...e-spawn-chances-for-skeleton-horses.patch} | 0 ...kPhysicsEvent-if-a-plugin-has-a-lis.patch} | 4 +- ...ntity-AddTo-RemoveFrom-World-Events.patch} | 0 ...7-Configurable-Chunk-Inhabited-Time.patch} | 2 +- ...t.patch => 0078-EntityPathfindEvent.patch} | 0 ...gionFileCache-and-make-configurable.patch} | 0 ...-Do-not-load-chunks-for-Pathfinding.patch} | 0 ...081-Add-PlayerUseUnknownEntityEvent.patch} | 2 +- ...urable-random-tick-rates-for-blocks.patch} | 0 ...-BlockPlaceEvent-triggering-physics.patch} | 0 ...its.patch => 0084-Optimize-DataBits.patch} | 0 ...illa-per-world-scoreboard-coloring-.patch} | 0 ... 0086-Configurable-Player-Collision.patch} | 0 ...nt-to-allow-plugins-to-handle-clien.patch} | 0 ...> 0088-Configurable-RCON-IP-address.patch} | 0 ...tyRegainHealthEvent-isFastRegen-API.patch} | 2 +- ...to-configure-frosted_ice-properties.patch} | 0 ...possibility-for-getServer-singleton.patch} | 2 +- ...-scoreboard-teams-to-scoreboard.dat.patch} | 0 ...ble-API-and-replenishable-lootables.patch} | 0 ...em-property-for-disabling-watchdoge.patch} | 0 ... 0095-Async-GameProfileCache-saving.patch} | 0 ...-Optional-TNT-doesn-t-move-in-water.patch} | 0 ...-redstone-torch-rapid-clock-removal.patch} | 2 +- ...h => 0098-Add-server-name-parameter.patch} | 2 +- ...h => 0099-Fix-global-sound-handling.patch} | 6 +- ...locking-on-Network-Manager-creation.patch} | 0 ...-profiles-that-have-no-UUID-and-no-.patch} | 2 +- ...etting-for-proxy-online-mode-status.patch} | 6 +- ...timise-BlockState-s-hashCode-equals.patch} | 0 ...nfigurable-packet-in-spam-threshold.patch} | 0 ...5-Configurable-flying-kick-messages.patch} | 2 +- ...nt.patch => 0106-Add-EntityZapEvent.patch} | 0 ...entity-nbt-data-from-falling-blocks.patch} | 0 ...08-Cache-user-authenticator-threads.patch} | 0 ...-Allow-Reloading-of-Command-Aliases.patch} | 2 +- ...-Add-source-to-PlayerExpChangeEvent.patch} | 2 +- ... => 0111-Add-ProjectileCollideEvent.patch} | 2 +- ...ent-Pathfinding-out-of-World-Border.patch} | 0 ...ze-Level.hasChunkAt-BlockPosition-Z.patch} | 4 +- ...Bound-Treasure-Maps-to-World-Border.patch} | 0 ...igurable-Cartographer-Treasure-Maps.patch} | 0 ...to-control-if-armor-stands-can-move.patch} | 0 ...=> 0117-String-based-Action-Bar-API.patch} | 2 +- ...8-Properly-fix-item-duplication-bug.patch} | 0 ...-API-s.patch => 0119-Firework-API-s.patch} | 0 ... 0120-PlayerTeleportEndGatewayEvent.patch} | 0 ...ovide-E-TE-Chunk-count-stat-methods.patch} | 2 +- ...h => 0122-Enforce-Sync-Player-Saves.patch} | 2 +- ...I-for-Reason-Source-Triggering-play.patch} | 2 +- ...patch => 0124-Cap-Entity-Collisions.patch} | 4 +- ...-CraftScheduler-Async-Task-Debugger.patch} | 0 ...e-async-calls-to-restart-the-server.patch} | 4 +- ...e-parrots-stay-on-shoulders-despite.patch} | 2 +- ...-option-to-prevent-player-names-fro.patch} | 2 +- ...leAppender-for-console-improvements.patch} | 10 +-- ...rable-option-to-disable-creeper-lin.patch} | 0 ....patch => 0131-Item-canEntityPickup.patch} | 0 ...layerPickupItemEvent-setFlyAtPlayer.patch} | 0 ...> 0133-PlayerAttemptPickupItemEvent.patch} | 0 ...profile-lookups-to-worldgen-threads.patch} | 2 +- ...tch => 0135-Basic-PlayerProfile-API.patch} | 8 +-- ...tch => 0136-Add-UnknownCommandEvent.patch} | 0 ... 0137-Shoulder-Entities-Release-API.patch} | 4 +- ...patch => 0138-Profile-Lookup-Events.patch} | 0 ...layer-logins-during-server-shutdown.patch} | 0 ...patch => 0140-Entity-fromMobSpawner.patch} | 2 +- ...1-Improve-the-Saddle-API-for-Horses.patch} | 0 ...=> 0142-ensureServerConversions-API.patch} | 0 ...> 0143-Implement-getI18NDisplayName.patch} | 0 ...=> 0144-ProfileWhitelistVerifyEvent.patch} | 2 +- ...ch => 0145-Fix-this-stupid-bullshit.patch} | 0 ...atch => 0146-LivingEntity-setKiller.patch} | 0 ...wns-should-honor-nametags-and-leash.patch} | 0 ...mer-when-spawner-event-is-cancelled.patch} | 0 ...a-custom-authentication-servers-dow.patch} | 2 +- ...-prefixes-using-Log4J-configuration.patch} | 4 +- ...-Log4J-Configuration-Plugin-Loggers.patch} | 0 ...t.patch => 0152-Add-PlayerJumpEvent.patch} | 2 +- ...le-ServerboundKeepAlivePacket-async.patch} | 0 ...t-protocol-version-and-virtual-host.patch} | 4 +- ...t-serverside-behavior-of-keepalives.patch} | 2 +- ...Effects-only-to-players-who-can-see.patch} | 12 ++-- ... => 0157-Add-PlayerArmorChangeEvent.patch} | 2 +- ...om-being-processed-when-the-player-.patch} | 0 ...17075-Block-entity-unload-lag-spike.patch} | 6 +- ...-implementations-for-captured-block.patch} | 8 +-- ...get-a-BlockState-without-a-snapshot.patch} | 0 ...patch => 0162-AsyncTabCompleteEvent.patch} | 2 +- ...=> 0163-PlayerPickupExperienceEvent.patch} | 2 +- ...-Ability-to-apply-mending-to-XP-API.patch} | 2 +- ...-PlayerNaturallySpawnCreaturesEvent.patch} | 2 +- ...Add-setPlayerProfile-API-for-Skulls.patch} | 0 ...patch => 0167-PreCreatureSpawnEvent.patch} | 4 +- ...> 0168-Fill-Profile-Property-Events.patch} | 2 +- ...layerAdvancementCriterionGrantEvent.patch} | 0 ...ch => 0170-Add-ArmorStand-Item-Meta.patch} | 0 ...Extend-Player-Interact-cancellation.patch} | 0 ... 0172-Tameable-getOwnerUniqueId-API.patch} | 0 ...tch => 0173-Toggleable-player-crits.patch} | 4 +- ...e-Explicit-Network-Manager-Flushing.patch} | 0 ...t-extended-PaperServerListPingEvent.patch} | 2 +- ...d-more-fields-to-AsyncPreLoginEvent.patch} | 2 +- ...=> 0177-Player.setPlayerProfile-API.patch} | 8 +-- ...patch => 0178-getPlayerUniqueId-API.patch} | 2 +- ... 0179-Improved-Async-Task-Scheduler.patch} | 0 ...e-legacy-ping-handler-more-reliable.patch} | 0 ...erverListPingEvent-for-legacy-pings.patch} | 0 ...2-Flag-to-disable-the-channel-limit.patch} | 2 +- ...-Add-openSign-method-to-HumanEntity.patch} | 2 +- ...rable-sprint-interruption-on-attack.patch} | 4 +- ...t.patch => 0185-EndermanEscapeEvent.patch} | 0 ...h => 0186-Enderman.teleportRandomly.patch} | 0 ...187-Block-Enderpearl-Travel-Exploit.patch} | 2 +- ...d.spawnParticle-API-and-add-Builder.patch} | 2 +- ...allowed-colored-signs-to-be-created.patch} | 2 +- ...h => 0190-EndermanAttackPlayerEvent.patch} | 2 +- ...tch => 0191-WitchConsumePotionEvent.patch} | 0 ...patch => 0192-WitchThrowPotionEvent.patch} | 0 ...patch => 0193-WitchReadyPotionEvent.patch} | 0 ...194-ItemStack-getMaxItemUseDuration.patch} | 0 ...5-Add-EntityTeleportEndGatewayEvent.patch} | 0 ...d-flag-on-cancel-of-Explosion-Event.patch} | 2 +- ...ch => 0197-Fix-CraftEntity-hashCode.patch} | 0 ...-Configurable-LootPool-luck-formula.patch} | 0 ...ls-when-failing-to-save-player-data.patch} | 0 ...-shield-blocking-delay-configurable.patch} | 2 +- ...=> 0201-Improve-EntityShootBowEvent.patch} | 0 ...patch => 0202-PlayerReadyArrowEvent.patch} | 4 +- ...ckByEntityEvent-and-EntityPushedByE.patch} | 14 ++-- ...patch => 0204-Expand-Explosions-API.patch} | 2 +- ...vingEntity-Hand-Raised-Item-Use-API.patch} | 0 ...-API.patch => 0206-RangedEntity-API.patch} | 0 ...o-disable-ender-dragon-legacy-check.patch} | 0 ...-Implement-World.getEntity-UUID-API.patch} | 2 +- ...0209-InventoryCloseEvent-Reason-API.patch} | 6 +- ...tch => 0210-Vex-get-setSummoner-API.patch} | 0 ...ventory-when-cancelling-PlayerInter.patch} | 2 +- ...-to-keep-logging-IO-off-main-thread.patch} | 0 ...more-information-to-Entity.toString.patch} | 2 +- ...ts.patch => 0214-EnderDragon-Events.patch} | 0 ...atch => 0215-PlayerElytraBoostEvent.patch} | 0 ...=> 0216-PlayerLaunchProjectileEvent.patch} | 0 ...0217-Improve-BlockPosition-inlining.patch} | 8 +-- ...-armor-stands-from-doing-entity-loo.patch} | 4 +- ...-Vanished-players-don-t-have-rights.patch} | 4 +- ...Allow-disabling-armor-stand-ticking.patch} | 0 ...tch => 0221-SkeletonHorse-Additions.patch} | 0 ...n-t-call-getItemMeta-on-hasItemMeta.patch} | 0 ...patch => 0223-Expand-ArmorStand-API.patch} | 0 ...vent.patch => 0224-AnvilDamageEvent.patch} | 0 ...ent.patch => 0225-Add-TNTPrimeEvent.patch} | 0 ...d-make-tab-spam-limits-configurable.patch} | 2 +- ...s.patch => 0227-Fix-NBT-type-issues.patch} | 2 +- ...emove-unnecessary-itemmeta-handling.patch} | 0 ...es-option-to-debug-dupe-uuid-issues.patch} | 2 +- ...d-Early-Warning-Feature-to-WatchDog.patch} | 6 +- ...1-Use-ConcurrentHashMap-in-JsonList.patch} | 2 +- ...2-Use-a-Queue-for-Queueing-Commands.patch} | 2 +- ...ock-entities-from-a-chunk-without-s.patch} | 0 ...timize-BlockPosition-helper-methods.patch} | 0 ...efault-mob-spawn-range-and-water-an.patch} | 0 ...tch => 0236-Slime-Pathfinder-Events.patch} | 2 +- ...e-speed-for-water-flowing-over-lava.patch} | 0 ...38-Optimize-CraftBlockData-Creation.patch} | 0 ...tch => 0239-Optimize-MappedRegistry.patch} | 0 ...ch => 0240-Add-PhantomPreSpawnEvent.patch} | 0 ....patch => 0241-Add-More-Creeper-API.patch} | 2 +- ...=> 0242-Inventory-removeItemAnySlot.patch} | 0 ...oadChunk-int-int-false-load-unconve.patch} | 2 +- ...ray-tracing-methods-to-LivingEntity.patch} | 2 +- ...-attack-cooldown-methods-for-Player.patch} | 2 +- ....patch => 0246-Improve-death-events.patch} | 8 +-- ...w-chests-to-be-placed-with-NBT-data.patch} | 0 ...I.patch => 0248-Mob-Pathfinding-API.patch} | 0 ...anPlaceOn-and-CanDestroy-NBT-values.patch} | 0 ...nteractions-from-causing-chunk-load.patch} | 6 +- ...ning-from-loading-generating-chunks.patch} | 2 +- ...t-furnace-cook-speed-multiplier-API.patch} | 0 ...=> 0253-Honor-EntityAgeable.ageLock.patch} | 0 ...le-connection-throttle-kick-message.patch} | 2 +- ...nt-chunk-loading-from-Fluid-Flowing.patch} | 0 ...> 0256-Hook-into-CB-plugin-rewrites.patch} | 0 ....patch => 0257-PreSpawnerSpawnEvent.patch} | 2 +- ...58-Add-LivingEntity-getTargetEntity.patch} | 2 +- ...I.patch => 0259-Add-sun-related-API.patch} | 2 +- ...ception-in-entity-and-block-entity-.patch} | 0 ...Turtle-API.patch => 0261-Turtle-API.patch} | 0 ...ator-target-events-and-improve-impl.patch} | 2 +- ...PI.patch => 0263-Add-more-Witch-API.patch} | 0 ...wned-for-Villager-Aggression-Config.patch} | 0 ...vent-players-from-moving-into-unloa.patch} | 2 +- ...6-Reset-players-airTicks-on-respawn.patch} | 2 +- ...after-profile-lookups-if-not-needed.patch} | 0 ...r-Thread-Pool-and-Thread-Priorities.patch} | 2 +- ...=> 0269-Optimize-World-Time-Updates.patch} | 2 +- ...tore-custom-InventoryHolder-support.patch} | 0 ...0271-Fix-SpongeAbsortEvent-handling.patch} | 0 ...-allow-digging-into-unloaded-chunks.patch} | 4 +- ...ult-permission-message-configurable.patch} | 2 +- ...-Large-Packets-disconnecting-client.patch} | 2 +- ...ntity-dismount-during-teleportation.patch} | 8 +-- ...I.patch => 0276-Add-more-Zombie-API.patch} | 0 ...mits.patch => 0277-Book-Size-Limits.patch} | 2 +- ...0278-Add-PlayerConnectionCloseEvent.patch} | 4 +- ...Replace-OfflinePlayer-getLastPlayed.patch} | 6 +- ...ehicle-tracking-issue-on-disconnect.patch} | 2 +- ...-remove-if-the-handle-is-a-custom-p.patch} | 2 +- ...ent.patch => 0282-BlockDestroyEvent.patch} | 4 +- ... => 0283-Async-command-map-building.patch} | 2 +- ....patch => 0284-Brigadier-Mojang-API.patch} | 0 ...ove-exact-choice-recipe-ingredients.patch} | 0 ... 0286-Limit-Client-Sign-length-more.patch} | 2 +- ...ggleEvent-when-whitelist-is-toggled.patch} | 2 +- ...e-Oversized-Tile-Entities-in-chunks.patch} | 0 ...=> 0289-Entity-getEntitySpawnReason.patch} | 2 +- ...tch => 0290-Fire-event-on-GS4-query.patch} | 0 ... => 0291-Add-PlayerPostRespawnEvent.patch} | 2 +- ...for-pickupDelay-breaks-picking-up-i.patch} | 2 +- ...ts.patch => 0293-Server-Tick-Events.patch} | 2 +- ...294-PlayerDeathEvent-getItemsToKeep.patch} | 2 +- ...ptimize-Captured-BlockEntity-Lookup.patch} | 4 +- ...API.patch => 0296-Add-Heightmap-API.patch} | 2 +- ...> 0297-Mob-Spawner-API-Enhancements.patch} | 2 +- ...-to-changed-postToMainThread-method.patch} | 2 +- ...-item-frames-are-modified-MC-123450.patch} | 0 ...0300-Implement-CraftBlockSoundGroup.patch} | 0 ...e-Keep-Spawn-Loaded-range-per-world.patch} | 2 +- ...02-Expose-the-internal-current-tick.patch} | 2 +- ...te-location-if-we-failed-to-read-it.patch} | 0 ...l-Spawned-mobs-towards-natural-spaw.patch} | 2 +- ...urable-projectile-relative-velocity.patch} | 2 +- ...h => 0306-offset-item-frame-ticking.patch} | 0 ...event-consuming-the-wrong-itemstack.patch} | 2 +- ...8-Dont-send-unnecessary-sign-update.patch} | 0 ...-option-to-disable-pillager-patrols.patch} | 0 ...k-loads-when-villagers-try-to-find-.patch} | 0 ...656-Fix-Follow-Range-Initial-Target.patch} | 0 ... 0312-Duplicate-UUID-Resolve-Option.patch} | 2 +- ...ayerDeathEvent-shouldDropExperience.patch} | 2 +- ...ading-chunks-checking-hive-position.patch} | 0 ...hunks-from-Hoppers-and-other-things.patch} | 0 ...timise-EntityGetter-getPlayerByUUID.patch} | 2 +- ...317-Fix-items-not-falling-correctly.patch} | 2 +- ...ize-call-to-getFluid-for-explosions.patch} | 0 ...-in-stack-not-having-effects-when-d.patch} | 0 ...ializing-mismatching-chunk-coordina.patch} | 0 ... 0321-Alternative-item-despawn-rate.patch} | 0 ...=> 0322-Tracking-Range-Improvements.patch} | 4 +- ...-items-vanishing-through-end-portal.patch} | 4 +- ...et-gravity-in-void.-Fixes-MC-167279.patch} | 0 ...25-Improve-Block-breakNaturally-API.patch} | 0 ...-getChunkAt-calls-for-loaded-chunks.patch} | 2 +- ...0327-Add-debug-for-sync-chunk-loads.patch} | 6 +- ... => 0328-Improve-java-version-check.patch} | 0 ...tch => 0329-Add-ThrownEggHatchEvent.patch} | 0 ...p-API.patch => 0330-Entity-Jump-API.patch} | 2 +- ...-to-nerf-pigmen-from-nether-portals.patch} | 12 ++-- ... => 0332-Make-the-GUI-graph-fancier.patch} | 0 ...33-add-hand-to-BlockMultiPlaceEvent.patch} | 0 ...ipwire-hook-placement-before-update.patch} | 0 ...o-allow-iron-golems-to-spawn-in-air.patch} | 0 ...chance-of-villager-zombie-infection.patch} | 0 ...tch => 0337-Optimise-Chunk-getFluid.patch} | 10 +-- ...rbose-world-setting-to-false-by-def.patch} | 2 +- ...Add-tick-times-API-and-mspt-command.patch} | 4 +- ...40-Expose-MinecraftServer-isRunning.patch} | 2 +- ...dd-Raw-Byte-ItemStack-Serialization.patch} | 0 ...pawn-settings-and-per-player-option.patch} | 2 +- ...nections-shouldn-t-hold-up-shutdown.patch} | 2 +- ...ow-bees-to-load-chunks-for-beehives.patch} | 0 ...PlayerChunkMap-adds-crashing-server.patch} | 10 +-- ...tch => 0346-Don-t-tick-dead-players.patch} | 4 +- ...-Player-s-shouldn-t-be-able-to-move.patch} | 4 +- ...ove-existing-players-to-world-spawn.patch} | 8 +-- ....patch => 0349-Optimize-Pathfinding.patch} | 0 ...0-Reduce-Either-Optional-allocation.patch} | 0 ...uce-memory-footprint-of-CompoundTag.patch} | 0 ...ent-opening-inventories-when-frozen.patch} | 6 +- ...entity-collision-code-if-not-needed.patch} | 2 +- ...Implement-Player-Client-Options-API.patch} | 10 +-- ...ayer-is-attempted-to-be-removed-fro.patch} | 0 ...Event-when-Player-is-actually-ready.patch} | 8 +-- ...awn-point-if-spawn-in-unloaded-worl.patch} | 6 +- ...layerAttackEntityCooldownResetEvent.patch} | 2 +- ...-fire-BlockFade-on-worldgen-threads.patch} | 0 ...tom-creative-and-insomniac-controls.patch} | 0 ...tem-duplication-and-teleport-issues.patch} | 14 ++-- ...patch => 0362-Villager-Restocks-API.patch} | 0 ...ickItem-Packet-and-kick-for-invalid.patch} | 0 ...n.patch => 0364-Expose-game-version.patch} | 2 +- ...per-thread-native-byte-buffer-cache.patch} | 0 ....patch => 0366-misc-debugging-dumps.patch} | 4 +- ...7-Prevent-teleporting-dead-entities.patch} | 0 ...traces-in-log-messages-crash-report.patch} | 12 ++-- ...atch => 0369-Implement-Mob-Goal-API.patch} | 2 +- ...=> 0370-Add-villager-reputation-API.patch} | 0 ...maximum-exp-value-when-merging-orbs.patch} | 0 ...tch => 0372-ExperienceOrbMergeEvent.patch} | 0 ...-Fix-PotionEffect-ignores-icon-flag.patch} | 0 ...API.patch => 0374-Potential-bed-API.patch} | 0 ...ait-for-Async-Tasks-during-shutdown.patch} | 4 +- ...er-respects-game-and-entity-rules-f.patch} | 0 ...> 0377-Ensure-safe-gateway-teleport.patch} | 0 ...-for-console-having-all-permissions.patch} | 0 ...x-villager-trading-demand-MC-163962.patch} | 0 ... => 0380-Maps-shouldn-t-load-chunks.patch} | 0 ...okup-for-Treasure-Maps-Fixes-lag-fr.patch} | 0 ...r-runTaskTimerAsynchronously-Plugin.patch} | 0 ...ton-physics-inconsistency-MC-188840.patch} | 4 +- ...uping.patch => 0384-Fix-sand-duping.patch} | 0 ...sing-chunks-due-to-integer-overflow.patch} | 0 ...-position-desync-causing-tp-exploit.patch} | 0 ...older-method-without-block-snapshot.patch} | 0 ...API.patch => 0388-Improve-Arrow-API.patch} | 0 ...0389-Add-PlayerRecipeBookClickEvent.patch} | 0 ...-Hide-sync-chunk-writes-behind-flag.patch} | 2 +- ...1-Add-permission-for-command-blocks.patch} | 4 +- ...position-and-AABB-are-never-invalid.patch} | 8 +-- ...d-Difficulty-Remembering-Difficulty.patch} | 14 ++-- ...atch => 0394-Paper-dumpitem-command.patch} | 0 ...Legacy-Component-serialization-size.patch} | 0 ...Plugin-Tickets-to-API-Chunk-Methods.patch} | 43 +++--------- ...incremental-chunk-and-player-saving.patch} | 8 +-- ...398-Support-old-UUID-format-for-NBT.patch} | 0 ...vert-legacy-attributes-in-Item-Meta.patch} | 0 ...0400-Support-components-in-ItemMeta.patch} | 0 ...e-fix-EntityTargetLivingEntityEvent.patch} | 0 ...patch => 0402-Add-entity-liquid-API.patch} | 0 ...date-itemstack-legacy-name-and-lore.patch} | 0 ...atch => 0404-Add-PrepareResultEvent.patch} | 0 ...-for-portal-on-world-gen-entity-add.patch} | 2 +- ...x-arrows-never-despawning-MC-125757.patch} | 2 +- ...Vanilla-Command-permission-checking.patch} | 0 ...-5989.patch => 0408-Fix-SPIGOT-5989.patch} | 0 ...-Bukkit-world-container-is-not-used.patch} | 0 ...5885-Unable-to-disable-advancements.patch} | 0 ...taPlayer-leak-due-from-quitting-ear.patch} | 0 ...e-NetworkManager-Exception-Handling.patch} | 0 ...ix-some-rails-connecting-improperly.patch} | 0 ...stake-in-CB-NBT-int-deserialization.patch} | 0 ...support.patch => 0415-Brand-support.patch} | 6 +- ...PickupItemAnimation-to-LivingEntity.patch} | 0 ...h => 0417-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 6 +- ...PI.patch => 0419-Add-moon-phase-API.patch} | 0 ...rver-load-chunks-from-newer-version.patch} | 2 +- ...headless-pistons-from-being-created.patch} | 0 ...ent.patch => 0422-Add-BellRingEvent.patch} | 0 ...dd-zombie-targets-turtle-egg-config.patch} | 0 ...patch => 0424-Buffer-joins-to-world.patch} | 6 +- ...s-not-working-in-some-kick-messages.patch} | 2 +- ...reateEvent-needs-to-know-its-entity.patch} | 0 ...I.patch => 0427-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0430-Cache-block-data-strings.patch} | 2 +- ...rtation-and-cancel-velocity-if-tele.patch} | 4 +- ...l-open-container-api-to-HumanEntity.patch} | 0 ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 8 +-- ...-Counter-to-allow-plugins-to-use-va.patch} | 4 +- ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0437-Entity-isTicking.patch} | 4 +- ...non-whitelisted-player-when-white-l.patch} | 2 +- ...-Concurrency-issue-in-ShufflingList.patch} | 0 ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 0 ...-large-move-vectors-crashing-server.patch} | 0 ...atch => 0442-Optimise-getType-calls.patch} | 0 ....patch => 0443-Villager-resetOffers.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 4 +- ...lockpos-allocation-from-pathfinding.patch} | 2 +- ...em-locations-dropped-from-campfires.patch} | 0 ...7-Fix-bell-block-entity-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 2 +- ...ch => 0450-Add-ignore-discounts-API.patch} | 6 +- ...Toggle-for-removing-existing-dragon.patch} | 0 ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0453-Item-no-age-no-player-pickup.patch} | 0 ...454-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0455-Add-API-for-quit-reason.patch} | 8 +-- ...ng-Trader-spawn-rate-config-options.patch} | 0 ...ch => 0457-Expose-world-spawn-angle.patch} | 0 ...patch => 0458-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 2 +- ...60-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0461-Add-PlayerItemCooldownEvent.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...PI.patch => 0463-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 6 +- ...-missing-default-perms-for-commands.patch} | 0 ...h => 0466-Add-PlayerShearBlockEvent.patch} | 0 ....patch => 0467-Limit-recipe-packets.patch} | 0 ...-CraftSound-backwards-compatibility.patch} | 0 ...469-Player-Chunk-Load-Unload-Events.patch} | 10 +-- ...0-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 2 +- ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 0 ...valid-ingredient-lists-in-VillagerA.patch} | 0 ...nt.patch => 0474-Add-TargetHitEvent.patch} | 0 ... 0475-MC-4-Fix-item-position-desync.patch} | 4 +- ... 0476-Additional-Block-Material-API.patch} | 0 ...tch => 0477-Fix-harming-potion-dupe.patch} | 0 ...t-Material-from-Boats-and-Minecarts.patch} | 0 ....patch => 0479-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 4 +- ...-Add-PlayerFlowerPotManipulateEvent.patch} | 0 ...ct-event-not-being-called-sometimes.patch} | 0 ...h => 0484-Zombie-API-breaking-doors.patch} | 0 ...485-Fix-nerfed-slime-when-splitting.patch} | 2 +- ...=> 0486-Add-EntityLoadCrossbowEvent.patch} | 0 ...> 0487-Add-WorldGameRuleChangeEvent.patch} | 6 +- ...88-Add-ServerResourcesReloadedEvent.patch} | 2 +- ...d-settings-for-mobs-picking-up-loot.patch} | 0 ...> 0490-Add-BlockFailedDispenseEvent.patch} | 0 ...91-Add-PlayerLecternPageChangeEvent.patch} | 0 ...92-Add-PlayerLoomPatternSelectEvent.patch} | 0 ...nfigurable-door-breaking-difficulty.patch} | 0 ...ty-commands-shall-not-be-dispatched.patch} | 0 ...OIs.patch => 0495-Remove-stale-POIs.patch} | 4 +- ...h => 0496-Fix-villager-boat-exploit.patch} | 0 ...I.patch => 0497-Add-sendOpLevel-API.patch} | 0 ...0498-TODO-Registry-Modification-API.patch} | 0 ...h => 0499-Add-StructuresLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 4 +- ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 0 ...503-Make-schedule-command-per-world.patch} | 0 ...504-Configurable-max-leash-distance.patch} | 6 +- ...h => 0505-Add-BlockPreDispenseEvent.patch} | 0 ...6-Add-PlayerChangeBeaconEffectEvent.patch} | 0 ...e-for-always-placing-the-dragon-egg.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...h => 0509-Expand-EntityUnleashEvent.patch} | 16 ++--- ...shield-blocking-on-dimension-change.patch} | 4 +- ...atch => 0511-Add-DragonEggFormEvent.patch} | 0 ...t.patch => 0512-Add-EntityMoveEvent.patch} | 6 +- ...isable-pathfinding-updates-on-block.patch} | 6 +- ... 0514-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 0 ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ...atch => 0520-Expose-Tracked-Players.patch} | 0 ...GUI.patch => 0521-Improve-ServerGUI.patch} | 0 ...522-fix-converting-txt-to-json-file.patch} | 0 ...atch => 0523-Add-worldborder-events.patch} | 0 ...h => 0524-Add-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 0 ...h => 0526-Add-recipe-to-cook-events.patch} | 0 ...patch => 0527-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 0 ....patch => 0529-Expand-world-key-API.patch} | 2 +- ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0531-Item-Rarity-API.patch} | 0 ...d-item-when-player-has-disconnected.patch} | 0 ...elist-use-configurable-kick-message.patch} | 2 +- ...gnore-result-of-PlayerEditBookEvent.patch} | 0 ...tch => 0535-Expose-protocol-version.patch} | 0 ...ab-completions-for-brigadier-comman.patch} | 0 ...temConsumeEvent-cancelling-properly.patch} | 2 +- ...patch => 0538-Add-bypass-host-check.patch} | 0 ...0539-Set-area-affect-cloud-rotation.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 0 ...ch => 0545-Add-PlayerDeepSleepEvent.patch} | 2 +- ...ld-API.patch => 0546-More-World-API.patch} | 4 +- ...=> 0547-Add-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 0 ...awnEvent-fix-passed-parameter-issue.patch} | 0 ...acon-activation-deactivation-events.patch} | 0 ...dd-Channel-initialization-listeners.patch} | 10 +-- ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0553-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...55-Entity-load-save-limit-per-chunk.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...close.patch => 0557-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0559-Add-basic-Datapack-API.patch} | 2 +- ...ment-variable-to-disable-server-gui.patch} | 0 ...61-Expand-PlayerGameModeChangeEvent.patch} | 12 ++-- ... => 0562-ItemStack-repair-check-API.patch} | 0 ....patch => 0563-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 10 +-- ...PI.patch => 0566-Add-Mob-lookAt-API.patch} | 0 ...0567-Add-Unix-domain-socket-support.patch} | 8 +-- ... => 0568-Add-EntityInsideBlockEvent.patch} | 0 ...69-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 14 ++-- ...patch => 0571-More-Lidded-Block-API.patch} | 0 ...72-Limit-item-frame-cursors-on-maps.patch} | 6 +- ... => 0573-Add-PlayerKickEvent-causes.patch} | 0 ...0574-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 32 ++++----- ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0578-Add-BellRevealRaiderEvent.patch} | 0 ... 0579-Fix-invulnerable-end-crystals.patch} | 0 ...80-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0581-Fix-dangerous-end-portal-logic.patch} | 6 +- ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...patch => 0584-Line-Of-Sight-Changes.patch} | 6 +- ... => 0585-add-per-world-spawn-limits.patch} | 2 +- ...h => 0586-Fix-potions-splash-events.patch} | 0 ... => 0587-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 6 +- ...PI.patch => 0589-Missing-Entity-API.patch} | 0 ...ect-for-book-edit-is-called-on-main.patch} | 0 ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 10 +-- ...rom-signs-not-firing-command-events.patch} | 0 ...tch => 0594-Add-PlayerArmSwingEvent.patch} | 0 ...-event-leave-message-not-being-sent.patch} | 4 +- ...-for-mobs-immune-to-default-effects.patch} | 2 +- ...-t-apply-cramming-damage-to-players.patch} | 4 +- ...d-timings-for-sensors-and-behaviors.patch} | 0 ... 0599-Add-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0600-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0602-Add-System.out-err-catcher.patch} | 2 +- ...-to-contain-the-source-jars-in-stac.patch} | 0 ...AFK-kick-while-watching-end-credits.patch} | 0 ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0606-Add-PlayerSetSpawnEvent.patch} | 8 +-- ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 2 +- ...-option-for-Piglins-guarding-chests.patch} | 0 ...h => 0610-Add-EntityDamageItemEvent.patch} | 0 ...timize-indirect-passenger-iteration.patch} | 6 +- ...em-frame-map-cursor-update-interval.patch} | 2 +- ...613-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0615-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0617-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0619-Add-back-EntityPortalExitEvent.patch} | 6 +- ...-find-targets-for-lightning-strikes.patch} | 10 +-- ... 0621-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0622-Left-handed-API.patch} | 0 ...ch => 0623-Add-more-advancement-API.patch} | 0 ...624-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0625-Add-critical-damage-API.patch} | 10 +-- ...0626-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0628-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...0-Add-Raw-Byte-Entity-Serialization.patch} | 4 +- ...31-Vanilla-command-permission-fixes.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 10 +-- ...33-Fix-GameProfileCache-concurrency.patch} | 2 +- ...634-Improve-and-expand-AsyncCatcher.patch} | 12 ++-- ...per-mobcaps-and-paper-playermobcaps.patch} | 14 ++-- ...tize-ResourceLocation-error-logging.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 2 +- ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 4 +- ...our-chunk-data-off-disk-when-conver.patch} | 0 ...d-state-when-raytracing-skip-air-bl.patch} | 4 +- ...atch => 0642-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 2 +- ...rimise-map-impl-for-tracked-players.patch} | 4 +- ...imise-BlockSoil-nearby-water-lookup.patch} | 2 +- ... 0646-Distance-manager-tick-timings.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 4 +- ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 0 ...h => 0650-Add-packet-limiter-config.patch} | 6 +- ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0652-Ensure-valid-vehicle-status.patch} | 4 +- ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0657-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 6 +- ...unintended-light-block-manipulation.patch} | 0 ...0660-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0662-Configurable-feature-seeds.patch} | 0 ... 0663-Add-root-admin-user-detection.patch} | 0 ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 4 +- ...ive-velocity-through-repeated-crits.patch} | 2 +- ...e-code-using-deprecated-for-removal.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 4 +- ...e-unnecessary-itemmeta-from-clients.patch} | 4 +- ...=> 0671-Fix-Spigot-growth-modifiers.patch} | 2 +- ...OpenersCounter-openCount-from-going.patch} | 0 ...0673-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0674-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 8 +-- ...-isSectionEmpty-int-and-optimize-Pa.patch} | 2 +- ...patch => 0677-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 33 ++++----- ...ard-CraftEntity-in-teleport-command.patch} | 6 +- ... => 0680-Improve-scoreboard-entries.patch} | 0 ...ch => 0681-Entity-powdered-snow-API.patch} | 0 ...0682-Add-API-for-item-entity-health.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0687-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0688-Bucketable-API.patch} | 0 ...es.patch => 0689-Validate-usernames.patch} | 4 +- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 6 +- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...4-Multiple-Entries-with-Scoreboards.patch} | 2 +- ...695-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0697-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 2 +- ...ent.patch => 0699-Fix-NotePlayEvent.patch} | 0 ....patch => 0700-Freeze-Tick-Lock-API.patch} | 12 ++-- ...h => 0701-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 2 +- ...-missing-structure-set-seed-configs.patch} | 6 +- ...h => 0705-Implement-regenerateChunk.patch} | 4 +- ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 2 +- ...gs.patch => 0708-Add-GameEvent-tags.patch} | 2 +- ...ks-fairly-for-worlds-while-waiting-.patch} | 2 +- ...tch => 0710-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 2 +- ...-worldlist-before-initing-the-world.patch} | 4 +- ... => 0715-Fix-Entity-Position-Desync.patch} | 2 +- ...s.patch => 0716-Custom-Potion-Mixes.patch} | 4 +- ...17-Force-close-world-loading-screen.patch} | 2 +- ...718-Fix-falling-block-spawn-methods.patch} | 6 +- ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 2 +- ...I.patch => 0721-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0724-Implement-getComputedBiome-API.patch} | 0 ...> 0725-Make-some-itemstacks-nonnull.patch} | 0 ...726-Implement-enchantWithLevels-API.patch} | 0 ...h => 0727-Fix-saving-in-unloadWorld.patch} | 2 +- ...h => 0728-Buffer-OOB-setBlock-calls.patch} | 0 ... 0729-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 4 +- ...ssenger-world-matches-ridden-entity.patch} | 4 +- ...s.patch => 0733-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 0 ...-ServerLevel-for-gamerule-callbacks.patch} | 6 +- ...> 0740-Expand-PlayerItemDamageEvent.patch} | 0 ...> 0741-WorldCreator-keepSpawnLoaded.patch} | 2 +- ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 6 +- ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0747-Add-PlayerStopUsingItemEvent.patch} | 2 +- ...rs.patch => 0748-Don-t-tick-markers.patch} | 8 +-- ...tch => 0749-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 0 ...0751-Add-support-for-Proxy-Protocol.patch} | 4 +- ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0754-Sanitize-sent-BlockEntity-NBT.patch} | 4 +- ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 4 +- ...-on-world-create-while-being-ticked.patch} | 2 +- ...58-Dont-resent-entity-on-art-update.patch} | 0 ... => 0759-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 4 +- ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0762-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 2 +- ...pty-items-from-being-added-to-world.patch} | 4 +- ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0766-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 4 +- ...PE.patch => 0769-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 0 ...API.patch => 0771-More-Teleport-API.patch} | 2 +- ... => 0772-Add-EntityPortalReadyEvent.patch} | 6 +- ...level-random-in-entity-constructors.patch} | 2 +- ...k-entities-after-destroy-prediction.patch} | 4 +- ...on-plugins-accessing-faraway-chunks.patch} | 24 +++---- ...tom-Chat-Completion-Suggestions-API.patch} | 2 +- ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0778-Collision-API.patch} | 0 ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0780-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 2 +- ...782-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 2 +- ...ok-changes-from-crashing-the-server.patch} | 2 +- ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0786-Missing-eating-regain-reason.patch} | 0 ....patch => 0787-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...0-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0791-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0793-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0795-Add-getDrops-to-BlockState.patch} | 0 ...=> 0796-Fix-a-bunch-of-vanilla-bugs.patch} | 16 ++--- ...y-onTrackingStart-during-navigation.patch} | 6 +- ... 0798-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0799-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 6 +- ...-Add-PlayerInventorySlotChangeEvent.patch} | 4 +- ... 0802-Elder-Guardian-appearance-API.patch} | 2 +- ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0804-Add-entity-knockback-API.patch} | 0 ....patch => 0805-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...ch => 0807-Add-EntityToggleSitEvent.patch} | 0 ... => 0808-Add-fire-tick-delay-option.patch} | 0 ...patch => 0809-Add-Moving-Piston-API.patch} | 0 ...> 0810-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 4 +- ...0814-Add-PrePlayerAttackEntityEvent.patch} | 4 +- ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 0 ... 0817-Add-Player-Warden-Warning-API.patch} | 2 +- ...a-friendly-methods-to-update-trades.patch} | 6 +- ...819-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 6 +- ...sync-entity-add-due-to-fungus-trees.patch} | 0 ....patch => 0822-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0823-Friction-API.patch} | 2 +- ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0825-Fix-player-kick-on-shutdown.patch} | 0 ... => 0826-Sync-offhand-slot-in-menus.patch} | 4 +- ... 0827-Player-Entity-Tracking-Events.patch} | 8 +-- ...tch => 0828-Limit-pet-look-distance.patch} | 0 ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0830-fix-Instruments.patch} | 2 +- ...for-some-hot-BlockBehavior-and-Flui.patch} | 0 ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0833-Add-BlockLockCheckEvent.patch} | 0 ... 0834-Add-Sneaking-API-for-Entities.patch} | 0 ... => 0835-Improve-logging-and-errors.patch} | 0 ....patch => 0836-Improve-PortalEvents.patch} | 4 +- ...ion-for-spider-worldborder-climbing.patch} | 0 ...sing-SpigotConfig-logCommands-check.patch} | 0 ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0840-Flying-Fall-Damage.patch} | 6 +- ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...ion-moving-velocity-to-VehicleBlock.patch} | 4 +- ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 2 +- ...k-items-during-EntityResurrectEvent.patch} | 2 +- ...en-API.patch => 0846-Win-Screen-API.patch} | 2 +- ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0849-Add-Entity-Body-Yaw-API.patch} | 0 ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 4 +- ...=> 0852-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 2 +- ...857-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0859-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...ives-generating-from-using-bonemeal.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 0 ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 4 +- ...0867-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0870-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...74-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ... => 0876-Expand-PlayerItemMendEvent.patch} | 2 +- ...sh-ProjectileSource-for-projectiles.patch} | 2 +- ... => 0878-Add-transient-modifier-API.patch} | 0 ...patch => 0879-Fix-block-place-logic.patch} | 4 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 2 +- ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...> 0887-Properly-cancel-usable-items.patch} | 8 +-- ...8-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 2 +- ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 0 ...892-Call-missing-BlockDispenseEvent.patch} | 0 ...-chunks-for-supporting-block-checks.patch} | 4 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...895-Add-Sign-getInteractableSideFor.patch} | 0 ...96-Array-backed-synched-entity-data.patch} | 0 ...7-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0898-Fix-BanList-API.patch} | 2 +- ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 0 ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0904-Add-whitelist-events.patch} | 0 ... 0905-Implement-PlayerFailMoveEvent.patch} | 0 ...olia-scheduler-and-owned-region-API.patch} | 8 +-- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 2 +- ...tion-when-spawning-display-entities.patch} | 0 ...910-Only-capture-actual-tree-growth.patch} | 4 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 2 +- ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0915-Cache-map-ids-on-item-frames.patch} | 2 +- ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0917-Bandaid-fix-for-Effect.patch} | 6 +- ...tch => 0918-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 0 ...lace-methods-with-old-StructureType.patch} | 2 +- ...e-namespaced-commands-if-send-names.patch} | 0 ...-handle-BlockBreakEvent-isDropItems.patch} | 4 +- ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 4 +- ... => 0925-Add-Listing-API-for-Player.patch} | 4 +- ...figurable-Region-Compression-Format.patch} | 6 +- ...7-Add-BlockFace-to-BlockDamageEvent.patch} | 2 +- ...h => 0928-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0929-Expand-Pose-API.patch} | 6 +- ...patch => 0930-More-DragonBattle-API.patch} | 0 ... 0931-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0932-Add-PlayerPickItemEvent.patch} | 0 ...=> 0933-Allow-trident-custom-damage.patch} | 0 ...4-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 2 +- ....patch => 0937-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 6 +- ...39-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 0 ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 4 +- ...h => 0946-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 6 +- ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 2 +- ...atch => 0951-Fix-SuspiciousStewMeta.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 4 +- ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...59-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 0960-Add-player-idle-duration-API.patch} | 2 +- ...-if-we-can-see-non-visible-entities.patch} | 4 +- ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 2 +- ...Ints.patch => 0964-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 16 ++--- ...em-packets-with-collector-as-source.patch} | 2 +- ... => 0968-Expand-LingeringPotion-API.patch} | 0 ....patch => 0969-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 4 +- ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...973-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 0 ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 10 +-- ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 14 ++-- ...tch => 0979-Add-Structure-check-API.patch} | 2 +- ...-Dont-resend-blocks-on-interactions.patch} | 8 +-- ...evious-behavior-for-setResourcePack.patch} | 2 +- ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 0984-add-more-scoreboard-API.patch} | 0 ...stry.patch => 0985-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 2 +- ...h => 0987-Add-experience-points-API.patch} | 6 +- ...h => 0988-Add-missing-InventoryType.patch} | 0 ...h => 0989-Add-drops-to-shear-events.patch} | 0 ...> 0990-Add-PlayerShieldDisableEvent.patch} | 12 ++-- ... => 0991-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 6 +- ...-experience-dropping-on-block-break.patch} | 4 +- ...> 0996-Fixup-NamespacedKey-handling.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 6 +- ...ing-for-EntityLiving-hasLineOfSight.patch} | 21 +++--- ...dBounds-and-getBlockState-for-inlin.patch} | 12 ++-- ...tem-frames-performance-and-bug-fixe.patch} | 22 +++--- ...Manager-and-add-advanced-packet-sup.patch} | 30 ++++---- ...02-Allow-Saving-of-Oversized-Chunks.patch} | 22 +++--- ...03-Fix-World-isChunkGenerated-calls.patch} | 64 +++++++++-------- ...004-Flat-bedrock-generator-settings.patch} | 0 ...=> 1005-Entity-Activation-Range-2.0.patch} | 50 +++++++------- ...1006-Optional-per-player-mob-spawns.patch} | 28 ++++---- ...3-Anti-Xray.patch => 1007-Anti-Xray.patch} | 68 +++++++++---------- ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 6 +- ...tance-map-to-optimise-entity-tracker.patch | 12 ++-- scripts/moveback.py | 2 +- 939 files changed, 944 insertions(+), 973 deletions(-) rename patches/server/{0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch => 0072-handle-NaN-health-absorb-values-and-repair-bad-data.patch} (96%) rename patches/server/{0074-Use-a-Shared-Random-for-Entities.patch => 0073-Use-a-Shared-Random-for-Entities.patch} (100%) rename patches/server/{0075-Configurable-spawn-chances-for-skeleton-horses.patch => 0074-Configurable-spawn-chances-for-skeleton-horses.patch} (100%) rename patches/server/{0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch => 0075-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch} (96%) rename patches/server/{0078-Entity-AddTo-RemoveFrom-World-Events.patch => 0076-Entity-AddTo-RemoveFrom-World-Events.patch} (100%) rename patches/server/{0079-Configurable-Chunk-Inhabited-Time.patch => 0077-Configurable-Chunk-Inhabited-Time.patch} (92%) rename patches/server/{0080-EntityPathfindEvent.patch => 0078-EntityPathfindEvent.patch} (100%) rename patches/server/{0081-Sanitise-RegionFileCache-and-make-configurable.patch => 0079-Sanitise-RegionFileCache-and-make-configurable.patch} (100%) rename patches/server/{0082-Do-not-load-chunks-for-Pathfinding.patch => 0080-Do-not-load-chunks-for-Pathfinding.patch} (100%) rename patches/server/{0083-Add-PlayerUseUnknownEntityEvent.patch => 0081-Add-PlayerUseUnknownEntityEvent.patch} (97%) rename patches/server/{0084-Configurable-random-tick-rates-for-blocks.patch => 0082-Configurable-random-tick-rates-for-blocks.patch} (100%) rename patches/server/{0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch => 0083-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch} (100%) rename patches/server/{0086-Optimize-DataBits.patch => 0084-Optimize-DataBits.patch} (100%) rename patches/server/{0087-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch => 0085-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch} (100%) rename patches/server/{0088-Configurable-Player-Collision.patch => 0086-Configurable-Player-Collision.patch} (100%) rename patches/server/{0089-Add-handshake-event-to-allow-plugins-to-handle-clien.patch => 0087-Add-handshake-event-to-allow-plugins-to-handle-clien.patch} (100%) rename patches/server/{0090-Configurable-RCON-IP-address.patch => 0088-Configurable-RCON-IP-address.patch} (100%) rename patches/server/{0091-EntityRegainHealthEvent-isFastRegen-API.patch => 0089-EntityRegainHealthEvent-isFastRegen-API.patch} (96%) rename patches/server/{0092-Add-ability-to-configure-frosted_ice-properties.patch => 0090-Add-ability-to-configure-frosted_ice-properties.patch} (100%) rename patches/server/{0093-remove-null-possibility-for-getServer-singleton.patch => 0091-remove-null-possibility-for-getServer-singleton.patch} (95%) rename patches/server/{0095-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch => 0092-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch} (100%) rename patches/server/{0096-LootTable-API-and-replenishable-lootables.patch => 0093-LootTable-API-and-replenishable-lootables.patch} (100%) rename patches/server/{0097-System-property-for-disabling-watchdoge.patch => 0094-System-property-for-disabling-watchdoge.patch} (100%) rename patches/server/{0098-Async-GameProfileCache-saving.patch => 0095-Async-GameProfileCache-saving.patch} (100%) rename patches/server/{0099-Optional-TNT-doesn-t-move-in-water.patch => 0096-Optional-TNT-doesn-t-move-in-water.patch} (100%) rename patches/server/{0100-Faster-redstone-torch-rapid-clock-removal.patch => 0097-Faster-redstone-torch-rapid-clock-removal.patch} (97%) rename patches/server/{0101-Add-server-name-parameter.patch => 0098-Add-server-name-parameter.patch} (90%) rename patches/server/{0102-Fix-global-sound-handling.patch => 0099-Fix-global-sound-handling.patch} (97%) rename patches/server/{0103-Avoid-blocking-on-Network-Manager-creation.patch => 0100-Avoid-blocking-on-Network-Manager-creation.patch} (100%) rename patches/server/{0104-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch => 0101-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch} (90%) rename patches/server/{0105-Add-setting-for-proxy-online-mode-status.patch => 0102-Add-setting-for-proxy-online-mode-status.patch} (93%) rename patches/server/{0106-Optimise-BlockState-s-hashCode-equals.patch => 0103-Optimise-BlockState-s-hashCode-equals.patch} (100%) rename patches/server/{0107-Configurable-packet-in-spam-threshold.patch => 0104-Configurable-packet-in-spam-threshold.patch} (100%) rename patches/server/{0108-Configurable-flying-kick-messages.patch => 0105-Configurable-flying-kick-messages.patch} (95%) rename patches/server/{0109-Add-EntityZapEvent.patch => 0106-Add-EntityZapEvent.patch} (100%) rename patches/server/{0110-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch => 0107-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch} (100%) rename patches/server/{0111-Cache-user-authenticator-threads.patch => 0108-Cache-user-authenticator-threads.patch} (100%) rename patches/server/{0112-Allow-Reloading-of-Command-Aliases.patch => 0109-Allow-Reloading-of-Command-Aliases.patch} (94%) rename patches/server/{0113-Add-source-to-PlayerExpChangeEvent.patch => 0110-Add-source-to-PlayerExpChangeEvent.patch} (96%) rename patches/server/{0114-Add-ProjectileCollideEvent.patch => 0111-Add-ProjectileCollideEvent.patch} (96%) rename patches/server/{0115-Prevent-Pathfinding-out-of-World-Border.patch => 0112-Prevent-Pathfinding-out-of-World-Border.patch} (100%) rename patches/server/{0116-Optimize-Level.hasChunkAt-BlockPosition-Z.patch => 0113-Optimize-Level.hasChunkAt-BlockPosition-Z.patch} (87%) rename patches/server/{0117-Bound-Treasure-Maps-to-World-Border.patch => 0114-Bound-Treasure-Maps-to-World-Border.patch} (100%) rename patches/server/{0118-Configurable-Cartographer-Treasure-Maps.patch => 0115-Configurable-Cartographer-Treasure-Maps.patch} (100%) rename patches/server/{0119-Add-API-methods-to-control-if-armor-stands-can-move.patch => 0116-Add-API-methods-to-control-if-armor-stands-can-move.patch} (100%) rename patches/server/{0120-String-based-Action-Bar-API.patch => 0117-String-based-Action-Bar-API.patch} (96%) rename patches/server/{0121-Properly-fix-item-duplication-bug.patch => 0118-Properly-fix-item-duplication-bug.patch} (100%) rename patches/server/{0122-Firework-API-s.patch => 0119-Firework-API-s.patch} (100%) rename patches/server/{0123-PlayerTeleportEndGatewayEvent.patch => 0120-PlayerTeleportEndGatewayEvent.patch} (100%) rename patches/server/{0124-Provide-E-TE-Chunk-count-stat-methods.patch => 0121-Provide-E-TE-Chunk-count-stat-methods.patch} (97%) rename patches/server/{0125-Enforce-Sync-Player-Saves.patch => 0122-Enforce-Sync-Player-Saves.patch} (92%) rename patches/server/{0126-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch => 0123-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch} (99%) rename patches/server/{0127-Cap-Entity-Collisions.patch => 0124-Cap-Entity-Collisions.patch} (92%) rename patches/server/{0128-Remove-CraftScheduler-Async-Task-Debugger.patch => 0125-Remove-CraftScheduler-Async-Task-Debugger.patch} (100%) rename patches/server/{0129-Properly-handle-async-calls-to-restart-the-server.patch => 0126-Properly-handle-async-calls-to-restart-the-server.patch} (98%) rename patches/server/{0130-Add-option-to-make-parrots-stay-on-shoulders-despite.patch => 0127-Add-option-to-make-parrots-stay-on-shoulders-despite.patch} (96%) rename patches/server/{0131-Add-configuration-option-to-prevent-player-names-fro.patch => 0128-Add-configuration-option-to-prevent-player-names-fro.patch} (89%) rename patches/server/{0132-Use-TerminalConsoleAppender-for-console-improvements.patch => 0129-Use-TerminalConsoleAppender-for-console-improvements.patch} (98%) rename patches/server/{0133-provide-a-configurable-option-to-disable-creeper-lin.patch => 0130-provide-a-configurable-option-to-disable-creeper-lin.patch} (100%) rename patches/server/{0134-Item-canEntityPickup.patch => 0131-Item-canEntityPickup.patch} (100%) rename patches/server/{0135-PlayerPickupItemEvent-setFlyAtPlayer.patch => 0132-PlayerPickupItemEvent-setFlyAtPlayer.patch} (100%) rename patches/server/{0136-PlayerAttemptPickupItemEvent.patch => 0133-PlayerAttemptPickupItemEvent.patch} (100%) rename patches/server/{0137-Do-not-submit-profile-lookups-to-worldgen-threads.patch => 0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch} (97%) rename patches/server/{0138-Basic-PlayerProfile-API.patch => 0135-Basic-PlayerProfile-API.patch} (98%) rename patches/server/{0139-Add-UnknownCommandEvent.patch => 0136-Add-UnknownCommandEvent.patch} (100%) rename patches/server/{0140-Shoulder-Entities-Release-API.patch => 0137-Shoulder-Entities-Release-API.patch} (96%) rename patches/server/{0141-Profile-Lookup-Events.patch => 0138-Profile-Lookup-Events.patch} (100%) rename patches/server/{0142-Block-player-logins-during-server-shutdown.patch => 0139-Block-player-logins-during-server-shutdown.patch} (100%) rename patches/server/{0143-Entity-fromMobSpawner.patch => 0140-Entity-fromMobSpawner.patch} (97%) rename patches/server/{0144-Improve-the-Saddle-API-for-Horses.patch => 0141-Improve-the-Saddle-API-for-Horses.patch} (100%) rename patches/server/{0145-ensureServerConversions-API.patch => 0142-ensureServerConversions-API.patch} (100%) rename patches/server/{0146-Implement-getI18NDisplayName.patch => 0143-Implement-getI18NDisplayName.patch} (100%) rename patches/server/{0147-ProfileWhitelistVerifyEvent.patch => 0144-ProfileWhitelistVerifyEvent.patch} (97%) rename patches/server/{0148-Fix-this-stupid-bullshit.patch => 0145-Fix-this-stupid-bullshit.patch} (100%) rename patches/server/{0149-LivingEntity-setKiller.patch => 0146-LivingEntity-setKiller.patch} (100%) rename patches/server/{0150-Ocelot-despawns-should-honor-nametags-and-leash.patch => 0147-Ocelot-despawns-should-honor-nametags-and-leash.patch} (100%) rename patches/server/{0151-Reset-spawner-timer-when-spawner-event-is-cancelled.patch => 0148-Reset-spawner-timer-when-spawner-event-is-cancelled.patch} (100%) rename patches/server/{0152-Allow-specifying-a-custom-authentication-servers-dow.patch => 0149-Allow-specifying-a-custom-authentication-servers-dow.patch} (94%) rename patches/server/{0153-Handle-plugin-prefixes-using-Log4J-configuration.patch => 0150-Handle-plugin-prefixes-using-Log4J-configuration.patch} (95%) rename patches/server/{0154-Improve-Log4J-Configuration-Plugin-Loggers.patch => 0151-Improve-Log4J-Configuration-Plugin-Loggers.patch} (100%) rename patches/server/{0155-Add-PlayerJumpEvent.patch => 0152-Add-PlayerJumpEvent.patch} (96%) rename patches/server/{0156-handle-ServerboundKeepAlivePacket-async.patch => 0153-handle-ServerboundKeepAlivePacket-async.patch} (100%) rename patches/server/{0157-Expose-client-protocol-version-and-virtual-host.patch => 0154-Expose-client-protocol-version-and-virtual-host.patch} (95%) rename patches/server/{0158-revert-serverside-behavior-of-keepalives.patch => 0155-revert-serverside-behavior-of-keepalives.patch} (97%) rename patches/server/{0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch => 0156-Send-attack-SoundEffects-only-to-players-who-can-see.patch} (92%) rename patches/server/{0160-Add-PlayerArmorChangeEvent.patch => 0157-Add-PlayerArmorChangeEvent.patch} (98%) rename patches/server/{0161-Prevent-logins-from-being-processed-when-the-player-.patch => 0158-Prevent-logins-from-being-processed-when-the-player-.patch} (100%) rename patches/server/{0162-Fix-MC-117075-Block-entity-unload-lag-spike.patch => 0159-Fix-MC-117075-Block-entity-unload-lag-spike.patch} (89%) rename patches/server/{0163-use-CB-BlockState-implementations-for-captured-block.patch => 0160-use-CB-BlockState-implementations-for-captured-block.patch} (92%) rename patches/server/{0164-API-to-get-a-BlockState-without-a-snapshot.patch => 0161-API-to-get-a-BlockState-without-a-snapshot.patch} (100%) rename patches/server/{0165-AsyncTabCompleteEvent.patch => 0162-AsyncTabCompleteEvent.patch} (99%) rename patches/server/{0166-PlayerPickupExperienceEvent.patch => 0163-PlayerPickupExperienceEvent.patch} (93%) rename patches/server/{0167-Ability-to-apply-mending-to-XP-API.patch => 0164-Ability-to-apply-mending-to-XP-API.patch} (96%) rename patches/server/{0168-PlayerNaturallySpawnCreaturesEvent.patch => 0165-PlayerNaturallySpawnCreaturesEvent.patch} (98%) rename patches/server/{0169-Add-setPlayerProfile-API-for-Skulls.patch => 0166-Add-setPlayerProfile-API-for-Skulls.patch} (100%) rename patches/server/{0170-PreCreatureSpawnEvent.patch => 0167-PreCreatureSpawnEvent.patch} (98%) rename patches/server/{0171-Fill-Profile-Property-Events.patch => 0168-Fill-Profile-Property-Events.patch} (97%) rename patches/server/{0172-Add-PlayerAdvancementCriterionGrantEvent.patch => 0169-Add-PlayerAdvancementCriterionGrantEvent.patch} (100%) rename patches/server/{0173-Add-ArmorStand-Item-Meta.patch => 0170-Add-ArmorStand-Item-Meta.patch} (100%) rename patches/server/{0174-Extend-Player-Interact-cancellation.patch => 0171-Extend-Player-Interact-cancellation.patch} (100%) rename patches/server/{0175-Tameable-getOwnerUniqueId-API.patch => 0172-Tameable-getOwnerUniqueId-API.patch} (100%) rename patches/server/{0176-Toggleable-player-crits.patch => 0173-Toggleable-player-crits.patch} (85%) rename patches/server/{0177-Disable-Explicit-Network-Manager-Flushing.patch => 0174-Disable-Explicit-Network-Manager-Flushing.patch} (100%) rename patches/server/{0178-Implement-extended-PaperServerListPingEvent.patch => 0175-Implement-extended-PaperServerListPingEvent.patch} (99%) rename patches/server/{0179-Add-more-fields-to-AsyncPreLoginEvent.patch => 0176-Add-more-fields-to-AsyncPreLoginEvent.patch} (98%) rename patches/server/{0180-Player.setPlayerProfile-API.patch => 0177-Player.setPlayerProfile-API.patch} (97%) rename patches/server/{0181-getPlayerUniqueId-API.patch => 0178-getPlayerUniqueId-API.patch} (94%) rename patches/server/{0182-Improved-Async-Task-Scheduler.patch => 0179-Improved-Async-Task-Scheduler.patch} (100%) rename patches/server/{0183-Make-legacy-ping-handler-more-reliable.patch => 0180-Make-legacy-ping-handler-more-reliable.patch} (100%) rename patches/server/{0184-Call-PaperServerListPingEvent-for-legacy-pings.patch => 0181-Call-PaperServerListPingEvent-for-legacy-pings.patch} (100%) rename patches/server/{0185-Flag-to-disable-the-channel-limit.patch => 0182-Flag-to-disable-the-channel-limit.patch} (95%) rename patches/server/{0186-Add-openSign-method-to-HumanEntity.patch => 0183-Add-openSign-method-to-HumanEntity.patch} (91%) rename patches/server/{0187-Configurable-sprint-interruption-on-attack.patch => 0184-Configurable-sprint-interruption-on-attack.patch} (88%) rename patches/server/{0188-EndermanEscapeEvent.patch => 0185-EndermanEscapeEvent.patch} (100%) rename patches/server/{0189-Enderman.teleportRandomly.patch => 0186-Enderman.teleportRandomly.patch} (100%) rename patches/server/{0190-Block-Enderpearl-Travel-Exploit.patch => 0187-Block-Enderpearl-Travel-Exploit.patch} (96%) rename patches/server/{0191-Expand-World.spawnParticle-API-and-add-Builder.patch => 0188-Expand-World.spawnParticle-API-and-add-Builder.patch} (97%) rename patches/server/{0192-Fix-exploit-that-allowed-colored-signs-to-be-created.patch => 0189-Fix-exploit-that-allowed-colored-signs-to-be-created.patch} (94%) rename patches/server/{0193-EndermanAttackPlayerEvent.patch => 0190-EndermanAttackPlayerEvent.patch} (94%) rename patches/server/{0194-WitchConsumePotionEvent.patch => 0191-WitchConsumePotionEvent.patch} (100%) rename patches/server/{0195-WitchThrowPotionEvent.patch => 0192-WitchThrowPotionEvent.patch} (100%) rename patches/server/{0196-WitchReadyPotionEvent.patch => 0193-WitchReadyPotionEvent.patch} (100%) rename patches/server/{0197-ItemStack-getMaxItemUseDuration.patch => 0194-ItemStack-getMaxItemUseDuration.patch} (100%) rename patches/server/{0198-Add-EntityTeleportEndGatewayEvent.patch => 0195-Add-EntityTeleportEndGatewayEvent.patch} (100%) rename patches/server/{0199-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch => 0196-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch} (89%) rename patches/server/{0200-Fix-CraftEntity-hashCode.patch => 0197-Fix-CraftEntity-hashCode.patch} (100%) rename patches/server/{0201-Configurable-LootPool-luck-formula.patch => 0198-Configurable-LootPool-luck-formula.patch} (100%) rename patches/server/{0202-Print-Error-details-when-failing-to-save-player-data.patch => 0199-Print-Error-details-when-failing-to-save-player-data.patch} (100%) rename patches/server/{0203-Make-shield-blocking-delay-configurable.patch => 0200-Make-shield-blocking-delay-configurable.patch} (96%) rename patches/server/{0204-Improve-EntityShootBowEvent.patch => 0201-Improve-EntityShootBowEvent.patch} (100%) rename patches/server/{0205-PlayerReadyArrowEvent.patch => 0202-PlayerReadyArrowEvent.patch} (93%) rename patches/server/{0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch => 0203-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch} (95%) rename patches/server/{0207-Expand-Explosions-API.patch => 0204-Expand-Explosions-API.patch} (94%) rename patches/server/{0208-LivingEntity-Hand-Raised-Item-Use-API.patch => 0205-LivingEntity-Hand-Raised-Item-Use-API.patch} (100%) rename patches/server/{0209-RangedEntity-API.patch => 0206-RangedEntity-API.patch} (100%) rename patches/server/{0210-Add-config-to-disable-ender-dragon-legacy-check.patch => 0207-Add-config-to-disable-ender-dragon-legacy-check.patch} (100%) rename patches/server/{0211-Implement-World.getEntity-UUID-API.patch => 0208-Implement-World.getEntity-UUID-API.patch} (91%) rename patches/server/{0212-InventoryCloseEvent-Reason-API.patch => 0209-InventoryCloseEvent-Reason-API.patch} (98%) rename patches/server/{0213-Vex-get-setSummoner-API.patch => 0210-Vex-get-setSummoner-API.patch} (100%) rename patches/server/{0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch => 0211-Refresh-player-inventory-when-cancelling-PlayerInter.patch} (94%) rename patches/server/{0215-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch => 0212-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch} (100%) rename patches/server/{0216-add-more-information-to-Entity.toString.patch => 0213-add-more-information-to-Entity.toString.patch} (95%) rename patches/server/{0217-EnderDragon-Events.patch => 0214-EnderDragon-Events.patch} (100%) rename patches/server/{0218-PlayerElytraBoostEvent.patch => 0215-PlayerElytraBoostEvent.patch} (100%) rename patches/server/{0219-PlayerLaunchProjectileEvent.patch => 0216-PlayerLaunchProjectileEvent.patch} (100%) rename patches/server/{0220-Improve-BlockPosition-inlining.patch => 0217-Improve-BlockPosition-inlining.patch} (89%) rename patches/server/{0221-Option-to-prevent-armor-stands-from-doing-entity-loo.patch => 0218-Option-to-prevent-armor-stands-from-doing-entity-loo.patch} (92%) rename patches/server/{0222-Vanished-players-don-t-have-rights.patch => 0219-Vanished-players-don-t-have-rights.patch} (97%) rename patches/server/{0223-Allow-disabling-armor-stand-ticking.patch => 0220-Allow-disabling-armor-stand-ticking.patch} (100%) rename patches/server/{0224-SkeletonHorse-Additions.patch => 0221-SkeletonHorse-Additions.patch} (100%) rename patches/server/{0225-Don-t-call-getItemMeta-on-hasItemMeta.patch => 0222-Don-t-call-getItemMeta-on-hasItemMeta.patch} (100%) rename patches/server/{0226-Expand-ArmorStand-API.patch => 0223-Expand-ArmorStand-API.patch} (100%) rename patches/server/{0227-AnvilDamageEvent.patch => 0224-AnvilDamageEvent.patch} (100%) rename patches/server/{0228-Add-TNTPrimeEvent.patch => 0225-Add-TNTPrimeEvent.patch} (100%) rename patches/server/{0229-Break-up-and-make-tab-spam-limits-configurable.patch => 0226-Break-up-and-make-tab-spam-limits-configurable.patch} (97%) rename patches/server/{0230-Fix-NBT-type-issues.patch => 0227-Fix-NBT-type-issues.patch} (95%) rename patches/server/{0231-Remove-unnecessary-itemmeta-handling.patch => 0228-Remove-unnecessary-itemmeta-handling.patch} (100%) rename patches/server/{0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch => 0229-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch} (97%) rename patches/server/{0233-Add-Early-Warning-Feature-to-WatchDog.patch => 0230-Add-Early-Warning-Feature-to-WatchDog.patch} (97%) rename patches/server/{0234-Use-ConcurrentHashMap-in-JsonList.patch => 0231-Use-ConcurrentHashMap-in-JsonList.patch} (98%) rename patches/server/{0235-Use-a-Queue-for-Queueing-Commands.patch => 0232-Use-a-Queue-for-Queueing-Commands.patch} (95%) rename patches/server/{0236-Ability-to-get-block-entities-from-a-chunk-without-s.patch => 0233-Ability-to-get-block-entities-from-a-chunk-without-s.patch} (100%) rename patches/server/{0237-Optimize-BlockPosition-helper-methods.patch => 0234-Optimize-BlockPosition-helper-methods.patch} (100%) rename patches/server/{0238-Restore-vanilla-default-mob-spawn-range-and-water-an.patch => 0235-Restore-vanilla-default-mob-spawn-range-and-water-an.patch} (100%) rename patches/server/{0239-Slime-Pathfinder-Events.patch => 0236-Slime-Pathfinder-Events.patch} (98%) rename patches/server/{0240-Configurable-speed-for-water-flowing-over-lava.patch => 0237-Configurable-speed-for-water-flowing-over-lava.patch} (100%) rename patches/server/{0241-Optimize-CraftBlockData-Creation.patch => 0238-Optimize-CraftBlockData-Creation.patch} (100%) rename patches/server/{0242-Optimize-MappedRegistry.patch => 0239-Optimize-MappedRegistry.patch} (100%) rename patches/server/{0243-Add-PhantomPreSpawnEvent.patch => 0240-Add-PhantomPreSpawnEvent.patch} (100%) rename patches/server/{0244-Add-More-Creeper-API.patch => 0241-Add-More-Creeper-API.patch} (96%) rename patches/server/{0245-Inventory-removeItemAnySlot.patch => 0242-Inventory-removeItemAnySlot.patch} (100%) rename patches/server/{0246-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch => 0243-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch} (92%) rename patches/server/{0247-Add-ray-tracing-methods-to-LivingEntity.patch => 0244-Add-ray-tracing-methods-to-LivingEntity.patch} (97%) rename patches/server/{0248-Expose-attack-cooldown-methods-for-Player.patch => 0245-Expose-attack-cooldown-methods-for-Player.patch} (92%) rename patches/server/{0249-Improve-death-events.patch => 0246-Improve-death-events.patch} (98%) rename patches/server/{0250-Allow-chests-to-be-placed-with-NBT-data.patch => 0247-Allow-chests-to-be-placed-with-NBT-data.patch} (100%) rename patches/server/{0251-Mob-Pathfinding-API.patch => 0248-Mob-Pathfinding-API.patch} (100%) rename patches/server/{0252-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch => 0249-Add-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch} (100%) rename patches/server/{0253-Prevent-various-interactions-from-causing-chunk-load.patch => 0250-Prevent-various-interactions-from-causing-chunk-load.patch} (96%) rename patches/server/{0254-Prevent-mob-spawning-from-loading-generating-chunks.patch => 0251-Prevent-mob-spawning-from-loading-generating-chunks.patch} (95%) rename patches/server/{0255-Implement-furnace-cook-speed-multiplier-API.patch => 0252-Implement-furnace-cook-speed-multiplier-API.patch} (100%) rename patches/server/{0256-Honor-EntityAgeable.ageLock.patch => 0253-Honor-EntityAgeable.ageLock.patch} (100%) rename patches/server/{0257-Configurable-connection-throttle-kick-message.patch => 0254-Configurable-connection-throttle-kick-message.patch} (94%) rename patches/server/{0258-Prevent-chunk-loading-from-Fluid-Flowing.patch => 0255-Prevent-chunk-loading-from-Fluid-Flowing.patch} (100%) rename patches/server/{0259-Hook-into-CB-plugin-rewrites.patch => 0256-Hook-into-CB-plugin-rewrites.patch} (100%) rename patches/server/{0260-PreSpawnerSpawnEvent.patch => 0257-PreSpawnerSpawnEvent.patch} (94%) rename patches/server/{0261-Add-LivingEntity-getTargetEntity.patch => 0258-Add-LivingEntity-getTargetEntity.patch} (98%) rename patches/server/{0262-Add-sun-related-API.patch => 0259-Add-sun-related-API.patch} (94%) rename patches/server/{0263-Catch-JsonParseException-in-entity-and-block-entity-.patch => 0260-Catch-JsonParseException-in-entity-and-block-entity-.patch} (100%) rename patches/server/{0264-Turtle-API.patch => 0261-Turtle-API.patch} (100%) rename patches/server/{0265-Call-player-spectator-target-events-and-improve-impl.patch => 0262-Call-player-spectator-target-events-and-improve-impl.patch} (96%) rename patches/server/{0266-Add-more-Witch-API.patch => 0263-Add-more-Witch-API.patch} (100%) rename patches/server/{0267-Check-Drowned-for-Villager-Aggression-Config.patch => 0264-Check-Drowned-for-Villager-Aggression-Config.patch} (100%) rename patches/server/{0268-Add-option-to-prevent-players-from-moving-into-unloa.patch => 0265-Add-option-to-prevent-players-from-moving-into-unloa.patch} (98%) rename patches/server/{0269-Reset-players-airTicks-on-respawn.patch => 0266-Reset-players-airTicks-on-respawn.patch} (90%) rename patches/server/{0270-Don-t-sleep-after-profile-lookups-if-not-needed.patch => 0267-Don-t-sleep-after-profile-lookups-if-not-needed.patch} (100%) rename patches/server/{0271-Improve-Server-Thread-Pool-and-Thread-Priorities.patch => 0268-Improve-Server-Thread-Pool-and-Thread-Priorities.patch} (98%) rename patches/server/{0272-Optimize-World-Time-Updates.patch => 0269-Optimize-World-Time-Updates.patch} (96%) rename patches/server/{0273-Restore-custom-InventoryHolder-support.patch => 0270-Restore-custom-InventoryHolder-support.patch} (100%) rename patches/server/{0274-Fix-SpongeAbsortEvent-handling.patch => 0271-Fix-SpongeAbsortEvent-handling.patch} (100%) rename patches/server/{0275-Don-t-allow-digging-into-unloaded-chunks.patch => 0272-Don-t-allow-digging-into-unloaded-chunks.patch} (96%) rename patches/server/{0276-Make-the-default-permission-message-configurable.patch => 0273-Make-the-default-permission-message-configurable.patch} (95%) rename patches/server/{0277-Handle-Large-Packets-disconnecting-client.patch => 0274-Handle-Large-Packets-disconnecting-client.patch} (98%) rename patches/server/{0278-force-entity-dismount-during-teleportation.patch => 0275-force-entity-dismount-during-teleportation.patch} (94%) rename patches/server/{0279-Add-more-Zombie-API.patch => 0276-Add-more-Zombie-API.patch} (100%) rename patches/server/{0280-Book-Size-Limits.patch => 0277-Book-Size-Limits.patch} (96%) rename patches/server/{0281-Add-PlayerConnectionCloseEvent.patch => 0278-Add-PlayerConnectionCloseEvent.patch} (96%) rename patches/server/{0282-Replace-OfflinePlayer-getLastPlayed.patch => 0279-Replace-OfflinePlayer-getLastPlayed.patch} (96%) rename patches/server/{0283-Workaround-for-vehicle-tracking-issue-on-disconnect.patch => 0280-Workaround-for-vehicle-tracking-issue-on-disconnect.patch} (91%) rename patches/server/{0284-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch => 0281-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch} (92%) rename patches/server/{0285-BlockDestroyEvent.patch => 0282-BlockDestroyEvent.patch} (94%) rename patches/server/{0286-Async-command-map-building.patch => 0283-Async-command-map-building.patch} (97%) rename patches/server/{0287-Brigadier-Mojang-API.patch => 0284-Brigadier-Mojang-API.patch} (100%) rename patches/server/{0288-Improve-exact-choice-recipe-ingredients.patch => 0285-Improve-exact-choice-recipe-ingredients.patch} (100%) rename patches/server/{0289-Limit-Client-Sign-length-more.patch => 0286-Limit-Client-Sign-length-more.patch} (96%) rename patches/server/{0290-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch => 0287-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch} (89%) rename patches/server/{0291-Handle-Oversized-Tile-Entities-in-chunks.patch => 0288-Handle-Oversized-Tile-Entities-in-chunks.patch} (100%) rename patches/server/{0292-Entity-getEntitySpawnReason.patch => 0289-Entity-getEntitySpawnReason.patch} (98%) rename patches/server/{0294-Fire-event-on-GS4-query.patch => 0290-Fire-event-on-GS4-query.patch} (100%) rename patches/server/{0295-Add-PlayerPostRespawnEvent.patch => 0291-Add-PlayerPostRespawnEvent.patch} (95%) rename patches/server/{0296-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch => 0292-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch} (94%) rename patches/server/{0297-Server-Tick-Events.patch => 0293-Server-Tick-Events.patch} (94%) rename patches/server/{0298-PlayerDeathEvent-getItemsToKeep.patch => 0294-PlayerDeathEvent-getItemsToKeep.patch} (97%) rename patches/server/{0299-Optimize-Captured-BlockEntity-Lookup.patch => 0295-Optimize-Captured-BlockEntity-Lookup.patch} (91%) rename patches/server/{0300-Add-Heightmap-API.patch => 0296-Add-Heightmap-API.patch} (95%) rename patches/server/{0301-Mob-Spawner-API-Enhancements.patch => 0297-Mob-Spawner-API-Enhancements.patch} (98%) rename patches/server/{0302-Fix-CB-call-to-changed-postToMainThread-method.patch => 0298-Fix-CB-call-to-changed-postToMainThread-method.patch} (91%) rename patches/server/{0303-Fix-sounds-when-item-frames-are-modified-MC-123450.patch => 0299-Fix-sounds-when-item-frames-are-modified-MC-123450.patch} (100%) rename patches/server/{0304-Implement-CraftBlockSoundGroup.patch => 0300-Implement-CraftBlockSoundGroup.patch} (100%) rename patches/server/{0305-Configurable-Keep-Spawn-Loaded-range-per-world.patch => 0301-Configurable-Keep-Spawn-Loaded-range-per-world.patch} (99%) rename patches/server/{0307-Expose-the-internal-current-tick.patch => 0302-Expose-the-internal-current-tick.patch} (90%) rename patches/server/{0309-Show-blockstate-location-if-we-failed-to-read-it.patch => 0303-Show-blockstate-location-if-we-failed-to-read-it.patch} (100%) rename patches/server/{0310-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch => 0304-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch} (94%) rename patches/server/{0311-Configurable-projectile-relative-velocity.patch => 0305-Configurable-projectile-relative-velocity.patch} (96%) rename patches/server/{0312-offset-item-frame-ticking.patch => 0306-offset-item-frame-ticking.patch} (100%) rename patches/server/{0313-Prevent-consuming-the-wrong-itemstack.patch => 0307-Prevent-consuming-the-wrong-itemstack.patch} (96%) rename patches/server/{0314-Dont-send-unnecessary-sign-update.patch => 0308-Dont-send-unnecessary-sign-update.patch} (100%) rename patches/server/{0315-Add-option-to-disable-pillager-patrols.patch => 0309-Add-option-to-disable-pillager-patrols.patch} (100%) rename patches/server/{0317-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch => 0310-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch} (100%) rename patches/server/{0318-MC-145656-Fix-Follow-Range-Initial-Target.patch => 0311-MC-145656-Fix-Follow-Range-Initial-Target.patch} (100%) rename patches/server/{0319-Duplicate-UUID-Resolve-Option.patch => 0312-Duplicate-UUID-Resolve-Option.patch} (98%) rename patches/server/{0320-PlayerDeathEvent-shouldDropExperience.patch => 0313-PlayerDeathEvent-shouldDropExperience.patch} (91%) rename patches/server/{0321-Prevent-bees-loading-chunks-checking-hive-position.patch => 0314-Prevent-bees-loading-chunks-checking-hive-position.patch} (100%) rename patches/server/{0322-Don-t-load-Chunks-from-Hoppers-and-other-things.patch => 0315-Don-t-load-Chunks-from-Hoppers-and-other-things.patch} (100%) rename patches/server/{0323-Optimise-EntityGetter-getPlayerByUUID.patch => 0316-Optimise-EntityGetter-getPlayerByUUID.patch} (94%) rename patches/server/{0324-Fix-items-not-falling-correctly.patch => 0317-Fix-items-not-falling-correctly.patch} (96%) rename patches/server/{0325-Optimize-call-to-getFluid-for-explosions.patch => 0318-Optimize-call-to-getFluid-for-explosions.patch} (100%) rename patches/server/{0326-Fix-last-firework-in-stack-not-having-effects-when-d.patch => 0319-Fix-last-firework-in-stack-not-having-effects-when-d.patch} (100%) rename patches/server/{0328-Guard-against-serializing-mismatching-chunk-coordina.patch => 0320-Guard-against-serializing-mismatching-chunk-coordina.patch} (100%) rename patches/server/{0329-Alternative-item-despawn-rate.patch => 0321-Alternative-item-despawn-rate.patch} (100%) rename patches/server/{0330-Tracking-Range-Improvements.patch => 0322-Tracking-Range-Improvements.patch} (95%) rename patches/server/{0331-Fix-items-vanishing-through-end-portal.patch => 0323-Fix-items-vanishing-through-end-portal.patch} (89%) rename patches/server/{0334-Bees-get-gravity-in-void.-Fixes-MC-167279.patch => 0324-Bees-get-gravity-in-void.-Fixes-MC-167279.patch} (100%) rename patches/server/{0335-Improve-Block-breakNaturally-API.patch => 0325-Improve-Block-breakNaturally-API.patch} (100%) rename patches/server/{0336-Optimise-getChunkAt-calls-for-loaded-chunks.patch => 0326-Optimise-getChunkAt-calls-for-loaded-chunks.patch} (96%) rename patches/server/{0337-Add-debug-for-sync-chunk-loads.patch => 0327-Add-debug-for-sync-chunk-loads.patch} (98%) rename patches/server/{0338-Improve-java-version-check.patch => 0328-Improve-java-version-check.patch} (100%) rename patches/server/{0339-Add-ThrownEggHatchEvent.patch => 0329-Add-ThrownEggHatchEvent.patch} (100%) rename patches/server/{0340-Entity-Jump-API.patch => 0330-Entity-Jump-API.patch} (97%) rename patches/server/{0341-Add-option-to-nerf-pigmen-from-nether-portals.patch => 0331-Add-option-to-nerf-pigmen-from-nether-portals.patch} (86%) rename patches/server/{0342-Make-the-GUI-graph-fancier.patch => 0332-Make-the-GUI-graph-fancier.patch} (100%) rename patches/server/{0343-add-hand-to-BlockMultiPlaceEvent.patch => 0333-add-hand-to-BlockMultiPlaceEvent.patch} (100%) rename patches/server/{0344-Validate-tripwire-hook-placement-before-update.patch => 0334-Validate-tripwire-hook-placement-before-update.patch} (100%) rename patches/server/{0345-Add-option-to-allow-iron-golems-to-spawn-in-air.patch => 0335-Add-option-to-allow-iron-golems-to-spawn-in-air.patch} (100%) rename patches/server/{0346-Configurable-chance-of-villager-zombie-infection.patch => 0336-Configurable-chance-of-villager-zombie-infection.patch} (100%) rename patches/server/{0347-Optimise-Chunk-getFluid.patch => 0337-Optimise-Chunk-getFluid.patch} (88%) rename patches/server/{0348-Set-spigots-verbose-world-setting-to-false-by-def.patch => 0338-Set-spigots-verbose-world-setting-to-false-by-def.patch} (89%) rename patches/server/{0349-Add-tick-times-API-and-mspt-command.patch => 0339-Add-tick-times-API-and-mspt-command.patch} (97%) rename patches/server/{0350-Expose-MinecraftServer-isRunning.patch => 0340-Expose-MinecraftServer-isRunning.patch} (90%) rename patches/server/{0351-Add-Raw-Byte-ItemStack-Serialization.patch => 0341-Add-Raw-Byte-ItemStack-Serialization.patch} (100%) rename patches/server/{0352-Pillager-patrol-spawn-settings-and-per-player-option.patch => 0342-Pillager-patrol-spawn-settings-and-per-player-option.patch} (98%) rename patches/server/{0353-Remote-Connections-shouldn-t-hold-up-shutdown.patch => 0343-Remote-Connections-shouldn-t-hold-up-shutdown.patch} (95%) rename patches/server/{0354-Do-not-allow-bees-to-load-chunks-for-beehives.patch => 0344-Do-not-allow-bees-to-load-chunks-for-beehives.patch} (100%) rename patches/server/{0355-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch => 0345-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch} (88%) rename patches/server/{0356-Don-t-tick-dead-players.patch => 0346-Don-t-tick-dead-players.patch} (85%) rename patches/server/{0357-Dead-Player-s-shouldn-t-be-able-to-move.patch => 0347-Dead-Player-s-shouldn-t-be-able-to-move.patch} (84%) rename patches/server/{0358-Don-t-move-existing-players-to-world-spawn.patch => 0348-Don-t-move-existing-players-to-world-spawn.patch} (88%) rename patches/server/{0359-Optimize-Pathfinding.patch => 0349-Optimize-Pathfinding.patch} (100%) rename patches/server/{0360-Reduce-Either-Optional-allocation.patch => 0350-Reduce-Either-Optional-allocation.patch} (100%) rename patches/server/{0361-Reduce-memory-footprint-of-CompoundTag.patch => 0351-Reduce-memory-footprint-of-CompoundTag.patch} (100%) rename patches/server/{0362-Prevent-opening-inventories-when-frozen.patch => 0352-Prevent-opening-inventories-when-frozen.patch} (94%) rename patches/server/{0363-Don-t-run-entity-collision-code-if-not-needed.patch => 0353-Don-t-run-entity-collision-code-if-not-needed.patch} (96%) rename patches/server/{0364-Implement-Player-Client-Options-API.patch => 0354-Implement-Player-Client-Options-API.patch} (96%) rename patches/server/{0365-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch => 0355-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch} (100%) rename patches/server/{0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch => 0356-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch} (94%) rename patches/server/{0367-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch => 0357-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch} (96%) rename patches/server/{0368-Add-PlayerAttackEntityCooldownResetEvent.patch => 0358-Add-PlayerAttackEntityCooldownResetEvent.patch} (95%) rename patches/server/{0369-Don-t-fire-BlockFade-on-worldgen-threads.patch => 0359-Don-t-fire-BlockFade-on-worldgen-threads.patch} (100%) rename patches/server/{0370-Add-phantom-creative-and-insomniac-controls.patch => 0360-Add-phantom-creative-and-insomniac-controls.patch} (100%) rename patches/server/{0371-Fix-item-duplication-and-teleport-issues.patch => 0361-Fix-item-duplication-and-teleport-issues.patch} (95%) rename patches/server/{0372-Villager-Restocks-API.patch => 0362-Villager-Restocks-API.patch} (100%) rename patches/server/{0373-Validate-PickItem-Packet-and-kick-for-invalid.patch => 0363-Validate-PickItem-Packet-and-kick-for-invalid.patch} (100%) rename patches/server/{0374-Expose-game-version.patch => 0364-Expose-game-version.patch} (89%) rename patches/server/{0375-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch => 0365-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch} (100%) rename patches/server/{0376-misc-debugging-dumps.patch => 0366-misc-debugging-dumps.patch} (96%) rename patches/server/{0377-Prevent-teleporting-dead-entities.patch => 0367-Prevent-teleporting-dead-entities.patch} (100%) rename patches/server/{0378-Deobfuscate-stacktraces-in-log-messages-crash-report.patch => 0368-Deobfuscate-stacktraces-in-log-messages-crash-report.patch} (98%) rename patches/server/{0379-Implement-Mob-Goal-API.patch => 0369-Implement-Mob-Goal-API.patch} (99%) rename patches/server/{0380-Add-villager-reputation-API.patch => 0370-Add-villager-reputation-API.patch} (100%) rename patches/server/{0381-Option-for-maximum-exp-value-when-merging-orbs.patch => 0371-Option-for-maximum-exp-value-when-merging-orbs.patch} (100%) rename patches/server/{0382-ExperienceOrbMergeEvent.patch => 0372-ExperienceOrbMergeEvent.patch} (100%) rename patches/server/{0383-Fix-PotionEffect-ignores-icon-flag.patch => 0373-Fix-PotionEffect-ignores-icon-flag.patch} (100%) rename patches/server/{0384-Potential-bed-API.patch => 0374-Potential-bed-API.patch} (100%) rename patches/server/{0385-Wait-for-Async-Tasks-during-shutdown.patch => 0375-Wait-for-Async-Tasks-during-shutdown.patch} (93%) rename patches/server/{0386-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch => 0376-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch} (100%) rename patches/server/{0387-Ensure-safe-gateway-teleport.patch => 0377-Ensure-safe-gateway-teleport.patch} (100%) rename patches/server/{0388-Add-option-for-console-having-all-permissions.patch => 0378-Add-option-for-console-having-all-permissions.patch} (100%) rename patches/server/{0389-Fix-villager-trading-demand-MC-163962.patch => 0379-Fix-villager-trading-demand-MC-163962.patch} (100%) rename patches/server/{0390-Maps-shouldn-t-load-chunks.patch => 0380-Maps-shouldn-t-load-chunks.patch} (100%) rename patches/server/{0391-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch => 0381-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch} (100%) rename patches/server/{0392-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch => 0382-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch} (100%) rename patches/server/{0393-Fix-piston-physics-inconsistency-MC-188840.patch => 0383-Fix-piston-physics-inconsistency-MC-188840.patch} (97%) rename patches/server/{0394-Fix-sand-duping.patch => 0384-Fix-sand-duping.patch} (100%) rename patches/server/{0395-Fix-missing-chunks-due-to-integer-overflow.patch => 0385-Fix-missing-chunks-due-to-integer-overflow.patch} (100%) rename patches/server/{0396-Prevent-position-desync-causing-tp-exploit.patch => 0386-Prevent-position-desync-causing-tp-exploit.patch} (100%) rename patches/server/{0397-Inventory-getHolder-method-without-block-snapshot.patch => 0387-Inventory-getHolder-method-without-block-snapshot.patch} (100%) rename patches/server/{0398-Improve-Arrow-API.patch => 0388-Improve-Arrow-API.patch} (100%) rename patches/server/{0399-Add-PlayerRecipeBookClickEvent.patch => 0389-Add-PlayerRecipeBookClickEvent.patch} (100%) rename patches/server/{0400-Hide-sync-chunk-writes-behind-flag.patch => 0390-Hide-sync-chunk-writes-behind-flag.patch} (93%) rename patches/server/{0401-Add-permission-for-command-blocks.patch => 0391-Add-permission-for-command-blocks.patch} (97%) rename patches/server/{0402-Ensure-Entity-position-and-AABB-are-never-invalid.patch => 0392-Ensure-Entity-position-and-AABB-are-never-invalid.patch} (91%) rename patches/server/{0403-Fix-Per-World-Difficulty-Remembering-Difficulty.patch => 0393-Fix-Per-World-Difficulty-Remembering-Difficulty.patch} (93%) rename patches/server/{0404-Paper-dumpitem-command.patch => 0394-Paper-dumpitem-command.patch} (100%) rename patches/server/{0405-Improve-Legacy-Component-serialization-size.patch => 0395-Improve-Legacy-Component-serialization-size.patch} (100%) rename patches/server/{0406-Add-Plugin-Tickets-to-API-Chunk-Methods.patch => 0396-Add-Plugin-Tickets-to-API-Chunk-Methods.patch} (70%) rename patches/server/{0407-incremental-chunk-and-player-saving.patch => 0397-incremental-chunk-and-player-saving.patch} (95%) rename patches/server/{0408-Support-old-UUID-format-for-NBT.patch => 0398-Support-old-UUID-format-for-NBT.patch} (100%) rename patches/server/{0409-Convert-legacy-attributes-in-Item-Meta.patch => 0399-Convert-legacy-attributes-in-Item-Meta.patch} (100%) rename patches/server/{0410-Support-components-in-ItemMeta.patch => 0400-Support-components-in-ItemMeta.patch} (100%) rename patches/server/{0411-Improve-fix-EntityTargetLivingEntityEvent.patch => 0401-Improve-fix-EntityTargetLivingEntityEvent.patch} (100%) rename patches/server/{0412-Add-entity-liquid-API.patch => 0402-Add-entity-liquid-API.patch} (100%) rename patches/server/{0413-Update-itemstack-legacy-name-and-lore.patch => 0403-Update-itemstack-legacy-name-and-lore.patch} (100%) rename patches/server/{0414-Add-PrepareResultEvent.patch => 0404-Add-PrepareResultEvent.patch} (100%) rename patches/server/{0415-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch => 0405-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch} (91%) rename patches/server/{0416-Fix-arrows-never-despawning-MC-125757.patch => 0406-Fix-arrows-never-despawning-MC-125757.patch} (91%) rename patches/server/{0417-Thread-Safe-Vanilla-Command-permission-checking.patch => 0407-Thread-Safe-Vanilla-Command-permission-checking.patch} (100%) rename patches/server/{0418-Fix-SPIGOT-5989.patch => 0408-Fix-SPIGOT-5989.patch} (100%) rename patches/server/{0419-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0409-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (100%) rename patches/server/{0420-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0410-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (100%) rename patches/server/{0421-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0411-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (100%) rename patches/server/{0422-Optimize-NetworkManager-Exception-Handling.patch => 0412-Optimize-NetworkManager-Exception-Handling.patch} (100%) rename patches/server/{0423-Fix-some-rails-connecting-improperly.patch => 0413-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/server/{0424-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0414-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/server/{0425-Brand-support.patch => 0415-Brand-support.patch} (95%) rename patches/server/{0426-Add-playPickupItemAnimation-to-LivingEntity.patch => 0416-Add-playPickupItemAnimation-to-LivingEntity.patch} (100%) rename patches/server/{0427-Don-t-require-FACING-data.patch => 0417-Don-t-require-FACING-data.patch} (100%) rename patches/server/{0428-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0418-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (91%) rename patches/server/{0429-Add-moon-phase-API.patch => 0419-Add-moon-phase-API.patch} (100%) rename patches/server/{0430-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0420-Do-not-let-the-server-load-chunks-from-newer-version.patch} (95%) rename patches/server/{0431-Prevent-headless-pistons-from-being-created.patch => 0421-Prevent-headless-pistons-from-being-created.patch} (100%) rename patches/server/{0432-Add-BellRingEvent.patch => 0422-Add-BellRingEvent.patch} (100%) rename patches/server/{0433-Add-zombie-targets-turtle-egg-config.patch => 0423-Add-zombie-targets-turtle-egg-config.patch} (100%) rename patches/server/{0434-Buffer-joins-to-world.patch => 0424-Buffer-joins-to-world.patch} (91%) rename patches/server/{0435-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0425-Fix-hex-colors-not-working-in-some-kick-messages.patch} (97%) rename patches/server/{0436-PortalCreateEvent-needs-to-know-its-entity.patch => 0426-PortalCreateEvent-needs-to-know-its-entity.patch} (100%) rename patches/server/{0437-Add-more-Evoker-API.patch => 0427-Add-more-Evoker-API.patch} (100%) rename patches/server/{0438-Add-methods-to-get-translation-keys.patch => 0428-Add-methods-to-get-translation-keys.patch} (100%) rename patches/server/{0439-Create-HoverEvent-from-ItemStack-Entity.patch => 0429-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0440-Cache-block-data-strings.patch => 0430-Cache-block-data-strings.patch} (97%) rename patches/server/{0441-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0431-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (97%) rename patches/server/{0442-Add-additional-open-container-api-to-HumanEntity.patch => 0432-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/server/{0443-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0433-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0444-Extend-block-drop-capture-to-capture-all-items-added.patch => 0434-Extend-block-drop-capture-to-capture-all-items-added.patch} (89%) rename patches/server/{0445-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0435-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (90%) rename patches/server/{0446-Lazily-track-plugin-scoreboards-by-default.patch => 0436-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0447-Entity-isTicking.patch => 0437-Entity-isTicking.patch} (90%) rename patches/server/{0448-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0438-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (94%) rename patches/server/{0449-Fix-Concurrency-issue-in-ShufflingList.patch => 0439-Fix-Concurrency-issue-in-ShufflingList.patch} (100%) rename patches/server/{0450-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0440-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (100%) rename patches/server/{0451-Fix-for-large-move-vectors-crashing-server.patch => 0441-Fix-for-large-move-vectors-crashing-server.patch} (100%) rename patches/server/{0452-Optimise-getType-calls.patch => 0442-Optimise-getType-calls.patch} (100%) rename patches/server/{0453-Villager-resetOffers.patch => 0443-Villager-resetOffers.patch} (100%) rename patches/server/{0454-Retain-block-place-order-when-capturing-blockstates.patch => 0444-Retain-block-place-order-when-capturing-blockstates.patch} (91%) rename patches/server/{0455-Reduce-blockpos-allocation-from-pathfinding.patch => 0445-Reduce-blockpos-allocation-from-pathfinding.patch} (94%) rename patches/server/{0456-Fix-item-locations-dropped-from-campfires.patch => 0446-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0457-Fix-bell-block-entity-memory-leak.patch => 0447-Fix-bell-block-entity-memory-leak.patch} (100%) rename patches/server/{0458-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0448-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0459-Add-getOfflinePlayerIfCached-String.patch => 0449-Add-getOfflinePlayerIfCached-String.patch} (93%) rename patches/server/{0460-Add-ignore-discounts-API.patch => 0450-Add-ignore-discounts-API.patch} (97%) rename patches/server/{0461-Toggle-for-removing-existing-dragon.patch => 0451-Toggle-for-removing-existing-dragon.patch} (100%) rename patches/server/{0462-Fix-client-lag-on-advancement-loading.patch => 0452-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/server/{0463-Item-no-age-no-player-pickup.patch => 0453-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0464-Beacon-API-custom-effect-ranges.patch => 0454-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0465-Add-API-for-quit-reason.patch => 0455-Add-API-for-quit-reason.patch} (94%) rename patches/server/{0466-Add-Wandering-Trader-spawn-rate-config-options.patch => 0456-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/server/{0467-Expose-world-spawn-angle.patch => 0457-Expose-world-spawn-angle.patch} (100%) rename patches/server/{0468-Add-Destroy-Speed-API.patch => 0458-Add-Destroy-Speed-API.patch} (100%) rename patches/server/{0469-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0459-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (93%) rename patches/server/{0470-Add-LivingEntity-clearActiveItem.patch => 0460-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/server/{0471-Add-PlayerItemCooldownEvent.patch => 0461-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0472-Significantly-improve-performance-of-the-end-generat.patch => 0462-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0473-More-lightning-API.patch => 0463-More-lightning-API.patch} (100%) rename patches/server/{0474-Climbing-should-not-bypass-cramming-gamerule.patch => 0464-Climbing-should-not-bypass-cramming-gamerule.patch} (97%) rename patches/server/{0475-Add-missing-default-perms-for-commands.patch => 0465-Add-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0476-Add-PlayerShearBlockEvent.patch => 0466-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0477-Limit-recipe-packets.patch => 0467-Limit-recipe-packets.patch} (100%) rename patches/server/{0478-Fix-CraftSound-backwards-compatibility.patch => 0468-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0479-Player-Chunk-Load-Unload-Events.patch => 0469-Player-Chunk-Load-Unload-Events.patch} (78%) rename patches/server/{0480-Optimize-Dynamic-get-Missing-Keys.patch => 0470-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0481-Expose-LivingEntity-hurt-direction.patch => 0471-Expose-LivingEntity-hurt-direction.patch} (96%) rename patches/server/{0482-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0472-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (100%) rename patches/server/{0483-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch => 0473-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch} (100%) rename patches/server/{0484-Add-TargetHitEvent.patch => 0474-Add-TargetHitEvent.patch} (100%) rename patches/server/{0485-MC-4-Fix-item-position-desync.patch => 0475-MC-4-Fix-item-position-desync.patch} (93%) rename patches/server/{0486-Additional-Block-Material-API.patch => 0476-Additional-Block-Material-API.patch} (100%) rename patches/server/{0487-Fix-harming-potion-dupe.patch => 0477-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0488-API-to-get-Material-from-Boats-and-Minecarts.patch => 0478-API-to-get-Material-from-Boats-and-Minecarts.patch} (100%) rename patches/server/{0489-Cache-burn-durations.patch => 0479-Cache-burn-durations.patch} (100%) rename patches/server/{0490-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0480-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/server/{0491-Fix-Not-a-string-Map-Conversion-spam.patch => 0481-Fix-Not-a-string-Map-Conversion-spam.patch} (94%) rename patches/server/{0492-Add-PlayerFlowerPotManipulateEvent.patch => 0482-Add-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0493-Fix-interact-event-not-being-called-sometimes.patch => 0483-Fix-interact-event-not-being-called-sometimes.patch} (100%) rename patches/server/{0494-Zombie-API-breaking-doors.patch => 0484-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0495-Fix-nerfed-slime-when-splitting.patch => 0485-Fix-nerfed-slime-when-splitting.patch} (90%) rename patches/server/{0496-Add-EntityLoadCrossbowEvent.patch => 0486-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0497-Add-WorldGameRuleChangeEvent.patch => 0487-Add-WorldGameRuleChangeEvent.patch} (96%) rename patches/server/{0498-Add-ServerResourcesReloadedEvent.patch => 0488-Add-ServerResourcesReloadedEvent.patch} (97%) rename patches/server/{0499-Add-world-settings-for-mobs-picking-up-loot.patch => 0489-Add-world-settings-for-mobs-picking-up-loot.patch} (100%) rename patches/server/{0500-Add-BlockFailedDispenseEvent.patch => 0490-Add-BlockFailedDispenseEvent.patch} (100%) rename patches/server/{0501-Add-PlayerLecternPageChangeEvent.patch => 0491-Add-PlayerLecternPageChangeEvent.patch} (100%) rename patches/server/{0502-Add-PlayerLoomPatternSelectEvent.patch => 0492-Add-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/server/{0503-Configurable-door-breaking-difficulty.patch => 0493-Configurable-door-breaking-difficulty.patch} (100%) rename patches/server/{0504-Empty-commands-shall-not-be-dispatched.patch => 0494-Empty-commands-shall-not-be-dispatched.patch} (100%) rename patches/server/{0505-Remove-stale-POIs.patch => 0495-Remove-stale-POIs.patch} (87%) rename patches/server/{0506-Fix-villager-boat-exploit.patch => 0496-Fix-villager-boat-exploit.patch} (100%) rename patches/server/{0507-Add-sendOpLevel-API.patch => 0497-Add-sendOpLevel-API.patch} (100%) rename patches/server/{0508-TODO-Registry-Modification-API.patch => 0498-TODO-Registry-Modification-API.patch} (100%) rename patches/server/{0509-Add-StructuresLocateEvent.patch => 0499-Add-StructuresLocateEvent.patch} (100%) rename patches/server/{0510-Collision-option-for-requiring-a-player-participant.patch => 0500-Collision-option-for-requiring-a-player-participant.patch} (95%) rename patches/server/{0511-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0501-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0512-Return-chat-component-with-empty-text-instead-of-thr.patch => 0502-Return-chat-component-with-empty-text-instead-of-thr.patch} (100%) rename patches/server/{0513-Make-schedule-command-per-world.patch => 0503-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0514-Configurable-max-leash-distance.patch => 0504-Configurable-max-leash-distance.patch} (87%) rename patches/server/{0515-Add-BlockPreDispenseEvent.patch => 0505-Add-BlockPreDispenseEvent.patch} (100%) rename patches/server/{0516-Add-PlayerChangeBeaconEffectEvent.patch => 0506-Add-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/server/{0517-Add-toggle-for-always-placing-the-dragon-egg.patch => 0507-Add-toggle-for-always-placing-the-dragon-egg.patch} (100%) rename patches/server/{0518-Add-PlayerStonecutterRecipeSelectEvent.patch => 0508-Add-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/server/{0519-Expand-EntityUnleashEvent.patch => 0509-Expand-EntityUnleashEvent.patch} (94%) rename patches/server/{0520-Reset-shield-blocking-on-dimension-change.patch => 0510-Reset-shield-blocking-on-dimension-change.patch} (84%) rename patches/server/{0521-Add-DragonEggFormEvent.patch => 0511-Add-DragonEggFormEvent.patch} (100%) rename patches/server/{0522-Add-EntityMoveEvent.patch => 0512-Add-EntityMoveEvent.patch} (93%) rename patches/server/{0523-added-option-to-disable-pathfinding-updates-on-block.patch => 0513-added-option-to-disable-pathfinding-updates-on-block.patch} (81%) rename patches/server/{0524-Inline-shift-direction-fields.patch => 0514-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0525-Allow-adding-items-to-BlockDropItemEvent.patch => 0515-Allow-adding-items-to-BlockDropItemEvent.patch} (100%) rename patches/server/{0526-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0516-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0527-living-entity-allow-attribute-registration.patch => 0517-living-entity-allow-attribute-registration.patch} (100%) rename patches/server/{0528-fix-dead-slime-setSize-invincibility.patch => 0518-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0529-Merchant-getRecipes-should-return-an-immutable-list.patch => 0519-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0530-Expose-Tracked-Players.patch => 0520-Expose-Tracked-Players.patch} (100%) rename patches/server/{0531-Improve-ServerGUI.patch => 0521-Improve-ServerGUI.patch} (100%) rename patches/server/{0532-fix-converting-txt-to-json-file.patch => 0522-fix-converting-txt-to-json-file.patch} (100%) rename patches/server/{0533-Add-worldborder-events.patch => 0523-Add-worldborder-events.patch} (100%) rename patches/server/{0534-Add-PlayerNameEntityEvent.patch => 0524-Add-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0535-Prevent-grindstones-from-overstacking-items.patch => 0525-Prevent-grindstones-from-overstacking-items.patch} (100%) rename patches/server/{0536-Add-recipe-to-cook-events.patch => 0526-Add-recipe-to-cook-events.patch} (100%) rename patches/server/{0537-Add-Block-isValidTool.patch => 0527-Add-Block-isValidTool.patch} (100%) rename patches/server/{0538-Allow-using-signs-inside-spawn-protection.patch => 0528-Allow-using-signs-inside-spawn-protection.patch} (100%) rename patches/server/{0539-Expand-world-key-API.patch => 0529-Expand-world-key-API.patch} (97%) rename patches/server/{0540-Add-fast-alternative-constructor-for-Rotations.patch => 0530-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0541-Item-Rarity-API.patch => 0531-Item-Rarity-API.patch} (100%) rename patches/server/{0542-Drop-carried-item-when-player-has-disconnected.patch => 0532-Drop-carried-item-when-player-has-disconnected.patch} (100%) rename patches/server/{0543-forced-whitelist-use-configurable-kick-message.patch => 0533-forced-whitelist-use-configurable-kick-message.patch} (92%) rename patches/server/{0544-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0534-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (100%) rename patches/server/{0545-Expose-protocol-version.patch => 0535-Expose-protocol-version.patch} (100%) rename patches/server/{0546-Enhance-console-tab-completions-for-brigadier-comman.patch => 0536-Enhance-console-tab-completions-for-brigadier-comman.patch} (100%) rename patches/server/{0547-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0537-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (93%) rename patches/server/{0548-Add-bypass-host-check.patch => 0538-Add-bypass-host-check.patch} (100%) rename patches/server/{0549-Set-area-affect-cloud-rotation.patch => 0539-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0550-add-isDeeplySleeping-to-HumanEntity.patch => 0540-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/server/{0551-add-consumeFuel-to-FurnaceBurnEvent.patch => 0541-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0552-add-get-set-drop-chance-to-EntityEquipment.patch => 0542-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0553-fix-PigZombieAngerEvent-cancellation.patch => 0543-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0554-fix-PlayerItemHeldEvent-firing-twice.patch => 0544-fix-PlayerItemHeldEvent-firing-twice.patch} (100%) rename patches/server/{0555-Add-PlayerDeepSleepEvent.patch => 0545-Add-PlayerDeepSleepEvent.patch} (91%) rename patches/server/{0556-More-World-API.patch => 0546-More-World-API.patch} (95%) rename patches/server/{0557-Add-PlayerBedFailEnterEvent.patch => 0547-Add-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0558-Implement-methods-to-convert-between-Component-and-B.patch => 0548-Implement-methods-to-convert-between-Component-and-B.patch} (100%) rename patches/server/{0559-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch => 0549-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch} (100%) rename patches/server/{0560-Introduce-beacon-activation-deactivation-events.patch => 0550-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0561-Add-Channel-initialization-listeners.patch => 0551-Add-Channel-initialization-listeners.patch} (94%) rename patches/server/{0562-Send-empty-commands-if-tab-completion-is-disabled.patch => 0552-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0563-Add-more-WanderingTrader-API.patch => 0553-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0564-Add-EntityBlockStorage-clearEntities.patch => 0554-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0565-Entity-load-save-limit-per-chunk.patch => 0555-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/server/{0566-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0556-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0567-Inventory-close.patch => 0557-Inventory-close.patch} (100%) rename patches/server/{0568-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0558-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0569-Add-basic-Datapack-API.patch => 0559-Add-basic-Datapack-API.patch} (98%) rename patches/server/{0570-Add-environment-variable-to-disable-server-gui.patch => 0560-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0571-Expand-PlayerGameModeChangeEvent.patch => 0561-Expand-PlayerGameModeChangeEvent.patch} (95%) rename patches/server/{0572-ItemStack-repair-check-API.patch => 0562-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0573-More-Enchantment-API.patch => 0563-More-Enchantment-API.patch} (100%) rename patches/server/{0574-Move-range-check-for-block-placing-up.patch => 0564-Move-range-check-for-block-placing-up.patch} (100%) rename patches/server/{0575-Fix-and-optimise-world-force-upgrading.patch => 0565-Fix-and-optimise-world-force-upgrading.patch} (97%) rename patches/server/{0576-Add-Mob-lookAt-API.patch => 0566-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0577-Add-Unix-domain-socket-support.patch => 0567-Add-Unix-domain-socket-support.patch} (97%) rename patches/server/{0578-Add-EntityInsideBlockEvent.patch => 0568-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0579-Attributes-API-for-item-defaults.patch => 0569-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0580-Add-cause-to-Weather-ThunderChangeEvents.patch => 0570-Add-cause-to-Weather-ThunderChangeEvents.patch} (93%) rename patches/server/{0581-More-Lidded-Block-API.patch => 0571-More-Lidded-Block-API.patch} (100%) rename patches/server/{0582-Limit-item-frame-cursors-on-maps.patch => 0572-Limit-item-frame-cursors-on-maps.patch} (88%) rename patches/server/{0583-Add-PlayerKickEvent-causes.patch => 0573-Add-PlayerKickEvent-causes.patch} (100%) rename patches/server/{0584-Add-PufferFishStateChangeEvent.patch => 0574-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0585-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0575-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0586-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0576-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (71%) rename patches/server/{0587-Add-option-to-fix-items-merging-through-walls.patch => 0577-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0588-Add-BellRevealRaiderEvent.patch => 0578-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0589-Fix-invulnerable-end-crystals.patch => 0579-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0590-Add-ElderGuardianAppearanceEvent.patch => 0580-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0591-Fix-dangerous-end-portal-logic.patch => 0581-Fix-dangerous-end-portal-logic.patch} (94%) rename patches/server/{0592-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0582-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0593-Make-item-validations-configurable.patch => 0583-Make-item-validations-configurable.patch} (100%) rename patches/server/{0594-Line-Of-Sight-Changes.patch => 0584-Line-Of-Sight-Changes.patch} (91%) rename patches/server/{0595-add-per-world-spawn-limits.patch => 0585-add-per-world-spawn-limits.patch} (91%) rename patches/server/{0596-Fix-potions-splash-events.patch => 0586-Fix-potions-splash-events.patch} (100%) rename patches/server/{0597-Add-more-LimitedRegion-API.patch => 0587-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0598-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0588-Fix-PlayerDropItemEvent-using-wrong-item.patch} (86%) rename patches/server/{0599-Missing-Entity-API.patch => 0589-Missing-Entity-API.patch} (100%) rename patches/server/{0600-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0590-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (100%) rename patches/server/{0601-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0591-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0602-Use-getChunkIfLoadedImmediately-in-places.patch => 0592-Use-getChunkIfLoadedImmediately-in-places.patch} (86%) rename patches/server/{0603-Fix-commands-from-signs-not-firing-command-events.patch => 0593-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0604-Add-PlayerArmSwingEvent.patch => 0594-Add-PlayerArmSwingEvent.patch} (100%) rename patches/server/{0605-Fix-kick-event-leave-message-not-being-sent.patch => 0595-Fix-kick-event-leave-message-not-being-sent.patch} (97%) rename patches/server/{0606-Add-config-for-mobs-immune-to-default-effects.patch => 0596-Add-config-for-mobs-immune-to-default-effects.patch} (97%) rename patches/server/{0607-Don-t-apply-cramming-damage-to-players.patch => 0597-Don-t-apply-cramming-damage-to-players.patch} (90%) rename patches/server/{0608-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0598-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0609-Add-missing-forceDrop-toggles.patch => 0599-Add-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0610-Stinger-API.patch => 0600-Stinger-API.patch} (100%) rename patches/server/{0611-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0601-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0612-Add-System.out-err-catcher.patch => 0602-Add-System.out-err-catcher.patch} (98%) rename patches/server/{0613-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0603-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0614-Prevent-AFK-kick-while-watching-end-credits.patch => 0604-Prevent-AFK-kick-while-watching-end-credits.patch} (100%) rename patches/server/{0615-Allow-skipping-writing-of-comments-to-server.propert.patch => 0605-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0616-Add-PlayerSetSpawnEvent.patch => 0606-Add-PlayerSetSpawnEvent.patch} (97%) rename patches/server/{0617-Make-hoppers-respect-inventory-max-stack-size.patch => 0607-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0618-Optimize-entity-tracker-passenger-checks.patch => 0608-Optimize-entity-tracker-passenger-checks.patch} (90%) rename patches/server/{0619-Config-option-for-Piglins-guarding-chests.patch => 0609-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0620-Add-EntityDamageItemEvent.patch => 0610-Add-EntityDamageItemEvent.patch} (100%) rename patches/server/{0621-Optimize-indirect-passenger-iteration.patch => 0611-Optimize-indirect-passenger-iteration.patch} (91%) rename patches/server/{0622-Configurable-item-frame-map-cursor-update-interval.patch => 0612-Configurable-item-frame-map-cursor-update-interval.patch} (93%) rename patches/server/{0623-Clear-bucket-NBT-after-dispense.patch => 0613-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0624-Change-EnderEye-target-without-changing-other-things.patch => 0614-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0625-Add-BlockBreakBlockEvent.patch => 0615-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0626-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0616-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0627-More-CommandBlock-API.patch => 0617-More-CommandBlock-API.patch} (100%) rename patches/server/{0628-Add-missing-team-sidebar-display-slots.patch => 0618-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0629-Add-back-EntityPortalExitEvent.patch => 0619-Add-back-EntityPortalExitEvent.patch} (93%) rename patches/server/{0630-Add-methods-to-find-targets-for-lightning-strikes.patch => 0620-Add-methods-to-find-targets-for-lightning-strikes.patch} (88%) rename patches/server/{0631-Get-entity-default-attributes.patch => 0621-Get-entity-default-attributes.patch} (100%) rename patches/server/{0632-Left-handed-API.patch => 0622-Left-handed-API.patch} (100%) rename patches/server/{0633-Add-more-advancement-API.patch => 0623-Add-more-advancement-API.patch} (100%) rename patches/server/{0634-Add-ItemFactory-getSpawnEgg-API.patch => 0624-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0635-Add-critical-damage-API.patch => 0625-Add-critical-damage-API.patch} (95%) rename patches/server/{0636-Fix-issues-with-mob-conversion.patch => 0626-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0637-Add-isCollidable-methods-to-various-places.patch => 0627-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0638-Goat-ram-API.patch => 0628-Goat-ram-API.patch} (100%) rename patches/server/{0639-Add-API-for-resetting-a-single-score.patch => 0629-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0640-Add-Raw-Byte-Entity-Serialization.patch => 0630-Add-Raw-Byte-Entity-Serialization.patch} (96%) rename patches/server/{0641-Vanilla-command-permission-fixes.patch => 0631-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0642-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0632-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (89%) rename patches/server/{0643-Fix-GameProfileCache-concurrency.patch => 0633-Fix-GameProfileCache-concurrency.patch} (98%) rename patches/server/{0644-Improve-and-expand-AsyncCatcher.patch => 0634-Improve-and-expand-AsyncCatcher.patch} (96%) rename patches/server/{0645-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0635-Add-paper-mobcaps-and-paper-playermobcaps.patch} (96%) rename patches/server/{0646-Sanitize-ResourceLocation-error-logging.patch => 0636-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0647-Manually-inline-methods-in-BlockPosition.patch => 0637-Manually-inline-methods-in-BlockPosition.patch} (96%) rename patches/server/{0648-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0638-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0649-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0639-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (90%) rename patches/server/{0650-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0640-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0651-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch => 0641-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (90%) rename patches/server/{0652-Time-scoreboard-search.patch => 0642-Time-scoreboard-search.patch} (100%) rename patches/server/{0653-Send-full-pos-packets-for-hard-colliding-entities.patch => 0643-Send-full-pos-packets-for-hard-colliding-entities.patch} (94%) rename patches/server/{0654-Oprimise-map-impl-for-tracked-players.patch => 0644-Oprimise-map-impl-for-tracked-players.patch} (87%) rename patches/server/{0655-Optimise-BlockSoil-nearby-water-lookup.patch => 0645-Optimise-BlockSoil-nearby-water-lookup.patch} (95%) rename patches/server/{0656-Distance-manager-tick-timings.patch => 0646-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0657-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0647-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (90%) rename patches/server/{0658-Check-requirement-before-suggesting-root-nodes.patch => 0648-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0659-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0649-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/server/{0660-Add-packet-limiter-config.patch => 0650-Add-packet-limiter-config.patch} (96%) rename patches/server/{0661-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0651-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0662-Ensure-valid-vehicle-status.patch => 0652-Ensure-valid-vehicle-status.patch} (85%) rename patches/server/{0663-Prevent-softlocked-end-exit-portal-generation.patch => 0653-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0664-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0654-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0665-Don-t-log-debug-logging-being-disabled.patch => 0655-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0666-fix-various-menus-with-empty-level-accesses.patch => 0656-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0667-Preserve-overstacked-loot.patch => 0657-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0668-Update-head-rotation-in-missing-places.patch => 0658-Update-head-rotation-in-missing-places.patch} (84%) rename patches/server/{0669-prevent-unintended-light-block-manipulation.patch => 0659-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0670-Fix-CraftCriteria-defaults-map.patch => 0660-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0671-Fix-upstreams-block-state-factories.patch => 0661-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0672-Configurable-feature-seeds.patch => 0662-Configurable-feature-seeds.patch} (100%) rename patches/server/{0673-Add-root-admin-user-detection.patch => 0663-Add-root-admin-user-detection.patch} (100%) rename patches/server/{0674-Always-allow-item-changing-in-Fireball.patch => 0664-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0675-don-t-attempt-to-teleport-dead-entities.patch => 0665-don-t-attempt-to-teleport-dead-entities.patch} (85%) rename patches/server/{0676-Prevent-excessive-velocity-through-repeated-crits.patch => 0666-Prevent-excessive-velocity-through-repeated-crits.patch} (94%) rename patches/server/{0677-Remove-client-side-code-using-deprecated-for-removal.patch => 0667-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0678-Fix-removing-recipes-from-RecipeIterator.patch => 0668-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0679-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0669-Prevent-sending-oversized-item-data-in-equipment-and.patch} (96%) rename patches/server/{0680-Hide-unnecessary-itemmeta-from-clients.patch => 0670-Hide-unnecessary-itemmeta-from-clients.patch} (97%) rename patches/server/{0681-Fix-Spigot-growth-modifiers.patch => 0671-Fix-Spigot-growth-modifiers.patch} (98%) rename patches/server/{0682-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0672-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0683-Add-PlayerItemFrameChangeEvent.patch => 0673-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0684-Optimize-HashMapPalette.patch => 0674-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0685-Allow-delegation-to-vanilla-chunk-gen.patch => 0675-Allow-delegation-to-vanilla-chunk-gen.patch} (95%) rename patches/server/{0686-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0676-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (96%) rename patches/server/{0687-Add-more-Campfire-API.patch => 0677-Add-more-Campfire-API.patch} (100%) rename patches/server/{0688-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0678-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (78%) rename patches/server/{0689-Forward-CraftEntity-in-teleport-command.patch => 0679-Forward-CraftEntity-in-teleport-command.patch} (89%) rename patches/server/{0690-Improve-scoreboard-entries.patch => 0680-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0691-Entity-powdered-snow-API.patch => 0681-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0692-Add-API-for-item-entity-health.patch => 0682-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0693-Configurable-max-block-light-for-monster-spawning.patch => 0683-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0694-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0684-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0695-Load-effect-amplifiers-greater-than-127-correctly.patch => 0685-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0696-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0686-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0697-Fix-bees-aging-inside-hives.patch => 0687-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0698-Bucketable-API.patch => 0688-Bucketable-API.patch} (100%) rename patches/server/{0699-Validate-usernames.patch => 0689-Validate-usernames.patch} (96%) rename patches/server/{0700-Make-water-animal-spawn-height-configurable.patch => 0690-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0701-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0691-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (96%) rename patches/server/{0702-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0692-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0703-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0693-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0704-Multiple-Entries-with-Scoreboards.patch => 0694-Multiple-Entries-with-Scoreboards.patch} (98%) rename patches/server/{0705-Reset-placed-block-on-exception.patch => 0695-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0706-Add-configurable-height-for-slime-spawn.patch => 0696-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0707-Fix-xp-reward-for-baby-zombies.patch => 0697-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0708-Multi-Block-Change-API-Implementation.patch => 0698-Multi-Block-Change-API-Implementation.patch} (97%) rename patches/server/{0709-Fix-NotePlayEvent.patch => 0699-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0710-Freeze-Tick-Lock-API.patch => 0700-Freeze-Tick-Lock-API.patch} (89%) rename patches/server/{0711-More-PotionEffectType-API.patch => 0701-More-PotionEffectType-API.patch} (100%) rename patches/server/{0712-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0702-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0713-API-for-creating-command-sender-which-forwards-feedb.patch => 0703-API-for-creating-command-sender-which-forwards-feedb.patch} (98%) rename patches/server/{0714-Add-missing-structure-set-seed-configs.patch => 0704-Add-missing-structure-set-seed-configs.patch} (99%) rename patches/server/{0715-Implement-regenerateChunk.patch => 0705-Implement-regenerateChunk.patch} (97%) rename patches/server/{0716-Fix-cancelled-powdered-snow-bucket-placement.patch => 0706-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0717-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0707-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (92%) rename patches/server/{0718-Add-GameEvent-tags.patch => 0708-Add-GameEvent-tags.patch} (97%) rename patches/server/{0719-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0709-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (94%) rename patches/server/{0720-Furnace-RecipesUsed-API.patch => 0710-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0721-Configurable-sculk-sensor-listener-range.patch => 0711-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0722-Add-missing-block-data-mins-and-maxes.patch => 0712-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0723-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0713-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (96%) rename patches/server/{0724-Put-world-into-worldlist-before-initing-the-world.patch => 0714-Put-world-into-worldlist-before-initing-the-world.patch} (92%) rename patches/server/{0725-Fix-Entity-Position-Desync.patch => 0715-Fix-Entity-Position-Desync.patch} (93%) rename patches/server/{0726-Custom-Potion-Mixes.patch => 0716-Custom-Potion-Mixes.patch} (98%) rename patches/server/{0727-Force-close-world-loading-screen.patch => 0717-Force-close-world-loading-screen.patch} (95%) rename patches/server/{0728-Fix-falling-block-spawn-methods.patch => 0718-Fix-falling-block-spawn-methods.patch} (95%) rename patches/server/{0729-Expose-furnace-minecart-push-values.patch => 0719-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0730-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0720-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (95%) rename patches/server/{0731-More-Projectile-API.patch => 0721-More-Projectile-API.patch} (100%) rename patches/server/{0732-Fix-swamp-hut-cat-generation-deadlock.patch => 0722-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0733-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0723-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/server/{0734-Implement-getComputedBiome-API.patch => 0724-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0735-Make-some-itemstacks-nonnull.patch => 0725-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0736-Implement-enchantWithLevels-API.patch => 0726-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0737-Fix-saving-in-unloadWorld.patch => 0727-Fix-saving-in-unloadWorld.patch} (90%) rename patches/server/{0738-Buffer-OOB-setBlock-calls.patch => 0728-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0739-Add-TameableDeathMessageEvent.patch => 0729-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0740-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0730-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (100%) rename patches/server/{0741-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0731-fix-player-loottables-running-when-mob-loot-gamerule.patch} (88%) rename patches/server/{0742-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0732-Ensure-entity-passenger-world-matches-ridden-entity.patch} (85%) rename patches/server/{0743-cache-resource-keys.patch => 0733-cache-resource-keys.patch} (100%) rename patches/server/{0744-Allow-changing-the-EnderDragon-podium.patch => 0734-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/server/{0745-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0735-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0746-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0736-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0747-Prevent-tile-entity-copies-loading-chunks.patch => 0737-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/server/{0748-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0738-Use-username-instead-of-display-name-in-PlayerList-g.patch} (100%) rename patches/server/{0749-Pass-ServerLevel-for-gamerule-callbacks.patch => 0739-Pass-ServerLevel-for-gamerule-callbacks.patch} (98%) rename patches/server/{0750-Expand-PlayerItemDamageEvent.patch => 0740-Expand-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0751-WorldCreator-keepSpawnLoaded.patch => 0741-WorldCreator-keepSpawnLoaded.patch} (94%) rename patches/server/{0752-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0742-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0753-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0743-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (94%) rename patches/server/{0754-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0744-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0755-Fire-CauldronLevelChange-on-initial-fill.patch => 0745-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0756-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0746-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0757-Add-PlayerStopUsingItemEvent.patch => 0747-Add-PlayerStopUsingItemEvent.patch} (91%) rename patches/server/{0758-Don-t-tick-markers.patch => 0748-Don-t-tick-markers.patch} (91%) rename patches/server/{0759-Expand-FallingBlock-API.patch => 0749-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0760-Do-not-accept-invalid-client-settings.patch => 0750-Do-not-accept-invalid-client-settings.patch} (100%) rename patches/server/{0761-Add-support-for-Proxy-Protocol.patch => 0751-Add-support-for-Proxy-Protocol.patch} (95%) rename patches/server/{0762-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0752-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0763-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0753-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0764-Sanitize-sent-BlockEntity-NBT.patch => 0754-Sanitize-sent-BlockEntity-NBT.patch} (94%) rename patches/server/{0765-Disable-component-selector-resolving-in-books-by-def.patch => 0755-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0766-Prevent-entity-loading-causing-async-lookups.patch => 0756-Prevent-entity-loading-causing-async-lookups.patch} (95%) rename patches/server/{0767-Throw-exception-on-world-create-while-being-ticked.patch => 0757-Throw-exception-on-world-create-while-being-ticked.patch} (97%) rename patches/server/{0768-Dont-resent-entity-on-art-update.patch => 0758-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0769-Add-WardenAngerChangeEvent.patch => 0759-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0770-Add-option-for-strict-advancement-dimension-checks.patch => 0760-Add-option-for-strict-advancement-dimension-checks.patch} (94%) rename patches/server/{0771-Add-missing-important-BlockStateListPopulator-method.patch => 0761-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0772-Nameable-Banner-API.patch => 0762-Nameable-Banner-API.patch} (100%) rename patches/server/{0773-Don-t-broadcast-messages-to-command-blocks.patch => 0763-Don-t-broadcast-messages-to-command-blocks.patch} (95%) rename patches/server/{0774-Prevent-empty-items-from-being-added-to-world.patch => 0764-Prevent-empty-items-from-being-added-to-world.patch} (89%) rename patches/server/{0775-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0765-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0776-Add-Player-getFishHook.patch => 0766-Add-Player-getFishHook.patch} (100%) rename patches/server/{0777-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0767-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0778-Add-various-missing-EntityDropItemEvent-calls.patch => 0768-Add-various-missing-EntityDropItemEvent-calls.patch} (96%) rename patches/server/{0779-Fix-Bee-flower-NPE.patch => 0769-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0780-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0770-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (100%) rename patches/server/{0781-More-Teleport-API.patch => 0771-More-Teleport-API.patch} (99%) rename patches/server/{0782-Add-EntityPortalReadyEvent.patch => 0772-Add-EntityPortalReadyEvent.patch} (88%) rename patches/server/{0783-Don-t-use-level-random-in-entity-constructors.patch => 0773-Don-t-use-level-random-in-entity-constructors.patch} (96%) rename patches/server/{0784-Send-block-entities-after-destroy-prediction.patch => 0774-Send-block-entities-after-destroy-prediction.patch} (97%) rename patches/server/{0785-Warn-on-plugins-accessing-faraway-chunks.patch => 0775-Warn-on-plugins-accessing-faraway-chunks.patch} (83%) rename patches/server/{0786-Custom-Chat-Completion-Suggestions-API.patch => 0776-Custom-Chat-Completion-Suggestions-API.patch} (94%) rename patches/server/{0787-Add-and-fix-missing-BlockFadeEvents.patch => 0777-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0788-Collision-API.patch => 0778-Collision-API.patch} (100%) rename patches/server/{0789-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0779-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/server/{0790-Block-Ticking-API.patch => 0780-Block-Ticking-API.patch} (100%) rename patches/server/{0791-Add-Velocity-IP-Forwarding-Support.patch => 0781-Add-Velocity-IP-Forwarding-Support.patch} (99%) rename patches/server/{0792-Add-NamespacedKey-biome-methods.patch => 0782-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0793-Fix-plugin-loggers-on-server-shutdown.patch => 0783-Fix-plugin-loggers-on-server-shutdown.patch} (96%) rename patches/server/{0794-Stop-large-look-changes-from-crashing-the-server.patch => 0784-Stop-large-look-changes-from-crashing-the-server.patch} (96%) rename patches/server/{0795-Fire-EntityChangeBlockEvent-in-more-places.patch => 0785-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0796-Missing-eating-regain-reason.patch => 0786-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0797-Missing-effect-cause.patch => 0787-Missing-effect-cause.patch} (100%) rename patches/server/{0798-Added-byte-array-serialization-deserialization-for-P.patch => 0788-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0799-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0789-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0800-Call-BlockPhysicsEvent-more-often.patch => 0790-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0801-Configurable-chat-thread-limit.patch => 0791-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0802-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0792-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0803-fix-Jigsaw-block-kicking-user.patch => 0793-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0804-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0794-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0805-Add-getDrops-to-BlockState.patch => 0795-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0806-Fix-a-bunch-of-vanilla-bugs.patch => 0796-Fix-a-bunch-of-vanilla-bugs.patch} (97%) rename patches/server/{0807-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0797-Remove-unnecessary-onTrackingStart-during-navigation.patch} (88%) rename patches/server/{0808-Fix-custom-piglin-loved-items.patch => 0798-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0809-EntityPickupItemEvent-fixes.patch => 0799-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0810-Correctly-handle-interactions-with-items-on-cooldown.patch => 0800-Correctly-handle-interactions-with-items-on-cooldown.patch} (94%) rename patches/server/{0811-Add-PlayerInventorySlotChangeEvent.patch => 0801-Add-PlayerInventorySlotChangeEvent.patch} (95%) rename patches/server/{0812-Elder-Guardian-appearance-API.patch => 0802-Elder-Guardian-appearance-API.patch} (90%) rename patches/server/{0813-Allow-changing-bed-s-occupied-property.patch => 0803-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0814-Add-entity-knockback-API.patch => 0804-Add-entity-knockback-API.patch} (100%) rename patches/server/{0815-Detect-headless-JREs.patch => 0805-Detect-headless-JREs.patch} (100%) rename patches/server/{0816-fix-entity-vehicle-collision-event-not-called.patch => 0806-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0817-Add-EntityToggleSitEvent.patch => 0807-Add-EntityToggleSitEvent.patch} (100%) rename patches/server/{0818-Add-fire-tick-delay-option.patch => 0808-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0819-Add-Moving-Piston-API.patch => 0809-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0820-Ignore-impossible-spawn-tick.patch => 0810-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0821-Track-projectile-source-for-fireworks-from-dispenser.patch => 0811-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0822-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0812-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0823-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0813-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (92%) rename patches/server/{0824-Add-PrePlayerAttackEntityEvent.patch => 0814-Add-PrePlayerAttackEntityEvent.patch} (89%) rename patches/server/{0825-ensure-reset-EnderDragon-boss-event-name.patch => 0815-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0826-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0816-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0827-Add-Player-Warden-Warning-API.patch => 0817-Add-Player-Warden-Warning-API.patch} (95%) rename patches/server/{0828-More-vanilla-friendly-methods-to-update-trades.patch => 0818-More-vanilla-friendly-methods-to-update-trades.patch} (94%) rename patches/server/{0829-Add-paper-dumplisteners-command.patch => 0819-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0830-check-global-player-list-where-appropriate.patch => 0820-check-global-player-list-where-appropriate.patch} (94%) rename patches/server/{0831-Fix-async-entity-add-due-to-fungus-trees.patch => 0821-Fix-async-entity-add-due-to-fungus-trees.patch} (100%) rename patches/server/{0832-ItemStack-damage-API.patch => 0822-ItemStack-damage-API.patch} (100%) rename patches/server/{0833-Friction-API.patch => 0823-Friction-API.patch} (98%) rename patches/server/{0834-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0824-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0835-Fix-player-kick-on-shutdown.patch => 0825-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0836-Sync-offhand-slot-in-menus.patch => 0826-Sync-offhand-slot-in-menus.patch} (95%) rename patches/server/{0837-Player-Entity-Tracking-Events.patch => 0827-Player-Entity-Tracking-Events.patch} (87%) rename patches/server/{0838-Limit-pet-look-distance.patch => 0828-Limit-pet-look-distance.patch} (100%) rename patches/server/{0839-Fixes-and-additions-to-the-SpawnReason-API.patch => 0829-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0840-fix-Instruments.patch => 0830-fix-Instruments.patch} (96%) rename patches/server/{0841-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0831-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (100%) rename patches/server/{0842-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0832-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0843-Add-BlockLockCheckEvent.patch => 0833-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0844-Add-Sneaking-API-for-Entities.patch => 0834-Add-Sneaking-API-for-Entities.patch} (100%) rename patches/server/{0845-Improve-logging-and-errors.patch => 0835-Improve-logging-and-errors.patch} (100%) rename patches/server/{0846-Improve-PortalEvents.patch => 0836-Improve-PortalEvents.patch} (89%) rename patches/server/{0847-Add-config-option-for-spider-worldborder-climbing.patch => 0837-Add-config-option-for-spider-worldborder-climbing.patch} (100%) rename patches/server/{0848-Add-missing-SpigotConfig-logCommands-check.patch => 0838-Add-missing-SpigotConfig-logCommands-check.patch} (100%) rename patches/server/{0849-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0839-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0850-Flying-Fall-Damage.patch => 0840-Flying-Fall-Damage.patch} (89%) rename patches/server/{0851-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0841-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/server/{0852-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0842-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (86%) rename patches/server/{0853-config-for-disabling-entity-tag-tags.patch => 0843-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0854-Use-single-player-info-update-packet-on-join.patch => 0844-Use-single-player-info-update-packet-on-join.patch} (97%) rename patches/server/{0855-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0845-Correctly-shrink-items-during-EntityResurrectEvent.patch} (95%) rename patches/server/{0856-Win-Screen-API.patch => 0846-Win-Screen-API.patch} (93%) rename patches/server/{0857-Remove-CraftItemStack-setAmount-null-assignment.patch => 0847-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0858-Fix-force-opening-enchantment-tables.patch => 0848-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0859-Add-Entity-Body-Yaw-API.patch => 0849-Add-Entity-Body-Yaw-API.patch} (100%) rename patches/server/{0860-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0850-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0861-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0851-Update-the-flag-when-a-captured-block-state-is-outda.patch} (83%) rename patches/server/{0862-Add-EntityFertilizeEggEvent.patch => 0852-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/server/{0863-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0853-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0864-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0854-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0865-Correctly-handle-ArmorStand-invisibility.patch => 0855-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0866-Fix-advancement-triggers-for-entity-damage.patch => 0856-Fix-advancement-triggers-for-entity-damage.patch} (97%) rename patches/server/{0867-Fix-text-display-error-on-spawn.patch => 0857-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0868-Fix-inventories-returning-null-Locations.patch => 0858-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0869-Add-Shearable-API.patch => 0859-Add-Shearable-API.patch} (100%) rename patches/server/{0870-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0860-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0871-Fix-beehives-generating-from-using-bonemeal.patch => 0861-Fix-beehives-generating-from-using-bonemeal.patch} (100%) rename patches/server/{0872-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0862-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0873-Treat-sequence-violations-like-they-should-be.patch => 0863-Treat-sequence-violations-like-they-should-be.patch} (100%) rename patches/server/{0874-remove-duplicate-animate-packet-for-records.patch => 0864-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0875-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0865-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/server/{0876-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0866-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (86%) rename patches/server/{0877-Use-array-for-gamerule-storage.patch => 0867-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0878-Fix-a-couple-of-upstream-bed-issues.patch => 0868-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0879-Fix-demo-flag-not-enabling-demo-mode.patch => 0869-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0880-Add-Mob-Experience-reward-API.patch => 0870-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0881-Break-redstone-on-top-of-trap-doors-early.patch => 0871-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0882-Fix-DamageCause-for-Falling-Blocks.patch => 0872-Fix-DamageCause-for-Falling-Blocks.patch} (100%) rename patches/server/{0883-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0873-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0884-More-accurate-isInOpenWater-impl.patch => 0874-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0885-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0875-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0886-Expand-PlayerItemMendEvent.patch => 0876-Expand-PlayerItemMendEvent.patch} (98%) rename patches/server/{0887-Refresh-ProjectileSource-for-projectiles.patch => 0877-Refresh-ProjectileSource-for-projectiles.patch} (97%) rename patches/server/{0888-Add-transient-modifier-API.patch => 0878-Add-transient-modifier-API.patch} (100%) rename patches/server/{0889-Fix-block-place-logic.patch => 0879-Fix-block-place-logic.patch} (96%) rename patches/server/{0890-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0880-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0891-Call-BlockGrowEvent-for-missing-blocks.patch => 0881-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0892-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0882-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (94%) rename patches/server/{0893-fix-MapLike-spam-for-missing-key-selector.patch => 0883-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0894-Fix-sniffer-removeExploredLocation.patch => 0884-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0895-Add-method-to-remove-all-active-potion-effects.patch => 0885-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0896-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0886-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0897-Properly-cancel-usable-items.patch => 0887-Properly-cancel-usable-items.patch} (92%) rename patches/server/{0898-Add-event-for-player-editing-sign.patch => 0888-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0899-Only-tick-item-frames-if-players-can-see-it.patch => 0889-Only-tick-item-frames-if-players-can-see-it.patch} (92%) rename patches/server/{0900-Fix-cmd-permission-levels-for-command-blocks.patch => 0890-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/server/{0901-Add-option-to-disable-block-updates.patch => 0891-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0902-Call-missing-BlockDispenseEvent.patch => 0892-Call-missing-BlockDispenseEvent.patch} (100%) rename patches/server/{0903-Don-t-load-chunks-for-supporting-block-checks.patch => 0893-Don-t-load-chunks-for-supporting-block-checks.patch} (84%) rename patches/server/{0904-Optimize-player-lookups-for-beacons.patch => 0894-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0905-Add-Sign-getInteractableSideFor.patch => 0895-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0906-Array-backed-synched-entity-data.patch => 0896-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0907-fix-item-meta-for-tadpole-buckets.patch => 0897-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0908-Fix-BanList-API.patch => 0898-Fix-BanList-API.patch} (99%) rename patches/server/{0909-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0899-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0910-Fix-possible-NPE-on-painting-creation.patch => 0900-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0911-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0901-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0912-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0902-ExperienceOrb-should-call-EntitySpawnEvent.patch} (100%) rename patches/server/{0913-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0903-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0914-Add-whitelist-events.patch => 0904-Add-whitelist-events.patch} (100%) rename patches/server/{0915-Implement-PlayerFailMoveEvent.patch => 0905-Implement-PlayerFailMoveEvent.patch} (100%) rename patches/server/{0916-Folia-scheduler-and-owned-region-API.patch => 0906-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0917-Only-erase-allay-memory-on-non-item-targets.patch => 0907-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0918-API-for-updating-recipes-on-clients.patch => 0908-API-for-updating-recipes-on-clients.patch} (97%) rename patches/server/{0919-Fix-rotation-when-spawning-display-entities.patch => 0909-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0920-Only-capture-actual-tree-growth.patch => 0910-Only-capture-actual-tree-growth.patch} (97%) rename patches/server/{0921-Use-correct-source-for-mushroom-block-spread-event.patch => 0911-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0922-Respect-randomizeData-on-more-entities-when-spawning.patch => 0912-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0923-Use-correct-seed-on-api-world-load.patch => 0913-Use-correct-seed-on-api-world-load.patch} (91%) rename patches/server/{0924-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0914-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0925-Cache-map-ids-on-item-frames.patch => 0915-Cache-map-ids-on-item-frames.patch} (96%) rename patches/server/{0926-Fix-custom-statistic-criteria-creation.patch => 0916-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0927-Bandaid-fix-for-Effect.patch => 0917-Bandaid-fix-for-Effect.patch} (96%) rename patches/server/{0928-SculkCatalyst-bloom-API.patch => 0918-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0929-API-for-an-entity-s-scoreboard-name.patch => 0919-API-for-an-entity-s-scoreboard-name.patch} (100%) rename patches/server/{0931-Deprecate-and-replace-methods-with-old-StructureType.patch => 0920-Deprecate-and-replace-methods-with-old-StructureType.patch} (96%) rename patches/server/{0932-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0921-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (100%) rename patches/server/{0933-Properly-handle-BlockBreakEvent-isDropItems.patch => 0922-Properly-handle-BlockBreakEvent-isDropItems.patch} (98%) rename patches/server/{0934-Fire-entity-death-event-for-ender-dragon.patch => 0923-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0935-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0924-Configurable-entity-tracking-range-by-Y-coordinate.patch} (91%) rename patches/server/{0936-Add-Listing-API-for-Player.patch => 0925-Add-Listing-API-for-Player.patch} (98%) rename patches/server/{0937-Configurable-Region-Compression-Format.patch => 0926-Configurable-Region-Compression-Format.patch} (90%) rename patches/server/{0938-Add-BlockFace-to-BlockDamageEvent.patch => 0927-Add-BlockFace-to-BlockDamageEvent.patch} (96%) rename patches/server/{0939-Fix-NPE-on-Boat-getStatus.patch => 0928-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0940-Expand-Pose-API.patch => 0929-Expand-Pose-API.patch} (90%) rename patches/server/{0941-More-DragonBattle-API.patch => 0930-More-DragonBattle-API.patch} (100%) rename patches/server/{0942-Deep-clone-unhandled-nbt-tags.patch => 0931-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0943-Add-PlayerPickItemEvent.patch => 0932-Add-PlayerPickItemEvent.patch} (100%) rename patches/server/{0944-Allow-trident-custom-damage.patch => 0933-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0945-Expose-hand-in-BlockCanBuildEvent.patch => 0934-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0946-Optimize-nearest-structure-border-iteration.patch => 0935-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0947-Implement-OfflinePlayer-isConnected.patch => 0936-Implement-OfflinePlayer-isConnected.patch} (94%) rename patches/server/{0948-Fix-inventory-desync.patch => 0937-Fix-inventory-desync.patch} (100%) rename patches/server/{0949-Add-titleOverride-to-InventoryOpenEvent.patch => 0938-Add-titleOverride-to-InventoryOpenEvent.patch} (97%) rename patches/server/{0950-Configure-sniffer-egg-hatch-time.patch => 0939-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0951-Do-crystal-portal-proximity-check-before-entity-look.patch => 0940-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0952-Skip-POI-finding-if-stuck-in-vehicle.patch => 0941-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0953-Add-slot-sanity-checks-in-container-clicks.patch => 0942-Add-slot-sanity-checks-in-container-clicks.patch} (100%) rename patches/server/{0954-Call-BlockRedstoneEvents-for-lecterns.patch => 0943-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0955-Allow-proper-checking-of-empty-item-stacks.patch => 0944-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0956-Fix-silent-equipment-change-for-mobs.patch => 0945-Fix-silent-equipment-change-for-mobs.patch} (96%) rename patches/server/{0957-Fix-spigot-s-Forced-Stats.patch => 0946-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0958-Add-missing-InventoryHolders-to-inventories.patch => 0947-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/server/{0959-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0948-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (93%) rename patches/server/{0960-Add-missing-logs-for-log-ips-config-option.patch => 0949-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0961-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0950-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (92%) rename patches/server/{0962-Fix-SuspiciousStewMeta.patch => 0951-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{0963-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0952-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{0964-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0953-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{0965-Fix-team-sidebar-objectives-not-being-cleared.patch => 0954-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{0966-Fix-missing-map-initialize-event-call.patch => 0955-Fix-missing-map-initialize-event-call.patch} (93%) rename patches/server/{0967-Update-entity-data-when-attaching-firework-to-entity.patch => 0956-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{0968-Use-correct-variable-for-initializing-CraftLootTable.patch => 0957-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{0969-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 0958-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{0970-Fix-UnsafeValues-loadAdvancement.patch => 0959-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{0971-Add-player-idle-duration-API.patch => 0960-Add-player-idle-duration-API.patch} (91%) rename patches/server/{0972-Don-t-check-if-we-can-see-non-visible-entities.patch => 0961-Don-t-check-if-we-can-see-non-visible-entities.patch} (85%) rename patches/server/{0973-Fix-NPE-in-SculkBloomEvent-world-access.patch => 0962-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{0974-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 0963-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (90%) rename patches/server/{0975-Optimize-VarInts.patch => 0964-Optimize-VarInts.patch} (100%) rename patches/server/{0976-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0965-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{0977-Add-predicate-for-blocks-when-raytracing.patch => 0966-Add-predicate-for-blocks-when-raytracing.patch} (93%) rename patches/server/{0978-Broadcast-take-item-packets-with-collector-as-source.patch => 0967-Broadcast-take-item-packets-with-collector-as-source.patch} (92%) rename patches/server/{0979-Expand-LingeringPotion-API.patch => 0968-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{0980-Add-MaterialTagsTest.patch => 0969-Add-MaterialTagsTest.patch} (100%) rename patches/server/{0981-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 0970-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (96%) rename patches/server/{0982-Add-hand-to-fish-event-for-all-player-interactions.patch => 0971-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{0983-Fix-several-issues-with-EntityBreedEvent.patch => 0972-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{0984-Add-UUID-attribute-modifier-API.patch => 0973-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{0985-Fix-missing-event-call-for-entity-teleport-API.patch => 0974-Fix-missing-event-call-for-entity-teleport-API.patch} (100%) rename patches/server/{0986-Lazily-create-LootContext-for-criterions.patch => 0975-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{0987-Don-t-fire-sync-events-during-worldgen.patch => 0976-Don-t-fire-sync-events-during-worldgen.patch} (96%) rename patches/server/{0988-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 0977-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{0989-Restore-vanilla-entity-drops-behavior.patch => 0978-Restore-vanilla-entity-drops-behavior.patch} (96%) rename patches/server/{0990-Add-Structure-check-API.patch => 0979-Add-Structure-check-API.patch} (91%) rename patches/server/{0991-Dont-resend-blocks-on-interactions.patch => 0980-Dont-resend-blocks-on-interactions.patch} (98%) rename patches/server/{0992-Keep-previous-behavior-for-setResourcePack.patch => 0981-Keep-previous-behavior-for-setResourcePack.patch} (94%) rename patches/server/{0993-properly-read-and-store-sus-effect-duration.patch => 0982-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{0994-Use-correct-max-stack-size-in-crafter.patch => 0983-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{0995-add-more-scoreboard-API.patch => 0984-add-more-scoreboard-API.patch} (100%) rename patches/server/{0996-Improve-Registry.patch => 0985-Improve-Registry.patch} (100%) rename patches/server/{0997-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 0986-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (97%) rename patches/server/{0998-Add-experience-points-API.patch => 0987-Add-experience-points-API.patch} (93%) rename patches/server/{0999-Add-missing-InventoryType.patch => 0988-Add-missing-InventoryType.patch} (100%) rename patches/server/{1000-Add-drops-to-shear-events.patch => 0989-Add-drops-to-shear-events.patch} (100%) rename patches/server/{1001-Add-PlayerShieldDisableEvent.patch => 0990-Add-PlayerShieldDisableEvent.patch} (89%) rename patches/server/{1002-Add-HiddenPotionEffect-API.patch => 0991-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{1003-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 0992-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{1004-fix-ItemMeta-removing-CustomModelData.patch => 0993-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/server/{1005-Validate-ResourceLocation-in-NBT-reading.patch => 0994-Validate-ResourceLocation-in-NBT-reading.patch} (95%) rename patches/server/{1006-Properly-handle-experience-dropping-on-block-break.patch => 0995-Properly-handle-experience-dropping-on-block-break.patch} (97%) rename patches/server/{1007-Fixup-NamespacedKey-handling.patch => 0996-Fixup-NamespacedKey-handling.patch} (100%) rename patches/server/{1008-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 0997-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (93%) rename patches/server/{0072-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch => 0998-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch} (86%) rename patches/server/{0076-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch => 0999-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch} (93%) rename patches/server/{0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch => 1000-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch} (88%) rename patches/server/{0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch => 1001-Optimize-Network-Manager-and-add-advanced-packet-sup.patch} (93%) rename patches/server/{0306-Allow-Saving-of-Oversized-Chunks.patch => 1002-Allow-Saving-of-Oversized-Chunks.patch} (91%) rename patches/server/{0308-Fix-World-isChunkGenerated-calls.patch => 1003-Fix-World-isChunkGenerated-calls.patch} (86%) rename patches/server/{0316-Flat-bedrock-generator-settings.patch => 1004-Flat-bedrock-generator-settings.patch} (100%) rename patches/server/{0327-Entity-Activation-Range-2.0.patch => 1005-Entity-Activation-Range-2.0.patch} (95%) rename patches/server/{0332-Optional-per-player-mob-spawns.patch => 1006-Optional-per-player-mob-spawns.patch} (94%) rename patches/server/{0333-Anti-Xray.patch => 1007-Anti-Xray.patch} (96%) rename patches/server/{0930-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 1008-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (95%) diff --git a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0072-handle-NaN-health-absorb-values-and-repair-bad-data.patch similarity index 96% rename from patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch rename to patches/server/0072-handle-NaN-health-absorb-values-and-repair-bad-data.patch index 08709918bc14..72f6bccd8e1e 100644 --- a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch +++ b/patches/server/0072-handle-NaN-health-absorb-values-and-repair-bad-data.patch @@ -5,7 +5,7 @@ Subject: [PATCH] handle NaN health/absorb values and repair bad data diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 537ddaec422399dfa926936501d35bdc48b0baa3..966059931fa4b6c06dd5269be09db8cf9ca0bd51 100644 +index 3179fc1b33f503b0cdd462ad160edee760b5a7eb..428a9d21b24e9c349bf766c16172ffd904f3b6a5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -793,7 +793,13 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0074-Use-a-Shared-Random-for-Entities.patch b/patches/server/0073-Use-a-Shared-Random-for-Entities.patch similarity index 100% rename from patches/server/0074-Use-a-Shared-Random-for-Entities.patch rename to patches/server/0073-Use-a-Shared-Random-for-Entities.patch diff --git a/patches/server/0075-Configurable-spawn-chances-for-skeleton-horses.patch b/patches/server/0074-Configurable-spawn-chances-for-skeleton-horses.patch similarity index 100% rename from patches/server/0075-Configurable-spawn-chances-for-skeleton-horses.patch rename to patches/server/0074-Configurable-spawn-chances-for-skeleton-horses.patch diff --git a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/server/0075-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch similarity index 96% rename from patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch rename to patches/server/0075-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch index e525b3d00f07..32f8fee31694 100644 --- a/patches/server/0077-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch +++ b/patches/server/0075-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch @@ -30,10 +30,10 @@ index 817e0ddc8821dd112fc5aa72bbbe11fdd1b56488..181a4e0e44cd05528c66ce87b653c33d public LevelChunk getChunkIfLoaded(int x, int z) { return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 48357a6af14af74195bd6c77488f7f1dc84221cf..1b1a4b91e7185013e9969fdb3a6582a5a6895663 100644 +index 85b1e406b856f3452fe44f909fa5475196f1cf58..c6c8e76a2820b3bd4724344db5e6852a745e663a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -583,7 +583,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -499,7 +499,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam CraftWorld world = ((ServerLevel) this).getWorld(); diff --git a/patches/server/0078-Entity-AddTo-RemoveFrom-World-Events.patch b/patches/server/0076-Entity-AddTo-RemoveFrom-World-Events.patch similarity index 100% rename from patches/server/0078-Entity-AddTo-RemoveFrom-World-Events.patch rename to patches/server/0076-Entity-AddTo-RemoveFrom-World-Events.patch diff --git a/patches/server/0079-Configurable-Chunk-Inhabited-Time.patch b/patches/server/0077-Configurable-Chunk-Inhabited-Time.patch similarity index 92% rename from patches/server/0079-Configurable-Chunk-Inhabited-Time.patch rename to patches/server/0077-Configurable-Chunk-Inhabited-Time.patch index 99386554eca2..26ea434b4bda 100644 --- a/patches/server/0079-Configurable-Chunk-Inhabited-Time.patch +++ b/patches/server/0077-Configurable-Chunk-Inhabited-Time.patch @@ -11,7 +11,7 @@ For people who want all chunks to be treated equally, you can chose a fixed valu This allows to fine-tune vanilla gameplay. diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 47815824811a0ca82d70e585cc4d66a521129380..d9d2bf31a0e7ad374aa62197c71626a1abfbaf71 100644 +index 7208b7b916ff179e8dbe9925fb246e3652b4f9c2..31d2de67d3facf00491814f775ef1468b33eb51b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -277,6 +277,13 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0080-EntityPathfindEvent.patch b/patches/server/0078-EntityPathfindEvent.patch similarity index 100% rename from patches/server/0080-EntityPathfindEvent.patch rename to patches/server/0078-EntityPathfindEvent.patch diff --git a/patches/server/0081-Sanitise-RegionFileCache-and-make-configurable.patch b/patches/server/0079-Sanitise-RegionFileCache-and-make-configurable.patch similarity index 100% rename from patches/server/0081-Sanitise-RegionFileCache-and-make-configurable.patch rename to patches/server/0079-Sanitise-RegionFileCache-and-make-configurable.patch diff --git a/patches/server/0082-Do-not-load-chunks-for-Pathfinding.patch b/patches/server/0080-Do-not-load-chunks-for-Pathfinding.patch similarity index 100% rename from patches/server/0082-Do-not-load-chunks-for-Pathfinding.patch rename to patches/server/0080-Do-not-load-chunks-for-Pathfinding.patch diff --git a/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch b/patches/server/0081-Add-PlayerUseUnknownEntityEvent.patch similarity index 97% rename from patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch rename to patches/server/0081-Add-PlayerUseUnknownEntityEvent.patch index 4c9c1820e29a..72bae5c5bdad 100644 --- a/patches/server/0083-Add-PlayerUseUnknownEntityEvent.patch +++ b/patches/server/0081-Add-PlayerUseUnknownEntityEvent.patch @@ -28,7 +28,7 @@ index 644a0fdea6576647539b96528717dbaeab498d93..221e64a66ff12a8de5c75992fc26a54a + // Paper end - PlayerUseUnknownEntityEvent } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8c8c3085711989c90ea9ae51b3d95abee284a71e..3c04fa0a96eb4f3ceb50d69f57df339f6eea3ca3 100644 +index 64b5af3745642d2a2e2075cb70ef4defbee64d15..21d3b837b6875dd9833a70f6f8bca2070016c5a0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2407,8 +2407,38 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0084-Configurable-random-tick-rates-for-blocks.patch b/patches/server/0082-Configurable-random-tick-rates-for-blocks.patch similarity index 100% rename from patches/server/0084-Configurable-random-tick-rates-for-blocks.patch rename to patches/server/0082-Configurable-random-tick-rates-for-blocks.patch diff --git a/patches/server/0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch b/patches/server/0083-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch similarity index 100% rename from patches/server/0085-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch rename to patches/server/0083-Fix-Cancelling-BlockPlaceEvent-triggering-physics.patch diff --git a/patches/server/0086-Optimize-DataBits.patch b/patches/server/0084-Optimize-DataBits.patch similarity index 100% rename from patches/server/0086-Optimize-DataBits.patch rename to patches/server/0084-Optimize-DataBits.patch diff --git a/patches/server/0087-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch b/patches/server/0085-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch similarity index 100% rename from patches/server/0087-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch rename to patches/server/0085-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch diff --git a/patches/server/0088-Configurable-Player-Collision.patch b/patches/server/0086-Configurable-Player-Collision.patch similarity index 100% rename from patches/server/0088-Configurable-Player-Collision.patch rename to patches/server/0086-Configurable-Player-Collision.patch diff --git a/patches/server/0089-Add-handshake-event-to-allow-plugins-to-handle-clien.patch b/patches/server/0087-Add-handshake-event-to-allow-plugins-to-handle-clien.patch similarity index 100% rename from patches/server/0089-Add-handshake-event-to-allow-plugins-to-handle-clien.patch rename to patches/server/0087-Add-handshake-event-to-allow-plugins-to-handle-clien.patch diff --git a/patches/server/0090-Configurable-RCON-IP-address.patch b/patches/server/0088-Configurable-RCON-IP-address.patch similarity index 100% rename from patches/server/0090-Configurable-RCON-IP-address.patch rename to patches/server/0088-Configurable-RCON-IP-address.patch diff --git a/patches/server/0091-EntityRegainHealthEvent-isFastRegen-API.patch b/patches/server/0089-EntityRegainHealthEvent-isFastRegen-API.patch similarity index 96% rename from patches/server/0091-EntityRegainHealthEvent-isFastRegen-API.patch rename to patches/server/0089-EntityRegainHealthEvent-isFastRegen-API.patch index b52bcbb9f33c..99f0670424df 100644 --- a/patches/server/0091-EntityRegainHealthEvent-isFastRegen-API.patch +++ b/patches/server/0089-EntityRegainHealthEvent-isFastRegen-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] EntityRegainHealthEvent isFastRegen API Don't even get me started diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1e2d3040bb3e8b1901fbc933caa5ad3b82d3468c..043c42d303970920f40bd65a90c147192ed6900b 100644 +index 428a9d21b24e9c349bf766c16172ffd904f3b6a5..fad14002768e55f5b300d1829f16b3d7b7504bf6 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1322,10 +1322,16 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0092-Add-ability-to-configure-frosted_ice-properties.patch b/patches/server/0090-Add-ability-to-configure-frosted_ice-properties.patch similarity index 100% rename from patches/server/0092-Add-ability-to-configure-frosted_ice-properties.patch rename to patches/server/0090-Add-ability-to-configure-frosted_ice-properties.patch diff --git a/patches/server/0093-remove-null-possibility-for-getServer-singleton.patch b/patches/server/0091-remove-null-possibility-for-getServer-singleton.patch similarity index 95% rename from patches/server/0093-remove-null-possibility-for-getServer-singleton.patch rename to patches/server/0091-remove-null-possibility-for-getServer-singleton.patch index b97780e69d33..b6715be13c07 100644 --- a/patches/server/0093-remove-null-possibility-for-getServer-singleton.patch +++ b/patches/server/0091-remove-null-possibility-for-getServer-singleton.patch @@ -6,7 +6,7 @@ Subject: [PATCH] remove null possibility for getServer singleton to stop IDE complaining about potential NPE diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a5b20c68eef32aa2bafe23d7975c7d6e8a928319..bb964c3ca029a777d86c15251510d7cb13d2f82c 100644 +index 9697e189cf79994ed7d231c7801761791c128310..da845f0e07e1541514c60252192d49a85163b1a8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -190,6 +190,7 @@ import co.aikar.timings.MinecraftTimings; // Paper diff --git a/patches/server/0095-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch b/patches/server/0092-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch similarity index 100% rename from patches/server/0095-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch rename to patches/server/0092-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch diff --git a/patches/server/0096-LootTable-API-and-replenishable-lootables.patch b/patches/server/0093-LootTable-API-and-replenishable-lootables.patch similarity index 100% rename from patches/server/0096-LootTable-API-and-replenishable-lootables.patch rename to patches/server/0093-LootTable-API-and-replenishable-lootables.patch diff --git a/patches/server/0097-System-property-for-disabling-watchdoge.patch b/patches/server/0094-System-property-for-disabling-watchdoge.patch similarity index 100% rename from patches/server/0097-System-property-for-disabling-watchdoge.patch rename to patches/server/0094-System-property-for-disabling-watchdoge.patch diff --git a/patches/server/0098-Async-GameProfileCache-saving.patch b/patches/server/0095-Async-GameProfileCache-saving.patch similarity index 100% rename from patches/server/0098-Async-GameProfileCache-saving.patch rename to patches/server/0095-Async-GameProfileCache-saving.patch diff --git a/patches/server/0099-Optional-TNT-doesn-t-move-in-water.patch b/patches/server/0096-Optional-TNT-doesn-t-move-in-water.patch similarity index 100% rename from patches/server/0099-Optional-TNT-doesn-t-move-in-water.patch rename to patches/server/0096-Optional-TNT-doesn-t-move-in-water.patch diff --git a/patches/server/0100-Faster-redstone-torch-rapid-clock-removal.patch b/patches/server/0097-Faster-redstone-torch-rapid-clock-removal.patch similarity index 97% rename from patches/server/0100-Faster-redstone-torch-rapid-clock-removal.patch rename to patches/server/0097-Faster-redstone-torch-rapid-clock-removal.patch index 90e326013b79..21d0fce448c8 100644 --- a/patches/server/0100-Faster-redstone-torch-rapid-clock-removal.patch +++ b/patches/server/0097-Faster-redstone-torch-rapid-clock-removal.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Faster redstone torch rapid clock removal Only resize the the redstone torch list once, since resizing arrays / lists is costly diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index cd3a99585a471981b9fa1f614ddddfce570ee0e7..244c28cd52a177e798153bc6151f0fb0e5c51841 100644 +index c6c8e76a2820b3bd4724344db5e6852a745e663a..28ff413396312df9de73805e06da70a6fc0e8201 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -176,6 +176,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0101-Add-server-name-parameter.patch b/patches/server/0098-Add-server-name-parameter.patch similarity index 90% rename from patches/server/0101-Add-server-name-parameter.patch rename to patches/server/0098-Add-server-name-parameter.patch index e33a8ed4522a..a78c444de362 100644 --- a/patches/server/0101-Add-server-name-parameter.patch +++ b/patches/server/0098-Add-server-name-parameter.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add server-name parameter diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 176ffe9f5007bf4bb83bfc0d1186116c98481f45..3eca99ab31f257423ca4d1d2cdcfc19a16758e6d 100644 +index 2134330bafb9312a26f0259b8410f608d87d8247..faf58b6263f45a3b36014eaf628c2dac23a0ccde 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -167,6 +167,14 @@ public class Main { diff --git a/patches/server/0102-Fix-global-sound-handling.patch b/patches/server/0099-Fix-global-sound-handling.patch similarity index 97% rename from patches/server/0102-Fix-global-sound-handling.patch rename to patches/server/0099-Fix-global-sound-handling.patch index 8fd65a12d89a..65b37e92d7aa 100644 --- a/patches/server/0102-Fix-global-sound-handling.patch +++ b/patches/server/0099-Fix-global-sound-handling.patch @@ -11,7 +11,7 @@ Co-authored-by: lexikiq Co-authored-by: Aikar diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index adb4e72652605f25b25dcd5690fbe7bb499c8809..d96be9d3a24a5eb89fc2a7180b6d7e236e7c2448 100644 +index ad9b4e88e2aaa5d7e70f65536c86742beafc91df..87cd4d17d618cd9d69a38838a05dbe5d0fe807d4 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1557,7 +1557,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -81,10 +81,10 @@ index 5bc68514a1e8a212e2681f06b918548c0ec565b6..1977e702f6af39ebf100c1f2f2edc2d1 double deltaLength = Math.sqrt(distanceSquared); double relativeX = player.getX() + (deltaX / deltaLength) * viewDistance; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 50f9c4c2974b0a0150068c334e0537e69c0de8f7..36c6a79628ec16eb1ef018e541ed1bec2126bbe6 100644 +index 28ff413396312df9de73805e06da70a6fc0e8201..7f0db74c7a247d313c33bafb0ec773ae8f4f3959 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1366,4 +1366,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1282,4 +1282,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return ret; } // Paper end diff --git a/patches/server/0103-Avoid-blocking-on-Network-Manager-creation.patch b/patches/server/0100-Avoid-blocking-on-Network-Manager-creation.patch similarity index 100% rename from patches/server/0103-Avoid-blocking-on-Network-Manager-creation.patch rename to patches/server/0100-Avoid-blocking-on-Network-Manager-creation.patch diff --git a/patches/server/0104-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch b/patches/server/0101-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch similarity index 90% rename from patches/server/0104-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch rename to patches/server/0101-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch index f7dfc982e6da..c4975570f8c6 100644 --- a/patches/server/0104-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch +++ b/patches/server/0101-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't lookup game profiles that have no UUID and no name diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 1924757cec5d7f2d13ef35f9bbe1554d786713d7..f13b0143ad89386f8e8d350ebacf98f4f66f18a8 100644 +index 370cf30a6411577ec8ed7a32e473217e2f64782b..3c9c6a697143c7e980add58576ad288b8f51ae35 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -89,6 +89,7 @@ public class GameProfileCache { diff --git a/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch b/patches/server/0102-Add-setting-for-proxy-online-mode-status.patch similarity index 93% rename from patches/server/0105-Add-setting-for-proxy-online-mode-status.patch rename to patches/server/0102-Add-setting-for-proxy-online-mode-status.patch index af9d409ee8f1..e55de5ec29ca 100644 --- a/patches/server/0105-Add-setting-for-proxy-online-mode-status.patch +++ b/patches/server/0102-Add-setting-for-proxy-online-mode-status.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add setting for proxy online mode status TODO: Add isProxyOnlineMode check to Metrics diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 1ee3e38703175707dec6493a1785b1bbc5170793..73b398ffc86498151944bedb0ef12d63de35c603 100644 +index 1df4c9b12852ac05652260678597d13ced40f80d..eb740abb5f51b9423f76faae1701dca4cc127569 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -584,7 +584,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -23,7 +23,7 @@ index 1ee3e38703175707dec6493a1785b1bbc5170793..73b398ffc86498151944bedb0ef12d63 @Override diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index f13b0143ad89386f8e8d350ebacf98f4f66f18a8..64f7c3180a745a62bb5d71a42668cc67b5d56c3a 100644 +index 3c9c6a697143c7e980add58576ad288b8f51ae35..92c22dc10e385f1942f2ec375bbce9faf257462b 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -89,7 +89,8 @@ public class GameProfileCache { @@ -46,7 +46,7 @@ index f13b0143ad89386f8e8d350ebacf98f4f66f18a8..64f7c3180a745a62bb5d71a42668cc67 public void add(GameProfile profile) { diff --git a/src/main/java/net/minecraft/server/players/OldUsersConverter.java b/src/main/java/net/minecraft/server/players/OldUsersConverter.java -index 78b11d6fd74fb0714a8013fdc78d096643c4f83c..14bd0b94ece3f826f822b4900c7250ebdc27d937 100644 +index b3c6e76105ee26a79a84a203935530f859460652..e697b8f7b165d2394d8155cbee7453e23ac2bee4 100644 --- a/src/main/java/net/minecraft/server/players/OldUsersConverter.java +++ b/src/main/java/net/minecraft/server/players/OldUsersConverter.java @@ -66,7 +66,8 @@ public class OldUsersConverter { diff --git a/patches/server/0106-Optimise-BlockState-s-hashCode-equals.patch b/patches/server/0103-Optimise-BlockState-s-hashCode-equals.patch similarity index 100% rename from patches/server/0106-Optimise-BlockState-s-hashCode-equals.patch rename to patches/server/0103-Optimise-BlockState-s-hashCode-equals.patch diff --git a/patches/server/0107-Configurable-packet-in-spam-threshold.patch b/patches/server/0104-Configurable-packet-in-spam-threshold.patch similarity index 100% rename from patches/server/0107-Configurable-packet-in-spam-threshold.patch rename to patches/server/0104-Configurable-packet-in-spam-threshold.patch diff --git a/patches/server/0108-Configurable-flying-kick-messages.patch b/patches/server/0105-Configurable-flying-kick-messages.patch similarity index 95% rename from patches/server/0108-Configurable-flying-kick-messages.patch rename to patches/server/0105-Configurable-flying-kick-messages.patch index 852421d2f439..69bb594e2c9b 100644 --- a/patches/server/0108-Configurable-flying-kick-messages.patch +++ b/patches/server/0105-Configurable-flying-kick-messages.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable flying kick messages diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4300fd30f782a2fe32519f7e27edff292ca46ef6..3e745e7adb36b9d5cb06754792c891266ec30722 100644 +index 9d23e60b166caf31856b2592f844af7d6ac68469..4c689d2a794e53a2d9915f1ba46435c41bfa74e9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -338,7 +338,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0109-Add-EntityZapEvent.patch b/patches/server/0106-Add-EntityZapEvent.patch similarity index 100% rename from patches/server/0109-Add-EntityZapEvent.patch rename to patches/server/0106-Add-EntityZapEvent.patch diff --git a/patches/server/0110-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch b/patches/server/0107-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch similarity index 100% rename from patches/server/0110-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch rename to patches/server/0107-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch diff --git a/patches/server/0111-Cache-user-authenticator-threads.patch b/patches/server/0108-Cache-user-authenticator-threads.patch similarity index 100% rename from patches/server/0111-Cache-user-authenticator-threads.patch rename to patches/server/0108-Cache-user-authenticator-threads.patch diff --git a/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch b/patches/server/0109-Allow-Reloading-of-Command-Aliases.patch similarity index 94% rename from patches/server/0112-Allow-Reloading-of-Command-Aliases.patch rename to patches/server/0109-Allow-Reloading-of-Command-Aliases.patch index 9bd7e06637d2..0dbeb2d1a01f 100644 --- a/patches/server/0112-Allow-Reloading-of-Command-Aliases.patch +++ b/patches/server/0109-Allow-Reloading-of-Command-Aliases.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Allow Reloading of Command Aliases Reload the aliases stored in commands.yml diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 876c82e1f1e74417978fd974bd747562b9f8ccdd..3f321cf8a3fa4bc80402ca25d58e0dde62c4e3d5 100644 +index 6d45d5f149211eaad9a07019290dac2c3d04084c..c41876842886e85f44e2cc64a2e6a48cf66c3609 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2746,5 +2746,24 @@ public final class CraftServer implements Server { diff --git a/patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch b/patches/server/0110-Add-source-to-PlayerExpChangeEvent.patch similarity index 96% rename from patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch rename to patches/server/0110-Add-source-to-PlayerExpChangeEvent.patch index 9dc1202d5473..6a7a0c2b3603 100644 --- a/patches/server/0113-Add-source-to-PlayerExpChangeEvent.patch +++ b/patches/server/0110-Add-source-to-PlayerExpChangeEvent.patch @@ -18,7 +18,7 @@ index 79943167c7e16111a81ff608fd9ed6c06bcb9468..59bad6c92cc421dd05c7315e2ab694a6 --this.count; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 6436da99daa22ace3cdee794d0dab09894c1d92c..f6691073be08db9ea960b1298369687782ba9624 100644 +index 18cd6963863d030e3c360f5e00e8786f28ee04b9..0cadc81bfd86a1bcd4ec1d7a793c548cad7d8a9b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1218,6 +1218,17 @@ public class CraftEventFactory { diff --git a/patches/server/0114-Add-ProjectileCollideEvent.patch b/patches/server/0111-Add-ProjectileCollideEvent.patch similarity index 96% rename from patches/server/0114-Add-ProjectileCollideEvent.patch rename to patches/server/0111-Add-ProjectileCollideEvent.patch index 969c65511c44..fd0c0df651d2 100644 --- a/patches/server/0114-Add-ProjectileCollideEvent.patch +++ b/patches/server/0111-Add-ProjectileCollideEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add ProjectileCollideEvent Deprecated now and replaced with ProjectileHitEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index f6691073be08db9ea960b1298369687782ba9624..42c4423979cb007f9e9270ee319d765f208dc61b 100644 +index 0cadc81bfd86a1bcd4ec1d7a793c548cad7d8a9b..848bcabb5922c99ee78cb541c87b464cea032749 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1362,6 +1362,17 @@ public class CraftEventFactory { diff --git a/patches/server/0115-Prevent-Pathfinding-out-of-World-Border.patch b/patches/server/0112-Prevent-Pathfinding-out-of-World-Border.patch similarity index 100% rename from patches/server/0115-Prevent-Pathfinding-out-of-World-Border.patch rename to patches/server/0112-Prevent-Pathfinding-out-of-World-Border.patch diff --git a/patches/server/0116-Optimize-Level.hasChunkAt-BlockPosition-Z.patch b/patches/server/0113-Optimize-Level.hasChunkAt-BlockPosition-Z.patch similarity index 87% rename from patches/server/0116-Optimize-Level.hasChunkAt-BlockPosition-Z.patch rename to patches/server/0113-Optimize-Level.hasChunkAt-BlockPosition-Z.patch index 11679e1ff13f..851edacf7dc7 100644 --- a/patches/server/0116-Optimize-Level.hasChunkAt-BlockPosition-Z.patch +++ b/patches/server/0113-Optimize-Level.hasChunkAt-BlockPosition-Z.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimize Level.hasChunkAt(BlockPosition)Z Reduce method invocations for World.isLoaded(BlockPosition)Z diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index f9e89722d50accecceea26aa12c312b9f331339a..7a5865f10b87022317b5eb3a1d711a0864da9a7f 100644 +index 7f0db74c7a247d313c33bafb0ec773ae8f4f3959..537d532a2663a0f0384a4af1ffe008dfa395cb38 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -430,6 +430,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -346,6 +346,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return chunk == null ? null : chunk.getFluidState(blockposition); } diff --git a/patches/server/0117-Bound-Treasure-Maps-to-World-Border.patch b/patches/server/0114-Bound-Treasure-Maps-to-World-Border.patch similarity index 100% rename from patches/server/0117-Bound-Treasure-Maps-to-World-Border.patch rename to patches/server/0114-Bound-Treasure-Maps-to-World-Border.patch diff --git a/patches/server/0118-Configurable-Cartographer-Treasure-Maps.patch b/patches/server/0115-Configurable-Cartographer-Treasure-Maps.patch similarity index 100% rename from patches/server/0118-Configurable-Cartographer-Treasure-Maps.patch rename to patches/server/0115-Configurable-Cartographer-Treasure-Maps.patch diff --git a/patches/server/0119-Add-API-methods-to-control-if-armor-stands-can-move.patch b/patches/server/0116-Add-API-methods-to-control-if-armor-stands-can-move.patch similarity index 100% rename from patches/server/0119-Add-API-methods-to-control-if-armor-stands-can-move.patch rename to patches/server/0116-Add-API-methods-to-control-if-armor-stands-can-move.patch diff --git a/patches/server/0120-String-based-Action-Bar-API.patch b/patches/server/0117-String-based-Action-Bar-API.patch similarity index 96% rename from patches/server/0120-String-based-Action-Bar-API.patch rename to patches/server/0117-String-based-Action-Bar-API.patch index c45927d5f652..25324073eea4 100644 --- a/patches/server/0120-String-based-Action-Bar-API.patch +++ b/patches/server/0117-String-based-Action-Bar-API.patch @@ -26,7 +26,7 @@ index cb88a3a4e4c87a6d6c838183c1640b13d82c9344..0b391b0dc6262ef482c4a253a074b593 // Paper end buf.writeComponent(this.text); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3fe9b9a28829f6796a23fe337df3a677d2e8d19b..ba93b5d9b6ee5f4da150248a850970e8ecfb4d2e 100644 +index b15df5f55dc12c358df74df500f210976eaba048..028be33a35e2630cdd49aa03b58e3cf32e565d49 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -343,6 +343,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0121-Properly-fix-item-duplication-bug.patch b/patches/server/0118-Properly-fix-item-duplication-bug.patch similarity index 100% rename from patches/server/0121-Properly-fix-item-duplication-bug.patch rename to patches/server/0118-Properly-fix-item-duplication-bug.patch diff --git a/patches/server/0122-Firework-API-s.patch b/patches/server/0119-Firework-API-s.patch similarity index 100% rename from patches/server/0122-Firework-API-s.patch rename to patches/server/0119-Firework-API-s.patch diff --git a/patches/server/0123-PlayerTeleportEndGatewayEvent.patch b/patches/server/0120-PlayerTeleportEndGatewayEvent.patch similarity index 100% rename from patches/server/0123-PlayerTeleportEndGatewayEvent.patch rename to patches/server/0120-PlayerTeleportEndGatewayEvent.patch diff --git a/patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/server/0121-Provide-E-TE-Chunk-count-stat-methods.patch similarity index 97% rename from patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch rename to patches/server/0121-Provide-E-TE-Chunk-count-stat-methods.patch index 2759e67157a1..d95b774acbeb 100644 --- a/patches/server/0124-Provide-E-TE-Chunk-count-stat-methods.patch +++ b/patches/server/0121-Provide-E-TE-Chunk-count-stat-methods.patch @@ -7,7 +7,7 @@ Provides counts without the ineffeciency of using .getEntities().size() which creates copy of the collections. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 7a5865f10b87022317b5eb3a1d711a0864da9a7f..35a87775736a40ba7b4c04116c8fe007512d6161 100644 +index 537d532a2663a0f0384a4af1ffe008dfa395cb38..4e1b8ce73f07b8ea12f9f2b7883cd994aed73648 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -119,7 +119,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0125-Enforce-Sync-Player-Saves.patch b/patches/server/0122-Enforce-Sync-Player-Saves.patch similarity index 92% rename from patches/server/0125-Enforce-Sync-Player-Saves.patch rename to patches/server/0122-Enforce-Sync-Player-Saves.patch index 48e89d22cc85..4caf5c398db7 100644 --- a/patches/server/0125-Enforce-Sync-Player-Saves.patch +++ b/patches/server/0122-Enforce-Sync-Player-Saves.patch @@ -7,7 +7,7 @@ Saving players async is extremely dangerous. This will force it to main the same way we handle async chunk loads. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 828abde34c7d883831e81b7759a862db43cfe2c6..6d4099d8c9d0c2ea20b98ea3f30ac44a697ff400 100644 +index e3195f03ac449e6e4870489d530ef40918cd5556..e93b9c103e9b48fc4eab4ca41ce77c807d3d11ed 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1061,11 +1061,13 @@ public abstract class PlayerList { diff --git a/patches/server/0126-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/server/0123-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch similarity index 99% rename from patches/server/0126-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch rename to patches/server/0123-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch index af577e50e999..c6a7fb9ad225 100644 --- a/patches/server/0126-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch +++ b/patches/server/0123-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch @@ -127,7 +127,7 @@ index 59bad6c92cc421dd05c7315e2ab694a669433ab4..ae70ad9d6c02fcb5631a3c45db283b29 @Override diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1cf4bcb7dcba93c93ad27f10a34b23f616ec9b3f..77a4122cf5a11b29b14a7fc4ac6420ccea49af1b 100644 +index fad14002768e55f5b300d1829f16b3d7b7504bf6..ed8e0f5ca865dcde73a886e65f0fd1d7d4e7ac05 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1786,7 +1786,8 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0127-Cap-Entity-Collisions.patch b/patches/server/0124-Cap-Entity-Collisions.patch similarity index 92% rename from patches/server/0127-Cap-Entity-Collisions.patch rename to patches/server/0124-Cap-Entity-Collisions.patch index 630d692f835c..955763946fbf 100644 --- a/patches/server/0127-Cap-Entity-Collisions.patch +++ b/patches/server/0124-Cap-Entity-Collisions.patch @@ -12,7 +12,7 @@ just as it does in Vanilla, but entity pushing logic will be capped. You can set this to 0 to disable collisions. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index edbfc7bc783833a62542a4515dde13034ae29c10..fbdb708379dc77ce90ca2ca90ebd0bd49ebec12f 100644 +index 34bd4a3f8639295d4980d2b36fe07e2be0ec0d1e..784ab316b6346f62519b06b0dadafa6ac75d8737 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -394,6 +394,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -24,7 +24,7 @@ index edbfc7bc783833a62542a4515dde13034ae29c10..fbdb708379dc77ce90ca2ca90ebd0bd4 private org.bukkit.util.Vector origin; @javax.annotation.Nullable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 77a4122cf5a11b29b14a7fc4ac6420ccea49af1b..e2635fc1a80629f8ea1ddd406785be8b07f4f140 100644 +index ed8e0f5ca865dcde73a886e65f0fd1d7d4e7ac05..a799b64e9d655e7eba509e9930e623a88bbb0389 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3348,10 +3348,12 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0128-Remove-CraftScheduler-Async-Task-Debugger.patch b/patches/server/0125-Remove-CraftScheduler-Async-Task-Debugger.patch similarity index 100% rename from patches/server/0128-Remove-CraftScheduler-Async-Task-Debugger.patch rename to patches/server/0125-Remove-CraftScheduler-Async-Task-Debugger.patch diff --git a/patches/server/0129-Properly-handle-async-calls-to-restart-the-server.patch b/patches/server/0126-Properly-handle-async-calls-to-restart-the-server.patch similarity index 98% rename from patches/server/0129-Properly-handle-async-calls-to-restart-the-server.patch rename to patches/server/0126-Properly-handle-async-calls-to-restart-the-server.patch index 52c33abc5fc5..98b711f3134b 100644 --- a/patches/server/0129-Properly-handle-async-calls-to-restart-the-server.patch +++ b/patches/server/0126-Properly-handle-async-calls-to-restart-the-server.patch @@ -30,7 +30,7 @@ will have plugins and worlds saving to the disk has a high potential to result in corruption/dataloss. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 77ea9b316f186243c74cc080cc7c382ab6666a21..e91dd35a84dceae1ad9c5ede0565591e59d9d84f 100644 +index 3410a2b68146f34f37446c9daeb20f8860b37292..5ab790ed036215d8b09f63f4f13a32a4af07e1c6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -236,6 +236,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8550245a088be78359b55fa0cc582df35dbbebed..ea7effdb4274c7e2c19d737a74b1fc5847b9888c 100644 +index b38496b2a4d10c7f51667fca2a19129ac7db0016..466ca062eaeb9108c59f308a8212cbaf79ad0fc3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -160,8 +160,7 @@ public abstract class PlayerList { @@ -387,7 +387,7 @@ index 8550245a088be78359b55fa0cc582df35dbbebed..ea7effdb4274c7e2c19d737a74b1fc58 this.bans = new UserBanList(PlayerList.USERBANLIST_FILE); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b4d08a9178575d245b69a81311b47433c4682de7..dc43f7da2851727ea3be618386a6555c515bbddd 100644 +index 5189806a847f27e125cab3a5395e30c9d076aa4e..cc00ace00dc1050d644312a0289221a5c664170d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -42,7 +42,7 @@ import java.util.logging.Level; @@ -414,7 +414,7 @@ index b4d08a9178575d245b69a81311b47433c4682de7..dc43f7da2851727ea3be618386a6555c @Override public PluginCommand getPluginCommand(String name) { diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index d843307a2de71537a5a17c42f9fab4fc0328dc43..9c24fdab1744a5af71d8dfb63736483272476f40 100644 +index faf58b6263f45a3b36014eaf628c2dac23a0ccde..09164f4c446d3e80708f1bcb9da333821ee5733d 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -13,7 +13,6 @@ import java.util.logging.Logger; diff --git a/patches/server/0133-provide-a-configurable-option-to-disable-creeper-lin.patch b/patches/server/0130-provide-a-configurable-option-to-disable-creeper-lin.patch similarity index 100% rename from patches/server/0133-provide-a-configurable-option-to-disable-creeper-lin.patch rename to patches/server/0130-provide-a-configurable-option-to-disable-creeper-lin.patch diff --git a/patches/server/0134-Item-canEntityPickup.patch b/patches/server/0131-Item-canEntityPickup.patch similarity index 100% rename from patches/server/0134-Item-canEntityPickup.patch rename to patches/server/0131-Item-canEntityPickup.patch diff --git a/patches/server/0135-PlayerPickupItemEvent-setFlyAtPlayer.patch b/patches/server/0132-PlayerPickupItemEvent-setFlyAtPlayer.patch similarity index 100% rename from patches/server/0135-PlayerPickupItemEvent-setFlyAtPlayer.patch rename to patches/server/0132-PlayerPickupItemEvent-setFlyAtPlayer.patch diff --git a/patches/server/0136-PlayerAttemptPickupItemEvent.patch b/patches/server/0133-PlayerAttemptPickupItemEvent.patch similarity index 100% rename from patches/server/0136-PlayerAttemptPickupItemEvent.patch rename to patches/server/0133-PlayerAttemptPickupItemEvent.patch diff --git a/patches/server/0137-Do-not-submit-profile-lookups-to-worldgen-threads.patch b/patches/server/0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch similarity index 97% rename from patches/server/0137-Do-not-submit-profile-lookups-to-worldgen-threads.patch rename to patches/server/0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch index 36723921bcc0..144dfef0872c 100644 --- a/patches/server/0137-Do-not-submit-profile-lookups-to-worldgen-threads.patch +++ b/patches/server/0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch @@ -37,7 +37,7 @@ index 114f4017c4133042178c57d424f10079163835dd..aa52b271bd556a29f774fde375b713d0 private static final int LINEAR_LOOKUP_THRESHOLD = 8; public static final long NANOS_PER_MILLI = 1000000L; diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 64f7c3180a745a62bb5d71a42668cc67b5d56c3a..bbd8cf8b9f51cb5ca881a54df2e6d6227c0bfd6c 100644 +index 92c22dc10e385f1942f2ec375bbce9faf257462b..adb472c175cc6f6ced7075a37423d6c898fd5ccb 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -169,7 +169,7 @@ public class GameProfileCache { diff --git a/patches/server/0138-Basic-PlayerProfile-API.patch b/patches/server/0135-Basic-PlayerProfile-API.patch similarity index 98% rename from patches/server/0138-Basic-PlayerProfile-API.patch rename to patches/server/0135-Basic-PlayerProfile-API.patch index 69a7b347c6f7..fa823a6f394e 100644 --- a/patches/server/0138-Basic-PlayerProfile-API.patch +++ b/patches/server/0135-Basic-PlayerProfile-API.patch @@ -577,7 +577,7 @@ index 3a00e24d78acb99d226289ccb9ba419dfc607a45..209594863c2aa965055412adb7db009c * Calculates distance between 2 entities * @param e1 diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 9d32d03ad59a6e2dfef2c157e621f9ef43098534..b60003f2542e469edf9e856873a1b325686ac31c 100644 +index 9ead836c08ff48430bc6d3ba225864f48d335eee..0c9f6443663bc567a181393b13311a909602f4a4 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -176,7 +176,7 @@ public class Main { @@ -590,7 +590,7 @@ index 9d32d03ad59a6e2dfef2c157e621f9ef43098534..b60003f2542e469edf9e856873a1b325 String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName); LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath()); diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 9c500642eb2b59bf9aabd6b5d563e5fb15603056..731a7c0363c8c91d25b35f7cbbb480879381bc8d 100644 +index adb472c175cc6f6ced7075a37423d6c898fd5ccb..1ec0f3a7148c2f412421772f6e1dff0bb92a51bc 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -126,6 +126,17 @@ public class GameProfileCache { @@ -612,7 +612,7 @@ index 9c500642eb2b59bf9aabd6b5d563e5fb15603056..731a7c0363c8c91d25b35f7cbbb48087 String s1 = name.toLowerCase(Locale.ROOT); GameProfileCache.GameProfileInfo usercache_usercacheentry = (GameProfileCache.GameProfileInfo) this.profilesByName.get(s1); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index dc43f7da2851727ea3be618386a6555c515bbddd..07d88fbfcfde48fbebe8081633beca48df658bd0 100644 +index cc00ace00dc1050d644312a0289221a5c664170d..f06afed5f786aad4415cd369903d97a0912dfac7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -260,6 +260,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; @@ -677,7 +677,7 @@ index dc43f7da2851727ea3be618386a6555c515bbddd..07d88fbfcfde48fbebe8081633beca48 // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java -index 91e913f8652584ffab44c44d10c0e0c47707e261..6422c58907ee289359a11054fec1e4de6f495ae3 100644 +index edd340c66ea8cec1c76ba29f1deab14c4784a7e5..6f779c6f4422c5b5dc22f66e3e702c714d0e052b 100644 --- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java +++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java @@ -28,7 +28,7 @@ import org.bukkit.profile.PlayerProfile; diff --git a/patches/server/0139-Add-UnknownCommandEvent.patch b/patches/server/0136-Add-UnknownCommandEvent.patch similarity index 100% rename from patches/server/0139-Add-UnknownCommandEvent.patch rename to patches/server/0136-Add-UnknownCommandEvent.patch diff --git a/patches/server/0140-Shoulder-Entities-Release-API.patch b/patches/server/0137-Shoulder-Entities-Release-API.patch similarity index 96% rename from patches/server/0140-Shoulder-Entities-Release-API.patch rename to patches/server/0137-Shoulder-Entities-Release-API.patch index 5df1057b9f6e..feee9314f47a 100644 --- a/patches/server/0140-Shoulder-Entities-Release-API.patch +++ b/patches/server/0137-Shoulder-Entities-Release-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Shoulder Entities Release API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 09d5561deb40549ce6a7661ebfd9b9db24db0d12..9db07751cf1321c7fd15b2345729deaa6dd5a76f 100644 +index 5bac265d9c13da9aceabbd7520cb2ab5fb14b68c..08dd71295154395d6de41a97f214157658f0c24b 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1957,20 +1957,45 @@ public abstract class Player extends LivingEntity { +@@ -1949,20 +1949,45 @@ public abstract class Player extends LivingEntity { } diff --git a/patches/server/0141-Profile-Lookup-Events.patch b/patches/server/0138-Profile-Lookup-Events.patch similarity index 100% rename from patches/server/0141-Profile-Lookup-Events.patch rename to patches/server/0138-Profile-Lookup-Events.patch diff --git a/patches/server/0142-Block-player-logins-during-server-shutdown.patch b/patches/server/0139-Block-player-logins-during-server-shutdown.patch similarity index 100% rename from patches/server/0142-Block-player-logins-during-server-shutdown.patch rename to patches/server/0139-Block-player-logins-during-server-shutdown.patch diff --git a/patches/server/0143-Entity-fromMobSpawner.patch b/patches/server/0140-Entity-fromMobSpawner.patch similarity index 97% rename from patches/server/0143-Entity-fromMobSpawner.patch rename to patches/server/0140-Entity-fromMobSpawner.patch index 130ee5def82f..6c15fe5b2f3a 100644 --- a/patches/server/0143-Entity-fromMobSpawner.patch +++ b/patches/server/0140-Entity-fromMobSpawner.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity#fromMobSpawner() diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fbdb708379dc77ce90ca2ca90ebd0bd49ebec12f..4ccdb5ca52700249cb0a24dff186e8cf047df2bb 100644 +index 784ab316b6346f62519b06b0dadafa6ac75d8737..42f8c39fa5f9f31c03d4e7af9fb6b7a842f29aae 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -395,6 +395,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0144-Improve-the-Saddle-API-for-Horses.patch b/patches/server/0141-Improve-the-Saddle-API-for-Horses.patch similarity index 100% rename from patches/server/0144-Improve-the-Saddle-API-for-Horses.patch rename to patches/server/0141-Improve-the-Saddle-API-for-Horses.patch diff --git a/patches/server/0145-ensureServerConversions-API.patch b/patches/server/0142-ensureServerConversions-API.patch similarity index 100% rename from patches/server/0145-ensureServerConversions-API.patch rename to patches/server/0142-ensureServerConversions-API.patch diff --git a/patches/server/0146-Implement-getI18NDisplayName.patch b/patches/server/0143-Implement-getI18NDisplayName.patch similarity index 100% rename from patches/server/0146-Implement-getI18NDisplayName.patch rename to patches/server/0143-Implement-getI18NDisplayName.patch diff --git a/patches/server/0147-ProfileWhitelistVerifyEvent.patch b/patches/server/0144-ProfileWhitelistVerifyEvent.patch similarity index 97% rename from patches/server/0147-ProfileWhitelistVerifyEvent.patch rename to patches/server/0144-ProfileWhitelistVerifyEvent.patch index 1ac23dfe6073..48f4648d0af3 100644 --- a/patches/server/0147-ProfileWhitelistVerifyEvent.patch +++ b/patches/server/0144-ProfileWhitelistVerifyEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] ProfileWhitelistVerifyEvent diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ea7effdb4274c7e2c19d737a74b1fc5847b9888c..29b4399e0f78067ee84748bb15b3978aa6bcd719 100644 +index 466ca062eaeb9108c59f308a8212cbaf79ad0fc3..38329fe27594c3047d948aaf091fcea33ab270dd 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -631,9 +631,9 @@ public abstract class PlayerList { diff --git a/patches/server/0148-Fix-this-stupid-bullshit.patch b/patches/server/0145-Fix-this-stupid-bullshit.patch similarity index 100% rename from patches/server/0148-Fix-this-stupid-bullshit.patch rename to patches/server/0145-Fix-this-stupid-bullshit.patch diff --git a/patches/server/0149-LivingEntity-setKiller.patch b/patches/server/0146-LivingEntity-setKiller.patch similarity index 100% rename from patches/server/0149-LivingEntity-setKiller.patch rename to patches/server/0146-LivingEntity-setKiller.patch diff --git a/patches/server/0150-Ocelot-despawns-should-honor-nametags-and-leash.patch b/patches/server/0147-Ocelot-despawns-should-honor-nametags-and-leash.patch similarity index 100% rename from patches/server/0150-Ocelot-despawns-should-honor-nametags-and-leash.patch rename to patches/server/0147-Ocelot-despawns-should-honor-nametags-and-leash.patch diff --git a/patches/server/0151-Reset-spawner-timer-when-spawner-event-is-cancelled.patch b/patches/server/0148-Reset-spawner-timer-when-spawner-event-is-cancelled.patch similarity index 100% rename from patches/server/0151-Reset-spawner-timer-when-spawner-event-is-cancelled.patch rename to patches/server/0148-Reset-spawner-timer-when-spawner-event-is-cancelled.patch diff --git a/patches/server/0152-Allow-specifying-a-custom-authentication-servers-dow.patch b/patches/server/0149-Allow-specifying-a-custom-authentication-servers-dow.patch similarity index 94% rename from patches/server/0152-Allow-specifying-a-custom-authentication-servers-dow.patch rename to patches/server/0149-Allow-specifying-a-custom-authentication-servers-dow.patch index c3134dc8fc74..55483780799d 100644 --- a/patches/server/0152-Allow-specifying-a-custom-authentication-servers-dow.patch +++ b/patches/server/0149-Allow-specifying-a-custom-authentication-servers-dow.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Allow specifying a custom "authentication servers down" kick diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 657466fc6e28cbb414549044f75eef7310d7aab9..e15c5886b1cc80b5da2ad8e536507a48cea77d2a 100644 +index 33bd60b5ef7383061acf2da24cfee35b495ebfc7..c01596f87efd316816b597b83c3cac1dbddc22c2 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -262,7 +262,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, diff --git a/patches/server/0153-Handle-plugin-prefixes-using-Log4J-configuration.patch b/patches/server/0150-Handle-plugin-prefixes-using-Log4J-configuration.patch similarity index 95% rename from patches/server/0153-Handle-plugin-prefixes-using-Log4J-configuration.patch rename to patches/server/0150-Handle-plugin-prefixes-using-Log4J-configuration.patch index db3e1a54a032..8dc571bba329 100644 --- a/patches/server/0153-Handle-plugin-prefixes-using-Log4J-configuration.patch +++ b/patches/server/0150-Handle-plugin-prefixes-using-Log4J-configuration.patch @@ -15,7 +15,7 @@ This may cause additional prefixes to be disabled for plugins bypassing the plugin logger. diff --git a/build.gradle.kts b/build.gradle.kts -index 0bfa5a3fe47d96f159f0093c046de3f2d8a0211c..2c885574b6c2667984b4996af0a421d8325842ef 100644 +index 7a3c96318f95fcd6cf6fd94415958382d1193ec6..38ded67b38bb5dc7c59eb610b81ac33d88d25dac 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -25,7 +25,7 @@ dependencies { @@ -28,7 +28,7 @@ index 0bfa5a3fe47d96f159f0093c046de3f2d8a0211c..2c885574b6c2667984b4996af0a421d8 runtimeOnly(log4jPlugins.output) alsoShade(log4jPlugins.output) diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java -index 0fca20580d81c461e903c8cbd1cf090f5d5083c6..bf368d3ab947f027eaffb5498c45429bf702788c 100644 +index bd4c744c597201267418b07b9bcb522805c485eb..0f391af1274926ef6316bd06458767a27640f54a 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java @@ -290,7 +290,7 @@ public class SpigotConfig diff --git a/patches/server/0154-Improve-Log4J-Configuration-Plugin-Loggers.patch b/patches/server/0151-Improve-Log4J-Configuration-Plugin-Loggers.patch similarity index 100% rename from patches/server/0154-Improve-Log4J-Configuration-Plugin-Loggers.patch rename to patches/server/0151-Improve-Log4J-Configuration-Plugin-Loggers.patch diff --git a/patches/server/0155-Add-PlayerJumpEvent.patch b/patches/server/0152-Add-PlayerJumpEvent.patch similarity index 96% rename from patches/server/0155-Add-PlayerJumpEvent.patch rename to patches/server/0152-Add-PlayerJumpEvent.patch index 64caef2dde51..6e62818a6279 100644 --- a/patches/server/0155-Add-PlayerJumpEvent.patch +++ b/patches/server/0152-Add-PlayerJumpEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerJumpEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5d32f12b01db3d2cc5ca743048c43c76e2a5a7cb..f422b6ffcd590788085486778293aaabc141d392 100644 +index 03bc7ae947360a721fef5a772ecadb4a18ac73b2..dd1de1632900fd3a3771241c5f3ce69c673f64d7 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1225,7 +1225,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0156-handle-ServerboundKeepAlivePacket-async.patch b/patches/server/0153-handle-ServerboundKeepAlivePacket-async.patch similarity index 100% rename from patches/server/0156-handle-ServerboundKeepAlivePacket-async.patch rename to patches/server/0153-handle-ServerboundKeepAlivePacket-async.patch diff --git a/patches/server/0157-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0154-Expose-client-protocol-version-and-virtual-host.patch similarity index 95% rename from patches/server/0157-Expose-client-protocol-version-and-virtual-host.patch rename to patches/server/0154-Expose-client-protocol-version-and-virtual-host.patch index 7defeb27e0f9..63dabebf9b44 100644 --- a/patches/server/0157-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/server/0154-Expose-client-protocol-version-and-virtual-host.patch @@ -75,7 +75,7 @@ index 5b267514504497de3faa7ffa490a179200d9415c..faac9ba36d83f537fe62e177c15ae237 // Paper start - add utility methods public final net.minecraft.server.level.ServerPlayer getPlayer() { diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 0d9658b1c6b5912a34058c0ce53b8e7f8c28afac..203fc53142bb0c9b6e2d1876fe8dfbe33c42af99 100644 +index ce51bde4db395ff30c7d75e3badd68d6395fa40f..3dfec4462d85f3223071b4e78465587db6185f0d 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -165,6 +165,10 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL @@ -90,7 +90,7 @@ index 0d9658b1c6b5912a34058c0ce53b8e7f8c28afac..203fc53142bb0c9b6e2d1876fe8dfbe3 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ba93b5d9b6ee5f4da150248a850970e8ecfb4d2e..809ad04237c85f41bdf3bd772deb67d203b4a4b6 100644 +index 028be33a35e2630cdd49aa03b58e3cf32e565d49..f35a53f6e4af319a4ce6f8e5dc8eb65edb47b6ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -289,6 +289,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0158-revert-serverside-behavior-of-keepalives.patch b/patches/server/0155-revert-serverside-behavior-of-keepalives.patch similarity index 97% rename from patches/server/0158-revert-serverside-behavior-of-keepalives.patch rename to patches/server/0155-revert-serverside-behavior-of-keepalives.patch index 01ca99ca6960..27c77cb9eef7 100644 --- a/patches/server/0158-revert-serverside-behavior-of-keepalives.patch +++ b/patches/server/0155-revert-serverside-behavior-of-keepalives.patch @@ -17,7 +17,7 @@ from networking or during connections flood of chunk packets on slower clients, at the cost of dead connections being kept open for longer. diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 0fcedb954c20d9777d27d896e29cea7f6eebffd3..8e96e9bc12855964dcb3a111617232df4118114e 100644 +index 156cb6a00a2580eb16e05c80bc3267128b5804a3..d0f89a66734423ceea67fbeb99b0e72797f80e63 100644 --- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -48,12 +48,13 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack diff --git a/patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/patches/server/0156-Send-attack-SoundEffects-only-to-players-who-can-see.patch similarity index 92% rename from patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch rename to patches/server/0156-Send-attack-SoundEffects-only-to-players-who-can-see.patch index 1170f4b84f88..2d02036ac61d 100644 --- a/patches/server/0159-Send-attack-SoundEffects-only-to-players-who-can-see.patch +++ b/patches/server/0156-Send-attack-SoundEffects-only-to-players-who-can-see.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Send attack SoundEffects only to players who can see the diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 9db07751cf1321c7fd15b2345729deaa6dd5a76f..6881f6041d1605689f33d6d50b592f7d8a70cbdf 100644 +index 08dd71295154395d6de41a97f214157658f0c24b..5680bc0c9c71f915f66eecae401e8f51dc4225fe 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1235,7 +1235,7 @@ public abstract class Player extends LivingEntity { +@@ -1227,7 +1227,7 @@ public abstract class Player extends LivingEntity { int i = b0 + EnchantmentHelper.getKnockbackBonus(this); if (this.isSprinting() && flag) { @@ -18,7 +18,7 @@ index 9db07751cf1321c7fd15b2345729deaa6dd5a76f..6881f6041d1605689f33d6d50b592f7d ++i; flag1 = true; } -@@ -1310,7 +1310,7 @@ public abstract class Player extends LivingEntity { +@@ -1302,7 +1302,7 @@ public abstract class Player extends LivingEntity { } } @@ -27,7 +27,7 @@ index 9db07751cf1321c7fd15b2345729deaa6dd5a76f..6881f6041d1605689f33d6d50b592f7d this.sweepAttack(); } -@@ -1338,15 +1338,15 @@ public abstract class Player extends LivingEntity { +@@ -1330,15 +1330,15 @@ public abstract class Player extends LivingEntity { } if (flag2) { @@ -46,7 +46,7 @@ index 9db07751cf1321c7fd15b2345729deaa6dd5a76f..6881f6041d1605689f33d6d50b592f7d } } -@@ -1398,7 +1398,7 @@ public abstract class Player extends LivingEntity { +@@ -1390,7 +1390,7 @@ public abstract class Player extends LivingEntity { this.causeFoodExhaustion(this.level().spigotConfig.combatExhaustion, EntityExhaustionEvent.ExhaustionReason.ATTACK); // CraftBukkit - EntityExhaustionEvent // Spigot - Change to use configurable value } else { @@ -55,7 +55,7 @@ index 9db07751cf1321c7fd15b2345729deaa6dd5a76f..6881f6041d1605689f33d6d50b592f7d if (flag4) { target.clearFire(); } -@@ -1792,6 +1792,14 @@ public abstract class Player extends LivingEntity { +@@ -1784,6 +1784,14 @@ public abstract class Player extends LivingEntity { public int getXpNeededForNextLevel() { return this.experienceLevel >= 30 ? 112 + (this.experienceLevel - 30) * 9 : (this.experienceLevel >= 15 ? 37 + (this.experienceLevel - 15) * 5 : 7 + this.experienceLevel * 2); } diff --git a/patches/server/0160-Add-PlayerArmorChangeEvent.patch b/patches/server/0157-Add-PlayerArmorChangeEvent.patch similarity index 98% rename from patches/server/0160-Add-PlayerArmorChangeEvent.patch rename to patches/server/0157-Add-PlayerArmorChangeEvent.patch index 9241f395c25f..8b9fc0d446ad 100644 --- a/patches/server/0160-Add-PlayerArmorChangeEvent.patch +++ b/patches/server/0157-Add-PlayerArmorChangeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmorChangeEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 202e3b66a81de2f76d5a8bba3538f1554b8debf3..914b126965392b2465fc8ce80b0e3a7917a7052b 100644 +index a799b64e9d655e7eba509e9930e623a88bbb0389..acf892ce7cf566fc6b9b88c6502c97a06cdedfd4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1,5 +1,6 @@ diff --git a/patches/server/0161-Prevent-logins-from-being-processed-when-the-player-.patch b/patches/server/0158-Prevent-logins-from-being-processed-when-the-player-.patch similarity index 100% rename from patches/server/0161-Prevent-logins-from-being-processed-when-the-player-.patch rename to patches/server/0158-Prevent-logins-from-being-processed-when-the-player-.patch diff --git a/patches/server/0162-Fix-MC-117075-Block-entity-unload-lag-spike.patch b/patches/server/0159-Fix-MC-117075-Block-entity-unload-lag-spike.patch similarity index 89% rename from patches/server/0162-Fix-MC-117075-Block-entity-unload-lag-spike.patch rename to patches/server/0159-Fix-MC-117075-Block-entity-unload-lag-spike.patch index 9a557780105a..916911336221 100644 --- a/patches/server/0162-Fix-MC-117075-Block-entity-unload-lag-spike.patch +++ b/patches/server/0159-Fix-MC-117075-Block-entity-unload-lag-spike.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix MC-117075: Block entity unload lag spike diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 7e5cf2adf9b2adab681b25beb2cb573378815bef..b419eaee987585e2980016ae8bd2614cdc42cfce 100644 +index 4e1b8ce73f07b8ea12f9f2b7883cd994aed73648..0e837193b5b858d0be30974c7454cf76920d58e9 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -816,6 +816,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -732,6 +732,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { boolean flag = this.tickRateManager().runsNormally(); int tilesThisCycle = 0; @@ -17,7 +17,7 @@ index 7e5cf2adf9b2adab681b25beb2cb573378815bef..b419eaee987585e2980016ae8bd2614c for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0; TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(this.tileTickPosition); -@@ -824,12 +826,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -740,12 +742,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (tickingblockentity.isRemoved()) { // Spigot start tilesThisCycle--; diff --git a/patches/server/0163-use-CB-BlockState-implementations-for-captured-block.patch b/patches/server/0160-use-CB-BlockState-implementations-for-captured-block.patch similarity index 92% rename from patches/server/0163-use-CB-BlockState-implementations-for-captured-block.patch rename to patches/server/0160-use-CB-BlockState-implementations-for-captured-block.patch index d24a7145b134..1b15ed07e5d6 100644 --- a/patches/server/0163-use-CB-BlockState-implementations-for-captured-block.patch +++ b/patches/server/0160-use-CB-BlockState-implementations-for-captured-block.patch @@ -18,7 +18,7 @@ the blockstate that will be valid for restoration, as opposed to dropping information on restoration when the event is cancelled. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2dad35f00a98be534db1da1a38a6865e41a1a94d..eb9da7e3912430921219cd4ebdcc295c0e5162bb 100644 +index 0e837193b5b858d0be30974c7454cf76920d58e9..a349755740483148dcdc8d490943fdce74aa4434 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -157,7 +157,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -30,7 +30,7 @@ index 2dad35f00a98be534db1da1a38a6865e41a1a94d..eb9da7e3912430921219cd4ebdcc295c public Map capturedTileEntities = new HashMap<>(); public List captureDrops; public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); -@@ -472,7 +472,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -388,7 +388,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { @@ -39,7 +39,7 @@ index 2dad35f00a98be534db1da1a38a6865e41a1a94d..eb9da7e3912430921219cd4ebdcc295c if (blockstate == null) { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); this.capturedBlockStates.put(pos.immutable(), blockstate); -@@ -492,7 +492,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -408,7 +408,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start - capture blockstates boolean captured = false; if (this.captureBlockStates && !this.capturedBlockStates.containsKey(pos)) { @@ -49,7 +49,7 @@ index 2dad35f00a98be534db1da1a38a6865e41a1a94d..eb9da7e3912430921219cd4ebdcc295c this.capturedBlockStates.put(pos.immutable(), blockstate); captured = true; } -@@ -698,7 +699,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -614,7 +615,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public BlockState getBlockState(BlockPos pos) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { diff --git a/patches/server/0164-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/0161-API-to-get-a-BlockState-without-a-snapshot.patch similarity index 100% rename from patches/server/0164-API-to-get-a-BlockState-without-a-snapshot.patch rename to patches/server/0161-API-to-get-a-BlockState-without-a-snapshot.patch diff --git a/patches/server/0165-AsyncTabCompleteEvent.patch b/patches/server/0162-AsyncTabCompleteEvent.patch similarity index 99% rename from patches/server/0165-AsyncTabCompleteEvent.patch rename to patches/server/0162-AsyncTabCompleteEvent.patch index af9c1a1a42b8..4e3a23dd1ad8 100644 --- a/patches/server/0165-AsyncTabCompleteEvent.patch +++ b/patches/server/0162-AsyncTabCompleteEvent.patch @@ -16,7 +16,7 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent Co-authored-by: Aikar diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index f422b6ffcd590788085486778293aaabc141d392..243e111392aca01c94aee052673d0a91008524de 100644 +index dd1de1632900fd3a3771241c5f3ce69c673f64d7..14e891458fad814e374f14ef5710a352efb9dac4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -688,12 +688,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0166-PlayerPickupExperienceEvent.patch b/patches/server/0163-PlayerPickupExperienceEvent.patch similarity index 93% rename from patches/server/0166-PlayerPickupExperienceEvent.patch rename to patches/server/0163-PlayerPickupExperienceEvent.patch index c276fe0ac536..c4ef53a2055c 100644 --- a/patches/server/0166-PlayerPickupExperienceEvent.patch +++ b/patches/server/0163-PlayerPickupExperienceEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] PlayerPickupExperienceEvent Allows plugins to cancel a player picking up an experience orb diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index b49e48fa6dd37b5eddb45877be90018ec9d23b0e..7ef1b6decd87371db1636ace091b975db210f4fb 100644 +index ae70ad9d6c02fcb5631a3c45db283b29844bbb0d..0f55715f2d97ab09746a51f9d39134b513778fdd 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -312,7 +312,7 @@ public class ExperienceOrb extends Entity { diff --git a/patches/server/0167-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0164-Ability-to-apply-mending-to-XP-API.patch similarity index 96% rename from patches/server/0167-Ability-to-apply-mending-to-XP-API.patch rename to patches/server/0164-Ability-to-apply-mending-to-XP-API.patch index 1487a51acec5..c9b5761eb023 100644 --- a/patches/server/0167-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/server/0164-Ability-to-apply-mending-to-XP-API.patch @@ -14,7 +14,7 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 809ad04237c85f41bdf3bd772deb67d203b4a4b6..7021921980b20a8c61016a021b281af58ed72b51 100644 +index f35a53f6e4af319a4ce6f8e5dc8eb65edb47b6ed..62c531603c68597add75de31749943bd47e4580f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1543,7 +1543,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch b/patches/server/0165-PlayerNaturallySpawnCreaturesEvent.patch similarity index 98% rename from patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch rename to patches/server/0165-PlayerNaturallySpawnCreaturesEvent.patch index fe5c651f9ed3..87f605b172bf 100644 --- a/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch +++ b/patches/server/0165-PlayerNaturallySpawnCreaturesEvent.patch @@ -60,7 +60,7 @@ index 1ad6b62ee53e2ee4a710211dfc750780519004f9..de1d5da6318958e11a9da56ddd8fef11 boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getLevelData().getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit Iterator iterator1 = list.iterator(); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 5e60c85a78aedb8275a7cd619006346fcb80405c..989359525a188cc2177e2b258de7baa44773bb53 100644 +index ede3afab5c2a1d175a5beea85ffa362a3481a857..708d1033306da34844827854edaf8a68ed67a936 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -265,6 +265,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0169-Add-setPlayerProfile-API-for-Skulls.patch b/patches/server/0166-Add-setPlayerProfile-API-for-Skulls.patch similarity index 100% rename from patches/server/0169-Add-setPlayerProfile-API-for-Skulls.patch rename to patches/server/0166-Add-setPlayerProfile-API-for-Skulls.patch diff --git a/patches/server/0170-PreCreatureSpawnEvent.patch b/patches/server/0167-PreCreatureSpawnEvent.patch similarity index 98% rename from patches/server/0170-PreCreatureSpawnEvent.patch rename to patches/server/0167-PreCreatureSpawnEvent.patch index 78b6f9f5ca09..979a740ce643 100644 --- a/patches/server/0170-PreCreatureSpawnEvent.patch +++ b/patches/server/0167-PreCreatureSpawnEvent.patch @@ -84,7 +84,7 @@ index 382b55167dede435b034866bd394455f0f6f2a00..bd4ae65070eb4b98dae0529b5985f800 if (t0 != null) { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index a0a313fa5e7e4e1973c020d0262e34381a19dea7..0429b927e63ec12f53a6ce1ebe1e64d99bf7e129 100644 +index f0d5e45d0d6ac51106379d20690d34a032a24c39..bfd156acbae31619234fffb1804726090802fbae 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -975,7 +975,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -129,7 +129,7 @@ index 393b77043cbaf58200fca6e56c22c36aa2aa2cfb..db4beb22cf54bb3b53561ec0fe06209c Entity entity = EntityType.loadEntityRecursive(nbttagcompound, world, (entity1) -> { entity1.moveTo(d0, d1, d2, entity1.getYRot(), entity1.getXRot()); diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 92e76dd39dc3575e9466031dd799080a98ad8b8d..449a811202c9dea62bcf4a2f483e08a9bc1d0129 100644 +index 604766a286d00bb4b40c20482376fe80651beabe..286592be7aeb183d1a9ee439c250f2acf932f0bf 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -213,7 +213,13 @@ public final class NaturalSpawner { diff --git a/patches/server/0171-Fill-Profile-Property-Events.patch b/patches/server/0168-Fill-Profile-Property-Events.patch similarity index 97% rename from patches/server/0171-Fill-Profile-Property-Events.patch rename to patches/server/0168-Fill-Profile-Property-Events.patch index 1c699ab0ce6b..1b8f42fb8d9b 100644 --- a/patches/server/0171-Fill-Profile-Property-Events.patch +++ b/patches/server/0168-Fill-Profile-Property-Events.patch @@ -46,7 +46,7 @@ index 985e6fc43a0946943847e0c283426242ef594a26..d577384797bb381eb57437f57b726ea8 return super.fetchProfile(profileId, requireSecure); } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java -index 92b770d10f34596ce52392a0db1ccd825108730b..252d8db6c802a2f23d6c6f8cf3726668225b853d 100644 +index d0b3a836de9830a4da534bedd9f94a16a82ef9c6..6f52256bfb668aee7fd1628c1c0c7b3434b847a6 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java @@ -74,7 +74,7 @@ public class SkullBlockEntity extends BlockEntity { diff --git a/patches/server/0172-Add-PlayerAdvancementCriterionGrantEvent.patch b/patches/server/0169-Add-PlayerAdvancementCriterionGrantEvent.patch similarity index 100% rename from patches/server/0172-Add-PlayerAdvancementCriterionGrantEvent.patch rename to patches/server/0169-Add-PlayerAdvancementCriterionGrantEvent.patch diff --git a/patches/server/0173-Add-ArmorStand-Item-Meta.patch b/patches/server/0170-Add-ArmorStand-Item-Meta.patch similarity index 100% rename from patches/server/0173-Add-ArmorStand-Item-Meta.patch rename to patches/server/0170-Add-ArmorStand-Item-Meta.patch diff --git a/patches/server/0174-Extend-Player-Interact-cancellation.patch b/patches/server/0171-Extend-Player-Interact-cancellation.patch similarity index 100% rename from patches/server/0174-Extend-Player-Interact-cancellation.patch rename to patches/server/0171-Extend-Player-Interact-cancellation.patch diff --git a/patches/server/0175-Tameable-getOwnerUniqueId-API.patch b/patches/server/0172-Tameable-getOwnerUniqueId-API.patch similarity index 100% rename from patches/server/0175-Tameable-getOwnerUniqueId-API.patch rename to patches/server/0172-Tameable-getOwnerUniqueId-API.patch diff --git a/patches/server/0176-Toggleable-player-crits.patch b/patches/server/0173-Toggleable-player-crits.patch similarity index 85% rename from patches/server/0176-Toggleable-player-crits.patch rename to patches/server/0173-Toggleable-player-crits.patch index 3a0ff5f64ad3..03a7103dee07 100644 --- a/patches/server/0176-Toggleable-player-crits.patch +++ b/patches/server/0173-Toggleable-player-crits.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Toggleable player crits diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 6881f6041d1605689f33d6d50b592f7d8a70cbdf..755364ee011df4deed65fc36ea41012d0667c918 100644 +index 5680bc0c9c71f915f66eecae401e8f51dc4225fe..4bba558b77d857ebc422c0313ba7b914df4dc2a8 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1242,6 +1242,7 @@ public abstract class Player extends LivingEntity { +@@ -1234,6 +1234,7 @@ public abstract class Player extends LivingEntity { boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity; diff --git a/patches/server/0177-Disable-Explicit-Network-Manager-Flushing.patch b/patches/server/0174-Disable-Explicit-Network-Manager-Flushing.patch similarity index 100% rename from patches/server/0177-Disable-Explicit-Network-Manager-Flushing.patch rename to patches/server/0174-Disable-Explicit-Network-Manager-Flushing.patch diff --git a/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch b/patches/server/0175-Implement-extended-PaperServerListPingEvent.patch similarity index 99% rename from patches/server/0178-Implement-extended-PaperServerListPingEvent.patch rename to patches/server/0175-Implement-extended-PaperServerListPingEvent.patch index 44c9c1509f38..0f625038b5bb 100644 --- a/patches/server/0178-Implement-extended-PaperServerListPingEvent.patch +++ b/patches/server/0175-Implement-extended-PaperServerListPingEvent.patch @@ -181,7 +181,7 @@ index 0000000000000000000000000000000000000000..6b0bdc266109cdfb874f08bf74323603 + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 06bbe33eeb2474119c22b918c93c57d6b253c319..becbff154ba757a80f9e90a8a7da00acc279d9f5 100644 +index fae34d85f6c3a81f29fa625c78090895d3af31cc..34189700b682377426bb70c9684f56115a6ab112 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,6 +3,9 @@ package net.minecraft.server; diff --git a/patches/server/0179-Add-more-fields-to-AsyncPreLoginEvent.patch b/patches/server/0176-Add-more-fields-to-AsyncPreLoginEvent.patch similarity index 98% rename from patches/server/0179-Add-more-fields-to-AsyncPreLoginEvent.patch rename to patches/server/0176-Add-more-fields-to-AsyncPreLoginEvent.patch index d56e4c78c9bd..2affee9d3d22 100644 --- a/patches/server/0179-Add-more-fields-to-AsyncPreLoginEvent.patch +++ b/patches/server/0176-Add-more-fields-to-AsyncPreLoginEvent.patch @@ -7,7 +7,7 @@ Co-authored-by: Connor Linfoot Co-authored-by: MCMDEV diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 000e5e6085b95e4fc4995e53dc83d9075e27aa05..58d97fce07ad8f786940c3f5e74e9aaeabe8d261 100644 +index abfeaa9485b71d0b802c41bfd8e113d0bc9e9773..c05c4258c48d967be7bde8570ac7bd91a9f3bdda 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -157,7 +157,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, diff --git a/patches/server/0180-Player.setPlayerProfile-API.patch b/patches/server/0177-Player.setPlayerProfile-API.patch similarity index 97% rename from patches/server/0180-Player.setPlayerProfile-API.patch rename to patches/server/0177-Player.setPlayerProfile-API.patch index 932856ea66a2..efbd55b0ed55 100644 --- a/patches/server/0180-Player.setPlayerProfile-API.patch +++ b/patches/server/0177-Player.setPlayerProfile-API.patch @@ -9,7 +9,7 @@ This can be useful for changing name or skins after a player has logged in. public-f net.minecraft.world.entity.player.Player gameProfile diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9c0440a6e3768ca6300e128da7f1b11a96f10f91..c1c9076be05cd4b0b19d16aabbf0320c2531cca1 100644 +index 14e891458fad814e374f14ef5710a352efb9dac4..51d5bed032f89333917accca242772a09ee98d93 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1468,7 +1468,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -22,7 +22,7 @@ index 9c0440a6e3768ca6300e128da7f1b11a96f10f91..c1c9076be05cd4b0b19d16aabbf0320c if (Float.isNaN(f)) { f = 0; diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 58d97fce07ad8f786940c3f5e74e9aaeabe8d261..dd4e97ff4c8fb2d2f251713271f5ac493574fcd9 100644 +index c05c4258c48d967be7bde8570ac7bd91a9f3bdda..b23b7560854a9904e28bbd06afccf5bb0dae16e2 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -295,11 +295,11 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @@ -40,7 +40,7 @@ index 58d97fce07ad8f786940c3f5e74e9aaeabe8d261..dd4e97ff4c8fb2d2f251713271f5ac49 playerName = gameprofile.getName(); uniqueId = gameprofile.getId(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 6e0a21935f9d5f35cbce72b32e0a89bb636804e2..782cc6d910efe5bc5498d0083afab42fad6c4fa2 100644 +index 38329fe27594c3047d948aaf091fcea33ab270dd..99ba7c82f8a8db9d5841cce18ed5f39439b512b0 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -862,10 +862,16 @@ public abstract class PlayerList { @@ -77,7 +77,7 @@ index 477d3245facb5ae59c786d4f696f64226cb540a6..e8490a58dd4d9bc39a5bb2f9fc109526 public Server getServer() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8dd7e875d0e2ac3c10cce9b7045b5dbc742e9fb7..d296e1687fd596d6674e18b316603d08cd9057df 100644 +index 62c531603c68597add75de31749943bd47e4580f..8c64222f2b0d725c54543911efb0f7d9e98b7bd1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -272,11 +272,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0181-getPlayerUniqueId-API.patch b/patches/server/0178-getPlayerUniqueId-API.patch similarity index 94% rename from patches/server/0181-getPlayerUniqueId-API.patch rename to patches/server/0178-getPlayerUniqueId-API.patch index da4573f45af8..73d33c7f0b94 100644 --- a/patches/server/0181-getPlayerUniqueId-API.patch +++ b/patches/server/0178-getPlayerUniqueId-API.patch @@ -9,7 +9,7 @@ In Offline Mode, will return an Offline UUID This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index dbbb697a91f137c32be663bb8c0a263158723a94..146b21e3d3b1432d7b14cda4a9462d77b30e5fe2 100644 +index 9bc095ccb142e83e419a7f88591bf1219d09bacb..8c987d3a3042fadee01508ad0a62eb9878e8dd54 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1826,6 +1826,25 @@ public final class CraftServer implements Server { diff --git a/patches/server/0182-Improved-Async-Task-Scheduler.patch b/patches/server/0179-Improved-Async-Task-Scheduler.patch similarity index 100% rename from patches/server/0182-Improved-Async-Task-Scheduler.patch rename to patches/server/0179-Improved-Async-Task-Scheduler.patch diff --git a/patches/server/0183-Make-legacy-ping-handler-more-reliable.patch b/patches/server/0180-Make-legacy-ping-handler-more-reliable.patch similarity index 100% rename from patches/server/0183-Make-legacy-ping-handler-more-reliable.patch rename to patches/server/0180-Make-legacy-ping-handler-more-reliable.patch diff --git a/patches/server/0184-Call-PaperServerListPingEvent-for-legacy-pings.patch b/patches/server/0181-Call-PaperServerListPingEvent-for-legacy-pings.patch similarity index 100% rename from patches/server/0184-Call-PaperServerListPingEvent-for-legacy-pings.patch rename to patches/server/0181-Call-PaperServerListPingEvent-for-legacy-pings.patch diff --git a/patches/server/0185-Flag-to-disable-the-channel-limit.patch b/patches/server/0182-Flag-to-disable-the-channel-limit.patch similarity index 95% rename from patches/server/0185-Flag-to-disable-the-channel-limit.patch rename to patches/server/0182-Flag-to-disable-the-channel-limit.patch index 99438eae9619..1e9b411ae539 100644 --- a/patches/server/0185-Flag-to-disable-the-channel-limit.patch +++ b/patches/server/0182-Flag-to-disable-the-channel-limit.patch @@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs. provide an optional flag to disable this check, at your own risk. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1094475d819f9d5fa866c33bcc1b2985c47c4f07..69f4147523c7cc75c91a0f6c0553cea66a6df151 100644 +index 8c64222f2b0d725c54543911efb0f7d9e98b7bd1..bcbe11807186d2d79a155f6be7bda029ca5f555d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -190,6 +190,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0186-Add-openSign-method-to-HumanEntity.patch b/patches/server/0183-Add-openSign-method-to-HumanEntity.patch similarity index 91% rename from patches/server/0186-Add-openSign-method-to-HumanEntity.patch rename to patches/server/0183-Add-openSign-method-to-HumanEntity.patch index 1cf74ce84b8f..73acd70a6bec 100644 --- a/patches/server/0186-Add-openSign-method-to-HumanEntity.patch +++ b/patches/server/0183-Add-openSign-method-to-HumanEntity.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add openSign method to HumanEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index b143c417b70bbc4d5fdbe1b31f3a86594ea82ae9..f0194d4431821638e43a0f1b12b39f668ad147d1 100644 +index e6b16e3db7a197c7af0c4fdb782749c3c3f37538..092d2bfab7e8fd9840e853f09adc85311ab29046 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -626,6 +626,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/server/0187-Configurable-sprint-interruption-on-attack.patch b/patches/server/0184-Configurable-sprint-interruption-on-attack.patch similarity index 88% rename from patches/server/0187-Configurable-sprint-interruption-on-attack.patch rename to patches/server/0184-Configurable-sprint-interruption-on-attack.patch index f6123af66d2d..257d62d08e12 100644 --- a/patches/server/0187-Configurable-sprint-interruption-on-attack.patch +++ b/patches/server/0184-Configurable-sprint-interruption-on-attack.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Configurable sprint interruption on attack If the sprint interruption is disabled players continue sprinting when they attack entities. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 755364ee011df4deed65fc36ea41012d0667c918..fd29c7f9fd50b52333f792cd07540704af579058 100644 +index 4bba558b77d857ebc422c0313ba7b914df4dc2a8..e693d81be914800073b51acef98ef5f4e607c874 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1291,7 +1291,11 @@ public abstract class Player extends LivingEntity { +@@ -1283,7 +1283,11 @@ public abstract class Player extends LivingEntity { } this.setDeltaMovement(this.getDeltaMovement().multiply(0.6D, 1.0D, 0.6D)); diff --git a/patches/server/0188-EndermanEscapeEvent.patch b/patches/server/0185-EndermanEscapeEvent.patch similarity index 100% rename from patches/server/0188-EndermanEscapeEvent.patch rename to patches/server/0185-EndermanEscapeEvent.patch diff --git a/patches/server/0189-Enderman.teleportRandomly.patch b/patches/server/0186-Enderman.teleportRandomly.patch similarity index 100% rename from patches/server/0189-Enderman.teleportRandomly.patch rename to patches/server/0186-Enderman.teleportRandomly.patch diff --git a/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch b/patches/server/0187-Block-Enderpearl-Travel-Exploit.patch similarity index 96% rename from patches/server/0190-Block-Enderpearl-Travel-Exploit.patch rename to patches/server/0187-Block-Enderpearl-Travel-Exploit.patch index a4c7873ceb4b..00de4c971eec 100644 --- a/patches/server/0190-Block-Enderpearl-Travel-Exploit.patch +++ b/patches/server/0187-Block-Enderpearl-Travel-Exploit.patch @@ -16,7 +16,7 @@ public net.minecraft.world.entity.projectile.Projectile cachedOwner public net.minecraft.world.entity.projectile.Projectile ownerUUID diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d96be9d3a24a5eb89fc2a7180b6d7e236e7c2448..b974d917879a42d8df4bca4cbb505cb599c6f2ff 100644 +index 87cd4d17d618cd9d69a38838a05dbe5d0fe807d4..f27472e03a6dc0781168c5862c57b501f7ae2dc9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2368,6 +2368,12 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0188-Expand-World.spawnParticle-API-and-add-Builder.patch similarity index 97% rename from patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch rename to patches/server/0188-Expand-World.spawnParticle-API-and-add-Builder.patch index 0f3b44801832..87f472073706 100644 --- a/patches/server/0191-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/patches/server/0188-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -10,7 +10,7 @@ Adds an option to control the force mode of the particle. This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b974d917879a42d8df4bca4cbb505cb599c6f2ff..a306269019b6b8ff6f24cbc3f209f2359ac668fe 100644 +index f27472e03a6dc0781168c5862c57b501f7ae2dc9..6c6ccdf7fb1cab27af720b2c8ef9d68b4521a20d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1742,12 +1742,17 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0192-Fix-exploit-that-allowed-colored-signs-to-be-created.patch b/patches/server/0189-Fix-exploit-that-allowed-colored-signs-to-be-created.patch similarity index 94% rename from patches/server/0192-Fix-exploit-that-allowed-colored-signs-to-be-created.patch rename to patches/server/0189-Fix-exploit-that-allowed-colored-signs-to-be-created.patch index 2c01302eec43..d591924a6b30 100644 --- a/patches/server/0192-Fix-exploit-that-allowed-colored-signs-to-be-created.patch +++ b/patches/server/0189-Fix-exploit-that-allowed-colored-signs-to-be-created.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix exploit that allowed colored signs to be created diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index 0b5d988c6372ee5b7c2edd56f87ef604e76a2a5b..2d230e1f56be70f6373421c0649b0b9d3f2702e8 100644 +index 6003731da7be596baf1954df2e13ae54e111cd91..a822b190aeee1d644c3509bb75106fa4dfdd963f 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java @@ -201,9 +201,9 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C diff --git a/patches/server/0193-EndermanAttackPlayerEvent.patch b/patches/server/0190-EndermanAttackPlayerEvent.patch similarity index 94% rename from patches/server/0193-EndermanAttackPlayerEvent.patch rename to patches/server/0190-EndermanAttackPlayerEvent.patch index 42534bc87a30..8504592c0001 100644 --- a/patches/server/0193-EndermanAttackPlayerEvent.patch +++ b/patches/server/0190-EndermanAttackPlayerEvent.patch @@ -8,7 +8,7 @@ Allow control over whether or not an enderman aggros a player. This allows you to override/extend the pumpkin/stare logic. diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index c897d55acdceae54bc2e7f3f3694ce421a8df687..259ba77dcbc8ed5f7e4015a6683799cc4604dfb8 100644 +index aa7762037c3bcbbb3e51325b2ba91d5ad6db0ab0..13ba764d51f941c2b0d1d2af88ffd0c1fc3982c0 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -236,7 +236,15 @@ public class EnderMan extends Monster implements NeutralMob { diff --git a/patches/server/0194-WitchConsumePotionEvent.patch b/patches/server/0191-WitchConsumePotionEvent.patch similarity index 100% rename from patches/server/0194-WitchConsumePotionEvent.patch rename to patches/server/0191-WitchConsumePotionEvent.patch diff --git a/patches/server/0195-WitchThrowPotionEvent.patch b/patches/server/0192-WitchThrowPotionEvent.patch similarity index 100% rename from patches/server/0195-WitchThrowPotionEvent.patch rename to patches/server/0192-WitchThrowPotionEvent.patch diff --git a/patches/server/0196-WitchReadyPotionEvent.patch b/patches/server/0193-WitchReadyPotionEvent.patch similarity index 100% rename from patches/server/0196-WitchReadyPotionEvent.patch rename to patches/server/0193-WitchReadyPotionEvent.patch diff --git a/patches/server/0197-ItemStack-getMaxItemUseDuration.patch b/patches/server/0194-ItemStack-getMaxItemUseDuration.patch similarity index 100% rename from patches/server/0197-ItemStack-getMaxItemUseDuration.patch rename to patches/server/0194-ItemStack-getMaxItemUseDuration.patch diff --git a/patches/server/0198-Add-EntityTeleportEndGatewayEvent.patch b/patches/server/0195-Add-EntityTeleportEndGatewayEvent.patch similarity index 100% rename from patches/server/0198-Add-EntityTeleportEndGatewayEvent.patch rename to patches/server/0195-Add-EntityTeleportEndGatewayEvent.patch diff --git a/patches/server/0199-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch b/patches/server/0196-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch similarity index 89% rename from patches/server/0199-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch rename to patches/server/0196-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch index 071b12ee353b..cd0b43941df1 100644 --- a/patches/server/0199-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch +++ b/patches/server/0196-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Unset Ignited flag on cancel of Explosion Event Otherwise the creeper infinite explodes diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 864854a677d6f498909b70c12babd190a8b1eb36..d85095117d7837e75640f0e447242b45e24cf00e 100644 +index db7485806d90fe90f806736ac55143564488467d..d08ccf5eb52e5975b161f5f7bcbdd385eb8318c9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -278,6 +278,7 @@ public class Creeper extends Monster implements PowerableMob { diff --git a/patches/server/0200-Fix-CraftEntity-hashCode.patch b/patches/server/0197-Fix-CraftEntity-hashCode.patch similarity index 100% rename from patches/server/0200-Fix-CraftEntity-hashCode.patch rename to patches/server/0197-Fix-CraftEntity-hashCode.patch diff --git a/patches/server/0201-Configurable-LootPool-luck-formula.patch b/patches/server/0198-Configurable-LootPool-luck-formula.patch similarity index 100% rename from patches/server/0201-Configurable-LootPool-luck-formula.patch rename to patches/server/0198-Configurable-LootPool-luck-formula.patch diff --git a/patches/server/0202-Print-Error-details-when-failing-to-save-player-data.patch b/patches/server/0199-Print-Error-details-when-failing-to-save-player-data.patch similarity index 100% rename from patches/server/0202-Print-Error-details-when-failing-to-save-player-data.patch rename to patches/server/0199-Print-Error-details-when-failing-to-save-player-data.patch diff --git a/patches/server/0203-Make-shield-blocking-delay-configurable.patch b/patches/server/0200-Make-shield-blocking-delay-configurable.patch similarity index 96% rename from patches/server/0203-Make-shield-blocking-delay-configurable.patch rename to patches/server/0200-Make-shield-blocking-delay-configurable.patch index 82e12bb8c27e..b242056da412 100644 --- a/patches/server/0203-Make-shield-blocking-delay-configurable.patch +++ b/patches/server/0200-Make-shield-blocking-delay-configurable.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make shield blocking delay configurable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 39e02e922e67915c23ce4565eba33f656cbe81b6..0c0f8385a64e4b90dbd4e6363f3d0478a7f437e3 100644 +index acf892ce7cf566fc6b9b88c6502c97a06cdedfd4..fa1c7d1781a2e2269359fa1860de79e918de7635 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3808,12 +3808,24 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0204-Improve-EntityShootBowEvent.patch b/patches/server/0201-Improve-EntityShootBowEvent.patch similarity index 100% rename from patches/server/0204-Improve-EntityShootBowEvent.patch rename to patches/server/0201-Improve-EntityShootBowEvent.patch diff --git a/patches/server/0205-PlayerReadyArrowEvent.patch b/patches/server/0202-PlayerReadyArrowEvent.patch similarity index 93% rename from patches/server/0205-PlayerReadyArrowEvent.patch rename to patches/server/0202-PlayerReadyArrowEvent.patch index 6900915d221e..d0e62e07776f 100644 --- a/patches/server/0205-PlayerReadyArrowEvent.patch +++ b/patches/server/0202-PlayerReadyArrowEvent.patch @@ -7,10 +7,10 @@ Called when a player is firing a bow and the server is choosing an arrow to use. Plugins can skip selection of certain arrows and control which is used. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 729c960a18a77b744eba0c9319cf5c2a9e84b707..695f241372eb0fe457cf91595520cbed9a5cdc3e 100644 +index e693d81be914800073b51acef98ef5f4e607c874..bfc33822ab5ca58d77e11d3cbd140ba6c0374a6e 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -2177,18 +2177,29 @@ public abstract class Player extends LivingEntity { +@@ -2169,18 +2169,29 @@ public abstract class Player extends LivingEntity { return ImmutableList.of(Pose.STANDING, Pose.CROUCHING, Pose.SWIMMING); } diff --git a/patches/server/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch b/patches/server/0203-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch similarity index 95% rename from patches/server/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch rename to patches/server/0203-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch index c0c612f8f19e..98c708b9d80f 100644 --- a/patches/server/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch +++ b/patches/server/0203-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch @@ -9,7 +9,7 @@ Co-authored-by: aerulion This event is called when an entity receives knockback by another entity. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d66d30a016ac04d5f051e59ca168a6c2bb8794ab..d9abd56d3802033bfd440f13640350b2fba017aa 100644 +index 42f8c39fa5f9f31c03d4e7af9fb6b7a842f29aae..d6437a6b6b90ceb6fe7d2375ab2fc9e28b469c9b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1909,8 +1909,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -33,7 +33,7 @@ index d66d30a016ac04d5f051e59ca168a6c2bb8794ab..d9abd56d3802033bfd440f13640350b2 protected void markHurt() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0c0f8385a64e4b90dbd4e6363f3d0478a7f437e3..b8c4e7d81b20887e5a05b93a1bbe01e72ff55ba7 100644 +index fa1c7d1781a2e2269359fa1860de79e918de7635..854177cb491d602c1f33e3496e01ba8a63d708e6 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1513,7 +1513,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -83,7 +83,7 @@ index 0c0f8385a64e4b90dbd4e6363f3d0478a7f437e3..b8c4e7d81b20887e5a05b93a1bbe01e7 } diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index fa0e96fd884a0338b44f68506b1d3ee6c42f17b1..524f99eeefb1ab95d1752df2faea76837f2e3787 100644 +index 374a91e712c2a6a8ad87d1047bb07d44eaa9908a..70820b8d95c71ea6df8a5cae16784ed764440a45 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1646,7 +1646,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -161,10 +161,10 @@ index 81003ce3f05c6be6f52a92b86a4721235f4ce12a..cae7e3e85c3b911f50f8a06badf695c3 } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 695f241372eb0fe457cf91595520cbed9a5cdc3e..0704fad49e680d3274b23024497963c4d0ad353b 100644 +index bfc33822ab5ca58d77e11d3cbd140ba6c0374a6e..871adf673c536912604ea18f8146e7eead01bde5 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1285,9 +1285,9 @@ public abstract class Player extends LivingEntity { +@@ -1277,9 +1277,9 @@ public abstract class Player extends LivingEntity { if (flag5) { if (i > 0) { if (target instanceof LivingEntity) { @@ -176,7 +176,7 @@ index 695f241372eb0fe457cf91595520cbed9a5cdc3e..0704fad49e680d3274b23024497963c4 } this.setDeltaMovement(this.getDeltaMovement().multiply(0.6D, 1.0D, 0.6D)); -@@ -1309,7 +1309,7 @@ public abstract class Player extends LivingEntity { +@@ -1301,7 +1301,7 @@ public abstract class Player extends LivingEntity { if (entityliving != this && entityliving != target && !this.isAlliedTo((Entity) entityliving) && (!(entityliving instanceof ArmorStand) || !((ArmorStand) entityliving).isMarker()) && this.distanceToSqr((Entity) entityliving) < 9.0D) { // CraftBukkit start - Only apply knockback if the damage hits if (entityliving.hurt(this.damageSources().playerAttack(this).sweep(), f4)) { @@ -186,7 +186,7 @@ index 695f241372eb0fe457cf91595520cbed9a5cdc3e..0704fad49e680d3274b23024497963c4 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index b24f828d39fc26b4f85f5c76010f0ba47e9fe05f..385cbee1d30735152cccb0d85a77a12fabfd9427 100644 +index 0f700442a7559fac5d27d1fb6b3716f3853a9897..f3861cea4eb6a39fa16936383f8dabc6689a58a9 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -409,7 +409,7 @@ public abstract class AbstractArrow extends Projectile { diff --git a/patches/server/0207-Expand-Explosions-API.patch b/patches/server/0204-Expand-Explosions-API.patch similarity index 94% rename from patches/server/0207-Expand-Explosions-API.patch rename to patches/server/0204-Expand-Explosions-API.patch index 2deb0a4c3144..23a102686cc8 100644 --- a/patches/server/0207-Expand-Explosions-API.patch +++ b/patches/server/0204-Expand-Explosions-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expand Explosions API Add Entity as a Source capability, and add more API choices, and on Location. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index c8e13ea3bc256b112fa5fd916c0fb583322c081b..ed851ec919c18d724d3376e893eca09259ad9bf3 100644 +index 6abf000543cb842ff43f0adbde035fff595e553d..fd73f71cf9ab267c8904012062fc6030897d0de4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -719,6 +719,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0208-LivingEntity-Hand-Raised-Item-Use-API.patch b/patches/server/0205-LivingEntity-Hand-Raised-Item-Use-API.patch similarity index 100% rename from patches/server/0208-LivingEntity-Hand-Raised-Item-Use-API.patch rename to patches/server/0205-LivingEntity-Hand-Raised-Item-Use-API.patch diff --git a/patches/server/0209-RangedEntity-API.patch b/patches/server/0206-RangedEntity-API.patch similarity index 100% rename from patches/server/0209-RangedEntity-API.patch rename to patches/server/0206-RangedEntity-API.patch diff --git a/patches/server/0210-Add-config-to-disable-ender-dragon-legacy-check.patch b/patches/server/0207-Add-config-to-disable-ender-dragon-legacy-check.patch similarity index 100% rename from patches/server/0210-Add-config-to-disable-ender-dragon-legacy-check.patch rename to patches/server/0207-Add-config-to-disable-ender-dragon-legacy-check.patch diff --git a/patches/server/0211-Implement-World.getEntity-UUID-API.patch b/patches/server/0208-Implement-World.getEntity-UUID-API.patch similarity index 91% rename from patches/server/0211-Implement-World.getEntity-UUID-API.patch rename to patches/server/0208-Implement-World.getEntity-UUID-API.patch index f4a8fff45290..ad2a2f267359 100644 --- a/patches/server/0211-Implement-World.getEntity-UUID-API.patch +++ b/patches/server/0208-Implement-World.getEntity-UUID-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement World.getEntity(UUID) API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index ed851ec919c18d724d3376e893eca09259ad9bf3..fda8fd0d69a3889909e804798a49c19e2a9d49a6 100644 +index fd73f71cf9ab267c8904012062fc6030897d0de4..ca6bc987d0bbff0a835fe7b28a2692e1a8d27a6d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1048,6 +1048,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0212-InventoryCloseEvent-Reason-API.patch b/patches/server/0209-InventoryCloseEvent-Reason-API.patch similarity index 98% rename from patches/server/0212-InventoryCloseEvent-Reason-API.patch rename to patches/server/0209-InventoryCloseEvent-Reason-API.patch index 7f704e7c3d58..4d25cf13f1a1 100644 --- a/patches/server/0212-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0209-InventoryCloseEvent-Reason-API.patch @@ -7,7 +7,7 @@ Allows you to determine why an inventory was closed, enabling plugin developers to "confirm" things based on if it was player triggered close or not. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a306269019b6b8ff6f24cbc3f209f2359ac668fe..9e967dac4db56e6b0713b7351a1cd0896e757c7e 100644 +index 6c6ccdf7fb1cab27af720b2c8ef9d68b4521a20d..d993f6421e17a24bd6c371298ae78c2bc2f8a7ac 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1474,7 +1474,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -19,7 +19,7 @@ index a306269019b6b8ff6f24cbc3f209f2359ac668fe..9e967dac4db56e6b0713b7351a1cd089 } } } -@@ -2459,7 +2459,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2458,7 +2458,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) { @@ -117,7 +117,7 @@ index 99ba7c82f8a8db9d5841cce18ed5f39439b512b0..5517f873e709b6f3b9206f0ad0212a95 PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName()))); // Paper - Adventure diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 2ec9d75ad64c40cb4577151a050c534e38226b72..0c34063bdbfa70d65b3548e5ea800ef088a5444d 100644 +index 871adf673c536912604ea18f8146e7eead01bde5..f9d7ef3b689ce1411b922649f9ee64dca34d3c74 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -265,7 +265,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0213-Vex-get-setSummoner-API.patch b/patches/server/0210-Vex-get-setSummoner-API.patch similarity index 100% rename from patches/server/0213-Vex-get-setSummoner-API.patch rename to patches/server/0210-Vex-get-setSummoner-API.patch diff --git a/patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/server/0211-Refresh-player-inventory-when-cancelling-PlayerInter.patch similarity index 94% rename from patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch rename to patches/server/0211-Refresh-player-inventory-when-cancelling-PlayerInter.patch index a36560f2892c..f1f1fc7a9b09 100644 --- a/patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch +++ b/patches/server/0211-Refresh-player-inventory-when-cancelling-PlayerInter.patch @@ -16,7 +16,7 @@ Refresh the player inventory when PlayerInteractEntityEvent is cancelled to avoid this problem. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d1c2dad79f6e265e184d374494b3f45414c5fafc..a00f68b058d6d7aa28ce34ad726c5b228e5c2e64 100644 +index 678c46517757e3f37d5051fc88c481cbe8bf861b..90574b9bd5eb9dcb89baf280e0a9503d7b975c01 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2419,6 +2419,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0215-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch b/patches/server/0212-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch similarity index 100% rename from patches/server/0215-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch rename to patches/server/0212-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch diff --git a/patches/server/0216-add-more-information-to-Entity.toString.patch b/patches/server/0213-add-more-information-to-Entity.toString.patch similarity index 95% rename from patches/server/0216-add-more-information-to-Entity.toString.patch rename to patches/server/0213-add-more-information-to-Entity.toString.patch index 2fc6c9f002aa..e6cbd7263bd1 100644 --- a/patches/server/0216-add-more-information-to-Entity.toString.patch +++ b/patches/server/0213-add-more-information-to-Entity.toString.patch @@ -6,7 +6,7 @@ Subject: [PATCH] add more information to Entity.toString() UUID, ticks lived, valid, dead diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d9abd56d3802033bfd440f13640350b2fba017aa..ad2e61c7fd7906477e30e91c826d9ce4fb6bffc0 100644 +index d6437a6b6b90ceb6fe7d2375ab2fc9e28b469c9b..47ba1f8fbbe3e5a052028ee1dbff31844bc61f78 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3202,7 +3202,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0217-EnderDragon-Events.patch b/patches/server/0214-EnderDragon-Events.patch similarity index 100% rename from patches/server/0217-EnderDragon-Events.patch rename to patches/server/0214-EnderDragon-Events.patch diff --git a/patches/server/0218-PlayerElytraBoostEvent.patch b/patches/server/0215-PlayerElytraBoostEvent.patch similarity index 100% rename from patches/server/0218-PlayerElytraBoostEvent.patch rename to patches/server/0215-PlayerElytraBoostEvent.patch diff --git a/patches/server/0219-PlayerLaunchProjectileEvent.patch b/patches/server/0216-PlayerLaunchProjectileEvent.patch similarity index 100% rename from patches/server/0219-PlayerLaunchProjectileEvent.patch rename to patches/server/0216-PlayerLaunchProjectileEvent.patch diff --git a/patches/server/0220-Improve-BlockPosition-inlining.patch b/patches/server/0217-Improve-BlockPosition-inlining.patch similarity index 89% rename from patches/server/0220-Improve-BlockPosition-inlining.patch rename to patches/server/0217-Improve-BlockPosition-inlining.patch index 74cbf3248ab9..b9b5c09af2e7 100644 --- a/patches/server/0220-Improve-BlockPosition-inlining.patch +++ b/patches/server/0217-Improve-BlockPosition-inlining.patch @@ -21,10 +21,10 @@ This is based upon conclusions drawn from inspecting the assenmbly generated byt They had 'callq' (invoke) instead of 'mov' (get from memory) instructions. diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java -index 40950db0c242c65dfd4de247c86249354d12108f..6d760fa1dbd13a66bff4695edc28f4ab4b3e44a3 100644 +index 1b29c6872ebe54351f28c1f1f38b22561ba785ee..5256ff18d992250e04a6180e196c2d5d3f0928ca 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java +++ b/src/main/java/net/minecraft/core/Vec3i.java -@@ -44,7 +44,7 @@ public class Vec3i implements Comparable { +@@ -38,7 +38,7 @@ public class Vec3i implements Comparable { } @Override @@ -33,7 +33,7 @@ index 40950db0c242c65dfd4de247c86249354d12108f..6d760fa1dbd13a66bff4695edc28f4ab if (this == object) { return true; } else if (!(object instanceof Vec3i)) { -@@ -62,7 +62,7 @@ public class Vec3i implements Comparable { +@@ -56,7 +56,7 @@ public class Vec3i implements Comparable { } @Override @@ -42,7 +42,7 @@ index 40950db0c242c65dfd4de247c86249354d12108f..6d760fa1dbd13a66bff4695edc28f4ab return (this.getY() + this.getZ() * 31) * 31 + this.getX(); } -@@ -75,15 +75,15 @@ public class Vec3i implements Comparable { +@@ -69,15 +69,15 @@ public class Vec3i implements Comparable { } } diff --git a/patches/server/0221-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/patches/server/0218-Option-to-prevent-armor-stands-from-doing-entity-loo.patch similarity index 92% rename from patches/server/0221-Option-to-prevent-armor-stands-from-doing-entity-loo.patch rename to patches/server/0218-Option-to-prevent-armor-stands-from-doing-entity-loo.patch index 98ed62ea6724..dd307e0c925e 100644 --- a/patches/server/0221-Option-to-prevent-armor-stands-from-doing-entity-loo.patch +++ b/patches/server/0218-Option-to-prevent-armor-stands-from-doing-entity-loo.patch @@ -17,10 +17,10 @@ index d04d0b9cbf91beb57da7e37e72f8e7c98cf6cf4c..e6e3a7ae08f7346ccbce02b9d3623948 Iterator iterator = list.iterator(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4c48be9f98d75758e582e37ba45d0e8c5737adeb..d7dfbd198e16533aab8db3ee64daf26996380331 100644 +index a349755740483148dcdc8d490943fdce74aa4434..9cd032be21a5239a268d41fa2d3db0f7ee2680fd 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -854,6 +854,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -770,6 +770,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Paper end } } diff --git a/patches/server/0222-Vanished-players-don-t-have-rights.patch b/patches/server/0219-Vanished-players-don-t-have-rights.patch similarity index 97% rename from patches/server/0222-Vanished-players-don-t-have-rights.patch rename to patches/server/0219-Vanished-players-don-t-have-rights.patch index 17673a4ced6a..6d33d035a7f8 100644 --- a/patches/server/0222-Vanished-players-don-t-have-rights.patch +++ b/patches/server/0219-Vanished-players-don-t-have-rights.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Vanished players don't have rights diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index e8620ad6be2dda7fe288f884c4ae88a924be4a62..75f08dcce4ac923678bf8c1f25ca02b0efbab7c2 100644 +index e432855ce79f69c0e91fa31e8f6c59a465b0d09e..4ebc38d0666d01c67c2728355fbbef296a0672e3 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -237,6 +237,15 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -39,7 +39,7 @@ index a6638e626600e4304a973497a39e3fac52203b16..c19069f65a9ecbc9000ea4333417a2df BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(context.getLevel(), context.getClickedPos()), player, CraftBlockData.fromData(state), defaultReturn); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index d7dfbd198e16533aab8db3ee64daf26996380331..09f2bee26387641191ae7ee3b863ca4ae2106cb4 100644 +index 9cd032be21a5239a268d41fa2d3db0f7ee2680fd..2a849e7125e2a6294aab49a436eeab8e4201fd15 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -276,6 +276,45 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0223-Allow-disabling-armor-stand-ticking.patch b/patches/server/0220-Allow-disabling-armor-stand-ticking.patch similarity index 100% rename from patches/server/0223-Allow-disabling-armor-stand-ticking.patch rename to patches/server/0220-Allow-disabling-armor-stand-ticking.patch diff --git a/patches/server/0224-SkeletonHorse-Additions.patch b/patches/server/0221-SkeletonHorse-Additions.patch similarity index 100% rename from patches/server/0224-SkeletonHorse-Additions.patch rename to patches/server/0221-SkeletonHorse-Additions.patch diff --git a/patches/server/0225-Don-t-call-getItemMeta-on-hasItemMeta.patch b/patches/server/0222-Don-t-call-getItemMeta-on-hasItemMeta.patch similarity index 100% rename from patches/server/0225-Don-t-call-getItemMeta-on-hasItemMeta.patch rename to patches/server/0222-Don-t-call-getItemMeta-on-hasItemMeta.patch diff --git a/patches/server/0226-Expand-ArmorStand-API.patch b/patches/server/0223-Expand-ArmorStand-API.patch similarity index 100% rename from patches/server/0226-Expand-ArmorStand-API.patch rename to patches/server/0223-Expand-ArmorStand-API.patch diff --git a/patches/server/0227-AnvilDamageEvent.patch b/patches/server/0224-AnvilDamageEvent.patch similarity index 100% rename from patches/server/0227-AnvilDamageEvent.patch rename to patches/server/0224-AnvilDamageEvent.patch diff --git a/patches/server/0228-Add-TNTPrimeEvent.patch b/patches/server/0225-Add-TNTPrimeEvent.patch similarity index 100% rename from patches/server/0228-Add-TNTPrimeEvent.patch rename to patches/server/0225-Add-TNTPrimeEvent.patch diff --git a/patches/server/0229-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0226-Break-up-and-make-tab-spam-limits-configurable.patch similarity index 97% rename from patches/server/0229-Break-up-and-make-tab-spam-limits-configurable.patch rename to patches/server/0226-Break-up-and-make-tab-spam-limits-configurable.patch index 13a8fbad08a8..6c6aef1e4a03 100644 --- a/patches/server/0229-Break-up-and-make-tab-spam-limits-configurable.patch +++ b/patches/server/0226-Break-up-and-make-tab-spam-limits-configurable.patch @@ -22,7 +22,7 @@ to take the burden of this into their own hand without having to rely on plugins doing unsafe things. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2291ca80352db1aaa99b2f266de6d493785be7cf..6f628fedbba120a0db13cb942f6e79ebf2acf14b 100644 +index 90574b9bd5eb9dcb89baf280e0a9503d7b975c01..f0470d4711a7451ca0d524a7b8a90b8d08fa4632 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -257,6 +257,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0230-Fix-NBT-type-issues.patch b/patches/server/0227-Fix-NBT-type-issues.patch similarity index 95% rename from patches/server/0230-Fix-NBT-type-issues.patch rename to patches/server/0227-Fix-NBT-type-issues.patch index b33019a3b7a8..58e82e71e983 100644 --- a/patches/server/0230-Fix-NBT-type-issues.patch +++ b/patches/server/0227-Fix-NBT-type-issues.patch @@ -8,7 +8,7 @@ Addresses two issues: - Allay duplication cooldown is saved and exposed as a long, but loaded as an int diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 4973cd6eeda0b484999c8a81d188b01f0fd08cac..5685951b71a8b81c7a71fd93b099b276d535b401 100644 +index 0f55715f2d97ab09746a51f9d39134b513778fdd..36d5d1736bf826f3abc756277de431c94cabb744 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -295,7 +295,7 @@ public class ExperienceOrb extends Entity { diff --git a/patches/server/0231-Remove-unnecessary-itemmeta-handling.patch b/patches/server/0228-Remove-unnecessary-itemmeta-handling.patch similarity index 100% rename from patches/server/0231-Remove-unnecessary-itemmeta-handling.patch rename to patches/server/0228-Remove-unnecessary-itemmeta-handling.patch diff --git a/patches/server/0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0229-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch similarity index 97% rename from patches/server/0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch rename to patches/server/0229-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 78694ba4a138..2e132faeaa0f 100644 --- a/patches/server/0232-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/patches/server/0229-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -26,7 +26,7 @@ index 422ef83670f7c4a2e5b0da48dc0906ad96b8ece0..e4936a70d3a686e5cba0ea9d878f6e09 protected void tick() { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9e967dac4db56e6b0713b7351a1cd0896e757c7e..2a7d7881a200e12ae9369bb2d704aecce9322e52 100644 +index d993f6421e17a24bd6c371298ae78c2bc2f8a7ac..b818ac80bd9d68f6058e4dc6ee447645083dc177 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1436,6 +1436,12 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0233-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0230-Add-Early-Warning-Feature-to-WatchDog.patch similarity index 97% rename from patches/server/0233-Add-Early-Warning-Feature-to-WatchDog.patch rename to patches/server/0230-Add-Early-Warning-Feature-to-WatchDog.patch index 11c5619fcaa4..9d4b04066af0 100644 --- a/patches/server/0233-Add-Early-Warning-Feature-to-WatchDog.patch +++ b/patches/server/0230-Add-Early-Warning-Feature-to-WatchDog.patch @@ -9,7 +9,7 @@ thread dumps at an interval until the point of crash. This will help diagnose what was going on in that time before the crash. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7f68ffdb88c0c4b9d91f699d088cd81e62e94620..85beb9c7a02f7f561716d017f40ae24ad49a61a3 100644 +index 34189700b682377426bb70c9684f56115a6ab112..feac302358f627c682c3294fca1ae21c8e57b84b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1075,6 +1075,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b3ad3b459e0ad6db37cde0c7de481202f928ea64..6624fd85fc8b5efc22b71f7aa665bd8f62aad7ed 100644 +index 4f1a7c0e4f9ca1706f51096fe9533dc49c460205..fc4eeefa8c4dbb76e9a98ba9d67a942314b243fa 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2085,6 +2085,21 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0266-Add-more-Witch-API.patch b/patches/server/0263-Add-more-Witch-API.patch similarity index 100% rename from patches/server/0266-Add-more-Witch-API.patch rename to patches/server/0263-Add-more-Witch-API.patch diff --git a/patches/server/0267-Check-Drowned-for-Villager-Aggression-Config.patch b/patches/server/0264-Check-Drowned-for-Villager-Aggression-Config.patch similarity index 100% rename from patches/server/0267-Check-Drowned-for-Villager-Aggression-Config.patch rename to patches/server/0264-Check-Drowned-for-Villager-Aggression-Config.patch diff --git a/patches/server/0268-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/server/0265-Add-option-to-prevent-players-from-moving-into-unloa.patch similarity index 98% rename from patches/server/0268-Add-option-to-prevent-players-from-moving-into-unloa.patch rename to patches/server/0265-Add-option-to-prevent-players-from-moving-into-unloa.patch index ef155970a675..a4bb753a26f9 100644 --- a/patches/server/0268-Add-option-to-prevent-players-from-moving-into-unloa.patch +++ b/patches/server/0265-Add-option-to-prevent-players-from-moving-into-unloa.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add option to prevent players from moving into unloaded diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 222e9ab6fa6a40f7846451cee256d3dbbac54fde..91791fffa52dae34e6ab5e786bce7d0c6d077b73 100644 +index f0470d4711a7451ca0d524a7b8a90b8d08fa4632..4ac5ed4e7761b753c5eb60937ab325a72114a259 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -475,9 +475,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0269-Reset-players-airTicks-on-respawn.patch b/patches/server/0266-Reset-players-airTicks-on-respawn.patch similarity index 90% rename from patches/server/0269-Reset-players-airTicks-on-respawn.patch rename to patches/server/0266-Reset-players-airTicks-on-respawn.patch index 8dbbcde7109b..db14554690f6 100644 --- a/patches/server/0269-Reset-players-airTicks-on-respawn.patch +++ b/patches/server/0266-Reset-players-airTicks-on-respawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Reset players airTicks on respawn diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6624fd85fc8b5efc22b71f7aa665bd8f62aad7ed..4b163b9f6f6abc89ed62291e8df80d987bdc46e3 100644 +index fc4eeefa8c4dbb76e9a98ba9d67a942314b243fa..684cebce4bb611e3302d4fe0d26df96ee33dd228 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2560,6 +2560,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0270-Don-t-sleep-after-profile-lookups-if-not-needed.patch b/patches/server/0267-Don-t-sleep-after-profile-lookups-if-not-needed.patch similarity index 100% rename from patches/server/0270-Don-t-sleep-after-profile-lookups-if-not-needed.patch rename to patches/server/0267-Don-t-sleep-after-profile-lookups-if-not-needed.patch diff --git a/patches/server/0271-Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/patches/server/0268-Improve-Server-Thread-Pool-and-Thread-Priorities.patch similarity index 98% rename from patches/server/0271-Improve-Server-Thread-Pool-and-Thread-Priorities.patch rename to patches/server/0268-Improve-Server-Thread-Pool-and-Thread-Priorities.patch index 89b81942f068..a23bf2643cdf 100644 --- a/patches/server/0271-Improve-Server-Thread-Pool-and-Thread-Priorities.patch +++ b/patches/server/0268-Improve-Server-Thread-Pool-and-Thread-Priorities.patch @@ -92,7 +92,7 @@ index aa52b271bd556a29f774fde375b713d0d187521b..765e4bc00a0526aab6e263dae7233f63 return executorService; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 85beb9c7a02f7f561716d017f40ae24ad49a61a3..b57661a04bba7d32a338a0ee485f9ee8475ea246 100644 +index feac302358f627c682c3294fca1ae21c8e57b84b..f43459256120b1d9bdc0f0e5f4e299c51bfaa504 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -312,6 +312,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { diff --git a/patches/server/0278-force-entity-dismount-during-teleportation.patch b/patches/server/0275-force-entity-dismount-during-teleportation.patch similarity index 94% rename from patches/server/0278-force-entity-dismount-during-teleportation.patch rename to patches/server/0275-force-entity-dismount-during-teleportation.patch index 974887a1fd75..34cf60aa159f 100644 --- a/patches/server/0278-force-entity-dismount-during-teleportation.patch +++ b/patches/server/0275-force-entity-dismount-during-teleportation.patch @@ -20,7 +20,7 @@ this is going to be the best soultion all around. Improvements/suggestions welcome! diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bbb6abd5a51a0ffef41f2ee38eb6d7a21d1c6c23..4b9cb1c85ed17250f145e815d5c40cf09b34e4d2 100644 +index 72478a84e1dca85bb9694ea9816a1acc09c8ff5f..797c1c9db2fabd3f0ca6a37a17a368f63f144eb4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2605,11 +2605,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -72,7 +72,7 @@ index bbb6abd5a51a0ffef41f2ee38eb6d7a21d1c6c23..4b9cb1c85ed17250f145e815d5c40cf0 if (this.valid) { Bukkit.getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ab55d44e505fd50dae0000ce5a999f52f916103f..0290302c2b49b9fb262f8675f90010715fe53c50 100644 +index 966db97da239e3712d382d18c2a0c6c111b60ab2..98a26f97749d883f4ca04da27199f499211f0f33 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3471,9 +3471,15 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -93,10 +93,10 @@ index ab55d44e505fd50dae0000ce5a999f52f916103f..0290302c2b49b9fb262f8675f9001071 this.dismountVehicle(entity); } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 636c8d53e5c07f5d75881113b8cfb366a007a162..18394311d9d0bed5fa1ac09182947375380c7670 100644 +index f9d7ef3b689ce1411b922649f9ee64dca34d3c74..fc9eed382c8de51b298102cdcf584bf7e19ea968 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1149,7 +1149,13 @@ public abstract class Player extends LivingEntity { +@@ -1141,7 +1141,13 @@ public abstract class Player extends LivingEntity { @Override public void removeVehicle() { diff --git a/patches/server/0279-Add-more-Zombie-API.patch b/patches/server/0276-Add-more-Zombie-API.patch similarity index 100% rename from patches/server/0279-Add-more-Zombie-API.patch rename to patches/server/0276-Add-more-Zombie-API.patch diff --git a/patches/server/0280-Book-Size-Limits.patch b/patches/server/0277-Book-Size-Limits.patch similarity index 96% rename from patches/server/0280-Book-Size-Limits.patch rename to patches/server/0277-Book-Size-Limits.patch index d14c8dd2aafe..3df0a289584c 100644 --- a/patches/server/0280-Book-Size-Limits.patch +++ b/patches/server/0277-Book-Size-Limits.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Book Size Limits Puts some limits on the size of books. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 944bb7bf990dbd7198496a45c1babe8ad01e8eee..592493efdd799c76c753de825126c4f7b04a3179 100644 +index e9103f58207353b416da2901ab9443810305ae8f..4d907d43015b9a8aa5298ec9a641580f82058f1d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1026,6 +1026,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0281-Add-PlayerConnectionCloseEvent.patch b/patches/server/0278-Add-PlayerConnectionCloseEvent.patch similarity index 96% rename from patches/server/0281-Add-PlayerConnectionCloseEvent.patch rename to patches/server/0278-Add-PlayerConnectionCloseEvent.patch index db512740f6fa..766864cc5930 100644 --- a/patches/server/0281-Add-PlayerConnectionCloseEvent.patch +++ b/patches/server/0278-Add-PlayerConnectionCloseEvent.patch @@ -38,7 +38,7 @@ public net.minecraft.server.network.ServerLoginPacketListenerImpl$State public net.minecraft.server.network.ServerLoginPacketListenerImpl state diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 090a130676de3ab458df6bd1e08f0b755a3f685a..c521e2eab937f90085c4f1a98aab13d46720a07b 100644 +index 157f055df00faf3a7870df8109e84fdb12f55964..cd9ed68079abf103759865a3e2a038ac629a18ea 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -644,6 +644,26 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -69,7 +69,7 @@ index 090a130676de3ab458df6bd1e08f0b755a3f685a..c521e2eab937f90085c4f1a98aab13d4 } } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index dd4e97ff4c8fb2d2f251713271f5ac493574fcd9..e9d94abb77693a845ea6318b7045bd61a7a46feb 100644 +index b23b7560854a9904e28bbd06afccf5bb0dae16e2..ba0bdd685c49c02bcb1b6d840ddceb9049565d34 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -60,7 +60,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, diff --git a/patches/server/0282-Replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0279-Replace-OfflinePlayer-getLastPlayed.patch similarity index 96% rename from patches/server/0282-Replace-OfflinePlayer-getLastPlayed.patch rename to patches/server/0279-Replace-OfflinePlayer-getLastPlayed.patch index 2b7af6707ec2..58034c6934fa 100644 --- a/patches/server/0282-Replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/server/0279-Replace-OfflinePlayer-getLastPlayed.patch @@ -16,7 +16,7 @@ intent to remove) and replace it with two new methods, clearly named and documented as to their purpose. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4b163b9f6f6abc89ed62291e8df80d987bdc46e3..0afa8c7c826bb01f8a1139ced76fa599d205e045 100644 +index 684cebce4bb611e3302d4fe0d26df96ee33dd228..7451883595155fdeb0714fb12b98a0dc33348359 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -248,6 +248,7 @@ public class ServerPlayer extends Player { @@ -28,7 +28,7 @@ index 4b163b9f6f6abc89ed62291e8df80d987bdc46e3..0afa8c7c826bb01f8a1139ced76fa599 public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index af26a2b45cba7083f3bd7ddbbfde5bcfb30f1907..a1ab652fe6a838f8506c735815894ca16307264c 100644 +index e927448d7df9a99bf1d5184557ed57b8c32a2773..7a7abe0d87936d853ef32e85bd6a4ebb0dfa0ba7 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 { @@ -106,7 +106,7 @@ index e8490a58dd4d9bc39a5bb2f9fc109526e031b971..5f590575f95eff8bf0cdcafde7dee0e3 public Location getLastDeathLocation() { if (this.getData().contains("LastDeathLocation", 10)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 07076f9216fe904fe0f1f018b7e3862d5aab1398..f7ec6a6822608c51129c4bb3247179cce16a39c2 100644 +index 17ee1e953de98c56e06e97d995b0781c8aa5ecb0..e44fbfc43ac8e92d62f5ab8b13b45a3bfaf648ae 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -191,6 +191,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0283-Workaround-for-vehicle-tracking-issue-on-disconnect.patch b/patches/server/0280-Workaround-for-vehicle-tracking-issue-on-disconnect.patch similarity index 91% rename from patches/server/0283-Workaround-for-vehicle-tracking-issue-on-disconnect.patch rename to patches/server/0280-Workaround-for-vehicle-tracking-issue-on-disconnect.patch index c61cf07b90c0..902530fed755 100644 --- a/patches/server/0283-Workaround-for-vehicle-tracking-issue-on-disconnect.patch +++ b/patches/server/0280-Workaround-for-vehicle-tracking-issue-on-disconnect.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Workaround for vehicle tracking issue on disconnect diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0afa8c7c826bb01f8a1139ced76fa599d205e045..4b7aacb6abe20dbac735b8edc2ca3c10ed8bfbe6 100644 +index 7451883595155fdeb0714fb12b98a0dc33348359..ab59cfccd2addba45525a657df8c488664e10290 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1749,6 +1749,13 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0284-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch b/patches/server/0281-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch similarity index 92% rename from patches/server/0284-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch rename to patches/server/0281-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch index d80712d1b857..f0d1fc37325b 100644 --- a/patches/server/0284-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch +++ b/patches/server/0281-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch @@ -8,7 +8,7 @@ We just add a check to ensure that the CraftPlayer's handle is a ServerPlayer diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f7ec6a6822608c51129c4bb3247179cce16a39c2..0f0956066203f1598997e54b89b23c500951009c 100644 +index e44fbfc43ac8e92d62f5ab8b13b45a3bfaf648ae..c279d53a9ec8c3b77c1734c9321e3642dd16c47c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -247,8 +247,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0285-BlockDestroyEvent.patch b/patches/server/0282-BlockDestroyEvent.patch similarity index 94% rename from patches/server/0285-BlockDestroyEvent.patch rename to patches/server/0282-BlockDestroyEvent.patch index f9033b6bec0f..5eda372d62e0 100644 --- a/patches/server/0285-BlockDestroyEvent.patch +++ b/patches/server/0282-BlockDestroyEvent.patch @@ -11,7 +11,7 @@ floating in the air. This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 09f2bee26387641191ae7ee3b863ca4ae2106cb4..942b27decf93713b00e28a6360e62c090caa5a01 100644 +index 2a849e7125e2a6294aab49a436eeab8e4201fd15..a5bdbf62bdeb9fd505699a92701f9ed4724b6c85 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -31,6 +31,7 @@ import net.minecraft.nbt.CompoundTag; @@ -22,7 +22,7 @@ index 09f2bee26387641191ae7ee3b863ca4ae2106cb4..942b27decf93713b00e28a6360e62c09 import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.FullChunkStatus; import net.minecraft.server.level.ServerLevel; -@@ -668,9 +669,26 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -584,9 +585,26 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return false; } else { FluidState fluid = this.getFluidState(pos); diff --git a/patches/server/0286-Async-command-map-building.patch b/patches/server/0283-Async-command-map-building.patch similarity index 97% rename from patches/server/0286-Async-command-map-building.patch rename to patches/server/0283-Async-command-map-building.patch index 5ed527dc5a49..3a4b98f8c77d 100644 --- a/patches/server/0286-Async-command-map-building.patch +++ b/patches/server/0283-Async-command-map-building.patch @@ -53,7 +53,7 @@ index 15a5059994371da4850adcf726034a715b80efba..af7cb518a32a4d550eae833fdd5bb17f event.getPlayer().getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ee21ba8a6cd3e02bddbf090180b0e3186151813b..04e00e02848e15cad4efe8818da46de5d2f14080 100644 +index df04c80feb1f427737e53080b592e39153da18ad..36c74467a4527b9641e8eace03e93cd04381cd08 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -926,6 +926,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5b8d3588fa062df8ccbfcd08af7918ab5c8487a3..97a04d12acbf0d6eb8f9f4ecc45085570f74a0f5 100644 +index 8a7032d909452cec6c4b3e99b02fb00df5cea324..5f384b764aa361d9cd575b9910afea789cb054bc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2496,7 +2496,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2478,7 +2478,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public void onTrackingStart(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot @@ -37,7 +37,7 @@ index 5b8d3588fa062df8ccbfcd08af7918ab5c8487a3..97a04d12acbf0d6eb8f9f4ecc4508557 if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -2531,6 +2531,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2513,6 +2513,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::add); entity.inWorld = true; // CraftBukkit - Mark entity as in world entity.valid = true; // CraftBukkit diff --git a/patches/server/0356-Don-t-tick-dead-players.patch b/patches/server/0346-Don-t-tick-dead-players.patch similarity index 85% rename from patches/server/0356-Don-t-tick-dead-players.patch rename to patches/server/0346-Don-t-tick-dead-players.patch index cb3f8a4849a8..9b36f159d748 100644 --- a/patches/server/0356-Don-t-tick-dead-players.patch +++ b/patches/server/0346-Don-t-tick-dead-players.patch @@ -7,10 +7,10 @@ Causes sync chunk loads and who knows what all else. This is safe because Spectators are skipped in unloaded chunks too in vanilla. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 728cc9511c537cab93bdd716235b4fa0c27f29ef..d70316c45bd657243d6c998723f6bb1324b6a880 100644 +index e28b4976341157b8dbc7245ee91024fd1e025b09..285a9badc1a8b6582b808f0d474bcd22821e2c71 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -732,7 +732,7 @@ public class ServerPlayer extends Player { +@@ -728,7 +728,7 @@ public class ServerPlayer extends Player { public void doTick() { try { diff --git a/patches/server/0357-Dead-Player-s-shouldn-t-be-able-to-move.patch b/patches/server/0347-Dead-Player-s-shouldn-t-be-able-to-move.patch similarity index 84% rename from patches/server/0357-Dead-Player-s-shouldn-t-be-able-to-move.patch rename to patches/server/0347-Dead-Player-s-shouldn-t-be-able-to-move.patch index c0d2a6c8aaea..71eab615ff23 100644 --- a/patches/server/0357-Dead-Player-s-shouldn-t-be-able-to-move.patch +++ b/patches/server/0347-Dead-Player-s-shouldn-t-be-able-to-move.patch @@ -7,10 +7,10 @@ This fixes a lot of game state issues where packets were delayed for processing due to 1.15's new queue but processed while dead. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 18394311d9d0bed5fa1ac09182947375380c7670..ca7f6ffdbfc8c796c3a26108f281bef7af560f78 100644 +index fc9eed382c8de51b298102cdcf584bf7e19ea968..808a784a312438433fba0e65cbfd1afbad19fe86 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1161,7 +1161,7 @@ public abstract class Player extends LivingEntity { +@@ -1153,7 +1153,7 @@ public abstract class Player extends LivingEntity { @Override protected boolean isImmobile() { diff --git a/patches/server/0358-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0348-Don-t-move-existing-players-to-world-spawn.patch similarity index 88% rename from patches/server/0358-Don-t-move-existing-players-to-world-spawn.patch rename to patches/server/0348-Don-t-move-existing-players-to-world-spawn.patch index 77541b835876..5597570f862a 100644 --- a/patches/server/0358-Don-t-move-existing-players-to-world-spawn.patch +++ b/patches/server/0348-Don-t-move-existing-players-to-world-spawn.patch @@ -13,10 +13,10 @@ By skipping this, we avoid potential for a large spike on server start. public net.minecraft.server.level.ServerPlayer fudgeSpawnLocation(Lnet/minecraft/server/level/ServerLevel;)V diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3fbd65849649d77f9ef8920fcd7ab32c829f91c6..d7c5697ab781bb0c1cb3cb60685dca2466e966d3 100644 +index 285a9badc1a8b6582b808f0d474bcd22821e2c71..538fe865ad27796371d11123ce03602719a9be68 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -385,7 +385,7 @@ public class ServerPlayer extends Player { +@@ -381,7 +381,7 @@ public class ServerPlayer extends Player { this.stats = server.getPlayerList().getPlayerStats(this); this.advancements = server.getPlayerList().getPlayerAdvancements(this); this.setMaxUpStep(1.0F); @@ -25,7 +25,7 @@ index 3fbd65849649d77f9ef8920fcd7ab32c829f91c6..d7c5697ab781bb0c1cb3cb60685dca24 this.updateOptions(clientOptions); this.cachedSingleHashSet = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper -@@ -619,7 +619,7 @@ public class ServerPlayer extends Player { +@@ -615,7 +615,7 @@ public class ServerPlayer extends Player { position = Vec3.atCenterOf(world.getSharedSpawnPos()); } this.setLevel(world); @@ -35,7 +35,7 @@ index 3fbd65849649d77f9ef8920fcd7ab32c829f91c6..d7c5697ab781bb0c1cb3cb60685dca24 this.gameMode.setLevel((ServerLevel) world); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 71619422fdb212b3aad8cf64a3a417168e3e8d2d..05983ba80532f3c0235af7e712948edf4d8f021b 100644 +index 3f39d64fe673ae0f4b155a5f9e757c981ada96c1..c04db4712ac4127cffe250e404eed9198b377429 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -226,6 +226,7 @@ public abstract class PlayerList { diff --git a/patches/server/0359-Optimize-Pathfinding.patch b/patches/server/0349-Optimize-Pathfinding.patch similarity index 100% rename from patches/server/0359-Optimize-Pathfinding.patch rename to patches/server/0349-Optimize-Pathfinding.patch diff --git a/patches/server/0360-Reduce-Either-Optional-allocation.patch b/patches/server/0350-Reduce-Either-Optional-allocation.patch similarity index 100% rename from patches/server/0360-Reduce-Either-Optional-allocation.patch rename to patches/server/0350-Reduce-Either-Optional-allocation.patch diff --git a/patches/server/0361-Reduce-memory-footprint-of-CompoundTag.patch b/patches/server/0351-Reduce-memory-footprint-of-CompoundTag.patch similarity index 100% rename from patches/server/0361-Reduce-memory-footprint-of-CompoundTag.patch rename to patches/server/0351-Reduce-memory-footprint-of-CompoundTag.patch diff --git a/patches/server/0362-Prevent-opening-inventories-when-frozen.patch b/patches/server/0352-Prevent-opening-inventories-when-frozen.patch similarity index 94% rename from patches/server/0362-Prevent-opening-inventories-when-frozen.patch rename to patches/server/0352-Prevent-opening-inventories-when-frozen.patch index 7d9c54a36eee..2b8439c66fa0 100644 --- a/patches/server/0362-Prevent-opening-inventories-when-frozen.patch +++ b/patches/server/0352-Prevent-opening-inventories-when-frozen.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent opening inventories when frozen diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d7c5697ab781bb0c1cb3cb60685dca2466e966d3..36b4512c7f5e8d7a21b94b1eda3ec13a8d7113f2 100644 +index 538fe865ad27796371d11123ce03602719a9be68..2d8642f9a3dfa1a8a014fe773bbee93b86602677 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -701,7 +701,7 @@ public class ServerPlayer extends Player { +@@ -697,7 +697,7 @@ public class ServerPlayer extends Player { containerUpdateDelay = this.level().paperConfig().tickRates.containerUpdate; } // Paper end @@ -17,7 +17,7 @@ index d7c5697ab781bb0c1cb3cb60685dca2466e966d3..36b4512c7f5e8d7a21b94b1eda3ec13a this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason this.containerMenu = this.inventoryMenu; } -@@ -1556,7 +1556,7 @@ public class ServerPlayer extends Player { +@@ -1552,7 +1552,7 @@ public class ServerPlayer extends Player { } else { // CraftBukkit start this.containerMenu = container; diff --git a/patches/server/0363-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0353-Don-t-run-entity-collision-code-if-not-needed.patch similarity index 96% rename from patches/server/0363-Don-t-run-entity-collision-code-if-not-needed.patch rename to patches/server/0353-Don-t-run-entity-collision-code-if-not-needed.patch index ac9cee85c067..6b4ad7f09912 100644 --- a/patches/server/0363-Don-t-run-entity-collision-code-if-not-needed.patch +++ b/patches/server/0353-Don-t-run-entity-collision-code-if-not-needed.patch @@ -12,7 +12,7 @@ The entity's current team collision rule causes them to NEVER collide. Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b813357da558649c2244af524f79141fdc7f997e..ddbb823a5f1ac6318b6931fef2140b7e16e61056 100644 +index bc51c6d8b39907d89a4f65cd7a8266df1fceab8c..1d75c7d7232dedaf6451c5a1e5bf224174d21041 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3398,10 +3398,24 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0364-Implement-Player-Client-Options-API.patch b/patches/server/0354-Implement-Player-Client-Options-API.patch similarity index 96% rename from patches/server/0364-Implement-Player-Client-Options-API.patch rename to patches/server/0354-Implement-Player-Client-Options-API.patch index 2d4cec5a3fc1..aadbb6c53956 100644 --- a/patches/server/0364-Implement-Player-Client-Options-API.patch +++ b/patches/server/0354-Implement-Player-Client-Options-API.patch @@ -87,10 +87,10 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 36b4512c7f5e8d7a21b94b1eda3ec13a8d7113f2..0a75cba1b0b5a85826bd60615e3f09d2f41cc6a3 100644 +index 2d8642f9a3dfa1a8a014fe773bbee93b86602677..86aa09683423b4beae9986250b12359077703f4f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -386,7 +386,7 @@ public class ServerPlayer extends Player { +@@ -382,7 +382,7 @@ public class ServerPlayer extends Player { this.advancements = server.getPlayerList().getPlayerAdvancements(this); this.setMaxUpStep(1.0F); // this.fudgeSpawnLocation(world); // Paper - Don't move existing players to world spawn @@ -99,7 +99,7 @@ index 36b4512c7f5e8d7a21b94b1eda3ec13a8d7113f2..0a75cba1b0b5a85826bd60615e3f09d2 this.cachedSingleHashSet = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper -@@ -2052,7 +2052,23 @@ public class ServerPlayer extends Player { +@@ -2048,7 +2048,23 @@ public class ServerPlayer extends Player { } } @@ -123,7 +123,7 @@ index 36b4512c7f5e8d7a21b94b1eda3ec13a8d7113f2..0a75cba1b0b5a85826bd60615e3f09d2 // CraftBukkit start if (this.getMainArm() != clientOptions.mainHand()) { PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), this.getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT); -@@ -2064,6 +2080,11 @@ public class ServerPlayer extends Player { +@@ -2060,6 +2076,11 @@ public class ServerPlayer extends Player { this.server.server.getPluginManager().callEvent(new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), this.language, clientOptions.language())); // Paper } // CraftBukkit end @@ -136,7 +136,7 @@ index 36b4512c7f5e8d7a21b94b1eda3ec13a8d7113f2..0a75cba1b0b5a85826bd60615e3f09d2 this.adventure$locale = net.kyori.adventure.translation.Translator.parseLocale(this.language); // Paper this.requestedViewDistance = clientOptions.viewDistance(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0f0956066203f1598997e54b89b23c500951009c..e05d22471a80f5afba4634116aff9dcf636f2501 100644 +index c279d53a9ec8c3b77c1734c9321e3642dd16c47c..4de49a81238ca3d550f85fdcdf921c17f992f65a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -609,6 +609,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0365-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/patches/server/0355-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch similarity index 100% rename from patches/server/0365-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch rename to patches/server/0355-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch diff --git a/patches/server/0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch b/patches/server/0356-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch similarity index 94% rename from patches/server/0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch rename to patches/server/0356-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch index d0d27efd056b..01b9259fe231 100644 --- a/patches/server/0366-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch +++ b/patches/server/0356-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch @@ -31,10 +31,10 @@ delays anymore. public net.minecraft.server.level.ChunkMap addEntity(Lnet/minecraft/world/entity/Entity;)V diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index e3146ae94ae55764fcd7ec650a44d457889c179d..9ddad716d641d649e09c094795240bd2e8c926b9 100644 +index ad98c74dc6d032bedd01fffd9cdb6c8f8a267c7e..1ad4e5a0a4d236012c1dfb0dbffdacd0f134b72c 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -996,6 +996,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -912,6 +912,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return; } // Paper end - ignore and warn about illegal addEntity calls instead of crashing server @@ -43,10 +43,10 @@ index e3146ae94ae55764fcd7ec650a44d457889c179d..9ddad716d641d649e09c094795240bd2 EntityType entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0a75cba1b0b5a85826bd60615e3f09d2f41cc6a3..b5dcb539548ca35d7c8a076d474a5c679a61c071 100644 +index 86aa09683423b4beae9986250b12359077703f4f..5c9a6fe2f2d67ff4e27c691ebc97e7a50d62fc22 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -271,6 +271,7 @@ public class ServerPlayer extends Player { +@@ -267,6 +267,7 @@ public class ServerPlayer extends Player { public double maxHealthCache; public boolean joining = true; public boolean sentListPacket = false; diff --git a/patches/server/0367-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0357-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch similarity index 96% rename from patches/server/0367-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch rename to patches/server/0357-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch index 29df490d6ec6..7b2f30c00f22 100644 --- a/patches/server/0367-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch +++ b/patches/server/0357-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch @@ -10,7 +10,7 @@ Co-authored-by: Wyatt Childers Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index dc6774fdc215de6a157b64678aec5a79344084e9..7750c1980ea7e211a35ad077b95ab0e206900e17 100644 +index 4be466a21fb1fb936e1eaa6351e30a53c7b5cbb4..5657999a85b9b9dfb48a51170d5fa3d9c37263ad 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -194,7 +194,7 @@ public abstract class PlayerList { @@ -87,10 +87,10 @@ index dc6774fdc215de6a157b64678aec5a79344084e9..7750c1980ea7e211a35ad077b95ab0e2 } // Paper end - Entity#getEntitySpawnReason diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b6b4be7f49ae756ebbda59e55dee98000aec2314..0d7dff8ca6a3d68fdcbf300fb2f65b1d08c429b2 100644 +index b40eed864faf11962efc1e0df417074eb8737c6b..71b499843b25f78491ab2f7dad97523b9facd77c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2335,27 +2335,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2324,27 +2324,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // CraftBukkit end diff --git a/patches/server/0368-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0358-Add-PlayerAttackEntityCooldownResetEvent.patch similarity index 95% rename from patches/server/0368-Add-PlayerAttackEntityCooldownResetEvent.patch rename to patches/server/0358-Add-PlayerAttackEntityCooldownResetEvent.patch index cf0433593ca8..d4b6bd254abc 100644 --- a/patches/server/0368-Add-PlayerAttackEntityCooldownResetEvent.patch +++ b/patches/server/0358-Add-PlayerAttackEntityCooldownResetEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerAttackEntityCooldownResetEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ddbb823a5f1ac6318b6931fef2140b7e16e61056..e309d74047b039e595cb59396710f68490a2249a 100644 +index 1d75c7d7232dedaf6451c5a1e5bf224174d21041..72ce49ead51a846013c887b39b80abb7d141cb0f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2190,7 +2190,16 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0369-Don-t-fire-BlockFade-on-worldgen-threads.patch b/patches/server/0359-Don-t-fire-BlockFade-on-worldgen-threads.patch similarity index 100% rename from patches/server/0369-Don-t-fire-BlockFade-on-worldgen-threads.patch rename to patches/server/0359-Don-t-fire-BlockFade-on-worldgen-threads.patch diff --git a/patches/server/0370-Add-phantom-creative-and-insomniac-controls.patch b/patches/server/0360-Add-phantom-creative-and-insomniac-controls.patch similarity index 100% rename from patches/server/0370-Add-phantom-creative-and-insomniac-controls.patch rename to patches/server/0360-Add-phantom-creative-and-insomniac-controls.patch diff --git a/patches/server/0371-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0361-Fix-item-duplication-and-teleport-issues.patch similarity index 95% rename from patches/server/0371-Fix-item-duplication-and-teleport-issues.patch rename to patches/server/0361-Fix-item-duplication-and-teleport-issues.patch index 64cceef8a17d..13b35c9903fe 100644 --- a/patches/server/0371-Fix-item-duplication-and-teleport-issues.patch +++ b/patches/server/0361-Fix-item-duplication-and-teleport-issues.patch @@ -16,10 +16,10 @@ So even if something NEW comes up, it would be impossible to drop the same item twice because the source was destroyed. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0d7dff8ca6a3d68fdcbf300fb2f65b1d08c429b2..d0f46b955041487ce1cec4a9a5ed8808ef4d9e9f 100644 +index 71b499843b25f78491ab2f7dad97523b9facd77c..d2526510202c17006f22b148e4a1305714a4effd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2465,11 +2465,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2454,11 +2454,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -34,7 +34,7 @@ index 0d7dff8ca6a3d68fdcbf300fb2f65b1d08c429b2..d0f46b955041487ce1cec4a9a5ed8808 entityitem.setDefaultPickUpDelay(); // CraftBukkit start -@@ -3269,6 +3270,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3258,6 +3259,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public Entity teleportTo(ServerLevel worldserver, Vec3 location) { // CraftBukkit end @@ -47,7 +47,7 @@ index 0d7dff8ca6a3d68fdcbf300fb2f65b1d08c429b2..d0f46b955041487ce1cec4a9a5ed8808 if (this.level() instanceof ServerLevel && !this.isRemoved()) { this.level().getProfiler().push("changeDimension"); // CraftBukkit start -@@ -3295,6 +3302,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3284,6 +3291,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit end this.level().getProfiler().popPush("reloading"); @@ -59,7 +59,7 @@ index 0d7dff8ca6a3d68fdcbf300fb2f65b1d08c429b2..d0f46b955041487ce1cec4a9a5ed8808 Entity entity = this.getType().create(worldserver); if (entity != null) { -@@ -3312,10 +3324,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3301,10 +3313,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit start - Forward the CraftEntity to the new entity this.getBukkitEntity().setHandle(entity); entity.bukkitEntity = this.getBukkitEntity(); @@ -70,7 +70,7 @@ index 0d7dff8ca6a3d68fdcbf300fb2f65b1d08c429b2..d0f46b955041487ce1cec4a9a5ed8808 // CraftBukkit end } -@@ -3434,7 +3442,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3423,7 +3431,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean canChangeDimensions() { @@ -80,7 +80,7 @@ index 0d7dff8ca6a3d68fdcbf300fb2f65b1d08c429b2..d0f46b955041487ce1cec4a9a5ed8808 public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e309d74047b039e595cb59396710f68490a2249a..6114cc60d8cb122b708ae65db86bfd1ea2ea82c1 100644 +index 72ce49ead51a846013c887b39b80abb7d141cb0f..b7bf58ddbc02989777c5c8dd58f6dd34acf57507 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1705,9 +1705,9 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0372-Villager-Restocks-API.patch b/patches/server/0362-Villager-Restocks-API.patch similarity index 100% rename from patches/server/0372-Villager-Restocks-API.patch rename to patches/server/0362-Villager-Restocks-API.patch diff --git a/patches/server/0373-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0363-Validate-PickItem-Packet-and-kick-for-invalid.patch similarity index 100% rename from patches/server/0373-Validate-PickItem-Packet-and-kick-for-invalid.patch rename to patches/server/0363-Validate-PickItem-Packet-and-kick-for-invalid.patch diff --git a/patches/server/0374-Expose-game-version.patch b/patches/server/0364-Expose-game-version.patch similarity index 89% rename from patches/server/0374-Expose-game-version.patch rename to patches/server/0364-Expose-game-version.patch index 169ab7f81044..e0af77195c2b 100644 --- a/patches/server/0374-Expose-game-version.patch +++ b/patches/server/0364-Expose-game-version.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose game version diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f88426ce7f1b4ebc65a39c19900e75de22c5903b..28fe0834c6287181cc21b9ceedc2dd1074db984e 100644 +index edec1e0c931eff59d69890bd48355a0e15b3a001..449f6e07c9693a32b9159657baf038a61391d24f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -577,6 +577,13 @@ public final class CraftServer implements Server { diff --git a/patches/server/0375-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/patches/server/0365-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch similarity index 100% rename from patches/server/0375-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch rename to patches/server/0365-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch diff --git a/patches/server/0376-misc-debugging-dumps.patch b/patches/server/0366-misc-debugging-dumps.patch similarity index 96% rename from patches/server/0376-misc-debugging-dumps.patch rename to patches/server/0366-misc-debugging-dumps.patch index 1553a974f132..127daea30c7d 100644 --- a/patches/server/0376-misc-debugging-dumps.patch +++ b/patches/server/0366-misc-debugging-dumps.patch @@ -42,7 +42,7 @@ index 40ff3090fb17fb0f01a9b52639fb783ea57ce6b6..d39743d9626eb01c942194387dafb110 StackTraceElement[] astacktraceelement = exception.getStackTrace(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 831998b12c296d5731ae09d4abb5548201226c77..0b79a72b8b2325416cd1a5743a27787e93ffa644 100644 +index a8115ac8e938631448d331b6d12d43a1e9646d68..480f4946658c3cc9c3c5acc1168a182297eb2bd7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -914,6 +914,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { @@ -514,8 +514,8 @@ index 128debf837da32d27ba37184162e7b3bfb463812..6cfb814ecaf12161ec2e2545560453d7 + return new DefaultEventLoopGroup(0, (new ThreadFactoryBuilder()).setNameFormat("Netty Local Client IO #%d").setDaemon(true).setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(LOGGER)).build()); // Paper }); private final PacketFlow receiving; - private final Queue pendingActions = Queues.newConcurrentLinkedQueue(); -@@ -211,7 +211,7 @@ public class Connection extends SimpleChannelInboundHandler> { + private final Queue> pendingActions = Queues.newConcurrentLinkedQueue(); +@@ -207,7 +207,7 @@ public class Connection extends SimpleChannelInboundHandler> { } } @@ -570,7 +570,7 @@ index d130f843975236018df4fa2ccc3ca6aaca7a06b8..76f31845fe50200d09e5ab6a6c08da00 // Paper end - Debugging this.connection.send(new ClientboundDisconnectPacket(ServerConfigurationPacketListenerImpl.DISCONNECT_REASON_INVALID_DATA)); diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 9db7fc8c053aa9e929fa6dddf70290a8f7ad5273..dfa07c9ede9d748a05ee47826bdbcf7390ec8219 100644 +index 187b2cf175ba5cea94158d29b53993dc5a7c5b94..3b6bafb242d2623c15f26acdacd036478c7dc214 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -52,10 +52,10 @@ public class ServerConnectionListener { @@ -609,10 +609,10 @@ index e697b8f7b165d2394d8155cbee7453e23ac2bee4..6706ac701963fed4798247e6e835b06f } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 873e8de4638d14ce9052e3978f528e10fa591924..6e1006675339551ca499a57a8f8553020f16a4fa 100644 +index 749a056c17efb0788ac671d536658fc84b105ff2..90d6376f0441505a4c5f32d620827dfe233a5783 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -599,7 +599,7 @@ public class LevelChunk extends ChunkAccess { +@@ -582,7 +582,7 @@ public class LevelChunk extends ChunkAccess { + " (" + getBlockState(blockposition) + ") where there was no entity tile!\n" + "Chunk coordinates: " + (this.chunkPos.x * 16) + "," + (this.chunkPos.z * 16) + "\nWorld: " + level.getLevel().dimension().location()); diff --git a/patches/server/0379-Implement-Mob-Goal-API.patch b/patches/server/0369-Implement-Mob-Goal-API.patch similarity index 99% rename from patches/server/0379-Implement-Mob-Goal-API.patch rename to patches/server/0369-Implement-Mob-Goal-API.patch index 2605232bdc9d..c16e1d23bd63 100644 --- a/patches/server/0379-Implement-Mob-Goal-API.patch +++ b/patches/server/0369-Implement-Mob-Goal-API.patch @@ -768,7 +768,7 @@ index 6667ecc4b7eded4e20a415cef1e1b1179e6710b8..16f9a98b8a939e5ca7e2dc04f87134a7 LOOK, JUMP, diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 42548bcd1a890e713c4b5103f36a5a9facc703d0..8997f35d4e3d66f4ac2e1b774e7869771d938dde 100644 +index 7b15b13fc0e5d22e1ba348fff05502cb33b1d46b..e2f0bb22882b571cca71ea1d82aa12bffdfdb418 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2881,5 +2881,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0380-Add-villager-reputation-API.patch b/patches/server/0370-Add-villager-reputation-API.patch similarity index 100% rename from patches/server/0380-Add-villager-reputation-API.patch rename to patches/server/0370-Add-villager-reputation-API.patch diff --git a/patches/server/0381-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0371-Option-for-maximum-exp-value-when-merging-orbs.patch similarity index 100% rename from patches/server/0381-Option-for-maximum-exp-value-when-merging-orbs.patch rename to patches/server/0371-Option-for-maximum-exp-value-when-merging-orbs.patch diff --git a/patches/server/0382-ExperienceOrbMergeEvent.patch b/patches/server/0372-ExperienceOrbMergeEvent.patch similarity index 100% rename from patches/server/0382-ExperienceOrbMergeEvent.patch rename to patches/server/0372-ExperienceOrbMergeEvent.patch diff --git a/patches/server/0383-Fix-PotionEffect-ignores-icon-flag.patch b/patches/server/0373-Fix-PotionEffect-ignores-icon-flag.patch similarity index 100% rename from patches/server/0383-Fix-PotionEffect-ignores-icon-flag.patch rename to patches/server/0373-Fix-PotionEffect-ignores-icon-flag.patch diff --git a/patches/server/0384-Potential-bed-API.patch b/patches/server/0374-Potential-bed-API.patch similarity index 100% rename from patches/server/0384-Potential-bed-API.patch rename to patches/server/0374-Potential-bed-API.patch diff --git a/patches/server/0385-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0375-Wait-for-Async-Tasks-during-shutdown.patch similarity index 93% rename from patches/server/0385-Wait-for-Async-Tasks-during-shutdown.patch rename to patches/server/0375-Wait-for-Async-Tasks-during-shutdown.patch index 803c2f5e89fc..82ad4e32b90d 100644 --- a/patches/server/0385-Wait-for-Async-Tasks-during-shutdown.patch +++ b/patches/server/0375-Wait-for-Async-Tasks-during-shutdown.patch @@ -10,7 +10,7 @@ Adds a 5 second grace period for any async tasks to finish and warns if any are still running after that delay just as reload does. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 0b79a72b8b2325416cd1a5743a27787e93ffa644..87966edd7fb8b936c55659257291478c862e2542 100644 +index 480f4946658c3cc9c3c5acc1168a182297eb2bd7..b9dbedd118a9287f659d2e785c3a582e817e4e36 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -941,6 +941,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d0f46b955041487ce1cec4a9a5ed8808ef4d9e9f..7040b3b9b743b4f88f00da698e37afa42f277990 100644 +index d2526510202c17006f22b148e4a1305714a4effd..a6fc2a67027b749b9f87110aa15b339bdc58a72b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -693,8 +693,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -691,8 +691,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void setPos(double x, double y, double z) { @@ -20,7 +20,7 @@ index d0f46b955041487ce1cec4a9a5ed8808ef4d9e9f..7040b3b9b743b4f88f00da698e37afa4 } protected AABB makeBoundingBox() { -@@ -4206,7 +4206,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4195,7 +4195,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.getZ((2.0D * this.random.nextDouble() - 1.0D) * widthScale); } @@ -50,7 +50,7 @@ index d0f46b955041487ce1cec4a9a5ed8808ef4d9e9f..7040b3b9b743b4f88f00da698e37afa4 // Paper start - rewrite chunk system if (this.updatingSectionStatus) { LOGGER.error("Refusing to update position for entity " + this + " to position " + new Vec3(x, y, z) + " since it is processing a section status update", new Throwable()); -@@ -4230,6 +4252,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4219,6 +4241,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.levelCallback.onMove(); } diff --git a/patches/server/0403-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0393-Fix-Per-World-Difficulty-Remembering-Difficulty.patch similarity index 93% rename from patches/server/0403-Fix-Per-World-Difficulty-Remembering-Difficulty.patch rename to patches/server/0393-Fix-Per-World-Difficulty-Remembering-Difficulty.patch index cfa2f0e060f2..03be76b17ba4 100644 --- a/patches/server/0403-Fix-Per-World-Difficulty-Remembering-Difficulty.patch +++ b/patches/server/0393-Fix-Per-World-Difficulty-Remembering-Difficulty.patch @@ -8,7 +8,7 @@ makes it so that the server keeps the last difficulty used instead of restoring the server.properties every single load. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 87966edd7fb8b936c55659257291478c862e2542..74ce2fc0256c1747bb1638eea8947d3416f23ab8 100644 +index b9dbedd118a9287f659d2e785c3a582e817e4e36..e824ac0c487ab42c68cbf1a6f7c24d4b689809c3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -825,7 +825,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> { net.minecraft.world.level.chunk.LevelChunk chunk = (net.minecraft.world.level.chunk.LevelChunk)c; diff --git a/patches/server/0407-incremental-chunk-and-player-saving.patch b/patches/server/0397-incremental-chunk-and-player-saving.patch similarity index 95% rename from patches/server/0407-incremental-chunk-and-player-saving.patch rename to patches/server/0397-incremental-chunk-and-player-saving.patch index 44ffbfc04ca4..6c1f9994f660 100644 --- a/patches/server/0407-incremental-chunk-and-player-saving.patch +++ b/patches/server/0397-incremental-chunk-and-player-saving.patch @@ -56,7 +56,7 @@ index e824ac0c487ab42c68cbf1a6f7c24d4b689809c3..7d265471685e34b434ab25bee14854f6 // Paper start - move executeAll() into full server tick timing try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index a2220291f6d0726019187c2fc93bca801a3f0610..25009accd401fc3860c57cac1ef628b233e746e7 100644 +index 5bea335653d3cd45354dc67b160a6bf5ce907f41..35f463e5237d12e42f7a8b8c177af3236d2e7986 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -450,6 +450,15 @@ public class ServerChunkCache extends ChunkSource { @@ -76,10 +76,10 @@ index a2220291f6d0726019187c2fc93bca801a3f0610..25009accd401fc3860c57cac1ef628b2 public void close() throws IOException { // CraftBukkit start diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 97a04d12acbf0d6eb8f9f4ecc45085570f74a0f5..9f9bb129b7450a9862293e83fefe0acb8986235d 100644 +index 5f384b764aa361d9cd575b9910afea789cb054bc..dcc411b3c7d5e5a675c8e21adef25e821ffd7cdd 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1301,6 +1301,37 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1283,6 +1283,37 @@ public class ServerLevel extends Level implements WorldGenLevel { return !this.server.isUnderSpawnProtection(this, pos, player) && this.getWorldBorder().isWithinBounds(pos); } @@ -118,7 +118,7 @@ index 97a04d12acbf0d6eb8f9f4ecc45085570f74a0f5..9f9bb129b7450a9862293e83fefe0acb // Paper start - rewrite chunk system - add close param this.save(progressListener, flush, savingDisabled, false); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6020da902ef3c05d38116c302e3848aa1828e1fa..553cdac6fef1626d0eac86ca971fcf65a17839f8 100644 +index 4ce4a620e07ed30a28716adc4076fc5efbcf9b62..897fa2857f070a976cc95695d7009f663a6bc89d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -190,6 +190,7 @@ import org.bukkit.inventory.MainHand; diff --git a/patches/server/0408-Support-old-UUID-format-for-NBT.patch b/patches/server/0398-Support-old-UUID-format-for-NBT.patch similarity index 100% rename from patches/server/0408-Support-old-UUID-format-for-NBT.patch rename to patches/server/0398-Support-old-UUID-format-for-NBT.patch diff --git a/patches/server/0409-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0399-Convert-legacy-attributes-in-Item-Meta.patch similarity index 100% rename from patches/server/0409-Convert-legacy-attributes-in-Item-Meta.patch rename to patches/server/0399-Convert-legacy-attributes-in-Item-Meta.patch diff --git a/patches/server/0410-Support-components-in-ItemMeta.patch b/patches/server/0400-Support-components-in-ItemMeta.patch similarity index 100% rename from patches/server/0410-Support-components-in-ItemMeta.patch rename to patches/server/0400-Support-components-in-ItemMeta.patch diff --git a/patches/server/0411-Improve-fix-EntityTargetLivingEntityEvent.patch b/patches/server/0401-Improve-fix-EntityTargetLivingEntityEvent.patch similarity index 100% rename from patches/server/0411-Improve-fix-EntityTargetLivingEntityEvent.patch rename to patches/server/0401-Improve-fix-EntityTargetLivingEntityEvent.patch diff --git a/patches/server/0412-Add-entity-liquid-API.patch b/patches/server/0402-Add-entity-liquid-API.patch similarity index 100% rename from patches/server/0412-Add-entity-liquid-API.patch rename to patches/server/0402-Add-entity-liquid-API.patch diff --git a/patches/server/0413-Update-itemstack-legacy-name-and-lore.patch b/patches/server/0403-Update-itemstack-legacy-name-and-lore.patch similarity index 100% rename from patches/server/0413-Update-itemstack-legacy-name-and-lore.patch rename to patches/server/0403-Update-itemstack-legacy-name-and-lore.patch diff --git a/patches/server/0414-Add-PrepareResultEvent.patch b/patches/server/0404-Add-PrepareResultEvent.patch similarity index 100% rename from patches/server/0414-Add-PrepareResultEvent.patch rename to patches/server/0404-Add-PrepareResultEvent.patch diff --git a/patches/server/0415-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0405-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch similarity index 91% rename from patches/server/0415-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch rename to patches/server/0405-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch index a2dfcd3223c0..d46fd307e0d2 100644 --- a/patches/server/0415-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch +++ b/patches/server/0405-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't check chunk for portal on world gen entity add diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6114cc60d8cb122b708ae65db86bfd1ea2ea82c1..b691d188c741c8acf8d20bc9e6184b6445ba6332 100644 +index b7bf58ddbc02989777c5c8dd58f6dd34acf57507..115dbe71ff1e9996e8307a389569303a320101f4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3510,7 +3510,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0416-Fix-arrows-never-despawning-MC-125757.patch b/patches/server/0406-Fix-arrows-never-despawning-MC-125757.patch similarity index 91% rename from patches/server/0416-Fix-arrows-never-despawning-MC-125757.patch rename to patches/server/0406-Fix-arrows-never-despawning-MC-125757.patch index abed4b5fa651..f18ca776196c 100644 --- a/patches/server/0416-Fix-arrows-never-despawning-MC-125757.patch +++ b/patches/server/0406-Fix-arrows-never-despawning-MC-125757.patch @@ -9,7 +9,7 @@ instead of getting stuck in a never despawn state (bubble columns, etc). diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 385cbee1d30735152cccb0d85a77a12fabfd9427..004c130fc03dc01ef75fabdb4ef1ef711e33cb95 100644 +index f3861cea4eb6a39fa16936383f8dabc6689a58a9..0e1d4bd6f70e439b33eca57bf06e9e090825f58a 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -207,6 +207,7 @@ public abstract class AbstractArrow extends Projectile { diff --git a/patches/server/0417-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0407-Thread-Safe-Vanilla-Command-permission-checking.patch similarity index 100% rename from patches/server/0417-Thread-Safe-Vanilla-Command-permission-checking.patch rename to patches/server/0407-Thread-Safe-Vanilla-Command-permission-checking.patch diff --git a/patches/server/0418-Fix-SPIGOT-5989.patch b/patches/server/0408-Fix-SPIGOT-5989.patch similarity index 100% rename from patches/server/0418-Fix-SPIGOT-5989.patch rename to patches/server/0408-Fix-SPIGOT-5989.patch diff --git a/patches/server/0419-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/patches/server/0409-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch similarity index 100% rename from patches/server/0419-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch rename to patches/server/0409-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch diff --git a/patches/server/0420-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch b/patches/server/0410-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch similarity index 100% rename from patches/server/0420-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch rename to patches/server/0410-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch diff --git a/patches/server/0421-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/patches/server/0411-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch similarity index 100% rename from patches/server/0421-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch rename to patches/server/0411-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch diff --git a/patches/server/0422-Optimize-NetworkManager-Exception-Handling.patch b/patches/server/0412-Optimize-NetworkManager-Exception-Handling.patch similarity index 100% rename from patches/server/0422-Optimize-NetworkManager-Exception-Handling.patch rename to patches/server/0412-Optimize-NetworkManager-Exception-Handling.patch diff --git a/patches/server/0423-Fix-some-rails-connecting-improperly.patch b/patches/server/0413-Fix-some-rails-connecting-improperly.patch similarity index 100% rename from patches/server/0423-Fix-some-rails-connecting-improperly.patch rename to patches/server/0413-Fix-some-rails-connecting-improperly.patch diff --git a/patches/server/0424-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch b/patches/server/0414-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch similarity index 100% rename from patches/server/0424-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch rename to patches/server/0414-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch diff --git a/patches/server/0425-Brand-support.patch b/patches/server/0415-Brand-support.patch similarity index 95% rename from patches/server/0425-Brand-support.patch rename to patches/server/0415-Brand-support.patch index f08785872250..687d90e2ef87 100644 --- a/patches/server/0425-Brand-support.patch +++ b/patches/server/0415-Brand-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 553cdac6fef1626d0eac86ca971fcf65a17839f8..2834161f763a556400f0c8acdcc7e88c4317d318 100644 +index 897fa2857f070a976cc95695d7009f663a6bc89d..27f1d336b2493bf475a388f63cce8d99408acea3 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -278,6 +278,7 @@ public class ServerPlayer extends Player { +@@ -274,6 +274,7 @@ public class ServerPlayer extends Player { public boolean isRealPlayer; // Paper public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent @@ -57,7 +57,7 @@ index e69043316372d98b122ed3788fda79cdd36849e8..6597e6e9987ddb5906909c22704fdfb6 } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e05d22471a80f5afba4634116aff9dcf636f2501..878744936f1d2c7bc3ad13bf29d422cc31d0f8d4 100644 +index 4de49a81238ca3d550f85fdcdf921c17f992f65a..ac908edaad2e58e4813f236e938e9d305f93dbe6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3030,6 +3030,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0426-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0416-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 100% rename from patches/server/0426-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/server/0416-Add-playPickupItemAnimation-to-LivingEntity.patch diff --git a/patches/server/0427-Don-t-require-FACING-data.patch b/patches/server/0417-Don-t-require-FACING-data.patch similarity index 100% rename from patches/server/0427-Don-t-require-FACING-data.patch rename to patches/server/0417-Don-t-require-FACING-data.patch diff --git a/patches/server/0428-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0418-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 91% rename from patches/server/0428-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/server/0418-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index a657c722fc61..076d1e6550b3 100644 --- a/patches/server/0428-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/patches/server/0418-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9f9bb129b7450a9862293e83fefe0acb8986235d..10ccdfa28d5b9da5c380f7417a6bc800f642e390 100644 +index dcc411b3c7d5e5a675c8e21adef25e821ffd7cdd..b455472d258ce59252cb4f93cbef73d3c2da342e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2014,9 +2014,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1996,9 +1996,11 @@ public class ServerLevel extends Level implements WorldGenLevel { public void setDefaultSpawnPos(BlockPos pos, float angle) { // Paper start - Configurable Keep Spawn Loaded range per world BlockPos prevSpawn = this.getSharedSpawnPos(); @@ -21,7 +21,7 @@ index 9f9bb129b7450a9862293e83fefe0acb8986235d..10ccdfa28d5b9da5c380f7417a6bc800 // if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add this.removeTicketsForSpawn(this.paperConfig().spawn.keepSpawnLoadedRange * 16, prevSpawn); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index b91205b8459cfc78fce4b98e04ae4517eef22e20..705c1b2bba2b60b260c59a6953151f34cdfc8960 100644 +index f248735d48aa5c430752426e9dc02c1ae6644aaf..f0f6f2b5f474881c865f1a2098611cd395249530 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -262,12 +262,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0429-Add-moon-phase-API.patch b/patches/server/0419-Add-moon-phase-API.patch similarity index 100% rename from patches/server/0429-Add-moon-phase-API.patch rename to patches/server/0419-Add-moon-phase-API.patch diff --git a/patches/server/0430-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0420-Do-not-let-the-server-load-chunks-from-newer-version.patch similarity index 95% rename from patches/server/0430-Do-not-let-the-server-load-chunks-from-newer-version.patch rename to patches/server/0420-Do-not-let-the-server-load-chunks-from-newer-version.patch index 0d84c00975a1..ba7f1213ae13 100644 --- a/patches/server/0430-Do-not-let-the-server-load-chunks-from-newer-version.patch +++ b/patches/server/0420-Do-not-let-the-server-load-chunks-from-newer-version.patch @@ -9,7 +9,7 @@ the game, immediately stop the server to prevent data corruption. You can override this functionality at your own peril. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 0341d9e951366b77e7eeac7cdaa950af62c88aab..0ef8ecc7932107029d85e961e2e747d7312d816e 100644 +index 7862caa0f787634cec14af81fe1f39803a43f115..1650541abeedce04ddeddfed15411b64a01be452 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -124,8 +124,20 @@ public class ChunkSerializer { diff --git a/patches/server/0431-Prevent-headless-pistons-from-being-created.patch b/patches/server/0421-Prevent-headless-pistons-from-being-created.patch similarity index 100% rename from patches/server/0431-Prevent-headless-pistons-from-being-created.patch rename to patches/server/0421-Prevent-headless-pistons-from-being-created.patch diff --git a/patches/server/0432-Add-BellRingEvent.patch b/patches/server/0422-Add-BellRingEvent.patch similarity index 100% rename from patches/server/0432-Add-BellRingEvent.patch rename to patches/server/0422-Add-BellRingEvent.patch diff --git a/patches/server/0433-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0423-Add-zombie-targets-turtle-egg-config.patch similarity index 100% rename from patches/server/0433-Add-zombie-targets-turtle-egg-config.patch rename to patches/server/0423-Add-zombie-targets-turtle-egg-config.patch diff --git a/patches/server/0434-Buffer-joins-to-world.patch b/patches/server/0424-Buffer-joins-to-world.patch similarity index 91% rename from patches/server/0434-Buffer-joins-to-world.patch rename to patches/server/0424-Buffer-joins-to-world.patch index a8b0b7d087f8..04aef85833db 100644 --- a/patches/server/0434-Buffer-joins-to-world.patch +++ b/patches/server/0424-Buffer-joins-to-world.patch @@ -8,12 +8,12 @@ the world per tick, this attempts to reduce the impact that join floods has on the server diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 6cfb814ecaf12161ec2e2545560453d7dd41e2da..a25090d277f586c932e975068636ccd6cc43b204 100644 +index dc9f8625e15c49ea64d2b7d9515d36d5ef834820..777681a58417684a35a875c869ab22e50bb27da5 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -498,14 +498,29 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -415,14 +415,29 @@ public class Connection extends SimpleChannelInboundHandler> { + } } - // Paper end - Optimize network + private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world + private static int joinAttemptsThisTick; // Paper - Buffer joins to world diff --git a/patches/server/0435-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0425-Fix-hex-colors-not-working-in-some-kick-messages.patch similarity index 97% rename from patches/server/0435-Fix-hex-colors-not-working-in-some-kick-messages.patch rename to patches/server/0425-Fix-hex-colors-not-working-in-some-kick-messages.patch index 7976f5c39fe0..57e037284073 100644 --- a/patches/server/0435-Fix-hex-colors-not-working-in-some-kick-messages.patch +++ b/patches/server/0425-Fix-hex-colors-not-working-in-some-kick-messages.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix hex colors not working in some kick messages diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 21aafb1ea51769659462d722aa318460b37cbc1c..228359f13511262a0e4afeb9deff982ca0f46d9a 100644 +index 08a7461a92ae84cac69e4bb57a099d1f35ff1c1a..9b611fc277baf99a5d24b30a11f0efa77b22693f 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -77,14 +77,16 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL diff --git a/patches/server/0436-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0426-PortalCreateEvent-needs-to-know-its-entity.patch similarity index 100% rename from patches/server/0436-PortalCreateEvent-needs-to-know-its-entity.patch rename to patches/server/0426-PortalCreateEvent-needs-to-know-its-entity.patch diff --git a/patches/server/0437-Add-more-Evoker-API.patch b/patches/server/0427-Add-more-Evoker-API.patch similarity index 100% rename from patches/server/0437-Add-more-Evoker-API.patch rename to patches/server/0427-Add-more-Evoker-API.patch diff --git a/patches/server/0438-Add-methods-to-get-translation-keys.patch b/patches/server/0428-Add-methods-to-get-translation-keys.patch similarity index 100% rename from patches/server/0438-Add-methods-to-get-translation-keys.patch rename to patches/server/0428-Add-methods-to-get-translation-keys.patch diff --git a/patches/server/0439-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0429-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/server/0439-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/server/0429-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/server/0440-Cache-block-data-strings.patch b/patches/server/0430-Cache-block-data-strings.patch similarity index 97% rename from patches/server/0440-Cache-block-data-strings.patch rename to patches/server/0430-Cache-block-data-strings.patch index 06f4d481f4fa..8c01b2ce07a2 100644 --- a/patches/server/0440-Cache-block-data-strings.patch +++ b/patches/server/0430-Cache-block-data-strings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cache block data strings diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index efb5a5b31ada326593b3bea0f49c05591db18801..903d43aaa84fa20f1ca8a3e1dbf97c91584c8891 100644 +index 7d265471685e34b434ab25bee14854f6f261837b..80b67f8e1a44db078a0ca7382a6c774529ac6976 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2071,6 +2071,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= level; } -@@ -1836,6 +1837,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1825,6 +1826,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void moveTo(double x, double y, double z, float yaw, float pitch) { diff --git a/patches/server/0442-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0432-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/server/0442-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/server/0432-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/server/0443-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0433-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch similarity index 100% rename from patches/server/0443-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch rename to patches/server/0433-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch diff --git a/patches/server/0444-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0434-Extend-block-drop-capture-to-capture-all-items-added.patch similarity index 89% rename from patches/server/0444-Extend-block-drop-capture-to-capture-all-items-added.patch rename to patches/server/0434-Extend-block-drop-capture-to-capture-all-items-added.patch index a93c2fdcbb09..4f59e89ef257 100644 --- a/patches/server/0444-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/patches/server/0434-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Extend block drop capture to capture all items added to the diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 10ccdfa28d5b9da5c380f7417a6bc800f642e390..c6d8dd26f3e9a1aab95c6b394d5f856990b564f1 100644 +index b455472d258ce59252cb4f93cbef73d3c2da342e..611f06d58708a06e1b8ac4f9d4c7a715f177e31f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1512,6 +1512,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1494,6 +1494,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; } else { @@ -23,10 +23,10 @@ index 10ccdfa28d5b9da5c380f7417a6bc800f642e390..c6d8dd26f3e9a1aab95c6b394d5f8569 if (spawnReason != null && !CraftEventFactory.doEntityAddEventCalling(this, entity, spawnReason)) { return false; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 9f3450d6bbd330a2aebd271a086965bf364c9fe4..a157ccbedb94f287c610975d6c3cfb66a3bddbe8 100644 +index 6721b086ec4e8efe29b75a0e08dc15015e180c09..f66ce9ae705b0fbe17a1bb437bad6808ff47ed92 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -431,10 +431,12 @@ public class ServerPlayerGameMode { +@@ -429,10 +429,12 @@ public class ServerPlayerGameMode { // return true; // CraftBukkit } // CraftBukkit start diff --git a/patches/server/0445-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0435-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 90% rename from patches/server/0445-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/server/0435-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch index 6bc5b0b8ccfd..109726f8672a 100644 --- a/patches/server/0445-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch +++ b/patches/server/0435-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose the Entity Counter to allow plugins to use valid and diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 945d702f5fd204b2197d445e74bb941e814c09f8..d26516fd10ec60bc8e27490df8e1f70aa0976d5c 100644 +index ac2380e43639f661358b63eef77cbc7b408a0180..b5fc9879a17b681b1801be96f1e57ea2b56870a9 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4473,4 +4473,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4462,4 +4462,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S void accept(Entity entity, double x, double y, double z); } diff --git a/patches/server/0446-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0436-Lazily-track-plugin-scoreboards-by-default.patch similarity index 100% rename from patches/server/0446-Lazily-track-plugin-scoreboards-by-default.patch rename to patches/server/0436-Lazily-track-plugin-scoreboards-by-default.patch diff --git a/patches/server/0447-Entity-isTicking.patch b/patches/server/0437-Entity-isTicking.patch similarity index 90% rename from patches/server/0447-Entity-isTicking.patch rename to patches/server/0437-Entity-isTicking.patch index 1ee10cfb02ef..24f73822f542 100644 --- a/patches/server/0447-Entity-isTicking.patch +++ b/patches/server/0437-Entity-isTicking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity#isTicking diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d26516fd10ec60bc8e27490df8e1f70aa0976d5c..49bea2b71d4fd3f2e38eabd1ebb57dd66d9abe0b 100644 +index b5fc9879a17b681b1801be96f1e57ea2b56870a9..fcb928696e676fe0749b1bc4b1aa433985767f5b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4478,5 +4478,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4467,5 +4467,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public static int nextEntityId() { return ENTITY_COUNTER.incrementAndGet(); } diff --git a/patches/server/0448-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0438-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch similarity index 94% rename from patches/server/0448-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch rename to patches/server/0438-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch index 4a158e1ee2fc..3518de4cf136 100644 --- a/patches/server/0448-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch +++ b/patches/server/0438-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix deop kicking non-whitelisted player when white list is diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 903d43aaa84fa20f1ca8a3e1dbf97c91584c8891..abee10fbb354e22f6c41b04d9f281ffeafdc4498 100644 +index 80b67f8e1a44db078a0ca7382a6c774529ac6976..589feabf9ad471462aa7fb46f179b5de9455ff65 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2154,13 +2154,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop capturedTileEntities = new java.util.LinkedHashMap<>(); // Paper - Retain block place order when capturing blockstates public List captureDrops; public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); - // Paper start + public boolean populating; diff --git a/patches/server/0455-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0445-Reduce-blockpos-allocation-from-pathfinding.patch similarity index 94% rename from patches/server/0455-Reduce-blockpos-allocation-from-pathfinding.patch rename to patches/server/0445-Reduce-blockpos-allocation-from-pathfinding.patch index eae9a412e2ab..8d14eb1a058b 100644 --- a/patches/server/0455-Reduce-blockpos-allocation-from-pathfinding.patch +++ b/patches/server/0445-Reduce-blockpos-allocation-from-pathfinding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Reduce blockpos allocation from pathfinding diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java -index 8e90b284fb576738b834626bb52c9962ccbc5ad2..1e96bac6f22b1fddd22fc239126ff2f823c2abd0 100644 +index dbb6a7d950b1a6f58a845b4d399ead6eb6d4fe14..70c7c735fdd0c1b66243915622e47eab8a57e7cc 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java @@ -479,7 +479,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { diff --git a/patches/server/0456-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0446-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/server/0456-Fix-item-locations-dropped-from-campfires.patch rename to patches/server/0446-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/server/0457-Fix-bell-block-entity-memory-leak.patch b/patches/server/0447-Fix-bell-block-entity-memory-leak.patch similarity index 100% rename from patches/server/0457-Fix-bell-block-entity-memory-leak.patch rename to patches/server/0447-Fix-bell-block-entity-memory-leak.patch diff --git a/patches/server/0458-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0448-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/server/0458-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/server/0448-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/server/0459-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0449-Add-getOfflinePlayerIfCached-String.patch similarity index 93% rename from patches/server/0459-Add-getOfflinePlayerIfCached-String.patch rename to patches/server/0449-Add-getOfflinePlayerIfCached-String.patch index 32d7d4f54622..96f1ef8cc830 100644 --- a/patches/server/0459-Add-getOfflinePlayerIfCached-String.patch +++ b/patches/server/0449-Add-getOfflinePlayerIfCached-String.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add getOfflinePlayerIfCached(String) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6dde3d479aa1ae50c6404419ec5da52f0b68a11e..4b787a548a21512f8fe44a32568181ed18a38157 100644 +index 8b5fb5e5719ea1453751ef8f7bd97bca1af64ae8..2685722282f0b90bdcf65ba6675998b31f491b31 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1909,6 +1909,28 @@ public final class CraftServer implements Server { diff --git a/patches/server/0460-Add-ignore-discounts-API.patch b/patches/server/0450-Add-ignore-discounts-API.patch similarity index 97% rename from patches/server/0460-Add-ignore-discounts-API.patch rename to patches/server/0450-Add-ignore-discounts-API.patch index 60e260aea0e2..2cf4261e1967 100644 --- a/patches/server/0460-Add-ignore-discounts-API.patch +++ b/patches/server/0450-Add-ignore-discounts-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add ignore discounts API diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 7956c1ec7bf6b9fe224ec14bb695c0b8ca9dcf2d..fb5d4b1a86d00fce9482ed4fd4ae71fdcdb63781 100644 +index bfd156acbae31619234fffb1804726090802fbae..3653193effdecd969b5ac159b6d5ce633451d706 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -508,6 +508,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -490,6 +490,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler while (iterator.hasNext()) { MerchantOffer merchantrecipe = (MerchantOffer) iterator.next(); @@ -16,7 +16,7 @@ index 7956c1ec7bf6b9fe224ec14bb695c0b8ca9dcf2d..fb5d4b1a86d00fce9482ed4fd4ae71fd merchantrecipe.addToSpecialPriceDiff(-Mth.floor((float) i * merchantrecipe.getPriceMultiplier())); } -@@ -520,6 +521,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -502,6 +503,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler while (iterator1.hasNext()) { MerchantOffer merchantrecipe1 = (MerchantOffer) iterator1.next(); diff --git a/patches/server/0461-Toggle-for-removing-existing-dragon.patch b/patches/server/0451-Toggle-for-removing-existing-dragon.patch similarity index 100% rename from patches/server/0461-Toggle-for-removing-existing-dragon.patch rename to patches/server/0451-Toggle-for-removing-existing-dragon.patch diff --git a/patches/server/0462-Fix-client-lag-on-advancement-loading.patch b/patches/server/0452-Fix-client-lag-on-advancement-loading.patch similarity index 100% rename from patches/server/0462-Fix-client-lag-on-advancement-loading.patch rename to patches/server/0452-Fix-client-lag-on-advancement-loading.patch diff --git a/patches/server/0463-Item-no-age-no-player-pickup.patch b/patches/server/0453-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/server/0463-Item-no-age-no-player-pickup.patch rename to patches/server/0453-Item-no-age-no-player-pickup.patch diff --git a/patches/server/0464-Beacon-API-custom-effect-ranges.patch b/patches/server/0454-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/server/0464-Beacon-API-custom-effect-ranges.patch rename to patches/server/0454-Beacon-API-custom-effect-ranges.patch diff --git a/patches/server/0465-Add-API-for-quit-reason.patch b/patches/server/0455-Add-API-for-quit-reason.patch similarity index 94% rename from patches/server/0465-Add-API-for-quit-reason.patch rename to patches/server/0455-Add-API-for-quit-reason.patch index 2b59c7f32f50..e610f51c4ea9 100644 --- a/patches/server/0465-Add-API-for-quit-reason.patch +++ b/patches/server/0455-Add-API-for-quit-reason.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add API for quit reason diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index a25090d277f586c932e975068636ccd6cc43b204..dd7deb9175059857c59c85c745053cc88a922d3b 100644 +index 777681a58417684a35a875c869ab22e50bb27da5..1e495daf53a53260e1a3b1c86365edb9abad1e80 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -183,12 +183,15 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -179,12 +179,15 @@ public class Connection extends SimpleChannelInboundHandler> { this.handlingFault = true; if (this.channel.isOpen()) { @@ -25,10 +25,10 @@ index a25090d277f586c932e975068636ccd6cc43b204..dd7deb9175059857c59c85c745053cc8 Connection.LOGGER.debug("Failed to sent packet", throwable); if (this.getSending() == PacketFlow.CLIENTBOUND) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 2834161f763a556400f0c8acdcc7e88c4317d318..cf3c2229347f8a8ca860e8b1fbf9226c497df479 100644 +index 27f1d336b2493bf475a388f63cce8d99408acea3..d5b5ad2f91d440ae0a1e61accab60122335591d4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -279,6 +279,7 @@ public class ServerPlayer extends Player { +@@ -275,6 +275,7 @@ public class ServerPlayer extends Player { public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent public @Nullable String clientBrandName = null; // Paper - Brand support diff --git a/patches/server/0466-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0456-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/server/0466-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0456-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/server/0467-Expose-world-spawn-angle.patch b/patches/server/0457-Expose-world-spawn-angle.patch similarity index 100% rename from patches/server/0467-Expose-world-spawn-angle.patch rename to patches/server/0457-Expose-world-spawn-angle.patch diff --git a/patches/server/0468-Add-Destroy-Speed-API.patch b/patches/server/0458-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/server/0468-Add-Destroy-Speed-API.patch rename to patches/server/0458-Add-Destroy-Speed-API.patch diff --git a/patches/server/0469-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0459-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 93% rename from patches/server/0469-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0459-Fix-Player-spawnParticle-x-y-z-precision-loss.patch index af3c8f43f2d3..16a21f556bfe 100644 --- a/patches/server/0469-Fix-Player-spawnParticle-x-y-z-precision-loss.patch +++ b/patches/server/0459-Fix-Player-spawnParticle-x-y-z-precision-loss.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 878744936f1d2c7bc3ad13bf29d422cc31d0f8d4..bbe18e0342ad68c844f095d3b6413929adc18ab5 100644 +index ac908edaad2e58e4813f236e938e9d305f93dbe6..7d5733f6c45c0521b1d1a37d6dfc3b0a7aad1662 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2593,7 +2593,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0470-Add-LivingEntity-clearActiveItem.patch b/patches/server/0460-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/server/0470-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0460-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/server/0471-Add-PlayerItemCooldownEvent.patch b/patches/server/0461-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0471-Add-PlayerItemCooldownEvent.patch rename to patches/server/0461-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0472-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0462-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0472-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0462-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0473-More-lightning-API.patch b/patches/server/0463-More-lightning-API.patch similarity index 100% rename from patches/server/0473-More-lightning-API.patch rename to patches/server/0463-More-lightning-API.patch diff --git a/patches/server/0474-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0464-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 97% rename from patches/server/0474-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0464-Climbing-should-not-bypass-cramming-gamerule.patch index f0a4f0386456..f0adf634a91a 100644 --- a/patches/server/0474-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0464-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 49bea2b71d4fd3f2e38eabd1ebb57dd66d9abe0b..5baa6503b9d0e4f854c2546d0bbdd527c9f63cca 100644 +index fcb928696e676fe0749b1bc4b1aa433985767f5b..a1cf6f17313f4f861f3c5c6ebcaafc85d9102b55 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2029,6 +2029,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2018,6 +2018,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean isPushable() { @@ -44,7 +44,7 @@ index c9c7833755af3c7bef1d40f2ca425cbec59efa68..75cdddbfbbc4c0c521194dde27ba5f5d } else if (entity.level().isClientSide && (!(entity1 instanceof Player) || !((Player) entity1).isLocalPlayer())) { return false; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b691d188c741c8acf8d20bc9e6184b6445ba6332..cf57c977d64a76d29a4f9a4811d55a17cc51e368 100644 +index 115dbe71ff1e9996e8307a389569303a320101f4..95ee76c0e96318866a7b21355c9617c2ca79776e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3426,7 +3426,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0475-Add-missing-default-perms-for-commands.patch b/patches/server/0465-Add-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0475-Add-missing-default-perms-for-commands.patch rename to patches/server/0465-Add-missing-default-perms-for-commands.patch diff --git a/patches/server/0476-Add-PlayerShearBlockEvent.patch b/patches/server/0466-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0476-Add-PlayerShearBlockEvent.patch rename to patches/server/0466-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0477-Limit-recipe-packets.patch b/patches/server/0467-Limit-recipe-packets.patch similarity index 100% rename from patches/server/0477-Limit-recipe-packets.patch rename to patches/server/0467-Limit-recipe-packets.patch diff --git a/patches/server/0478-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0468-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0478-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0468-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0479-Player-Chunk-Load-Unload-Events.patch b/patches/server/0469-Player-Chunk-Load-Unload-Events.patch similarity index 78% rename from patches/server/0479-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0469-Player-Chunk-Load-Unload-Events.patch index 213aeca6b7ea..ed886a05a1b6 100644 --- a/patches/server/0479-Player-Chunk-Load-Unload-Events.patch +++ b/patches/server/0469-Player-Chunk-Load-Unload-Events.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player Chunk Load/Unload Events diff --git a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java -index 19b3f4fa7678a038bf25efc2a8b46ddad0193fde..fb1863d235a61ec977e8ad87a289d935a9c5d0e4 100644 +index 5de5209e04d631bd6a50e28e8d3abebf148252c1..43e3c99eafaed42161664e31827dfd0abb127ad2 100644 --- a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java +++ b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java @@ -46,6 +46,11 @@ public class PlayerChunkSender { @@ -20,10 +20,10 @@ index 19b3f4fa7678a038bf25efc2a8b46ddad0193fde..fb1863d235a61ec977e8ad87a289d935 } // Paper end - rewrite player chunk loader -@@ -89,6 +94,11 @@ public class PlayerChunkSender { - final boolean shouldModify = world.chunkPacketBlockController.shouldModify(handler.player, chunk); - handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), (BitSet)null, (BitSet)null, shouldModify)); - // Paper end - Anti-Xray +@@ -86,6 +91,11 @@ public class PlayerChunkSender { + public static void sendChunk(ServerGamePacketListenerImpl handler, ServerLevel world, LevelChunk chunk) { // Paper - rewrite chunk loader - public + handler.player.serverLevel().chunkSource.chunkMap.getVisibleChunkIfPresent(chunk.getPos().toLong()).addPlayer(handler.player); + handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), (BitSet)null, (BitSet)null)); + // Paper start - PlayerChunkLoadEvent + if (io.papermc.paper.event.packet.PlayerChunkLoadEvent.getHandlerList().getRegisteredListeners().length > 0) { + new io.papermc.paper.event.packet.PlayerChunkLoadEvent(new org.bukkit.craftbukkit.CraftChunk(chunk), handler.getPlayer().getBukkitEntity()).callEvent(); diff --git a/patches/server/0480-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0470-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0480-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0470-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0481-Expose-LivingEntity-hurt-direction.patch b/patches/server/0471-Expose-LivingEntity-hurt-direction.patch similarity index 96% rename from patches/server/0481-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0471-Expose-LivingEntity-hurt-direction.patch index 29f45c6f9c37..3e8d4f12e0c4 100644 --- a/patches/server/0481-Expose-LivingEntity-hurt-direction.patch +++ b/patches/server/0471-Expose-LivingEntity-hurt-direction.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose LivingEntity hurt direction diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 2a7d62305d16074de4eeb84d8870a089cf8641ac..1f5f27bea4afdab99bb41f87288f66b29d7c5264 100644 +index 808a784a312438433fba0e65cbfd1afbad19fe86..b4d1caa4c853ce4b88d53fb6f69ad437d3dcb381 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -178,7 +178,7 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0482-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0472-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/server/0482-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0472-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/server/0483-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch b/patches/server/0473-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch similarity index 100% rename from patches/server/0483-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch rename to patches/server/0473-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch diff --git a/patches/server/0484-Add-TargetHitEvent.patch b/patches/server/0474-Add-TargetHitEvent.patch similarity index 100% rename from patches/server/0484-Add-TargetHitEvent.patch rename to patches/server/0474-Add-TargetHitEvent.patch diff --git a/patches/server/0485-MC-4-Fix-item-position-desync.patch b/patches/server/0475-MC-4-Fix-item-position-desync.patch similarity index 93% rename from patches/server/0485-MC-4-Fix-item-position-desync.patch rename to patches/server/0475-MC-4-Fix-item-position-desync.patch index d81d8f0fb951..e1d5b5d4e8c1 100644 --- a/patches/server/0485-MC-4-Fix-item-position-desync.patch +++ b/patches/server/0475-MC-4-Fix-item-position-desync.patch @@ -28,10 +28,10 @@ index 05ac41e136da43284fb24a6b698ebd36318278fb..3c4ac79c094dc2fff7de94150a34b7bf public Vec3 decode(long x, long y, long z) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5baa6503b9d0e4f854c2546d0bbdd527c9f63cca..0b7ac3f3115a6e83fe5f2bee8a372ad01dd91fb3 100644 +index a1cf6f17313f4f861f3c5c6ebcaafc85d9102b55..3877544229bc8a4e6e475060c4edca17c64ff739 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4249,6 +4249,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4238,6 +4238,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } // Paper end - rewrite chunk system diff --git a/patches/server/0486-Additional-Block-Material-API.patch b/patches/server/0476-Additional-Block-Material-API.patch similarity index 100% rename from patches/server/0486-Additional-Block-Material-API.patch rename to patches/server/0476-Additional-Block-Material-API.patch diff --git a/patches/server/0487-Fix-harming-potion-dupe.patch b/patches/server/0477-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0487-Fix-harming-potion-dupe.patch rename to patches/server/0477-Fix-harming-potion-dupe.patch diff --git a/patches/server/0488-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/server/0478-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/server/0488-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/server/0478-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/server/0489-Cache-burn-durations.patch b/patches/server/0479-Cache-burn-durations.patch similarity index 100% rename from patches/server/0489-Cache-burn-durations.patch rename to patches/server/0479-Cache-burn-durations.patch diff --git a/patches/server/0490-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0480-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/server/0490-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0480-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/server/0491-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0481-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 94% rename from patches/server/0491-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/server/0481-Fix-Not-a-string-Map-Conversion-spam.patch index 38593b84f5dd..e434023f487d 100644 --- a/patches/server/0491-Fix-Not-a-string-Map-Conversion-spam.patch +++ b/patches/server/0481-Fix-Not-a-string-Map-Conversion-spam.patch @@ -12,7 +12,7 @@ requesting the world. Track spigot issue to see when fixed: https://hub.spigotmc.org/jira/browse/SPIGOT-6181 diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -index e1623ade449fe56ec51955ee9594a93f85660c51..5992f450f01349ce49286c34b8af56737de01a45 100644 +index 8f144a357174bbe096ac9b38a5e67a61127d7b87..0ca0808c5eeeba969c048b422af37a273217ff52 100644 --- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java @@ -15,6 +15,8 @@ import net.minecraft.core.BlockPos; @@ -24,7 +24,7 @@ index e1623ade449fe56ec51955ee9594a93f85660c51..5992f450f01349ce49286c34b8af5673 import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; -@@ -110,7 +112,26 @@ public class MapItemSavedData extends SavedData { +@@ -108,7 +110,26 @@ public class MapItemSavedData extends SavedData { } public static MapItemSavedData load(CompoundTag nbt) { diff --git a/patches/server/0492-Add-PlayerFlowerPotManipulateEvent.patch b/patches/server/0482-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0492-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0482-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0493-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0483-Fix-interact-event-not-being-called-sometimes.patch similarity index 100% rename from patches/server/0493-Fix-interact-event-not-being-called-sometimes.patch rename to patches/server/0483-Fix-interact-event-not-being-called-sometimes.patch diff --git a/patches/server/0494-Zombie-API-breaking-doors.patch b/patches/server/0484-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0494-Zombie-API-breaking-doors.patch rename to patches/server/0484-Zombie-API-breaking-doors.patch diff --git a/patches/server/0495-Fix-nerfed-slime-when-splitting.patch b/patches/server/0485-Fix-nerfed-slime-when-splitting.patch similarity index 90% rename from patches/server/0495-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0485-Fix-nerfed-slime-when-splitting.patch index 400295b015aa..d6cfcc1eadca 100644 --- a/patches/server/0495-Fix-nerfed-slime-when-splitting.patch +++ b/patches/server/0485-Fix-nerfed-slime-when-splitting.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix nerfed slime when splitting diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index ca3bf718336ef02d379c0ec670f62fafb1600153..3752ff83c91be55e8a5e7c81b75409d64a8aafde 100644 +index 168b422ac9f3f98630c4d05b64a9f0470b20fe61..2977e5986958cbee987893dd9de1dfb3764b291d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java @@ -243,6 +243,7 @@ public class Slime extends Mob implements Enemy { diff --git a/patches/server/0496-Add-EntityLoadCrossbowEvent.patch b/patches/server/0486-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0496-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0486-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0497-Add-WorldGameRuleChangeEvent.patch b/patches/server/0487-Add-WorldGameRuleChangeEvent.patch similarity index 96% rename from patches/server/0497-Add-WorldGameRuleChangeEvent.patch rename to patches/server/0487-Add-WorldGameRuleChangeEvent.patch index 449e76ade1e2..b4fe45d7a86b 100644 --- a/patches/server/0497-Add-WorldGameRuleChangeEvent.patch +++ b/patches/server/0487-Add-WorldGameRuleChangeEvent.patch @@ -64,10 +64,10 @@ index 334001cb749600c973c82391e1c11f0e40bd2dfb..f3cdf1fa7731eb7bb1cb89aa6a37204d public int get() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 705c1b2bba2b60b260c59a6953151f34cdfc8960..e092afa65bc6d14c53a09175b0a8cd9ad50a7477 100644 +index f0f6f2b5f474881c865f1a2098611cd395249530..9ca85c53236528460441d2da7f2935438c6b0078 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1930,8 +1930,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1880,8 +1880,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { if (!this.isGameRule(rule)) return false; @@ -82,7 +82,7 @@ index 705c1b2bba2b60b260c59a6953151f34cdfc8960..e092afa65bc6d14c53a09175b0a8cd9a handle.onChanged(this.getHandle().getServer()); return true; } -@@ -1967,8 +1972,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1917,8 +1922,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { if (!this.isGameRule(rule.getName())) return false; diff --git a/patches/server/0498-Add-ServerResourcesReloadedEvent.patch b/patches/server/0488-Add-ServerResourcesReloadedEvent.patch similarity index 97% rename from patches/server/0498-Add-ServerResourcesReloadedEvent.patch rename to patches/server/0488-Add-ServerResourcesReloadedEvent.patch index 8e5036524fd9..d18bedb2dcf0 100644 --- a/patches/server/0498-Add-ServerResourcesReloadedEvent.patch +++ b/patches/server/0488-Add-ServerResourcesReloadedEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ServerResourcesReloadedEvent diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index abee10fbb354e22f6c41b04d9f281ffeafdc4498..6268b8ffe365c45406df7f40fcbc0567cc5d1db4 100644 +index 589feabf9ad471462aa7fb46f179b5de9455ff65..1aa73c3934c754fb9a4e09e8ac9c7f96d608ceb5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2039,7 +2039,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { this.getServer().execute(() -> { diff --git a/patches/server/0506-Fix-villager-boat-exploit.patch b/patches/server/0496-Fix-villager-boat-exploit.patch similarity index 100% rename from patches/server/0506-Fix-villager-boat-exploit.patch rename to patches/server/0496-Fix-villager-boat-exploit.patch diff --git a/patches/server/0507-Add-sendOpLevel-API.patch b/patches/server/0497-Add-sendOpLevel-API.patch similarity index 100% rename from patches/server/0507-Add-sendOpLevel-API.patch rename to patches/server/0497-Add-sendOpLevel-API.patch diff --git a/patches/server/0508-TODO-Registry-Modification-API.patch b/patches/server/0498-TODO-Registry-Modification-API.patch similarity index 100% rename from patches/server/0508-TODO-Registry-Modification-API.patch rename to patches/server/0498-TODO-Registry-Modification-API.patch diff --git a/patches/server/0509-Add-StructuresLocateEvent.patch b/patches/server/0499-Add-StructuresLocateEvent.patch similarity index 100% rename from patches/server/0509-Add-StructuresLocateEvent.patch rename to patches/server/0499-Add-StructuresLocateEvent.patch diff --git a/patches/server/0510-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0500-Collision-option-for-requiring-a-player-participant.patch similarity index 95% rename from patches/server/0510-Collision-option-for-requiring-a-player-participant.patch rename to patches/server/0500-Collision-option-for-requiring-a-player-participant.patch index 992c90a2f35e..725ea5ef496f 100644 --- a/patches/server/0510-Collision-option-for-requiring-a-player-participant.patch +++ b/patches/server/0500-Collision-option-for-requiring-a-player-participant.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Collision option for requiring a player participant diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0b7ac3f3115a6e83fe5f2bee8a372ad01dd91fb3..d80d849e9991da00f6aa63913407bf7fd368cadf 100644 +index 3877544229bc8a4e6e475060c4edca17c64ff739..d2c2dd79cc6f484306bd1ab523cb4d9283131d1b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1899,6 +1899,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1888,6 +1888,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void push(Entity entity) { if (!this.isPassengerOfSameVehicle(entity)) { if (!entity.noPhysics && !this.noPhysics) { diff --git a/patches/server/0511-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0501-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch similarity index 100% rename from patches/server/0511-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch rename to patches/server/0501-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch diff --git a/patches/server/0512-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0502-Return-chat-component-with-empty-text-instead-of-thr.patch similarity index 100% rename from patches/server/0512-Return-chat-component-with-empty-text-instead-of-thr.patch rename to patches/server/0502-Return-chat-component-with-empty-text-instead-of-thr.patch diff --git a/patches/server/0513-Make-schedule-command-per-world.patch b/patches/server/0503-Make-schedule-command-per-world.patch similarity index 100% rename from patches/server/0513-Make-schedule-command-per-world.patch rename to patches/server/0503-Make-schedule-command-per-world.patch diff --git a/patches/server/0514-Configurable-max-leash-distance.patch b/patches/server/0504-Configurable-max-leash-distance.patch similarity index 87% rename from patches/server/0514-Configurable-max-leash-distance.patch rename to patches/server/0504-Configurable-max-leash-distance.patch index 6f899de2d2da..99a4a50ca974 100644 --- a/patches/server/0514-Configurable-max-leash-distance.patch +++ b/patches/server/0504-Configurable-max-leash-distance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable max leash distance diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -index b5964614823059261c28eb2e998ad54249f07e7b..08245016186c47077294f758409f8bf14398199f 100644 +index 5e9cf929674888b3a143a0691dc6936b304467f1..85a9bcbd229b56317c2de15670a04c6d0eb51e18 100644 --- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java +++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -@@ -56,7 +56,7 @@ public abstract class PathfinderMob extends Mob { +@@ -55,7 +55,7 @@ public abstract class PathfinderMob extends Mob { float f = this.distanceTo(entity); if (this instanceof TamableAnimal && ((TamableAnimal) this).isInSittingPose()) { @@ -17,7 +17,7 @@ index b5964614823059261c28eb2e998ad54249f07e7b..08245016186c47077294f758409f8bf1 this.level().getCraftServer().getPluginManager().callEvent(new EntityUnleashEvent(this.getBukkitEntity(), EntityUnleashEvent.UnleashReason.DISTANCE)); // CraftBukkit this.dropLeash(true, true); } -@@ -65,7 +65,7 @@ public abstract class PathfinderMob extends Mob { +@@ -64,7 +64,7 @@ public abstract class PathfinderMob extends Mob { } this.onLeashDistance(f); diff --git a/patches/server/0515-Add-BlockPreDispenseEvent.patch b/patches/server/0505-Add-BlockPreDispenseEvent.patch similarity index 100% rename from patches/server/0515-Add-BlockPreDispenseEvent.patch rename to patches/server/0505-Add-BlockPreDispenseEvent.patch diff --git a/patches/server/0516-Add-PlayerChangeBeaconEffectEvent.patch b/patches/server/0506-Add-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/server/0516-Add-PlayerChangeBeaconEffectEvent.patch rename to patches/server/0506-Add-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/server/0517-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0507-Add-toggle-for-always-placing-the-dragon-egg.patch similarity index 100% rename from patches/server/0517-Add-toggle-for-always-placing-the-dragon-egg.patch rename to patches/server/0507-Add-toggle-for-always-placing-the-dragon-egg.patch diff --git a/patches/server/0518-Add-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0508-Add-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/server/0518-Add-PlayerStonecutterRecipeSelectEvent.patch rename to patches/server/0508-Add-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/server/0519-Expand-EntityUnleashEvent.patch b/patches/server/0509-Expand-EntityUnleashEvent.patch similarity index 94% rename from patches/server/0519-Expand-EntityUnleashEvent.patch rename to patches/server/0509-Expand-EntityUnleashEvent.patch index 98433c53eb30..8589ce0a0451 100644 --- a/patches/server/0519-Expand-EntityUnleashEvent.patch +++ b/patches/server/0509-Expand-EntityUnleashEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expand EntityUnleashEvent diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index a04240f64541009f342bcdeb725ccb04c65b697b..59b776c591af3e890b81f9c2ca67c119ba89695e 100644 +index 7d0ccdd4b144afed8a93256941b3d8618c847f4d..6482dc12324524b92e0161055ad13d27dfb7f97d 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1305,12 +1305,15 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1292,12 +1292,15 @@ public abstract class Mob extends LivingEntity implements Targeting { return InteractionResult.PASS; } else if (this.getLeashHolder() == player) { // CraftBukkit start - fire PlayerUnleashEntityEvent @@ -26,7 +26,7 @@ index a04240f64541009f342bcdeb725ccb04c65b697b..59b776c591af3e890b81f9c2ca67c119 this.gameEvent(GameEvent.ENTITY_INTERACT, player); return InteractionResult.sidedSuccess(this.level().isClientSide); } else { -@@ -1478,8 +1481,11 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1465,8 +1468,11 @@ public abstract class Mob extends LivingEntity implements Targeting { if (this.leashHolder != null) { if (!this.isAlive() || !this.leashHolder.isAlive()) { @@ -40,7 +40,7 @@ index a04240f64541009f342bcdeb725ccb04c65b697b..59b776c591af3e890b81f9c2ca67c119 } } -@@ -1542,8 +1548,11 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1529,8 +1535,11 @@ public abstract class Mob extends LivingEntity implements Targeting { boolean flag1 = super.startRiding(entity, force); if (flag1 && this.isLeashed()) { @@ -54,7 +54,7 @@ index a04240f64541009f342bcdeb725ccb04c65b697b..59b776c591af3e890b81f9c2ca67c119 } return flag1; -@@ -1733,8 +1742,11 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1720,8 +1729,11 @@ public abstract class Mob extends LivingEntity implements Targeting { @Override protected void removeAfterChangingDimensions() { super.removeAfterChangingDimensions(); @@ -69,10 +69,10 @@ index a04240f64541009f342bcdeb725ccb04c65b697b..59b776c591af3e890b81f9c2ca67c119 if (!itemstack.isEmpty()) { itemstack.setCount(0); diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -index 08245016186c47077294f758409f8bf14398199f..3d95257d2203fe40bb1fab58ad2a1f9e815184a9 100644 +index 85a9bcbd229b56317c2de15670a04c6d0eb51e18..d6393210cfee53685f83c8491bea8b9c13b01eea 100644 --- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java +++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -@@ -57,8 +57,11 @@ public abstract class PathfinderMob extends Mob { +@@ -56,8 +56,11 @@ public abstract class PathfinderMob extends Mob { if (this instanceof TamableAnimal && ((TamableAnimal) this).isInSittingPose()) { if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper - Configurable max leash distance @@ -86,7 +86,7 @@ index 08245016186c47077294f758409f8bf14398199f..3d95257d2203fe40bb1fab58ad2a1f9e } return; -@@ -66,8 +69,11 @@ public abstract class PathfinderMob extends Mob { +@@ -65,8 +68,11 @@ public abstract class PathfinderMob extends Mob { this.onLeashDistance(f); if (f > entity.level().paperConfig().misc.maxLeashDistance) { // Paper - Configurable max leash distance diff --git a/patches/server/0520-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0510-Reset-shield-blocking-on-dimension-change.patch similarity index 84% rename from patches/server/0520-Reset-shield-blocking-on-dimension-change.patch rename to patches/server/0510-Reset-shield-blocking-on-dimension-change.patch index 80b3f993f742..80bf8880ebd3 100644 --- a/patches/server/0520-Reset-shield-blocking-on-dimension-change.patch +++ b/patches/server/0510-Reset-shield-blocking-on-dimension-change.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Reset shield blocking on dimension change diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index cf3c2229347f8a8ca860e8b1fbf9226c497df479..449bd6d823746b5d6bbcbde54eeb3105f9cf9f04 100644 +index d5b5ad2f91d440ae0a1e61accab60122335591d4..75bd3de7bc1596a4782b82e30162d89aa3e99211 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1247,6 +1247,11 @@ public class ServerPlayer extends Player { +@@ -1243,6 +1243,11 @@ public class ServerPlayer extends Player { this.level().getCraftServer().getPluginManager().callEvent(changeEvent); // CraftBukkit end } diff --git a/patches/server/0521-Add-DragonEggFormEvent.patch b/patches/server/0511-Add-DragonEggFormEvent.patch similarity index 100% rename from patches/server/0521-Add-DragonEggFormEvent.patch rename to patches/server/0511-Add-DragonEggFormEvent.patch diff --git a/patches/server/0522-Add-EntityMoveEvent.patch b/patches/server/0512-Add-EntityMoveEvent.patch similarity index 93% rename from patches/server/0522-Add-EntityMoveEvent.patch rename to patches/server/0512-Add-EntityMoveEvent.patch index 172eded7ce42..201613e60903 100644 --- a/patches/server/0522-Add-EntityMoveEvent.patch +++ b/patches/server/0512-Add-EntityMoveEvent.patch @@ -17,10 +17,10 @@ index 1aa73c3934c754fb9a4e09e8ac9c7f96d608ceb5..849161e11d547445d9bd10ac54bcd994 this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 30a71abd6dab3967d7206583ece6c496f5ff61df..be76b852ced7ac9cd3c2d3469d6120cc504e9700 100644 +index 5020d671c7bbaf4277c300f3688c770b6a565129..f69fae303770b3ccace8e7d421b762504a7cb5dc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -221,6 +221,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -222,6 +222,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public final LevelStorageSource.LevelStorageAccess convertable; public final UUID uuid; public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent @@ -29,7 +29,7 @@ index 30a71abd6dab3967d7206583ece6c496f5ff61df..be76b852ced7ac9cd3c2d3469d6120cc public LevelChunk getChunkIfLoaded(int x, int z) { return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 71aaa67177cb782e3ee20d57b73a4f6904b39cf1..6db503e99166cae9efdc25d2eae66956e6cf9699 100644 +index 95ee76c0e96318866a7b21355c9617c2ca79776e..bcd1a608796065eb705363bdc246151b68553c0e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3361,6 +3361,20 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0523-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0513-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 81% rename from patches/server/0523-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0513-added-option-to-disable-pathfinding-updates-on-block.patch index 2c41565a0aa8..f6619b9d44a5 100644 --- a/patches/server/0523-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/patches/server/0513-added-option-to-disable-pathfinding-updates-on-block.patch @@ -5,10 +5,10 @@ Subject: [PATCH] added option to disable pathfinding updates on block changes diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index be76b852ced7ac9cd3c2d3469d6120cc504e9700..a27dd0fe48f018e5e2f99e00d8ef5d1f61cea635 100644 +index f69fae303770b3ccace8e7d421b762504a7cb5dc..901d9f47a63f5c6ddd596c7d327abd06f5a17f16 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1657,6 +1657,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1639,6 +1639,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } this.getChunkSource().blockChanged(pos); @@ -16,7 +16,7 @@ index be76b852ced7ac9cd3c2d3469d6120cc504e9700..a27dd0fe48f018e5e2f99e00d8ef5d1f VoxelShape voxelshape = oldState.getCollisionShape(this, pos); VoxelShape voxelshape1 = newState.getCollisionShape(this, pos); -@@ -1698,6 +1699,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1680,6 +1681,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } diff --git a/patches/server/0524-Inline-shift-direction-fields.patch b/patches/server/0514-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0524-Inline-shift-direction-fields.patch rename to patches/server/0514-Inline-shift-direction-fields.patch diff --git a/patches/server/0525-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0515-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/server/0525-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0515-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/server/0526-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0516-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0526-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0516-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0527-living-entity-allow-attribute-registration.patch b/patches/server/0517-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/server/0527-living-entity-allow-attribute-registration.patch rename to patches/server/0517-living-entity-allow-attribute-registration.patch diff --git a/patches/server/0528-fix-dead-slime-setSize-invincibility.patch b/patches/server/0518-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0528-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0518-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0529-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0519-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0529-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0519-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0530-Expose-Tracked-Players.patch b/patches/server/0520-Expose-Tracked-Players.patch similarity index 100% rename from patches/server/0530-Expose-Tracked-Players.patch rename to patches/server/0520-Expose-Tracked-Players.patch diff --git a/patches/server/0531-Improve-ServerGUI.patch b/patches/server/0521-Improve-ServerGUI.patch similarity index 100% rename from patches/server/0531-Improve-ServerGUI.patch rename to patches/server/0521-Improve-ServerGUI.patch diff --git a/patches/server/0532-fix-converting-txt-to-json-file.patch b/patches/server/0522-fix-converting-txt-to-json-file.patch similarity index 100% rename from patches/server/0532-fix-converting-txt-to-json-file.patch rename to patches/server/0522-fix-converting-txt-to-json-file.patch diff --git a/patches/server/0533-Add-worldborder-events.patch b/patches/server/0523-Add-worldborder-events.patch similarity index 100% rename from patches/server/0533-Add-worldborder-events.patch rename to patches/server/0523-Add-worldborder-events.patch diff --git a/patches/server/0534-Add-PlayerNameEntityEvent.patch b/patches/server/0524-Add-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0534-Add-PlayerNameEntityEvent.patch rename to patches/server/0524-Add-PlayerNameEntityEvent.patch diff --git a/patches/server/0535-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0525-Prevent-grindstones-from-overstacking-items.patch similarity index 100% rename from patches/server/0535-Prevent-grindstones-from-overstacking-items.patch rename to patches/server/0525-Prevent-grindstones-from-overstacking-items.patch diff --git a/patches/server/0536-Add-recipe-to-cook-events.patch b/patches/server/0526-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/server/0536-Add-recipe-to-cook-events.patch rename to patches/server/0526-Add-recipe-to-cook-events.patch diff --git a/patches/server/0537-Add-Block-isValidTool.patch b/patches/server/0527-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0537-Add-Block-isValidTool.patch rename to patches/server/0527-Add-Block-isValidTool.patch diff --git a/patches/server/0538-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0528-Allow-using-signs-inside-spawn-protection.patch similarity index 100% rename from patches/server/0538-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0528-Allow-using-signs-inside-spawn-protection.patch diff --git a/patches/server/0539-Expand-world-key-API.patch b/patches/server/0529-Expand-world-key-API.patch similarity index 97% rename from patches/server/0539-Expand-world-key-API.patch rename to patches/server/0529-Expand-world-key-API.patch index cb490b2a3bc8..d943671eb988 100644 --- a/patches/server/0539-Expand-world-key-API.patch +++ b/patches/server/0529-Expand-world-key-API.patch @@ -20,7 +20,7 @@ index 0fb214ddd919b568da64541fd9b531c65caa5fad..9cd267f53505658d1c75187b662c4d9f // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4b787a548a21512f8fe44a32568181ed18a38157..cd3131c2ebac59a1a2a05fe0216214d9b301abfe 100644 +index 2685722282f0b90bdcf65ba6675998b31f491b31..59935e2557ece2890cf0fc62096a01ef2c52e384 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1137,9 +1137,15 @@ public final class CraftServer implements Server { diff --git a/patches/server/0540-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0530-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0540-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0530-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0541-Item-Rarity-API.patch b/patches/server/0531-Item-Rarity-API.patch similarity index 100% rename from patches/server/0541-Item-Rarity-API.patch rename to patches/server/0531-Item-Rarity-API.patch diff --git a/patches/server/0542-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0532-Drop-carried-item-when-player-has-disconnected.patch similarity index 100% rename from patches/server/0542-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0532-Drop-carried-item-when-player-has-disconnected.patch diff --git a/patches/server/0543-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0533-forced-whitelist-use-configurable-kick-message.patch similarity index 92% rename from patches/server/0543-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0533-forced-whitelist-use-configurable-kick-message.patch index 8798f4c76d90..a307882c3080 100644 --- a/patches/server/0543-forced-whitelist-use-configurable-kick-message.patch +++ b/patches/server/0533-forced-whitelist-use-configurable-kick-message.patch @@ -5,7 +5,7 @@ Subject: [PATCH] forced whitelist: use configurable kick message diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e048caafe645e33764a26154b5150c5c5de5b1ad..ccb26a6ccd7b5eb493d926ba0fcff22b924280d0 100644 +index 849161e11d547445d9bd10ac54bcd994a62aab06..22ffae1e5b0ea77b9c9330f521e31af77fe0d276 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2170,7 +2170,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { +@@ -633,6 +633,7 @@ public class Connection extends SimpleChannelInboundHandler> { } else { this.channel.pipeline().addBefore("encoder", "compress", new CompressionEncoder(compressionThreshold)); } @@ -133,7 +133,7 @@ index dd7deb9175059857c59c85c745053cc88a922d3b..6e75a5e7eb51a5bbb7b73436bbd37df1 } else { if (this.channel.pipeline().get("decompress") instanceof CompressionDecoder) { this.channel.pipeline().remove("decompress"); -@@ -725,6 +726,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -641,6 +642,7 @@ public class Connection extends SimpleChannelInboundHandler> { if (this.channel.pipeline().get("compress") instanceof CompressionEncoder) { this.channel.pipeline().remove("compress"); } @@ -142,10 +142,10 @@ index dd7deb9175059857c59c85c745053cc88a922d3b..6e75a5e7eb51a5bbb7b73436bbd37df1 } diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index dfa07c9ede9d748a05ee47826bdbcf7390ec8219..b69483e248cd84293b9d4b9df2f5ccd2a80c14cd 100644 +index 3b6bafb242d2623c15f26acdacd036478c7dc214..25ddfe8e5da65e4ac70be2820ba139e7f3852c0c 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -@@ -116,6 +116,7 @@ public class ServerConnectionListener { +@@ -113,6 +113,7 @@ public class ServerConnectionListener { pending.add(object); // Paper - prevent blocking on adding a new connection while the server is ticking ((Connection) object).configurePacketHandler(channelpipeline); ((Connection) object).setListenerForServerboundHandshake(new ServerHandshakePacketListenerImpl(ServerConnectionListener.this.server, (Connection) object)); diff --git a/patches/server/0562-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0552-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0562-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0552-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0563-Add-more-WanderingTrader-API.patch b/patches/server/0553-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0563-Add-more-WanderingTrader-API.patch rename to patches/server/0553-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0564-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0554-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0564-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0554-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0565-Entity-load-save-limit-per-chunk.patch b/patches/server/0555-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/server/0565-Entity-load-save-limit-per-chunk.patch rename to patches/server/0555-Entity-load-save-limit-per-chunk.patch diff --git a/patches/server/0566-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0556-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0566-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0556-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0567-Inventory-close.patch b/patches/server/0557-Inventory-close.patch similarity index 100% rename from patches/server/0567-Inventory-close.patch rename to patches/server/0557-Inventory-close.patch diff --git a/patches/server/0568-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0558-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0568-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0558-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0569-Add-basic-Datapack-API.patch b/patches/server/0559-Add-basic-Datapack-API.patch similarity index 98% rename from patches/server/0569-Add-basic-Datapack-API.patch rename to patches/server/0559-Add-basic-Datapack-API.patch index ae53379499c9..1c365df031a0 100644 --- a/patches/server/0569-Add-basic-Datapack-API.patch +++ b/patches/server/0559-Add-basic-Datapack-API.patch @@ -92,7 +92,7 @@ index 0000000000000000000000000000000000000000..cf4374493c11057451a62a655514415c + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index cd3131c2ebac59a1a2a05fe0216214d9b301abfe..6fff086f1a6ffd02945ac30d5041b61d289e8478 100644 +index 59935e2557ece2890cf0fc62096a01ef2c52e384..e776a28e9b7d817bde2ce57eb05bd0caed7c2b20 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -301,6 +301,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0570-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0560-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0570-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0560-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0571-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0561-Expand-PlayerGameModeChangeEvent.patch similarity index 95% rename from patches/server/0571-Expand-PlayerGameModeChangeEvent.patch rename to patches/server/0561-Expand-PlayerGameModeChangeEvent.patch index 8d6a1c2a7b43..43f9246e99aa 100644 --- a/patches/server/0571-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0561-Expand-PlayerGameModeChangeEvent.patch @@ -45,10 +45,10 @@ index aee8618e27b893b72931e925724dd683d2e6d2aa..f7c9127346261d83413ca03a1cdaa849 } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 449bd6d823746b5d6bbcbde54eeb3105f9cf9f04..d295098c311b4a63bc1bb8a8b53e832c6ecf75cf 100644 +index 75bd3de7bc1596a4782b82e30162d89aa3e99211..d1d7f4c3963986031ea26562549ee15c8232a5a9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1989,8 +1989,16 @@ public class ServerPlayer extends Player { +@@ -1985,8 +1985,16 @@ public class ServerPlayer extends Player { } public boolean setGameMode(GameType gameMode) { @@ -67,7 +67,7 @@ index 449bd6d823746b5d6bbcbde54eeb3105f9cf9f04..d295098c311b4a63bc1bb8a8b53e832c } else { this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, (float) gameMode.getId())); if (gameMode == GameType.SPECTATOR) { -@@ -2002,7 +2010,7 @@ public class ServerPlayer extends Player { +@@ -1998,7 +2006,7 @@ public class ServerPlayer extends Player { this.onUpdateAbilities(); this.updateEffectVisibility(); @@ -76,7 +76,7 @@ index 449bd6d823746b5d6bbcbde54eeb3105f9cf9f04..d295098c311b4a63bc1bb8a8b53e832c } } -@@ -2414,6 +2422,16 @@ public class ServerPlayer extends Player { +@@ -2410,6 +2418,16 @@ public class ServerPlayer extends Player { } public void loadGameTypes(@Nullable CompoundTag nbt) { @@ -94,7 +94,7 @@ index 449bd6d823746b5d6bbcbde54eeb3105f9cf9f04..d295098c311b4a63bc1bb8a8b53e832c } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index a157ccbedb94f287c610975d6c3cfb66a3bddbe8..03b337ce5ccb1db61dc395b91b061a2aecf8fbf6 100644 +index f66ce9ae705b0fbe17a1bb437bad6808ff47ed92..37513cf5714afda6c552219c2eca8134c054d2bb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -73,21 +73,28 @@ public class ServerPlayerGameMode { @@ -144,7 +144,7 @@ index cc393b070f6df598bd4523605d20900c622eac1b..e0e09e9d127cd54ece239c0c1e931bb8 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8b23a8fbdc1db7043969ca0a36c59dffd92782d3..44a63ead4c00e82254de8d41a3711cf3e1c4f083 100644 +index a0e33c3b6e8134ec7570a8c160da41c4a92d5040..7b5fd058817f27ffefcdc7e3667e8258a87cbb4c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1559,7 +1559,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0572-ItemStack-repair-check-API.patch b/patches/server/0562-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0572-ItemStack-repair-check-API.patch rename to patches/server/0562-ItemStack-repair-check-API.patch diff --git a/patches/server/0573-More-Enchantment-API.patch b/patches/server/0563-More-Enchantment-API.patch similarity index 100% rename from patches/server/0573-More-Enchantment-API.patch rename to patches/server/0563-More-Enchantment-API.patch diff --git a/patches/server/0574-Move-range-check-for-block-placing-up.patch b/patches/server/0564-Move-range-check-for-block-placing-up.patch similarity index 100% rename from patches/server/0574-Move-range-check-for-block-placing-up.patch rename to patches/server/0564-Move-range-check-for-block-placing-up.patch diff --git a/patches/server/0575-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0565-Fix-and-optimise-world-force-upgrading.patch similarity index 97% rename from patches/server/0575-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0565-Fix-and-optimise-world-force-upgrading.patch index 99e215313fed..bd90d086b70c 100644 --- a/patches/server/0575-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0565-Fix-and-optimise-world-force-upgrading.patch @@ -267,7 +267,7 @@ index 1cad3585ca122a465572b16d4ecbb7231e87c7de..b0a0909fa9501dfacfbe70dc4118062d Main.LOGGER.info("Forcing world upgrade! {}", session.getLevelId()); // CraftBukkit WorldUpgrader worldupgrader = new WorldUpgrader(session, dataFixer, dimensionOptionsRegistry, eraseCache); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ccb26a6ccd7b5eb493d926ba0fcff22b924280d0..e789a6369c792e577e918fcb44bb59c6c5f71d49 100644 +index 22ffae1e5b0ea77b9c9330f521e31af77fe0d276..ad6a0f1a1a9ed11760098b700e8f305faf066fcd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -583,11 +583,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions public java.util.ArrayDeque redstoneUpdateInfos; // Paper - Faster redstone torch rapid clock removal; Move from Map in BlockRedstoneTorch to here @@ -318,7 +318,7 @@ index b0c61b274c24e2ced86a6acc0ea007a80e61fd3e..50db0a36c17791373fcae1c7b80f7353 return this.world; } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 8563383d45f89ee01dd5df13af5bd0cf1b3d7b01..9e30b47ece5549c30f487e5542ae65d5faaa8c39 100644 +index e9cfbee008c1dda2eeac55196d490984fa62ab09..eeccc924dbba6f860245611eb943c9219471f670 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -60,6 +60,29 @@ public class RegionFileStorage implements AutoCloseable { @@ -352,7 +352,7 @@ index 8563383d45f89ee01dd5df13af5bd0cf1b3d7b01..9e30b47ece5549c30f487e5542ae65d5 return this.regionCache.getAndMoveToFirst(ChunkPos.asLong(chunkcoordintpair.getRegionX(), chunkcoordintpair.getRegionZ())); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6fff086f1a6ffd02945ac30d5041b61d289e8478..ffc6e2a5e2b6e3f4595249d470e531cd555789af 100644 +index e776a28e9b7d817bde2ce57eb05bd0caed7c2b20..980bf1f65db95533b757a757dcfda3d6970fcc8b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1251,9 +1251,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0576-Add-Mob-lookAt-API.patch b/patches/server/0566-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0576-Add-Mob-lookAt-API.patch rename to patches/server/0566-Add-Mob-lookAt-API.patch diff --git a/patches/server/0577-Add-Unix-domain-socket-support.patch b/patches/server/0567-Add-Unix-domain-socket-support.patch similarity index 97% rename from patches/server/0577-Add-Unix-domain-socket-support.patch rename to patches/server/0567-Add-Unix-domain-socket-support.patch index 1f06b5c59b89..dc0ef2400857 100644 --- a/patches/server/0577-Add-Unix-domain-socket-support.patch +++ b/patches/server/0567-Add-Unix-domain-socket-support.patch @@ -47,10 +47,10 @@ index 143720bfa65e08262b96afbe53d6cf42bc326052..70fd0256a58f66122629572a72f90fb2 DedicatedServer.LOGGER.warn("**** FAILED TO BIND TO PORT!"); DedicatedServer.LOGGER.warn("The exception was: {}", ioexception.toString()); diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index b69483e248cd84293b9d4b9df2f5ccd2a80c14cd..13fc9b88c06b0436d23039ef4686f3a88589447e 100644 +index 25ddfe8e5da65e4ac70be2820ba139e7f3852c0c..87abd6274f9da9367094bad0c28acfa47e01c50e 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -@@ -78,7 +78,12 @@ public class ServerConnectionListener { +@@ -76,7 +76,12 @@ public class ServerConnectionListener { this.running = true; } @@ -63,7 +63,7 @@ index b69483e248cd84293b9d4b9df2f5ccd2a80c14cd..13fc9b88c06b0436d23039ef4686f3a8 List list = this.channels; synchronized (this.channels) { -@@ -86,7 +91,13 @@ public class ServerConnectionListener { +@@ -84,7 +89,13 @@ public class ServerConnectionListener { EventLoopGroup eventloopgroup; if (Epoll.isAvailable() && this.server.isEpollEnabled()) { @@ -77,7 +77,7 @@ index b69483e248cd84293b9d4b9df2f5ccd2a80c14cd..13fc9b88c06b0436d23039ef4686f3a8 eventloopgroup = (EventLoopGroup) ServerConnectionListener.SERVER_EPOLL_EVENT_GROUP.get(); ServerConnectionListener.LOGGER.info("Using epoll channel type"); } else { -@@ -118,7 +129,7 @@ public class ServerConnectionListener { +@@ -115,7 +126,7 @@ public class ServerConnectionListener { ((Connection) object).setListenerForServerboundHandshake(new ServerHandshakePacketListenerImpl(ServerConnectionListener.this.server, (Connection) object)); io.papermc.paper.network.ChannelInitializeListenerHolder.callListeners(channel); // Paper - Add Channel initialization listeners } diff --git a/patches/server/0578-Add-EntityInsideBlockEvent.patch b/patches/server/0568-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0578-Add-EntityInsideBlockEvent.patch rename to patches/server/0568-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0579-Attributes-API-for-item-defaults.patch b/patches/server/0569-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0579-Attributes-API-for-item-defaults.patch rename to patches/server/0569-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0580-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0570-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 93% rename from patches/server/0580-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0570-Add-cause-to-Weather-ThunderChangeEvents.patch index 4e867eaaa611..b05abf2ec822 100644 --- a/patches/server/0580-Add-cause-to-Weather-ThunderChangeEvents.patch +++ b/patches/server/0570-Add-cause-to-Weather-ThunderChangeEvents.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add cause to Weather/ThunderChangeEvents diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a27dd0fe48f018e5e2f99e00d8ef5d1f61cea635..2abfa8df53a0cbb1abefd5ee121ccdc6524d8523 100644 +index 901d9f47a63f5c6ddd596c7d327abd06f5a17f16..497dd11d7965c9f9a2cf991712cd30d875537240 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -667,8 +667,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -668,8 +668,8 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setClearWeatherTime(clearDuration); this.serverLevelData.setRainTime(rainDuration); this.serverLevelData.setThunderTime(rainDuration); @@ -19,7 +19,7 @@ index a27dd0fe48f018e5e2f99e00d8ef5d1f61cea635..2abfa8df53a0cbb1abefd5ee121ccdc6 } @Override -@@ -1104,8 +1104,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1105,8 +1105,8 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setThunderTime(j); this.serverLevelData.setRainTime(k); this.serverLevelData.setClearWeatherTime(i); @@ -30,7 +30,7 @@ index a27dd0fe48f018e5e2f99e00d8ef5d1f61cea635..2abfa8df53a0cbb1abefd5ee121ccdc6 } this.oThunderLevel = this.thunderLevel; -@@ -1172,14 +1172,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1173,14 +1173,14 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting public void resetWeatherCycle() { // CraftBukkit start @@ -95,10 +95,10 @@ index f5ac36fa54f3d3b39de103c95abb9ca3adfe8dda..59ba982dc96ce47e47399514e8f74d2b if (weather.isCancelled()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0f6d279475d296e644ff8be39644557afe683398..bce1253ce219db35bf31ec05e36dfede845bdf46 100644 +index dc36b7686a3d06c07a00e319a2af872bd77d49ef..2d1d2f8db7ebb0d813eea2fdb2fc0044e601aade 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1243,7 +1243,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1193,7 +1193,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void setStorm(boolean hasStorm) { @@ -107,7 +107,7 @@ index 0f6d279475d296e644ff8be39644557afe683398..bce1253ce219db35bf31ec05e36dfede this.setWeatherDuration(0); // Reset weather duration (legacy behaviour) this.setClearWeatherDuration(0); // Reset clear weather duration (reset "/weather clear" commands) } -@@ -1265,7 +1265,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1215,7 +1215,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void setThundering(boolean thundering) { diff --git a/patches/server/0581-More-Lidded-Block-API.patch b/patches/server/0571-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0581-More-Lidded-Block-API.patch rename to patches/server/0571-More-Lidded-Block-API.patch diff --git a/patches/server/0582-Limit-item-frame-cursors-on-maps.patch b/patches/server/0572-Limit-item-frame-cursors-on-maps.patch similarity index 88% rename from patches/server/0582-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0572-Limit-item-frame-cursors-on-maps.patch index d25538d723d8..8b38d8900ac8 100644 --- a/patches/server/0582-Limit-item-frame-cursors-on-maps.patch +++ b/patches/server/0572-Limit-item-frame-cursors-on-maps.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Limit item frame cursors on maps diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -index 5992f450f01349ce49286c34b8af56737de01a45..45269115e63cfc3bd7dc740a5694e2cc7c35bcb1 100644 +index 0ca0808c5eeeba969c048b422af37a273217ff52..ed57ce12d4d1cc632431a654cad648a8015402b1 100644 --- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -@@ -302,8 +302,10 @@ public class MapItemSavedData extends SavedData { +@@ -299,8 +299,10 @@ public class MapItemSavedData extends SavedData { MapFrame worldmapframe1 = new MapFrame(blockposition, entityitemframe.getDirection().get2DDataValue() * 90, entityitemframe.getId()); @@ -19,7 +19,7 @@ index 5992f450f01349ce49286c34b8af56737de01a45..45269115e63cfc3bd7dc740a5694e2cc } CompoundTag nbttagcompound = stack.getTag(); -@@ -485,7 +487,7 @@ public class MapItemSavedData extends SavedData { +@@ -482,7 +484,7 @@ public class MapItemSavedData extends SavedData { return true; } diff --git a/patches/server/0583-Add-PlayerKickEvent-causes.patch b/patches/server/0573-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/server/0583-Add-PlayerKickEvent-causes.patch rename to patches/server/0573-Add-PlayerKickEvent-causes.patch diff --git a/patches/server/0584-Add-PufferFishStateChangeEvent.patch b/patches/server/0574-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0584-Add-PufferFishStateChangeEvent.patch rename to patches/server/0574-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0585-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0575-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0585-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0575-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0586-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0576-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 71% rename from patches/server/0586-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0576-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch index e8ae16c85163..4a44dd7ad087 100644 --- a/patches/server/0586-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch +++ b/patches/server/0576-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch @@ -14,11 +14,11 @@ contention situations. And this is extremely a low contention situation. diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 98e720a21432fff7fce8653095a56e2ef56f1d30..27122a06e172c8d54104c115dfda668a52ff1cde 100644 +index 1219200cd915d6239a32a2bd09d325cd8fa9b346..dfae0918079425df92d958b04275be8ae60d4b60 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -@@ -33,14 +33,14 @@ public class PalettedContainer implements PaletteResize, PalettedContainer - private final T @org.jetbrains.annotations.Nullable [] presetValues; // Paper - Anti-Xray - Add preset values +@@ -32,14 +32,14 @@ public class PalettedContainer implements PaletteResize, PalettedContainer + public final IdMap registry; private volatile PalettedContainer.Data data; private final PalettedContainer.Strategy strategy; - private final ThreadingDetector threadingDetector = new ThreadingDetector("PalettedContainer"); @@ -34,17 +34,17 @@ index 98e720a21432fff7fce8653095a56e2ef56f1d30..27122a06e172c8d54104c115dfda668a + // this.threadingDetector.checkAndUnlock(); // Paper - disable this } - // Paper start - Anti-Xray - Add preset values -@@ -130,7 +130,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer + public static Codec> codecRW(IdMap idList, Codec entryCodec, PalettedContainer.Strategy paletteProvider, T defaultValue) { +@@ -91,7 +91,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer } @Override - public int onResize(int newBits, T object) { + public synchronized int onResize(int newBits, T object) { // Paper - synchronize PalettedContainer.Data data = this.data; - - // Paper start - Anti-Xray - Add preset values -@@ -177,7 +177,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer + PalettedContainer.Data data2 = this.createOrReuseData(data, newBits); + data2.copyFrom(data.palette, data.storage); +@@ -116,7 +116,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer return this.getAndSet(this.strategy.getIndex(x, y, z), value); } @@ -53,7 +53,7 @@ index 98e720a21432fff7fce8653095a56e2ef56f1d30..27122a06e172c8d54104c115dfda668a int i = this.data.palette.idFor(value); int j = this.data.storage.getAndSet(index, i); return this.data.palette.valueFor(j); -@@ -194,7 +194,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -133,7 +133,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer } @@ -62,7 +62,7 @@ index 98e720a21432fff7fce8653095a56e2ef56f1d30..27122a06e172c8d54104c115dfda668a int i = this.data.palette.idFor(value); this.data.storage.set(index, i); } -@@ -219,7 +219,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -158,7 +158,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer }); } @@ -71,16 +71,16 @@ index 98e720a21432fff7fce8653095a56e2ef56f1d30..27122a06e172c8d54104c115dfda668a this.acquire(); try { -@@ -239,7 +239,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer - @Override - @Deprecated @io.papermc.paper.annotation.DoNotUse public void write(FriendlyByteBuf buf) { this.write(buf, null, 0); } +@@ -174,7 +174,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer + } + @Override -- public void write(FriendlyByteBuf buf, @Nullable com.destroystokyo.paper.antixray.ChunkPacketInfo chunkPacketInfo, int chunkSectionIndex) { -+ public synchronized void write(FriendlyByteBuf buf, @Nullable com.destroystokyo.paper.antixray.ChunkPacketInfo chunkPacketInfo, int chunkSectionIndex) { // Paper - synchronize +- public void write(FriendlyByteBuf buf) { ++ public synchronized void write(FriendlyByteBuf buf) { // Paper - synchronize this.acquire(); try { -@@ -299,7 +299,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer +@@ -229,7 +229,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer } @Override diff --git a/patches/server/0587-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0577-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0587-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0577-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0588-Add-BellRevealRaiderEvent.patch b/patches/server/0578-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0588-Add-BellRevealRaiderEvent.patch rename to patches/server/0578-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0589-Fix-invulnerable-end-crystals.patch b/patches/server/0579-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0589-Fix-invulnerable-end-crystals.patch rename to patches/server/0579-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0590-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0580-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0590-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0580-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0591-Fix-dangerous-end-portal-logic.patch b/patches/server/0581-Fix-dangerous-end-portal-logic.patch similarity index 94% rename from patches/server/0591-Fix-dangerous-end-portal-logic.patch rename to patches/server/0581-Fix-dangerous-end-portal-logic.patch index c59b55b1ff9c..4d76ad7b0d82 100644 --- a/patches/server/0591-Fix-dangerous-end-portal-logic.patch +++ b/patches/server/0581-Fix-dangerous-end-portal-logic.patch @@ -11,10 +11,10 @@ Move the tick logic into the post tick, where portaling was designed to happen in the first place. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d80d849e9991da00f6aa63913407bf7fd368cadf..4a0c8976df5164423daee48f2d9494e8eb8080a8 100644 +index d2c2dd79cc6f484306bd1ab523cb4d9283131d1b..002979f629798a8d39013c3a905f9b356abd115c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -487,6 +487,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -485,6 +485,36 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public boolean updatingSectionStatus = false; // Paper end @@ -51,7 +51,7 @@ index d80d849e9991da00f6aa63913407bf7fd368cadf..4a0c8976df5164423daee48f2d9494e8 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -2844,6 +2874,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2833,6 +2863,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.processPortalCooldown(); diff --git a/patches/server/0592-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0582-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0592-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0582-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0593-Make-item-validations-configurable.patch b/patches/server/0583-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0593-Make-item-validations-configurable.patch rename to patches/server/0583-Make-item-validations-configurable.patch diff --git a/patches/server/0594-Line-Of-Sight-Changes.patch b/patches/server/0584-Line-Of-Sight-Changes.patch similarity index 91% rename from patches/server/0594-Line-Of-Sight-Changes.patch rename to patches/server/0584-Line-Of-Sight-Changes.patch index 644ecc7044c1..b8bd894c7466 100644 --- a/patches/server/0594-Line-Of-Sight-Changes.patch +++ b/patches/server/0584-Line-Of-Sight-Changes.patch @@ -5,16 +5,16 @@ Subject: [PATCH] Line Of Sight Changes diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c7070680373145caaa2d94df15590bb308361fea..c7752c20c8e83c21cf96e0cedf9a8269775f51e5 100644 +index 297fb36316df04903bd083af523c6b35c284ac7b..cedd1f8063504cc58b2735a8d53a3c39a605bf5f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3606,7 +3606,8 @@ public abstract class LivingEntity extends Entity implements Attackable { Vec3 vec3d = new Vec3(this.getX(), this.getEyeY(), this.getZ()); Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ()); -- return vec3d1.distanceTo(vec3d) > 128.0D ? false : this.level().clipDirect(vec3d, vec3d1, net.minecraft.world.phys.shapes.CollisionContext.of(this)) == HitResult.Type.MISS; // Paper +- return vec3d1.distanceTo(vec3d) > 128.0D ? false : this.level().clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this)).getType() == HitResult.Type.MISS; + // Paper - diff on change - used in CraftLivingEntity#hasLineOfSight(Location) and CraftWorld#lineOfSightExists -+ return vec3d1.distanceToSqr(vec3d) > 128.0D * 128.0D ? false : this.level().clipDirect(vec3d, vec3d1, net.minecraft.world.phys.shapes.CollisionContext.of(this)) == HitResult.Type.MISS; // Paper - Perf: Use distance squared ++ return vec3d1.distanceToSqr(vec3d) > 128.0D * 128.0D ? false : this.level().clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this)).getType() == HitResult.Type.MISS; // Paper - Perf: Use distance squared } } diff --git a/patches/server/0595-add-per-world-spawn-limits.patch b/patches/server/0585-add-per-world-spawn-limits.patch similarity index 91% rename from patches/server/0595-add-per-world-spawn-limits.patch rename to patches/server/0585-add-per-world-spawn-limits.patch index 2be5b3262a82..e1329a1ea60f 100644 --- a/patches/server/0595-add-per-world-spawn-limits.patch +++ b/patches/server/0585-add-per-world-spawn-limits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] add per world spawn limits diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index bce1253ce219db35bf31ec05e36dfede845bdf46..0fdc047f55473d9a208fe344b20787fdd6f23fd9 100644 +index 2d1d2f8db7ebb0d813eea2fdb2fc0044e601aade..a1557d6904304d510040b8c5ecb06b89cd2fe346 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -215,6 +215,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0596-Fix-potions-splash-events.patch b/patches/server/0586-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0596-Fix-potions-splash-events.patch rename to patches/server/0586-Fix-potions-splash-events.patch diff --git a/patches/server/0597-Add-more-LimitedRegion-API.patch b/patches/server/0587-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0597-Add-more-LimitedRegion-API.patch rename to patches/server/0587-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0598-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0588-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 86% rename from patches/server/0598-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0588-Fix-PlayerDropItemEvent-using-wrong-item.patch index 3fddefdb9919..fd228bc63cde 100644 --- a/patches/server/0598-Fix-PlayerDropItemEvent-using-wrong-item.patch +++ b/patches/server/0588-Fix-PlayerDropItemEvent-using-wrong-item.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix PlayerDropItemEvent using wrong item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d295098c311b4a63bc1bb8a8b53e832c6ecf75cf..da43449e16ac281daf32df66cae5b23f35b160ee 100644 +index d1d7f4c3963986031ea26562549ee15c8232a5a9..64b31447847d3b40ba00c4e6708d68113f2ef2bd 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2391,7 +2391,7 @@ public class ServerPlayer extends Player { +@@ -2387,7 +2387,7 @@ public class ServerPlayer extends Player { if (retainOwnership) { if (!itemstack1.isEmpty()) { @@ -18,7 +18,7 @@ index d295098c311b4a63bc1bb8a8b53e832c6ecf75cf..da43449e16ac281daf32df66cae5b23f this.awardStat(Stats.DROP); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 14b96e150ea6c2068a48e1713ba98f81c8aabb54..fd28898a150a13d3e18bb46145e4b2e827b42aee 100644 +index d6960cfe647f7ad8c2279b30d8af8a0e11be829f..7899b55fd6f4099241d23be750669f7a9863cf0c 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -725,6 +725,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0599-Missing-Entity-API.patch b/patches/server/0589-Missing-Entity-API.patch similarity index 100% rename from patches/server/0599-Missing-Entity-API.patch rename to patches/server/0589-Missing-Entity-API.patch diff --git a/patches/server/0600-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0590-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 100% rename from patches/server/0600-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0590-Ensure-disconnect-for-book-edit-is-called-on-main.patch diff --git a/patches/server/0601-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0591-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0601-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0591-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0602-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0592-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 86% rename from patches/server/0602-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0592-Use-getChunkIfLoadedImmediately-in-places.patch index 9652ea5ee706..f15ccf89a0c4 100644 --- a/patches/server/0602-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0592-Use-getChunkIfLoadedImmediately-in-places.patch @@ -8,10 +8,10 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk load in that case). diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2abfa8df53a0cbb1abefd5ee121ccdc6524d8523..97abb99f6fd3e718771a928d3aacc9d0042c7250 100644 +index 497dd11d7965c9f9a2cf991712cd30d875537240..49c23f4fbafbae516f3546c200448c400a6b0d5d 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -224,7 +224,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -225,7 +225,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent public LevelChunk getChunkIfLoaded(int x, int z) { @@ -21,10 +21,10 @@ index 2abfa8df53a0cbb1abefd5ee121ccdc6524d8523..97abb99f6fd3e718771a928d3aacc9d0 @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index cd01f33799436af1aeeb2d9cd2acff164c3118ce..479d14c8c6e8acf2586c2af875515405bea2843f 100644 +index 6dad081aa935cf3be19a0e0b913b2aaf97206230..fb2e1f1d9fcc3d2d1bd37f136f6a06ae5ccf79a1 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -203,6 +203,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -196,6 +196,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return (CraftServer) Bukkit.getServer(); } @@ -37,7 +37,7 @@ index cd01f33799436af1aeeb2d9cd2acff164c3118ce..479d14c8c6e8acf2586c2af875515405 + public abstract ResourceKey getTypeKey(); - protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor + protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator) { // Paper - create paper world config diff --git a/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java b/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java index 0d5ae91a9b43df7b412968ab5faf5498c09169f9..37ae0f928440af5b2fdfe68ad6c9c54e8c95c82c 100644 --- a/src/main/java/net/minecraft/world/level/gameevent/GameEventDispatcher.java diff --git a/patches/server/0603-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0593-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0603-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0593-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0604-Add-PlayerArmSwingEvent.patch b/patches/server/0594-Add-PlayerArmSwingEvent.patch similarity index 100% rename from patches/server/0604-Add-PlayerArmSwingEvent.patch rename to patches/server/0594-Add-PlayerArmSwingEvent.patch diff --git a/patches/server/0605-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0595-Fix-kick-event-leave-message-not-being-sent.patch similarity index 97% rename from patches/server/0605-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/server/0595-Fix-kick-event-leave-message-not-being-sent.patch index d9feed0fa013..70477f1da1ec 100644 --- a/patches/server/0605-Fix-kick-event-leave-message-not-being-sent.patch +++ b/patches/server/0595-Fix-kick-event-leave-message-not-being-sent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix kick event leave message not being sent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index da43449e16ac281daf32df66cae5b23f35b160ee..17c11953df9308d228220e92736232376f02f248 100644 +index 64b31447847d3b40ba00c4e6708d68113f2ef2bd..5114543c1510d203bfa4e684357b94585919742f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -273,7 +273,6 @@ public class ServerPlayer extends Player { +@@ -269,7 +269,6 @@ public class ServerPlayer extends Player { public boolean joining = true; public boolean sentListPacket = false; public boolean supressTrackerForLogin = false; // Paper - Fire PlayerJoinEvent when Player is actually ready diff --git a/patches/server/0606-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0596-Add-config-for-mobs-immune-to-default-effects.patch similarity index 97% rename from patches/server/0606-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0596-Add-config-for-mobs-immune-to-default-effects.patch index 2ae8c665e870..b0f4052555bf 100644 --- a/patches/server/0606-Add-config-for-mobs-immune-to-default-effects.patch +++ b/patches/server/0596-Add-config-for-mobs-immune-to-default-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config for mobs immune to default effects diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c7752c20c8e83c21cf96e0cedf9a8269775f51e5..8438ca0157d8a27f76858d8f5139a5f8a699a65c 100644 +index cedd1f8063504cc58b2735a8d53a3c39a605bf5f..378e5bfd58caf21e9ebecc900f02163c64a48073 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1164,7 +1164,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0607-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0597-Don-t-apply-cramming-damage-to-players.patch similarity index 90% rename from patches/server/0607-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0597-Don-t-apply-cramming-damage-to-players.patch index f33a5fe0538e..de289eb5eb09 100644 --- a/patches/server/0607-Don-t-apply-cramming-damage-to-players.patch +++ b/patches/server/0597-Don-t-apply-cramming-damage-to-players.patch @@ -11,7 +11,7 @@ It does not make a lot of sense to damage players if they get crammed, For those who really want it a config option is provided. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 17c11953df9308d228220e92736232376f02f248..2535c002c45d2d92bc779d3c9198cf3c737bd7f2 100644 +index 5114543c1510d203bfa4e684357b94585919742f..415a48203aa150056cb224e3eb65a1f62f0741e7 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -95,6 +95,7 @@ import net.minecraft.util.Mth; @@ -22,7 +22,7 @@ index 17c11953df9308d228220e92736232376f02f248..2535c002c45d2d92bc779d3c9198cf3c import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; -@@ -1479,7 +1480,7 @@ public class ServerPlayer extends Player { +@@ -1475,7 +1476,7 @@ public class ServerPlayer extends Player { @Override public boolean isInvulnerableTo(DamageSource damageSource) { diff --git a/patches/server/0608-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0598-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0608-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0598-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0609-Add-missing-forceDrop-toggles.patch b/patches/server/0599-Add-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0609-Add-missing-forceDrop-toggles.patch rename to patches/server/0599-Add-missing-forceDrop-toggles.patch diff --git a/patches/server/0610-Stinger-API.patch b/patches/server/0600-Stinger-API.patch similarity index 100% rename from patches/server/0610-Stinger-API.patch rename to patches/server/0600-Stinger-API.patch diff --git a/patches/server/0611-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0601-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0611-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0601-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0612-Add-System.out-err-catcher.patch b/patches/server/0602-Add-System.out-err-catcher.patch similarity index 98% rename from patches/server/0612-Add-System.out-err-catcher.patch rename to patches/server/0602-Add-System.out-err-catcher.patch index 9077dcbce770..2b01eabadb77 100644 --- a/patches/server/0612-Add-System.out-err-catcher.patch +++ b/patches/server/0602-Add-System.out-err-catcher.patch @@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..a8e813ca89b033f061e695288b3383bd + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ffc6e2a5e2b6e3f4595249d470e531cd555789af..0b780946ace3a5c644e3ad4ab89c1a6179892087 100644 +index 980bf1f65db95533b757a757dcfda3d6970fcc8b..e437dac193b6aa301b35b847647ca6004334a092 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -303,6 +303,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0613-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0603-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0613-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0603-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0614-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0604-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 100% rename from patches/server/0614-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0604-Prevent-AFK-kick-while-watching-end-credits.patch diff --git a/patches/server/0615-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0605-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0615-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0605-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0616-Add-PlayerSetSpawnEvent.patch b/patches/server/0606-Add-PlayerSetSpawnEvent.patch similarity index 97% rename from patches/server/0616-Add-PlayerSetSpawnEvent.patch rename to patches/server/0606-Add-PlayerSetSpawnEvent.patch index 19210ea44521..cd6f103ac260 100644 --- a/patches/server/0616-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0606-Add-PlayerSetSpawnEvent.patch @@ -49,10 +49,10 @@ index a2d0699e8427b2262a2396495111125eccafbb66..15db9368227dbc29d07d74e85bd126b3 } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 2535c002c45d2d92bc779d3c9198cf3c737bd7f2..165d75cdc40af7e35d41fed242e11eedfc385c3f 100644 +index 415a48203aa150056cb224e3eb65a1f62f0741e7..770f99014f3cccbbc666f0aa8530dfb545ced7b6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1356,7 +1356,7 @@ public class ServerPlayer extends Player { +@@ -1352,7 +1352,7 @@ public class ServerPlayer extends Player { } else if (this.bedBlocked(blockposition, enumdirection)) { return Either.left(Player.BedSleepingProblem.OBSTRUCTED); } else { @@ -61,7 +61,7 @@ index 2535c002c45d2d92bc779d3c9198cf3c737bd7f2..165d75cdc40af7e35d41fed242e11eed if (this.level().isDay()) { return Either.left(Player.BedSleepingProblem.NOT_POSSIBLE_NOW); } else { -@@ -2311,44 +2311,50 @@ public class ServerPlayer extends Player { +@@ -2307,44 +2307,50 @@ public class ServerPlayer extends Player { return this.respawnForced; } @@ -145,7 +145,7 @@ index 2535c002c45d2d92bc779d3c9198cf3c737bd7f2..165d75cdc40af7e35d41fed242e11eed } else { this.respawnPosition = null; this.respawnDimension = Level.OVERWORLD; -@@ -2356,6 +2362,7 @@ public class ServerPlayer extends Player { +@@ -2352,6 +2358,7 @@ public class ServerPlayer extends Player { this.respawnForced = false; } diff --git a/patches/server/0617-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0607-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0617-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0607-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0618-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0608-Optimize-entity-tracker-passenger-checks.patch similarity index 90% rename from patches/server/0618-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0608-Optimize-entity-tracker-passenger-checks.patch index 524e1fabfbea..0908da447132 100644 --- a/patches/server/0618-Optimize-entity-tracker-passenger-checks.patch +++ b/patches/server/0608-Optimize-entity-tracker-passenger-checks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize entity tracker passenger checks diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 90d2fa5b90d64ddb28075a50f4478b464a29a285..7cdebafd7a9f5606980ae89c8f3823f9ce560a9e 100644 +index fb16216b54eea81fceaf3edafa69b554ad01c807..c21cea7975844e0a04daeb1fcffc26d55fc62025 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -79,7 +79,7 @@ public class ServerEntity { diff --git a/patches/server/0619-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0609-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0619-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0609-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0620-Add-EntityDamageItemEvent.patch b/patches/server/0610-Add-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0620-Add-EntityDamageItemEvent.patch rename to patches/server/0610-Add-EntityDamageItemEvent.patch diff --git a/patches/server/0621-Optimize-indirect-passenger-iteration.patch b/patches/server/0611-Optimize-indirect-passenger-iteration.patch similarity index 91% rename from patches/server/0621-Optimize-indirect-passenger-iteration.patch rename to patches/server/0611-Optimize-indirect-passenger-iteration.patch index d554a6baa647..b9595fffe44f 100644 --- a/patches/server/0621-Optimize-indirect-passenger-iteration.patch +++ b/patches/server/0611-Optimize-indirect-passenger-iteration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimize indirect passenger iteration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4a0c8976df5164423daee48f2d9494e8eb8080a8..cc72445c662107949d18ceec8285b7cf6871cc22 100644 +index 002979f629798a8d39013c3a905f9b356abd115c..22620662491547c2d689e5a703d80bfd723eaa77 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3889,20 +3889,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3878,20 +3878,34 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } private Stream getIndirectPassengersStream() { @@ -43,7 +43,7 @@ index 4a0c8976df5164423daee48f2d9494e8eb8080a8..cc72445c662107949d18ceec8285b7cf return () -> { return this.getIndirectPassengersStream().iterator(); }; -@@ -3925,6 +3939,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3914,6 +3928,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper end - rewrite chunk system public boolean hasExactlyOnePlayerPassenger() { diff --git a/patches/server/0622-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0612-Configurable-item-frame-map-cursor-update-interval.patch similarity index 93% rename from patches/server/0622-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0612-Configurable-item-frame-map-cursor-update-interval.patch index a1e4f933cb3e..382372348ed1 100644 --- a/patches/server/0622-Configurable-item-frame-map-cursor-update-interval.patch +++ b/patches/server/0612-Configurable-item-frame-map-cursor-update-interval.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable item frame map cursor update interval diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 7cdebafd7a9f5606980ae89c8f3823f9ce560a9e..04ca37b872a1585c55ac0b64d776073bf678ab0d 100644 +index c21cea7975844e0a04daeb1fcffc26d55fc62025..a83b4d9b61230ecf5f776269cab228cf49c5f546 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -117,7 +117,7 @@ public class ServerEntity { diff --git a/patches/server/0623-Clear-bucket-NBT-after-dispense.patch b/patches/server/0613-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0623-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0613-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0624-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0614-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0624-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0614-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0625-Add-BlockBreakBlockEvent.patch b/patches/server/0615-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0625-Add-BlockBreakBlockEvent.patch rename to patches/server/0615-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0626-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0616-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0626-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0616-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0627-More-CommandBlock-API.patch b/patches/server/0617-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0627-More-CommandBlock-API.patch rename to patches/server/0617-More-CommandBlock-API.patch diff --git a/patches/server/0628-Add-missing-team-sidebar-display-slots.patch b/patches/server/0618-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0628-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0618-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0629-Add-back-EntityPortalExitEvent.patch b/patches/server/0619-Add-back-EntityPortalExitEvent.patch similarity index 93% rename from patches/server/0629-Add-back-EntityPortalExitEvent.patch rename to patches/server/0619-Add-back-EntityPortalExitEvent.patch index 237027a30664..562783378c85 100644 --- a/patches/server/0629-Add-back-EntityPortalExitEvent.patch +++ b/patches/server/0619-Add-back-EntityPortalExitEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add back EntityPortalExitEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cc72445c662107949d18ceec8285b7cf6871cc22..5398bcce745c977aad083777e18c72fa93245107 100644 +index 22620662491547c2d689e5a703d80bfd723eaa77..e5f265d71fe10fe1c9cb1ec95958f0c42063e51c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3338,6 +3338,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3327,6 +3327,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start worldserver = shapedetectorshape.world; @@ -37,7 +37,7 @@ index cc72445c662107949d18ceec8285b7cf6871cc22..5398bcce745c977aad083777e18c72fa if (worldserver == this.level) { // SPIGOT-6782: Just move the entity if a plugin changed the world to the one the entity is already in this.moveTo(shapedetectorshape.pos.x, shapedetectorshape.pos.y, shapedetectorshape.pos.z, shapedetectorshape.yRot, shapedetectorshape.xRot); -@@ -3357,8 +3379,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3346,8 +3368,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (entity != null) { entity.restoreFrom(this); diff --git a/patches/server/0630-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0620-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 88% rename from patches/server/0630-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0620-Add-methods-to-find-targets-for-lightning-strikes.patch index ed62bced7888..b94fe69063d5 100644 --- a/patches/server/0630-Add-methods-to-find-targets-for-lightning-strikes.patch +++ b/patches/server/0620-Add-methods-to-find-targets-for-lightning-strikes.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Add methods to find targets for lightning strikes public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 97abb99f6fd3e718771a928d3aacc9d0042c7250..66b6cb42f2365b0d63cd8625715bdf997261b6ac 100644 +index 49c23f4fbafbae516f3546c200448c400a6b0d5d..669c9e43ee76ce2502ed49965aae2703b922f3b5 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -993,6 +993,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -994,6 +994,11 @@ public class ServerLevel extends Level implements WorldGenLevel { } protected BlockPos findLightningTargetAround(BlockPos pos) { @@ -22,7 +22,7 @@ index 97abb99f6fd3e718771a928d3aacc9d0042c7250..66b6cb42f2365b0d63cd8625715bdf99 BlockPos blockposition1 = this.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, pos); Optional optional = this.findLightningRod(blockposition1); -@@ -1007,6 +1012,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1008,6 +1013,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!list.isEmpty()) { return ((LivingEntity) list.get(this.random.nextInt(list.size()))).blockPosition(); } else { @@ -31,10 +31,10 @@ index 97abb99f6fd3e718771a928d3aacc9d0042c7250..66b6cb42f2365b0d63cd8625715bdf99 blockposition1 = blockposition1.above(2); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0fdc047f55473d9a208fe344b20787fdd6f23fd9..d1b77ffe565a112556c7a04057c82b827e8ea7aa 100644 +index a1557d6904304d510040b8c5ecb06b89cd2fe346..e03bd6419d4c28a329286edc5267b725de554105 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -701,6 +701,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -651,6 +651,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { return (LightningStrike) lightning.getBukkitEntity(); } diff --git a/patches/server/0631-Get-entity-default-attributes.patch b/patches/server/0621-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0631-Get-entity-default-attributes.patch rename to patches/server/0621-Get-entity-default-attributes.patch diff --git a/patches/server/0632-Left-handed-API.patch b/patches/server/0622-Left-handed-API.patch similarity index 100% rename from patches/server/0632-Left-handed-API.patch rename to patches/server/0622-Left-handed-API.patch diff --git a/patches/server/0633-Add-more-advancement-API.patch b/patches/server/0623-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0633-Add-more-advancement-API.patch rename to patches/server/0623-Add-more-advancement-API.patch diff --git a/patches/server/0634-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0624-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0634-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0624-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0635-Add-critical-damage-API.patch b/patches/server/0625-Add-critical-damage-API.patch similarity index 95% rename from patches/server/0635-Add-critical-damage-API.patch rename to patches/server/0625-Add-critical-damage-API.patch index 2c744adb8e6e..5669c3dbdd8e 100644 --- a/patches/server/0635-Add-critical-damage-API.patch +++ b/patches/server/0625-Add-critical-damage-API.patch @@ -28,10 +28,10 @@ index df8c88bfa749e02f633350446101dcce05db7ac1..ed1277fad60992344b94f8a939febaca + // Paper end - add critical damage API } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index fd28898a150a13d3e18bb46145e4b2e827b42aee..e248a519db685bc744a884f56ca1c13fb38aaebc 100644 +index 7899b55fd6f4099241d23be750669f7a9863cf0c..11cc72f764913de577ecd6293e5316ae8c2c679c 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1263,7 +1263,7 @@ public abstract class Player extends LivingEntity { +@@ -1255,7 +1255,7 @@ public abstract class Player extends LivingEntity { flag1 = true; } @@ -40,7 +40,7 @@ index fd28898a150a13d3e18bb46145e4b2e827b42aee..e248a519db685bc744a884f56ca1c13f flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits flag2 = flag2 && !this.isSprinting(); -@@ -1303,7 +1303,7 @@ public abstract class Player extends LivingEntity { +@@ -1295,7 +1295,7 @@ public abstract class Player extends LivingEntity { } Vec3 vec3d = target.getDeltaMovement(); @@ -49,7 +49,7 @@ index fd28898a150a13d3e18bb46145e4b2e827b42aee..e248a519db685bc744a884f56ca1c13f if (flag5) { if (i > 0) { -@@ -1331,7 +1331,7 @@ public abstract class Player extends LivingEntity { +@@ -1323,7 +1323,7 @@ public abstract class Player extends LivingEntity { if (entityliving != this && entityliving != target && !this.isAlliedTo((Entity) entityliving) && (!(entityliving instanceof ArmorStand) || !((ArmorStand) entityliving).isMarker()) && this.distanceToSqr((Entity) entityliving) < 9.0D) { // CraftBukkit start - Only apply knockback if the damage hits @@ -59,7 +59,7 @@ index fd28898a150a13d3e18bb46145e4b2e827b42aee..e248a519db685bc744a884f56ca1c13f } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 004c130fc03dc01ef75fabdb4ef1ef711e33cb95..ae4319c2532855315bc45995a39d7eb98961b939 100644 +index 0e1d4bd6f70e439b33eca57bf06e9e090825f58a..5f75e54cde19614461dd8375ded1d6b3c395f674 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -379,6 +379,7 @@ public abstract class AbstractArrow extends Projectile { diff --git a/patches/server/0636-Fix-issues-with-mob-conversion.patch b/patches/server/0626-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0636-Fix-issues-with-mob-conversion.patch rename to patches/server/0626-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0637-Add-isCollidable-methods-to-various-places.patch b/patches/server/0627-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0637-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0627-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0638-Goat-ram-API.patch b/patches/server/0628-Goat-ram-API.patch similarity index 100% rename from patches/server/0638-Goat-ram-API.patch rename to patches/server/0628-Goat-ram-API.patch diff --git a/patches/server/0639-Add-API-for-resetting-a-single-score.patch b/patches/server/0629-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0639-Add-API-for-resetting-a-single-score.patch rename to patches/server/0629-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0640-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0630-Add-Raw-Byte-Entity-Serialization.patch similarity index 96% rename from patches/server/0640-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0630-Add-Raw-Byte-Entity-Serialization.patch index b5e0cc8f286b..f84be24459e3 100644 --- a/patches/server/0640-Add-Raw-Byte-Entity-Serialization.patch +++ b/patches/server/0630-Add-Raw-Byte-Entity-Serialization.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Add Raw Byte Entity Serialization public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5398bcce745c977aad083777e18c72fa93245107..4335ba4821017a0f097d1664dbc8ef7ed957d807 100644 +index e5f265d71fe10fe1c9cb1ec95958f0c42063e51c..99b87b783dfb3d0e00e3e03e5721feaef1c1ecf0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2124,6 +2124,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2113,6 +2113,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } diff --git a/patches/server/0641-Vanilla-command-permission-fixes.patch b/patches/server/0631-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0641-Vanilla-command-permission-fixes.patch rename to patches/server/0631-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0642-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0632-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 89% rename from patches/server/0642-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0632-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch index 8465c7d892d6..1a394dadf173 100644 --- a/patches/server/0642-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch +++ b/patches/server/0632-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch @@ -9,10 +9,10 @@ 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/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 66b6cb42f2365b0d63cd8625715bdf997261b6ac..7da6bd04b6ea4f8bb99fe6dba9dd4ecaba96a284 100644 +index 669c9e43ee76ce2502ed49965aae2703b922f3b5..e6a3f377762db8f2f58cb6851b8f713ce591b29f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1558,9 +1558,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1540,9 +1540,13 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot Start for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) { if (tileentity instanceof net.minecraft.world.Container) { @@ -28,10 +28,10 @@ index 66b6cb42f2365b0d63cd8625715bdf997261b6ac..7da6bd04b6ea4f8bb99fe6dba9dd4eca } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 165d75cdc40af7e35d41fed242e11eedfc385c3f..9cd64d14d4b6df92bb30d0ad610f8af85791962a 100644 +index 770f99014f3cccbbc666f0aa8530dfb545ced7b6..bb313280236fb5c7dd2713a21edd3694e01a4fd1 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1630,6 +1630,18 @@ public class ServerPlayer extends Player { +@@ -1626,6 +1626,18 @@ public class ServerPlayer extends Player { this.connection.send(new ClientboundContainerClosePacket(this.containerMenu.containerId)); this.doCloseContainer(); } @@ -51,7 +51,7 @@ index 165d75cdc40af7e35d41fed242e11eedfc385c3f..9cd64d14d4b6df92bb30d0ad610f8af8 @Override public void doCloseContainer() { diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index e248a519db685bc744a884f56ca1c13fb38aaebc..e33278611e4f52ff01cf628c570bd3378ff5c071 100644 +index 11cc72f764913de577ecd6293e5316ae8c2c679c..712249fa1c1ce9af0dd07e8705bf944ac57842b5 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -508,6 +508,11 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0643-Fix-GameProfileCache-concurrency.patch b/patches/server/0633-Fix-GameProfileCache-concurrency.patch similarity index 98% rename from patches/server/0643-Fix-GameProfileCache-concurrency.patch rename to patches/server/0633-Fix-GameProfileCache-concurrency.patch index dd06a021e423..9c0776cd51be 100644 --- a/patches/server/0643-Fix-GameProfileCache-concurrency.patch +++ b/patches/server/0633-Fix-GameProfileCache-concurrency.patch @@ -7,7 +7,7 @@ Separate lookup and state access locks prevent lookups from stalling simple state access/write calls diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java -index 641cbe71064e9574e16e36f8107e1a08db25a24d..6fe9065c391804818b19fad2cf68d31aa8f1ae82 100644 +index 1ec0f3a7148c2f412421772f6e1dff0bb92a51bc..d45fe762941dd6da45c890706bc9e4c0438522c3 100644 --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java @@ -60,6 +60,11 @@ public class GameProfileCache { diff --git a/patches/server/0644-Improve-and-expand-AsyncCatcher.patch b/patches/server/0634-Improve-and-expand-AsyncCatcher.patch similarity index 96% rename from patches/server/0644-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0634-Improve-and-expand-AsyncCatcher.patch index bc8d25cf11fa..8f5e4158f87e 100644 --- a/patches/server/0644-Improve-and-expand-AsyncCatcher.patch +++ b/patches/server/0634-Improve-and-expand-AsyncCatcher.patch @@ -29,7 +29,7 @@ index fa6783305aae385723d6bdb83166e147b8ebcfe9..27bcfe893db83bb369186ccf1d48f28e if (player.isRemoved()) { LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName()); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8438ca0157d8a27f76858d8f5139a5f8a699a65c..bcb842a40ab97b4920e4e32cb3e6c8e1ff3081bd 100644 +index 378e5bfd58caf21e9ebecc900f02163c64a48073..61c8d108122e27f063d677e1d3130a4d3eeecb94 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1118,7 +1118,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -166,10 +166,10 @@ index bbbf6dd8e566ecdca8794e3b03765fe7e426a2bd..66ab901956ca394c251c420338643d39 PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason}); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d1b77ffe565a112556c7a04057c82b827e8ea7aa..989abde6b753a16b389c1145b3e6b337eb73c715 100644 +index e03bd6419d4c28a329286edc5267b725de554105..57b27317f28901df1bb3c10bf462d319d0c7b7c3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1803,6 +1803,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1753,6 +1753,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void playSound(Location loc, Sound sound, org.bukkit.SoundCategory category, float volume, float pitch, long seed) { @@ -177,7 +177,7 @@ index d1b77ffe565a112556c7a04057c82b827e8ea7aa..989abde6b753a16b389c1145b3e6b337 if (loc == null || sound == null || category == null) return; double x = loc.getX(); -@@ -1814,6 +1815,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1764,6 +1765,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void playSound(Location loc, String sound, org.bukkit.SoundCategory category, float volume, float pitch, long seed) { @@ -185,7 +185,7 @@ index d1b77ffe565a112556c7a04057c82b827e8ea7aa..989abde6b753a16b389c1145b3e6b337 if (loc == null || sound == null || category == null) return; double x = loc.getX(); -@@ -1846,6 +1848,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1796,6 +1798,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void playSound(Entity entity, Sound sound, org.bukkit.SoundCategory category, float volume, float pitch, long seed) { @@ -193,7 +193,7 @@ index d1b77ffe565a112556c7a04057c82b827e8ea7aa..989abde6b753a16b389c1145b3e6b337 if (!(entity instanceof CraftEntity craftEntity) || entity.getWorld() != this || sound == null || category == null) return; ClientboundSoundEntityPacket packet = new ClientboundSoundEntityPacket(CraftSound.bukkitToMinecraftHolder(sound), net.minecraft.sounds.SoundSource.valueOf(category.name()), craftEntity.getHandle(), volume, pitch, seed); -@@ -1857,6 +1860,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1807,6 +1810,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void playSound(Entity entity, String sound, org.bukkit.SoundCategory category, float volume, float pitch, long seed) { diff --git a/patches/server/0645-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0635-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 96% rename from patches/server/0645-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0635-Add-paper-mobcaps-and-paper-playermobcaps.patch index 2ed183d6228f..a006f92fb229 100644 --- a/patches/server/0645-Add-paper-mobcaps-and-paper-playermobcaps.patch +++ b/patches/server/0635-Add-paper-mobcaps-and-paper-playermobcaps.patch @@ -257,10 +257,10 @@ index 0000000000000000000000000000000000000000..d3b39d88a72ca25057fd8574d32f28db + } +} diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index b27e0f31d0b3f5c57157a27f1f1db0f847d42a0c..5a4db70543ab446630c1cf0252496b57edc4252a 100644 +index 4ad3a4403f497f4b437209a9e63445f0d29b09f1..28ec1cc4dec6d12627761a58d635fd51dbc398b3 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -@@ -190,6 +190,16 @@ public final class NaturalSpawner { +@@ -157,6 +157,16 @@ public final class NaturalSpawner { world.getProfiler().pop(); } @@ -275,10 +275,10 @@ index b27e0f31d0b3f5c57157a27f1f1db0f847d42a0c..5a4db70543ab446630c1cf0252496b57 + // Paper end - Add mobcaps commands + public static void spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner) { - // Paper start - Optional per player mob spawns - spawnCategoryForChunk(group, world, chunk, checker, runner, Integer.MAX_VALUE, null); + BlockPos blockposition = NaturalSpawner.getRandomPosWithin(world, chunk); + diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0b780946ace3a5c644e3ad4ab89c1a6179892087..b9e6d28d8eb982a404981ac4df71238bf30d0989 100644 +index e437dac193b6aa301b35b847647ca6004334a092..9ad1645c143d91ae9e08dfe3d875c9b0aa4d0844 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2279,6 +2279,11 @@ public final class CraftServer implements Server { @@ -294,10 +294,10 @@ index 0b780946ace3a5c644e3ad4ab89c1a6179892087..b9e6d28d8eb982a404981ac4df71238b } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 989abde6b753a16b389c1145b3e6b337eb73c715..1977368c44212eb290a1b141216bb3a880b3742e 100644 +index 57b27317f28901df1bb3c10bf462d319d0c7b7c3..a059b426e2d0280a318bd1c697056352b24ee9c3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1761,9 +1761,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1711,9 +1711,14 @@ public class CraftWorld extends CraftRegionAccessor implements World { Preconditions.checkArgument(spawnCategory != null, "SpawnCategory cannot be null"); Preconditions.checkArgument(CraftSpawnCategory.isValidForLimits(spawnCategory), "SpawnCategory.%s are not supported", spawnCategory); diff --git a/patches/server/0646-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0636-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0646-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0636-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0647-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0637-Manually-inline-methods-in-BlockPosition.patch similarity index 96% rename from patches/server/0647-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0637-Manually-inline-methods-in-BlockPosition.patch index 5771a5a3077a..e97ce21f71ff 100644 --- a/patches/server/0647-Manually-inline-methods-in-BlockPosition.patch +++ b/patches/server/0637-Manually-inline-methods-in-BlockPosition.patch @@ -45,7 +45,7 @@ index 3b3d81886d50ee6510ff366e11817a578c645089..541cef99113af865b995af2cfb7a1e47 } diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java -index 6d760fa1dbd13a66bff4695edc28f4ab4b3e44a3..beadef19ee136c27601f0d116a86967344c2e403 100644 +index 5256ff18d992250e04a6180e196c2d5d3f0928ca..369b54b96c682717ef93d05312714b4d30efaceb 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java +++ b/src/main/java/net/minecraft/core/Vec3i.java @@ -19,9 +19,9 @@ public class Vec3i implements Comparable { diff --git a/patches/server/0648-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0638-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0648-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0638-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0649-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0639-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 90% rename from patches/server/0649-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0639-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index b550d336f0a2..945af5ac436d 100644 --- a/patches/server/0649-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0639-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -10,10 +10,10 @@ chunks did get inlined, but the standard CPS.getChunkAt method was not inlined. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 80a5bd7a57ceb617752f645c1a4f046fea6e8de6..a9f963ba9306b840a3d97c9a39fc81b09340065f 100644 +index fb2e1f1d9fcc3d2d1bd37f136f6a06ae5ccf79a1..74cb6cf55ed9b4e31ac3c06d9612823f7ede9ff3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -457,6 +457,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -365,6 +365,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public final LevelChunk getChunk(int chunkX, int chunkZ) { // Paper - final to help inline diff --git a/patches/server/0650-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0640-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0650-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0640-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0651-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0641-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 90% rename from patches/server/0651-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/server/0641-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch index 20c27c4ea451..0ab3e48f486d 100644 --- a/patches/server/0651-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch +++ b/patches/server/0641-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch @@ -11,10 +11,10 @@ easy win. The remaining problems with this function are mostly with the block getting itself. diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index 618d6a94d695a3bf114307f85f0f151ee24f1879..7df62a219d0bcffc793c1a8c55b6ed244fdeb199 100644 +index c3760e0c8ac0b3ea200f4e1c237e250137a78caf..c978f3b2d42f512e982f289e76c2422e41b7eec6 100644 --- a/src/main/java/net/minecraft/world/level/BlockGetter.java +++ b/src/main/java/net/minecraft/world/level/BlockGetter.java -@@ -92,7 +92,8 @@ public interface BlockGetter extends LevelHeightAccessor { +@@ -79,7 +79,8 @@ public interface BlockGetter extends LevelHeightAccessor { return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo())); } // Paper end - Prevent raytrace from loading chunks diff --git a/patches/server/0652-Time-scoreboard-search.patch b/patches/server/0642-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0652-Time-scoreboard-search.patch rename to patches/server/0642-Time-scoreboard-search.patch diff --git a/patches/server/0653-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0643-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 94% rename from patches/server/0653-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/0643-Send-full-pos-packets-for-hard-colliding-entities.patch index f005ae7e715f..60fd4ee0735a 100644 --- a/patches/server/0653-Send-full-pos-packets-for-hard-colliding-entities.patch +++ b/patches/server/0643-Send-full-pos-packets-for-hard-colliding-entities.patch @@ -9,7 +9,7 @@ Configurable under `send-full-pos-for-hard-colliding-entities` diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 04ca37b872a1585c55ac0b64d776073bf678ab0d..e0802f1cb73a80b08482832c2b269ac8485d5c1a 100644 +index a83b4d9b61230ecf5f776269cab228cf49c5f546..75b722ebc6c1fc6a45a0d3a3e57b5f131f2cf815 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -177,7 +177,7 @@ public class ServerEntity { diff --git a/patches/server/0654-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0644-Oprimise-map-impl-for-tracked-players.patch similarity index 87% rename from patches/server/0654-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0644-Oprimise-map-impl-for-tracked-players.patch index c1df820c6a00..b5dd0be2c3ba 100644 --- a/patches/server/0654-Oprimise-map-impl-for-tracked-players.patch +++ b/patches/server/0644-Oprimise-map-impl-for-tracked-players.patch @@ -7,10 +7,10 @@ Reference2BooleanOpenHashMap is going to have better lookups than HashMap. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 9ddad716d641d649e09c094795240bd2e8c926b9..fea9355a25ab42f81504f90be7b3448044fa76dd 100644 +index 1ad4e5a0a4d236012c1dfb0dbffdacd0f134b72c..c0bc7495109a8d727c913e7cdc98d75a30bc7a55 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1199,7 +1199,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1115,7 +1115,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider final Entity entity; private final int range; SectionPos lastSectionPos; diff --git a/patches/server/0655-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0645-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 95% rename from patches/server/0655-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0645-Optimise-BlockSoil-nearby-water-lookup.patch index 467d7d58e753..b19240601646 100644 --- a/patches/server/0655-Optimise-BlockSoil-nearby-water-lookup.patch +++ b/patches/server/0645-Optimise-BlockSoil-nearby-water-lookup.patch @@ -7,7 +7,7 @@ Apparently the abstract block iteration was taking about 75% of the method call. diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index 6c1e8ba518c883aa5c079b4c94f068833609acc3..47eb8bf604a63259c0200cada1403dc005a6cbac 100644 +index 66106b821d7a384a2eb0f27993beb9f4257e6815..6e4c852c93f2418ea69e485ed3a10cbe3a6e3bd2 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -151,19 +151,28 @@ public class FarmBlock extends Block { diff --git a/patches/server/0656-Distance-manager-tick-timings.patch b/patches/server/0646-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0656-Distance-manager-tick-timings.patch rename to patches/server/0646-Distance-manager-tick-timings.patch diff --git a/patches/server/0657-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0647-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 90% rename from patches/server/0657-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0647-Fix-merchant-inventory-not-closing-on-entity-removal.patch index a728be53466c..d4e141ad1b58 100644 --- a/patches/server/0657-Fix-merchant-inventory-not-closing-on-entity-removal.patch +++ b/patches/server/0647-Fix-merchant-inventory-not-closing-on-entity-removal.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 7da6bd04b6ea4f8bb99fe6dba9dd4ecaba96a284..36ffc24778b307d239a8af43486ed54f78c7ea68 100644 +index e6a3f377762db8f2f58cb6851b8f713ce591b29f..6ece18d5429217ee53ca5ae5c0eb7450aa5f63ec 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2629,6 +2629,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2610,6 +2610,11 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message diff --git a/patches/server/0658-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0648-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0658-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0648-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0659-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0649-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 100% rename from patches/server/0659-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0649-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/server/0660-Add-packet-limiter-config.patch b/patches/server/0650-Add-packet-limiter-config.patch similarity index 96% rename from patches/server/0660-Add-packet-limiter-config.patch rename to patches/server/0650-Add-packet-limiter-config.patch index 0771f0d552da..38146c83421d 100644 --- a/patches/server/0660-Add-packet-limiter-config.patch +++ b/patches/server/0650-Add-packet-limiter-config.patch @@ -24,10 +24,10 @@ and an action can be defined: DROP or KICK If interval or rate are less-than 0, the limit is ignored diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 6e75a5e7eb51a5bbb7b73436bbd37df1519cb0fc..a0434b92615c10a319eb4528808a83d01df2c516 100644 +index c7e4d38f67a196b6334e0cc2b9ce9bd96fdc5b0a..e6a8f36fa07561b69b9d869022234182bdd62da0 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -132,6 +132,22 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -128,6 +128,22 @@ public class Connection extends SimpleChannelInboundHandler> { return null; } // Paper end - add utility methods @@ -50,7 +50,7 @@ index 6e75a5e7eb51a5bbb7b73436bbd37df1519cb0fc..a0434b92615c10a319eb4528808a83d0 public Connection(PacketFlow side) { this.receiving = side; -@@ -224,6 +240,55 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -220,6 +236,55 @@ public class Connection extends SimpleChannelInboundHandler> { if (packetlistener == null) { throw new IllegalStateException("Received a packet before the packet listener was initialized"); } else { diff --git a/patches/server/0661-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0651-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0661-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0651-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0662-Ensure-valid-vehicle-status.patch b/patches/server/0652-Ensure-valid-vehicle-status.patch similarity index 85% rename from patches/server/0662-Ensure-valid-vehicle-status.patch rename to patches/server/0652-Ensure-valid-vehicle-status.patch index c5d3159b8339..62d62c36bbe9 100644 --- a/patches/server/0662-Ensure-valid-vehicle-status.patch +++ b/patches/server/0652-Ensure-valid-vehicle-status.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Ensure valid vehicle status diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9cd64d14d4b6df92bb30d0ad610f8af85791962a..c1dd624e03c85eaba8733769dc650d33142af714 100644 +index bb313280236fb5c7dd2713a21edd3694e01a4fd1..20cdb362592714891d7676fbea6096dfe30447b0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -576,7 +576,7 @@ public class ServerPlayer extends Player { +@@ -572,7 +572,7 @@ public class ServerPlayer extends Player { } } diff --git a/patches/server/0663-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0653-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0663-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0653-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0664-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0654-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0664-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0654-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0665-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0655-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0665-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0655-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0666-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0656-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0666-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0656-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0667-Preserve-overstacked-loot.patch b/patches/server/0657-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0667-Preserve-overstacked-loot.patch rename to patches/server/0657-Preserve-overstacked-loot.patch diff --git a/patches/server/0668-Update-head-rotation-in-missing-places.patch b/patches/server/0658-Update-head-rotation-in-missing-places.patch similarity index 84% rename from patches/server/0668-Update-head-rotation-in-missing-places.patch rename to patches/server/0658-Update-head-rotation-in-missing-places.patch index 580638dc445a..d48b54c0ae74 100644 --- a/patches/server/0668-Update-head-rotation-in-missing-places.patch +++ b/patches/server/0658-Update-head-rotation-in-missing-places.patch @@ -8,10 +8,10 @@ This is because bukkit uses a separate head rotation field for yaw. This issue only applies to players. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4335ba4821017a0f097d1664dbc8ef7ed957d807..4fed53d9b23da65bbf2a0243a64403d4472e8407 100644 +index 99b87b783dfb3d0e00e3e03e5721feaef1c1ecf0..0dd2fcc51b7d07f68fdc630f7c73dcdc32282e90 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1841,6 +1841,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1830,6 +1830,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setXRot(Mth.clamp(pitch, -90.0F, 90.0F) % 360.0F); this.yRotO = this.getYRot(); this.xRotO = this.getXRot(); @@ -19,7 +19,7 @@ index 4335ba4821017a0f097d1664dbc8ef7ed957d807..4fed53d9b23da65bbf2a0243a64403d4 } public void absMoveTo(double x, double y, double z) { -@@ -1879,6 +1880,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1868,6 +1869,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setXRot(pitch); this.setOldPosAndRot(); this.reapplyPosition(); diff --git a/patches/server/0669-prevent-unintended-light-block-manipulation.patch b/patches/server/0659-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0669-prevent-unintended-light-block-manipulation.patch rename to patches/server/0659-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0670-Fix-CraftCriteria-defaults-map.patch b/patches/server/0660-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0670-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0660-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0671-Fix-upstreams-block-state-factories.patch b/patches/server/0661-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0671-Fix-upstreams-block-state-factories.patch rename to patches/server/0661-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0672-Configurable-feature-seeds.patch b/patches/server/0662-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0672-Configurable-feature-seeds.patch rename to patches/server/0662-Configurable-feature-seeds.patch diff --git a/patches/server/0673-Add-root-admin-user-detection.patch b/patches/server/0663-Add-root-admin-user-detection.patch similarity index 100% rename from patches/server/0673-Add-root-admin-user-detection.patch rename to patches/server/0663-Add-root-admin-user-detection.patch diff --git a/patches/server/0674-Always-allow-item-changing-in-Fireball.patch b/patches/server/0664-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0674-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0664-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0675-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0665-don-t-attempt-to-teleport-dead-entities.patch similarity index 85% rename from patches/server/0675-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0665-don-t-attempt-to-teleport-dead-entities.patch index 49a5fc12838f..a512dbd9ace0 100644 --- a/patches/server/0675-don-t-attempt-to-teleport-dead-entities.patch +++ b/patches/server/0665-don-t-attempt-to-teleport-dead-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] don't attempt to teleport dead entities diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4fed53d9b23da65bbf2a0243a64403d4472e8407..e0e57b91abde69f37ce7e5c0dd8e1f9efc67069f 100644 +index 0dd2fcc51b7d07f68fdc630f7c73dcdc32282e90..1b9b3e8b2a85c6e921ec665c95061f2d3e3f678d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -759,7 +759,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -757,7 +757,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit start public void postTick() { // No clean way to break out of ticking once the entity has been copied to a new world, so instead we move the portalling later in the tick cycle diff --git a/patches/server/0676-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0666-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 94% rename from patches/server/0676-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0666-Prevent-excessive-velocity-through-repeated-crits.patch index d73be1c8a324..cc55e32c588d 100644 --- a/patches/server/0676-Prevent-excessive-velocity-through-repeated-crits.patch +++ b/patches/server/0666-Prevent-excessive-velocity-through-repeated-crits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bcb842a40ab97b4920e4e32cb3e6c8e1ff3081bd..d6159b34c366d47a4eefd007032687a8d2557978 100644 +index 61c8d108122e27f063d677e1d3130a4d3eeecb94..24a7ded2966b5431bae938b4ac903683fa2a3da7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2676,13 +2676,26 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0677-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0667-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0677-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0667-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0678-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0668-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0678-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0668-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0679-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0669-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 96% rename from patches/server/0679-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0669-Prevent-sending-oversized-item-data-in-equipment-and.patch index 0e7b3d401779..4afd14619c51 100644 --- a/patches/server/0679-Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/0669-Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -18,7 +18,7 @@ index f9e15908143f4453c2a5817b412e8a13554553f0..06498788c169133bd563c5a87192b718 @Override diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index e0802f1cb73a80b08482832c2b269ac8485d5c1a..945a0317e9e49a159a1f42882a0a267a2141e86d 100644 +index 75b722ebc6c1fc6a45a0d3a3e57b5f131f2cf815..0a86e72e50d4aab7d19f588c3f11d7465c6fe817 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -335,7 +335,10 @@ public class ServerEntity { @@ -34,7 +34,7 @@ index e0802f1cb73a80b08482832c2b269ac8485d5c1a..945a0317e9e49a159a1f42882a0a267a } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d6159b34c366d47a4eefd007032687a8d2557978..140cf1fd4a9850e28c7fa0f0abef6122564474dc 100644 +index 24a7ded2966b5431bae938b4ac903683fa2a3da7..d43ac664cae11d2f7d0c6965a57234430086f8ca 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3187,7 +3187,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0680-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0670-Hide-unnecessary-itemmeta-from-clients.patch similarity index 97% rename from patches/server/0680-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0670-Hide-unnecessary-itemmeta-from-clients.patch index e853de6413e7..485e08deb046 100644 --- a/patches/server/0680-Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/0670-Hide-unnecessary-itemmeta-from-clients.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Hide unnecessary itemmeta from clients diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 945a0317e9e49a159a1f42882a0a267a2141e86d..e9fd9590e90e58fd4c31985a704a4511b2663096 100644 +index 0a86e72e50d4aab7d19f588c3f11d7465c6fe817..c881d6ea6acbcbd1414a0b7d6b5a26076244e34e 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -337,7 +337,7 @@ public class ServerEntity { @@ -33,7 +33,7 @@ index 0280c215f4e502cd0471523b040d8b54c50f7ab8..5aa9f337e1e251485310436f87786b02 } } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 140cf1fd4a9850e28c7fa0f0abef6122564474dc..e0f70157655ab26f5c7330f305c3234f64f677d1 100644 +index d43ac664cae11d2f7d0c6965a57234430086f8ca..45ad7703da01bc2bac56bb9447925a9b2bb9ea81 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3189,7 +3189,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0681-Fix-Spigot-growth-modifiers.patch b/patches/server/0671-Fix-Spigot-growth-modifiers.patch similarity index 98% rename from patches/server/0681-Fix-Spigot-growth-modifiers.patch rename to patches/server/0671-Fix-Spigot-growth-modifiers.patch index abf48a38c52d..92cddad5f15f 100644 --- a/patches/server/0681-Fix-Spigot-growth-modifiers.patch +++ b/patches/server/0671-Fix-Spigot-growth-modifiers.patch @@ -102,7 +102,7 @@ index 690abba9d27ab4061de4dd3676292b1859036868..591f32f7c0a7a9c843933d17dad8a34b this.grow(world, state, pos, 1); } diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java -index 11ac344ef113732fa717b67c51f76692b9b247e7..62c1434018be5b5fb70f7019b3c06d4d9200661d 100644 +index 2a787b641fec29427963ac2bdc14df60f32af2bc..41f4416d820ed1ca2d02b457749cbb6c3dbb20af 100644 --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java @@ -96,6 +96,7 @@ public class SpigotWorldConfig diff --git a/patches/server/0682-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0672-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0682-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0672-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0683-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0673-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0683-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0673-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0684-Optimize-HashMapPalette.patch b/patches/server/0674-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0684-Optimize-HashMapPalette.patch rename to patches/server/0674-Optimize-HashMapPalette.patch diff --git a/patches/server/0685-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0675-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 95% rename from patches/server/0685-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0675-Allow-delegation-to-vanilla-chunk-gen.patch index caa2d8631bae..702533a18c67 100644 --- a/patches/server/0685-Allow-delegation-to-vanilla-chunk-gen.patch +++ b/patches/server/0675-Allow-delegation-to-vanilla-chunk-gen.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b9e6d28d8eb982a404981ac4df71238bf30d0989..468756c24c9439fd6afe4f73f82e0094e41ade25 100644 +index 9ad1645c143d91ae9e08dfe3d875c9b0aa4d0844..492867fb2bf9a94f8fd5fac7d02f7d1538edcf21 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2459,6 +2459,88 @@ public final class CraftServer implements Server { - return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters + return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME)); } + // Paper start - Allow delegation to vanilla chunk gen @@ -98,7 +98,7 @@ index b9e6d28d8eb982a404981ac4df71238bf30d0989..468756c24c9439fd6afe4f73f82e0094 public BossBar createBossBar(String title, BarColor color, BarStyle style, BarFlag... flags) { return new CraftBossBar(title, color, style, flags); diff --git a/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java -index 03eb35d5c67f125c44cf46595c93d124ac7892b8..44a010590e830fd238cf6fdda443e28b72022e66 100644 +index e7f7a246e9c03e676dadfee59de87b8b2ac55ba3..9b640705f2c810160aa7fea5006429ec41d0c858 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java @@ -23,7 +23,7 @@ import org.bukkit.material.MaterialData; @@ -110,7 +110,7 @@ index 03eb35d5c67f125c44cf46595c93d124ac7892b8..44a010590e830fd238cf6fdda443e28b private final Registry biomes; private Set tiles; private final Set lights = new HashSet<>(); -@@ -194,7 +194,13 @@ public final class OldCraftChunkData implements ChunkGenerator.ChunkData { +@@ -189,7 +189,13 @@ public final class OldCraftChunkData implements ChunkGenerator.ChunkData { return this.tiles; } diff --git a/patches/server/0686-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0676-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 96% rename from patches/server/0686-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0676-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch index e5b19cc588cb..d6bf69f20b72 100644 --- a/patches/server/0686-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch +++ b/patches/server/0676-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix ChunkSnapshot#isSectionEmpty(int) and optimize diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index 6dc7e23e96aaffb912611a9dbd41459cb8489056..fd702027e62eb38d51fb7c46ef268e9bb94e1e92 100644 +index 545b14f02ac72dda30891d681eba585d19fd5e1d..d4e0ef75dd12709a0dcf9193821c30b8943e6c36 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java @@ -291,13 +291,17 @@ public class CraftChunk implements Chunk { diff --git a/patches/server/0687-Add-more-Campfire-API.patch b/patches/server/0677-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0687-Add-more-Campfire-API.patch rename to patches/server/0677-Add-more-Campfire-API.patch diff --git a/patches/server/0688-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0678-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 78% rename from patches/server/0688-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0678-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch index cddfe7987928..6de737ae8f95 100644 --- a/patches/server/0688-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch +++ b/patches/server/0678-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch @@ -8,23 +8,21 @@ This ensures at least a valid version of the chunk exists on disk, even if outdated 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 cd362c5ee40e6542a42ee7429072e312569e5999..bbb134d82b30905b3213df9b855e7cf94ad71279 100644 +index f3d169436ce05f1c56599cfe15a56671b7d13516..4d5ab1771129114ef1e4745c43a4fd1813df2e30 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 -@@ -529,6 +529,9 @@ public class RegionFile implements AutoCloseable { - } +@@ -430,6 +430,7 @@ public class RegionFile implements AutoCloseable { } -+ + + public static final int MAX_CHUNK_SIZE = 500 * 1024 * 1024; // Paper - don't write garbage data to disk if writing serialization fails -+ - // Paper end private class ChunkBuffer extends ByteArrayOutputStream { -@@ -544,6 +547,24 @@ public class RegionFile implements AutoCloseable { + private final ChunkPos pos; +@@ -443,6 +444,23 @@ public class RegionFile implements AutoCloseable { + super.write(RegionFile.this.version.getId()); this.pos = chunkcoordintpair; } - + // Paper start - don't write garbage data to disk if writing serialization fails + @Override + public void write(final int b) { @@ -42,21 +40,20 @@ index cd362c5ee40e6542a42ee7429072e312569e5999..bbb134d82b30905b3213df9b855e7cf9 + super.write(b, off, len); + } + // Paper end - don't write garbage data to disk if writing serialization fails -+ + public void close() throws IOException { ByteBuffer bytebuffer = ByteBuffer.wrap(this.buf, 0, this.count); - diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 88e4efd686d64aa5049d92416fb27589d0e58753..753a9ddfabaab0014f68426c8e44213912faf021 100644 +index eeccc924dbba6f860245611eb943c9219471f670..c3bf911a76373dcd1c345a3091adefb0e550fd18 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -@@ -286,10 +286,17 @@ public class RegionFileStorage implements AutoCloseable { +@@ -241,10 +241,17 @@ public class RegionFileStorage implements AutoCloseable { + + try { NbtIo.write(nbt, (DataOutput) dataoutputstream); - regionfile.setStatus(pos.x, pos.z, ChunkSerializer.getStatus(nbt)); // Paper - Cache chunk status - regionfile.setOversized(pos.x, pos.z, false); // Paper - We don't do this anymore, mojang stores differently, but clear old meta flag if it exists to get rid of our own meta file once last oversized is gone -+ dataoutputstream.close(); // Paper - only write if successful + // Paper start - don't write garbage data to disk if writing serialization fails -+ } catch (RegionFileSizeException e) { ++ dataoutputstream.close(); // Only write if successful ++ } catch (final RegionFileSizeException e) { + attempts = 5; // Don't retry + regionfile.clear(pos); + throw e; @@ -69,7 +66,7 @@ index 88e4efd686d64aa5049d92416fb27589d0e58753..753a9ddfabaab0014f68426c8e442139 } catch (Throwable throwable1) { throwable.addSuppressed(throwable1); } -@@ -297,10 +304,7 @@ public class RegionFileStorage implements AutoCloseable { +@@ -252,10 +259,7 @@ public class RegionFileStorage implements AutoCloseable { throw throwable; } @@ -81,7 +78,7 @@ index 88e4efd686d64aa5049d92416fb27589d0e58753..753a9ddfabaab0014f68426c8e442139 } // Paper start - Chunk save reattempt return; -@@ -346,4 +350,13 @@ public class RegionFileStorage implements AutoCloseable { +@@ -301,4 +305,13 @@ public class RegionFileStorage implements AutoCloseable { } } diff --git a/patches/server/0689-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0679-Forward-CraftEntity-in-teleport-command.patch similarity index 89% rename from patches/server/0689-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0679-Forward-CraftEntity-in-teleport-command.patch index 7bbf951b76f8..d3b762e84105 100644 --- a/patches/server/0689-Forward-CraftEntity-in-teleport-command.patch +++ b/patches/server/0679-Forward-CraftEntity-in-teleport-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Forward CraftEntity in teleport command diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e0e57b91abde69f37ce7e5c0dd8e1f9efc67069f..fc3963247a1751b2576aaf476529d2ffe2bdf72e 100644 +index 1b9b3e8b2a85c6e921ec665c95061f2d3e3f678d..d07e8305939e9bcf19578de8e7996f98af2a89ba 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3310,6 +3310,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3299,6 +3299,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void restoreFrom(Entity original) { @@ -22,7 +22,7 @@ index e0e57b91abde69f37ce7e5c0dd8e1f9efc67069f..fc3963247a1751b2576aaf476529d2ff CompoundTag nbttagcompound = original.saveWithoutId(new CompoundTag()); nbttagcompound.remove("Dimension"); -@@ -3400,10 +3407,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3389,10 +3396,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } // CraftBukkit end diff --git a/patches/server/0690-Improve-scoreboard-entries.patch b/patches/server/0680-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0690-Improve-scoreboard-entries.patch rename to patches/server/0680-Improve-scoreboard-entries.patch diff --git a/patches/server/0691-Entity-powdered-snow-API.patch b/patches/server/0681-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0691-Entity-powdered-snow-API.patch rename to patches/server/0681-Entity-powdered-snow-API.patch diff --git a/patches/server/0692-Add-API-for-item-entity-health.patch b/patches/server/0682-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0692-Add-API-for-item-entity-health.patch rename to patches/server/0682-Add-API-for-item-entity-health.patch diff --git a/patches/server/0693-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0683-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0693-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0683-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0694-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0684-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0694-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0684-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0695-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0685-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0695-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0685-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0696-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0686-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0696-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0686-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0697-Fix-bees-aging-inside-hives.patch b/patches/server/0687-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0697-Fix-bees-aging-inside-hives.patch rename to patches/server/0687-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0698-Bucketable-API.patch b/patches/server/0688-Bucketable-API.patch similarity index 100% rename from patches/server/0698-Bucketable-API.patch rename to patches/server/0688-Bucketable-API.patch diff --git a/patches/server/0699-Validate-usernames.patch b/patches/server/0689-Validate-usernames.patch similarity index 96% rename from patches/server/0699-Validate-usernames.patch rename to patches/server/0689-Validate-usernames.patch index c2660b240bd6..eda992b6b294 100644 --- a/patches/server/0699-Validate-usernames.patch +++ b/patches/server/0689-Validate-usernames.patch @@ -39,10 +39,10 @@ index a4d2ddbb9cee1682fc5d91e90d2fd0b74a47aa3c..e67bcde933d8d64ca1d9d18b938f1189 } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index e33278611e4f52ff01cf628c570bd3378ff5c071..dbecf65fdd4e094b9b8b8f9267618934642db40f 100644 +index 712249fa1c1ce9af0dd07e8705bf944ac57842b5..ff070dbb6c9fa525b484e4eb9ef58caad9f0f016 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -2340,9 +2340,23 @@ public abstract class Player extends LivingEntity { +@@ -2332,9 +2332,23 @@ public abstract class Player extends LivingEntity { } public static boolean isValidUsername(String name) { diff --git a/patches/server/0700-Make-water-animal-spawn-height-configurable.patch b/patches/server/0690-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0700-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0690-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0701-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0691-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 96% rename from patches/server/0701-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0691-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 3d0f5cf41c26..73579445553d 100644 --- a/patches/server/0701-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0691-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 88645ffa12f630daf9bd74bb5848ed9dd23d0c1f..20790203d6ceeacc13506469b64140d7f6adfd6a 100644 +index 6f7a55bc2379f28e17b7e3500959972bbff9830d..a6c515e5bba6f359da5d7547947033546c1e853f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -593,7 +593,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 921cbadba393616a7169e708a60846eea20b3438..f59555c21014cf5ff0b0e1c2c5fd0f73ba689803 100644 +index 6233e58820f12b6e0715a2f3c5ce448d24d864fc..967ee7a4fed61d229599349d05f7a506aa26a3de 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -144,6 +144,7 @@ import org.jetbrains.annotations.NotNull; @@ -17,7 +17,7 @@ index 921cbadba393616a7169e708a60846eea20b3438..f59555c21014cf5ff0b0e1c2c5fd0f73 private final ServerLevel world; private WorldBorder worldBorder; -@@ -428,27 +429,61 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -414,27 +415,61 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean regenerateChunk(int x, int z) { org.spigotmc.AsyncCatcher.catchOp("chunk regenerate"); // Spigot diff --git a/patches/server/0716-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0706-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0716-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0706-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0717-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0707-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 92% rename from patches/server/0717-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0707-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 10ebcc7715c5..237725069545 100644 --- a/patches/server/0717-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0707-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4e239b061db4b3d05804dd4fc44bb23bd803597a..c569ddd5ae932d172aa791efab5c92c1394caf02 100644 +index e4b3456bccbb0a3a0d5115c3d47de15352a834ca..145da771363242db9c0460ac9815359740ffbb3b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2287,6 +2287,8 @@ public final class CraftServer implements Server { diff --git a/patches/server/0718-Add-GameEvent-tags.patch b/patches/server/0708-Add-GameEvent-tags.patch similarity index 97% rename from patches/server/0718-Add-GameEvent-tags.patch rename to patches/server/0708-Add-GameEvent-tags.patch index 55aaa582d5a8..54063e4b7834 100644 --- a/patches/server/0718-Add-GameEvent-tags.patch +++ b/patches/server/0708-Add-GameEvent-tags.patch @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index c569ddd5ae932d172aa791efab5c92c1394caf02..8dc49151791b847aeec4f3f0341de0c6013ed757 100644 +index 145da771363242db9c0460ac9815359740ffbb3b..7233fd7a789e72b9fa978f9c23086e8a23270426 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -2708,6 +2708,15 @@ public final class CraftServer implements Server { diff --git a/patches/server/0719-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0709-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 94% rename from patches/server/0719-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0709-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index a2ce560ccc33..45f593e703bd 100644 --- a/patches/server/0719-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0709-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,7 +9,7 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 20790203d6ceeacc13506469b64140d7f6adfd6a..3e18923079ed2def11d5d0b199b14275274e290e 100644 +index a6c515e5bba6f359da5d7547947033546c1e853f..846f5e341bc5bc3d286b1511dd87f54499b202d0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1290,6 +1290,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index f59555c21014cf5ff0b0e1c2c5fd0f73ba689803..c0e7680bff3f65269a7031c08c06f38fdbaa4979 100644 +index 967ee7a4fed61d229599349d05f7a506aa26a3de..98a32754545bc8d27f3a10e8509c529e02bedee9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1453,7 +1453,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1403,7 +1403,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { Preconditions.checkArgument(material != null, "Material cannot be null"); Preconditions.checkArgument(material.isBlock(), "Material.%s must be a block", material); @@ -28,7 +28,7 @@ index f59555c21014cf5ff0b0e1c2c5fd0f73ba689803..c0e7680bff3f65269a7031c08c06f38f return (FallingBlock) entity.getBukkitEntity(); } -@@ -1462,7 +1467,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1412,7 +1417,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { Preconditions.checkArgument(location != null, "Location cannot be null"); Preconditions.checkArgument(data != null, "BlockData cannot be null"); diff --git a/patches/server/0729-Expose-furnace-minecart-push-values.patch b/patches/server/0719-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0729-Expose-furnace-minecart-push-values.patch rename to patches/server/0719-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0730-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0720-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 95% rename from patches/server/0730-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0720-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch index 03471ecb7fc3..8e50aa42cd61 100644 --- a/patches/server/0730-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch +++ b/patches/server/0720-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch @@ -15,7 +15,7 @@ piercing arrows to avoid duplicate damage being applied. protected net.minecraft.world.entity.projectile.Projectile hitCancelled diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index ae4319c2532855315bc45995a39d7eb98961b939..2b2ff2a187410ef9431b0396c05935ffd17fd108 100644 +index 5f75e54cde19614461dd8375ded1d6b3c395f674..618de60680de015bc68bf95a68eda98db7bab3c5 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -297,6 +297,19 @@ public abstract class AbstractArrow extends Projectile { diff --git a/patches/server/0731-More-Projectile-API.patch b/patches/server/0721-More-Projectile-API.patch similarity index 100% rename from patches/server/0731-More-Projectile-API.patch rename to patches/server/0721-More-Projectile-API.patch diff --git a/patches/server/0732-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0722-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0732-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0722-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0733-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0723-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 100% rename from patches/server/0733-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0723-Don-t-allow-vehicle-movement-from-players-while-tele.patch diff --git a/patches/server/0734-Implement-getComputedBiome-API.patch b/patches/server/0724-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0734-Implement-getComputedBiome-API.patch rename to patches/server/0724-Implement-getComputedBiome-API.patch diff --git a/patches/server/0735-Make-some-itemstacks-nonnull.patch b/patches/server/0725-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0735-Make-some-itemstacks-nonnull.patch rename to patches/server/0725-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0736-Implement-enchantWithLevels-API.patch b/patches/server/0726-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0736-Implement-enchantWithLevels-API.patch rename to patches/server/0726-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0737-Fix-saving-in-unloadWorld.patch b/patches/server/0727-Fix-saving-in-unloadWorld.patch similarity index 90% rename from patches/server/0737-Fix-saving-in-unloadWorld.patch rename to patches/server/0727-Fix-saving-in-unloadWorld.patch index 04a743911eea..51a9cb25bf82 100644 --- a/patches/server/0737-Fix-saving-in-unloadWorld.patch +++ b/patches/server/0727-Fix-saving-in-unloadWorld.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix saving in unloadWorld Change savingDisabled to false to ensure ServerLevel's saving logic gets called when unloadWorld is called with save = true diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 884d3ba1be2d89da076b4cb63da6dd43c1c3ed95..e94c4a5419806e35aaabb88624afe672f93ffa57 100644 +index 3651cdff8b5a489d57ffd39470510e0f2e413f71..49a29b5a84fb2c2a18adfbf788f10e6912518bd7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1336,7 +1336,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0738-Buffer-OOB-setBlock-calls.patch b/patches/server/0728-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0738-Buffer-OOB-setBlock-calls.patch rename to patches/server/0728-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0739-Add-TameableDeathMessageEvent.patch b/patches/server/0729-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0739-Add-TameableDeathMessageEvent.patch rename to patches/server/0729-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0740-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0730-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 100% rename from patches/server/0740-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0730-Fix-new-block-data-for-EntityChangeBlockEvent.patch diff --git a/patches/server/0741-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0731-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 88% rename from patches/server/0741-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0731-fix-player-loottables-running-when-mob-loot-gamerule.patch index 5345851a6370..7e01b2803b06 100644 --- a/patches/server/0741-fix-player-loottables-running-when-mob-loot-gamerule.patch +++ b/patches/server/0731-fix-player-loottables-running-when-mob-loot-gamerule.patch @@ -5,10 +5,10 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c1dd624e03c85eaba8733769dc650d33142af714..8332af6921e37d7dbf2a57a40f8413443a1706f8 100644 +index 20cdb362592714891d7676fbea6096dfe30447b0..2778c9a1d31f7798d6b536664418323f0f3c00cb 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -924,12 +924,14 @@ public class ServerPlayer extends Player { +@@ -920,12 +920,14 @@ public class ServerPlayer extends Player { } } } diff --git a/patches/server/0742-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0732-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 85% rename from patches/server/0742-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0732-Ensure-entity-passenger-world-matches-ridden-entity.patch index da00ce2881d6..c812f30edbc5 100644 --- a/patches/server/0742-Ensure-entity-passenger-world-matches-ridden-entity.patch +++ b/patches/server/0732-Ensure-entity-passenger-world-matches-ridden-entity.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Ensure entity passenger world matches ridden entity Bad plugins doing this would cause some obvious problems... diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b4c184fa88ab66bda3e801cbaa87e94567050ae8..a0bd8a9ac362b5131ada29fc999a02003d47f990 100644 +index db8d83dee46d325c0c07c5320a20302e431c5fcc..a848448f14ad4aee3a36aa4ef52efd25d73ebbcb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2626,7 +2626,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2615,7 +2615,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean startRiding(Entity entity, boolean force) { diff --git a/patches/server/0743-cache-resource-keys.patch b/patches/server/0733-cache-resource-keys.patch similarity index 100% rename from patches/server/0743-cache-resource-keys.patch rename to patches/server/0733-cache-resource-keys.patch diff --git a/patches/server/0744-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0734-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/server/0744-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0734-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/server/0745-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0735-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0745-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0735-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0746-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0736-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 100% rename from patches/server/0746-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0736-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch diff --git a/patches/server/0747-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0737-Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/server/0747-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0737-Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/server/0748-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0738-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 100% rename from patches/server/0748-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0738-Use-username-instead-of-display-name-in-PlayerList-g.patch diff --git a/patches/server/0749-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0739-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 98% rename from patches/server/0749-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0739-Pass-ServerLevel-for-gamerule-callbacks.patch index 58d97ba7c4de..d7ade8d2aa22 100644 --- a/patches/server/0749-Pass-ServerLevel-for-gamerule-callbacks.patch +++ b/patches/server/0739-Pass-ServerLevel-for-gamerule-callbacks.patch @@ -167,10 +167,10 @@ index f3cdf1fa7731eb7bb1cb89aa6a37204d81257cb0..0112ef51815c4fab38b95d5e917d335e this.onChanged(server); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index c0e7680bff3f65269a7031c08c06f38fdbaa4979..f22048c66f28a0c2cb6edb6afda4d3cf1469d913 100644 +index 98a32754545bc8d27f3a10e8509c529e02bedee9..561ed3b93ba09f17f0f263b90993a7b13ce3f468 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2038,7 +2038,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1988,7 +1988,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { // Paper end - Add WorldGameRuleChangeEvent GameRules.Value handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule)); handle.deserialize(event.getValue()); // Paper - Add WorldGameRuleChangeEvent @@ -179,7 +179,7 @@ index c0e7680bff3f65269a7031c08c06f38fdbaa4979..f22048c66f28a0c2cb6edb6afda4d3cf return true; } -@@ -2079,7 +2079,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2029,7 +2029,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { // Paper end - Add WorldGameRuleChangeEvent GameRules.Value handle = this.getHandle().getGameRules().getRule(CraftWorld.getGameRulesNMS().get(rule.getName())); handle.deserialize(event.getValue()); // Paper - Add WorldGameRuleChangeEvent diff --git a/patches/server/0750-Expand-PlayerItemDamageEvent.patch b/patches/server/0740-Expand-PlayerItemDamageEvent.patch similarity index 100% rename from patches/server/0750-Expand-PlayerItemDamageEvent.patch rename to patches/server/0740-Expand-PlayerItemDamageEvent.patch diff --git a/patches/server/0751-WorldCreator-keepSpawnLoaded.patch b/patches/server/0741-WorldCreator-keepSpawnLoaded.patch similarity index 94% rename from patches/server/0751-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0741-WorldCreator-keepSpawnLoaded.patch index fb14f7b798bd..b58bfdc4391a 100644 --- a/patches/server/0751-WorldCreator-keepSpawnLoaded.patch +++ b/patches/server/0741-WorldCreator-keepSpawnLoaded.patch @@ -5,7 +5,7 @@ Subject: [PATCH] WorldCreator#keepSpawnLoaded diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e94c4a5419806e35aaabb88624afe672f93ffa57..583e3cfcd223561d1733c503f84b99edbb4b365e 100644 +index 49a29b5a84fb2c2a18adfbf788f10e6912518bd7..28b7694d3ff59cdad838382e207eff6fdc8face7 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1283,7 +1283,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0752-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0742-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0752-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0742-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0753-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0743-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 94% rename from patches/server/0753-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0743-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch index b23922a4d122..88ff6e154663 100644 --- a/patches/server/0753-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch +++ b/patches/server/0743-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Trigger bee_nest_destroyed trigger in the correct place diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 03b337ce5ccb1db61dc395b91b061a2aecf8fbf6..c783e0cbc2f124eeacebc7c7cabb9c38f720a328 100644 +index 37513cf5714afda6c552219c2eca8134c054d2bb..be25ea71cb3a3bd324935754604c9f7473a88d0a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -423,12 +423,16 @@ public class ServerPlayerGameMode { +@@ -421,12 +421,16 @@ public class ServerPlayerGameMode { block.destroy(this.level, pos, iblockdata1); } @@ -25,7 +25,7 @@ index 03b337ce5ccb1db61dc395b91b061a2aecf8fbf6..c783e0cbc2f124eeacebc7c7cabb9c38 itemstack.mineBlock(this.level, iblockdata1, pos, this.player); if (flag && flag1 && event.isDropItems()) { // CraftBukkit - Check if block should drop items -@@ -449,6 +453,13 @@ public class ServerPlayerGameMode { +@@ -447,6 +451,13 @@ public class ServerPlayerGameMode { if (flag && event != null) { iblockdata.getBlock().popExperience(this.level, pos, event.getExpToDrop(), this.player); // Paper } diff --git a/patches/server/0754-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0744-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0754-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0744-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0755-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0745-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0755-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0745-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0756-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0746-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0756-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0746-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0757-Add-PlayerStopUsingItemEvent.patch b/patches/server/0747-Add-PlayerStopUsingItemEvent.patch similarity index 91% rename from patches/server/0757-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0747-Add-PlayerStopUsingItemEvent.patch index 1e8db058abb9..dda50b38461e 100644 --- a/patches/server/0757-Add-PlayerStopUsingItemEvent.patch +++ b/patches/server/0747-Add-PlayerStopUsingItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d45a58e09cf6e59dd147fc50bf36c9c20eafe6b1..c14699d0deb19b8d92fb72132ecc7cd5e99ec2b8 100644 +index fbbddf856a0fbb0b88bdbf00fed79ebeb9f85a33..f5bed73a079e022eeb3b05e4c49532044852fd22 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4024,6 +4024,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0758-Don-t-tick-markers.patch b/patches/server/0748-Don-t-tick-markers.patch similarity index 91% rename from patches/server/0758-Don-t-tick-markers.patch rename to patches/server/0748-Don-t-tick-markers.patch index 2935ea8511e0..3b66b6d37360 100644 --- a/patches/server/0758-Don-t-tick-markers.patch +++ b/patches/server/0748-Don-t-tick-markers.patch @@ -23,10 +23,10 @@ index ff99336e0b8131ae161cfa5c4fc83c6905e3dbc8..5e5a018433414af76eaa1e781f61612d } }); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 36ffc24778b307d239a8af43486ed54f78c7ea68..6cd9f531b3c92641d8452a6d7a807ea8f9a61e8f 100644 +index 6ece18d5429217ee53ca5ae5c0eb7450aa5f63ec..9fffd60371500b05c009e0c8ac7d83126fbde866 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2538,6 +2538,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2520,6 +2520,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } public void onTickingStart(Entity entity) { @@ -35,10 +35,10 @@ index 36ffc24778b307d239a8af43486ed54f78c7ea68..6cd9f531b3c92641d8452a6d7a807ea8 } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 3495981419a75efe42bce45a89a32378dd6b8372..fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26 100644 +index d5374072a97f791964033d107f023b3cc657b343..aaa997613a991a9fc5ed276a7e7e61448f34ef64 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -213,8 +213,14 @@ public class ActivationRange +@@ -135,8 +135,14 @@ public class ActivationRange // Paper start java.util.List entities = world.getEntities((Entity)null, ActivationRange.maxBB, null); diff --git a/patches/server/0759-Expand-FallingBlock-API.patch b/patches/server/0749-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0759-Expand-FallingBlock-API.patch rename to patches/server/0749-Expand-FallingBlock-API.patch diff --git a/patches/server/0760-Do-not-accept-invalid-client-settings.patch b/patches/server/0750-Do-not-accept-invalid-client-settings.patch similarity index 100% rename from patches/server/0760-Do-not-accept-invalid-client-settings.patch rename to patches/server/0750-Do-not-accept-invalid-client-settings.patch diff --git a/patches/server/0761-Add-support-for-Proxy-Protocol.patch b/patches/server/0751-Add-support-for-Proxy-Protocol.patch similarity index 95% rename from patches/server/0761-Add-support-for-Proxy-Protocol.patch rename to patches/server/0751-Add-support-for-Proxy-Protocol.patch index ef9bc5a74d2f..1580298fa5be 100644 --- a/patches/server/0761-Add-support-for-Proxy-Protocol.patch +++ b/patches/server/0751-Add-support-for-Proxy-Protocol.patch @@ -17,10 +17,10 @@ index c6241f858209ed662d8720217d143340916024e9..7c563ef33d12b227856e65392905bffa implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion implementation("org.ow2.asm:asm-commons:9.5") diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 13fc9b88c06b0436d23039ef4686f3a88589447e..a4a29a7ea0035ecf4c61ee8547a9eb24acb667d0 100644 +index 87abd6274f9da9367094bad0c28acfa47e01c50e..4f330a44c77a7ec3237a86fda04921a8c4a1c00f 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -@@ -124,6 +124,29 @@ public class ServerConnectionListener { +@@ -121,6 +121,29 @@ public class ServerConnectionListener { Connection object = j > 0 ? new RateKickingConnection(j) : new Connection(PacketFlow.SERVERBOUND); // CraftBukkit - decompile error //ServerConnectionListener.this.connections.add(object); // Paper diff --git a/patches/server/0762-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0752-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0762-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0752-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0763-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0753-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0763-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0753-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0764-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0754-Sanitize-sent-BlockEntity-NBT.patch similarity index 94% rename from patches/server/0764-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0754-Sanitize-sent-BlockEntity-NBT.patch index d79abc0a0092..9f25d888657f 100644 --- a/patches/server/0764-Sanitize-sent-BlockEntity-NBT.patch +++ b/patches/server/0754-Sanitize-sent-BlockEntity-NBT.patch @@ -18,10 +18,10 @@ index d79284a790569141c2ac8178d6ecc20b17cdd0d3..3944852921335c78a04a9dc301882ab5 public static ClientboundBlockEntityDataPacket create(BlockEntity blockEntity) { diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index 8ffb99aedaa57c1e96ddcc05143776b59c9700a3..998deae645b4497c3285bfba3260c636439f9ecf 100644 +index dda7151d333144399ba5602e1b651b1f5b8f8f0d..582a3e5e45dd10068eeb25a3e37bdece3ddbc296 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -@@ -186,6 +186,7 @@ public class ClientboundLevelChunkPacketData { +@@ -170,6 +170,7 @@ public class ClientboundLevelChunkPacketData { CompoundTag compoundTag = blockEntity.getUpdateTag(); BlockPos blockPos = blockEntity.getBlockPos(); int i = SectionPos.sectionRelative(blockPos.getX()) << 4 | SectionPos.sectionRelative(blockPos.getZ()); diff --git a/patches/server/0765-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0755-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0765-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0755-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0766-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0756-Prevent-entity-loading-causing-async-lookups.patch similarity index 95% rename from patches/server/0766-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0756-Prevent-entity-loading-causing-async-lookups.patch index 9961e95b8725..a118054447e3 100644 --- a/patches/server/0766-Prevent-entity-loading-causing-async-lookups.patch +++ b/patches/server/0756-Prevent-entity-loading-causing-async-lookups.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent entity loading causing async lookups diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a0bd8a9ac362b5131ada29fc999a02003d47f990..b0822dcc819a4001e8a6db83ec6931b44a2b040b 100644 +index a848448f14ad4aee3a36aa4ef52efd25d73ebbcb..0d23c58fec4c7a93093107833baeec0936f03641 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -768,6 +768,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -766,6 +766,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void baseTick() { this.level().getProfiler().push("entityBaseTick"); diff --git a/patches/server/0767-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0757-Throw-exception-on-world-create-while-being-ticked.patch similarity index 97% rename from patches/server/0767-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0757-Throw-exception-on-world-create-while-being-ticked.patch index d1ed752d714f..1cf3de07816b 100644 --- a/patches/server/0767-Throw-exception-on-world-create-while-being-ticked.patch +++ b/patches/server/0757-Throw-exception-on-world-create-while-being-ticked.patch @@ -45,7 +45,7 @@ index 35053ad6cdb071d3f256a23d532d1abb77f14858..fb86e510dc3197cf47b999d80a34a60c this.profiler.popPush("connection"); MinecraftTimings.connectionTimer.startTiming(); // Spigot // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 583e3cfcd223561d1733c503f84b99edbb4b365e..6a7ae215b901b4d8afdb2ee6166f89aa9943c8fb 100644 +index 28b7694d3ff59cdad838382e207eff6fdc8face7..13f266dd4f6b47947eb9b1282d64647a93e5430e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -874,6 +874,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0768-Dont-resent-entity-on-art-update.patch b/patches/server/0758-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/server/0768-Dont-resent-entity-on-art-update.patch rename to patches/server/0758-Dont-resent-entity-on-art-update.patch diff --git a/patches/server/0769-Add-WardenAngerChangeEvent.patch b/patches/server/0759-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/server/0769-Add-WardenAngerChangeEvent.patch rename to patches/server/0759-Add-WardenAngerChangeEvent.patch diff --git a/patches/server/0770-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0760-Add-option-for-strict-advancement-dimension-checks.patch similarity index 94% rename from patches/server/0770-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0760-Add-option-for-strict-advancement-dimension-checks.patch index 07480bbe952a..a58aef43bc8b 100644 --- a/patches/server/0770-Add-option-for-strict-advancement-dimension-checks.patch +++ b/patches/server/0760-Add-option-for-strict-advancement-dimension-checks.patch @@ -24,10 +24,10 @@ index 5f9cb2c7a2874e423087d04d3360af0364692b5c..428e0afef2cac9f2a19d8cfe8f2504dd } else { BlockPos blockPos = BlockPos.containing(x, y, z); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8332af6921e37d7dbf2a57a40f8413443a1706f8..1b9459aeb7a676cb3ac1fbee3561f21923d9b20d 100644 +index 2778c9a1d31f7798d6b536664418323f0f3c00cb..cc4954ceceeb8636ac1d6f0f0459816d2a98c317 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1321,6 +1321,12 @@ public class ServerPlayer extends Player { +@@ -1317,6 +1317,12 @@ public class ServerPlayer extends Player { ResourceKey maindimensionkey = CraftDimensionUtil.getMainDimensionKey(origin); ResourceKey maindimensionkey1 = CraftDimensionUtil.getMainDimensionKey(this.level()); diff --git a/patches/server/0771-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0761-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/server/0771-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0761-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/0772-Nameable-Banner-API.patch b/patches/server/0762-Nameable-Banner-API.patch similarity index 100% rename from patches/server/0772-Nameable-Banner-API.patch rename to patches/server/0762-Nameable-Banner-API.patch diff --git a/patches/server/0773-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0763-Don-t-broadcast-messages-to-command-blocks.patch similarity index 95% rename from patches/server/0773-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0763-Don-t-broadcast-messages-to-command-blocks.patch index a18b8c207a14..3e8edb955c25 100644 --- a/patches/server/0773-Don-t-broadcast-messages-to-command-blocks.patch +++ b/patches/server/0763-Don-t-broadcast-messages-to-command-blocks.patch @@ -20,7 +20,7 @@ index c56f5173fda6b38c2dcaea196217f2f5a7d7c641..524b0f1086c01888fe0b76e180c40915 Date date = new Date(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6a7ae215b901b4d8afdb2ee6166f89aa9943c8fb..0d1fbb78394e60666d17fb7be67d5716d02a3099 100644 +index 13f266dd4f6b47947eb9b1282d64647a93e5430e..f1544ea9d189a8aa81e7f742c04173f8bf2b0209 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1873,7 +1873,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0774-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0764-Prevent-empty-items-from-being-added-to-world.patch similarity index 89% rename from patches/server/0774-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0764-Prevent-empty-items-from-being-added-to-world.patch index dc47bed407c0..521e3bb803b1 100644 --- a/patches/server/0774-Prevent-empty-items-from-being-added-to-world.patch +++ b/patches/server/0764-Prevent-empty-items-from-being-added-to-world.patch @@ -7,10 +7,10 @@ The previous solution caused a bunch of bandaid fixes inorder to resolve edge ca Just simply prevent them from being added to the world instead. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 6cd9f531b3c92641d8452a6d7a807ea8f9a61e8f..68537510653ac189cde1e4f8b9ef542532300a67 100644 +index 9fffd60371500b05c009e0c8ac7d83126fbde866..ca3ee200c80047aca3c8856b057e5c77840d849c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1519,6 +1519,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1501,6 +1501,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit return false; } else { diff --git a/patches/server/0775-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0765-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/server/0775-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0765-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/server/0776-Add-Player-getFishHook.patch b/patches/server/0766-Add-Player-getFishHook.patch similarity index 100% rename from patches/server/0776-Add-Player-getFishHook.patch rename to patches/server/0766-Add-Player-getFishHook.patch diff --git a/patches/server/0777-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0767-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/server/0777-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0767-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/server/0778-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0768-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 96% rename from patches/server/0778-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0768-Add-various-missing-EntityDropItemEvent-calls.patch index ad72730ee97e..95c888189008 100644 --- a/patches/server/0778-Add-various-missing-EntityDropItemEvent-calls.patch +++ b/patches/server/0768-Add-various-missing-EntityDropItemEvent-calls.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add various missing EntityDropItemEvent calls diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b0822dcc819a4001e8a6db83ec6931b44a2b040b..7c57dccea6a5b960dc805b24908d1e099ed77bfd 100644 +index 0d23c58fec4c7a93093107833baeec0936f03641..5c6111c224eb92de071ff9e588e97c4fee64432b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2537,6 +2537,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2526,6 +2526,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S stack.setCount(0); // Paper - destroy this item - if this ever leaks due to game bugs, ensure it doesn't dupe entityitem.setDefaultPickUpDelay(); diff --git a/patches/server/0779-Fix-Bee-flower-NPE.patch b/patches/server/0769-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/server/0779-Fix-Bee-flower-NPE.patch rename to patches/server/0769-Fix-Bee-flower-NPE.patch diff --git a/patches/server/0780-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0770-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 100% rename from patches/server/0780-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0770-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch diff --git a/patches/server/0781-More-Teleport-API.patch b/patches/server/0771-More-Teleport-API.patch similarity index 99% rename from patches/server/0781-More-Teleport-API.patch rename to patches/server/0771-More-Teleport-API.patch index 52a638653530..69a0d1d9aed1 100644 --- a/patches/server/0781-More-Teleport-API.patch +++ b/patches/server/0771-More-Teleport-API.patch @@ -72,7 +72,7 @@ index b7df71633527dce2e4f954caee249e3b31b82226..ee1dc74b2f48bf8d684562de895ab631 // Let the server handle cross world teleports if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8be0588680c55c19de4e3f0ecf17b96338c3c7b7..417c0d6942dd7e55629ba5926415a5274bde2dad 100644 +index b6bf7cf5515400a1f241ebef6cc76073f0a93bfa..aad9e9d0a832df412d1835998c3537d7279c9421 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1207,13 +1207,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0782-Add-EntityPortalReadyEvent.patch b/patches/server/0772-Add-EntityPortalReadyEvent.patch similarity index 88% rename from patches/server/0782-Add-EntityPortalReadyEvent.patch rename to patches/server/0772-Add-EntityPortalReadyEvent.patch index 6f0e3bc9219c..bf56e46924f0 100644 --- a/patches/server/0782-Add-EntityPortalReadyEvent.patch +++ b/patches/server/0772-Add-EntityPortalReadyEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add EntityPortalReadyEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7c57dccea6a5b960dc805b24908d1e099ed77bfd..eb8d1a04887a38142d9695dc96a46d76e26cf866 100644 +index 5c6111c224eb92de071ff9e588e97c4fee64432b..9ec4143c8f9c257d12233b9ae92147f6c2e28634 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2878,6 +2878,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2867,6 +2867,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit this.level().getProfiler().push("portal"); this.portalTime = i; @@ -22,7 +22,7 @@ index 7c57dccea6a5b960dc805b24908d1e099ed77bfd..eb8d1a04887a38142d9695dc96a46d76 this.setPortalCooldown(); // CraftBukkit start if (this instanceof ServerPlayer) { -@@ -2885,6 +2892,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2874,6 +2881,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { this.changeDimension(worldserver1); } diff --git a/patches/server/0783-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0773-Don-t-use-level-random-in-entity-constructors.patch similarity index 96% rename from patches/server/0783-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0773-Don-t-use-level-random-in-entity-constructors.patch index bc78c6a47426..1223c386c317 100644 --- a/patches/server/0783-Don-t-use-level-random-in-entity-constructors.patch +++ b/patches/server/0773-Don-t-use-level-random-in-entity-constructors.patch @@ -27,7 +27,7 @@ index 459f793a6603d4f98c84df4e549f069298c54985..8aaca29b115a55bf48306e71432c4c20 public ItemEntity(Level world, double x, double y, double z, ItemStack stack, double velocityX, double velocityY, double velocityZ) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index d9ed22e9853eebdf6c517b41787a27a1a56a0871..2274541c9386e4f1bbae489a1f123d502ccbf9cc 100644 +index fe51d34f9d764ed4bff4a2a0c566e132dde36e55..2498f942ab55a2ee9af4822c300ec6f45811ef3f 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -43,7 +43,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { diff --git a/patches/server/0784-Send-block-entities-after-destroy-prediction.patch b/patches/server/0774-Send-block-entities-after-destroy-prediction.patch similarity index 97% rename from patches/server/0784-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0774-Send-block-entities-after-destroy-prediction.patch index 4d84d9c447a1..d0cf025998a7 100644 --- a/patches/server/0784-Send-block-entities-after-destroy-prediction.patch +++ b/patches/server/0774-Send-block-entities-after-destroy-prediction.patch @@ -7,7 +7,7 @@ Minecraft's prediction system does not handle block entities, so if we are manua block breaking we need to set it after the prediction is finished. This fixes block entities not showing when cancelling the BlockBreakEvent. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index c783e0cbc2f124eeacebc7c7cabb9c38f720a328..c24701ed78824dc5377f8517dedf6a5aeff0614d 100644 +index be25ea71cb3a3bd324935754604c9f7473a88d0a..75967b3526f3f946ffc6784b87b787396ab15368 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -62,6 +62,8 @@ public class ServerPlayerGameMode { @@ -43,7 +43,7 @@ index c783e0cbc2f124eeacebc7c7cabb9c38f720a328..c24701ed78824dc5377f8517dedf6a5a return; } // CraftBukkit end -@@ -389,10 +385,12 @@ public class ServerPlayerGameMode { +@@ -387,10 +383,12 @@ public class ServerPlayerGameMode { } // Update any tile entity data for this block diff --git a/patches/server/0785-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0775-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 83% rename from patches/server/0785-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0775-Warn-on-plugins-accessing-faraway-chunks.patch index 7148c5665f7d..dce15cbf4891 100644 --- a/patches/server/0785-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0775-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a9f963ba9306b840a3d97c9a39fc81b09340065f..d84e1f2f085e83ff394e8dfe8bf42add64c9ee6d 100644 +index 74cb6cf55ed9b4e31ac3c06d9612823f7ede9ff3..95800047e4c6d84a6f4bc7b643ca6ff302fda5ed 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -444,7 +444,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -352,7 +352,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } private static boolean isInWorldBoundsHorizontal(BlockPos pos) { @@ -18,7 +18,7 @@ index a9f963ba9306b840a3d97c9a39fc81b09340065f..d84e1f2f085e83ff394e8dfe8bf42add private static boolean isOutsideSpawnableHeight(int y) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index f22048c66f28a0c2cb6edb6afda4d3cf1469d913..7899e9c905dd420821f1c422c6c07e63ac4d3121 100644 +index 561ed3b93ba09f17f0f263b90993a7b13ce3f468..4a6fe040e3eeaabaa84946c49482b03b63e6eccc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -312,9 +312,24 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -46,7 +46,7 @@ index f22048c66f28a0c2cb6edb6afda4d3cf1469d913..7899e9c905dd420821f1c422c6c07e63 // Paper start - add ticket to hold chunk for a little while longer if plugin accesses it net.minecraft.world.level.chunk.LevelChunk chunk = this.world.getChunkSource().getChunkAtIfLoadedImmediately(x, z); if (chunk == null) { -@@ -429,6 +444,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -415,6 +430,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean regenerateChunk(int x, int z) { org.spigotmc.AsyncCatcher.catchOp("chunk regenerate"); // Spigot @@ -54,15 +54,15 @@ index f22048c66f28a0c2cb6edb6afda4d3cf1469d913..7899e9c905dd420821f1c422c6c07e63 // Paper start - implement regenerateChunk method final ServerLevel serverLevel = this.world; final net.minecraft.server.level.ServerChunkCache serverChunkCache = serverLevel.getChunkSource(); -@@ -524,6 +540,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -505,6 +521,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean loadChunk(int x, int z, boolean generate) { org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot + warnUnsafeChunk("loading a faraway chunk", x, z); // Paper - // Paper start - Optimize this method - ChunkPos chunkPos = new ChunkPos(x, z); - ChunkAccess immediate = world.getChunkSource().getChunkAtIfLoadedImmediately(x, z); // Paper -@@ -587,6 +604,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { + ChunkAccess chunk = this.world.getChunkSource().getChunk(x, z, generate || isChunkGenerated(x, z) ? ChunkStatus.FULL : ChunkStatus.EMPTY, true); // Paper + + // If generate = false, but the chunk already exists, we will get this back. +@@ -537,6 +554,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean addPluginChunkTicket(int x, int z, Plugin plugin) { @@ -70,7 +70,7 @@ index f22048c66f28a0c2cb6edb6afda4d3cf1469d913..7899e9c905dd420821f1c422c6c07e63 Preconditions.checkArgument(plugin != null, "null plugin"); Preconditions.checkArgument(plugin.isEnabled(), "plugin is not enabled"); -@@ -655,6 +673,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -605,6 +623,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public void setChunkForceLoaded(int x, int z, boolean forced) { @@ -78,7 +78,7 @@ index f22048c66f28a0c2cb6edb6afda4d3cf1469d913..7899e9c905dd420821f1c422c6c07e63 this.getHandle().setChunkForced(x, z, forced); } -@@ -967,6 +986,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -917,6 +936,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public int getHighestBlockYAt(int x, int z, org.bukkit.HeightMap heightMap) { @@ -86,7 +86,7 @@ index f22048c66f28a0c2cb6edb6afda4d3cf1469d913..7899e9c905dd420821f1c422c6c07e63 // Transient load for this tick return this.world.getChunk(x >> 4, z >> 4).getHeight(CraftHeightMap.toNMS(heightMap), x, z); } -@@ -2415,6 +2435,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2365,6 +2385,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { // Spigot end // Paper start public java.util.concurrent.CompletableFuture getChunkAtAsync(int x, int z, boolean gen, boolean urgent) { diff --git a/patches/server/0786-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0776-Custom-Chat-Completion-Suggestions-API.patch similarity index 94% rename from patches/server/0786-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0776-Custom-Chat-Completion-Suggestions-API.patch index 1f20bc7a88cd..5e20e5e035cd 100644 --- a/patches/server/0786-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/server/0776-Custom-Chat-Completion-Suggestions-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 417c0d6942dd7e55629ba5926415a5274bde2dad..434e3e92bd483de5a35e2f7c96f3c78c4e085239 100644 +index aad9e9d0a832df412d1835998c3537d7279c9421..6366fc2ae7944f90bcc25780c4e11e25c13f77b7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -647,6 +647,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0787-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0777-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0787-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0777-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0788-Collision-API.patch b/patches/server/0778-Collision-API.patch similarity index 100% rename from patches/server/0788-Collision-API.patch rename to patches/server/0778-Collision-API.patch diff --git a/patches/server/0789-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0779-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 100% rename from patches/server/0789-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0779-Fix-suggest-command-message-for-brigadier-syntax-exc.patch diff --git a/patches/server/0790-Block-Ticking-API.patch b/patches/server/0780-Block-Ticking-API.patch similarity index 100% rename from patches/server/0790-Block-Ticking-API.patch rename to patches/server/0780-Block-Ticking-API.patch diff --git a/patches/server/0791-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0781-Add-Velocity-IP-Forwarding-Support.patch similarity index 99% rename from patches/server/0791-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0781-Add-Velocity-IP-Forwarding-Support.patch index 3518ceb444f3..2d3d4087776b 100644 --- a/patches/server/0791-Add-Velocity-IP-Forwarding-Support.patch +++ b/patches/server/0781-Add-Velocity-IP-Forwarding-Support.patch @@ -228,7 +228,7 @@ index ebda34825bbd10145a81d54c345e31c2a4fb5de4..42ae62bdbe11fdfbacebf621d64e7c49 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0d1fbb78394e60666d17fb7be67d5716d02a3099..fd31a716ec66235970af4854dd7d83c1f88e229d 100644 +index f1544ea9d189a8aa81e7f742c04173f8bf2b0209..cda293ee6281ba01f9f924ad5c65d8ad96ab50f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -803,7 +803,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0792-Add-NamespacedKey-biome-methods.patch b/patches/server/0782-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0792-Add-NamespacedKey-biome-methods.patch rename to patches/server/0782-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0793-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0783-Fix-plugin-loggers-on-server-shutdown.patch similarity index 96% rename from patches/server/0793-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0783-Fix-plugin-loggers-on-server-shutdown.patch index 1dae8c15910d..dfdc415fbaaf 100644 --- a/patches/server/0793-Fix-plugin-loggers-on-server-shutdown.patch +++ b/patches/server/0783-Fix-plugin-loggers-on-server-shutdown.patch @@ -37,7 +37,7 @@ index 0000000000000000000000000000000000000000..c1d3bac79bb8b4796c013ff4472f75dc + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 44f5d7b359f172521be30c464d7acf6881dbeef0..681acc1ec995d9dbd5cfd30445b967093a3e4466 100644 +index fb86e510dc3197cf47b999d80a34a60c37f1d3c8..14393bd35c3c77ee8d7bad0c71e880f6dd9c1be5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1212,6 +1212,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c14699d0deb19b8d92fb72132ecc7cd5e99ec2b8..626012f925ae7e7e99fe86f4d57e6b063fe14904 100644 +index f5bed73a079e022eeb3b05e4c49532044852fd22..39d9f33e49cc8099e0f6dc9822e6d471b46d6e28 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3055,37 +3055,15 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0795-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0785-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0795-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0785-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0796-Missing-eating-regain-reason.patch b/patches/server/0786-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0796-Missing-eating-regain-reason.patch rename to patches/server/0786-Missing-eating-regain-reason.patch diff --git a/patches/server/0797-Missing-effect-cause.patch b/patches/server/0787-Missing-effect-cause.patch similarity index 100% rename from patches/server/0797-Missing-effect-cause.patch rename to patches/server/0787-Missing-effect-cause.patch diff --git a/patches/server/0798-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0788-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0798-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0788-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0799-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0789-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0799-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0789-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0800-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0790-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0800-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0790-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0801-Configurable-chat-thread-limit.patch b/patches/server/0791-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0801-Configurable-chat-thread-limit.patch rename to patches/server/0791-Configurable-chat-thread-limit.patch diff --git a/patches/server/0802-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0792-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0802-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0792-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0803-fix-Jigsaw-block-kicking-user.patch b/patches/server/0793-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0803-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0793-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0804-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0794-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0804-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0794-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0805-Add-getDrops-to-BlockState.patch b/patches/server/0795-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0805-Add-getDrops-to-BlockState.patch rename to patches/server/0795-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0806-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0796-Fix-a-bunch-of-vanilla-bugs.patch similarity index 97% rename from patches/server/0806-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0796-Fix-a-bunch-of-vanilla-bugs.patch index dc69cd76b74c..2c4b7976ecd0 100644 --- a/patches/server/0806-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0796-Fix-a-bunch-of-vanilla-bugs.patch @@ -113,12 +113,12 @@ index 6cd6d69a20e95e344fc18ab67dc300824537a59b..2e2a7c2cf3081187da817479a9da3eb1 } } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index fea9355a25ab42f81504f90be7b3448044fa76dd..c164e222e1eaeee06cacf0c46edc32e41694b852 100644 +index c0bc7495109a8d727c913e7cdc98d75a30bc7a55..61d6c2be8595d54a68b0c53c1898068f568c2a97 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -814,7 +814,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -730,7 +730,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + // CraftBukkit end } - // Paper end - Cache chunk status on disk - boolean anyPlayerCloseEnoughForSpawning(ChunkPos pos) { + public boolean anyPlayerCloseEnoughForSpawning(ChunkPos pos) { // Paper - public @@ -126,10 +126,10 @@ index fea9355a25ab42f81504f90be7b3448044fa76dd..c164e222e1eaeee06cacf0c46edc32e4 return this.anyPlayerCloseEnoughForSpawning(pos, false); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 68537510653ac189cde1e4f8b9ef542532300a67..dfb4e538a9cb05124dc49db940ea44e3fac478cf 100644 +index ca3ee200c80047aca3c8856b057e5c77840d849c..366670bf2e843b91519fbff2b0515e66debcd855 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1006,7 +1006,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1007,7 +1007,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } else { AABB axisalignedbb = AABB.encapsulatingFullBlocks(blockposition1, new BlockPos(blockposition1.atY(this.getMaxBuildHeight()))).inflate(3.0D); List list = this.getEntitiesOfClass(LivingEntity.class, axisalignedbb, (entityliving) -> { @@ -139,10 +139,10 @@ index 68537510653ac189cde1e4f8b9ef542532300a67..dfb4e538a9cb05124dc49db940ea44e3 if (!list.isEmpty()) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1b9459aeb7a676cb3ac1fbee3561f21923d9b20d..b43baee9a03f17801712e8a1af3317e1297248ab 100644 +index cc4954ceceeb8636ac1d6f0f0459816d2a98c317..f6701e597ad43d44e6f5809d9cc2b670863df67e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -468,14 +468,14 @@ public class ServerPlayer extends Player { +@@ -464,14 +464,14 @@ public class ServerPlayer extends Player { BlockPos blockposition1 = PlayerRespawnLogic.getOverworldRespawnPos(world, blockposition.getX() + j2 - i, blockposition.getZ() + k2 - i); if (blockposition1 != null) { @@ -160,7 +160,7 @@ index 1b9459aeb7a676cb3ac1fbee3561f21923d9b20d..b43baee9a03f17801712e8a1af3317e1 while (!world.noCollision((Entity) this) && this.getY() < (double) (world.getMaxBuildHeight() - 1)) { this.setPos(this.getX(), this.getY() + 1.0D, this.getZ()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index c24701ed78824dc5377f8517dedf6a5aeff0614d..a38cda0029af022eccb12c12f1652fa8053b2aa6 100644 +index 75967b3526f3f946ffc6784b87b787396ab15368..da8a60fbbba3866780615e65d6e242774a965bc6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -92,7 +92,7 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0807-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0797-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 88% rename from patches/server/0807-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0797-Remove-unnecessary-onTrackingStart-during-navigation.patch index d21cb0f72e87..646baf136fdf 100644 --- a/patches/server/0807-Remove-unnecessary-onTrackingStart-during-navigation.patch +++ b/patches/server/0797-Remove-unnecessary-onTrackingStart-during-navigation.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove unnecessary onTrackingStart during navigation warning diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index dfb4e538a9cb05124dc49db940ea44e3fac478cf..61e68f9479b1bf9570eac012170b28e4b8322b1e 100644 +index 366670bf2e843b91519fbff2b0515e66debcd855..6531c844c8ffef52f4be985c1b0b73a236219bc5 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2566,7 +2566,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2548,7 +2548,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; @@ -17,7 +17,7 @@ index dfb4e538a9cb05124dc49db940ea44e3fac478cf..61e68f9479b1bf9570eac012170b28e4 String s = "onTrackingStart called during navigation iteration"; Util.logAndPauseIfInIde("onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration")); -@@ -2652,7 +2652,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2633,7 +2633,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Mob) { Mob entityinsentient = (Mob) entity; diff --git a/patches/server/0808-Fix-custom-piglin-loved-items.patch b/patches/server/0798-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0808-Fix-custom-piglin-loved-items.patch rename to patches/server/0798-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0809-EntityPickupItemEvent-fixes.patch b/patches/server/0799-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0809-EntityPickupItemEvent-fixes.patch rename to patches/server/0799-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0810-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0800-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 94% rename from patches/server/0810-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0800-Correctly-handle-interactions-with-items-on-cooldown.patch index 88286e5950d4..54490f6aae08 100644 --- a/patches/server/0810-Correctly-handle-interactions-with-items-on-cooldown.patch +++ b/patches/server/0800-Correctly-handle-interactions-with-items-on-cooldown.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Correctly handle interactions with items on cooldown diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index a38cda0029af022eccb12c12f1652fa8053b2aa6..521fc5fd6b66c7095c729dd4aaf49bbc443f0200 100644 +index da8a60fbbba3866780615e65d6e242774a965bc6..88b71210d0845e8a4a2cd424ba238c4b5e27933b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -516,6 +516,7 @@ public class ServerPlayerGameMode { +@@ -514,6 +514,7 @@ public class ServerPlayerGameMode { BlockState iblockdata = world.getBlockState(blockposition); InteractionResult enuminteractionresult = InteractionResult.PASS; boolean cancelledBlock = false; @@ -16,7 +16,7 @@ index a38cda0029af022eccb12c12f1652fa8053b2aa6..521fc5fd6b66c7095c729dd4aaf49bbc if (!iblockdata.getBlock().isEnabled(world.enabledFeatures())) { return InteractionResult.FAIL; -@@ -525,10 +526,10 @@ public class ServerPlayerGameMode { +@@ -523,10 +524,10 @@ public class ServerPlayerGameMode { } if (player.getCooldowns().isOnCooldown(stack.getItem())) { diff --git a/patches/server/0811-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0801-Add-PlayerInventorySlotChangeEvent.patch similarity index 95% rename from patches/server/0811-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0801-Add-PlayerInventorySlotChangeEvent.patch index 08eb6927471a..7f618d01e719 100644 --- a/patches/server/0811-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/server/0801-Add-PlayerInventorySlotChangeEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b43baee9a03f17801712e8a1af3317e1297248ab..de80b618efcf9f0ceae40ed0b53d3436afca27b8 100644 +index f6701e597ad43d44e6f5809d9cc2b670863df67e..160e8ed25c7fcf60b1a9c4188ad636e7fc671ab7 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -379,6 +379,25 @@ public class ServerPlayer extends Player { +@@ -375,6 +375,25 @@ public class ServerPlayer extends Player { } } diff --git a/patches/server/0812-Elder-Guardian-appearance-API.patch b/patches/server/0802-Elder-Guardian-appearance-API.patch similarity index 90% rename from patches/server/0812-Elder-Guardian-appearance-API.patch rename to patches/server/0802-Elder-Guardian-appearance-API.patch index 6b3feb444684..ed1d0138cd31 100644 --- a/patches/server/0812-Elder-Guardian-appearance-API.patch +++ b/patches/server/0802-Elder-Guardian-appearance-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 434e3e92bd483de5a35e2f7c96f3c78c4e085239..a65284d453e2bb436db1ce12f008e7e98f84f9f6 100644 +index 6366fc2ae7944f90bcc25780c4e11e25c13f77b7..947612bb606fd24423857a42021ef89e73a083e5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3189,6 +3189,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0813-Allow-changing-bed-s-occupied-property.patch b/patches/server/0803-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0813-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0803-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0814-Add-entity-knockback-API.patch b/patches/server/0804-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0814-Add-entity-knockback-API.patch rename to patches/server/0804-Add-entity-knockback-API.patch diff --git a/patches/server/0815-Detect-headless-JREs.patch b/patches/server/0805-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0815-Detect-headless-JREs.patch rename to patches/server/0805-Detect-headless-JREs.patch diff --git a/patches/server/0816-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0806-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0816-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0806-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0817-Add-EntityToggleSitEvent.patch b/patches/server/0807-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0817-Add-EntityToggleSitEvent.patch rename to patches/server/0807-Add-EntityToggleSitEvent.patch diff --git a/patches/server/0818-Add-fire-tick-delay-option.patch b/patches/server/0808-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0818-Add-fire-tick-delay-option.patch rename to patches/server/0808-Add-fire-tick-delay-option.patch diff --git a/patches/server/0819-Add-Moving-Piston-API.patch b/patches/server/0809-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0819-Add-Moving-Piston-API.patch rename to patches/server/0809-Add-Moving-Piston-API.patch diff --git a/patches/server/0820-Ignore-impossible-spawn-tick.patch b/patches/server/0810-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0820-Ignore-impossible-spawn-tick.patch rename to patches/server/0810-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0821-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0811-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0821-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0811-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0822-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0812-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0822-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0812-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0823-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0813-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 92% rename from patches/server/0823-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0813-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch index c3bb8f0204cf..ceb0618b4bbd 100644 --- a/patches/server/0823-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch +++ b/patches/server/0813-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix EntityCombustEvent cancellation cant fully prevent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index eb8d1a04887a38142d9695dc96a46d76e26cf866..eb416aa2ca3c905692fa82cc29ec5eb32dee79a6 100644 +index 9ec4143c8f9c257d12233b9ae92147f6c2e28634..77365a374a9e702ca9d6b3b1bf97937921455f60 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3157,6 +3157,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3146,6 +3146,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S pluginManager.callEvent(entityCombustEvent); if (!entityCombustEvent.isCancelled()) { this.setSecondsOnFire(entityCombustEvent.getDuration(), false); diff --git a/patches/server/0824-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0814-Add-PrePlayerAttackEntityEvent.patch similarity index 89% rename from patches/server/0824-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0814-Add-PrePlayerAttackEntityEvent.patch index 99884e7e7854..2bce7e6fb347 100644 --- a/patches/server/0824-Add-PrePlayerAttackEntityEvent.patch +++ b/patches/server/0814-Add-PrePlayerAttackEntityEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PrePlayerAttackEntityEvent diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index dbecf65fdd4e094b9b8b8f9267618934642db40f..06aef23895f486efc7eb00c35df356d0a88d58ed 100644 +index ff070dbb6c9fa525b484e4eb9ef58caad9f0f016..c766de11e4495328224a1f47a69e4d54d26d7254 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1240,8 +1240,17 @@ public abstract class Player extends LivingEntity { +@@ -1232,8 +1232,17 @@ public abstract class Player extends LivingEntity { } public void attack(Entity target) { diff --git a/patches/server/0825-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0815-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0825-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0815-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0826-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0816-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0826-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0816-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0827-Add-Player-Warden-Warning-API.patch b/patches/server/0817-Add-Player-Warden-Warning-API.patch similarity index 95% rename from patches/server/0827-Add-Player-Warden-Warning-API.patch rename to patches/server/0817-Add-Player-Warden-Warning-API.patch index 48462712ee5a..954f55dae84b 100644 --- a/patches/server/0827-Add-Player-Warden-Warning-API.patch +++ b/patches/server/0817-Add-Player-Warden-Warning-API.patch @@ -10,7 +10,7 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a65284d453e2bb436db1ce12f008e7e98f84f9f6..03b2df036d3618c1ff8291fbf70879aff4a65324 100644 +index 947612bb606fd24423857a42021ef89e73a083e5..b47c5c81ebc160a7a767b1d22436d39820ffb595 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3194,6 +3194,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0828-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0818-More-vanilla-friendly-methods-to-update-trades.patch similarity index 94% rename from patches/server/0828-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0818-More-vanilla-friendly-methods-to-update-trades.patch index 7bb1eafa6b72..559443224db9 100644 --- a/patches/server/0828-More-vanilla-friendly-methods-to-update-trades.patch +++ b/patches/server/0818-More-vanilla-friendly-methods-to-update-trades.patch @@ -5,10 +5,10 @@ Subject: [PATCH] More vanilla friendly methods to update trades diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index fb5d4b1a86d00fce9482ed4fd4ae71fdcdb63781..1aae466e3e334d7f4bbb3ea9365a255afcc3dd3a 100644 +index 3653193effdecd969b5ac159b6d5ce633451d706..4a19e6b83147ae22ade70fdd445c5d7df3b07a0f 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -944,6 +944,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -926,6 +926,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override protected void updateTrades() { @@ -21,7 +21,7 @@ index fb5d4b1a86d00fce9482ed4fd4ae71fdcdb63781..1aae466e3e334d7f4bbb3ea9365a255a VillagerData villagerdata = this.getVillagerData(); Int2ObjectMap int2objectmap; -@@ -961,9 +967,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -943,9 +949,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler if (avillagertrades_imerchantrecipeoption != null) { MerchantOffers merchantrecipelist = this.getOffers(); diff --git a/patches/server/0829-Add-paper-dumplisteners-command.patch b/patches/server/0819-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0829-Add-paper-dumplisteners-command.patch rename to patches/server/0819-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0830-check-global-player-list-where-appropriate.patch b/patches/server/0820-check-global-player-list-where-appropriate.patch similarity index 94% rename from patches/server/0830-check-global-player-list-where-appropriate.patch rename to patches/server/0820-check-global-player-list-where-appropriate.patch index 447233c67d6f..0fd5e80c30b8 100644 --- a/patches/server/0830-check-global-player-list-where-appropriate.patch +++ b/patches/server/0820-check-global-player-list-where-appropriate.patch @@ -7,10 +7,10 @@ Makes certain entities check all players when searching for a player instead of just checking players in their world. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 61e68f9479b1bf9570eac012170b28e4b8322b1e..1506483f7d02f94ad1b00d9d3f94b7a0d99e2ca6 100644 +index 6531c844c8ffef52f4be985c1b0b73a236219bc5..b20f0da6b27fe1753ae8283ace2b5df96ee74a77 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2689,4 +2689,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2670,4 +2670,12 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::move); } } @@ -24,7 +24,7 @@ index 61e68f9479b1bf9570eac012170b28e4b8322b1e..1506483f7d02f94ad1b00d9d3f94b7a0 + // Paper end - check global player list where appropriate } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1cbbbfc691830195679f8371d9db5d69eed28f3d..6b4f51e0d3324afbab85c9d96833ee145cc54caf 100644 +index 39d9f33e49cc8099e0f6dc9822e6d471b46d6e28..5cc93ed8e082324c12ba55e7d388a8cdc7f67f1a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3677,7 +3677,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0831-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0821-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 100% rename from patches/server/0831-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0821-Fix-async-entity-add-due-to-fungus-trees.patch diff --git a/patches/server/0832-ItemStack-damage-API.patch b/patches/server/0822-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0832-ItemStack-damage-API.patch rename to patches/server/0822-ItemStack-damage-API.patch diff --git a/patches/server/0833-Friction-API.patch b/patches/server/0823-Friction-API.patch similarity index 98% rename from patches/server/0833-Friction-API.patch rename to patches/server/0823-Friction-API.patch index 96945cc9a32c..147e76dc4c75 100644 --- a/patches/server/0833-Friction-API.patch +++ b/patches/server/0823-Friction-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Friction API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6b4f51e0d3324afbab85c9d96833ee145cc54caf..85fe9bb49ca687cdd8b1fe35fb168c21f08d5593 100644 +index 5cc93ed8e082324c12ba55e7d388a8cdc7f67f1a..2d8404f4b78ab9a25a3e6be8cf8bf5bb0b1ea090 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0834-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0824-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0834-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0824-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0835-Fix-player-kick-on-shutdown.patch b/patches/server/0825-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0835-Fix-player-kick-on-shutdown.patch rename to patches/server/0825-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0836-Sync-offhand-slot-in-menus.patch b/patches/server/0826-Sync-offhand-slot-in-menus.patch similarity index 95% rename from patches/server/0836-Sync-offhand-slot-in-menus.patch rename to patches/server/0826-Sync-offhand-slot-in-menus.patch index 3035b7f2e4d9..6fec301aa37e 100644 --- a/patches/server/0836-Sync-offhand-slot-in-menus.patch +++ b/patches/server/0826-Sync-offhand-slot-in-menus.patch @@ -8,10 +8,10 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th by pressing the offhand swap item diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index de80b618efcf9f0ceae40ed0b53d3436afca27b8..46a69ef6794065e144e4948ad165a1ea0f0e2f33 100644 +index 160e8ed25c7fcf60b1a9c4188ad636e7fc671ab7..50400964b30952fcaae04536bff906e44c9a3a3d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -348,6 +348,13 @@ public class ServerPlayer extends Player { +@@ -344,6 +344,13 @@ public class ServerPlayer extends Player { } diff --git a/patches/server/0837-Player-Entity-Tracking-Events.patch b/patches/server/0827-Player-Entity-Tracking-Events.patch similarity index 87% rename from patches/server/0837-Player-Entity-Tracking-Events.patch rename to patches/server/0827-Player-Entity-Tracking-Events.patch index adab6a787ef1..18b7aa1dc282 100644 --- a/patches/server/0837-Player-Entity-Tracking-Events.patch +++ b/patches/server/0827-Player-Entity-Tracking-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player Entity Tracking Events diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c164e222e1eaeee06cacf0c46edc32e41694b852..39c8f3c694904905f946d30ea4b149c8c0545989 100644 +index 61d6c2be8595d54a68b0c53c1898068f568c2a97..94a0e0d1cdbb96a12acd1a23833242d9676d21a0 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1271,7 +1271,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1187,7 +1187,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // CraftBukkit end if (flag) { if (this.seenBy.add(player.connection)) { @@ -21,10 +21,10 @@ index c164e222e1eaeee06cacf0c46edc32e41694b852..39c8f3c694904905f946d30ea4b149c8 } else if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index eb416aa2ca3c905692fa82cc29ec5eb32dee79a6..e8fab882d8668f4afc565356b7beb0bebe8d5faf 100644 +index 77365a374a9e702ca9d6b3b1bf97937921455f60..48d7378cdfa3b15607aec21666487dd4a55e4a91 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3884,7 +3884,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3873,7 +3873,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void startSeenByPlayer(ServerPlayer player) {} diff --git a/patches/server/0838-Limit-pet-look-distance.patch b/patches/server/0828-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0838-Limit-pet-look-distance.patch rename to patches/server/0828-Limit-pet-look-distance.patch diff --git a/patches/server/0839-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0829-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0839-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0829-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0840-fix-Instruments.patch b/patches/server/0830-fix-Instruments.patch similarity index 96% rename from patches/server/0840-fix-Instruments.patch rename to patches/server/0830-fix-Instruments.patch index c55f770244a4..312d90a306d1 100644 --- a/patches/server/0840-fix-Instruments.patch +++ b/patches/server/0830-fix-Instruments.patch @@ -6,7 +6,7 @@ Subject: [PATCH] fix Instruments properly handle Player#playNote diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 03b2df036d3618c1ff8291fbf70879aff4a65324..d2ddc69d94cd5d78563896015053364013bb151a 100644 +index b47c5c81ebc160a7a767b1d22436d39820ffb595..2affa1477ad2994b6083c294e78ded3ff8e4086b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -724,7 +724,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0841-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0831-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 100% rename from patches/server/0841-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0831-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch diff --git a/patches/server/0842-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0832-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0842-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0832-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0843-Add-BlockLockCheckEvent.patch b/patches/server/0833-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0843-Add-BlockLockCheckEvent.patch rename to patches/server/0833-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0844-Add-Sneaking-API-for-Entities.patch b/patches/server/0834-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/server/0844-Add-Sneaking-API-for-Entities.patch rename to patches/server/0834-Add-Sneaking-API-for-Entities.patch diff --git a/patches/server/0845-Improve-logging-and-errors.patch b/patches/server/0835-Improve-logging-and-errors.patch similarity index 100% rename from patches/server/0845-Improve-logging-and-errors.patch rename to patches/server/0835-Improve-logging-and-errors.patch diff --git a/patches/server/0846-Improve-PortalEvents.patch b/patches/server/0836-Improve-PortalEvents.patch similarity index 89% rename from patches/server/0846-Improve-PortalEvents.patch rename to patches/server/0836-Improve-PortalEvents.patch index 9e612b388afb..30b0e7417844 100644 --- a/patches/server/0846-Improve-PortalEvents.patch +++ b/patches/server/0836-Improve-PortalEvents.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Improve PortalEvents diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e8fab882d8668f4afc565356b7beb0bebe8d5faf..085471073643d851e3b08e2282ab37a64ebd732d 100644 +index 48d7378cdfa3b15607aec21666487dd4a55e4a91..ce52cd5d11e4422cb236761b5dff06daa9cad56b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3542,7 +3542,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3531,7 +3531,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S Location enter = bukkitEntity.getLocation(); Location exit = CraftLocation.toBukkit(exitPosition, exitWorldServer.getWorld()); diff --git a/patches/server/0847-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0837-Add-config-option-for-spider-worldborder-climbing.patch similarity index 100% rename from patches/server/0847-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0837-Add-config-option-for-spider-worldborder-climbing.patch diff --git a/patches/server/0848-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0838-Add-missing-SpigotConfig-logCommands-check.patch similarity index 100% rename from patches/server/0848-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0838-Add-missing-SpigotConfig-logCommands-check.patch diff --git a/patches/server/0849-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0839-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0849-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0839-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0850-Flying-Fall-Damage.patch b/patches/server/0840-Flying-Fall-Damage.patch similarity index 89% rename from patches/server/0850-Flying-Fall-Damage.patch rename to patches/server/0840-Flying-Fall-Damage.patch index 4a0d52fb1876..bce120dfcb1d 100644 --- a/patches/server/0850-Flying-Fall-Damage.patch +++ b/patches/server/0840-Flying-Fall-Damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 06aef23895f486efc7eb00c35df356d0a88d58ed..a629755f07415997e6dbdd96f9b447b90e20b1d5 100644 +index c766de11e4495328224a1f47a69e4d54d26d7254..4baf585d4b339d5a608a1723518267eef3c10c5f 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity { @@ -16,7 +16,7 @@ index 06aef23895f486efc7eb00c35df356d0a88d58ed..a629755f07415997e6dbdd96f9b447b9 // Paper end // CraftBukkit start -@@ -1679,7 +1680,7 @@ public abstract class Player extends LivingEntity { +@@ -1671,7 +1672,7 @@ public abstract class Player extends LivingEntity { @Override public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { @@ -26,7 +26,7 @@ index 06aef23895f486efc7eb00c35df356d0a88d58ed..a629755f07415997e6dbdd96f9b447b9 } else { if (fallDistance >= 2.0F) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d2ddc69d94cd5d78563896015053364013bb151a..1d4b098564ace12dac15506d9f192f6ed27ec864 100644 +index 2affa1477ad2994b6083c294e78ded3ff8e4086b..285ac126baf0a9be36fad2ea114c167c357ef118 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2472,6 +2472,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0851-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0841-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/server/0851-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0841-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/server/0852-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0842-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 86% rename from patches/server/0852-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0842-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index 1f0a9d6d1032..c42d34033542 100644 --- a/patches/server/0852-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0842-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 085471073643d851e3b08e2282ab37a64ebd732d..9c998f4a9c73a807930e5b106d2ff6cc2d6afe77 100644 +index ce52cd5d11e4422cb236761b5dff06daa9cad56b..bbeab184bfd4b8541c97281d3328e9622c8227b6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1092,7 +1092,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1081,7 +1081,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } if (!bl.getType().isAir()) { diff --git a/patches/server/0853-config-for-disabling-entity-tag-tags.patch b/patches/server/0843-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0853-config-for-disabling-entity-tag-tags.patch rename to patches/server/0843-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0854-Use-single-player-info-update-packet-on-join.patch b/patches/server/0844-Use-single-player-info-update-packet-on-join.patch similarity index 97% rename from patches/server/0854-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0844-Use-single-player-info-update-packet-on-join.patch index e68ff316b4ad..57b905f4a9af 100644 --- a/patches/server/0854-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0844-Use-single-player-info-update-packet-on-join.patch @@ -18,7 +18,7 @@ index 07850cf4117f05bfbd96a4f02fd57db1566f90af..50f2c11d98dc4e8aa2e6f577fc802279 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 48211cdc96aab8db73a097f6899d7a9408595bf4..14bcf8b155139dcfe3b397b3b516402b3c05e09c 100644 +index 551ceff75bc36a75bb992f1081d7343d1a956fd8..f9cb05de12c938ea6d44a806f73bc0ae48b4394f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { diff --git a/patches/server/0855-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0845-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 95% rename from patches/server/0855-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0845-Correctly-shrink-items-during-EntityResurrectEvent.patch index 2aa84cc8e5db..a376c07bd0eb 100644 --- a/patches/server/0855-Correctly-shrink-items-during-EntityResurrectEvent.patch +++ b/patches/server/0845-Correctly-shrink-items-during-EntityResurrectEvent.patch @@ -22,7 +22,7 @@ This patch corrects this behaviour by only shrinking the item if a totem of undying was found and the event was called uncancelled. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3ef0b5b1e105c973e8b135f504581625256545f9..bf611c86fc095d9e9a6087d5436ddc3511835398 100644 +index 2d8404f4b78ab9a25a3e6be8cf8bf5bb0b1ea090..b6a8530074c898392879405e8ae774ce15c05776 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1610,7 +1610,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0856-Win-Screen-API.patch b/patches/server/0846-Win-Screen-API.patch similarity index 93% rename from patches/server/0856-Win-Screen-API.patch rename to patches/server/0846-Win-Screen-API.patch index e699a45b6a42..c6ffc4441c03 100644 --- a/patches/server/0856-Win-Screen-API.patch +++ b/patches/server/0846-Win-Screen-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API public net.minecraft.server.level.ServerPlayer seenCredits diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1d4b098564ace12dac15506d9f192f6ed27ec864..65bcc0b4a864c26a3167273230f642e0603c0702 100644 +index 285ac126baf0a9be36fad2ea114c167c357ef118..4b85c6bfd9398da369fbe22f090c21fc1217eae3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1226,6 +1226,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0857-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0847-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0857-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0847-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0858-Fix-force-opening-enchantment-tables.patch b/patches/server/0848-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0858-Fix-force-opening-enchantment-tables.patch rename to patches/server/0848-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0859-Add-Entity-Body-Yaw-API.patch b/patches/server/0849-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/server/0859-Add-Entity-Body-Yaw-API.patch rename to patches/server/0849-Add-Entity-Body-Yaw-API.patch diff --git a/patches/server/0860-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0850-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0860-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0850-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0861-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0851-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 83% rename from patches/server/0861-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0851-Update-the-flag-when-a-captured-block-state-is-outda.patch index 0b06f11a10d5..f785ac01e7af 100644 --- a/patches/server/0861-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0851-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index d84e1f2f085e83ff394e8dfe8bf42add64c9ee6d..898a7bf653e4d213104eb339ea4bc30bc9b26455 100644 +index 95800047e4c6d84a6f4bc7b643ca6ff302fda5ed..ee1ba73796816e15437a2a2331d86494b3674ce7 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -550,6 +550,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -458,6 +458,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); this.capturedBlockStates.put(pos.immutable(), blockstate); } diff --git a/patches/server/0862-Add-EntityFertilizeEggEvent.patch b/patches/server/0852-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/server/0862-Add-EntityFertilizeEggEvent.patch rename to patches/server/0852-Add-EntityFertilizeEggEvent.patch diff --git a/patches/server/0863-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0853-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0863-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0853-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0864-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0854-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0864-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0854-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0865-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0855-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0865-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0855-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0866-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0856-Fix-advancement-triggers-for-entity-damage.patch similarity index 97% rename from patches/server/0866-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0856-Fix-advancement-triggers-for-entity-damage.patch index 3a1d3cc88c52..cb8de1cc65fa 100644 --- a/patches/server/0866-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0856-Fix-advancement-triggers-for-entity-damage.patch @@ -23,7 +23,7 @@ index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bf611c86fc095d9e9a6087d5436ddc3511835398..5e796702aca0024044b445e1dca05794e439fa44 100644 +index b6a8530074c898392879405e8ae774ce15c05776..f6592d997a4cfd9d3ca86cd955e3de0a49743bfa 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2301,7 +2301,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0867-Fix-text-display-error-on-spawn.patch b/patches/server/0857-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0867-Fix-text-display-error-on-spawn.patch rename to patches/server/0857-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0868-Fix-inventories-returning-null-Locations.patch b/patches/server/0858-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0868-Fix-inventories-returning-null-Locations.patch rename to patches/server/0858-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0869-Add-Shearable-API.patch b/patches/server/0859-Add-Shearable-API.patch similarity index 100% rename from patches/server/0869-Add-Shearable-API.patch rename to patches/server/0859-Add-Shearable-API.patch diff --git a/patches/server/0870-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0860-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0870-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0860-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0871-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0861-Fix-beehives-generating-from-using-bonemeal.patch similarity index 100% rename from patches/server/0871-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0861-Fix-beehives-generating-from-using-bonemeal.patch diff --git a/patches/server/0872-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0862-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0872-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0862-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0873-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0863-Treat-sequence-violations-like-they-should-be.patch similarity index 100% rename from patches/server/0873-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0863-Treat-sequence-violations-like-they-should-be.patch diff --git a/patches/server/0874-remove-duplicate-animate-packet-for-records.patch b/patches/server/0864-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0874-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0864-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0875-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0865-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/server/0875-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0865-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/server/0876-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0866-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 86% rename from patches/server/0876-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0866-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index dae4e411a6a4..12f3bb6e64b1 100644 --- a/patches/server/0876-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0866-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 1506483f7d02f94ad1b00d9d3f94b7a0d99e2ca6..7660a9eac7a2aff48b32c42e56633dd7202c2e01 100644 +index b20f0da6b27fe1753ae8283ace2b5df96ee74a77..c711c7221ae001c46dcb82def726c6ed9cca1ac9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1656,6 +1656,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1638,6 +1638,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void gameEvent(GameEvent event, Vec3 emitterPos, GameEvent.Context emitter) { diff --git a/patches/server/0877-Use-array-for-gamerule-storage.patch b/patches/server/0867-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0877-Use-array-for-gamerule-storage.patch rename to patches/server/0867-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0878-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0868-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0878-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0868-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0879-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0869-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0879-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0869-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0880-Add-Mob-Experience-reward-API.patch b/patches/server/0870-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0880-Add-Mob-Experience-reward-API.patch rename to patches/server/0870-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0881-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0871-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0881-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0871-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0882-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0872-Fix-DamageCause-for-Falling-Blocks.patch similarity index 100% rename from patches/server/0882-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0872-Fix-DamageCause-for-Falling-Blocks.patch diff --git a/patches/server/0883-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0873-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0883-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0873-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0884-More-accurate-isInOpenWater-impl.patch b/patches/server/0874-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0884-More-accurate-isInOpenWater-impl.patch rename to patches/server/0874-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0885-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0875-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0885-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0875-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0886-Expand-PlayerItemMendEvent.patch b/patches/server/0876-Expand-PlayerItemMendEvent.patch similarity index 98% rename from patches/server/0886-Expand-PlayerItemMendEvent.patch rename to patches/server/0876-Expand-PlayerItemMendEvent.patch index ee6e1d3c4cea..a211bf3a3a62 100644 --- a/patches/server/0886-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0876-Expand-PlayerItemMendEvent.patch @@ -33,7 +33,7 @@ index 36d5d1736bf826f3abc756277de431c94cabb744..e814b2ef2577f032d6760de2f798d4fe return k > 0 ? this.repairPlayerItems(player, k) : 0; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 65bcc0b4a864c26a3167273230f642e0603c0702..c49d3448866caae8a2ceb51a45c3a056124f8f57 100644 +index 4b85c6bfd9398da369fbe22f090c21fc1217eae3..94878e0e44ade28e84c95f4ea1837679ed5bcd1f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1754,11 +1754,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0887-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0877-Refresh-ProjectileSource-for-projectiles.patch similarity index 97% rename from patches/server/0887-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0877-Refresh-ProjectileSource-for-projectiles.patch index db03e91e7e8b..5143e11e3f5c 100644 --- a/patches/server/0887-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0877-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9c998f4a9c73a807930e5b106d2ff6cc2d6afe77..9fa04f43b527a1796cb849fa7ac03619dd9e19da 100644 +index bbeab184bfd4b8541c97281d3328e9622c8227b6..16a4eaa49878a42f12d07ef172762a58cfa16579 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -383,6 +383,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0888-Add-transient-modifier-API.patch b/patches/server/0878-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0888-Add-transient-modifier-API.patch rename to patches/server/0878-Add-transient-modifier-API.patch diff --git a/patches/server/0889-Fix-block-place-logic.patch b/patches/server/0879-Fix-block-place-logic.patch similarity index 96% rename from patches/server/0889-Fix-block-place-logic.patch rename to patches/server/0879-Fix-block-place-logic.patch index e527f2531f23..df7bca621768 100644 --- a/patches/server/0889-Fix-block-place-logic.patch +++ b/patches/server/0879-Fix-block-place-logic.patch @@ -41,10 +41,10 @@ index 0e9d515381a673e683b63a12c1a9e79a5eedd80b..096eb30dcfdd62b1d946891f7480e9d9 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 17351ef19ced295ec4fe5aa684b9fa4db1dadf27..d3ac9442a3073fe9207b6a1f74333502c7da6105 100644 +index ee1ba73796816e15437a2a2331d86494b3674ce7..24aafda4ec034b5baa544704f8faf5ff6fcd2827 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -665,17 +665,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -572,17 +572,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam CraftWorld world = ((ServerLevel) this).getWorld(); diff --git a/patches/server/0890-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0880-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0890-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0880-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0891-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0881-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0891-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0881-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0892-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0882-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 94% rename from patches/server/0892-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0882-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch index 9b243f88762b..f507353a95c4 100644 --- a/patches/server/0892-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch +++ b/patches/server/0882-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Don't enforce icanhasbukkit default if alias block exists diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index fd31a716ec66235970af4854dd7d83c1f88e229d..fd1245ae71b05d283d2c56d05bc1959788f77a91 100644 +index cda293ee6281ba01f9f924ad5c65d8ad96ab50f6..534d250da9fa7715ff25e3e1b1e7362940e82056 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -352,7 +352,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0893-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0883-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0893-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0883-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0894-Fix-sniffer-removeExploredLocation.patch b/patches/server/0884-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0894-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0884-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0895-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0885-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0895-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0885-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0896-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0886-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0896-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0886-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0897-Properly-cancel-usable-items.patch b/patches/server/0887-Properly-cancel-usable-items.patch similarity index 92% rename from patches/server/0897-Properly-cancel-usable-items.patch rename to patches/server/0887-Properly-cancel-usable-items.patch index f99bb170d9f1..0509a093952f 100644 --- a/patches/server/0897-Properly-cancel-usable-items.patch +++ b/patches/server/0887-Properly-cancel-usable-items.patch @@ -10,10 +10,10 @@ The underlying issue of this is that the client modifies their synced data value them in order for the client to reset their using item state. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 521fc5fd6b66c7095c729dd4aaf49bbc443f0200..93ae151375608b6bbaa5e68a7384a04dc30a9502 100644 +index 88b71210d0845e8a4a2cd424ba238c4b5e27933b..3b93db1e23266c6ee3d2e22825c7668ef5b81f95 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -557,6 +557,7 @@ public class ServerPlayerGameMode { +@@ -555,6 +555,7 @@ public class ServerPlayerGameMode { } // Paper end - extend Player Interact cancellation player.getBukkitEntity().updateInventory(); // SPIGOT-2867 @@ -21,7 +21,7 @@ index 521fc5fd6b66c7095c729dd4aaf49bbc443f0200..93ae151375608b6bbaa5e68a7384a04d enuminteractionresult = (event.useItemInHand() != Event.Result.ALLOW) ? InteractionResult.SUCCESS : InteractionResult.PASS; } else if (this.gameModeForPlayer == GameType.SPECTATOR) { MenuProvider itileinventory = iblockdata.getMenuProvider(world, blockposition); -@@ -600,6 +601,11 @@ public class ServerPlayerGameMode { +@@ -598,6 +599,11 @@ public class ServerPlayerGameMode { return enuminteractionresult1; } @@ -46,7 +46,7 @@ index d2916743981c6632957ab8bed5ae7a2334c5646b..33bdfb66f36cce5e89be1a0de8b5a334 return; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5e796702aca0024044b445e1dca05794e439fa44..825e586af663b363645586470b53e92e38774bce 100644 +index f6592d997a4cfd9d3ca86cd955e3de0a49743bfa..0a2e87a53df8611a5cd0d70dae2eb35ff5406745 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3813,6 +3813,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0898-Add-event-for-player-editing-sign.patch b/patches/server/0888-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0898-Add-event-for-player-editing-sign.patch rename to patches/server/0888-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0899-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0889-Only-tick-item-frames-if-players-can-see-it.patch similarity index 92% rename from patches/server/0899-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0889-Only-tick-item-frames-if-players-can-see-it.patch index 7a1f001a2e40..80407ae8c808 100644 --- a/patches/server/0899-Only-tick-item-frames-if-players-can-see-it.patch +++ b/patches/server/0889-Only-tick-item-frames-if-players-can-see-it.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Only tick item frames if players can see it In the event that an item frame cannot be seen by any players, ticking the item frame every tick is unnecessary. This can be a very hot section of the entity tracker when lots of item frames are present on a server, so this reduces the logic which speeds it up. diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 78145f8dc50c64b1650bfa7e3ef867ca96f29ca9..937ce55812375f2952c2dab86918ab73b0f3a2d3 100644 +index b52f86e23a35f8727d827155ebb20f847108d673..72e7c44946ef02fcb744f2a4d265706e21b33c10 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -111,7 +111,7 @@ public class ServerEntity { diff --git a/patches/server/0900-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0890-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0900-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0890-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0901-Add-option-to-disable-block-updates.patch b/patches/server/0891-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0901-Add-option-to-disable-block-updates.patch rename to patches/server/0891-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0902-Call-missing-BlockDispenseEvent.patch b/patches/server/0892-Call-missing-BlockDispenseEvent.patch similarity index 100% rename from patches/server/0902-Call-missing-BlockDispenseEvent.patch rename to patches/server/0892-Call-missing-BlockDispenseEvent.patch diff --git a/patches/server/0903-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0893-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 84% rename from patches/server/0903-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0893-Don-t-load-chunks-for-supporting-block-checks.patch index dec88dbbc8d6..ce43b9a2d650 100644 --- a/patches/server/0903-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0893-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9fa04f43b527a1796cb849fa7ac03619dd9e19da..fda3aa0c11d86270e96d345cf8a8b249f817dfa3 100644 +index 16a4eaa49878a42f12d07ef172762a58cfa16579..3c2b7adcdeeb513ce6697accd2bd81d1c4810448 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1250,7 +1250,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1239,7 +1239,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } protected BlockPos getOnPos(float offset) { diff --git a/patches/server/0904-Optimize-player-lookups-for-beacons.patch b/patches/server/0894-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0904-Optimize-player-lookups-for-beacons.patch rename to patches/server/0894-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0905-Add-Sign-getInteractableSideFor.patch b/patches/server/0895-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0905-Add-Sign-getInteractableSideFor.patch rename to patches/server/0895-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0906-Array-backed-synched-entity-data.patch b/patches/server/0896-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0906-Array-backed-synched-entity-data.patch rename to patches/server/0896-Array-backed-synched-entity-data.patch diff --git a/patches/server/0907-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0897-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0907-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0897-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0908-Fix-BanList-API.patch b/patches/server/0898-Fix-BanList-API.patch similarity index 99% rename from patches/server/0908-Fix-BanList-API.patch rename to patches/server/0898-Fix-BanList-API.patch index 2636191597ee..a4ec581da1fc 100644 --- a/patches/server/0908-Fix-BanList-API.patch +++ b/patches/server/0898-Fix-BanList-API.patch @@ -208,7 +208,7 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c49d3448866caae8a2ceb51a45c3a056124f8f57..5527f6745d4d721666c6fa78f33a56d8d7c3d3fa 100644 +index 94878e0e44ade28e84c95f4ea1837679ed5bcd1f..5dbd2a22497b40d4accbe0909e4482d9bd229a1f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1652,23 +1652,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0909-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0899-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0909-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0899-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0910-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0900-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0910-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0900-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0911-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0901-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0911-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0901-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0912-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0902-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 100% rename from patches/server/0912-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0902-ExperienceOrb-should-call-EntitySpawnEvent.patch diff --git a/patches/server/0913-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0903-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0913-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0903-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0914-Add-whitelist-events.patch b/patches/server/0904-Add-whitelist-events.patch similarity index 100% rename from patches/server/0914-Add-whitelist-events.patch rename to patches/server/0904-Add-whitelist-events.patch diff --git a/patches/server/0915-Implement-PlayerFailMoveEvent.patch b/patches/server/0905-Implement-PlayerFailMoveEvent.patch similarity index 100% rename from patches/server/0915-Implement-PlayerFailMoveEvent.patch rename to patches/server/0905-Implement-PlayerFailMoveEvent.patch diff --git a/patches/server/0916-Folia-scheduler-and-owned-region-API.patch b/patches/server/0906-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0916-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0906-Folia-scheduler-and-owned-region-API.patch index 9f42a23ad62b..f237e82cec07 100644 --- a/patches/server/0916-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0906-Folia-scheduler-and-owned-region-API.patch @@ -1185,7 +1185,7 @@ index f9cb05de12c938ea6d44a806f73bc0ae48b4394f..70c89dee884838983070d3cca7bc3e2e this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a3ac7e5df3eb4fd3a76453d3837fb83ed07abc22..155886a611e49cb6d1204c675b4f44a85ec60d33 100644 +index 3c2b7adcdeeb513ce6697accd2bd81d1c4810448..30585256911a6c57205e217b3f3b4663cd0101d8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -246,11 +246,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1213,7 +1213,7 @@ index a3ac7e5df3eb4fd3a76453d3837fb83ed07abc22..155886a611e49cb6d1204c675b4f44a8 @Override public CommandSender getBukkitSender(CommandSourceStack wrapper) { return this.getBukkitEntity(); -@@ -4509,6 +4521,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4498,6 +4510,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } // Paper end - rewrite chunk system @@ -1221,7 +1221,7 @@ index a3ac7e5df3eb4fd3a76453d3837fb83ed07abc22..155886a611e49cb6d1204c675b4f44a8 if (this.removalReason == null) { this.removalReason = reason; } -@@ -4519,12 +4532,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4508,12 +4521,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (reason != RemovalReason.UNLOADED_TO_CHUNK) this.getPassengers().forEach(Entity::stopRiding); // Paper - chunk system - don't adjust passenger state when unloading, it's just not safe (and messes with our logic in entity chunk unload) this.levelCallback.onRemove(reason); @@ -1251,7 +1251,7 @@ index a3ac7e5df3eb4fd3a76453d3837fb83ed07abc22..155886a611e49cb6d1204c675b4f44a8 public void setLevelCallback(EntityInLevelCallback changeListener) { this.levelCallback = changeListener; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index fd1245ae71b05d283d2c56d05bc1959788f77a91..84d98fd048e15f43db02c1f5c52ca35f153be1a1 100644 +index 534d250da9fa7715ff25e3e1b1e7362940e82056..4d8575a82849c378eda17cdfb12a45af54dd337d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -306,6 +306,76 @@ public final class CraftServer implements Server { diff --git a/patches/server/0917-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0907-Only-erase-allay-memory-on-non-item-targets.patch similarity index 100% rename from patches/server/0917-Only-erase-allay-memory-on-non-item-targets.patch rename to patches/server/0907-Only-erase-allay-memory-on-non-item-targets.patch diff --git a/patches/server/0918-API-for-updating-recipes-on-clients.patch b/patches/server/0908-API-for-updating-recipes-on-clients.patch similarity index 97% rename from patches/server/0918-API-for-updating-recipes-on-clients.patch rename to patches/server/0908-API-for-updating-recipes-on-clients.patch index 4d5bfd57afbf..822afe4fce21 100644 --- a/patches/server/0918-API-for-updating-recipes-on-clients.patch +++ b/patches/server/0908-API-for-updating-recipes-on-clients.patch @@ -39,7 +39,7 @@ index 70c89dee884838983070d3cca7bc3e2ef13674d7..1e0cc8051f0a36a21b277eab15daf612 Iterator iterator1 = this.players.iterator(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 84d98fd048e15f43db02c1f5c52ca35f153be1a1..da5eaf620612b65e7851ec299082c60ea5613b09 100644 +index 4d8575a82849c378eda17cdfb12a45af54dd337d..66b1690c68a9c419061b7f1a85e3c8cb56817928 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1129,6 +1129,18 @@ public final class CraftServer implements Server { diff --git a/patches/server/0919-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0909-Fix-rotation-when-spawning-display-entities.patch similarity index 100% rename from patches/server/0919-Fix-rotation-when-spawning-display-entities.patch rename to patches/server/0909-Fix-rotation-when-spawning-display-entities.patch diff --git a/patches/server/0920-Only-capture-actual-tree-growth.patch b/patches/server/0910-Only-capture-actual-tree-growth.patch similarity index 97% rename from patches/server/0920-Only-capture-actual-tree-growth.patch rename to patches/server/0910-Only-capture-actual-tree-growth.patch index 07c756c7ceda..91c73a049e6c 100644 --- a/patches/server/0920-Only-capture-actual-tree-growth.patch +++ b/patches/server/0910-Only-capture-actual-tree-growth.patch @@ -29,10 +29,10 @@ index e14d928e8bf484c61f2687621623942a27f30db1..0fd5decb0790423aba80a7c1e55ce39a } entityhuman.awardStat(Stats.ITEM_USED.get(item)); // SPIGOT-7236 - award stat diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 5a1d53bf288069040837995e72ef0f16b79f9ecc..8fac839ea8131060a29c326a9530a21fbf47dfa3 100644 +index 24aafda4ec034b5baa544704f8faf5ff6fcd2827..6dfff3e991436df62babc8b3398d39d58d03baee 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1489,4 +1489,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1396,4 +1396,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return range <= 0 ? 64.0 * 64.0 : range * range; // 64 is taken from default in ServerLevel#levelEvent } // Paper end - respect global sound events gamerule diff --git a/patches/server/0921-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0911-Use-correct-source-for-mushroom-block-spread-event.patch similarity index 100% rename from patches/server/0921-Use-correct-source-for-mushroom-block-spread-event.patch rename to patches/server/0911-Use-correct-source-for-mushroom-block-spread-event.patch diff --git a/patches/server/0922-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0912-Respect-randomizeData-on-more-entities-when-spawning.patch similarity index 100% rename from patches/server/0922-Respect-randomizeData-on-more-entities-when-spawning.patch rename to patches/server/0912-Respect-randomizeData-on-more-entities-when-spawning.patch diff --git a/patches/server/0923-Use-correct-seed-on-api-world-load.patch b/patches/server/0913-Use-correct-seed-on-api-world-load.patch similarity index 91% rename from patches/server/0923-Use-correct-seed-on-api-world-load.patch rename to patches/server/0913-Use-correct-seed-on-api-world-load.patch index 5db2383afbfd..90b662d17d20 100644 --- a/patches/server/0923-Use-correct-seed-on-api-world-load.patch +++ b/patches/server/0913-Use-correct-seed-on-api-world-load.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Use correct seed on api world load diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index da5eaf620612b65e7851ec299082c60ea5613b09..a92f92f63366fd1d23d80e82863141150ff9d4e3 100644 +index 66b1690c68a9c419061b7f1a85e3c8cb56817928..369458e42ed787d75e35bddd4d8514a5d49503bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1347,7 +1347,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0924-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0914-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch similarity index 100% rename from patches/server/0924-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch rename to patches/server/0914-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch diff --git a/patches/server/0925-Cache-map-ids-on-item-frames.patch b/patches/server/0915-Cache-map-ids-on-item-frames.patch similarity index 96% rename from patches/server/0925-Cache-map-ids-on-item-frames.patch rename to patches/server/0915-Cache-map-ids-on-item-frames.patch index f04e56a45fc8..b8a8eeda7304 100644 --- a/patches/server/0925-Cache-map-ids-on-item-frames.patch +++ b/patches/server/0915-Cache-map-ids-on-item-frames.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cache map ids on item frames diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 937ce55812375f2952c2dab86918ab73b0f3a2d3..166554b0153b0afb3432150274c01a053238125d 100644 +index 72e7c44946ef02fcb744f2a4d265706e21b33c10..dc6d2ebbce9ccda5aa4a80dadcc34d48b67b9368 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -118,7 +118,7 @@ public class ServerEntity { diff --git a/patches/server/0926-Fix-custom-statistic-criteria-creation.patch b/patches/server/0916-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/server/0926-Fix-custom-statistic-criteria-creation.patch rename to patches/server/0916-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/server/0927-Bandaid-fix-for-Effect.patch b/patches/server/0917-Bandaid-fix-for-Effect.patch similarity index 96% rename from patches/server/0927-Bandaid-fix-for-Effect.patch rename to patches/server/0917-Bandaid-fix-for-Effect.patch index 86ebc65cfda5..835ace1a3a9f 100644 --- a/patches/server/0927-Bandaid-fix-for-Effect.patch +++ b/patches/server/0917-Bandaid-fix-for-Effect.patch @@ -60,10 +60,10 @@ index a4519762175c68256b1f303daca8b9408ac182bb..457e9093adb99d31ffc7f061d8c858f9 case COMPOSTER_FILL_ATTEMPT: datavalue = ((Boolean) data) ? 1 : 0; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 7899e9c905dd420821f1c422c6c07e63ac4d3121..654267fcb560c45ad2db8712c056d097b1bf4904 100644 +index 4a6fe040e3eeaabaa84946c49482b03b63e6eccc..e148688bd49a0e8a63b2999dd22dc69db1f07856 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1430,7 +1430,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1380,7 +1380,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { public void playEffect(Location loc, Effect effect, T data, int radius) { if (data != null) { Preconditions.checkArgument(effect.getData() != null, "Effect.%s does not have a valid Data", effect); @@ -73,7 +73,7 @@ index 7899e9c905dd420821f1c422c6c07e63ac4d3121..654267fcb560c45ad2db8712c056d097 // Special case: the axis is optional for ELECTRIC_SPARK Preconditions.checkArgument(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for the %s effect", effect); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5527f6745d4d721666c6fa78f33a56d8d7c3d3fa..c6055020d279892d42c6869c71150849300ef34c 100644 +index 5dbd2a22497b40d4accbe0909e4482d9bd229a1f..ef496fb67afe7aef56df06385ff39ee9c33b0dc6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -873,7 +873,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0928-SculkCatalyst-bloom-API.patch b/patches/server/0918-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/server/0928-SculkCatalyst-bloom-API.patch rename to patches/server/0918-SculkCatalyst-bloom-API.patch diff --git a/patches/server/0929-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0919-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/server/0929-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0919-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/server/0931-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0920-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 96% rename from patches/server/0931-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0920-Deprecate-and-replace-methods-with-old-StructureType.patch index 960d7f171677..12c37fb8544b 100644 --- a/patches/server/0931-Deprecate-and-replace-methods-with-old-StructureType.patch +++ b/patches/server/0920-Deprecate-and-replace-methods-with-old-StructureType.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Deprecate and replace methods with old StructureType diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a92f92f63366fd1d23d80e82863141150ff9d4e3..28b02fee73a3ab604f6921800a7ede59e2e6f414 100644 +index 369458e42ed787d75e35bddd4d8514a5d49503bc..7803e3b9d18e213b0d9159b1be4536734cc6e88b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1951,6 +1951,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0932-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0921-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 100% rename from patches/server/0932-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0921-Don-t-tab-complete-namespaced-commands-if-send-names.patch diff --git a/patches/server/0933-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0922-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 98% rename from patches/server/0933-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0922-Properly-handle-BlockBreakEvent-isDropItems.patch index 37f0ede135c5..12a1d598b2ce 100644 --- a/patches/server/0933-Properly-handle-BlockBreakEvent-isDropItems.patch +++ b/patches/server/0922-Properly-handle-BlockBreakEvent-isDropItems.patch @@ -9,10 +9,10 @@ food consumption, turtle egg count decreases, ice to water conversions and beehive releases diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 93ae151375608b6bbaa5e68a7384a04dc30a9502..b48663de0d749f2a6b53c7ad6ff7941e9e8072d6 100644 +index 3b93db1e23266c6ee3d2e22825c7668ef5b81f95..7fa8041b12b8398a1d4838142c61cdc0f5bd51ad 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -433,8 +433,8 @@ public class ServerPlayerGameMode { +@@ -431,8 +431,8 @@ public class ServerPlayerGameMode { isCorrectTool = flag1; // Paper - Trigger bee_nest_destroyed trigger in the correct place itemstack.mineBlock(this.level, iblockdata1, pos, this.player); diff --git a/patches/server/0934-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0923-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/server/0934-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0923-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/server/0935-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0924-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 91% rename from patches/server/0935-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0924-Configurable-entity-tracking-range-by-Y-coordinate.patch index 6498bc26d13d..f4c6558dced8 100644 --- a/patches/server/0935-Configurable-entity-tracking-range-by-Y-coordinate.patch +++ b/patches/server/0924-Configurable-entity-tracking-range-by-Y-coordinate.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Configurable entity tracking range by Y coordinate Options to configure entity tracking by Y coordinate, also for each entity category. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 5d85bcfe98134d37ee7b1180734426c28ff3af8f..32bbea0e65176d3a05ed02ce5351f7fea00bf53f 100644 +index 94a0e0d1cdbb96a12acd1a23833242d9676d21a0..fcbb74c56e4315ed197e9adfdbd2c6b76ba9f5e0 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1281,6 +1281,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1179,6 +1179,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider double d1 = vec3d.x * vec3d.x + vec3d.z * vec3d.z; double d2 = d0 * d0; boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z); diff --git a/patches/server/0936-Add-Listing-API-for-Player.patch b/patches/server/0925-Add-Listing-API-for-Player.patch similarity index 98% rename from patches/server/0936-Add-Listing-API-for-Player.patch rename to patches/server/0925-Add-Listing-API-for-Player.patch index dc3116153329..0f97eb50b8b6 100644 --- a/patches/server/0936-Add-Listing-API-for-Player.patch +++ b/patches/server/0925-Add-Listing-API-for-Player.patch @@ -74,7 +74,7 @@ index d43106eb89b14667e85cd6e8fa047d64f2e8ec87..56eddd28429cf42c02d88b8bf79f8b61 static class EntryBuilder { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 02aaa2abd1815bc8505a09033025cf64bc4662b2..17573871e13affb72e282da02eaba395808b3d9d 100644 +index 1e0cc8051f0a36a21b277eab15daf612e04e4c9d..d1ca2b75d82653064b905b94a638abbb2d0e710d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -356,14 +356,22 @@ public abstract class PlayerList { @@ -111,7 +111,7 @@ index 02aaa2abd1815bc8505a09033025cf64bc4662b2..17573871e13affb72e282da02eaba395 // Paper end - Use single player info update packet on join player.sentListPacket = true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c6055020d279892d42c6869c71150849300ef34c..b0b18fcc2ec8769831860596823b362fe0fd9313 100644 +index ef496fb67afe7aef56df06385ff39ee9c33b0dc6..d46a7ed737a18a65f04b38bb1354cea6f3839974 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -182,6 +182,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0937-Configurable-Region-Compression-Format.patch b/patches/server/0926-Configurable-Region-Compression-Format.patch similarity index 90% rename from patches/server/0937-Configurable-Region-Compression-Format.patch rename to patches/server/0926-Configurable-Region-Compression-Format.patch index facebba0b6d7..a6dfa66f097a 100644 --- a/patches/server/0937-Configurable-Region-Compression-Format.patch +++ b/patches/server/0926-Configurable-Region-Compression-Format.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Configurable Region Compression Format 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 6ca572500a3bb36acf481e54262e811295d64136..c5dbab099a328b37f5a59824384ee6e4be2f3482 100644 +index 4d5ab1771129114ef1e4745c43a4fd1813df2e30..bc8038da65f834249c61a262fc1a5abb7cc91a63 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 -@@ -75,7 +75,7 @@ public class RegionFile implements AutoCloseable { - // Paper end - Cache chunk status +@@ -47,7 +47,7 @@ public class RegionFile implements AutoCloseable { + public final java.util.concurrent.locks.ReentrantLock fileLock = new java.util.concurrent.locks.ReentrantLock(); // Paper public RegionFile(Path file, Path directory, boolean dsync) throws IOException { - this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync); diff --git a/patches/server/0938-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0927-Add-BlockFace-to-BlockDamageEvent.patch similarity index 96% rename from patches/server/0938-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/server/0927-Add-BlockFace-to-BlockDamageEvent.patch index 6a0a891d90be..aff36106fb29 100644 --- a/patches/server/0938-Add-BlockFace-to-BlockDamageEvent.patch +++ b/patches/server/0927-Add-BlockFace-to-BlockDamageEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add BlockFace to BlockDamageEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index b48663de0d749f2a6b53c7ad6ff7941e9e8072d6..a8c723c718aeb8e2aec997503a071c4cfedcd8ae 100644 +index 7fa8041b12b8398a1d4838142c61cdc0f5bd51ad..334f3bc7f4a08fbbca7e03e75acf1bc46eb6479c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -253,7 +253,7 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0939-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0928-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/server/0939-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0928-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/server/0940-Expand-Pose-API.patch b/patches/server/0929-Expand-Pose-API.patch similarity index 90% rename from patches/server/0940-Expand-Pose-API.patch rename to patches/server/0929-Expand-Pose-API.patch index c4bdb8c632b3..6616afa067b9 100644 --- a/patches/server/0940-Expand-Pose-API.patch +++ b/patches/server/0929-Expand-Pose-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c709049deccc8218d603382e4f628e493a99c5ae..633a709d3f7768dce644affc4ce9b75711e971f1 100644 +index 30585256911a6c57205e217b3f3b4663cd0101d8..ba9a1f9bd38f8ac58449787a9697c28fe300193a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -420,6 +420,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -418,6 +418,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @javax.annotation.Nullable private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API @@ -16,7 +16,7 @@ index c709049deccc8218d603382e4f628e493a99c5ae..633a709d3f7768dce644affc4ce9b757 public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -672,6 +673,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -670,6 +671,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void onClientRemoval() {} public void setPose(net.minecraft.world.entity.Pose pose) { diff --git a/patches/server/0941-More-DragonBattle-API.patch b/patches/server/0930-More-DragonBattle-API.patch similarity index 100% rename from patches/server/0941-More-DragonBattle-API.patch rename to patches/server/0930-More-DragonBattle-API.patch diff --git a/patches/server/0942-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0931-Deep-clone-unhandled-nbt-tags.patch similarity index 100% rename from patches/server/0942-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0931-Deep-clone-unhandled-nbt-tags.patch diff --git a/patches/server/0943-Add-PlayerPickItemEvent.patch b/patches/server/0932-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/server/0943-Add-PlayerPickItemEvent.patch rename to patches/server/0932-Add-PlayerPickItemEvent.patch diff --git a/patches/server/0944-Allow-trident-custom-damage.patch b/patches/server/0933-Allow-trident-custom-damage.patch similarity index 100% rename from patches/server/0944-Allow-trident-custom-damage.patch rename to patches/server/0933-Allow-trident-custom-damage.patch diff --git a/patches/server/0945-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0934-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/server/0945-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/server/0934-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/server/0946-Optimize-nearest-structure-border-iteration.patch b/patches/server/0935-Optimize-nearest-structure-border-iteration.patch similarity index 100% rename from patches/server/0946-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0935-Optimize-nearest-structure-border-iteration.patch diff --git a/patches/server/0947-Implement-OfflinePlayer-isConnected.patch b/patches/server/0936-Implement-OfflinePlayer-isConnected.patch similarity index 94% rename from patches/server/0947-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0936-Implement-OfflinePlayer-isConnected.patch index b6c36d01f01b..fd4a5c9e4724 100644 --- a/patches/server/0947-Implement-OfflinePlayer-isConnected.patch +++ b/patches/server/0936-Implement-OfflinePlayer-isConnected.patch @@ -23,7 +23,7 @@ index 9daec0782774ab51ea8091cb8ed9d0a106e34cfa..2bbc39c257965ad91ee360cdfcd3538a public String getName() { Player player = this.getPlayer(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b0b18fcc2ec8769831860596823b362fe0fd9313..52879f6ae48c568ffa554772507449d7908179d1 100644 +index d46a7ed737a18a65f04b38bb1354cea6f3839974..798c1af5fb6768661f67ef87039a55ea3acb572a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -279,6 +279,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0948-Fix-inventory-desync.patch b/patches/server/0937-Fix-inventory-desync.patch similarity index 100% rename from patches/server/0948-Fix-inventory-desync.patch rename to patches/server/0937-Fix-inventory-desync.patch diff --git a/patches/server/0949-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0938-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 97% rename from patches/server/0949-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0938-Add-titleOverride-to-InventoryOpenEvent.patch index 7e24ee9238ed..038579770675 100644 --- a/patches/server/0949-Add-titleOverride-to-InventoryOpenEvent.patch +++ b/patches/server/0938-Add-titleOverride-to-InventoryOpenEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 4520a6dddddb3857245c4dc8a0260664fba2dde6..361541e8c152a9311634411d434cc29ec87c17e2 100644 +index 50400964b30952fcaae04536bff906e44c9a3a3d..649e175b6d656fa89c1a59c36230b793c8d07e15 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1573,12 +1573,17 @@ public class ServerPlayer extends Player { +@@ -1568,12 +1568,17 @@ public class ServerPlayer extends Player { this.nextContainerCounter(); AbstractContainerMenu container = factory.createMenu(this.containerCounter, this.getInventory(), this); @@ -27,7 +27,7 @@ index 4520a6dddddb3857245c4dc8a0260664fba2dde6..361541e8c152a9311634411d434cc29e if (container == null && !cancelled) { // Let pre-cancelled events fall through // SPIGOT-5263 - close chest if cancelled if (factory instanceof Container) { -@@ -1600,7 +1605,7 @@ public class ServerPlayer extends Player { +@@ -1595,7 +1600,7 @@ public class ServerPlayer extends Player { } else { // CraftBukkit start this.containerMenu = container; diff --git a/patches/server/0950-Configure-sniffer-egg-hatch-time.patch b/patches/server/0939-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/server/0950-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0939-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/server/0951-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0940-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 100% rename from patches/server/0951-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0940-Do-crystal-portal-proximity-check-before-entity-look.patch diff --git a/patches/server/0952-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0941-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0952-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0941-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0953-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0942-Add-slot-sanity-checks-in-container-clicks.patch similarity index 100% rename from patches/server/0953-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0942-Add-slot-sanity-checks-in-container-clicks.patch diff --git a/patches/server/0954-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0943-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0954-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0943-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0955-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0944-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0955-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0944-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0956-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0945-Fix-silent-equipment-change-for-mobs.patch similarity index 96% rename from patches/server/0956-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0945-Fix-silent-equipment-change-for-mobs.patch index c56a73642fe4..f1f88457025c 100644 --- a/patches/server/0956-Fix-silent-equipment-change-for-mobs.patch +++ b/patches/server/0945-Fix-silent-equipment-change-for-mobs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix silent equipment change for mobs diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 59b776c591af3e890b81f9c2ca67c119ba89695e..c411b692ba71400e4e3d2ed7af4f35c4a4fed4be 100644 +index 6482dc12324524b92e0161055ad13d27dfb7f97d..704f63bb90b4268f25c24b724e08d9d74583e818 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1059,13 +1059,20 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1046,13 +1046,20 @@ public abstract class Mob extends LivingEntity implements Targeting { @Override public void setItemSlot(EquipmentSlot slot, ItemStack stack) { diff --git a/patches/server/0957-Fix-spigot-s-Forced-Stats.patch b/patches/server/0946-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0957-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0946-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0958-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0947-Add-missing-InventoryHolders-to-inventories.patch similarity index 100% rename from patches/server/0958-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0947-Add-missing-InventoryHolders-to-inventories.patch diff --git a/patches/server/0959-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0948-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 93% rename from patches/server/0959-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0948-Do-not-read-tile-entities-in-chunks-that-are-positio.patch index 058652cce840..c518d54ea7b3 100644 --- a/patches/server/0959-Do-not-read-tile-entities-in-chunks-that-are-positio.patch +++ b/patches/server/0948-Do-not-read-tile-entities-in-chunks-that-are-positio.patch @@ -10,10 +10,10 @@ which would cause a crash on Folia but would appear to function fine on Paper. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 0ef8ecc7932107029d85e961e2e747d7312d816e..bb5da9ddcd3030c8d6148902f3c649227430baab 100644 +index 1650541abeedce04ddeddfed15411b64a01be452..e45141ea0cc26c6c903edb5ff714bafa38d3189c 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -@@ -369,6 +369,13 @@ public class ChunkSerializer { +@@ -365,6 +365,13 @@ public class ChunkSerializer { for (int k1 = 0; k1 < nbttaglist3.size(); ++k1) { CompoundTag nbttagcompound4 = nbttaglist3.getCompound(k1); @@ -27,7 +27,7 @@ index 0ef8ecc7932107029d85e961e2e747d7312d816e..bb5da9ddcd3030c8d6148902f3c64922 ((ChunkAccess) object1).setBlockEntityNbt(nbttagcompound4); } -@@ -667,10 +674,19 @@ public class ChunkSerializer { +@@ -663,10 +670,19 @@ public class ChunkSerializer { CompoundTag nbttagcompound1 = nbttaglist1.getCompound(i); boolean flag = nbttagcompound1.getBoolean("keepPacked"); diff --git a/patches/server/0960-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0949-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0960-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0949-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0961-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0950-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 92% rename from patches/server/0961-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/0950-Remove-Spigot-Bug-Fix-for-MC-109346.patch index c6ad51beadcc..485f7359e3d3 100644 --- a/patches/server/0961-Remove-Spigot-Bug-Fix-for-MC-109346.patch +++ b/patches/server/0950-Remove-Spigot-Bug-Fix-for-MC-109346.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove Spigot Bug Fix for MC-109346 diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 166554b0153b0afb3432150274c01a053238125d..ba9843cd0e922fb2fee3b3ff753767ec1bc1816b 100644 +index dc6d2ebbce9ccda5aa4a80dadcc34d48b67b9368..8cd52a6172fc7bdd5dc980329fed1d765e3750f2 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -348,12 +348,6 @@ public class ServerEntity { diff --git a/patches/server/0962-Fix-SuspiciousStewMeta.patch b/patches/server/0951-Fix-SuspiciousStewMeta.patch similarity index 100% rename from patches/server/0962-Fix-SuspiciousStewMeta.patch rename to patches/server/0951-Fix-SuspiciousStewMeta.patch diff --git a/patches/server/0963-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0952-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0963-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0952-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/0964-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0953-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/0964-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0953-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/0965-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0954-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/0965-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/0954-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/0966-Fix-missing-map-initialize-event-call.patch b/patches/server/0955-Fix-missing-map-initialize-event-call.patch similarity index 93% rename from patches/server/0966-Fix-missing-map-initialize-event-call.patch rename to patches/server/0955-Fix-missing-map-initialize-event-call.patch index 407ab838a6b5..3789e0b4bcf6 100644 --- a/patches/server/0966-Fix-missing-map-initialize-event-call.patch +++ b/patches/server/0955-Fix-missing-map-initialize-event-call.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Fix missing map initialize event call public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 7660a9eac7a2aff48b32c42e56633dd7202c2e01..afafc216ac3e2a8233d4227f63ff85b3287fd12d 100644 +index c711c7221ae001c46dcb82def726c6ed9cca1ac9..2ab478e0940eae27e6e886a36ed3c1278b3f8ae1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1945,13 +1945,25 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1927,13 +1927,25 @@ public class ServerLevel extends Level implements WorldGenLevel { @Nullable @Override public MapItemSavedData getMapData(String id) { diff --git a/patches/server/0967-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/0956-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/0967-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/0956-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/0968-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/0957-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/0968-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/0957-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/0969-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/0958-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/0969-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/0958-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/0970-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0959-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/0970-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/0959-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/0971-Add-player-idle-duration-API.patch b/patches/server/0960-Add-player-idle-duration-API.patch similarity index 91% rename from patches/server/0971-Add-player-idle-duration-API.patch rename to patches/server/0960-Add-player-idle-duration-API.patch index 4a0cf2445b33..f08742e8a8c7 100644 --- a/patches/server/0971-Add-player-idle-duration-API.patch +++ b/patches/server/0960-Add-player-idle-duration-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 52879f6ae48c568ffa554772507449d7908179d1..7b75e248926dfef67533f3454017ed1d24df4a56 100644 +index 798c1af5fb6768661f67ef87039a55ea3acb572a..2b305a66e3f7d9ac6d144219dd943a01dbf6729c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3311,6 +3311,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0972-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0961-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 85% rename from patches/server/0972-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/0961-Don-t-check-if-we-can-see-non-visible-entities.patch index f646d9df51b5..fe23e35cee16 100644 --- a/patches/server/0972-Don-t-check-if-we-can-see-non-visible-entities.patch +++ b/patches/server/0961-Don-t-check-if-we-can-see-non-visible-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't check if we can see non-visible entities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 32bbea0e65176d3a05ed02ce5351f7fea00bf53f..fa29444c43925eabe5c26cafaefb46ebb246b006 100644 +index fcbb74c56e4315ed197e9adfdbd2c6b76ba9f5e0..e4f055e935bb0b31e6ee60e57b48ce7ea7ac360d 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1292,7 +1292,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1190,7 +1190,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end - Configurable entity tracking range by Y // CraftBukkit start - respect vanish API diff --git a/patches/server/0973-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0962-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/0973-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/0962-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/0974-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0963-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 90% rename from patches/server/0974-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/0963-Allow-null-itemstack-for-Player-sendEquipmentChange.patch index 8d351f9a6879..3e45d7c093b3 100644 --- a/patches/server/0974-Allow-null-itemstack-for-Player-sendEquipmentChange.patch +++ b/patches/server/0963-Allow-null-itemstack-for-Player-sendEquipmentChange.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7b75e248926dfef67533f3454017ed1d24df4a56..d1a15bd280fdd90c282d8badfdee5b944b75b2de 100644 +index 2b305a66e3f7d9ac6d144219dd943a01dbf6729c..9c4b46bb319c7f0b0831d37cff657d9563956ca5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1083,7 +1083,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0975-Optimize-VarInts.patch b/patches/server/0964-Optimize-VarInts.patch similarity index 100% rename from patches/server/0975-Optimize-VarInts.patch rename to patches/server/0964-Optimize-VarInts.patch diff --git a/patches/server/0976-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0965-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/0976-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/0965-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/0977-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0966-Add-predicate-for-blocks-when-raytracing.patch similarity index 93% rename from patches/server/0977-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/0966-Add-predicate-for-blocks-when-raytracing.patch index ea4a275eafc2..08e456cd0c76 100644 --- a/patches/server/0977-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/server/0966-Add-predicate-for-blocks-when-raytracing.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add predicate for blocks when raytracing diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..3c54b32886c608ce91654d18e198cac83d2d2d6a 100644 +index c978f3b2d42f512e982f289e76c2422e41b7eec6..bb8e962e63c7a2d931f9bd7f7c002aa35cfa5fd3 100644 --- a/src/main/java/net/minecraft/world/level/BlockGetter.java +++ b/src/main/java/net/minecraft/world/level/BlockGetter.java -@@ -83,6 +83,12 @@ public interface BlockGetter extends LevelHeightAccessor { +@@ -70,6 +70,12 @@ public interface BlockGetter extends LevelHeightAccessor { // CraftBukkit start - moved block handling into separate method for use by Block#rayTrace default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) { @@ -21,7 +21,7 @@ index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..3c54b32886c608ce91654d18e198cac8 // Paper start - Prevent raytrace from loading chunks BlockState iblockdata = this.getBlockStateIfLoaded(blockposition); if (iblockdata == null) { -@@ -92,7 +98,7 @@ public interface BlockGetter extends LevelHeightAccessor { +@@ -79,7 +85,7 @@ public interface BlockGetter extends LevelHeightAccessor { return BlockHitResult.miss(raytrace1.getTo(), Direction.getNearest(vec3d.x, vec3d.y, vec3d.z), BlockPos.containing(raytrace1.getTo())); } // Paper end - Prevent raytrace from loading chunks @@ -30,7 +30,7 @@ index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..3c54b32886c608ce91654d18e198cac8 FluidState fluid = iblockdata.getFluidState(); // Paper - Perf: don't need to go to world state again Vec3 vec3d = raytrace1.getFrom(); Vec3 vec3d1 = raytrace1.getTo(); -@@ -108,8 +114,14 @@ public interface BlockGetter extends LevelHeightAccessor { +@@ -95,8 +101,14 @@ public interface BlockGetter extends LevelHeightAccessor { // CraftBukkit end default BlockHitResult clip(ClipContext context) { @@ -47,10 +47,10 @@ index 7df62a219d0bcffc793c1a8c55b6ed244fdeb199..3c54b32886c608ce91654d18e198cac8 Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo()); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 654267fcb560c45ad2db8712c056d097b1bf4904..0d66ad3728eb31bb1dbf9f35b4f9193ed3c1f880 100644 +index e148688bd49a0e8a63b2999dd22dc69db1f07856..bec84fe26e684f1c09ab6b1e143d3ced15b04914 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1125,9 +1125,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1075,9 +1075,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public RayTraceResult rayTraceEntities(Location start, Vector direction, double maxDistance, double raySize, Predicate filter) { @@ -68,7 +68,7 @@ index 654267fcb560c45ad2db8712c056d097b1bf4904..0d66ad3728eb31bb1dbf9f35b4f9193e Preconditions.checkArgument(direction != null, "Vector direction cannot be null"); direction.checkFinite(); -@@ -1177,9 +1183,16 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1127,9 +1133,16 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public RayTraceResult rayTraceBlocks(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks) { @@ -87,7 +87,7 @@ index 654267fcb560c45ad2db8712c056d097b1bf4904..0d66ad3728eb31bb1dbf9f35b4f9193e Preconditions.checkArgument(direction != null, "Vector direction cannot be null"); direction.checkFinite(); -@@ -1192,16 +1205,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1142,16 +1155,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { } Vector dir = direction.clone().normalize().multiply(maxDistance); diff --git a/patches/server/0978-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0967-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 92% rename from patches/server/0978-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/0967-Broadcast-take-item-packets-with-collector-as-source.patch index bcd63d3b655a..2c79a6087b1c 100644 --- a/patches/server/0978-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/0967-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 825e586af663b363645586470b53e92e38774bce..e11eb4b3796debeadde58e43d9176aef029228bd 100644 +index 0a2e87a53df8611a5cd0d70dae2eb35ff5406745..60841e31c65ba8e95fbb3b5a16a7a0d1c2eb831d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3703,7 +3703,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0979-Expand-LingeringPotion-API.patch b/patches/server/0968-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/0979-Expand-LingeringPotion-API.patch rename to patches/server/0968-Expand-LingeringPotion-API.patch diff --git a/patches/server/0980-Add-MaterialTagsTest.patch b/patches/server/0969-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/0980-Add-MaterialTagsTest.patch rename to patches/server/0969-Add-MaterialTagsTest.patch diff --git a/patches/server/0981-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0970-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 96% rename from patches/server/0981-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/0970-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch index 50459d0a12de..b8211808993e 100644 --- a/patches/server/0981-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch +++ b/patches/server/0970-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch @@ -45,10 +45,10 @@ index 0db0d67f9ac15372becc1166c37f7f0aede4a4da..a9e70484b01fc082ea25d43d1d428334 BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0d66ad3728eb31bb1dbf9f35b4f9193ed3c1f880..4303c4bd263356d9f4ab44226bbc485f4b260413 100644 +index bec84fe26e684f1c09ab6b1e143d3ced15b04914..1d17131b9b3dc57218e07d3045439634255a2260 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -773,7 +773,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -723,7 +723,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { LightningBolt lightning = EntityType.LIGHTNING_BOLT.create(this.world); lightning.moveTo(loc.getX(), loc.getY(), loc.getZ()); diff --git a/patches/server/0982-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0971-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/0982-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/0971-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/0983-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0972-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/0983-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/0972-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/0984-Add-UUID-attribute-modifier-API.patch b/patches/server/0973-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/0984-Add-UUID-attribute-modifier-API.patch rename to patches/server/0973-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/0985-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0974-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 100% rename from patches/server/0985-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/0974-Fix-missing-event-call-for-entity-teleport-API.patch diff --git a/patches/server/0986-Lazily-create-LootContext-for-criterions.patch b/patches/server/0975-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/0986-Lazily-create-LootContext-for-criterions.patch rename to patches/server/0975-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/0987-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0976-Don-t-fire-sync-events-during-worldgen.patch similarity index 96% rename from patches/server/0987-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/0976-Don-t-fire-sync-events-during-worldgen.patch index 3c1a836d4cbf..0f30d31b68b0 100644 --- a/patches/server/0987-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/0976-Don-t-fire-sync-events-during-worldgen.patch @@ -19,10 +19,10 @@ where generation happened directly to a ServerLevel and the entity still has the flag set. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index afafc216ac3e2a8233d4227f63ff85b3287fd12d..0793c75dccc765b14718392fbc136b8f8ffc8f91 100644 +index 2ab478e0940eae27e6e886a36ed3c1278b3f8ae1..b54e89d68ba32f2a79e16d49f86a258b5f6df133 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1508,6 +1508,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1490,6 +1490,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit start private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot @@ -31,10 +31,10 @@ index afafc216ac3e2a8233d4227f63ff85b3287fd12d..0793c75dccc765b14718392fbc136b8f if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 633917f96c03336218a247401b3953b890acfc2e..4df2d7ae5c0cb82aa7ca1dd8c1b6e0b2991b28b3 100644 +index ba9a1f9bd38f8ac58449787a9697c28fe300193a..3c3f9a51256acb6ee4f005a08757d7ae0d27860e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -678,7 +678,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -676,7 +676,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (pose == this.getPose()) { return; } @@ -68,7 +68,7 @@ index a6e20b5ee4fe1841dfc2350264b5935b968fe3f3..9da8d56ff3768fb37d1ab89300da4eca }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a51f16f01a05860f4188b2b777a015908adbd120..dcbcd97f4b16083c1c56ffdccdc35bc3ad1e20dc 100644 +index 60841e31c65ba8e95fbb3b5a16a7a0d1c2eb831d..5e1d02d67c56644c0aa7060d567515fd88b72c9d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0988-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0977-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/0988-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/0977-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/0989-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0978-Restore-vanilla-entity-drops-behavior.patch similarity index 96% rename from patches/server/0989-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/0978-Restore-vanilla-entity-drops-behavior.patch index df93739baf0b..2fdc5056e9da 100644 --- a/patches/server/0989-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/0978-Restore-vanilla-entity-drops-behavior.patch @@ -9,10 +9,10 @@ on dropping the item instead of generalizing it for all dropped items like CB does. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 361541e8c152a9311634411d434cc29ec87c17e2..bd1a53e2ce2644681c23f8cf678afa2a99166d9b 100644 +index 649e175b6d656fa89c1a59c36230b793c8d07e15..dcd69b2b054222d1749aab599caca8340bddf345 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -941,22 +941,20 @@ public class ServerPlayer extends Player { +@@ -936,22 +936,20 @@ public class ServerPlayer extends Player { if (this.isRemoved()) { return; } @@ -38,7 +38,7 @@ index 361541e8c152a9311634411d434cc29ec87c17e2..bd1a53e2ce2644681c23f8cf678afa2a this.drops.clear(); // SPIGOT-5188: make sure to clear } // Paper - fix player loottables running when mob loot gamerule is false -@@ -2439,8 +2437,8 @@ public class ServerPlayer extends Player { +@@ -2434,8 +2432,8 @@ public class ServerPlayer extends Player { } @Override @@ -50,10 +50,10 @@ index 361541e8c152a9311634411d434cc29ec87c17e2..bd1a53e2ce2644681c23f8cf678afa2a if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index da52068d063f5dd978454e3b516384df25eb204b..3d7c6d38dba3e74bc0b868ee5efb7cc80bc0352c 100644 +index 3c3f9a51256acb6ee4f005a08757d7ae0d27860e..6946137dc476d79ccaa27608a482e6ad8b7bae1a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2541,6 +2541,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2530,6 +2530,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public ItemEntity spawnAtLocation(ItemStack stack, float yOffset) { @@ -79,7 +79,7 @@ index da52068d063f5dd978454e3b516384df25eb204b..3d7c6d38dba3e74bc0b868ee5efb7cc8 if (stack.isEmpty()) { return null; } else if (this.level().isClientSide) { -@@ -2548,14 +2567,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2537,14 +2556,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -104,7 +104,7 @@ index da52068d063f5dd978454e3b516384df25eb204b..3d7c6d38dba3e74bc0b868ee5efb7cc8 return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 228e8233caf3653d6411e4d85e5dcfd6a012b40f..5741fb18e9538c161c8516de6322b2e4dbe2cb4d 100644 +index 5e1d02d67c56644c0aa7060d567515fd88b72c9d..8d45b2c47aba08c330ec869eba633347e0572477 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0990-Add-Structure-check-API.patch b/patches/server/0979-Add-Structure-check-API.patch similarity index 91% rename from patches/server/0990-Add-Structure-check-API.patch rename to patches/server/0979-Add-Structure-check-API.patch index 032a08ac1e94..6d493fd4a5cb 100644 --- a/patches/server/0990-Add-Structure-check-API.patch +++ b/patches/server/0979-Add-Structure-check-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 4303c4bd263356d9f4ab44226bbc485f4b260413..835ad8dc64f2342da7fd26e6ef2ea4603c115ae6 100644 +index 1d17131b9b3dc57218e07d3045439634255a2260..031db5f0bcf4a7d0930a7d376e7f6806d34da4e2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -230,6 +230,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0991-Dont-resend-blocks-on-interactions.patch b/patches/server/0980-Dont-resend-blocks-on-interactions.patch similarity index 98% rename from patches/server/0991-Dont-resend-blocks-on-interactions.patch rename to patches/server/0980-Dont-resend-blocks-on-interactions.patch index b9bd693428e3..21d50f2d4987 100644 --- a/patches/server/0991-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/0980-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index a8c723c718aeb8e2aec997503a071c4cfedcd8ae..83e017efd15d0ecaffc327f02d6d5330c8ed6937 100644 +index 334f3bc7f4a08fbbca7e03e75acf1bc46eb6479c..70c83a5631faed95183e15080fb3e5d8c3b817c0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { @@ -74,7 +74,7 @@ index a8c723c718aeb8e2aec997503a071c4cfedcd8ae..83e017efd15d0ecaffc327f02d6d5330 return; } -@@ -350,7 +352,7 @@ public class ServerPlayerGameMode { +@@ -348,7 +350,7 @@ public class ServerPlayerGameMode { // Tell client the block is gone immediately then process events // Don't tell the client if its a creative sword break because its not broken! @@ -83,7 +83,7 @@ index a8c723c718aeb8e2aec997503a071c4cfedcd8ae..83e017efd15d0ecaffc327f02d6d5330 ClientboundBlockUpdatePacket packet = new ClientboundBlockUpdatePacket(pos, Blocks.AIR.defaultBlockState()); this.player.connection.send(packet); } -@@ -376,13 +378,15 @@ public class ServerPlayerGameMode { +@@ -374,13 +376,15 @@ public class ServerPlayerGameMode { if (isSwordNoBreak) { return false; } @@ -103,7 +103,7 @@ index a8c723c718aeb8e2aec997503a071c4cfedcd8ae..83e017efd15d0ecaffc327f02d6d5330 // Update any tile entity data for this block if (!captureSentBlockEntities) { // Paper - Send block entities after destroy prediction -@@ -539,16 +543,18 @@ public class ServerPlayerGameMode { +@@ -537,16 +541,18 @@ public class ServerPlayerGameMode { if (event.useInteractedBlock() == Event.Result.DENY) { // If we denied a door from opening, we need to send a correcting update to the client, as it already opened the door. if (iblockdata.getBlock() instanceof DoorBlock) { diff --git a/patches/server/0992-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/0981-Keep-previous-behavior-for-setResourcePack.patch similarity index 94% rename from patches/server/0992-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/0981-Keep-previous-behavior-for-setResourcePack.patch index edb8c6289510..68447429bd41 100644 --- a/patches/server/0992-Keep-previous-behavior-for-setResourcePack.patch +++ b/patches/server/0981-Keep-previous-behavior-for-setResourcePack.patch @@ -10,7 +10,7 @@ packs before sending the new pack. Other API exists for adding a new pack to the existing packs on a client. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d1a15bd280fdd90c282d8badfdee5b944b75b2de..fd67e7571841b345630078892e321283760341dd 100644 +index 9c4b46bb319c7f0b0831d37cff657d9563956ca5..2fb263502b61d6a66aa30ef42e1514447bf4f3fa 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2351,8 +2351,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0993-properly-read-and-store-sus-effect-duration.patch b/patches/server/0982-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/0993-properly-read-and-store-sus-effect-duration.patch rename to patches/server/0982-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/0994-Use-correct-max-stack-size-in-crafter.patch b/patches/server/0983-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/0994-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/0983-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/0995-add-more-scoreboard-API.patch b/patches/server/0984-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/0995-add-more-scoreboard-API.patch rename to patches/server/0984-add-more-scoreboard-API.patch diff --git a/patches/server/0996-Improve-Registry.patch b/patches/server/0985-Improve-Registry.patch similarity index 100% rename from patches/server/0996-Improve-Registry.patch rename to patches/server/0985-Improve-Registry.patch diff --git a/patches/server/0997-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0986-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 97% rename from patches/server/0997-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/0986-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index ecdce557feef..b20b38f2d954 100644 --- a/patches/server/0997-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/0986-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,7 +26,7 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5741fb18e9538c161c8516de6322b2e4dbe2cb4d..ec495c0080e15b1baeeb57cd7c80d2e6b06e7d2e 100644 +index 8d45b2c47aba08c330ec869eba633347e0572477..72ff9e6ec6d9640556292f010bed3a71a39bdc20 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -4185,7 +4185,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0998-Add-experience-points-API.patch b/patches/server/0987-Add-experience-points-API.patch similarity index 93% rename from patches/server/0998-Add-experience-points-API.patch rename to patches/server/0987-Add-experience-points-API.patch index f7a36a99c9fd..189efaa14fa2 100644 --- a/patches/server/0998-Add-experience-points-API.patch +++ b/patches/server/0987-Add-experience-points-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add experience points API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index a629755f07415997e6dbdd96f9b447b90e20b1d5..4713ed2d407e1425d7f5f18d0b43c6917ef876ec 100644 +index 4baf585d4b339d5a608a1723518267eef3c10c5f..c743189b1facfbfec692d300a8e15ab214ae2fcd 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1833,7 +1833,7 @@ public abstract class Player extends LivingEntity { +@@ -1825,7 +1825,7 @@ public abstract class Player extends LivingEntity { } public int getXpNeededForNextLevel() { @@ -18,7 +18,7 @@ index a629755f07415997e6dbdd96f9b447b90e20b1d5..4713ed2d407e1425d7f5f18d0b43c691 // Paper start - send while respecting visibility private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index fd67e7571841b345630078892e321283760341dd..b8d3398b349d9294de6b8a8594b054d3c84dbe0a 100644 +index 2fb263502b61d6a66aa30ef42e1514447bf4f3fa..c11b974cf4dee385d0730ecc20715feac0f20352 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1821,6 +1821,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0999-Add-missing-InventoryType.patch b/patches/server/0988-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/0999-Add-missing-InventoryType.patch rename to patches/server/0988-Add-missing-InventoryType.patch diff --git a/patches/server/1000-Add-drops-to-shear-events.patch b/patches/server/0989-Add-drops-to-shear-events.patch similarity index 100% rename from patches/server/1000-Add-drops-to-shear-events.patch rename to patches/server/0989-Add-drops-to-shear-events.patch diff --git a/patches/server/1001-Add-PlayerShieldDisableEvent.patch b/patches/server/0990-Add-PlayerShieldDisableEvent.patch similarity index 89% rename from patches/server/1001-Add-PlayerShieldDisableEvent.patch rename to patches/server/0990-Add-PlayerShieldDisableEvent.patch index 14308e197048..f1a468fac24d 100644 --- a/patches/server/1001-Add-PlayerShieldDisableEvent.patch +++ b/patches/server/0990-Add-PlayerShieldDisableEvent.patch @@ -16,10 +16,10 @@ sideeffects, meaning the disable event cannot share a handlerlist with the cooldown event diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index c411b692ba71400e4e3d2ed7af4f35c4a4fed4be..dc941429b047d33fe39c1e4664371bc0ce8d5245 100644 +index 704f63bb90b4268f25c24b724e08d9d74583e818..6d21d478a32ef8aff3961cba7441a0be384663b0 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1703,7 +1703,11 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1690,7 +1690,11 @@ public abstract class Mob extends LivingEntity implements Targeting { float f = 0.25F + (float) EnchantmentHelper.getBlockEfficiency(this) * 0.05F; if (this.random.nextFloat() < f) { @@ -33,10 +33,10 @@ index c411b692ba71400e4e3d2ed7af4f35c4a4fed4be..dc941429b047d33fe39c1e4664371bc0 } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 4713ed2d407e1425d7f5f18d0b43c6917ef876ec..35869e655a7488f7b5868895287b8045b03f2d63 100644 +index c743189b1facfbfec692d300a8e15ab214ae2fcd..4ddbe3d22198bafc0a5cdef8605a0c1a62faaa8a 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -979,7 +979,7 @@ public abstract class Player extends LivingEntity { +@@ -971,7 +971,7 @@ public abstract class Player extends LivingEntity { protected void blockUsingShield(LivingEntity attacker) { super.blockUsingShield(attacker); if (attacker.canDisableShield()) { @@ -45,7 +45,7 @@ index 4713ed2d407e1425d7f5f18d0b43c6917ef876ec..35869e655a7488f7b5868895287b8045 } } -@@ -1462,7 +1462,14 @@ public abstract class Player extends LivingEntity { +@@ -1454,7 +1454,14 @@ public abstract class Player extends LivingEntity { this.attack(target); } @@ -60,7 +60,7 @@ index 4713ed2d407e1425d7f5f18d0b43c6917ef876ec..35869e655a7488f7b5868895287b8045 float f = 0.25F + (float) EnchantmentHelper.getBlockEfficiency(this) * 0.05F; if (sprinting) { -@@ -1470,7 +1477,16 @@ public abstract class Player extends LivingEntity { +@@ -1462,7 +1469,16 @@ public abstract class Player extends LivingEntity { } if (this.random.nextFloat() < f) { diff --git a/patches/server/1002-Add-HiddenPotionEffect-API.patch b/patches/server/0991-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/1002-Add-HiddenPotionEffect-API.patch rename to patches/server/0991-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/1003-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/0992-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/1003-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/0992-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/1004-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/0993-fix-ItemMeta-removing-CustomModelData.patch similarity index 100% rename from patches/server/1004-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/0993-fix-ItemMeta-removing-CustomModelData.patch diff --git a/patches/server/1005-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0994-Validate-ResourceLocation-in-NBT-reading.patch similarity index 95% rename from patches/server/1005-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/0994-Validate-ResourceLocation-in-NBT-reading.patch index 6cf68dcdf741..12f95acee830 100644 --- a/patches/server/1005-Validate-ResourceLocation-in-NBT-reading.patch +++ b/patches/server/0994-Validate-ResourceLocation-in-NBT-reading.patch @@ -53,10 +53,10 @@ index 9da8d56ff3768fb37d1ab89300da4eca19e6218d..edc723ea5ca3a325106e7af38c60dbf9 @Nullable diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index dc941429b047d33fe39c1e4664371bc0ce8d5245..22506c5c823c65e65034a962312c1dbd44356e23 100644 +index 6d21d478a32ef8aff3961cba7441a0be384663b0..2c4916982add2e8d1fbafd13efc82c6be30e9b70 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -620,7 +620,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -607,7 +607,7 @@ public abstract class Mob extends LivingEntity implements Targeting { this.setLeftHanded(nbt.getBoolean("LeftHanded")); if (nbt.contains("DeathLootTable", 8)) { @@ -66,7 +66,7 @@ index dc941429b047d33fe39c1e4664371bc0ce8d5245..22506c5c823c65e65034a962312c1dbd } diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 2b2ff2a187410ef9431b0396c05935ffd17fd108..5a2144417783f859729fc93281edd9d577c59ca2 100644 +index 618de60680de015bc68bf95a68eda98db7bab3c5..d14eab0d83d629a4522bf3f7d789d2853eb84f06 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -560,7 +560,7 @@ public abstract class AbstractArrow extends Projectile { diff --git a/patches/server/1006-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/0995-Properly-handle-experience-dropping-on-block-break.patch similarity index 97% rename from patches/server/1006-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/0995-Properly-handle-experience-dropping-on-block-break.patch index cba1154441ff..6b0e0d8913df 100644 --- a/patches/server/1006-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/0995-Properly-handle-experience-dropping-on-block-break.patch @@ -7,10 +7,10 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 8fac839ea8131060a29c326a9530a21fbf47dfa3..25ed0f62058fa531d8bf9cf1e8fb99651ee46a67 100644 +index 6dfff3e991436df62babc8b3398d39d58d03baee..5ba31afdf371e88dd320e9a19a92d222e9de2e71 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -730,7 +730,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -637,7 +637,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (drop) { BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null; diff --git a/patches/server/1007-Fixup-NamespacedKey-handling.patch b/patches/server/0996-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/1007-Fixup-NamespacedKey-handling.patch rename to patches/server/0996-Fixup-NamespacedKey-handling.patch diff --git a/patches/server/1008-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0997-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 93% rename from patches/server/1008-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/0997-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index b72c50ec11a1..fa980a7d880a 100644 --- a/patches/server/1008-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/0997-Reduce-allocation-of-Vec3D-by-entity-tracker.patch @@ -18,10 +18,10 @@ index 3c4ac79c094dc2fff7de94150a34b7bf814ac0de..38b56923a642afc1cb411480ba03cc78 @VisibleForTesting static long encode(double value) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index fa29444c43925eabe5c26cafaefb46ebb246b006..370747aefba28dbfce59f45d303d47db9bfceb42 100644 +index e4f055e935bb0b31e6ee60e57b48ce7ea7ac360d..364d958dda220c2699b9448cd88f58f9e0e93e02 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1275,10 +1275,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1173,10 +1173,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void updatePlayer(ServerPlayer player) { org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot if (player != this.entity) { @@ -39,7 +39,7 @@ index fa29444c43925eabe5c26cafaefb46ebb246b006..370747aefba28dbfce59f45d303d47db boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z); // Paper start - Configurable entity tracking range by Y diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index ba9843cd0e922fb2fee3b3ff753767ec1bc1816b..ae188ae314336d971303023c7b7b8ecf32bae253 100644 +index 8cd52a6172fc7bdd5dc980329fed1d765e3750f2..529ab44baaf573b97cf7e89560c548642733188f 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -164,7 +164,13 @@ public class ServerEntity { diff --git a/patches/server/0072-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0998-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch similarity index 86% rename from patches/server/0072-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch rename to patches/server/0998-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch index ac072360f07b..6d394ebc64c6 100644 --- a/patches/server/0072-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch +++ b/patches/server/0998-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch @@ -26,23 +26,23 @@ 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/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 08ffa37aaf23c410c670ed1703c5eb2c10efa0f4..b76ac10fe0d4b860a4b30fae365cf38400afb456 100644 +index 72ff9e6ec6d9640556292f010bed3a71a39bdc20..f4b90cf5f6044793e69e50392ec6e89dbab018b7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3466,7 +3466,7 @@ public abstract class LivingEntity extends Entity implements Attackable { - Vec3 vec3d = new Vec3(this.getX(), this.getEyeY(), this.getZ()); +@@ -3724,7 +3724,7 @@ public abstract class LivingEntity extends Entity implements Attackable { Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ()); -- return vec3d1.distanceTo(vec3d) > 128.0D ? false : this.level().clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this)).getType() == HitResult.Type.MISS; -+ return vec3d1.distanceTo(vec3d) > 128.0D ? false : this.level().clipDirect(vec3d, vec3d1, net.minecraft.world.phys.shapes.CollisionContext.of(this)) == HitResult.Type.MISS; // Paper + // Paper - diff on change - used in CraftLivingEntity#hasLineOfSight(Location) and CraftWorld#lineOfSightExists +- return vec3d1.distanceToSqr(vec3d) > 128.0D * 128.0D ? false : this.level().clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this)).getType() == HitResult.Type.MISS; // Paper - Perf: Use distance squared ++ return vec3d1.distanceToSqr(vec3d) > 128.0D * 128.0D ? false : this.level().clipDirect(vec3d, vec3d1, net.minecraft.world.phys.shapes.CollisionContext.of(this)) == HitResult.Type.MISS; // Paper - Perf: Use distance squared & strip raytracing } } diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index d6d8bbc98fc71997cb52521d59ebb59d727d3c22..3b31a1927aaed7fffc1b4f4bcefc12120d66af3d 100644 +index bb8e962e63c7a2d931f9bd7f7c002aa35cfa5fd3..0fa131a6c98adb498fc8d534e0e39647e80c6923 100644 --- a/src/main/java/net/minecraft/world/level/BlockGetter.java +++ b/src/main/java/net/minecraft/world/level/BlockGetter.java -@@ -68,6 +68,19 @@ public interface BlockGetter extends LevelHeightAccessor { +@@ -68,6 +68,18 @@ public interface BlockGetter extends LevelHeightAccessor { }); } @@ -58,15 +58,14 @@ index d6d8bbc98fc71997cb52521d59ebb59d727d3c22..3b31a1927aaed7fffc1b4f4bcefc1212 + return hitResult == null ? null : hitResult.getType(); + } + // Paper end -+ // CraftBukkit start - moved block handling into separate method for use by Block#rayTrace default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) { - BlockState iblockdata = this.getBlockState(blockposition); + // Paper start - Add predicate for blocks when raytracing diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ed38ad96b9344903097962a5bf94fb861651fcba..272679dbd643487cf7b096828bb52b36031086a3 100644 +index 5ba31afdf371e88dd320e9a19a92d222e9de2e71..4ea6945e949c63949b7832ce95501c4a801e840d 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -286,6 +286,90 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -343,6 +343,90 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } diff --git a/patches/server/0076-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch b/patches/server/0999-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch similarity index 93% rename from patches/server/0076-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch rename to patches/server/0999-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch index 807dd8052159..0c9874a5a5ae 100644 --- a/patches/server/0076-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch +++ b/patches/server/0999-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch @@ -12,7 +12,7 @@ Replace all calls to the new place to the unnecessary forward. Optimize getType and getBlockData to manually inline and optimize the calls diff --git a/src/main/java/net/minecraft/core/Vec3i.java b/src/main/java/net/minecraft/core/Vec3i.java -index 1b29c6872ebe54351f28c1f1f38b22561ba785ee..40950db0c242c65dfd4de247c86249354d12108f 100644 +index 369b54b96c682717ef93d05312714b4d30efaceb..beadef19ee136c27601f0d116a86967344c2e403 100644 --- a/src/main/java/net/minecraft/core/Vec3i.java +++ b/src/main/java/net/minecraft/core/Vec3i.java @@ -31,6 +31,12 @@ public class Vec3i implements Comparable { @@ -29,10 +29,10 @@ index 1b29c6872ebe54351f28c1f1f38b22561ba785ee..40950db0c242c65dfd4de247c8624935 this.x = x; this.y = y; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 272679dbd643487cf7b096828bb52b36031086a3..a589b70303bf66c41e6ea1dbf493d14304df25ab 100644 +index 4ea6945e949c63949b7832ce95501c4a801e840d..43dece0870da5c857592647c3e0e51c83b2b99b1 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -371,7 +371,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -428,7 +428,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Paper end public boolean isInWorldBounds(BlockPos pos) { @@ -88,10 +88,10 @@ index 60e760b42dd6471a229dfd45490dcf8c51979d35..4a3ac7dedf5cb1e76f16ec4f18e82afc @Override public FluidState getFluidState(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index c050a5d39087722dad6bb31f95b7b04fe7e8b767..47815824811a0ca82d70e585cc4d66a521129380 100644 +index 90d6376f0441505a4c5f32d620827dfe233a5783..808ccbd141a3fb1073abb4817ec1fb82fe46e69b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -292,12 +292,29 @@ public class LevelChunk extends ChunkAccess { +@@ -299,12 +299,29 @@ public class LevelChunk extends ChunkAccess { } } @@ -125,7 +125,7 @@ index c050a5d39087722dad6bb31f95b7b04fe7e8b767..47815824811a0ca82d70e585cc4d66a5 BlockState iblockdata = null; diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index d59392c322936ce89b759ac9787c8f4f0b228af6..2c3ea88bac229df67bd742e16d2106d80bcc8889 100644 +index ea2fb64ff15af1cbb7b3f59386fb7a40f54e9b4f..edb0a5c9f7ee6ca9502b3bb7886f2d32d718169d 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -19,7 +19,7 @@ public class LevelChunkSection { diff --git a/patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/1000-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch similarity index 88% rename from patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch rename to patches/server/1000-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch index 7c234c7104c1..dbe875d2953e 100644 --- a/patches/server/0094-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch +++ b/patches/server/1000-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch @@ -13,10 +13,10 @@ custom renderers are in use, defaulting to the much simpler Vanilla system. Additionally, numerous issues to player position tracking on maps has been fixed. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ad9b4e88e2aaa5d7e70f65536c86742beafc91df..adb4e72652605f25b25dcd5690fbe7bb499c8809 100644 +index b54e89d68ba32f2a79e16d49f86a258b5f6df133..a2a9535a6667d290198ef8d6332d317c8ffffe2e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2436,6 +2436,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2620,6 +2620,7 @@ public class ServerLevel extends Level implements WorldGenLevel { { if ( iter.next().player == entity ) { @@ -25,10 +25,10 @@ index ad9b4e88e2aaa5d7e70f65536c86742beafc91df..adb4e72652605f25b25dcd5690fbe7bb } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 86d187cadb73dbe0757f9417c4549e358ff303ca..c2725113b3ec36a79c88bcf9837c0ef2955b613e 100644 +index 4ddbe3d22198bafc0a5cdef8605a0c1a62faaa8a..35869e655a7488f7b5868895287b8045b03f2d63 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -764,6 +764,14 @@ public abstract class Player extends LivingEntity { +@@ -788,6 +788,14 @@ public abstract class Player extends LivingEntity { return null; } // CraftBukkit end @@ -44,10 +44,10 @@ index 86d187cadb73dbe0757f9417c4549e358ff303ca..c2725113b3ec36a79c88bcf9837c0ef2 return entityitem; } diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -index 8f144a357174bbe096ac9b38a5e67a61127d7b87..e1623ade449fe56ec51955ee9594a93f85660c51 100644 +index ed57ce12d4d1cc632431a654cad648a8015402b1..45269115e63cfc3bd7dc740a5694e2cc7c35bcb1 100644 --- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -@@ -64,6 +64,7 @@ public class MapItemSavedData extends SavedData { +@@ -66,6 +66,7 @@ public class MapItemSavedData extends SavedData { public final Map decorations = Maps.newLinkedHashMap(); private final Map frameMarkers = Maps.newHashMap(); private int trackedDecorationCount; @@ -55,7 +55,7 @@ index 8f144a357174bbe096ac9b38a5e67a61127d7b87..e1623ade449fe56ec51955ee9594a93f // CraftBukkit start public final CraftMapView mapView; -@@ -90,6 +91,7 @@ public class MapItemSavedData extends SavedData { +@@ -92,6 +93,7 @@ public class MapItemSavedData extends SavedData { // CraftBukkit start this.mapView = new CraftMapView(this); this.server = (CraftServer) org.bukkit.Bukkit.getServer(); @@ -63,7 +63,7 @@ index 8f144a357174bbe096ac9b38a5e67a61127d7b87..e1623ade449fe56ec51955ee9594a93f // CraftBukkit end } -@@ -145,6 +147,7 @@ public class MapItemSavedData extends SavedData { +@@ -166,6 +168,7 @@ public class MapItemSavedData extends SavedData { if (abyte.length == 16384) { worldmap.colors = abyte; } @@ -71,7 +71,7 @@ index 8f144a357174bbe096ac9b38a5e67a61127d7b87..e1623ade449fe56ec51955ee9594a93f ListTag nbttaglist = nbt.getList("banners", 10); -@@ -555,6 +558,21 @@ public class MapItemSavedData extends SavedData { +@@ -578,6 +581,21 @@ public class MapItemSavedData extends SavedData { public class HoldingPlayer { @@ -93,7 +93,7 @@ index 8f144a357174bbe096ac9b38a5e67a61127d7b87..e1623ade449fe56ec51955ee9594a93f public final Player player; private boolean dirtyData = true; private int minDirtyX; -@@ -588,7 +606,9 @@ public class MapItemSavedData extends SavedData { +@@ -611,7 +629,9 @@ public class MapItemSavedData extends SavedData { @Nullable Packet nextUpdatePacket(int mapId) { MapItemSavedData.MapPatch worldmap_b; @@ -104,7 +104,7 @@ index 8f144a357174bbe096ac9b38a5e67a61127d7b87..e1623ade449fe56ec51955ee9594a93f if (this.dirtyData) { this.dirtyData = false; -@@ -604,6 +624,8 @@ public class MapItemSavedData extends SavedData { +@@ -627,6 +647,8 @@ public class MapItemSavedData extends SavedData { // CraftBukkit start java.util.Collection icons = new java.util.ArrayList(); diff --git a/patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/1001-Optimize-Network-Manager-and-add-advanced-packet-sup.patch similarity index 93% rename from patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch rename to patches/server/1001-Optimize-Network-Manager-and-add-advanced-packet-sup.patch index 895e2138ad5c..4c83d00b5651 100644 --- a/patches/server/0293-Optimize-Network-Manager-and-add-advanced-packet-sup.patch +++ b/patches/server/1001-Optimize-Network-Manager-and-add-advanced-packet-sup.patch @@ -28,11 +28,11 @@ and then catch exceptions and close if they fire. Part of this commit was authored by: Spottedleaf, sandtechnology diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3bfb463812 100644 +index e6a8f36fa07561b69b9d869022234182bdd62da0..a0434b92615c10a319eb4528808a83d01df2c516 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -84,7 +84,7 @@ public class Connection extends SimpleChannelInboundHandler> { - return new DefaultEventLoopGroup(0, (new ThreadFactoryBuilder()).setNameFormat("Netty Local Client IO #%d").setDaemon(true).build()); + return new DefaultEventLoopGroup(0, (new ThreadFactoryBuilder()).setNameFormat("Netty Local Client IO #%d").setDaemon(true).setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(LOGGER)).build()); // Paper }); private final PacketFlow receiving; - private final Queue> pendingActions = Queues.newConcurrentLinkedQueue(); @@ -51,7 +51,7 @@ index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3b // Paper start - add utility methods public final net.minecraft.server.level.ServerPlayer getPlayer() { -@@ -307,15 +311,39 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -375,15 +379,39 @@ public class Connection extends SimpleChannelInboundHandler> { } public void send(Packet packet, @Nullable PacketSendListener callbacks, boolean flush) { @@ -97,7 +97,7 @@ index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3b } public void runOnceConnected(Consumer task) { -@@ -323,7 +351,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -391,7 +419,7 @@ public class Connection extends SimpleChannelInboundHandler> { this.flushQueue(); task.accept(this); } else { @@ -106,7 +106,7 @@ index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3b } } -@@ -341,6 +369,14 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -409,6 +437,14 @@ public class Connection extends SimpleChannelInboundHandler> { } private void doSendPacket(Packet packet, @Nullable PacketSendListener callbacks, boolean flush) { @@ -121,7 +121,7 @@ index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3b ChannelFuture channelfuture = flush ? this.channel.writeAndFlush(packet) : this.channel.write(packet); if (callbacks != null) { -@@ -360,14 +396,24 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -428,14 +464,24 @@ public class Connection extends SimpleChannelInboundHandler> { }); } @@ -147,7 +147,7 @@ index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3b } } -@@ -400,20 +446,57 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -468,20 +514,57 @@ public class Connection extends SimpleChannelInboundHandler> { return attributekey; } @@ -210,9 +210,9 @@ index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3b } + // Paper end - Optimize network - public void tick() { - this.flushQueue(); -@@ -461,6 +544,7 @@ public class Connection extends SimpleChannelInboundHandler> { + private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world + private static int joinAttemptsThisTick; // Paper - Buffer joins to world +@@ -544,6 +627,7 @@ public class Connection extends SimpleChannelInboundHandler> { public void disconnect(Component disconnectReason) { // Spigot Start this.preparing = false; @@ -220,7 +220,7 @@ index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3b // Spigot End if (this.channel == null) { this.delayedDisconnect = disconnectReason; -@@ -630,7 +714,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -715,7 +799,7 @@ public class Connection extends SimpleChannelInboundHandler> { public void handleDisconnection() { if (this.channel != null && !this.channel.isOpen()) { if (this.disconnectionHandled) { @@ -229,7 +229,7 @@ index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3b } else { this.disconnectionHandled = true; PacketListener packetlistener = this.getPacketListener(); -@@ -643,7 +727,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -728,7 +812,7 @@ public class Connection extends SimpleChannelInboundHandler> { packetlistener1.onDisconnect(ichatbasecomponent); } @@ -238,7 +238,7 @@ index cd9ed68079abf103759865a3e2a038ac629a18ea..128debf837da32d27ba37184162e7b3b // Paper start - Add PlayerConnectionCloseEvent final PacketListener packetListener = this.getPacketListener(); if (packetListener instanceof net.minecraft.server.network.ServerCommonPacketListenerImpl commonPacketListener) { -@@ -680,4 +764,93 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -765,4 +849,93 @@ public class Connection extends SimpleChannelInboundHandler> { public void setBandwidthLogger(SampleLogger log) { this.bandwidthDebugMonitor = new BandwidthDebugMonitor(log); } @@ -368,7 +368,7 @@ index cc658a61065d5c0021a4b88fa58b40211b94f8ec..da11266a0a23f446196e6facf2c358cf return false; } diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 187b2cf175ba5cea94158d29b53993dc5a7c5b94..9db7fc8c053aa9e929fa6dddf70290a8f7ad5273 100644 +index 4f330a44c77a7ec3237a86fda04921a8c4a1c00f..a4a29a7ea0035ecf4c61ee8547a9eb24acb667d0 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java @@ -63,10 +63,12 @@ public class ServerConnectionListener { @@ -384,7 +384,7 @@ index 187b2cf175ba5cea94158d29b53993dc5a7c5b94..9db7fc8c053aa9e929fa6dddf70290a8 } } // Paper end - prevent blocking on adding a new connection while the server is ticking -@@ -103,6 +105,7 @@ public class ServerConnectionListener { +@@ -114,6 +116,7 @@ public class ServerConnectionListener { ; } diff --git a/patches/server/0306-Allow-Saving-of-Oversized-Chunks.patch b/patches/server/1002-Allow-Saving-of-Oversized-Chunks.patch similarity index 91% rename from patches/server/0306-Allow-Saving-of-Oversized-Chunks.patch rename to patches/server/1002-Allow-Saving-of-Oversized-Chunks.patch index 538175e05b40..6a131f4dd4b7 100644 --- a/patches/server/0306-Allow-Saving-of-Oversized-Chunks.patch +++ b/patches/server/1002-Allow-Saving-of-Oversized-Chunks.patch @@ -33,7 +33,7 @@ this fix, as the data will remain in the oversized file. Once the server returns to a jar with this fix, the data will be restored. 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 2a7f17726a161ddbcd0397fb4332de6980199c38..69ed808ca5fbfb9191d0818bb0f1c839d11d9d11 100644 +index bc8038da65f834249c61a262fc1a5abb7cc91a63..6c89b92cac521808873e9e1eccc363695275cd7a 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 @@ -18,8 +18,11 @@ import java.nio.file.LinkOption; @@ -55,7 +55,7 @@ index 2a7f17726a161ddbcd0397fb4332de6980199c38..69ed808ca5fbfb9191d0818bb0f1c839 + public final Path regionFile; // Paper public RegionFile(Path file, Path directory, boolean dsync) throws IOException { - this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync); + this(file, directory, RegionFileVersion.getCompressionFormat(), dsync); // Paper - Configurable region compression format @@ -52,6 +56,8 @@ public class RegionFile implements AutoCloseable { public RegionFile(Path file, Path directory, RegionFileVersion outputChunkStreamVersion, boolean dsync) throws IOException { @@ -65,10 +65,10 @@ index 2a7f17726a161ddbcd0397fb4332de6980199c38..69ed808ca5fbfb9191d0818bb0f1c839 this.usedSectors = new RegionBitmap(); this.version = outputChunkStreamVersion; if (!Files.isDirectory(directory, new LinkOption[0])) { -@@ -430,6 +436,74 @@ public class RegionFile implements AutoCloseable { - +@@ -431,6 +437,74 @@ public class RegionFile implements AutoCloseable { } + public static final int MAX_CHUNK_SIZE = 500 * 1024 * 1024; // Paper - don't write garbage data to disk if writing serialization fails + // Paper start + private final byte[] oversized = new byte[1024]; + private int oversizedCount; @@ -141,10 +141,10 @@ index 2a7f17726a161ddbcd0397fb4332de6980199c38..69ed808ca5fbfb9191d0818bb0f1c839 private final ChunkPos pos; diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 465ad0bae446a20e941e8f2dbf2d85f2627482b9..affd43308ac565066cefa799238e46b75a28b270 100644 +index c3bf911a76373dcd1c345a3091adefb0e550fd18..6900e52d3e24ba64cebcd409b5fb3a8f5e15ef1d 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -@@ -121,6 +121,43 @@ public class RegionFileStorage implements AutoCloseable { +@@ -144,6 +144,43 @@ public class RegionFileStorage implements AutoCloseable { } } @@ -188,7 +188,7 @@ index 465ad0bae446a20e941e8f2dbf2d85f2627482b9..affd43308ac565066cefa799238e46b7 @Nullable public CompoundTag read(ChunkPos pos) throws IOException { // CraftBukkit start - SPIGOT-5680: There's no good reason to preemptively create files on read, save that for writing -@@ -132,6 +169,12 @@ public class RegionFileStorage implements AutoCloseable { +@@ -155,6 +192,12 @@ public class RegionFileStorage implements AutoCloseable { try { // Paper DataInputStream datainputstream = regionfile.getChunkDataInputStream(pos); @@ -201,11 +201,11 @@ index 465ad0bae446a20e941e8f2dbf2d85f2627482b9..affd43308ac565066cefa799238e46b7 CompoundTag nbttagcompound; label43: { -@@ -218,6 +261,7 @@ public class RegionFileStorage implements AutoCloseable { +@@ -241,6 +284,7 @@ public class RegionFileStorage implements AutoCloseable { try { NbtIo.write(nbt, (DataOutput) dataoutputstream); + regionfile.setOversized(pos.x, pos.z, false); // Paper - We don't do this anymore, mojang stores differently, but clear old meta flag if it exists to get rid of our own meta file once last oversized is gone - } catch (Throwable throwable) { - if (dataoutputstream != null) { - try { + // Paper start - don't write garbage data to disk if writing serialization fails + dataoutputstream.close(); // Only write if successful + } catch (final RegionFileSizeException e) { diff --git a/patches/server/0308-Fix-World-isChunkGenerated-calls.patch b/patches/server/1003-Fix-World-isChunkGenerated-calls.patch similarity index 86% rename from patches/server/0308-Fix-World-isChunkGenerated-calls.patch rename to patches/server/1003-Fix-World-isChunkGenerated-calls.patch index 5fe36e4e67b7..095237092261 100644 --- a/patches/server/0308-Fix-World-isChunkGenerated-calls.patch +++ b/patches/server/1003-Fix-World-isChunkGenerated-calls.patch @@ -8,10 +8,10 @@ This patch also adds a chunk status cache on region files (note that its only purpose is to cache the status on DISK) diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 45ee0cd242271883412284625230822d9c8a5452..56f52d4b9c1af6a04d464640ed06b841a47b4cd9 100644 +index 364d958dda220c2699b9448cd88f58f9e0e93e02..ca58aedecf80eba442aca6e6cd0a1428db899268 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -679,9 +679,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -719,9 +719,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end private CompletableFuture> readChunk(ChunkPos chunkPos) { @@ -28,7 +28,7 @@ index 45ee0cd242271883412284625230822d9c8a5452..56f52d4b9c1af6a04d464640ed06b841 } // CraftBukkit start -@@ -690,6 +694,63 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -730,6 +734,60 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // CraftBukkit end } @@ -36,7 +36,6 @@ index 45ee0cd242271883412284625230822d9c8a5452..56f52d4b9c1af6a04d464640ed06b841 + @Nullable + public CompoundTag readConvertChunkSync(ChunkPos pos) throws IOException { + CompoundTag nbttagcompound = this.readSync(pos); -+ // Paper start - Cache chunk status on disk + if (nbttagcompound == null) { + return null; + } @@ -49,10 +48,8 @@ index 45ee0cd242271883412284625230822d9c8a5452..56f52d4b9c1af6a04d464640ed06b841 + this.updateChunkStatusOnDisk(pos, nbttagcompound); + + return nbttagcompound; -+ // Paper end + } + -+ // Paper start - chunk status cache "api" + public ChunkStatus getChunkStatusOnDiskIfCached(ChunkPos chunkPos) { + net.minecraft.world.level.chunk.storage.RegionFile regionFile = regionFileCache.getRegionFileIfLoaded(chunkPos); + @@ -89,11 +86,11 @@ index 45ee0cd242271883412284625230822d9c8a5452..56f52d4b9c1af6a04d464640ed06b841 + } + // Paper end - Cache chunk status on disk + - boolean anyPlayerCloseEnoughForSpawning(ChunkPos pos) { + public boolean anyPlayerCloseEnoughForSpawning(ChunkPos pos) { // Paper - public // Spigot start return this.anyPlayerCloseEnoughForSpawning(pos, false); 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 69ed808ca5fbfb9191d0818bb0f1c839d11d9d11..0ae3d1ea6f00efcdea5da5bf1a0f984f4473f5a2 100644 +index 6c89b92cac521808873e9e1eccc363695275cd7a..92ba75254f6ffca40abd5485dbb4789de59edebd 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 @@ -50,6 +50,30 @@ public class RegionFile implements AutoCloseable { @@ -125,7 +122,7 @@ index 69ed808ca5fbfb9191d0818bb0f1c839d11d9d11..0ae3d1ea6f00efcdea5da5bf1a0f984f + // Paper end - Cache chunk status + public RegionFile(Path file, Path directory, boolean dsync) throws IOException { - this(file, directory, RegionFileVersion.VERSION_DEFLATE, dsync); + this(file, directory, RegionFileVersion.getCompressionFormat(), dsync); // Paper - Configurable region compression format } @@ -397,6 +421,7 @@ public class RegionFile implements AutoCloseable { return this.getOffset(pos) != 0; @@ -144,22 +141,22 @@ index 69ed808ca5fbfb9191d0818bb0f1c839d11d9d11..0ae3d1ea6f00efcdea5da5bf1a0f984f this.padToFullSector(); } finally { diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index affd43308ac565066cefa799238e46b75a28b270..8563383d45f89ee01dd5df13af5bd0cf1b3d7b01 100644 +index 6900e52d3e24ba64cebcd409b5fb3a8f5e15ef1d..eeb596a357ca9a18199596af665bc308ff706b70 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -@@ -261,6 +261,7 @@ public class RegionFileStorage implements AutoCloseable { +@@ -284,6 +284,7 @@ public class RegionFileStorage implements AutoCloseable { try { NbtIo.write(nbt, (DataOutput) dataoutputstream); + regionfile.setStatus(pos.x, pos.z, ChunkSerializer.getStatus(nbt)); // Paper - Cache chunk status regionfile.setOversized(pos.x, pos.z, false); // Paper - We don't do this anymore, mojang stores differently, but clear old meta flag if it exists to get rid of our own meta file once last oversized is gone - } catch (Throwable throwable) { - if (dataoutputstream != null) { + // Paper start - don't write garbage data to disk if writing serialization fails + dataoutputstream.close(); // Only write if successful diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0b7f3c3df526372e5c249ba3c1bb04343fe86e48..86f31b8356e1632537d34b39c105d01958eba23a 100644 +index 031db5f0bcf4a7d0930a7d376e7f6806d34da4e2..29fa4ebcb1375a64023ada3d7055bc8085846bf4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -310,9 +310,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -376,9 +376,23 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public boolean isChunkGenerated(int x, int z) { @@ -185,36 +182,39 @@ index 0b7f3c3df526372e5c249ba3c1bb04343fe86e48..86f31b8356e1632537d34b39c105d019 throw new RuntimeException(ex); } } -@@ -426,20 +440,48 @@ public class CraftWorld extends CraftRegionAccessor implements World { - @Override +@@ -528,20 +542,48 @@ public class CraftWorld extends CraftRegionAccessor implements World { public boolean loadChunk(int x, int z, boolean generate) { org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot + warnUnsafeChunk("loading a faraway chunk", x, z); // Paper - ChunkAccess chunk = this.world.getChunkSource().getChunk(x, z, generate || isChunkGenerated(x, z) ? ChunkStatus.FULL : ChunkStatus.EMPTY, true); // Paper -+ // Paper start - Optimize this method -+ ChunkPos chunkPos = new ChunkPos(x, z); - +- - // If generate = false, but the chunk already exists, we will get this back. - if (chunk instanceof ImposterProtoChunk) { - // We then cycle through again to get the full chunk immediately, rather than after the ticket addition - chunk = this.world.getChunkSource().getChunk(x, z, ChunkStatus.FULL, true); - } +- +- if (chunk instanceof net.minecraft.world.level.chunk.LevelChunk) { +- this.world.getChunkSource().addRegionTicket(TicketType.PLUGIN, new ChunkPos(x, z), 0, Unit.INSTANCE); // Paper ++ // Paper start - Optimize this method ++ ChunkPos chunkPos = new ChunkPos(x, z); ++ ChunkAccess immediate = world.getChunkSource().getChunkAtIfLoadedImmediately(x, z); ++ if (immediate != null) { ++ // Plugins should use plugin tickets instead of this method to keep a chunk perpetually loaded + return true; + } + +- return false; + if (!generate) { -+ ChunkAccess immediate = world.getChunkSource().getChunkAtImmediately(x, z); -+ if (immediate == null) { -+ immediate = world.getChunkSource().chunkMap.getUnloadingChunk(x, z); -+ } ++ immediate = world.getChunkSource().chunkMap.getUnloadingChunk(x, z); + if (immediate != null) { + if (!(immediate instanceof ImposterProtoChunk) && !(immediate instanceof net.minecraft.world.level.chunk.LevelChunk)) { + return false; // not full status + } -+ world.getChunkSource().addRegionTicket(TicketType.PLUGIN, chunkPos, 1, Unit.INSTANCE); ++ world.getChunkSource().addRegionTicket(TicketType.PLUGIN, chunkPos, 0, Unit.INSTANCE); // Paper + world.getChunk(x, z); // make sure we're at ticket level 32 or lower + return true; + } - -- if (chunk instanceof net.minecraft.world.level.chunk.LevelChunk) { -- this.world.getChunkSource().addRegionTicket(TicketType.PLUGIN, new ChunkPos(x, z), 1, Unit.INSTANCE); -- return true; + net.minecraft.world.level.chunk.storage.RegionFile file; + try { + file = world.getChunkSource().chunkMap.regionFileCache.getRegionFile(chunkPos, false); @@ -234,10 +234,8 @@ index 0b7f3c3df526372e5c249ba3c1bb04343fe86e48..86f31b8356e1632537d34b39c105d019 + + // fall through to load + // we do this so we do not re-read the chunk data on disk - } - -- return false; -+ world.getChunkSource().addRegionTicket(TicketType.PLUGIN, chunkPos, 1, Unit.INSTANCE); ++ } ++ world.getChunkSource().addRegionTicket(TicketType.PLUGIN, chunkPos, 0, Unit.INSTANCE); // Paper + world.getChunkSource().getChunk(x, z, ChunkStatus.FULL, true); + return true; + // Paper end - Optimize this method diff --git a/patches/server/0316-Flat-bedrock-generator-settings.patch b/patches/server/1004-Flat-bedrock-generator-settings.patch similarity index 100% rename from patches/server/0316-Flat-bedrock-generator-settings.patch rename to patches/server/1004-Flat-bedrock-generator-settings.patch diff --git a/patches/server/0327-Entity-Activation-Range-2.0.patch b/patches/server/1005-Entity-Activation-Range-2.0.patch similarity index 95% rename from patches/server/0327-Entity-Activation-Range-2.0.patch rename to patches/server/1005-Entity-Activation-Range-2.0.patch index e82e576a0c23..7e04f83f6384 100644 --- a/patches/server/0327-Entity-Activation-Range-2.0.patch +++ b/patches/server/1005-Entity-Activation-Range-2.0.patch @@ -18,7 +18,7 @@ public net.minecraft.world.entity.Entity isInsidePortal public net.minecraft.world.entity.LivingEntity jumping diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 262335dfd4ea0315e43e0a055a7259916bb6ee37..77cd3c3381c7aa12fbde8fbced0b830aabadf42f 100644 +index a2a9535a6667d290198ef8d6332d317c8ffffe2e..0c8282683a02087ec0631d1fb5edb13759853486 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2,7 +2,6 @@ package net.minecraft.server.level; @@ -29,7 +29,7 @@ index 262335dfd4ea0315e43e0a055a7259916bb6ee37..77cd3c3381c7aa12fbde8fbced0b830a import com.google.common.collect.Lists; import com.mojang.datafixers.DataFixer; import com.mojang.datafixers.util.Pair; -@@ -1208,17 +1207,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1222,17 +1221,17 @@ public class ServerLevel extends Level implements WorldGenLevel { ++TimingHistory.entityTicks; // Paper - timings // Spigot start co.aikar.timings.Timing timer; // Paper @@ -51,7 +51,7 @@ index 262335dfd4ea0315e43e0a055a7259916bb6ee37..77cd3c3381c7aa12fbde8fbced0b830a try { // Paper end - timings entity.setOldPosAndRot(); -@@ -1229,9 +1228,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1243,9 +1242,13 @@ public class ServerLevel extends Level implements WorldGenLevel { return BuiltInRegistries.ENTITY_TYPE.getKey(entity.getType()).toString(); }); gameprofilerfiller.incrementCounter("tickNonPassenger"); @@ -65,7 +65,7 @@ index 262335dfd4ea0315e43e0a055a7259916bb6ee37..77cd3c3381c7aa12fbde8fbced0b830a Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1239,13 +1242,18 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1253,13 +1256,18 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(entity, entity1); } @@ -85,7 +85,7 @@ index 262335dfd4ea0315e43e0a055a7259916bb6ee37..77cd3c3381c7aa12fbde8fbced0b830a passenger.setOldPosAndRot(); ++passenger.tickCount; ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1254,8 +1262,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1268,8 +1276,17 @@ public class ServerLevel extends Level implements WorldGenLevel { return BuiltInRegistries.ENTITY_TYPE.getKey(passenger.getType()).toString(); }); gameprofilerfiller.incrementCounter("tickPassenger"); @@ -103,7 +103,7 @@ index 262335dfd4ea0315e43e0a055a7259916bb6ee37..77cd3c3381c7aa12fbde8fbced0b830a gameprofilerfiller.pop(); Iterator iterator = passenger.getPassengers().iterator(); -@@ -1265,6 +1282,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1279,6 +1296,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(passenger, entity2); } @@ -112,19 +112,19 @@ index 262335dfd4ea0315e43e0a055a7259916bb6ee37..77cd3c3381c7aa12fbde8fbced0b830a } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7abdfeacec4787819e2e66d3b8a322b750d203f7..10b338c9feae7d1360573d4be58be42a0b3203f5 100644 +index 6946137dc476d79ccaa27608a482e6ad8b7bae1a..f080a688eeeaa8ed30690026a483930b7b9e0344 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -397,6 +397,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S - // Spigot end +@@ -412,6 +412,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper start protected int numCollisions = 0; // Paper - Cap entity collisions -+ public long activatedImmunityTick = Integer.MIN_VALUE; // Paper -+ public boolean isTemporarilyActive; // Paper + public boolean fromNetherPortal; // Paper - Add option to nerf pigmen from nether portals ++ public long activatedImmunityTick = Integer.MIN_VALUE; // Paper - EAR ++ public boolean isTemporarilyActive; // Paper - EAR public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable private org.bukkit.util.Vector origin; -@@ -968,6 +970,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1021,6 +1023,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { this.wasOnFire = this.isOnFire(); if (movementType == MoverType.PISTON) { @@ -133,7 +133,7 @@ index 7abdfeacec4787819e2e66d3b8a322b750d203f7..10b338c9feae7d1360573d4be58be42a movement = this.limitPistonMovement(movement); if (movement.equals(Vec3.ZERO)) { return; -@@ -980,6 +984,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1033,6 +1037,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.stuckSpeedMultiplier = Vec3.ZERO; this.setDeltaMovement(Vec3.ZERO); } @@ -148,7 +148,7 @@ index 7abdfeacec4787819e2e66d3b8a322b750d203f7..10b338c9feae7d1360573d4be58be42a movement = this.maybeBackOffFromEdge(movement, movementType); Vec3 vec3d1 = this.collide(movement); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 7d0ccdd4b144afed8a93256941b3d8618c847f4d..a04240f64541009f342bcdeb725ccb04c65b697b 100644 +index 2c4916982add2e8d1fbafd13efc82c6be30e9b70..22506c5c823c65e65034a962312c1dbd44356e23 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -221,6 +221,19 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -172,7 +172,7 @@ index 7d0ccdd4b144afed8a93256941b3d8618c847f4d..a04240f64541009f342bcdeb725ccb04 Entity entity = this.getControlledVehicle(); diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -index 5e9cf929674888b3a143a0691dc6936b304467f1..b5964614823059261c28eb2e998ad54249f07e7b 100644 +index d6393210cfee53685f83c8491bea8b9c13b01eea..3d95257d2203fe40bb1fab58ad2a1f9e815184a9 100644 --- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java +++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java @@ -21,6 +21,7 @@ public abstract class PathfinderMob extends Mob { @@ -244,7 +244,7 @@ index 9fc374c17f6b3ee4ab3c582d05e96321b772f2d6..07519c817cc6de04a98198c43a0c2b02 } } diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index bfd156acbae31619234fffb1804726090802fbae..7956c1ec7bf6b9fe224ec14bb695c0b8ca9dcf2d 100644 +index 4a19e6b83147ae22ade70fdd445c5d7df3b07a0f..1aae466e3e334d7f4bbb3ea9365a255afcc3dd3a 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -227,17 +227,34 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -340,11 +340,11 @@ index b149e8bcac034bb3fc118a9adcb0de45e18ed5e9..fc35cfc9d045f3e5b6a50af1d0ba83b6 + } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 53cbe0e86acf2c5b329e4805875a8b1db94c0a25..fe500eb9ec252a213bd45746f984288a64eb6056 100644 +index 43dece0870da5c857592647c3e0e51c83b2b99b1..3b9833c7d7513a5b0afe36da82ba52cfe336bc58 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -162,6 +162,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - public Map capturedTileEntities = new HashMap<>(); + public Map capturedTileEntities = new java.util.LinkedHashMap<>(); // Paper - Retain block place order when capturing blockstates public List captureDrops; public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); + // Paper start @@ -357,7 +357,7 @@ index 53cbe0e86acf2c5b329e4805875a8b1db94c0a25..fe500eb9ec252a213bd45746f984288a public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot // Paper start - add paper world config diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -index 45f55c79a9d105f732054d61c4cf83eb5db49762..17a6327ab7b26dfab38881bbc0689b0b25f8f025 100644 +index b1061db1d9b3bfde61d5016e10556c4320095827..c71690dbc3dc52803945f1608f0ee3ba94146354 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java @@ -143,6 +143,10 @@ public class PistonMovingBlockEntity extends BlockEntity { @@ -372,7 +372,7 @@ index 45f55c79a9d105f732054d61c4cf83eb5db49762..17a6327ab7b26dfab38881bbc0689b0b } } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index d5374072a97f791964033d107f023b3cc657b343..3495981419a75efe42bce45a89a32378dd6b8372 100644 +index aaa997613a991a9fc5ed276a7e7e61448f34ef64..fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -1,39 +1,52 @@ @@ -558,7 +558,7 @@ index d5374072a97f791964033d107f023b3cc657b343..3495981419a75efe42bce45a89a32378 // Paper start java.util.List entities = world.getEntities((Entity)null, ActivationRange.maxBB, null); -@@ -172,60 +250,118 @@ public class ActivationRange +@@ -178,60 +256,118 @@ public class ActivationRange * @param entity * @return */ @@ -694,7 +694,7 @@ index d5374072a97f791964033d107f023b3cc657b343..3495981419a75efe42bce45a89a32378 } /** -@@ -240,8 +376,19 @@ public class ActivationRange +@@ -246,8 +382,19 @@ public class ActivationRange if ( entity instanceof FireworkRocketEntity ) { return true; } @@ -715,7 +715,7 @@ index d5374072a97f791964033d107f023b3cc657b343..3495981419a75efe42bce45a89a32378 // Should this entity tick? if ( !isActive ) -@@ -249,15 +396,19 @@ public class ActivationRange +@@ -255,15 +402,19 @@ public class ActivationRange if ( ( MinecraftServer.currentTick - entity.activatedTick - 1 ) % 20 == 0 ) { // Check immunities every 20 ticks. @@ -741,10 +741,10 @@ index d5374072a97f791964033d107f023b3cc657b343..3495981419a75efe42bce45a89a32378 isActive = false; } diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java -index 81c76360e8c7389bafd61f38e6782668e8c65d27..50e57486d49694396816122504028e410ebb602d 100644 +index 5485df1a1b59e81f4dcedd21dd972e1fd2759573..1cf6d4f854d89c515e48e1fb365eb95ff9340765 100644 --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java -@@ -205,14 +205,60 @@ public class SpigotWorldConfig +@@ -211,14 +211,60 @@ public class SpigotWorldConfig public int monsterActivationRange = 32; public int raiderActivationRange = 48; public int miscActivationRange = 16; diff --git a/patches/server/0332-Optional-per-player-mob-spawns.patch b/patches/server/1006-Optional-per-player-mob-spawns.patch similarity index 94% rename from patches/server/0332-Optional-per-player-mob-spawns.patch rename to patches/server/1006-Optional-per-player-mob-spawns.patch index 26db4845b9de..0c3e064dbb4c 100644 --- a/patches/server/0332-Optional-per-player-mob-spawns.patch +++ b/patches/server/1006-Optional-per-player-mob-spawns.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optional per player mob spawns diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index b9c345d056ea8b14f19dc033cf3e7e9502b63eda..2b9a1a178233fb7cfb4d58853ff3176cb1236d3a 100644 +index ca58aedecf80eba442aca6e6cd0a1428db899268..e575350d5af1c605ccadb67e4f0fdc28662caba0 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -288,6 +288,29 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -39,10 +39,10 @@ index b9c345d056ea8b14f19dc033cf3e7e9502b63eda..2b9a1a178233fb7cfb4d58853ff3176c double d0 = (double) SectionPos.sectionToBlockCoord(pos.x, 8); double d1 = (double) SectionPos.sectionToBlockCoord(pos.z, 8); diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index de1d5da6318958e11a9da56ddd8fef1174d0a537..c05beb24972e6633e2d61ba47dcfa0189ea249b6 100644 +index 35f463e5237d12e42f7a8b8c177af3236d2e7986..25009accd401fc3860c57cac1ef628b233e746e7 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -549,7 +549,19 @@ public class ServerChunkCache extends ChunkSource { +@@ -533,7 +533,19 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.popPush("naturalSpawnCount"); this.level.timings.countNaturalMobs.startTiming(); // Paper - timings int k = this.distanceManager.getNaturalSpawnChunkCount(); @@ -64,10 +64,10 @@ index de1d5da6318958e11a9da56ddd8fef1174d0a537..c05beb24972e6633e2d61ba47dcfa018 this.lastSpawnState = spawnercreature_d; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0eace8fabb01083327b34e39ec47c51dbedf87ec..181b1896f5bed99c4c4e2e092f72b1a8e1551832 100644 +index dcd69b2b054222d1749aab599caca8340bddf345..c17750ca3254530c9858e82df7e064bbd855b551 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -253,6 +253,10 @@ public class ServerPlayer extends Player { +@@ -256,6 +256,10 @@ public class ServerPlayer extends Player { public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; // Paper end @@ -79,7 +79,7 @@ index 0eace8fabb01083327b34e39ec47c51dbedf87ec..181b1896f5bed99c4c4e2e092f72b1a8 // CraftBukkit start public String displayName; diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 30327580bfa00dda2b87171b2bf3c7de2600ba68..b27e0f31d0b3f5c57157a27f1f1db0f847d42a0c 100644 +index 28ec1cc4dec6d12627761a58d635fd51dbc398b3..da9f091e1c2dd8b025e806f53a4708b623ee4cd8 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -70,6 +70,12 @@ public final class NaturalSpawner { @@ -151,8 +151,8 @@ index 30327580bfa00dda2b87171b2bf3c7de2600ba68..b27e0f31d0b3f5c57157a27f1f1db0f8 } } -@@ -158,11 +191,17 @@ public final class NaturalSpawner { - } +@@ -168,11 +201,17 @@ public final class NaturalSpawner { + // Paper end - Add mobcaps commands public static void spawnCategoryForChunk(MobCategory group, ServerLevel world, LevelChunk chunk, NaturalSpawner.SpawnPredicate checker, NaturalSpawner.AfterSpawnCallback runner) { + // Paper start - Optional per player mob spawns @@ -170,7 +170,7 @@ index 30327580bfa00dda2b87171b2bf3c7de2600ba68..b27e0f31d0b3f5c57157a27f1f1db0f8 } @VisibleForDebug -@@ -173,15 +212,21 @@ public final class NaturalSpawner { +@@ -183,15 +222,21 @@ public final class NaturalSpawner { }); } @@ -193,7 +193,7 @@ index 30327580bfa00dda2b87171b2bf3c7de2600ba68..b27e0f31d0b3f5c57157a27f1f1db0f8 int k = 0; while (k < 3) { -@@ -223,14 +268,14 @@ public final class NaturalSpawner { +@@ -233,14 +278,14 @@ public final class NaturalSpawner { // Paper start - PreCreatureSpawnEvent PreSpawnStatus doSpawning = isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2); if (doSpawning == PreSpawnStatus.ABORT) { @@ -210,7 +210,7 @@ index 30327580bfa00dda2b87171b2bf3c7de2600ba68..b27e0f31d0b3f5c57157a27f1f1db0f8 } entityinsentient.moveTo(d0, (double) i, d1, world.random.nextFloat() * 360.0F, 0.0F); -@@ -243,10 +288,15 @@ public final class NaturalSpawner { +@@ -253,10 +298,15 @@ public final class NaturalSpawner { ++j; ++k1; runner.run(entityinsentient, chunk); @@ -228,7 +228,7 @@ index 30327580bfa00dda2b87171b2bf3c7de2600ba68..b27e0f31d0b3f5c57157a27f1f1db0f8 } if (entityinsentient.isMaxGroupSizeReached(k1)) { -@@ -268,6 +318,7 @@ public final class NaturalSpawner { +@@ -278,6 +328,7 @@ public final class NaturalSpawner { } } @@ -236,7 +236,7 @@ index 30327580bfa00dda2b87171b2bf3c7de2600ba68..b27e0f31d0b3f5c57157a27f1f1db0f8 } private static boolean isRightDistanceToPlayerAndSpawnPoint(ServerLevel world, ChunkAccess chunk, BlockPos.MutableBlockPos pos, double squaredDistance) { -@@ -567,7 +618,7 @@ public final class NaturalSpawner { +@@ -577,7 +628,7 @@ public final class NaturalSpawner { MobCategory enumcreaturetype = entitytypes.getCategory(); this.mobCategoryCounts.addTo(enumcreaturetype, 1); @@ -245,7 +245,7 @@ index 30327580bfa00dda2b87171b2bf3c7de2600ba68..b27e0f31d0b3f5c57157a27f1f1db0f8 } public int getSpawnableChunkCount() { -@@ -583,6 +634,7 @@ public final class NaturalSpawner { +@@ -593,6 +644,7 @@ public final class NaturalSpawner { int i = limit * this.spawnableChunkCount / NaturalSpawner.MAGIC_NUMBER; // CraftBukkit end diff --git a/patches/server/0333-Anti-Xray.patch b/patches/server/1007-Anti-Xray.patch similarity index 96% rename from patches/server/0333-Anti-Xray.patch rename to patches/server/1007-Anti-Xray.patch index 38b256428527..a53ceaa47dea 100644 --- a/patches/server/0333-Anti-Xray.patch +++ b/patches/server/1007-Anti-Xray.patch @@ -1017,7 +1017,7 @@ index 6cff1a98dc7cf33947ec760dbc3d3d0ec5db5f6c..51f647de153255c919b1440338cf1b3e } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index dda7151d333144399ba5602e1b651b1f5b8f8f0d..8ffb99aedaa57c1e96ddcc05143776b59c9700a3 100644 +index 582a3e5e45dd10068eeb25a3e37bdece3ddbc296..998deae645b4497c3285bfba3260c636439f9ecf 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java @@ -33,7 +33,10 @@ public class ClientboundLevelChunkPacketData { @@ -1104,10 +1104,10 @@ index 90ec22d35edb2874417bbea590e0d3c37ad93d64..fc230d835f9aa526a4b179d36d921f0f public ClientboundLevelChunkWithLightPacket(FriendlyByteBuf buf) { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 77cd3c3381c7aa12fbde8fbced0b830aabadf42f..f4262817adfcbf1fa2db4e930b8b3a2879d99baf 100644 +index 0c8282683a02087ec0631d1fb5edb13759853486..0793c75dccc765b14718392fbc136b8f8ffc8f91 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -569,7 +569,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -570,7 +570,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Holder holder = worlddimension.type(); // CraftBukkit - decompile error // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error @@ -1117,7 +1117,7 @@ index 77cd3c3381c7aa12fbde8fbced0b830aabadf42f..f4262817adfcbf1fa2db4e930b8b3a28 this.convertable = convertable_conversionsession; this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile()); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index deef24ad28ecf7895aa03bf8dae085814d307ece..99784bac05ea0d2ea1e9053466e21c1175fe0a4b 100644 +index 70c83a5631faed95183e15080fb3e5d8c3b817c0..83e017efd15d0ecaffc327f02d6d5330c8ed6937 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -49,7 +49,7 @@ import org.bukkit.event.player.PlayerInteractEvent; @@ -1129,7 +1129,7 @@ index deef24ad28ecf7895aa03bf8dae085814d307ece..99784bac05ea0d2ea1e9053466e21c11 protected final ServerPlayer player; private GameType gameModeForPlayer; @Nullable -@@ -321,6 +321,8 @@ public class ServerPlayerGameMode { +@@ -326,6 +326,8 @@ public class ServerPlayerGameMode { } } @@ -1139,10 +1139,10 @@ index deef24ad28ecf7895aa03bf8dae085814d307ece..99784bac05ea0d2ea1e9053466e21c11 public void destroyAndAck(BlockPos pos, int sequence, String reason) { diff --git a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java -index 5de5209e04d631bd6a50e28e8d3abebf148252c1..19b3f4fa7678a038bf25efc2a8b46ddad0193fde 100644 +index 43e3c99eafaed42161664e31827dfd0abb127ad2..fb1863d235a61ec977e8ad87a289d935a9c5d0e4 100644 --- a/src/main/java/net/minecraft/server/network/PlayerChunkSender.java +++ b/src/main/java/net/minecraft/server/network/PlayerChunkSender.java -@@ -85,7 +85,10 @@ public class PlayerChunkSender { +@@ -90,7 +90,10 @@ public class PlayerChunkSender { public static void sendChunk(ServerGamePacketListenerImpl handler, ServerLevel world, LevelChunk chunk) { // Paper - rewrite chunk loader - public handler.player.serverLevel().chunkSource.chunkMap.getVisibleChunkIfPresent(chunk.getPos().toLong()).addPlayer(handler.player); @@ -1151,11 +1151,11 @@ index 5de5209e04d631bd6a50e28e8d3abebf148252c1..19b3f4fa7678a038bf25efc2a8b46dda + final boolean shouldModify = world.chunkPacketBlockController.shouldModify(handler.player, chunk); + handler.send(new ClientboundLevelChunkWithLightPacket(chunk, world.getLightEngine(), (BitSet)null, (BitSet)null, shouldModify)); + // Paper end - Anti-Xray - ChunkPos chunkPos = chunk.getPos(); - DebugPackets.sendPoiPacketsForChunk(world, chunkPos); - } + // Paper start - PlayerChunkLoadEvent + if (io.papermc.paper.event.packet.PlayerChunkLoadEvent.getHandlerList().getRegisteredListeners().length > 0) { + new io.papermc.paper.event.packet.PlayerChunkLoadEvent(new org.bukkit.craftbukkit.CraftChunk(chunk), handler.getPlayer().getBukkitEntity()).callEvent(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index fe500eb9ec252a213bd45746f984288a64eb6056..1540a00e28e95f74dd46b62bdb30840d0e674e01 100644 +index 3b9833c7d7513a5b0afe36da82ba52cfe336bc58..7116e2b98a8c6cc026fd9ea8c5f2c00764906a8c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -177,6 +177,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1166,7 +1166,7 @@ index fe500eb9ec252a213bd45746f984288a64eb6056..1540a00e28e95f74dd46b62bdb30840d public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -195,7 +196,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -211,7 +212,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); @@ -1175,7 +1175,7 @@ index fe500eb9ec252a213bd45746f984288a64eb6056..1540a00e28e95f74dd46b62bdb30840d this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config this.generator = gen; -@@ -281,6 +282,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -297,6 +298,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.keepSpawnInMemory = this.paperConfig().spawn.keepSpawnLoaded; // Paper this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime); this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); @@ -1183,7 +1183,7 @@ index fe500eb9ec252a213bd45746f984288a64eb6056..1540a00e28e95f74dd46b62bdb30840d } // Paper start - Cancel hit for vanished players -@@ -546,6 +548,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -572,6 +574,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit end BlockState iblockdata1 = chunk.setBlockState(pos, state, (flags & 64) != 0, (flags & 1024) == 0); // CraftBukkit custom NO_PLACE flag @@ -1217,7 +1217,7 @@ index 5e8d2e4245757a0889645ea79ee68afb53f7dde4..f7e5e016a7028a9196e689e950805b0d } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 2f4eccd75479562060c3ce8208ae0d55bb744f65..f76ed2035fb08143e70cd9962c368cf8f3d5af8c 100644 +index 808ccbd141a3fb1073abb4817ec1fb82fe46e69b..6e1006675339551ca499a57a8f8553020f16a4fa 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -91,7 +91,7 @@ public class LevelChunk extends ChunkAccess { @@ -1230,7 +1230,7 @@ index 2f4eccd75479562060c3ce8208ae0d55bb744f65..f76ed2035fb08143e70cd9962c368cf8 this.level = (ServerLevel) world; // CraftBukkit - type this.gameEventListenerRegistrySections = new Int2ObjectOpenHashMap(); diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index 2c3ea88bac229df67bd742e16d2106d80bcc8889..4eeb719b40ff1c18a7cdda7ecc6b135dbedd626e 100644 +index edb0a5c9f7ee6ca9502b3bb7886f2d32d718169d..3efd0a462306fbd02a506a3f952d609645b1f874 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -33,9 +33,12 @@ public class LevelChunkSection { @@ -1267,7 +1267,7 @@ index 2c3ea88bac229df67bd742e16d2106d80bcc8889..4eeb719b40ff1c18a7cdda7ecc6b135d public int getSerializedSize() { diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 1219200cd915d6239a32a2bd09d325cd8fa9b346..98e720a21432fff7fce8653095a56e2ef56f1d30 100644 +index dfae0918079425df92d958b04275be8ae60d4b60..0f930f8355ea99d1cb1a8d27edc1c224588f852f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java @@ -30,6 +30,7 @@ public class PalettedContainer implements PaletteResize, PalettedContainer @@ -1277,9 +1277,9 @@ index 1219200cd915d6239a32a2bd09d325cd8fa9b346..98e720a21432fff7fce8653095a56e2e + private final T @org.jetbrains.annotations.Nullable [] presetValues; // Paper - Anti-Xray - Add preset values private volatile PalettedContainer.Data data; private final PalettedContainer.Strategy strategy; - private final ThreadingDetector threadingDetector = new ThreadingDetector("PalettedContainer"); + // private final ThreadingDetector threadingDetector = new ThreadingDetector("PalettedContainer"); // Paper - unused @@ -42,14 +43,19 @@ public class PalettedContainer implements PaletteResize, PalettedContainer - this.threadingDetector.checkAndUnlock(); + // this.threadingDetector.checkAndUnlock(); // Paper - disable this } - public static Codec> codecRW(IdMap idList, Codec entryCodec, PalettedContainer.Strategy paletteProvider, T defaultValue) { @@ -1359,7 +1359,7 @@ index 1219200cd915d6239a32a2bd09d325cd8fa9b346..98e720a21432fff7fce8653095a56e2e this.data = this.createOrReuseData((PalettedContainer.Data)null, 0); @@ -93,11 +132,33 @@ public class PalettedContainer implements PaletteResize, PalettedContainer @Override - public int onResize(int newBits, T object) { + public synchronized int onResize(int newBits, T object) { // Paper - synchronize PalettedContainer.Data data = this.data; + + // Paper start - Anti-Xray - Add preset values @@ -1403,12 +1403,12 @@ index 1219200cd915d6239a32a2bd09d325cd8fa9b346..98e720a21432fff7fce8653095a56e2e } -+ // Paper start - Anti-Xray - Add chunk packet info ++ // Paper start - Anti-Xray; Add chunk packet info + @Override + @Deprecated @io.papermc.paper.annotation.DoNotUse public void write(FriendlyByteBuf buf) { this.write(buf, null, 0); } @Override -- public void write(FriendlyByteBuf buf) { -+ public void write(FriendlyByteBuf buf, @Nullable com.destroystokyo.paper.antixray.ChunkPacketInfo chunkPacketInfo, int chunkSectionIndex) { +- public synchronized void write(FriendlyByteBuf buf) { // Paper - synchronize ++ public synchronized void write(FriendlyByteBuf buf, @Nullable com.destroystokyo.paper.antixray.ChunkPacketInfo chunkPacketInfo, int chunkSectionIndex) { // Paper - Synchronize this.acquire(); try { @@ -1491,7 +1491,7 @@ index 9a2bf744abd8916d492e901be889223591bac3fd..1dd415c96d17eff8e7555c33d3c52e57 int getSerializedSize(); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java -index 7862caa0f787634cec14af81fe1f39803a43f115..0341d9e951366b77e7eeac7cdaa950af62c88aab 100644 +index e45141ea0cc26c6c903edb5ff714bafa38d3189c..bb5da9ddcd3030c8d6148902f3c649227430baab 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkSerializer.java @@ -71,7 +71,7 @@ import org.slf4j.Logger; @@ -1503,7 +1503,7 @@ index 7862caa0f787634cec14af81fe1f39803a43f115..0341d9e951366b77e7eeac7cdaa950af private static final Logger LOGGER = LogUtils.getLogger(); private static final String TAG_UPGRADE_DATA = "UpgradeData"; private static final String BLOCK_TICKS_TAG = "block_ticks"; -@@ -162,16 +162,20 @@ public class ChunkSerializer { +@@ -174,16 +174,20 @@ public class ChunkSerializer { if (k >= 0 && k < achunksection.length) { Logger logger; PalettedContainer datapaletteblock; @@ -1526,7 +1526,7 @@ index 7862caa0f787634cec14af81fe1f39803a43f115..0341d9e951366b77e7eeac7cdaa950af } PalettedContainer object; // CraftBukkit - read/write -@@ -184,7 +188,7 @@ public class ChunkSerializer { +@@ -196,7 +200,7 @@ public class ChunkSerializer { Objects.requireNonNull(logger); object = ((DataResult>>) dataresult).getOrThrow(false, logger::error); // CraftBukkit - decompile error } else { @@ -1535,7 +1535,7 @@ index 7862caa0f787634cec14af81fe1f39803a43f115..0341d9e951366b77e7eeac7cdaa950af } LevelChunkSection chunksection = new LevelChunkSection(datapaletteblock, (PalettedContainer) object); // CraftBukkit - read/write -@@ -412,7 +416,7 @@ public class ChunkSerializer { +@@ -431,7 +435,7 @@ public class ChunkSerializer { // CraftBukkit start - read/write private static Codec>> makeBiomeCodecRW(Registry iregistry) { @@ -1545,7 +1545,7 @@ index 7862caa0f787634cec14af81fe1f39803a43f115..0341d9e951366b77e7eeac7cdaa950af // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index 545b14f02ac72dda30891d681eba585d19fd5e1d..6dc7e23e96aaffb912611a9dbd41459cb8489056 100644 +index d4e0ef75dd12709a0dcf9193821c30b8943e6c36..fd702027e62eb38d51fb7c46ef268e9bb94e1e92 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java @@ -53,7 +53,7 @@ public class CraftChunk implements Chunk { @@ -1558,10 +1558,10 @@ index 545b14f02ac72dda30891d681eba585d19fd5e1d..6dc7e23e96aaffb912611a9dbd41459c private static final byte[] EMPTY_LIGHT = new byte[2048]; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index eba4767efb8ebe373c8f8898d6dd7f9f759d4ce3..4ba05f0448bcb75d9c334758a5482b0cab8cc9d7 100644 +index 7803e3b9d18e213b0d9159b1be4536734cc6e88b..28b02fee73a3ab604f6921800a7ede59e2e6f414 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2373,7 +2373,7 @@ public final class CraftServer implements Server { +@@ -2616,7 +2616,7 @@ public final class CraftServer implements Server { public ChunkGenerator.ChunkData createChunkData(World world) { Preconditions.checkArgument(world != null, "World cannot be null"); ServerLevel handle = ((CraftWorld) world).getHandle(); @@ -1569,12 +1569,12 @@ index eba4767efb8ebe373c8f8898d6dd7f9f759d4ce3..4ba05f0448bcb75d9c334758a5482b0c + return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME), world); // Paper - Anti-Xray - Add parameters } - @Override + // Paper start - Allow delegation to vanilla chunk gen diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 76dd24fe01b0b7052db60fa531c977fe2a361254..40c9f9a0e1a2b126160428124b3430b56f5a0b83 100644 +index 29fa4ebcb1375a64023ada3d7055bc8085846bf4..cd559e6aaf4bd2bd322c953bbb186135489ddcaa 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -421,11 +421,16 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -522,11 +522,16 @@ public class CraftWorld extends CraftRegionAccessor implements World { List playersInRange = playerChunk.playerProvider.getPlayers(playerChunk.getPos(), false); if (playersInRange.isEmpty()) return true; // Paper - rewrite player chunk loader @@ -1594,7 +1594,7 @@ index 76dd24fe01b0b7052db60fa531c977fe2a361254..40c9f9a0e1a2b126160428124b3430b5 // Paper - rewrite player chunk loader diff --git a/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java b/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java -index e7f7a246e9c03e676dadfee59de87b8b2ac55ba3..03eb35d5c67f125c44cf46595c93d124ac7892b8 100644 +index 9b640705f2c810160aa7fea5006429ec41d0c858..44a010590e830fd238cf6fdda443e28b72022e66 100644 --- a/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java +++ b/src/main/java/org/bukkit/craftbukkit/generator/OldCraftChunkData.java @@ -27,8 +27,13 @@ public final class OldCraftChunkData implements ChunkGenerator.ChunkData { diff --git a/patches/server/0930-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/1008-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 95% rename from patches/server/0930-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/1008-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch index 7b4c5d79f28f..236a2566219e 100644 --- a/patches/server/0930-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch +++ b/patches/server/1008-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve cancelling PreCreatureSpawnEvent with per player mob diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 39c8f3c694904905f946d30ea4b149c8c0545989..5d85bcfe98134d37ee7b1180734426c28ff3af8f 100644 +index e575350d5af1c605ccadb67e4f0fdc28662caba0..0b80e73593a24c008b2ae8d09be59787e39ef0e6 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -306,8 +306,26 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -61,7 +61,7 @@ index 25009accd401fc3860c57cac1ef628b233e746e7..15139198a02e366c0bbfcd5495a21c48 spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true); } else { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 46a69ef6794065e144e4948ad165a1ea0f0e2f33..4520a6dddddb3857245c4dc8a0260664fba2dde6 100644 +index c17750ca3254530c9858e82df7e064bbd855b551..bd1a53e2ce2644681c23f8cf678afa2a99166d9b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -260,6 +260,7 @@ public class ServerPlayer extends Player { @@ -73,7 +73,7 @@ index 46a69ef6794065e144e4948ad165a1ea0f0e2f33..4520a6dddddb3857245c4dc8a0260664 // CraftBukkit start public String displayName; diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 5a4db70543ab446630c1cf0252496b57edc4252a..1712bd7c3a9b515c7bf8909f7392a385ef243ff9 100644 +index da9f091e1c2dd8b025e806f53a4708b623ee4cd8..17e9f3a30e287faf210e08dc7eb177a70f049f43 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -277,6 +277,11 @@ public final class NaturalSpawner { diff --git a/patches/server/1015-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/1015-Use-distance-map-to-optimise-entity-tracker.patch index 03063e59b490..1e13473a8774 100644 --- a/patches/server/1015-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/1015-Use-distance-map-to-optimise-entity-tracker.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use distance map to optimise entity tracker Use the distance map to find candidate players for tracking. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 370747aefba28dbfce59f45d303d47db9bfceb42..90393101fddd54f60b0b173beffd8650ad23349e 100644 +index 0b80e73593a24c008b2ae8d09be59787e39ef0e6..b5bdec141b52dcb1ec37db228d831cab58473c7b 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -146,6 +146,23 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -124,7 +124,7 @@ index 370747aefba28dbfce59f45d303d47db9bfceb42..90393101fddd54f60b0b173beffd8650 } // Paper start -@@ -943,17 +1023,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -940,17 +1020,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void move(ServerPlayer player) { @@ -143,7 +143,7 @@ index 370747aefba28dbfce59f45d303d47db9bfceb42..90393101fddd54f60b0b173beffd8650 SectionPos sectionposition = player.getLastSectionPos(); SectionPos sectionposition1 = SectionPos.of((EntityAccess) player); -@@ -1030,7 +1100,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1027,7 +1097,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker this.entityMap.put(entity.getId(), playerchunkmap_entitytracker); @@ -152,7 +152,7 @@ index 370747aefba28dbfce59f45d303d47db9bfceb42..90393101fddd54f60b0b173beffd8650 if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -1074,9 +1144,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1071,9 +1141,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = null; // Paper - We're no longer tracked } @@ -192,7 +192,7 @@ index 370747aefba28dbfce59f45d303d47db9bfceb42..90393101fddd54f60b0b173beffd8650 List list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); -@@ -1226,6 +1324,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1223,6 +1321,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.lastSectionPos = SectionPos.of((EntityAccess) entity); } @@ -236,7 +236,7 @@ index 370747aefba28dbfce59f45d303d47db9bfceb42..90393101fddd54f60b0b173beffd8650 return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c20a9fb40a2c3f555096299de662b5488c00ee26..199624dee66e0d47d110ee077646111cbdf2ccbd 100644 +index 3eaa3c34eca6e4ed26a77e3fd5da772a39eddff8..df02a2b0dc58650644db07ad8f91aabb64be3938 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -56,6 +56,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; diff --git a/scripts/moveback.py b/scripts/moveback.py index ee8d04838a48..ca2a47481da0 100644 --- a/scripts/moveback.py +++ b/scripts/moveback.py @@ -3,7 +3,7 @@ # Use inside of server patch dir # py ../../scripts/moveback.py '' -patch_target = 1009 # TODO: Update this +patch_target = 998 # TODO: Update this def increment_number(filename): From c57d1aa24560ec71331e685e9fd27aa3d9274f69 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Tue, 23 Jan 2024 18:01:39 +0100 Subject: [PATCH 42/45] Move diffs around to compile without later ones applied --- patches/server/0009-MC-Utils.patch | 176 ++++++++++++++---- patches/server/0014-Timings-v2.patch | 32 ++-- patches/server/0016-Starlight.patch | 8 +- .../server/0018-Rewrite-chunk-system.patch | 72 +++---- ...event-tile-entity-and-entity-crashes.patch | 8 +- .../0037-Always-tick-falling-blocks.patch | 4 +- .../0049-Disable-spigot-tick-limiters.patch | 4 +- .../0060-Add-exception-reporting-event.patch | 10 +- .../server/0070-Add-World-Util-Methods.patch | 4 +- ...ckPhysicsEvent-if-a-plugin-has-a-lis.patch | 4 +- .../0099-Fix-global-sound-handling.patch | 4 +- ...ize-Level.hasChunkAt-BlockPosition-Z.patch | 4 +- ...117075-Block-entity-unload-lag-spike.patch | 6 +- ...e-implementations-for-captured-block.patch | 8 +- ...5-PlayerNaturallySpawnCreaturesEvent.patch | 6 +- ...t-armor-stands-from-doing-entity-loo.patch | 4 +- ...ies-option-to-debug-dupe-uuid-issues.patch | 6 +- patches/server/0282-BlockDestroyEvent.patch | 4 +- ...=> 0288-Entity-getEntitySpawnReason.patch} | 0 ...tch => 0289-Fire-event-on-GS4-query.patch} | 0 ... => 0290-Add-PlayerPostRespawnEvent.patch} | 0 ...for-pickupDelay-breaks-picking-up-i.patch} | 0 ...ts.patch => 0292-Server-Tick-Events.patch} | 0 ...293-PlayerDeathEvent-getItemsToKeep.patch} | 0 ...ptimize-Captured-BlockEntity-Lookup.patch} | 4 +- ...API.patch => 0295-Add-Heightmap-API.patch} | 0 ...> 0296-Mob-Spawner-API-Enhancements.patch} | 0 ...-to-changed-postToMainThread-method.patch} | 0 ...-item-frames-are-modified-MC-123450.patch} | 0 ...0299-Implement-CraftBlockSoundGroup.patch} | 0 ...e-Keep-Spawn-Loaded-range-per-world.patch} | 0 ...01-Expose-the-internal-current-tick.patch} | 0 ...te-location-if-we-failed-to-read-it.patch} | 0 ...l-Spawned-mobs-towards-natural-spaw.patch} | 0 ...urable-projectile-relative-velocity.patch} | 0 ...h => 0305-offset-item-frame-ticking.patch} | 0 ...event-consuming-the-wrong-itemstack.patch} | 0 ...7-Dont-send-unnecessary-sign-update.patch} | 0 ...-option-to-disable-pillager-patrols.patch} | 0 ...k-loads-when-villagers-try-to-find-.patch} | 0 ...656-Fix-Follow-Range-Initial-Target.patch} | 0 ... 0311-Duplicate-UUID-Resolve-Option.patch} | 6 +- ...ayerDeathEvent-shouldDropExperience.patch} | 0 ...ading-chunks-checking-hive-position.patch} | 0 ...hunks-from-Hoppers-and-other-things.patch} | 0 ...timise-EntityGetter-getPlayerByUUID.patch} | 0 ...316-Fix-items-not-falling-correctly.patch} | 4 +- ...ize-call-to-getFluid-for-explosions.patch} | 0 ...-in-stack-not-having-effects-when-d.patch} | 0 ...ializing-mismatching-chunk-coordina.patch} | 0 ... 0320-Alternative-item-despawn-rate.patch} | 0 ...=> 0321-Tracking-Range-Improvements.patch} | 4 +- ...-items-vanishing-through-end-portal.patch} | 0 ...et-gravity-in-void.-Fixes-MC-167279.patch} | 0 ...24-Improve-Block-breakNaturally-API.patch} | 0 ...-getChunkAt-calls-for-loaded-chunks.patch} | 0 ...0326-Add-debug-for-sync-chunk-loads.patch} | 0 ... => 0327-Improve-java-version-check.patch} | 0 ...tch => 0328-Add-ThrownEggHatchEvent.patch} | 0 ...p-API.patch => 0329-Entity-Jump-API.patch} | 2 + ...-to-nerf-pigmen-from-nether-portals.patch} | 0 ... => 0331-Make-the-GUI-graph-fancier.patch} | 0 ...32-add-hand-to-BlockMultiPlaceEvent.patch} | 0 ...ipwire-hook-placement-before-update.patch} | 0 ...o-allow-iron-golems-to-spawn-in-air.patch} | 0 ...chance-of-villager-zombie-infection.patch} | 0 ...tch => 0336-Optimise-Chunk-getFluid.patch} | 8 +- ...rbose-world-setting-to-false-by-def.patch} | 0 ...Add-tick-times-API-and-mspt-command.patch} | 0 ...39-Expose-MinecraftServer-isRunning.patch} | 0 ...dd-Raw-Byte-ItemStack-Serialization.patch} | 0 ...pawn-settings-and-per-player-option.patch} | 0 ...nections-shouldn-t-hold-up-shutdown.patch} | 0 ...ow-bees-to-load-chunks-for-beehives.patch} | 0 ...PlayerChunkMap-adds-crashing-server.patch} | 4 +- ...tch => 0345-Don-t-tick-dead-players.patch} | 0 ...-Player-s-shouldn-t-be-able-to-move.patch} | 0 ...ove-existing-players-to-world-spawn.patch} | 0 ....patch => 0348-Optimize-Pathfinding.patch} | 0 ...9-Reduce-Either-Optional-allocation.patch} | 0 ...uce-memory-footprint-of-CompoundTag.patch} | 0 ...ent-opening-inventories-when-frozen.patch} | 0 ...entity-collision-code-if-not-needed.patch} | 0 ...Implement-Player-Client-Options-API.patch} | 0 ...ayer-is-attempted-to-be-removed-fro.patch} | 0 ...Event-when-Player-is-actually-ready.patch} | 4 +- ...awn-point-if-spawn-in-unloaded-worl.patch} | 0 ...layerAttackEntityCooldownResetEvent.patch} | 0 ...-fire-BlockFade-on-worldgen-threads.patch} | 0 ...tom-creative-and-insomniac-controls.patch} | 0 ...tem-duplication-and-teleport-issues.patch} | 0 ...patch => 0361-Villager-Restocks-API.patch} | 0 ...ickItem-Packet-and-kick-for-invalid.patch} | 0 ...n.patch => 0363-Expose-game-version.patch} | 0 ...per-thread-native-byte-buffer-cache.patch} | 0 ....patch => 0365-misc-debugging-dumps.patch} | 0 ...6-Prevent-teleporting-dead-entities.patch} | 0 ...traces-in-log-messages-crash-report.patch} | 4 +- ...atch => 0368-Implement-Mob-Goal-API.patch} | 24 +-- ...=> 0369-Add-villager-reputation-API.patch} | 0 ...maximum-exp-value-when-merging-orbs.patch} | 0 ...tch => 0371-ExperienceOrbMergeEvent.patch} | 0 ...-Fix-PotionEffect-ignores-icon-flag.patch} | 0 ...API.patch => 0373-Potential-bed-API.patch} | 0 ...ait-for-Async-Tasks-during-shutdown.patch} | 0 ...er-respects-game-and-entity-rules-f.patch} | 0 ...> 0376-Ensure-safe-gateway-teleport.patch} | 0 ...-for-console-having-all-permissions.patch} | 0 ...x-villager-trading-demand-MC-163962.patch} | 0 ... => 0379-Maps-shouldn-t-load-chunks.patch} | 0 ...okup-for-Treasure-Maps-Fixes-lag-fr.patch} | 0 ...r-runTaskTimerAsynchronously-Plugin.patch} | 0 ...ton-physics-inconsistency-MC-188840.patch} | 0 ...uping.patch => 0383-Fix-sand-duping.patch} | 0 ...sing-chunks-due-to-integer-overflow.patch} | 0 ...-position-desync-causing-tp-exploit.patch} | 0 ...older-method-without-block-snapshot.patch} | 0 ...API.patch => 0387-Improve-Arrow-API.patch} | 0 ...0388-Add-PlayerRecipeBookClickEvent.patch} | 0 ...-Hide-sync-chunk-writes-behind-flag.patch} | 0 ...0-Add-permission-for-command-blocks.patch} | 0 ...position-and-AABB-are-never-invalid.patch} | 0 ...d-Difficulty-Remembering-Difficulty.patch} | 0 ...atch => 0393-Paper-dumpitem-command.patch} | 0 ...Legacy-Component-serialization-size.patch} | 0 ...Plugin-Tickets-to-API-Chunk-Methods.patch} | 0 ...incremental-chunk-and-player-saving.patch} | 0 ...397-Support-old-UUID-format-for-NBT.patch} | 0 ...vert-legacy-attributes-in-Item-Meta.patch} | 0 ...0399-Support-components-in-ItemMeta.patch} | 0 ...e-fix-EntityTargetLivingEntityEvent.patch} | 0 ...patch => 0401-Add-entity-liquid-API.patch} | 0 ...date-itemstack-legacy-name-and-lore.patch} | 0 ...atch => 0403-Add-PrepareResultEvent.patch} | 0 ...-for-portal-on-world-gen-entity-add.patch} | 0 ...x-arrows-never-despawning-MC-125757.patch} | 0 ...Vanilla-Command-permission-checking.patch} | 0 ...-5989.patch => 0407-Fix-SPIGOT-5989.patch} | 0 ...-Bukkit-world-container-is-not-used.patch} | 0 ...5885-Unable-to-disable-advancements.patch} | 0 ...taPlayer-leak-due-from-quitting-ear.patch} | 0 ...e-NetworkManager-Exception-Handling.patch} | 0 ...ix-some-rails-connecting-improperly.patch} | 0 ...stake-in-CB-NBT-int-deserialization.patch} | 0 ...support.patch => 0414-Brand-support.patch} | 0 ...PickupItemAnimation-to-LivingEntity.patch} | 0 ...h => 0416-Don-t-require-FACING-data.patch} | 0 ...eEvent-not-firing-for-all-use-cases.patch} | 0 ...PI.patch => 0418-Add-moon-phase-API.patch} | 0 ...rver-load-chunks-from-newer-version.patch} | 0 ...headless-pistons-from-being-created.patch} | 0 ...ent.patch => 0421-Add-BellRingEvent.patch} | 0 ...dd-zombie-targets-turtle-egg-config.patch} | 0 ...patch => 0423-Buffer-joins-to-world.patch} | 0 ...s-not-working-in-some-kick-messages.patch} | 0 ...reateEvent-needs-to-know-its-entity.patch} | 0 ...I.patch => 0426-Add-more-Evoker-API.patch} | 0 ...Add-methods-to-get-translation-keys.patch} | 0 ...te-HoverEvent-from-ItemStack-Entity.patch} | 0 ...ch => 0429-Cache-block-data-strings.patch} | 0 ...rtation-and-cancel-velocity-if-tele.patch} | 0 ...l-open-container-api-to-HumanEntity.patch} | 0 ...aFixerUpper-Rewrite-Rules-on-demand.patch} | 0 ...-capture-to-capture-all-items-added.patch} | 0 ...-Counter-to-allow-plugins-to-use-va.patch} | 0 ...track-plugin-scoreboards-by-default.patch} | 0 ...king.patch => 0436-Entity-isTicking.patch} | 0 ...non-whitelisted-player-when-white-l.patch} | 0 ...-Concurrency-issue-in-ShufflingList.patch} | 0 ...eset-Ender-Crystals-on-Dragon-Spawn.patch} | 0 ...-large-move-vectors-crashing-server.patch} | 0 ...atch => 0441-Optimise-getType-calls.patch} | 0 ....patch => 0442-Villager-resetOffers.patch} | 0 ...ce-order-when-capturing-blockstates.patch} | 2 +- ...lockpos-allocation-from-pathfinding.patch} | 0 ...em-locations-dropped-from-campfires.patch} | 0 ...6-Fix-bell-block-entity-memory-leak.patch} | 0 ...ing-up-when-item-stack-is-empty-in-.patch} | 0 ...Add-getOfflinePlayerIfCached-String.patch} | 0 ...ch => 0449-Add-ignore-discounts-API.patch} | 0 ...Toggle-for-removing-existing-dragon.patch} | 0 ...x-client-lag-on-advancement-loading.patch} | 0 ...> 0452-Item-no-age-no-player-pickup.patch} | 0 ...453-Beacon-API-custom-effect-ranges.patch} | 0 ...tch => 0454-Add-API-for-quit-reason.patch} | 0 ...ng-Trader-spawn-rate-config-options.patch} | 0 ...ch => 0456-Expose-world-spawn-angle.patch} | 0 ...patch => 0457-Add-Destroy-Speed-API.patch} | 0 ...-spawnParticle-x-y-z-precision-loss.patch} | 0 ...59-Add-LivingEntity-clearActiveItem.patch} | 0 ...=> 0460-Add-PlayerItemCooldownEvent.patch} | 0 ...rove-performance-of-the-end-generat.patch} | 0 ...PI.patch => 0462-More-lightning-API.patch} | 0 ...should-not-bypass-cramming-gamerule.patch} | 0 ...-missing-default-perms-for-commands.patch} | 0 ...h => 0465-Add-PlayerShearBlockEvent.patch} | 0 ....patch => 0466-Limit-recipe-packets.patch} | 0 ...-CraftSound-backwards-compatibility.patch} | 0 ...468-Player-Chunk-Load-Unload-Events.patch} | 0 ...9-Optimize-Dynamic-get-Missing-Keys.patch} | 0 ...-Expose-LivingEntity-hurt-direction.patch} | 0 ...OBSTRUCTED-reason-to-BedEnterResult.patch} | 0 ...valid-ingredient-lists-in-VillagerA.patch} | 0 ...nt.patch => 0473-Add-TargetHitEvent.patch} | 0 ... 0474-MC-4-Fix-item-position-desync.patch} | 0 ... 0475-Additional-Block-Material-API.patch} | 0 ...tch => 0476-Fix-harming-potion-dupe.patch} | 0 ...t-Material-from-Boats-and-Minecarts.patch} | 0 ....patch => 0478-Cache-burn-durations.patch} | 0 ...ob-spawner-spawn-egg-transformation.patch} | 0 ...ix-Not-a-string-Map-Conversion-spam.patch} | 0 ...-Add-PlayerFlowerPotManipulateEvent.patch} | 0 ...ct-event-not-being-called-sometimes.patch} | 0 ...h => 0483-Zombie-API-breaking-doors.patch} | 0 ...484-Fix-nerfed-slime-when-splitting.patch} | 0 ...=> 0485-Add-EntityLoadCrossbowEvent.patch} | 0 ...> 0486-Add-WorldGameRuleChangeEvent.patch} | 0 ...87-Add-ServerResourcesReloadedEvent.patch} | 0 ...d-settings-for-mobs-picking-up-loot.patch} | 0 ...> 0489-Add-BlockFailedDispenseEvent.patch} | 0 ...90-Add-PlayerLecternPageChangeEvent.patch} | 0 ...91-Add-PlayerLoomPatternSelectEvent.patch} | 0 ...nfigurable-door-breaking-difficulty.patch} | 0 ...ty-commands-shall-not-be-dispatched.patch} | 0 ...OIs.patch => 0494-Remove-stale-POIs.patch} | 0 ...h => 0495-Fix-villager-boat-exploit.patch} | 0 ...I.patch => 0496-Add-sendOpLevel-API.patch} | 0 ...0497-TODO-Registry-Modification-API.patch} | 0 ...h => 0498-Add-StructuresLocateEvent.patch} | 0 ...-for-requiring-a-player-participant.patch} | 0 ...leHitEvent-call-when-fireballs-dead.patch} | 0 ...nent-with-empty-text-instead-of-thr.patch} | 0 ...502-Make-schedule-command-per-world.patch} | 0 ...503-Configurable-max-leash-distance.patch} | 0 ...h => 0504-Add-BlockPreDispenseEvent.patch} | 0 ...5-Add-PlayerChangeBeaconEffectEvent.patch} | 0 ...e-for-always-placing-the-dragon-egg.patch} | 0 ...-PlayerStonecutterRecipeSelectEvent.patch} | 0 ...h => 0508-Expand-EntityUnleashEvent.patch} | 0 ...shield-blocking-on-dimension-change.patch} | 0 ...atch => 0510-Add-DragonEggFormEvent.patch} | 0 ...t.patch => 0511-Add-EntityMoveEvent.patch} | 0 ...isable-pathfinding-updates-on-block.patch} | 0 ... 0513-Inline-shift-direction-fields.patch} | 0 ...-adding-items-to-BlockDropItemEvent.patch} | 0 ...inThreadExecutor-to-BukkitScheduler.patch} | 0 ...entity-allow-attribute-registration.patch} | 0 ...ix-dead-slime-setSize-invincibility.patch} | 0 ...pes-should-return-an-immutable-list.patch} | 0 ...atch => 0519-Expose-Tracked-Players.patch} | 0 ...GUI.patch => 0520-Improve-ServerGUI.patch} | 0 ...521-fix-converting-txt-to-json-file.patch} | 0 ...atch => 0522-Add-worldborder-events.patch} | 0 ...h => 0523-Add-PlayerNameEntityEvent.patch} | 0 ...grindstones-from-overstacking-items.patch} | 0 ...h => 0525-Add-recipe-to-cook-events.patch} | 0 ...patch => 0526-Add-Block-isValidTool.patch} | 0 ...using-signs-inside-spawn-protection.patch} | 0 ....patch => 0528-Expand-world-key-API.patch} | 0 ...ternative-constructor-for-Rotations.patch} | 0 ...y-API.patch => 0530-Item-Rarity-API.patch} | 0 ...d-item-when-player-has-disconnected.patch} | 0 ...elist-use-configurable-kick-message.patch} | 0 ...gnore-result-of-PlayerEditBookEvent.patch} | 0 ...tch => 0534-Expose-protocol-version.patch} | 0 ...ab-completions-for-brigadier-comman.patch} | 0 ...temConsumeEvent-cancelling-properly.patch} | 0 ...patch => 0537-Add-bypass-host-check.patch} | 0 ...0538-Set-area-affect-cloud-rotation.patch} | 0 ...add-isDeeplySleeping-to-HumanEntity.patch} | 0 ...add-consumeFuel-to-FurnaceBurnEvent.patch} | 0 ...-set-drop-chance-to-EntityEquipment.patch} | 0 ...ix-PigZombieAngerEvent-cancellation.patch} | 0 ...ix-PlayerItemHeldEvent-firing-twice.patch} | 0 ...ch => 0544-Add-PlayerDeepSleepEvent.patch} | 0 ...ld-API.patch => 0545-More-World-API.patch} | 0 ...=> 0546-Add-PlayerBedFailEnterEvent.patch} | 0 ...-to-convert-between-Component-and-B.patch} | 0 ...awnEvent-fix-passed-parameter-issue.patch} | 0 ...acon-activation-deactivation-events.patch} | 0 ...dd-Channel-initialization-listeners.patch} | 0 ...mands-if-tab-completion-is-disabled.patch} | 0 ...> 0552-Add-more-WanderingTrader-API.patch} | 0 ...dd-EntityBlockStorage-clearEntities.patch} | 0 ...54-Entity-load-save-limit-per-chunk.patch} | 0 ...ssage-to-PlayerAdvancementDoneEvent.patch} | 0 ...close.patch => 0556-Inventory-close.patch} | 0 ...-in-sunlight-API-for-Phantoms-and-S.patch} | 0 ...atch => 0558-Add-basic-Datapack-API.patch} | 0 ...ment-variable-to-disable-server-gui.patch} | 0 ...60-Expand-PlayerGameModeChangeEvent.patch} | 0 ... => 0561-ItemStack-repair-check-API.patch} | 0 ....patch => 0562-More-Enchantment-API.patch} | 0 ...ve-range-check-for-block-placing-up.patch} | 0 ...-and-optimise-world-force-upgrading.patch} | 2 +- ...PI.patch => 0565-Add-Mob-lookAt-API.patch} | 0 ...0566-Add-Unix-domain-socket-support.patch} | 0 ... => 0567-Add-EntityInsideBlockEvent.patch} | 0 ...68-Attributes-API-for-item-defaults.patch} | 0 ...ause-to-Weather-ThunderChangeEvents.patch} | 0 ...patch => 0570-More-Lidded-Block-API.patch} | 0 ...71-Limit-item-frame-cursors-on-maps.patch} | 0 ... => 0572-Add-PlayerKickEvent-causes.patch} | 0 ...0573-Add-PufferFishStateChangeEvent.patch} | 0 ...erBucketEmptyEvent-result-itemstack.patch} | 0 ...tedContainer-instead-of-ThreadingDe.patch} | 0 ...-to-fix-items-merging-through-walls.patch} | 0 ...h => 0577-Add-BellRevealRaiderEvent.patch} | 0 ... 0578-Fix-invulnerable-end-crystals.patch} | 0 ...79-Add-ElderGuardianAppearanceEvent.patch} | 0 ...0580-Fix-dangerous-end-portal-logic.patch} | 0 ...-Biome-Mob-Lookups-for-Mob-Spawning.patch} | 0 ...-Make-item-validations-configurable.patch} | 0 ...patch => 0583-Line-Of-Sight-Changes.patch} | 0 ... => 0584-add-per-world-spawn-limits.patch} | 0 ...h => 0585-Fix-potions-splash-events.patch} | 0 ... => 0586-Add-more-LimitedRegion-API.patch} | 0 ...layerDropItemEvent-using-wrong-item.patch} | 0 ...PI.patch => 0588-Missing-Entity-API.patch} | 2 +- ...ect-for-book-edit-is-called-on-main.patch} | 0 ...of-Block-applyBoneMeal-always-being.patch} | 0 ...tChunkIfLoadedImmediately-in-places.patch} | 2 +- ...rom-signs-not-firing-command-events.patch} | 0 ...tch => 0593-Add-PlayerArmSwingEvent.patch} | 0 ...-event-leave-message-not-being-sent.patch} | 0 ...-for-mobs-immune-to-default-effects.patch} | 0 ...-t-apply-cramming-damage-to-players.patch} | 0 ...d-timings-for-sensors-and-behaviors.patch} | 0 ... 0598-Add-missing-forceDrop-toggles.patch} | 0 ...inger-API.patch => 0599-Stinger-API.patch} | 0 ...cy-issue-with-empty-map-items-in-CB.patch} | 0 ... => 0601-Add-System.out-err-catcher.patch} | 0 ...-to-contain-the-source-jars-in-stac.patch} | 0 ...AFK-kick-while-watching-end-credits.patch} | 0 ...iting-of-comments-to-server.propert.patch} | 0 ...tch => 0605-Add-PlayerSetSpawnEvent.patch} | 0 ...rs-respect-inventory-max-stack-size.patch} | 0 ...ize-entity-tracker-passenger-checks.patch} | 0 ...-option-for-Piglins-guarding-chests.patch} | 0 ...h => 0609-Add-EntityDamageItemEvent.patch} | 0 ...timize-indirect-passenger-iteration.patch} | 0 ...em-frame-map-cursor-update-interval.patch} | 0 ...612-Clear-bucket-NBT-after-dispense.patch} | 0 ...arget-without-changing-other-things.patch} | 0 ...ch => 0614-Add-BlockBreakBlockEvent.patch} | 0 ...revent-NBT-copy-in-smithing-recipes.patch} | 0 ...patch => 0616-More-CommandBlock-API.patch} | 0 ...-missing-team-sidebar-display-slots.patch} | 0 ...0618-Add-back-EntityPortalExitEvent.patch} | 0 ...-find-targets-for-lightning-strikes.patch} | 0 ... 0620-Get-entity-default-attributes.patch} | 0 ...d-API.patch => 0621-Left-handed-API.patch} | 0 ...ch => 0622-Add-more-advancement-API.patch} | 0 ...623-Add-ItemFactory-getSpawnEgg-API.patch} | 0 ...tch => 0624-Add-critical-damage-API.patch} | 0 ...0625-Fix-issues-with-mob-conversion.patch} | 0 ...ollidable-methods-to-various-places.patch} | 0 ...-ram-API.patch => 0627-Goat-ram-API.patch} | 0 ...dd-API-for-resetting-a-single-score.patch} | 0 ...9-Add-Raw-Byte-Entity-Serialization.patch} | 0 ...30-Vanilla-command-permission-fixes.patch} | 0 ...logic-for-inventories-on-chunk-unlo.patch} | 0 ...32-Fix-GameProfileCache-concurrency.patch} | 0 ...633-Improve-and-expand-AsyncCatcher.patch} | 0 ...per-mobcaps-and-paper-playermobcaps.patch} | 0 ...tize-ResourceLocation-error-logging.patch} | 0 ...lly-inline-methods-in-BlockPosition.patch} | 0 ...ler-threads-according-to-the-plugin.patch} | 0 ...-getChunkAt-has-inlined-logic-for-l.patch} | 4 +- ...our-chunk-data-off-disk-when-conver.patch} | 0 ...d-state-when-raytracing-skip-air-bl.patch} | 0 ...atch => 0641-Time-scoreboard-search.patch} | 0 ...packets-for-hard-colliding-entities.patch} | 0 ...rimise-map-impl-for-tracked-players.patch} | 4 +- ...imise-BlockSoil-nearby-water-lookup.patch} | 0 ... 0645-Distance-manager-tick-timings.patch} | 0 ...ntory-not-closing-on-entity-removal.patch} | 0 ...rement-before-suggesting-root-nodes.patch} | 0 ...ServerboundCommandSuggestionPacket-.patch} | 0 ...h => 0649-Add-packet-limiter-config.patch} | 0 ...nColor-on-tropical-fish-bucket-meta.patch} | 0 ...=> 0651-Ensure-valid-vehicle-status.patch} | 0 ...ftlocked-end-exit-portal-generation.patch} | 0 ...r-causing-a-crash-when-trying-to-ge.patch} | 0 ...-t-log-debug-logging-being-disabled.patch} | 0 ...ous-menus-with-empty-level-accesses.patch} | 0 ...h => 0656-Preserve-overstacked-loot.patch} | 0 ...ate-head-rotation-in-missing-places.patch} | 0 ...unintended-light-block-manipulation.patch} | 0 ...0659-Fix-CraftCriteria-defaults-map.patch} | 0 ...Fix-upstreams-block-state-factories.patch} | 0 ... => 0661-Configurable-feature-seeds.patch} | 0 ... 0662-Add-root-admin-user-detection.patch} | 0 ...ays-allow-item-changing-in-Fireball.patch} | 0 ...t-attempt-to-teleport-dead-entities.patch} | 0 ...ive-velocity-through-repeated-crits.patch} | 0 ...e-code-using-deprecated-for-removal.patch} | 0 ...emoving-recipes-from-RecipeIterator.patch} | 0 ...versized-item-data-in-equipment-and.patch} | 0 ...e-unnecessary-itemmeta-from-clients.patch} | 0 ...=> 0670-Fix-Spigot-growth-modifiers.patch} | 0 ...OpenersCounter-openCount-from-going.patch} | 0 ...0672-Add-PlayerItemFrameChangeEvent.patch} | 0 ...tch => 0673-Optimize-HashMapPalette.patch} | 0 ...low-delegation-to-vanilla-chunk-gen.patch} | 0 ...-isSectionEmpty-int-and-optimize-Pa.patch} | 0 ...patch => 0676-Add-more-Campfire-API.patch} | 0 ...data-to-disk-if-it-serializes-witho.patch} | 0 ...ard-CraftEntity-in-teleport-command.patch} | 0 ... => 0679-Improve-scoreboard-entries.patch} | 0 ...ch => 0680-Entity-powdered-snow-API.patch} | 0 ...0681-Add-API-for-item-entity-health.patch} | 0 ...ax-block-light-for-monster-spawning.patch} | 0 ...pistons-and-BlockPistonRetractEvent.patch} | 0 ...plifiers-greater-than-127-correctly.patch} | 0 ...-canSmelt-methods-to-FurnaceInvento.patch} | 0 ...=> 0686-Fix-bees-aging-inside-hives.patch} | 0 ...le-API.patch => 0687-Bucketable-API.patch} | 0 ...es.patch => 0688-Validate-usernames.patch} | 0 ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 0 ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...heck-for-PersistentDataContainer-ha.patch} | 0 ...3-Multiple-Entries-with-Scoreboards.patch} | 0 ...694-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 0 ...0696-Fix-xp-reward-for-baby-zombies.patch} | 0 ...lti-Block-Change-API-Implementation.patch} | 0 ...ent.patch => 0698-Fix-NotePlayEvent.patch} | 0 ....patch => 0699-Freeze-Tick-Lock-API.patch} | 0 ...h => 0700-More-PotionEffectType-API.patch} | 0 ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 0 ...-missing-structure-set-seed-configs.patch} | 0 ...h => 0704-Implement-regenerateChunk.patch} | 0 ...lled-powdered-snow-bucket-placement.patch} | 0 ...ate-calls-to-CraftServer-getSpawnLi.patch} | 0 ...gs.patch => 0707-Add-GameEvent-tags.patch} | 0 ...ks-fairly-for-worlds-while-waiting-.patch} | 0 ...tch => 0709-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 0 ...-worldlist-before-initing-the-world.patch} | 0 ... => 0714-Fix-Entity-Position-Desync.patch} | 0 ...s.patch => 0715-Custom-Potion-Mixes.patch} | 0 ...16-Force-close-world-loading-screen.patch} | 4 +- ...717-Fix-falling-block-spawn-methods.patch} | 0 ...Expose-furnace-minecart-push-values.patch} | 0 ...ojectileHitEvent-for-piercing-arrow.patch} | 0 ...I.patch => 0720-More-Projectile-API.patch} | 0 ...x-swamp-hut-cat-generation-deadlock.patch} | 0 ...le-movement-from-players-while-tele.patch} | 0 ...0723-Implement-getComputedBiome-API.patch} | 0 ...> 0724-Make-some-itemstacks-nonnull.patch} | 0 ...725-Implement-enchantWithLevels-API.patch} | 0 ...h => 0726-Fix-saving-in-unloadWorld.patch} | 0 ...h => 0727-Buffer-OOB-setBlock-calls.patch} | 0 ... 0728-Add-TameableDeathMessageEvent.patch} | 0 ...ock-data-for-EntityChangeBlockEvent.patch} | 0 ...bles-running-when-mob-loot-gamerule.patch} | 0 ...ssenger-world-matches-ridden-entity.patch} | 0 ...s.patch => 0732-cache-resource-keys.patch} | 0 ...low-changing-the-EnderDragon-podium.patch} | 0 ...erriding-a-block-entity-during-worl.patch} | 0 ...eGrowEvent-species-for-RED_MUSHROOM.patch} | 0 ...t-tile-entity-copies-loading-chunks.patch} | 0 ...ead-of-display-name-in-PlayerList-g.patch} | 2 +- ...-ServerLevel-for-gamerule-callbacks.patch} | 0 ...> 0739-Expand-PlayerItemDamageEvent.patch} | 0 ...> 0740-WorldCreator-keepSpawnLoaded.patch} | 0 ...-in-CraftPersistentDataTypeRegistry.patch} | 0 ...destroyed-trigger-in-the-correct-pl.patch} | 0 ...Event-and-CollarColorable-interface.patch} | 0 ...CauldronLevelChange-on-initial-fill.patch} | 0 ...snow-cauldrons-not-turning-to-water.patch} | 0 ...> 0746-Add-PlayerStopUsingItemEvent.patch} | 0 ...rs.patch => 0747-Don-t-tick-markers.patch} | 4 +- ...tch => 0748-Expand-FallingBlock-API.patch} | 0 ...-not-accept-invalid-client-settings.patch} | 0 ...0750-Add-support-for-Proxy-Protocol.patch} | 0 ...x-OfflinePlayer-getBedSpawnLocation.patch} | 0 ...tory-for-smokers-and-blast-furnaces.patch} | 0 ... 0753-Sanitize-sent-BlockEntity-NBT.patch} | 4 +- ...-selector-resolving-in-books-by-def.patch} | 0 ...ntity-loading-causing-async-lookups.patch} | 0 ...-on-world-create-while-being-ticked.patch} | 0 ...57-Dont-resent-entity-on-art-update.patch} | 0 ... => 0758-Add-WardenAngerChangeEvent.patch} | 0 ...strict-advancement-dimension-checks.patch} | 0 ...tant-BlockStateListPopulator-method.patch} | 0 ...I.patch => 0761-Nameable-Banner-API.patch} | 0 ...roadcast-messages-to-command-blocks.patch} | 0 ...pty-items-from-being-added-to-world.patch} | 0 ...hPotion-and-LingeringPotion-spawnin.patch} | 0 ...atch => 0765-Add-Player-getFishHook.patch} | 0 ...chunk-for-dynamic-game-event-listen.patch} | 0 ...s-missing-EntityDropItemEvent-calls.patch} | 0 ...PE.patch => 0768-Fix-Bee-flower-NPE.patch} | 0 ...-not-using-commands.spam-exclusions.patch} | 0 ...API.patch => 0770-More-Teleport-API.patch} | 0 ... => 0771-Add-EntityPortalReadyEvent.patch} | 0 ...level-random-in-entity-constructors.patch} | 0 ...k-entities-after-destroy-prediction.patch} | 0 ...on-plugins-accessing-faraway-chunks.patch} | 4 +- ...tom-Chat-Completion-Suggestions-API.patch} | 0 ...Add-and-fix-missing-BlockFadeEvents.patch} | 0 ...ion-API.patch => 0777-Collision-API.patch} | 8 +- ...nd-message-for-brigadier-syntax-exc.patch} | 0 ...API.patch => 0779-Block-Ticking-API.patch} | 0 ...-Add-Velocity-IP-Forwarding-Support.patch} | 0 ...781-Add-NamespacedKey-biome-methods.patch} | 0 ...x-plugin-loggers-on-server-shutdown.patch} | 0 ...ok-changes-from-crashing-the-server.patch} | 0 ...tityChangeBlockEvent-in-more-places.patch} | 0 ...> 0785-Missing-eating-regain-reason.patch} | 0 ....patch => 0786-Missing-effect-cause.patch} | 0 ...serialization-deserialization-for-P.patch} | 0 ...rameter-to-ProjectileSource-launchP.patch} | 0 ...9-Call-BlockPhysicsEvent-more-often.patch} | 0 ...0790-Configurable-chat-thread-limit.patch} | 0 ...of-WorldCreator-keepSpawnLoaded-ret.patch} | 0 ... 0792-fix-Jigsaw-block-kicking-user.patch} | 0 ...mEvent-for-mud-converting-into-clay.patch} | 0 ... => 0794-Add-getDrops-to-BlockState.patch} | 0 ...=> 0795-Fix-a-bunch-of-vanilla-bugs.patch} | 6 +- ...y-onTrackingStart-during-navigation.patch} | 0 ... 0797-Fix-custom-piglin-loved-items.patch} | 0 ...=> 0798-EntityPickupItemEvent-fixes.patch} | 0 ...interactions-with-items-on-cooldown.patch} | 0 ...-Add-PlayerInventorySlotChangeEvent.patch} | 0 ... 0801-Elder-Guardian-appearance-API.patch} | 0 ...ow-changing-bed-s-occupied-property.patch} | 0 ...ch => 0803-Add-entity-knockback-API.patch} | 0 ....patch => 0804-Detect-headless-JREs.patch} | 0 ...-vehicle-collision-event-not-called.patch} | 0 ...ch => 0806-Add-EntityToggleSitEvent.patch} | 0 ... => 0807-Add-fire-tick-delay-option.patch} | 0 ...patch => 0808-Add-Moving-Piston-API.patch} | 0 ...> 0809-Ignore-impossible-spawn-tick.patch} | 0 ...source-for-fireworks-from-dispenser.patch} | 0 ...t-suggestion-permissions-to-align-w.patch} | 0 ...Event-cancellation-cant-fully-preve.patch} | 0 ...0813-Add-PrePlayerAttackEntityEvent.patch} | 0 ...e-reset-EnderDragon-boss-event-name.patch} | 0 ...-green-map-markers-do-not-disappear.patch} | 0 ... 0816-Add-Player-Warden-Warning-API.patch} | 0 ...a-friendly-methods-to-update-trades.patch} | 0 ...818-Add-paper-dumplisteners-command.patch} | 0 ...lobal-player-list-where-appropriate.patch} | 0 ...sync-entity-add-due-to-fungus-trees.patch} | 2 +- ....patch => 0821-ItemStack-damage-API.patch} | 0 ...tion-API.patch => 0822-Friction-API.patch} | 0 ...trol-player-s-insomnia-and-phantoms.patch} | 0 ...=> 0824-Fix-player-kick-on-shutdown.patch} | 0 ... => 0825-Sync-offhand-slot-in-menus.patch} | 0 ... 0826-Player-Entity-Tracking-Events.patch} | 4 +- ...tch => 0827-Limit-pet-look-distance.patch} | 0 ...nd-additions-to-the-SpawnReason-API.patch} | 0 ...ments.patch => 0829-fix-Instruments.patch} | 0 ...for-some-hot-BlockBehavior-and-Flui.patch} | 0 ...es-in-dispense-events-regarding-sta.patch} | 0 ...tch => 0832-Add-BlockLockCheckEvent.patch} | 0 ... 0833-Add-Sneaking-API-for-Entities.patch} | 2 +- ... => 0834-Improve-logging-and-errors.patch} | 0 ....patch => 0835-Improve-PortalEvents.patch} | 0 ...ion-for-spider-worldborder-climbing.patch} | 4 +- ...sing-SpigotConfig-logCommands-check.patch} | 0 ...Allay-stopDancing-while-not-dancing.patch} | 0 ...ge.patch => 0839-Flying-Fall-Damage.patch} | 0 ...k-state-to-BlockExplodeEvent-and-En.patch} | 0 ...ion-moving-velocity-to-VehicleBlock.patch} | 14 +- ...onfig-for-disabling-entity-tag-tags.patch} | 0 ...e-player-info-update-packet-on-join.patch} | 2 +- ...k-items-during-EntityResurrectEvent.patch} | 0 ...en-API.patch => 0845-Win-Screen-API.patch} | 0 ...ItemStack-setAmount-null-assignment.patch} | 0 ...ix-force-opening-enchantment-tables.patch} | 0 ...tch => 0848-Add-Entity-Body-Yaw-API.patch} | 2 +- ...vent-sleeping-villagers-moving-towa.patch} | 0 ...hen-a-captured-block-state-is-outda.patch} | 4 +- ...=> 0851-Add-EntityFertilizeEggEvent.patch} | 0 ...ty-drop-not-updating-the-client-inv.patch} | 0 ...temEvent-and-EntityCompostItemEvent.patch} | 0 ...ctly-handle-ArmorStand-invisibility.patch} | 0 ...ancement-triggers-for-entity-damage.patch} | 0 ...856-Fix-text-display-error-on-spawn.patch} | 0 ...nventories-returning-null-Locations.patch} | 0 ...API.patch => 0858-Add-Shearable-API.patch} | 0 ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...ives-generating-from-using-bonemeal.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 0 ...ence-violations-like-they-should-be.patch} | 0 ...uplicate-animate-packet-for-records.patch} | 0 ...xpired-keys-from-impacting-new-join.patch} | 0 ...ts-being-fired-from-unloaded-chunks.patch} | 0 ...0866-Use-array-for-gamerule-storage.patch} | 0 ...Fix-a-couple-of-upstream-bed-issues.patch} | 0 ...ix-demo-flag-not-enabling-demo-mode.patch} | 0 ... 0869-Add-Mob-Experience-reward-API.patch} | 0 ...redstone-on-top-of-trap-doors-early.patch} | 0 ...-Fix-DamageCause-for-Falling-Blocks.patch} | 0 ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...73-More-accurate-isInOpenWater-impl.patch} | 0 ...ccess-to-lookups-field-in-RegistryO.patch} | 0 ... => 0875-Expand-PlayerItemMendEvent.patch} | 0 ...sh-ProjectileSource-for-projectiles.patch} | 2 +- ... => 0877-Add-transient-modifier-API.patch} | 0 ...patch => 0878-Fix-block-place-logic.patch} | 4 +- ...nd-playing-for-BlockItem-ItemStacks.patch} | 0 ...l-BlockGrowEvent-for-missing-blocks.patch} | 0 ...nhasbukkit-default-if-alias-block-e.patch} | 0 ...pLike-spam-for-missing-key-selector.patch} | 0 ...-Fix-sniffer-removeExploredLocation.patch} | 0 ...to-remove-all-active-potion-effects.patch} | 0 ...rafting-result-amount-for-fireworks.patch} | 0 ...6-Add-event-for-player-editing-sign.patch} | 0 ...k-item-frames-if-players-can-see-it.patch} | 0 .../0887-Properly-cancel-usable-items.patch | 63 ------- ...ermission-levels-for-command-blocks.patch} | 0 ...Add-option-to-disable-block-updates.patch} | 0 ...890-Call-missing-BlockDispenseEvent.patch} | 0 ...-chunks-for-supporting-block-checks.patch} | 4 +- ...Optimize-player-lookups-for-beacons.patch} | 0 ...893-Add-Sign-getInteractableSideFor.patch} | 0 ...94-Array-backed-synched-entity-data.patch} | 0 ...5-fix-item-meta-for-tadpole-buckets.patch} | 0 ...t-API.patch => 0896-Fix-BanList-API.patch} | 0 ...d-water-fluid-explosion-resistance-.patch} | 0 ...x-possible-NPE-on-painting-creation.patch} | 0 ...imer-for-Wandering-Traders-spawned-.patch} | 0 ...nceOrb-should-call-EntitySpawnEvent.patch} | 0 ...t-throw-both-Spread-and-Grow-Events.patch} | 0 ....patch => 0902-Add-whitelist-events.patch} | 0 ... 0903-Implement-PlayerFailMoveEvent.patch} | 4 +- ...olia-scheduler-and-owned-region-API.patch} | 10 +- ...se-allay-memory-on-non-item-targets.patch} | 0 ...API-for-updating-recipes-on-clients.patch} | 2 +- ...tion-when-spawning-display-entities.patch} | 0 ...908-Only-capture-actual-tree-growth.patch} | 4 +- ...rce-for-mushroom-block-spread-event.patch} | 0 ...Data-on-more-entities-when-spawning.patch} | 0 ...-Use-correct-seed-on-api-world-load.patch} | 0 ...ta-neighbour-ticks-outside-of-range.patch} | 0 ...> 0913-Cache-map-ids-on-item-frames.patch} | 0 ...-custom-statistic-criteria-creation.patch} | 0 ...atch => 0915-Bandaid-fix-for-Effect.patch} | 0 ...tch => 0916-SculkCatalyst-bloom-API.patch} | 0 ...API-for-an-entity-s-scoreboard-name.patch} | 2 +- ...lace-methods-with-old-StructureType.patch} | 0 ...e-namespaced-commands-if-send-names.patch} | 2 +- ...-handle-BlockBreakEvent-isDropItems.patch} | 2 +- ...entity-death-event-for-ender-dragon.patch} | 0 ...tity-tracking-range-by-Y-coordinate.patch} | 4 +- ... => 0923-Add-Listing-API-for-Player.patch} | 2 +- ...figurable-Region-Compression-Format.patch} | 0 ...5-Add-BlockFace-to-BlockDamageEvent.patch} | 2 +- ...h => 0926-Fix-NPE-on-Boat-getStatus.patch} | 0 ...e-API.patch => 0927-Expand-Pose-API.patch} | 4 +- ...patch => 0928-More-DragonBattle-API.patch} | 0 ... 0929-Deep-clone-unhandled-nbt-tags.patch} | 0 ...tch => 0930-Add-PlayerPickItemEvent.patch} | 2 +- ...=> 0931-Allow-trident-custom-damage.patch} | 0 ...2-Expose-hand-in-BlockCanBuildEvent.patch} | 0 ...-nearest-structure-border-iteration.patch} | 0 ...Implement-OfflinePlayer-isConnected.patch} | 0 ....patch => 0935-Fix-inventory-desync.patch} | 0 ...titleOverride-to-InventoryOpenEvent.patch} | 0 ...37-Configure-sniffer-egg-hatch-time.patch} | 0 ...-proximity-check-before-entity-look.patch} | 0 ...kip-POI-finding-if-stuck-in-vehicle.patch} | 0 ...t-sanity-checks-in-container-clicks.patch} | 4 +- ...ll-BlockRedstoneEvents-for-lecterns.patch} | 0 ...roper-checking-of-empty-item-stacks.patch} | 0 ...ix-silent-equipment-change-for-mobs.patch} | 0 ...h => 0944-Fix-spigot-s-Forced-Stats.patch} | 0 ...ing-InventoryHolders-to-inventories.patch} | 0 ...entities-in-chunks-that-are-positio.patch} | 0 ...sing-logs-for-log-ips-config-option.patch} | 0 ...Remove-Spigot-Bug-Fix-for-MC-109346.patch} | 0 ...atch => 0949-Fix-SuspiciousStewMeta.patch} | 0 ...n-on-UpgradeData.BlockFixers-class-.patch} | 0 ...-AdvancementProgress-getDateAwarded.patch} | 0 ...idebar-objectives-not-being-cleared.patch} | 0 ...x-missing-map-initialize-event-call.patch} | 0 ...a-when-attaching-firework-to-entity.patch} | 0 ...ble-for-initializing-CraftLootTable.patch} | 0 ...method-of-Fireballs-change-the-trav.patch} | 0 ...57-Fix-UnsafeValues-loadAdvancement.patch} | 0 ...> 0958-Add-player-idle-duration-API.patch} | 0 ...-if-we-can-see-non-visible-entities.patch} | 4 +- ...NPE-in-SculkBloomEvent-world-access.patch} | 0 ...tack-for-Player-sendEquipmentChange.patch} | 0 ...Ints.patch => 0962-Optimize-VarInts.patch} | 0 ...e-collision-shape-of-a-block-before.patch} | 0 ...redicate-for-blocks-when-raytracing.patch} | 0 ...em-packets-with-collector-as-source.patch} | 2 +- ... => 0966-Expand-LingeringPotion-API.patch} | 0 ....patch => 0967-Add-MaterialTagsTest.patch} | 0 ...ngEffect-powers-lightning-rods-and-.patch} | 0 ...h-event-for-all-player-interactions.patch} | 0 ...everal-issues-with-EntityBreedEvent.patch} | 0 ...971-Add-UUID-attribute-modifier-API.patch} | 0 ...-event-call-for-entity-teleport-API.patch} | 2 +- ...y-create-LootContext-for-criterions.patch} | 0 ...-t-fire-sync-events-during-worldgen.patch} | 6 +- ...-getAttributeModifier-duplication-c.patch} | 0 ...store-vanilla-entity-drops-behavior.patch} | 8 +- ...tch => 0977-Add-Structure-check-API.patch} | 0 ...-Dont-resend-blocks-on-interactions.patch} | 2 +- ...evious-behavior-for-setResourcePack.patch} | 0 ...-read-and-store-sus-effect-duration.patch} | 0 ...e-correct-max-stack-size-in-crafter.patch} | 0 ...tch => 0982-add-more-scoreboard-API.patch} | 0 ...stry.patch => 0983-Improve-Registry.patch} | 0 ...on-null-loc-for-EntityTeleportEvent.patch} | 4 +- ...h => 0985-Add-experience-points-API.patch} | 0 ...h => 0986-Add-missing-InventoryType.patch} | 0 ...h => 0987-Add-drops-to-shear-events.patch} | 0 ...> 0988-Add-PlayerShieldDisableEvent.patch} | 0 ... => 0989-Add-HiddenPotionEffect-API.patch} | 0 ...f-bucket-dispenses-will-succeed-for.patch} | 0 ...x-ItemMeta-removing-CustomModelData.patch} | 0 ...ate-ResourceLocation-in-NBT-reading.patch} | 0 ...-experience-dropping-on-block-break.patch} | 4 +- ...> 0994-Fixup-NamespacedKey-handling.patch} | 0 ...location-of-Vec3D-by-entity-tracker.patch} | 4 +- ...ing-for-EntityLiving-hasLineOfSight.patch} | 22 +-- ...dBounds-and-getBlockState-for-inlin.patch} | 69 +------ ...tem-frames-performance-and-bug-fixe.patch} | 0 ...Manager-and-add-advanced-packet-sup.patch} | 0 ...00-Allow-Saving-of-Oversized-Chunks.patch} | 0 ...01-Fix-World-isChunkGenerated-calls.patch} | 6 +- ...002-Flat-bedrock-generator-settings.patch} | 0 ...=> 1003-Entity-Activation-Range-2.0.patch} | 38 ++-- ...1004-Optional-per-player-mob-spawns.patch} | 16 +- ...7-Anti-Xray.patch => 1005-Anti-Xray.patch} | 37 ++-- ...g-PreCreatureSpawnEvent-with-per-pl.patch} | 11 +- ...ch => 1007-Write-SavedData-IO-async.patch} | 0 ...timize-Collision-to-not-load-chunks.patch} | 4 +- ...alSelector-Goal.Flag-Set-operations.patch} | 14 +- ...h => 1010-Improved-Watchdog-Support.patch} | 6 +- ...> 1011-Optimize-Voxel-Shape-Merging.patch} | 0 ...nd-End-Portal-Frames-from-being-des.patch} | 4 +- ...ance-map-to-optimise-entity-tracker.patch} | 12 +- ...Optimize-Bit-Operations-by-inlining.patch} | 0 ...> 1015-Remove-streams-from-hot-code.patch} | 0 ...-Eigencraft-redstone-implementation.patch} | 0 ...er-Remove-Streams-Optimized-collect.patch} | 0 ...rTradeEvent-and-PlayerPurchaseEvent.patch} | 0 ...-Improve-boat-collision-performance.patch} | 2 +- ...=> 1020-Optimise-general-POI-access.patch} | 2 +- ...ementation-for-blockstate-state-loo.patch} | 0 ...> 1022-Execute-chunk-tasks-mid-tick.patch} | 2 +- ... 1023-Optimise-random-block-ticking.patch} | 6 +- ...ulate-regionfile-header-if-it-is-co.patch} | 4 +- ...city-compression-and-cipher-natives.patch} | 0 ...-more-information-in-watchdog-dumps.patch} | 11 +- ...tch => 1027-Collision-optimisations.patch} | 27 ++- ...n-checking-in-player-move-packet-ha.patch} | 2 +- ...29-Fix-tripwire-state-inconsistency.patch} | 0 ...-type-tags-suggestions-in-selectors.patch} | 0 ...ate-Current-redstone-implementation.patch} | 2 +- ...32-optimize-dirt-and-snow-spreading.patch} | 0 ...ch => 1033-Properly-resend-entities.patch} | 63 ++++++- ...pers.patch => 1034-Optimize-Hoppers.patch} | 0 ...-Improve-performance-of-mass-crafts.patch} | 0 ...> 1036-Actually-optimise-explosions.patch} | 0 ... 1037-Optimise-chunk-tick-iteration.patch} | 4 +- ...atch => 1038-Lag-compensation-ticks.patch} | 2 +- ...39-Optimise-nearby-player-retrieval.patch} | 0 ...e-Oversized-Tile-Entities-in-chunks.patch} | 16 +- 772 files changed, 546 insertions(+), 499 deletions(-) rename patches/server/{0289-Entity-getEntitySpawnReason.patch => 0288-Entity-getEntitySpawnReason.patch} (100%) rename patches/server/{0290-Fire-event-on-GS4-query.patch => 0289-Fire-event-on-GS4-query.patch} (100%) rename patches/server/{0291-Add-PlayerPostRespawnEvent.patch => 0290-Add-PlayerPostRespawnEvent.patch} (100%) rename patches/server/{0292-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch => 0291-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch} (100%) rename patches/server/{0293-Server-Tick-Events.patch => 0292-Server-Tick-Events.patch} (100%) rename patches/server/{0294-PlayerDeathEvent-getItemsToKeep.patch => 0293-PlayerDeathEvent-getItemsToKeep.patch} (100%) rename patches/server/{0295-Optimize-Captured-BlockEntity-Lookup.patch => 0294-Optimize-Captured-BlockEntity-Lookup.patch} (91%) rename patches/server/{0296-Add-Heightmap-API.patch => 0295-Add-Heightmap-API.patch} (100%) rename patches/server/{0297-Mob-Spawner-API-Enhancements.patch => 0296-Mob-Spawner-API-Enhancements.patch} (100%) rename patches/server/{0298-Fix-CB-call-to-changed-postToMainThread-method.patch => 0297-Fix-CB-call-to-changed-postToMainThread-method.patch} (100%) rename patches/server/{0299-Fix-sounds-when-item-frames-are-modified-MC-123450.patch => 0298-Fix-sounds-when-item-frames-are-modified-MC-123450.patch} (100%) rename patches/server/{0300-Implement-CraftBlockSoundGroup.patch => 0299-Implement-CraftBlockSoundGroup.patch} (100%) rename patches/server/{0301-Configurable-Keep-Spawn-Loaded-range-per-world.patch => 0300-Configurable-Keep-Spawn-Loaded-range-per-world.patch} (100%) rename patches/server/{0302-Expose-the-internal-current-tick.patch => 0301-Expose-the-internal-current-tick.patch} (100%) rename patches/server/{0303-Show-blockstate-location-if-we-failed-to-read-it.patch => 0302-Show-blockstate-location-if-we-failed-to-read-it.patch} (100%) rename patches/server/{0304-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch => 0303-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch} (100%) rename patches/server/{0305-Configurable-projectile-relative-velocity.patch => 0304-Configurable-projectile-relative-velocity.patch} (100%) rename patches/server/{0306-offset-item-frame-ticking.patch => 0305-offset-item-frame-ticking.patch} (100%) rename patches/server/{0307-Prevent-consuming-the-wrong-itemstack.patch => 0306-Prevent-consuming-the-wrong-itemstack.patch} (100%) rename patches/server/{0308-Dont-send-unnecessary-sign-update.patch => 0307-Dont-send-unnecessary-sign-update.patch} (100%) rename patches/server/{0309-Add-option-to-disable-pillager-patrols.patch => 0308-Add-option-to-disable-pillager-patrols.patch} (100%) rename patches/server/{0310-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch => 0309-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch} (100%) rename patches/server/{0311-MC-145656-Fix-Follow-Range-Initial-Target.patch => 0310-MC-145656-Fix-Follow-Range-Initial-Target.patch} (100%) rename patches/server/{0312-Duplicate-UUID-Resolve-Option.patch => 0311-Duplicate-UUID-Resolve-Option.patch} (95%) rename patches/server/{0313-PlayerDeathEvent-shouldDropExperience.patch => 0312-PlayerDeathEvent-shouldDropExperience.patch} (100%) rename patches/server/{0314-Prevent-bees-loading-chunks-checking-hive-position.patch => 0313-Prevent-bees-loading-chunks-checking-hive-position.patch} (100%) rename patches/server/{0315-Don-t-load-Chunks-from-Hoppers-and-other-things.patch => 0314-Don-t-load-Chunks-from-Hoppers-and-other-things.patch} (100%) rename patches/server/{0316-Optimise-EntityGetter-getPlayerByUUID.patch => 0315-Optimise-EntityGetter-getPlayerByUUID.patch} (100%) rename patches/server/{0317-Fix-items-not-falling-correctly.patch => 0316-Fix-items-not-falling-correctly.patch} (94%) rename patches/server/{0318-Optimize-call-to-getFluid-for-explosions.patch => 0317-Optimize-call-to-getFluid-for-explosions.patch} (100%) rename patches/server/{0319-Fix-last-firework-in-stack-not-having-effects-when-d.patch => 0318-Fix-last-firework-in-stack-not-having-effects-when-d.patch} (100%) rename patches/server/{0320-Guard-against-serializing-mismatching-chunk-coordina.patch => 0319-Guard-against-serializing-mismatching-chunk-coordina.patch} (100%) rename patches/server/{0321-Alternative-item-despawn-rate.patch => 0320-Alternative-item-despawn-rate.patch} (100%) rename patches/server/{0322-Tracking-Range-Improvements.patch => 0321-Tracking-Range-Improvements.patch} (95%) rename patches/server/{0323-Fix-items-vanishing-through-end-portal.patch => 0322-Fix-items-vanishing-through-end-portal.patch} (100%) rename patches/server/{0324-Bees-get-gravity-in-void.-Fixes-MC-167279.patch => 0323-Bees-get-gravity-in-void.-Fixes-MC-167279.patch} (100%) rename patches/server/{0325-Improve-Block-breakNaturally-API.patch => 0324-Improve-Block-breakNaturally-API.patch} (100%) rename patches/server/{0326-Optimise-getChunkAt-calls-for-loaded-chunks.patch => 0325-Optimise-getChunkAt-calls-for-loaded-chunks.patch} (100%) rename patches/server/{0327-Add-debug-for-sync-chunk-loads.patch => 0326-Add-debug-for-sync-chunk-loads.patch} (100%) rename patches/server/{0328-Improve-java-version-check.patch => 0327-Improve-java-version-check.patch} (100%) rename patches/server/{0329-Add-ThrownEggHatchEvent.patch => 0328-Add-ThrownEggHatchEvent.patch} (100%) rename patches/server/{0330-Entity-Jump-API.patch => 0329-Entity-Jump-API.patch} (98%) rename patches/server/{0331-Add-option-to-nerf-pigmen-from-nether-portals.patch => 0330-Add-option-to-nerf-pigmen-from-nether-portals.patch} (100%) rename patches/server/{0332-Make-the-GUI-graph-fancier.patch => 0331-Make-the-GUI-graph-fancier.patch} (100%) rename patches/server/{0333-add-hand-to-BlockMultiPlaceEvent.patch => 0332-add-hand-to-BlockMultiPlaceEvent.patch} (100%) rename patches/server/{0334-Validate-tripwire-hook-placement-before-update.patch => 0333-Validate-tripwire-hook-placement-before-update.patch} (100%) rename patches/server/{0335-Add-option-to-allow-iron-golems-to-spawn-in-air.patch => 0334-Add-option-to-allow-iron-golems-to-spawn-in-air.patch} (100%) rename patches/server/{0336-Configurable-chance-of-villager-zombie-infection.patch => 0335-Configurable-chance-of-villager-zombie-infection.patch} (100%) rename patches/server/{0337-Optimise-Chunk-getFluid.patch => 0336-Optimise-Chunk-getFluid.patch} (89%) rename patches/server/{0338-Set-spigots-verbose-world-setting-to-false-by-def.patch => 0337-Set-spigots-verbose-world-setting-to-false-by-def.patch} (100%) rename patches/server/{0339-Add-tick-times-API-and-mspt-command.patch => 0338-Add-tick-times-API-and-mspt-command.patch} (100%) rename patches/server/{0340-Expose-MinecraftServer-isRunning.patch => 0339-Expose-MinecraftServer-isRunning.patch} (100%) rename patches/server/{0341-Add-Raw-Byte-ItemStack-Serialization.patch => 0340-Add-Raw-Byte-ItemStack-Serialization.patch} (100%) rename patches/server/{0342-Pillager-patrol-spawn-settings-and-per-player-option.patch => 0341-Pillager-patrol-spawn-settings-and-per-player-option.patch} (100%) rename patches/server/{0343-Remote-Connections-shouldn-t-hold-up-shutdown.patch => 0342-Remote-Connections-shouldn-t-hold-up-shutdown.patch} (100%) rename patches/server/{0344-Do-not-allow-bees-to-load-chunks-for-beehives.patch => 0343-Do-not-allow-bees-to-load-chunks-for-beehives.patch} (100%) rename patches/server/{0345-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch => 0344-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch} (95%) rename patches/server/{0346-Don-t-tick-dead-players.patch => 0345-Don-t-tick-dead-players.patch} (100%) rename patches/server/{0347-Dead-Player-s-shouldn-t-be-able-to-move.patch => 0346-Dead-Player-s-shouldn-t-be-able-to-move.patch} (100%) rename patches/server/{0348-Don-t-move-existing-players-to-world-spawn.patch => 0347-Don-t-move-existing-players-to-world-spawn.patch} (100%) rename patches/server/{0349-Optimize-Pathfinding.patch => 0348-Optimize-Pathfinding.patch} (100%) rename patches/server/{0350-Reduce-Either-Optional-allocation.patch => 0349-Reduce-Either-Optional-allocation.patch} (100%) rename patches/server/{0351-Reduce-memory-footprint-of-CompoundTag.patch => 0350-Reduce-memory-footprint-of-CompoundTag.patch} (100%) rename patches/server/{0352-Prevent-opening-inventories-when-frozen.patch => 0351-Prevent-opening-inventories-when-frozen.patch} (100%) rename patches/server/{0353-Don-t-run-entity-collision-code-if-not-needed.patch => 0352-Don-t-run-entity-collision-code-if-not-needed.patch} (100%) rename patches/server/{0354-Implement-Player-Client-Options-API.patch => 0353-Implement-Player-Client-Options-API.patch} (100%) rename patches/server/{0355-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch => 0354-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch} (100%) rename patches/server/{0356-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch => 0355-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch} (97%) rename patches/server/{0357-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch => 0356-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch} (100%) rename patches/server/{0358-Add-PlayerAttackEntityCooldownResetEvent.patch => 0357-Add-PlayerAttackEntityCooldownResetEvent.patch} (100%) rename patches/server/{0359-Don-t-fire-BlockFade-on-worldgen-threads.patch => 0358-Don-t-fire-BlockFade-on-worldgen-threads.patch} (100%) rename patches/server/{0360-Add-phantom-creative-and-insomniac-controls.patch => 0359-Add-phantom-creative-and-insomniac-controls.patch} (100%) rename patches/server/{0361-Fix-item-duplication-and-teleport-issues.patch => 0360-Fix-item-duplication-and-teleport-issues.patch} (100%) rename patches/server/{0362-Villager-Restocks-API.patch => 0361-Villager-Restocks-API.patch} (100%) rename patches/server/{0363-Validate-PickItem-Packet-and-kick-for-invalid.patch => 0362-Validate-PickItem-Packet-and-kick-for-invalid.patch} (100%) rename patches/server/{0364-Expose-game-version.patch => 0363-Expose-game-version.patch} (100%) rename patches/server/{0365-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch => 0364-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch} (100%) rename patches/server/{0366-misc-debugging-dumps.patch => 0365-misc-debugging-dumps.patch} (100%) rename patches/server/{0367-Prevent-teleporting-dead-entities.patch => 0366-Prevent-teleporting-dead-entities.patch} (100%) rename patches/server/{0368-Deobfuscate-stacktraces-in-log-messages-crash-report.patch => 0367-Deobfuscate-stacktraces-in-log-messages-crash-report.patch} (99%) rename patches/server/{0369-Implement-Mob-Goal-API.patch => 0368-Implement-Mob-Goal-API.patch} (96%) rename patches/server/{0370-Add-villager-reputation-API.patch => 0369-Add-villager-reputation-API.patch} (100%) rename patches/server/{0371-Option-for-maximum-exp-value-when-merging-orbs.patch => 0370-Option-for-maximum-exp-value-when-merging-orbs.patch} (100%) rename patches/server/{0372-ExperienceOrbMergeEvent.patch => 0371-ExperienceOrbMergeEvent.patch} (100%) rename patches/server/{0373-Fix-PotionEffect-ignores-icon-flag.patch => 0372-Fix-PotionEffect-ignores-icon-flag.patch} (100%) rename patches/server/{0374-Potential-bed-API.patch => 0373-Potential-bed-API.patch} (100%) rename patches/server/{0375-Wait-for-Async-Tasks-during-shutdown.patch => 0374-Wait-for-Async-Tasks-during-shutdown.patch} (100%) rename patches/server/{0376-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch => 0375-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch} (100%) rename patches/server/{0377-Ensure-safe-gateway-teleport.patch => 0376-Ensure-safe-gateway-teleport.patch} (100%) rename patches/server/{0378-Add-option-for-console-having-all-permissions.patch => 0377-Add-option-for-console-having-all-permissions.patch} (100%) rename patches/server/{0379-Fix-villager-trading-demand-MC-163962.patch => 0378-Fix-villager-trading-demand-MC-163962.patch} (100%) rename patches/server/{0380-Maps-shouldn-t-load-chunks.patch => 0379-Maps-shouldn-t-load-chunks.patch} (100%) rename patches/server/{0381-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch => 0380-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch} (100%) rename patches/server/{0382-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch => 0381-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch} (100%) rename patches/server/{0383-Fix-piston-physics-inconsistency-MC-188840.patch => 0382-Fix-piston-physics-inconsistency-MC-188840.patch} (100%) rename patches/server/{0384-Fix-sand-duping.patch => 0383-Fix-sand-duping.patch} (100%) rename patches/server/{0385-Fix-missing-chunks-due-to-integer-overflow.patch => 0384-Fix-missing-chunks-due-to-integer-overflow.patch} (100%) rename patches/server/{0386-Prevent-position-desync-causing-tp-exploit.patch => 0385-Prevent-position-desync-causing-tp-exploit.patch} (100%) rename patches/server/{0387-Inventory-getHolder-method-without-block-snapshot.patch => 0386-Inventory-getHolder-method-without-block-snapshot.patch} (100%) rename patches/server/{0388-Improve-Arrow-API.patch => 0387-Improve-Arrow-API.patch} (100%) rename patches/server/{0389-Add-PlayerRecipeBookClickEvent.patch => 0388-Add-PlayerRecipeBookClickEvent.patch} (100%) rename patches/server/{0390-Hide-sync-chunk-writes-behind-flag.patch => 0389-Hide-sync-chunk-writes-behind-flag.patch} (100%) rename patches/server/{0391-Add-permission-for-command-blocks.patch => 0390-Add-permission-for-command-blocks.patch} (100%) rename patches/server/{0392-Ensure-Entity-position-and-AABB-are-never-invalid.patch => 0391-Ensure-Entity-position-and-AABB-are-never-invalid.patch} (100%) rename patches/server/{0393-Fix-Per-World-Difficulty-Remembering-Difficulty.patch => 0392-Fix-Per-World-Difficulty-Remembering-Difficulty.patch} (100%) rename patches/server/{0394-Paper-dumpitem-command.patch => 0393-Paper-dumpitem-command.patch} (100%) rename patches/server/{0395-Improve-Legacy-Component-serialization-size.patch => 0394-Improve-Legacy-Component-serialization-size.patch} (100%) rename patches/server/{0396-Add-Plugin-Tickets-to-API-Chunk-Methods.patch => 0395-Add-Plugin-Tickets-to-API-Chunk-Methods.patch} (100%) rename patches/server/{0397-incremental-chunk-and-player-saving.patch => 0396-incremental-chunk-and-player-saving.patch} (100%) rename patches/server/{0398-Support-old-UUID-format-for-NBT.patch => 0397-Support-old-UUID-format-for-NBT.patch} (100%) rename patches/server/{0399-Convert-legacy-attributes-in-Item-Meta.patch => 0398-Convert-legacy-attributes-in-Item-Meta.patch} (100%) rename patches/server/{0400-Support-components-in-ItemMeta.patch => 0399-Support-components-in-ItemMeta.patch} (100%) rename patches/server/{0401-Improve-fix-EntityTargetLivingEntityEvent.patch => 0400-Improve-fix-EntityTargetLivingEntityEvent.patch} (100%) rename patches/server/{0402-Add-entity-liquid-API.patch => 0401-Add-entity-liquid-API.patch} (100%) rename patches/server/{0403-Update-itemstack-legacy-name-and-lore.patch => 0402-Update-itemstack-legacy-name-and-lore.patch} (100%) rename patches/server/{0404-Add-PrepareResultEvent.patch => 0403-Add-PrepareResultEvent.patch} (100%) rename patches/server/{0405-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch => 0404-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch} (100%) rename patches/server/{0406-Fix-arrows-never-despawning-MC-125757.patch => 0405-Fix-arrows-never-despawning-MC-125757.patch} (100%) rename patches/server/{0407-Thread-Safe-Vanilla-Command-permission-checking.patch => 0406-Thread-Safe-Vanilla-Command-permission-checking.patch} (100%) rename patches/server/{0408-Fix-SPIGOT-5989.patch => 0407-Fix-SPIGOT-5989.patch} (100%) rename patches/server/{0409-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch => 0408-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch} (100%) rename patches/server/{0410-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch => 0409-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch} (100%) rename patches/server/{0411-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch => 0410-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch} (100%) rename patches/server/{0412-Optimize-NetworkManager-Exception-Handling.patch => 0411-Optimize-NetworkManager-Exception-Handling.patch} (100%) rename patches/server/{0413-Fix-some-rails-connecting-improperly.patch => 0412-Fix-some-rails-connecting-improperly.patch} (100%) rename patches/server/{0414-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch => 0413-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch} (100%) rename patches/server/{0415-Brand-support.patch => 0414-Brand-support.patch} (100%) rename patches/server/{0416-Add-playPickupItemAnimation-to-LivingEntity.patch => 0415-Add-playPickupItemAnimation-to-LivingEntity.patch} (100%) rename patches/server/{0417-Don-t-require-FACING-data.patch => 0416-Don-t-require-FACING-data.patch} (100%) rename patches/server/{0418-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch => 0417-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch} (100%) rename patches/server/{0419-Add-moon-phase-API.patch => 0418-Add-moon-phase-API.patch} (100%) rename patches/server/{0420-Do-not-let-the-server-load-chunks-from-newer-version.patch => 0419-Do-not-let-the-server-load-chunks-from-newer-version.patch} (100%) rename patches/server/{0421-Prevent-headless-pistons-from-being-created.patch => 0420-Prevent-headless-pistons-from-being-created.patch} (100%) rename patches/server/{0422-Add-BellRingEvent.patch => 0421-Add-BellRingEvent.patch} (100%) rename patches/server/{0423-Add-zombie-targets-turtle-egg-config.patch => 0422-Add-zombie-targets-turtle-egg-config.patch} (100%) rename patches/server/{0424-Buffer-joins-to-world.patch => 0423-Buffer-joins-to-world.patch} (100%) rename patches/server/{0425-Fix-hex-colors-not-working-in-some-kick-messages.patch => 0424-Fix-hex-colors-not-working-in-some-kick-messages.patch} (100%) rename patches/server/{0426-PortalCreateEvent-needs-to-know-its-entity.patch => 0425-PortalCreateEvent-needs-to-know-its-entity.patch} (100%) rename patches/server/{0427-Add-more-Evoker-API.patch => 0426-Add-more-Evoker-API.patch} (100%) rename patches/server/{0428-Add-methods-to-get-translation-keys.patch => 0427-Add-methods-to-get-translation-keys.patch} (100%) rename patches/server/{0429-Create-HoverEvent-from-ItemStack-Entity.patch => 0428-Create-HoverEvent-from-ItemStack-Entity.patch} (100%) rename patches/server/{0430-Cache-block-data-strings.patch => 0429-Cache-block-data-strings.patch} (100%) rename patches/server/{0431-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch => 0430-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch} (100%) rename patches/server/{0432-Add-additional-open-container-api-to-HumanEntity.patch => 0431-Add-additional-open-container-api-to-HumanEntity.patch} (100%) rename patches/server/{0433-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch => 0432-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch} (100%) rename patches/server/{0434-Extend-block-drop-capture-to-capture-all-items-added.patch => 0433-Extend-block-drop-capture-to-capture-all-items-added.patch} (100%) rename patches/server/{0435-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch => 0434-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch} (100%) rename patches/server/{0436-Lazily-track-plugin-scoreboards-by-default.patch => 0435-Lazily-track-plugin-scoreboards-by-default.patch} (100%) rename patches/server/{0437-Entity-isTicking.patch => 0436-Entity-isTicking.patch} (100%) rename patches/server/{0438-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch => 0437-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch} (100%) rename patches/server/{0439-Fix-Concurrency-issue-in-ShufflingList.patch => 0438-Fix-Concurrency-issue-in-ShufflingList.patch} (100%) rename patches/server/{0440-Reset-Ender-Crystals-on-Dragon-Spawn.patch => 0439-Reset-Ender-Crystals-on-Dragon-Spawn.patch} (100%) rename patches/server/{0441-Fix-for-large-move-vectors-crashing-server.patch => 0440-Fix-for-large-move-vectors-crashing-server.patch} (100%) rename patches/server/{0442-Optimise-getType-calls.patch => 0441-Optimise-getType-calls.patch} (100%) rename patches/server/{0443-Villager-resetOffers.patch => 0442-Villager-resetOffers.patch} (100%) rename patches/server/{0444-Retain-block-place-order-when-capturing-blockstates.patch => 0443-Retain-block-place-order-when-capturing-blockstates.patch} (93%) rename patches/server/{0445-Reduce-blockpos-allocation-from-pathfinding.patch => 0444-Reduce-blockpos-allocation-from-pathfinding.patch} (100%) rename patches/server/{0446-Fix-item-locations-dropped-from-campfires.patch => 0445-Fix-item-locations-dropped-from-campfires.patch} (100%) rename patches/server/{0447-Fix-bell-block-entity-memory-leak.patch => 0446-Fix-bell-block-entity-memory-leak.patch} (100%) rename patches/server/{0448-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch => 0447-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch} (100%) rename patches/server/{0449-Add-getOfflinePlayerIfCached-String.patch => 0448-Add-getOfflinePlayerIfCached-String.patch} (100%) rename patches/server/{0450-Add-ignore-discounts-API.patch => 0449-Add-ignore-discounts-API.patch} (100%) rename patches/server/{0451-Toggle-for-removing-existing-dragon.patch => 0450-Toggle-for-removing-existing-dragon.patch} (100%) rename patches/server/{0452-Fix-client-lag-on-advancement-loading.patch => 0451-Fix-client-lag-on-advancement-loading.patch} (100%) rename patches/server/{0453-Item-no-age-no-player-pickup.patch => 0452-Item-no-age-no-player-pickup.patch} (100%) rename patches/server/{0454-Beacon-API-custom-effect-ranges.patch => 0453-Beacon-API-custom-effect-ranges.patch} (100%) rename patches/server/{0455-Add-API-for-quit-reason.patch => 0454-Add-API-for-quit-reason.patch} (100%) rename patches/server/{0456-Add-Wandering-Trader-spawn-rate-config-options.patch => 0455-Add-Wandering-Trader-spawn-rate-config-options.patch} (100%) rename patches/server/{0457-Expose-world-spawn-angle.patch => 0456-Expose-world-spawn-angle.patch} (100%) rename patches/server/{0458-Add-Destroy-Speed-API.patch => 0457-Add-Destroy-Speed-API.patch} (100%) rename patches/server/{0459-Fix-Player-spawnParticle-x-y-z-precision-loss.patch => 0458-Fix-Player-spawnParticle-x-y-z-precision-loss.patch} (100%) rename patches/server/{0460-Add-LivingEntity-clearActiveItem.patch => 0459-Add-LivingEntity-clearActiveItem.patch} (100%) rename patches/server/{0461-Add-PlayerItemCooldownEvent.patch => 0460-Add-PlayerItemCooldownEvent.patch} (100%) rename patches/server/{0462-Significantly-improve-performance-of-the-end-generat.patch => 0461-Significantly-improve-performance-of-the-end-generat.patch} (100%) rename patches/server/{0463-More-lightning-API.patch => 0462-More-lightning-API.patch} (100%) rename patches/server/{0464-Climbing-should-not-bypass-cramming-gamerule.patch => 0463-Climbing-should-not-bypass-cramming-gamerule.patch} (100%) rename patches/server/{0465-Add-missing-default-perms-for-commands.patch => 0464-Add-missing-default-perms-for-commands.patch} (100%) rename patches/server/{0466-Add-PlayerShearBlockEvent.patch => 0465-Add-PlayerShearBlockEvent.patch} (100%) rename patches/server/{0467-Limit-recipe-packets.patch => 0466-Limit-recipe-packets.patch} (100%) rename patches/server/{0468-Fix-CraftSound-backwards-compatibility.patch => 0467-Fix-CraftSound-backwards-compatibility.patch} (100%) rename patches/server/{0469-Player-Chunk-Load-Unload-Events.patch => 0468-Player-Chunk-Load-Unload-Events.patch} (100%) rename patches/server/{0470-Optimize-Dynamic-get-Missing-Keys.patch => 0469-Optimize-Dynamic-get-Missing-Keys.patch} (100%) rename patches/server/{0471-Expose-LivingEntity-hurt-direction.patch => 0470-Expose-LivingEntity-hurt-direction.patch} (100%) rename patches/server/{0472-Add-OBSTRUCTED-reason-to-BedEnterResult.patch => 0471-Add-OBSTRUCTED-reason-to-BedEnterResult.patch} (100%) rename patches/server/{0473-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch => 0472-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch} (100%) rename patches/server/{0474-Add-TargetHitEvent.patch => 0473-Add-TargetHitEvent.patch} (100%) rename patches/server/{0475-MC-4-Fix-item-position-desync.patch => 0474-MC-4-Fix-item-position-desync.patch} (100%) rename patches/server/{0476-Additional-Block-Material-API.patch => 0475-Additional-Block-Material-API.patch} (100%) rename patches/server/{0477-Fix-harming-potion-dupe.patch => 0476-Fix-harming-potion-dupe.patch} (100%) rename patches/server/{0478-API-to-get-Material-from-Boats-and-Minecarts.patch => 0477-API-to-get-Material-from-Boats-and-Minecarts.patch} (100%) rename patches/server/{0479-Cache-burn-durations.patch => 0478-Cache-burn-durations.patch} (100%) rename patches/server/{0480-Allow-disabling-mob-spawner-spawn-egg-transformation.patch => 0479-Allow-disabling-mob-spawner-spawn-egg-transformation.patch} (100%) rename patches/server/{0481-Fix-Not-a-string-Map-Conversion-spam.patch => 0480-Fix-Not-a-string-Map-Conversion-spam.patch} (100%) rename patches/server/{0482-Add-PlayerFlowerPotManipulateEvent.patch => 0481-Add-PlayerFlowerPotManipulateEvent.patch} (100%) rename patches/server/{0483-Fix-interact-event-not-being-called-sometimes.patch => 0482-Fix-interact-event-not-being-called-sometimes.patch} (100%) rename patches/server/{0484-Zombie-API-breaking-doors.patch => 0483-Zombie-API-breaking-doors.patch} (100%) rename patches/server/{0485-Fix-nerfed-slime-when-splitting.patch => 0484-Fix-nerfed-slime-when-splitting.patch} (100%) rename patches/server/{0486-Add-EntityLoadCrossbowEvent.patch => 0485-Add-EntityLoadCrossbowEvent.patch} (100%) rename patches/server/{0487-Add-WorldGameRuleChangeEvent.patch => 0486-Add-WorldGameRuleChangeEvent.patch} (100%) rename patches/server/{0488-Add-ServerResourcesReloadedEvent.patch => 0487-Add-ServerResourcesReloadedEvent.patch} (100%) rename patches/server/{0489-Add-world-settings-for-mobs-picking-up-loot.patch => 0488-Add-world-settings-for-mobs-picking-up-loot.patch} (100%) rename patches/server/{0490-Add-BlockFailedDispenseEvent.patch => 0489-Add-BlockFailedDispenseEvent.patch} (100%) rename patches/server/{0491-Add-PlayerLecternPageChangeEvent.patch => 0490-Add-PlayerLecternPageChangeEvent.patch} (100%) rename patches/server/{0492-Add-PlayerLoomPatternSelectEvent.patch => 0491-Add-PlayerLoomPatternSelectEvent.patch} (100%) rename patches/server/{0493-Configurable-door-breaking-difficulty.patch => 0492-Configurable-door-breaking-difficulty.patch} (100%) rename patches/server/{0494-Empty-commands-shall-not-be-dispatched.patch => 0493-Empty-commands-shall-not-be-dispatched.patch} (100%) rename patches/server/{0495-Remove-stale-POIs.patch => 0494-Remove-stale-POIs.patch} (100%) rename patches/server/{0496-Fix-villager-boat-exploit.patch => 0495-Fix-villager-boat-exploit.patch} (100%) rename patches/server/{0497-Add-sendOpLevel-API.patch => 0496-Add-sendOpLevel-API.patch} (100%) rename patches/server/{0498-TODO-Registry-Modification-API.patch => 0497-TODO-Registry-Modification-API.patch} (100%) rename patches/server/{0499-Add-StructuresLocateEvent.patch => 0498-Add-StructuresLocateEvent.patch} (100%) rename patches/server/{0500-Collision-option-for-requiring-a-player-participant.patch => 0499-Collision-option-for-requiring-a-player-participant.patch} (100%) rename patches/server/{0501-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch => 0500-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch} (100%) rename patches/server/{0502-Return-chat-component-with-empty-text-instead-of-thr.patch => 0501-Return-chat-component-with-empty-text-instead-of-thr.patch} (100%) rename patches/server/{0503-Make-schedule-command-per-world.patch => 0502-Make-schedule-command-per-world.patch} (100%) rename patches/server/{0504-Configurable-max-leash-distance.patch => 0503-Configurable-max-leash-distance.patch} (100%) rename patches/server/{0505-Add-BlockPreDispenseEvent.patch => 0504-Add-BlockPreDispenseEvent.patch} (100%) rename patches/server/{0506-Add-PlayerChangeBeaconEffectEvent.patch => 0505-Add-PlayerChangeBeaconEffectEvent.patch} (100%) rename patches/server/{0507-Add-toggle-for-always-placing-the-dragon-egg.patch => 0506-Add-toggle-for-always-placing-the-dragon-egg.patch} (100%) rename patches/server/{0508-Add-PlayerStonecutterRecipeSelectEvent.patch => 0507-Add-PlayerStonecutterRecipeSelectEvent.patch} (100%) rename patches/server/{0509-Expand-EntityUnleashEvent.patch => 0508-Expand-EntityUnleashEvent.patch} (100%) rename patches/server/{0510-Reset-shield-blocking-on-dimension-change.patch => 0509-Reset-shield-blocking-on-dimension-change.patch} (100%) rename patches/server/{0511-Add-DragonEggFormEvent.patch => 0510-Add-DragonEggFormEvent.patch} (100%) rename patches/server/{0512-Add-EntityMoveEvent.patch => 0511-Add-EntityMoveEvent.patch} (100%) rename patches/server/{0513-added-option-to-disable-pathfinding-updates-on-block.patch => 0512-added-option-to-disable-pathfinding-updates-on-block.patch} (100%) rename patches/server/{0514-Inline-shift-direction-fields.patch => 0513-Inline-shift-direction-fields.patch} (100%) rename patches/server/{0515-Allow-adding-items-to-BlockDropItemEvent.patch => 0514-Allow-adding-items-to-BlockDropItemEvent.patch} (100%) rename patches/server/{0516-Add-getMainThreadExecutor-to-BukkitScheduler.patch => 0515-Add-getMainThreadExecutor-to-BukkitScheduler.patch} (100%) rename patches/server/{0517-living-entity-allow-attribute-registration.patch => 0516-living-entity-allow-attribute-registration.patch} (100%) rename patches/server/{0518-fix-dead-slime-setSize-invincibility.patch => 0517-fix-dead-slime-setSize-invincibility.patch} (100%) rename patches/server/{0519-Merchant-getRecipes-should-return-an-immutable-list.patch => 0518-Merchant-getRecipes-should-return-an-immutable-list.patch} (100%) rename patches/server/{0520-Expose-Tracked-Players.patch => 0519-Expose-Tracked-Players.patch} (100%) rename patches/server/{0521-Improve-ServerGUI.patch => 0520-Improve-ServerGUI.patch} (100%) rename patches/server/{0522-fix-converting-txt-to-json-file.patch => 0521-fix-converting-txt-to-json-file.patch} (100%) rename patches/server/{0523-Add-worldborder-events.patch => 0522-Add-worldborder-events.patch} (100%) rename patches/server/{0524-Add-PlayerNameEntityEvent.patch => 0523-Add-PlayerNameEntityEvent.patch} (100%) rename patches/server/{0525-Prevent-grindstones-from-overstacking-items.patch => 0524-Prevent-grindstones-from-overstacking-items.patch} (100%) rename patches/server/{0526-Add-recipe-to-cook-events.patch => 0525-Add-recipe-to-cook-events.patch} (100%) rename patches/server/{0527-Add-Block-isValidTool.patch => 0526-Add-Block-isValidTool.patch} (100%) rename patches/server/{0528-Allow-using-signs-inside-spawn-protection.patch => 0527-Allow-using-signs-inside-spawn-protection.patch} (100%) rename patches/server/{0529-Expand-world-key-API.patch => 0528-Expand-world-key-API.patch} (100%) rename patches/server/{0530-Add-fast-alternative-constructor-for-Rotations.patch => 0529-Add-fast-alternative-constructor-for-Rotations.patch} (100%) rename patches/server/{0531-Item-Rarity-API.patch => 0530-Item-Rarity-API.patch} (100%) rename patches/server/{0532-Drop-carried-item-when-player-has-disconnected.patch => 0531-Drop-carried-item-when-player-has-disconnected.patch} (100%) rename patches/server/{0533-forced-whitelist-use-configurable-kick-message.patch => 0532-forced-whitelist-use-configurable-kick-message.patch} (100%) rename patches/server/{0534-Don-t-ignore-result-of-PlayerEditBookEvent.patch => 0533-Don-t-ignore-result-of-PlayerEditBookEvent.patch} (100%) rename patches/server/{0535-Expose-protocol-version.patch => 0534-Expose-protocol-version.patch} (100%) rename patches/server/{0536-Enhance-console-tab-completions-for-brigadier-comman.patch => 0535-Enhance-console-tab-completions-for-brigadier-comman.patch} (100%) rename patches/server/{0537-Fix-PlayerItemConsumeEvent-cancelling-properly.patch => 0536-Fix-PlayerItemConsumeEvent-cancelling-properly.patch} (100%) rename patches/server/{0538-Add-bypass-host-check.patch => 0537-Add-bypass-host-check.patch} (100%) rename patches/server/{0539-Set-area-affect-cloud-rotation.patch => 0538-Set-area-affect-cloud-rotation.patch} (100%) rename patches/server/{0540-add-isDeeplySleeping-to-HumanEntity.patch => 0539-add-isDeeplySleeping-to-HumanEntity.patch} (100%) rename patches/server/{0541-add-consumeFuel-to-FurnaceBurnEvent.patch => 0540-add-consumeFuel-to-FurnaceBurnEvent.patch} (100%) rename patches/server/{0542-add-get-set-drop-chance-to-EntityEquipment.patch => 0541-add-get-set-drop-chance-to-EntityEquipment.patch} (100%) rename patches/server/{0543-fix-PigZombieAngerEvent-cancellation.patch => 0542-fix-PigZombieAngerEvent-cancellation.patch} (100%) rename patches/server/{0544-fix-PlayerItemHeldEvent-firing-twice.patch => 0543-fix-PlayerItemHeldEvent-firing-twice.patch} (100%) rename patches/server/{0545-Add-PlayerDeepSleepEvent.patch => 0544-Add-PlayerDeepSleepEvent.patch} (100%) rename patches/server/{0546-More-World-API.patch => 0545-More-World-API.patch} (100%) rename patches/server/{0547-Add-PlayerBedFailEnterEvent.patch => 0546-Add-PlayerBedFailEnterEvent.patch} (100%) rename patches/server/{0548-Implement-methods-to-convert-between-Component-and-B.patch => 0547-Implement-methods-to-convert-between-Component-and-B.patch} (100%) rename patches/server/{0549-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch => 0548-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch} (100%) rename patches/server/{0550-Introduce-beacon-activation-deactivation-events.patch => 0549-Introduce-beacon-activation-deactivation-events.patch} (100%) rename patches/server/{0551-Add-Channel-initialization-listeners.patch => 0550-Add-Channel-initialization-listeners.patch} (100%) rename patches/server/{0552-Send-empty-commands-if-tab-completion-is-disabled.patch => 0551-Send-empty-commands-if-tab-completion-is-disabled.patch} (100%) rename patches/server/{0553-Add-more-WanderingTrader-API.patch => 0552-Add-more-WanderingTrader-API.patch} (100%) rename patches/server/{0554-Add-EntityBlockStorage-clearEntities.patch => 0553-Add-EntityBlockStorage-clearEntities.patch} (100%) rename patches/server/{0555-Entity-load-save-limit-per-chunk.patch => 0554-Entity-load-save-limit-per-chunk.patch} (100%) rename patches/server/{0556-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch => 0555-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch} (100%) rename patches/server/{0557-Inventory-close.patch => 0556-Inventory-close.patch} (100%) rename patches/server/{0558-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch => 0557-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch} (100%) rename patches/server/{0559-Add-basic-Datapack-API.patch => 0558-Add-basic-Datapack-API.patch} (100%) rename patches/server/{0560-Add-environment-variable-to-disable-server-gui.patch => 0559-Add-environment-variable-to-disable-server-gui.patch} (100%) rename patches/server/{0561-Expand-PlayerGameModeChangeEvent.patch => 0560-Expand-PlayerGameModeChangeEvent.patch} (100%) rename patches/server/{0562-ItemStack-repair-check-API.patch => 0561-ItemStack-repair-check-API.patch} (100%) rename patches/server/{0563-More-Enchantment-API.patch => 0562-More-Enchantment-API.patch} (100%) rename patches/server/{0564-Move-range-check-for-block-placing-up.patch => 0563-Move-range-check-for-block-placing-up.patch} (100%) rename patches/server/{0565-Fix-and-optimise-world-force-upgrading.patch => 0564-Fix-and-optimise-world-force-upgrading.patch} (99%) rename patches/server/{0566-Add-Mob-lookAt-API.patch => 0565-Add-Mob-lookAt-API.patch} (100%) rename patches/server/{0567-Add-Unix-domain-socket-support.patch => 0566-Add-Unix-domain-socket-support.patch} (100%) rename patches/server/{0568-Add-EntityInsideBlockEvent.patch => 0567-Add-EntityInsideBlockEvent.patch} (100%) rename patches/server/{0569-Attributes-API-for-item-defaults.patch => 0568-Attributes-API-for-item-defaults.patch} (100%) rename patches/server/{0570-Add-cause-to-Weather-ThunderChangeEvents.patch => 0569-Add-cause-to-Weather-ThunderChangeEvents.patch} (100%) rename patches/server/{0571-More-Lidded-Block-API.patch => 0570-More-Lidded-Block-API.patch} (100%) rename patches/server/{0572-Limit-item-frame-cursors-on-maps.patch => 0571-Limit-item-frame-cursors-on-maps.patch} (100%) rename patches/server/{0573-Add-PlayerKickEvent-causes.patch => 0572-Add-PlayerKickEvent-causes.patch} (100%) rename patches/server/{0574-Add-PufferFishStateChangeEvent.patch => 0573-Add-PufferFishStateChangeEvent.patch} (100%) rename patches/server/{0575-Fix-PlayerBucketEmptyEvent-result-itemstack.patch => 0574-Fix-PlayerBucketEmptyEvent-result-itemstack.patch} (100%) rename patches/server/{0576-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch => 0575-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch} (100%) rename patches/server/{0577-Add-option-to-fix-items-merging-through-walls.patch => 0576-Add-option-to-fix-items-merging-through-walls.patch} (100%) rename patches/server/{0578-Add-BellRevealRaiderEvent.patch => 0577-Add-BellRevealRaiderEvent.patch} (100%) rename patches/server/{0579-Fix-invulnerable-end-crystals.patch => 0578-Fix-invulnerable-end-crystals.patch} (100%) rename patches/server/{0580-Add-ElderGuardianAppearanceEvent.patch => 0579-Add-ElderGuardianAppearanceEvent.patch} (100%) rename patches/server/{0581-Fix-dangerous-end-portal-logic.patch => 0580-Fix-dangerous-end-portal-logic.patch} (100%) rename patches/server/{0582-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch => 0581-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch} (100%) rename patches/server/{0583-Make-item-validations-configurable.patch => 0582-Make-item-validations-configurable.patch} (100%) rename patches/server/{0584-Line-Of-Sight-Changes.patch => 0583-Line-Of-Sight-Changes.patch} (100%) rename patches/server/{0585-add-per-world-spawn-limits.patch => 0584-add-per-world-spawn-limits.patch} (100%) rename patches/server/{0586-Fix-potions-splash-events.patch => 0585-Fix-potions-splash-events.patch} (100%) rename patches/server/{0587-Add-more-LimitedRegion-API.patch => 0586-Add-more-LimitedRegion-API.patch} (100%) rename patches/server/{0588-Fix-PlayerDropItemEvent-using-wrong-item.patch => 0587-Fix-PlayerDropItemEvent-using-wrong-item.patch} (100%) rename patches/server/{0589-Missing-Entity-API.patch => 0588-Missing-Entity-API.patch} (99%) rename patches/server/{0590-Ensure-disconnect-for-book-edit-is-called-on-main.patch => 0589-Ensure-disconnect-for-book-edit-is-called-on-main.patch} (100%) rename patches/server/{0591-Fix-return-value-of-Block-applyBoneMeal-always-being.patch => 0590-Fix-return-value-of-Block-applyBoneMeal-always-being.patch} (100%) rename patches/server/{0592-Use-getChunkIfLoadedImmediately-in-places.patch => 0591-Use-getChunkIfLoadedImmediately-in-places.patch} (97%) rename patches/server/{0593-Fix-commands-from-signs-not-firing-command-events.patch => 0592-Fix-commands-from-signs-not-firing-command-events.patch} (100%) rename patches/server/{0594-Add-PlayerArmSwingEvent.patch => 0593-Add-PlayerArmSwingEvent.patch} (100%) rename patches/server/{0595-Fix-kick-event-leave-message-not-being-sent.patch => 0594-Fix-kick-event-leave-message-not-being-sent.patch} (100%) rename patches/server/{0596-Add-config-for-mobs-immune-to-default-effects.patch => 0595-Add-config-for-mobs-immune-to-default-effects.patch} (100%) rename patches/server/{0597-Don-t-apply-cramming-damage-to-players.patch => 0596-Don-t-apply-cramming-damage-to-players.patch} (100%) rename patches/server/{0598-Rate-options-and-timings-for-sensors-and-behaviors.patch => 0597-Rate-options-and-timings-for-sensors-and-behaviors.patch} (100%) rename patches/server/{0599-Add-missing-forceDrop-toggles.patch => 0598-Add-missing-forceDrop-toggles.patch} (100%) rename patches/server/{0600-Stinger-API.patch => 0599-Stinger-API.patch} (100%) rename patches/server/{0601-Fix-incosistency-issue-with-empty-map-items-in-CB.patch => 0600-Fix-incosistency-issue-with-empty-map-items-in-CB.patch} (100%) rename patches/server/{0602-Add-System.out-err-catcher.patch => 0601-Add-System.out-err-catcher.patch} (100%) rename patches/server/{0603-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch => 0602-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch} (100%) rename patches/server/{0604-Prevent-AFK-kick-while-watching-end-credits.patch => 0603-Prevent-AFK-kick-while-watching-end-credits.patch} (100%) rename patches/server/{0605-Allow-skipping-writing-of-comments-to-server.propert.patch => 0604-Allow-skipping-writing-of-comments-to-server.propert.patch} (100%) rename patches/server/{0606-Add-PlayerSetSpawnEvent.patch => 0605-Add-PlayerSetSpawnEvent.patch} (100%) rename patches/server/{0607-Make-hoppers-respect-inventory-max-stack-size.patch => 0606-Make-hoppers-respect-inventory-max-stack-size.patch} (100%) rename patches/server/{0608-Optimize-entity-tracker-passenger-checks.patch => 0607-Optimize-entity-tracker-passenger-checks.patch} (100%) rename patches/server/{0609-Config-option-for-Piglins-guarding-chests.patch => 0608-Config-option-for-Piglins-guarding-chests.patch} (100%) rename patches/server/{0610-Add-EntityDamageItemEvent.patch => 0609-Add-EntityDamageItemEvent.patch} (100%) rename patches/server/{0611-Optimize-indirect-passenger-iteration.patch => 0610-Optimize-indirect-passenger-iteration.patch} (100%) rename patches/server/{0612-Configurable-item-frame-map-cursor-update-interval.patch => 0611-Configurable-item-frame-map-cursor-update-interval.patch} (100%) rename patches/server/{0613-Clear-bucket-NBT-after-dispense.patch => 0612-Clear-bucket-NBT-after-dispense.patch} (100%) rename patches/server/{0614-Change-EnderEye-target-without-changing-other-things.patch => 0613-Change-EnderEye-target-without-changing-other-things.patch} (100%) rename patches/server/{0615-Add-BlockBreakBlockEvent.patch => 0614-Add-BlockBreakBlockEvent.patch} (100%) rename patches/server/{0616-Option-to-prevent-NBT-copy-in-smithing-recipes.patch => 0615-Option-to-prevent-NBT-copy-in-smithing-recipes.patch} (100%) rename patches/server/{0617-More-CommandBlock-API.patch => 0616-More-CommandBlock-API.patch} (100%) rename patches/server/{0618-Add-missing-team-sidebar-display-slots.patch => 0617-Add-missing-team-sidebar-display-slots.patch} (100%) rename patches/server/{0619-Add-back-EntityPortalExitEvent.patch => 0618-Add-back-EntityPortalExitEvent.patch} (100%) rename patches/server/{0620-Add-methods-to-find-targets-for-lightning-strikes.patch => 0619-Add-methods-to-find-targets-for-lightning-strikes.patch} (100%) rename patches/server/{0621-Get-entity-default-attributes.patch => 0620-Get-entity-default-attributes.patch} (100%) rename patches/server/{0622-Left-handed-API.patch => 0621-Left-handed-API.patch} (100%) rename patches/server/{0623-Add-more-advancement-API.patch => 0622-Add-more-advancement-API.patch} (100%) rename patches/server/{0624-Add-ItemFactory-getSpawnEgg-API.patch => 0623-Add-ItemFactory-getSpawnEgg-API.patch} (100%) rename patches/server/{0625-Add-critical-damage-API.patch => 0624-Add-critical-damage-API.patch} (100%) rename patches/server/{0626-Fix-issues-with-mob-conversion.patch => 0625-Fix-issues-with-mob-conversion.patch} (100%) rename patches/server/{0627-Add-isCollidable-methods-to-various-places.patch => 0626-Add-isCollidable-methods-to-various-places.patch} (100%) rename patches/server/{0628-Goat-ram-API.patch => 0627-Goat-ram-API.patch} (100%) rename patches/server/{0629-Add-API-for-resetting-a-single-score.patch => 0628-Add-API-for-resetting-a-single-score.patch} (100%) rename patches/server/{0630-Add-Raw-Byte-Entity-Serialization.patch => 0629-Add-Raw-Byte-Entity-Serialization.patch} (100%) rename patches/server/{0631-Vanilla-command-permission-fixes.patch => 0630-Vanilla-command-permission-fixes.patch} (100%) rename patches/server/{0632-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch => 0631-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch} (100%) rename patches/server/{0633-Fix-GameProfileCache-concurrency.patch => 0632-Fix-GameProfileCache-concurrency.patch} (100%) rename patches/server/{0634-Improve-and-expand-AsyncCatcher.patch => 0633-Improve-and-expand-AsyncCatcher.patch} (100%) rename patches/server/{0635-Add-paper-mobcaps-and-paper-playermobcaps.patch => 0634-Add-paper-mobcaps-and-paper-playermobcaps.patch} (100%) rename patches/server/{0636-Sanitize-ResourceLocation-error-logging.patch => 0635-Sanitize-ResourceLocation-error-logging.patch} (100%) rename patches/server/{0637-Manually-inline-methods-in-BlockPosition.patch => 0636-Manually-inline-methods-in-BlockPosition.patch} (100%) rename patches/server/{0638-Name-craft-scheduler-threads-according-to-the-plugin.patch => 0637-Name-craft-scheduler-threads-according-to-the-plugin.patch} (100%) rename patches/server/{0639-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch => 0638-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch} (90%) rename patches/server/{0640-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch => 0639-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch} (100%) rename patches/server/{0641-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch => 0640-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch} (100%) rename patches/server/{0642-Time-scoreboard-search.patch => 0641-Time-scoreboard-search.patch} (100%) rename patches/server/{0643-Send-full-pos-packets-for-hard-colliding-entities.patch => 0642-Send-full-pos-packets-for-hard-colliding-entities.patch} (100%) rename patches/server/{0644-Oprimise-map-impl-for-tracked-players.patch => 0643-Oprimise-map-impl-for-tracked-players.patch} (87%) rename patches/server/{0645-Optimise-BlockSoil-nearby-water-lookup.patch => 0644-Optimise-BlockSoil-nearby-water-lookup.patch} (100%) rename patches/server/{0646-Distance-manager-tick-timings.patch => 0645-Distance-manager-tick-timings.patch} (100%) rename patches/server/{0647-Fix-merchant-inventory-not-closing-on-entity-removal.patch => 0646-Fix-merchant-inventory-not-closing-on-entity-removal.patch} (100%) rename patches/server/{0648-Check-requirement-before-suggesting-root-nodes.patch => 0647-Check-requirement-before-suggesting-root-nodes.patch} (100%) rename patches/server/{0649-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch => 0648-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch} (100%) rename patches/server/{0650-Add-packet-limiter-config.patch => 0649-Add-packet-limiter-config.patch} (100%) rename patches/server/{0651-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch => 0650-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch} (100%) rename patches/server/{0652-Ensure-valid-vehicle-status.patch => 0651-Ensure-valid-vehicle-status.patch} (100%) rename patches/server/{0653-Prevent-softlocked-end-exit-portal-generation.patch => 0652-Prevent-softlocked-end-exit-portal-generation.patch} (100%) rename patches/server/{0654-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch => 0653-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch} (100%) rename patches/server/{0655-Don-t-log-debug-logging-being-disabled.patch => 0654-Don-t-log-debug-logging-being-disabled.patch} (100%) rename patches/server/{0656-fix-various-menus-with-empty-level-accesses.patch => 0655-fix-various-menus-with-empty-level-accesses.patch} (100%) rename patches/server/{0657-Preserve-overstacked-loot.patch => 0656-Preserve-overstacked-loot.patch} (100%) rename patches/server/{0658-Update-head-rotation-in-missing-places.patch => 0657-Update-head-rotation-in-missing-places.patch} (100%) rename patches/server/{0659-prevent-unintended-light-block-manipulation.patch => 0658-prevent-unintended-light-block-manipulation.patch} (100%) rename patches/server/{0660-Fix-CraftCriteria-defaults-map.patch => 0659-Fix-CraftCriteria-defaults-map.patch} (100%) rename patches/server/{0661-Fix-upstreams-block-state-factories.patch => 0660-Fix-upstreams-block-state-factories.patch} (100%) rename patches/server/{0662-Configurable-feature-seeds.patch => 0661-Configurable-feature-seeds.patch} (100%) rename patches/server/{0663-Add-root-admin-user-detection.patch => 0662-Add-root-admin-user-detection.patch} (100%) rename patches/server/{0664-Always-allow-item-changing-in-Fireball.patch => 0663-Always-allow-item-changing-in-Fireball.patch} (100%) rename patches/server/{0665-don-t-attempt-to-teleport-dead-entities.patch => 0664-don-t-attempt-to-teleport-dead-entities.patch} (100%) rename patches/server/{0666-Prevent-excessive-velocity-through-repeated-crits.patch => 0665-Prevent-excessive-velocity-through-repeated-crits.patch} (100%) rename patches/server/{0667-Remove-client-side-code-using-deprecated-for-removal.patch => 0666-Remove-client-side-code-using-deprecated-for-removal.patch} (100%) rename patches/server/{0668-Fix-removing-recipes-from-RecipeIterator.patch => 0667-Fix-removing-recipes-from-RecipeIterator.patch} (100%) rename patches/server/{0669-Prevent-sending-oversized-item-data-in-equipment-and.patch => 0668-Prevent-sending-oversized-item-data-in-equipment-and.patch} (100%) rename patches/server/{0670-Hide-unnecessary-itemmeta-from-clients.patch => 0669-Hide-unnecessary-itemmeta-from-clients.patch} (100%) rename patches/server/{0671-Fix-Spigot-growth-modifiers.patch => 0670-Fix-Spigot-growth-modifiers.patch} (100%) rename patches/server/{0672-Prevent-ContainerOpenersCounter-openCount-from-going.patch => 0671-Prevent-ContainerOpenersCounter-openCount-from-going.patch} (100%) rename patches/server/{0673-Add-PlayerItemFrameChangeEvent.patch => 0672-Add-PlayerItemFrameChangeEvent.patch} (100%) rename patches/server/{0674-Optimize-HashMapPalette.patch => 0673-Optimize-HashMapPalette.patch} (100%) rename patches/server/{0675-Allow-delegation-to-vanilla-chunk-gen.patch => 0674-Allow-delegation-to-vanilla-chunk-gen.patch} (100%) rename patches/server/{0676-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch => 0675-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch} (100%) rename patches/server/{0677-Add-more-Campfire-API.patch => 0676-Add-more-Campfire-API.patch} (100%) rename patches/server/{0678-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch => 0677-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch} (100%) rename patches/server/{0679-Forward-CraftEntity-in-teleport-command.patch => 0678-Forward-CraftEntity-in-teleport-command.patch} (100%) rename patches/server/{0680-Improve-scoreboard-entries.patch => 0679-Improve-scoreboard-entries.patch} (100%) rename patches/server/{0681-Entity-powdered-snow-API.patch => 0680-Entity-powdered-snow-API.patch} (100%) rename patches/server/{0682-Add-API-for-item-entity-health.patch => 0681-Add-API-for-item-entity-health.patch} (100%) rename patches/server/{0683-Configurable-max-block-light-for-monster-spawning.patch => 0682-Configurable-max-block-light-for-monster-spawning.patch} (100%) rename patches/server/{0684-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch => 0683-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch} (100%) rename patches/server/{0685-Load-effect-amplifiers-greater-than-127-correctly.patch => 0684-Load-effect-amplifiers-greater-than-127-correctly.patch} (100%) rename patches/server/{0686-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch => 0685-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch} (100%) rename patches/server/{0687-Fix-bees-aging-inside-hives.patch => 0686-Fix-bees-aging-inside-hives.patch} (100%) rename patches/server/{0688-Bucketable-API.patch => 0687-Bucketable-API.patch} (100%) rename patches/server/{0689-Validate-usernames.patch => 0688-Validate-usernames.patch} (100%) rename patches/server/{0690-Make-water-animal-spawn-height-configurable.patch => 0689-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/server/{0691-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => 0690-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (100%) rename patches/server/{0692-Add-config-option-for-worlds-affected-by-time-cmd.patch => 0691-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/server/{0693-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch => 0692-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch} (100%) rename patches/server/{0694-Multiple-Entries-with-Scoreboards.patch => 0693-Multiple-Entries-with-Scoreboards.patch} (100%) rename patches/server/{0695-Reset-placed-block-on-exception.patch => 0694-Reset-placed-block-on-exception.patch} (100%) rename patches/server/{0696-Add-configurable-height-for-slime-spawn.patch => 0695-Add-configurable-height-for-slime-spawn.patch} (100%) rename patches/server/{0697-Fix-xp-reward-for-baby-zombies.patch => 0696-Fix-xp-reward-for-baby-zombies.patch} (100%) rename patches/server/{0698-Multi-Block-Change-API-Implementation.patch => 0697-Multi-Block-Change-API-Implementation.patch} (100%) rename patches/server/{0699-Fix-NotePlayEvent.patch => 0698-Fix-NotePlayEvent.patch} (100%) rename patches/server/{0700-Freeze-Tick-Lock-API.patch => 0699-Freeze-Tick-Lock-API.patch} (100%) rename patches/server/{0701-More-PotionEffectType-API.patch => 0700-More-PotionEffectType-API.patch} (100%) rename patches/server/{0702-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => 0701-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/server/{0703-API-for-creating-command-sender-which-forwards-feedb.patch => 0702-API-for-creating-command-sender-which-forwards-feedb.patch} (100%) rename patches/server/{0704-Add-missing-structure-set-seed-configs.patch => 0703-Add-missing-structure-set-seed-configs.patch} (100%) rename patches/server/{0705-Implement-regenerateChunk.patch => 0704-Implement-regenerateChunk.patch} (100%) rename patches/server/{0706-Fix-cancelled-powdered-snow-bucket-placement.patch => 0705-Fix-cancelled-powdered-snow-bucket-placement.patch} (100%) rename patches/server/{0707-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => 0706-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (100%) rename patches/server/{0708-Add-GameEvent-tags.patch => 0707-Add-GameEvent-tags.patch} (100%) rename patches/server/{0709-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => 0708-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (100%) rename patches/server/{0710-Furnace-RecipesUsed-API.patch => 0709-Furnace-RecipesUsed-API.patch} (100%) rename patches/server/{0711-Configurable-sculk-sensor-listener-range.patch => 0710-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/server/{0712-Add-missing-block-data-mins-and-maxes.patch => 0711-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/server/{0713-Option-to-have-default-CustomSpawners-in-custom-worl.patch => 0712-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (100%) rename patches/server/{0714-Put-world-into-worldlist-before-initing-the-world.patch => 0713-Put-world-into-worldlist-before-initing-the-world.patch} (100%) rename patches/server/{0715-Fix-Entity-Position-Desync.patch => 0714-Fix-Entity-Position-Desync.patch} (100%) rename patches/server/{0716-Custom-Potion-Mixes.patch => 0715-Custom-Potion-Mixes.patch} (100%) rename patches/server/{0717-Force-close-world-loading-screen.patch => 0716-Force-close-world-loading-screen.patch} (93%) rename patches/server/{0718-Fix-falling-block-spawn-methods.patch => 0717-Fix-falling-block-spawn-methods.patch} (100%) rename patches/server/{0719-Expose-furnace-minecart-push-values.patch => 0718-Expose-furnace-minecart-push-values.patch} (100%) rename patches/server/{0720-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch => 0719-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch} (100%) rename patches/server/{0721-More-Projectile-API.patch => 0720-More-Projectile-API.patch} (100%) rename patches/server/{0722-Fix-swamp-hut-cat-generation-deadlock.patch => 0721-Fix-swamp-hut-cat-generation-deadlock.patch} (100%) rename patches/server/{0723-Don-t-allow-vehicle-movement-from-players-while-tele.patch => 0722-Don-t-allow-vehicle-movement-from-players-while-tele.patch} (100%) rename patches/server/{0724-Implement-getComputedBiome-API.patch => 0723-Implement-getComputedBiome-API.patch} (100%) rename patches/server/{0725-Make-some-itemstacks-nonnull.patch => 0724-Make-some-itemstacks-nonnull.patch} (100%) rename patches/server/{0726-Implement-enchantWithLevels-API.patch => 0725-Implement-enchantWithLevels-API.patch} (100%) rename patches/server/{0727-Fix-saving-in-unloadWorld.patch => 0726-Fix-saving-in-unloadWorld.patch} (100%) rename patches/server/{0728-Buffer-OOB-setBlock-calls.patch => 0727-Buffer-OOB-setBlock-calls.patch} (100%) rename patches/server/{0729-Add-TameableDeathMessageEvent.patch => 0728-Add-TameableDeathMessageEvent.patch} (100%) rename patches/server/{0730-Fix-new-block-data-for-EntityChangeBlockEvent.patch => 0729-Fix-new-block-data-for-EntityChangeBlockEvent.patch} (100%) rename patches/server/{0731-fix-player-loottables-running-when-mob-loot-gamerule.patch => 0730-fix-player-loottables-running-when-mob-loot-gamerule.patch} (100%) rename patches/server/{0732-Ensure-entity-passenger-world-matches-ridden-entity.patch => 0731-Ensure-entity-passenger-world-matches-ridden-entity.patch} (100%) rename patches/server/{0733-cache-resource-keys.patch => 0732-cache-resource-keys.patch} (100%) rename patches/server/{0734-Allow-changing-the-EnderDragon-podium.patch => 0733-Allow-changing-the-EnderDragon-podium.patch} (100%) rename patches/server/{0735-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch => 0734-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch} (100%) rename patches/server/{0736-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch => 0735-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch} (100%) rename patches/server/{0737-Prevent-tile-entity-copies-loading-chunks.patch => 0736-Prevent-tile-entity-copies-loading-chunks.patch} (100%) rename patches/server/{0738-Use-username-instead-of-display-name-in-PlayerList-g.patch => 0737-Use-username-instead-of-display-name-in-PlayerList-g.patch} (92%) rename patches/server/{0739-Pass-ServerLevel-for-gamerule-callbacks.patch => 0738-Pass-ServerLevel-for-gamerule-callbacks.patch} (100%) rename patches/server/{0740-Expand-PlayerItemDamageEvent.patch => 0739-Expand-PlayerItemDamageEvent.patch} (100%) rename patches/server/{0741-WorldCreator-keepSpawnLoaded.patch => 0740-WorldCreator-keepSpawnLoaded.patch} (100%) rename patches/server/{0742-Fix-CME-in-CraftPersistentDataTypeRegistry.patch => 0741-Fix-CME-in-CraftPersistentDataTypeRegistry.patch} (100%) rename patches/server/{0743-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch => 0742-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch} (100%) rename patches/server/{0744-Add-EntityDyeEvent-and-CollarColorable-interface.patch => 0743-Add-EntityDyeEvent-and-CollarColorable-interface.patch} (100%) rename patches/server/{0745-Fire-CauldronLevelChange-on-initial-fill.patch => 0744-Fire-CauldronLevelChange-on-initial-fill.patch} (100%) rename patches/server/{0746-fix-powder-snow-cauldrons-not-turning-to-water.patch => 0745-fix-powder-snow-cauldrons-not-turning-to-water.patch} (100%) rename patches/server/{0747-Add-PlayerStopUsingItemEvent.patch => 0746-Add-PlayerStopUsingItemEvent.patch} (100%) rename patches/server/{0748-Don-t-tick-markers.patch => 0747-Don-t-tick-markers.patch} (95%) rename patches/server/{0749-Expand-FallingBlock-API.patch => 0748-Expand-FallingBlock-API.patch} (100%) rename patches/server/{0750-Do-not-accept-invalid-client-settings.patch => 0749-Do-not-accept-invalid-client-settings.patch} (100%) rename patches/server/{0751-Add-support-for-Proxy-Protocol.patch => 0750-Add-support-for-Proxy-Protocol.patch} (100%) rename patches/server/{0752-Fix-OfflinePlayer-getBedSpawnLocation.patch => 0751-Fix-OfflinePlayer-getBedSpawnLocation.patch} (100%) rename patches/server/{0753-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch => 0752-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch} (100%) rename patches/server/{0754-Sanitize-sent-BlockEntity-NBT.patch => 0753-Sanitize-sent-BlockEntity-NBT.patch} (94%) rename patches/server/{0755-Disable-component-selector-resolving-in-books-by-def.patch => 0754-Disable-component-selector-resolving-in-books-by-def.patch} (100%) rename patches/server/{0756-Prevent-entity-loading-causing-async-lookups.patch => 0755-Prevent-entity-loading-causing-async-lookups.patch} (100%) rename patches/server/{0757-Throw-exception-on-world-create-while-being-ticked.patch => 0756-Throw-exception-on-world-create-while-being-ticked.patch} (100%) rename patches/server/{0758-Dont-resent-entity-on-art-update.patch => 0757-Dont-resent-entity-on-art-update.patch} (100%) rename patches/server/{0759-Add-WardenAngerChangeEvent.patch => 0758-Add-WardenAngerChangeEvent.patch} (100%) rename patches/server/{0760-Add-option-for-strict-advancement-dimension-checks.patch => 0759-Add-option-for-strict-advancement-dimension-checks.patch} (100%) rename patches/server/{0761-Add-missing-important-BlockStateListPopulator-method.patch => 0760-Add-missing-important-BlockStateListPopulator-method.patch} (100%) rename patches/server/{0762-Nameable-Banner-API.patch => 0761-Nameable-Banner-API.patch} (100%) rename patches/server/{0763-Don-t-broadcast-messages-to-command-blocks.patch => 0762-Don-t-broadcast-messages-to-command-blocks.patch} (100%) rename patches/server/{0764-Prevent-empty-items-from-being-added-to-world.patch => 0763-Prevent-empty-items-from-being-added-to-world.patch} (100%) rename patches/server/{0765-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch => 0764-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch} (100%) rename patches/server/{0766-Add-Player-getFishHook.patch => 0765-Add-Player-getFishHook.patch} (100%) rename patches/server/{0767-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch => 0766-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch} (100%) rename patches/server/{0768-Add-various-missing-EntityDropItemEvent-calls.patch => 0767-Add-various-missing-EntityDropItemEvent-calls.patch} (100%) rename patches/server/{0769-Fix-Bee-flower-NPE.patch => 0768-Fix-Bee-flower-NPE.patch} (100%) rename patches/server/{0770-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch => 0769-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch} (100%) rename patches/server/{0771-More-Teleport-API.patch => 0770-More-Teleport-API.patch} (100%) rename patches/server/{0772-Add-EntityPortalReadyEvent.patch => 0771-Add-EntityPortalReadyEvent.patch} (100%) rename patches/server/{0773-Don-t-use-level-random-in-entity-constructors.patch => 0772-Don-t-use-level-random-in-entity-constructors.patch} (100%) rename patches/server/{0774-Send-block-entities-after-destroy-prediction.patch => 0773-Send-block-entities-after-destroy-prediction.patch} (100%) rename patches/server/{0775-Warn-on-plugins-accessing-faraway-chunks.patch => 0774-Warn-on-plugins-accessing-faraway-chunks.patch} (97%) rename patches/server/{0776-Custom-Chat-Completion-Suggestions-API.patch => 0775-Custom-Chat-Completion-Suggestions-API.patch} (100%) rename patches/server/{0777-Add-and-fix-missing-BlockFadeEvents.patch => 0776-Add-and-fix-missing-BlockFadeEvents.patch} (100%) rename patches/server/{0778-Collision-API.patch => 0777-Collision-API.patch} (89%) rename patches/server/{0779-Fix-suggest-command-message-for-brigadier-syntax-exc.patch => 0778-Fix-suggest-command-message-for-brigadier-syntax-exc.patch} (100%) rename patches/server/{0780-Block-Ticking-API.patch => 0779-Block-Ticking-API.patch} (100%) rename patches/server/{0781-Add-Velocity-IP-Forwarding-Support.patch => 0780-Add-Velocity-IP-Forwarding-Support.patch} (100%) rename patches/server/{0782-Add-NamespacedKey-biome-methods.patch => 0781-Add-NamespacedKey-biome-methods.patch} (100%) rename patches/server/{0783-Fix-plugin-loggers-on-server-shutdown.patch => 0782-Fix-plugin-loggers-on-server-shutdown.patch} (100%) rename patches/server/{0784-Stop-large-look-changes-from-crashing-the-server.patch => 0783-Stop-large-look-changes-from-crashing-the-server.patch} (100%) rename patches/server/{0785-Fire-EntityChangeBlockEvent-in-more-places.patch => 0784-Fire-EntityChangeBlockEvent-in-more-places.patch} (100%) rename patches/server/{0786-Missing-eating-regain-reason.patch => 0785-Missing-eating-regain-reason.patch} (100%) rename patches/server/{0787-Missing-effect-cause.patch => 0786-Missing-effect-cause.patch} (100%) rename patches/server/{0788-Added-byte-array-serialization-deserialization-for-P.patch => 0787-Added-byte-array-serialization-deserialization-for-P.patch} (100%) rename patches/server/{0789-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch => 0788-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch} (100%) rename patches/server/{0790-Call-BlockPhysicsEvent-more-often.patch => 0789-Call-BlockPhysicsEvent-more-often.patch} (100%) rename patches/server/{0791-Configurable-chat-thread-limit.patch => 0790-Configurable-chat-thread-limit.patch} (100%) rename patches/server/{0792-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch => 0791-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch} (100%) rename patches/server/{0793-fix-Jigsaw-block-kicking-user.patch => 0792-fix-Jigsaw-block-kicking-user.patch} (100%) rename patches/server/{0794-use-BlockFormEvent-for-mud-converting-into-clay.patch => 0793-use-BlockFormEvent-for-mud-converting-into-clay.patch} (100%) rename patches/server/{0795-Add-getDrops-to-BlockState.patch => 0794-Add-getDrops-to-BlockState.patch} (100%) rename patches/server/{0796-Fix-a-bunch-of-vanilla-bugs.patch => 0795-Fix-a-bunch-of-vanilla-bugs.patch} (99%) rename patches/server/{0797-Remove-unnecessary-onTrackingStart-during-navigation.patch => 0796-Remove-unnecessary-onTrackingStart-during-navigation.patch} (100%) rename patches/server/{0798-Fix-custom-piglin-loved-items.patch => 0797-Fix-custom-piglin-loved-items.patch} (100%) rename patches/server/{0799-EntityPickupItemEvent-fixes.patch => 0798-EntityPickupItemEvent-fixes.patch} (100%) rename patches/server/{0800-Correctly-handle-interactions-with-items-on-cooldown.patch => 0799-Correctly-handle-interactions-with-items-on-cooldown.patch} (100%) rename patches/server/{0801-Add-PlayerInventorySlotChangeEvent.patch => 0800-Add-PlayerInventorySlotChangeEvent.patch} (100%) rename patches/server/{0802-Elder-Guardian-appearance-API.patch => 0801-Elder-Guardian-appearance-API.patch} (100%) rename patches/server/{0803-Allow-changing-bed-s-occupied-property.patch => 0802-Allow-changing-bed-s-occupied-property.patch} (100%) rename patches/server/{0804-Add-entity-knockback-API.patch => 0803-Add-entity-knockback-API.patch} (100%) rename patches/server/{0805-Detect-headless-JREs.patch => 0804-Detect-headless-JREs.patch} (100%) rename patches/server/{0806-fix-entity-vehicle-collision-event-not-called.patch => 0805-fix-entity-vehicle-collision-event-not-called.patch} (100%) rename patches/server/{0807-Add-EntityToggleSitEvent.patch => 0806-Add-EntityToggleSitEvent.patch} (100%) rename patches/server/{0808-Add-fire-tick-delay-option.patch => 0807-Add-fire-tick-delay-option.patch} (100%) rename patches/server/{0809-Add-Moving-Piston-API.patch => 0808-Add-Moving-Piston-API.patch} (100%) rename patches/server/{0810-Ignore-impossible-spawn-tick.patch => 0809-Ignore-impossible-spawn-tick.patch} (100%) rename patches/server/{0811-Track-projectile-source-for-fireworks-from-dispenser.patch => 0810-Track-projectile-source-for-fireworks-from-dispenser.patch} (100%) rename patches/server/{0812-Fix-EntityArgument-suggestion-permissions-to-align-w.patch => 0811-Fix-EntityArgument-suggestion-permissions-to-align-w.patch} (100%) rename patches/server/{0813-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch => 0812-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch} (100%) rename patches/server/{0814-Add-PrePlayerAttackEntityEvent.patch => 0813-Add-PrePlayerAttackEntityEvent.patch} (100%) rename patches/server/{0815-ensure-reset-EnderDragon-boss-event-name.patch => 0814-ensure-reset-EnderDragon-boss-event-name.patch} (100%) rename patches/server/{0816-fix-MC-252817-green-map-markers-do-not-disappear.patch => 0815-fix-MC-252817-green-map-markers-do-not-disappear.patch} (100%) rename patches/server/{0817-Add-Player-Warden-Warning-API.patch => 0816-Add-Player-Warden-Warning-API.patch} (100%) rename patches/server/{0818-More-vanilla-friendly-methods-to-update-trades.patch => 0817-More-vanilla-friendly-methods-to-update-trades.patch} (100%) rename patches/server/{0819-Add-paper-dumplisteners-command.patch => 0818-Add-paper-dumplisteners-command.patch} (100%) rename patches/server/{0820-check-global-player-list-where-appropriate.patch => 0819-check-global-player-list-where-appropriate.patch} (100%) rename patches/server/{0821-Fix-async-entity-add-due-to-fungus-trees.patch => 0820-Fix-async-entity-add-due-to-fungus-trees.patch} (96%) rename patches/server/{0822-ItemStack-damage-API.patch => 0821-ItemStack-damage-API.patch} (100%) rename patches/server/{0823-Friction-API.patch => 0822-Friction-API.patch} (100%) rename patches/server/{0824-Ability-to-control-player-s-insomnia-and-phantoms.patch => 0823-Ability-to-control-player-s-insomnia-and-phantoms.patch} (100%) rename patches/server/{0825-Fix-player-kick-on-shutdown.patch => 0824-Fix-player-kick-on-shutdown.patch} (100%) rename patches/server/{0826-Sync-offhand-slot-in-menus.patch => 0825-Sync-offhand-slot-in-menus.patch} (100%) rename patches/server/{0827-Player-Entity-Tracking-Events.patch => 0826-Player-Entity-Tracking-Events.patch} (93%) rename patches/server/{0828-Limit-pet-look-distance.patch => 0827-Limit-pet-look-distance.patch} (100%) rename patches/server/{0829-Fixes-and-additions-to-the-SpawnReason-API.patch => 0828-Fixes-and-additions-to-the-SpawnReason-API.patch} (100%) rename patches/server/{0830-fix-Instruments.patch => 0829-fix-Instruments.patch} (100%) rename patches/server/{0831-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch => 0830-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch} (100%) rename patches/server/{0832-Fix-inconsistencies-in-dispense-events-regarding-sta.patch => 0831-Fix-inconsistencies-in-dispense-events-regarding-sta.patch} (100%) rename patches/server/{0833-Add-BlockLockCheckEvent.patch => 0832-Add-BlockLockCheckEvent.patch} (100%) rename patches/server/{0834-Add-Sneaking-API-for-Entities.patch => 0833-Add-Sneaking-API-for-Entities.patch} (91%) rename patches/server/{0835-Improve-logging-and-errors.patch => 0834-Improve-logging-and-errors.patch} (100%) rename patches/server/{0836-Improve-PortalEvents.patch => 0835-Improve-PortalEvents.patch} (100%) rename patches/server/{0837-Add-config-option-for-spider-worldborder-climbing.patch => 0836-Add-config-option-for-spider-worldborder-climbing.patch} (69%) rename patches/server/{0838-Add-missing-SpigotConfig-logCommands-check.patch => 0837-Add-missing-SpigotConfig-logCommands-check.patch} (100%) rename patches/server/{0839-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch => 0838-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch} (100%) rename patches/server/{0840-Flying-Fall-Damage.patch => 0839-Flying-Fall-Damage.patch} (100%) rename patches/server/{0841-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch => 0840-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch} (100%) rename patches/server/{0842-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch => 0841-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch} (58%) rename patches/server/{0843-config-for-disabling-entity-tag-tags.patch => 0842-config-for-disabling-entity-tag-tags.patch} (100%) rename patches/server/{0844-Use-single-player-info-update-packet-on-join.patch => 0843-Use-single-player-info-update-packet-on-join.patch} (97%) rename patches/server/{0845-Correctly-shrink-items-during-EntityResurrectEvent.patch => 0844-Correctly-shrink-items-during-EntityResurrectEvent.patch} (100%) rename patches/server/{0846-Win-Screen-API.patch => 0845-Win-Screen-API.patch} (100%) rename patches/server/{0847-Remove-CraftItemStack-setAmount-null-assignment.patch => 0846-Remove-CraftItemStack-setAmount-null-assignment.patch} (100%) rename patches/server/{0848-Fix-force-opening-enchantment-tables.patch => 0847-Fix-force-opening-enchantment-tables.patch} (100%) rename patches/server/{0849-Add-Entity-Body-Yaw-API.patch => 0848-Add-Entity-Body-Yaw-API.patch} (96%) rename patches/server/{0850-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => 0849-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (100%) rename patches/server/{0851-Update-the-flag-when-a-captured-block-state-is-outda.patch => 0850-Update-the-flag-when-a-captured-block-state-is-outda.patch} (83%) rename patches/server/{0852-Add-EntityFertilizeEggEvent.patch => 0851-Add-EntityFertilizeEggEvent.patch} (100%) rename patches/server/{0853-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => 0852-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (100%) rename patches/server/{0854-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => 0853-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (100%) rename patches/server/{0855-Correctly-handle-ArmorStand-invisibility.patch => 0854-Correctly-handle-ArmorStand-invisibility.patch} (100%) rename patches/server/{0856-Fix-advancement-triggers-for-entity-damage.patch => 0855-Fix-advancement-triggers-for-entity-damage.patch} (100%) rename patches/server/{0857-Fix-text-display-error-on-spawn.patch => 0856-Fix-text-display-error-on-spawn.patch} (100%) rename patches/server/{0858-Fix-inventories-returning-null-Locations.patch => 0857-Fix-inventories-returning-null-Locations.patch} (100%) rename patches/server/{0859-Add-Shearable-API.patch => 0858-Add-Shearable-API.patch} (100%) rename patches/server/{0860-Fix-SpawnEggMeta-get-setSpawnedType.patch => 0859-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/server/{0861-Fix-beehives-generating-from-using-bonemeal.patch => 0860-Fix-beehives-generating-from-using-bonemeal.patch} (100%) rename patches/server/{0862-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => 0861-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (100%) rename patches/server/{0863-Treat-sequence-violations-like-they-should-be.patch => 0862-Treat-sequence-violations-like-they-should-be.patch} (100%) rename patches/server/{0864-remove-duplicate-animate-packet-for-records.patch => 0863-remove-duplicate-animate-packet-for-records.patch} (100%) rename patches/server/{0865-Prevent-causing-expired-keys-from-impacting-new-join.patch => 0864-Prevent-causing-expired-keys-from-impacting-new-join.patch} (100%) rename patches/server/{0866-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => 0865-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (100%) rename patches/server/{0867-Use-array-for-gamerule-storage.patch => 0866-Use-array-for-gamerule-storage.patch} (100%) rename patches/server/{0868-Fix-a-couple-of-upstream-bed-issues.patch => 0867-Fix-a-couple-of-upstream-bed-issues.patch} (100%) rename patches/server/{0869-Fix-demo-flag-not-enabling-demo-mode.patch => 0868-Fix-demo-flag-not-enabling-demo-mode.patch} (100%) rename patches/server/{0870-Add-Mob-Experience-reward-API.patch => 0869-Add-Mob-Experience-reward-API.patch} (100%) rename patches/server/{0871-Break-redstone-on-top-of-trap-doors-early.patch => 0870-Break-redstone-on-top-of-trap-doors-early.patch} (100%) rename patches/server/{0872-Fix-DamageCause-for-Falling-Blocks.patch => 0871-Fix-DamageCause-for-Falling-Blocks.patch} (100%) rename patches/server/{0873-Avoid-Lazy-Initialization-for-Enum-Fields.patch => 0872-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/server/{0874-More-accurate-isInOpenWater-impl.patch => 0873-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/server/{0875-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch => 0874-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch} (100%) rename patches/server/{0876-Expand-PlayerItemMendEvent.patch => 0875-Expand-PlayerItemMendEvent.patch} (100%) rename patches/server/{0877-Refresh-ProjectileSource-for-projectiles.patch => 0876-Refresh-ProjectileSource-for-projectiles.patch} (97%) rename patches/server/{0878-Add-transient-modifier-API.patch => 0877-Add-transient-modifier-API.patch} (100%) rename patches/server/{0879-Fix-block-place-logic.patch => 0878-Fix-block-place-logic.patch} (96%) rename patches/server/{0880-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch => 0879-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch} (100%) rename patches/server/{0881-Call-BlockGrowEvent-for-missing-blocks.patch => 0880-Call-BlockGrowEvent-for-missing-blocks.patch} (100%) rename patches/server/{0882-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch => 0881-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch} (100%) rename patches/server/{0883-fix-MapLike-spam-for-missing-key-selector.patch => 0882-fix-MapLike-spam-for-missing-key-selector.patch} (100%) rename patches/server/{0884-Fix-sniffer-removeExploredLocation.patch => 0883-Fix-sniffer-removeExploredLocation.patch} (100%) rename patches/server/{0885-Add-method-to-remove-all-active-potion-effects.patch => 0884-Add-method-to-remove-all-active-potion-effects.patch} (100%) rename patches/server/{0886-Fix-incorrect-crafting-result-amount-for-fireworks.patch => 0885-Fix-incorrect-crafting-result-amount-for-fireworks.patch} (100%) rename patches/server/{0888-Add-event-for-player-editing-sign.patch => 0886-Add-event-for-player-editing-sign.patch} (100%) rename patches/server/{0889-Only-tick-item-frames-if-players-can-see-it.patch => 0887-Only-tick-item-frames-if-players-can-see-it.patch} (100%) delete mode 100644 patches/server/0887-Properly-cancel-usable-items.patch rename patches/server/{0890-Fix-cmd-permission-levels-for-command-blocks.patch => 0888-Fix-cmd-permission-levels-for-command-blocks.patch} (100%) rename patches/server/{0891-Add-option-to-disable-block-updates.patch => 0889-Add-option-to-disable-block-updates.patch} (100%) rename patches/server/{0892-Call-missing-BlockDispenseEvent.patch => 0890-Call-missing-BlockDispenseEvent.patch} (100%) rename patches/server/{0893-Don-t-load-chunks-for-supporting-block-checks.patch => 0891-Don-t-load-chunks-for-supporting-block-checks.patch} (84%) rename patches/server/{0894-Optimize-player-lookups-for-beacons.patch => 0892-Optimize-player-lookups-for-beacons.patch} (100%) rename patches/server/{0895-Add-Sign-getInteractableSideFor.patch => 0893-Add-Sign-getInteractableSideFor.patch} (100%) rename patches/server/{0896-Array-backed-synched-entity-data.patch => 0894-Array-backed-synched-entity-data.patch} (100%) rename patches/server/{0897-fix-item-meta-for-tadpole-buckets.patch => 0895-fix-item-meta-for-tadpole-buckets.patch} (100%) rename patches/server/{0898-Fix-BanList-API.patch => 0896-Fix-BanList-API.patch} (100%) rename patches/server/{0899-Determine-lava-and-water-fluid-explosion-resistance-.patch => 0897-Determine-lava-and-water-fluid-explosion-resistance-.patch} (100%) rename patches/server/{0900-Fix-possible-NPE-on-painting-creation.patch => 0898-Fix-possible-NPE-on-painting-creation.patch} (100%) rename patches/server/{0901-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch => 0899-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch} (100%) rename patches/server/{0902-ExperienceOrb-should-call-EntitySpawnEvent.patch => 0900-ExperienceOrb-should-call-EntitySpawnEvent.patch} (100%) rename patches/server/{0903-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch => 0901-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch} (100%) rename patches/server/{0904-Add-whitelist-events.patch => 0902-Add-whitelist-events.patch} (100%) rename patches/server/{0905-Implement-PlayerFailMoveEvent.patch => 0903-Implement-PlayerFailMoveEvent.patch} (98%) rename patches/server/{0906-Folia-scheduler-and-owned-region-API.patch => 0904-Folia-scheduler-and-owned-region-API.patch} (99%) rename patches/server/{0907-Only-erase-allay-memory-on-non-item-targets.patch => 0905-Only-erase-allay-memory-on-non-item-targets.patch} (100%) rename patches/server/{0908-API-for-updating-recipes-on-clients.patch => 0906-API-for-updating-recipes-on-clients.patch} (97%) rename patches/server/{0909-Fix-rotation-when-spawning-display-entities.patch => 0907-Fix-rotation-when-spawning-display-entities.patch} (100%) rename patches/server/{0910-Only-capture-actual-tree-growth.patch => 0908-Only-capture-actual-tree-growth.patch} (97%) rename patches/server/{0911-Use-correct-source-for-mushroom-block-spread-event.patch => 0909-Use-correct-source-for-mushroom-block-spread-event.patch} (100%) rename patches/server/{0912-Respect-randomizeData-on-more-entities-when-spawning.patch => 0910-Respect-randomizeData-on-more-entities-when-spawning.patch} (100%) rename patches/server/{0913-Use-correct-seed-on-api-world-load.patch => 0911-Use-correct-seed-on-api-world-load.patch} (100%) rename patches/server/{0914-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch => 0912-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch} (100%) rename patches/server/{0915-Cache-map-ids-on-item-frames.patch => 0913-Cache-map-ids-on-item-frames.patch} (100%) rename patches/server/{0916-Fix-custom-statistic-criteria-creation.patch => 0914-Fix-custom-statistic-criteria-creation.patch} (100%) rename patches/server/{0917-Bandaid-fix-for-Effect.patch => 0915-Bandaid-fix-for-Effect.patch} (100%) rename patches/server/{0918-SculkCatalyst-bloom-API.patch => 0916-SculkCatalyst-bloom-API.patch} (100%) rename patches/server/{0919-API-for-an-entity-s-scoreboard-name.patch => 0917-API-for-an-entity-s-scoreboard-name.patch} (91%) rename patches/server/{0920-Deprecate-and-replace-methods-with-old-StructureType.patch => 0918-Deprecate-and-replace-methods-with-old-StructureType.patch} (100%) rename patches/server/{0921-Don-t-tab-complete-namespaced-commands-if-send-names.patch => 0919-Don-t-tab-complete-namespaced-commands-if-send-names.patch} (95%) rename patches/server/{0922-Properly-handle-BlockBreakEvent-isDropItems.patch => 0920-Properly-handle-BlockBreakEvent-isDropItems.patch} (99%) rename patches/server/{0923-Fire-entity-death-event-for-ender-dragon.patch => 0921-Fire-entity-death-event-for-ender-dragon.patch} (100%) rename patches/server/{0924-Configurable-entity-tracking-range-by-Y-coordinate.patch => 0922-Configurable-entity-tracking-range-by-Y-coordinate.patch} (91%) rename patches/server/{0925-Add-Listing-API-for-Player.patch => 0923-Add-Listing-API-for-Player.patch} (99%) rename patches/server/{0926-Configurable-Region-Compression-Format.patch => 0924-Configurable-Region-Compression-Format.patch} (100%) rename patches/server/{0927-Add-BlockFace-to-BlockDamageEvent.patch => 0925-Add-BlockFace-to-BlockDamageEvent.patch} (96%) rename patches/server/{0928-Fix-NPE-on-Boat-getStatus.patch => 0926-Fix-NPE-on-Boat-getStatus.patch} (100%) rename patches/server/{0929-Expand-Pose-API.patch => 0927-Expand-Pose-API.patch} (91%) rename patches/server/{0930-More-DragonBattle-API.patch => 0928-More-DragonBattle-API.patch} (100%) rename patches/server/{0931-Deep-clone-unhandled-nbt-tags.patch => 0929-Deep-clone-unhandled-nbt-tags.patch} (100%) rename patches/server/{0932-Add-PlayerPickItemEvent.patch => 0930-Add-PlayerPickItemEvent.patch} (96%) rename patches/server/{0933-Allow-trident-custom-damage.patch => 0931-Allow-trident-custom-damage.patch} (100%) rename patches/server/{0934-Expose-hand-in-BlockCanBuildEvent.patch => 0932-Expose-hand-in-BlockCanBuildEvent.patch} (100%) rename patches/server/{0935-Optimize-nearest-structure-border-iteration.patch => 0933-Optimize-nearest-structure-border-iteration.patch} (100%) rename patches/server/{0936-Implement-OfflinePlayer-isConnected.patch => 0934-Implement-OfflinePlayer-isConnected.patch} (100%) rename patches/server/{0937-Fix-inventory-desync.patch => 0935-Fix-inventory-desync.patch} (100%) rename patches/server/{0938-Add-titleOverride-to-InventoryOpenEvent.patch => 0936-Add-titleOverride-to-InventoryOpenEvent.patch} (100%) rename patches/server/{0939-Configure-sniffer-egg-hatch-time.patch => 0937-Configure-sniffer-egg-hatch-time.patch} (100%) rename patches/server/{0940-Do-crystal-portal-proximity-check-before-entity-look.patch => 0938-Do-crystal-portal-proximity-check-before-entity-look.patch} (100%) rename patches/server/{0941-Skip-POI-finding-if-stuck-in-vehicle.patch => 0939-Skip-POI-finding-if-stuck-in-vehicle.patch} (100%) rename patches/server/{0942-Add-slot-sanity-checks-in-container-clicks.patch => 0940-Add-slot-sanity-checks-in-container-clicks.patch} (94%) rename patches/server/{0943-Call-BlockRedstoneEvents-for-lecterns.patch => 0941-Call-BlockRedstoneEvents-for-lecterns.patch} (100%) rename patches/server/{0944-Allow-proper-checking-of-empty-item-stacks.patch => 0942-Allow-proper-checking-of-empty-item-stacks.patch} (100%) rename patches/server/{0945-Fix-silent-equipment-change-for-mobs.patch => 0943-Fix-silent-equipment-change-for-mobs.patch} (100%) rename patches/server/{0946-Fix-spigot-s-Forced-Stats.patch => 0944-Fix-spigot-s-Forced-Stats.patch} (100%) rename patches/server/{0947-Add-missing-InventoryHolders-to-inventories.patch => 0945-Add-missing-InventoryHolders-to-inventories.patch} (100%) rename patches/server/{0948-Do-not-read-tile-entities-in-chunks-that-are-positio.patch => 0946-Do-not-read-tile-entities-in-chunks-that-are-positio.patch} (100%) rename patches/server/{0949-Add-missing-logs-for-log-ips-config-option.patch => 0947-Add-missing-logs-for-log-ips-config-option.patch} (100%) rename patches/server/{0950-Remove-Spigot-Bug-Fix-for-MC-109346.patch => 0948-Remove-Spigot-Bug-Fix-for-MC-109346.patch} (100%) rename patches/server/{0951-Fix-SuspiciousStewMeta.patch => 0949-Fix-SuspiciousStewMeta.patch} (100%) rename patches/server/{0952-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch => 0950-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch} (100%) rename patches/server/{0953-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch => 0951-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch} (100%) rename patches/server/{0954-Fix-team-sidebar-objectives-not-being-cleared.patch => 0952-Fix-team-sidebar-objectives-not-being-cleared.patch} (100%) rename patches/server/{0955-Fix-missing-map-initialize-event-call.patch => 0953-Fix-missing-map-initialize-event-call.patch} (100%) rename patches/server/{0956-Update-entity-data-when-attaching-firework-to-entity.patch => 0954-Update-entity-data-when-attaching-firework-to-entity.patch} (100%) rename patches/server/{0957-Use-correct-variable-for-initializing-CraftLootTable.patch => 0955-Use-correct-variable-for-initializing-CraftLootTable.patch} (100%) rename patches/server/{0958-Make-setVelocity-method-of-Fireballs-change-the-trav.patch => 0956-Make-setVelocity-method-of-Fireballs-change-the-trav.patch} (100%) rename patches/server/{0959-Fix-UnsafeValues-loadAdvancement.patch => 0957-Fix-UnsafeValues-loadAdvancement.patch} (100%) rename patches/server/{0960-Add-player-idle-duration-API.patch => 0958-Add-player-idle-duration-API.patch} (100%) rename patches/server/{0961-Don-t-check-if-we-can-see-non-visible-entities.patch => 0959-Don-t-check-if-we-can-see-non-visible-entities.patch} (85%) rename patches/server/{0962-Fix-NPE-in-SculkBloomEvent-world-access.patch => 0960-Fix-NPE-in-SculkBloomEvent-world-access.patch} (100%) rename patches/server/{0963-Allow-null-itemstack-for-Player-sendEquipmentChange.patch => 0961-Allow-null-itemstack-for-Player-sendEquipmentChange.patch} (100%) rename patches/server/{0964-Optimize-VarInts.patch => 0962-Optimize-VarInts.patch} (100%) rename patches/server/{0965-Add-API-to-get-the-collision-shape-of-a-block-before.patch => 0963-Add-API-to-get-the-collision-shape-of-a-block-before.patch} (100%) rename patches/server/{0966-Add-predicate-for-blocks-when-raytracing.patch => 0964-Add-predicate-for-blocks-when-raytracing.patch} (100%) rename patches/server/{0967-Broadcast-take-item-packets-with-collector-as-source.patch => 0965-Broadcast-take-item-packets-with-collector-as-source.patch} (92%) rename patches/server/{0968-Expand-LingeringPotion-API.patch => 0966-Expand-LingeringPotion-API.patch} (100%) rename patches/server/{0969-Add-MaterialTagsTest.patch => 0967-Add-MaterialTagsTest.patch} (100%) rename patches/server/{0970-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch => 0968-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch} (100%) rename patches/server/{0971-Add-hand-to-fish-event-for-all-player-interactions.patch => 0969-Add-hand-to-fish-event-for-all-player-interactions.patch} (100%) rename patches/server/{0972-Fix-several-issues-with-EntityBreedEvent.patch => 0970-Fix-several-issues-with-EntityBreedEvent.patch} (100%) rename patches/server/{0973-Add-UUID-attribute-modifier-API.patch => 0971-Add-UUID-attribute-modifier-API.patch} (100%) rename patches/server/{0974-Fix-missing-event-call-for-entity-teleport-API.patch => 0972-Fix-missing-event-call-for-entity-teleport-API.patch} (93%) rename patches/server/{0975-Lazily-create-LootContext-for-criterions.patch => 0973-Lazily-create-LootContext-for-criterions.patch} (100%) rename patches/server/{0976-Don-t-fire-sync-events-during-worldgen.patch => 0974-Don-t-fire-sync-events-during-worldgen.patch} (97%) rename patches/server/{0977-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch => 0975-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch} (100%) rename patches/server/{0978-Restore-vanilla-entity-drops-behavior.patch => 0976-Restore-vanilla-entity-drops-behavior.patch} (98%) rename patches/server/{0979-Add-Structure-check-API.patch => 0977-Add-Structure-check-API.patch} (100%) rename patches/server/{0980-Dont-resend-blocks-on-interactions.patch => 0978-Dont-resend-blocks-on-interactions.patch} (99%) rename patches/server/{0981-Keep-previous-behavior-for-setResourcePack.patch => 0979-Keep-previous-behavior-for-setResourcePack.patch} (100%) rename patches/server/{0982-properly-read-and-store-sus-effect-duration.patch => 0980-properly-read-and-store-sus-effect-duration.patch} (100%) rename patches/server/{0983-Use-correct-max-stack-size-in-crafter.patch => 0981-Use-correct-max-stack-size-in-crafter.patch} (100%) rename patches/server/{0984-add-more-scoreboard-API.patch => 0982-add-more-scoreboard-API.patch} (100%) rename patches/server/{0985-Improve-Registry.patch => 0983-Improve-Registry.patch} (100%) rename patches/server/{0986-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch => 0984-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch} (96%) rename patches/server/{0987-Add-experience-points-API.patch => 0985-Add-experience-points-API.patch} (100%) rename patches/server/{0988-Add-missing-InventoryType.patch => 0986-Add-missing-InventoryType.patch} (100%) rename patches/server/{0989-Add-drops-to-shear-events.patch => 0987-Add-drops-to-shear-events.patch} (100%) rename patches/server/{0990-Add-PlayerShieldDisableEvent.patch => 0988-Add-PlayerShieldDisableEvent.patch} (100%) rename patches/server/{0991-Add-HiddenPotionEffect-API.patch => 0989-Add-HiddenPotionEffect-API.patch} (100%) rename patches/server/{0992-Correctly-check-if-bucket-dispenses-will-succeed-for.patch => 0990-Correctly-check-if-bucket-dispenses-will-succeed-for.patch} (100%) rename patches/server/{0993-fix-ItemMeta-removing-CustomModelData.patch => 0991-fix-ItemMeta-removing-CustomModelData.patch} (100%) rename patches/server/{0994-Validate-ResourceLocation-in-NBT-reading.patch => 0992-Validate-ResourceLocation-in-NBT-reading.patch} (100%) rename patches/server/{0995-Properly-handle-experience-dropping-on-block-break.patch => 0993-Properly-handle-experience-dropping-on-block-break.patch} (97%) rename patches/server/{0996-Fixup-NamespacedKey-handling.patch => 0994-Fixup-NamespacedKey-handling.patch} (100%) rename patches/server/{0997-Reduce-allocation-of-Vec3D-by-entity-tracker.patch => 0995-Reduce-allocation-of-Vec3D-by-entity-tracker.patch} (95%) rename patches/server/{0998-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch => 0996-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch} (92%) rename patches/server/{0999-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch => 0997-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch} (59%) rename patches/server/{1000-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch => 0998-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch} (100%) rename patches/server/{1001-Optimize-Network-Manager-and-add-advanced-packet-sup.patch => 0999-Optimize-Network-Manager-and-add-advanced-packet-sup.patch} (100%) rename patches/server/{1002-Allow-Saving-of-Oversized-Chunks.patch => 1000-Allow-Saving-of-Oversized-Chunks.patch} (100%) rename patches/server/{1003-Fix-World-isChunkGenerated-calls.patch => 1001-Fix-World-isChunkGenerated-calls.patch} (98%) rename patches/server/{1004-Flat-bedrock-generator-settings.patch => 1002-Flat-bedrock-generator-settings.patch} (100%) rename patches/server/{1005-Entity-Activation-Range-2.0.patch => 1003-Entity-Activation-Range-2.0.patch} (97%) rename patches/server/{1006-Optional-per-player-mob-spawns.patch => 1004-Optional-per-player-mob-spawns.patch} (97%) rename patches/server/{1007-Anti-Xray.patch => 1005-Anti-Xray.patch} (97%) rename patches/server/{1008-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch => 1006-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch} (91%) rename patches/server/{1009-Write-SavedData-IO-async.patch => 1007-Write-SavedData-IO-async.patch} (100%) rename patches/server/{1010-Optimize-Collision-to-not-load-chunks.patch => 1008-Optimize-Collision-to-not-load-chunks.patch} (97%) rename patches/server/{1011-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => 1009-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (94%) rename patches/server/{1012-Improved-Watchdog-Support.patch => 1010-Improved-Watchdog-Support.patch} (99%) rename patches/server/{1013-Optimize-Voxel-Shape-Merging.patch => 1011-Optimize-Voxel-Shape-Merging.patch} (100%) rename patches/server/{1014-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch => 1012-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch} (98%) rename patches/server/{1015-Use-distance-map-to-optimise-entity-tracker.patch => 1013-Use-distance-map-to-optimise-entity-tracker.patch} (97%) rename patches/server/{1016-Optimize-Bit-Operations-by-inlining.patch => 1014-Optimize-Bit-Operations-by-inlining.patch} (100%) rename patches/server/{1017-Remove-streams-from-hot-code.patch => 1015-Remove-streams-from-hot-code.patch} (100%) rename patches/server/{1018-Eigencraft-redstone-implementation.patch => 1016-Eigencraft-redstone-implementation.patch} (100%) rename patches/server/{1019-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch => 1017-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch} (100%) rename patches/server/{1020-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch => 1018-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch} (100%) rename patches/server/{1021-Improve-boat-collision-performance.patch => 1019-Improve-boat-collision-performance.patch} (97%) rename patches/server/{1022-Optimise-general-POI-access.patch => 1020-Optimise-general-POI-access.patch} (99%) rename patches/server/{1023-Custom-table-implementation-for-blockstate-state-loo.patch => 1021-Custom-table-implementation-for-blockstate-state-loo.patch} (100%) rename patches/server/{1024-Execute-chunk-tasks-mid-tick.patch => 1022-Execute-chunk-tasks-mid-tick.patch} (98%) rename patches/server/{1025-Optimise-random-block-ticking.patch => 1023-Optimise-random-block-ticking.patch} (98%) rename patches/server/{1026-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch => 1024-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch} (99%) rename patches/server/{1027-Use-Velocity-compression-and-cipher-natives.patch => 1025-Use-Velocity-compression-and-cipher-natives.patch} (100%) rename patches/server/{1028-Detail-more-information-in-watchdog-dumps.patch => 1026-Detail-more-information-in-watchdog-dumps.patch} (97%) rename patches/server/{1029-Collision-optimisations.patch => 1027-Collision-optimisations.patch} (99%) rename patches/server/{1030-Optimise-collision-checking-in-player-move-packet-ha.patch => 1028-Optimise-collision-checking-in-player-move-packet-ha.patch} (99%) rename patches/server/{1031-Fix-tripwire-state-inconsistency.patch => 1029-Fix-tripwire-state-inconsistency.patch} (100%) rename patches/server/{1032-Fix-entity-type-tags-suggestions-in-selectors.patch => 1030-Fix-entity-type-tags-suggestions-in-selectors.patch} (100%) rename patches/server/{1033-Add-Alternate-Current-redstone-implementation.patch => 1031-Add-Alternate-Current-redstone-implementation.patch} (99%) rename patches/server/{1034-optimize-dirt-and-snow-spreading.patch => 1032-optimize-dirt-and-snow-spreading.patch} (100%) rename patches/server/{1035-Properly-resend-entities.patch => 1033-Properly-resend-entities.patch} (71%) rename patches/server/{1036-Optimize-Hoppers.patch => 1034-Optimize-Hoppers.patch} (100%) rename patches/server/{1037-Improve-performance-of-mass-crafts.patch => 1035-Improve-performance-of-mass-crafts.patch} (100%) rename patches/server/{1038-Actually-optimise-explosions.patch => 1036-Actually-optimise-explosions.patch} (100%) rename patches/server/{1039-Optimise-chunk-tick-iteration.patch => 1037-Optimise-chunk-tick-iteration.patch} (99%) rename patches/server/{1040-Lag-compensation-ticks.patch => 1038-Lag-compensation-ticks.patch} (98%) rename patches/server/{1041-Optimise-nearby-player-retrieval.patch => 1039-Optimise-nearby-player-retrieval.patch} (100%) rename patches/server/{0288-Handle-Oversized-Tile-Entities-in-chunks.patch => 1040-Handle-Oversized-Tile-Entities-in-chunks.patch} (84%) diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch index e7930bb85b87..c1fb4fcbe072 100644 --- a/patches/server/0009-MC-Utils.patch +++ b/patches/server/0009-MC-Utils.patch @@ -2088,7 +2088,7 @@ index 0000000000000000000000000000000000000000..a743703502cea333bd4231b6557de50e +} diff --git a/src/main/java/com/destroystokyo/paper/util/set/OptimizedSmallEnumSet.java b/src/main/java/com/destroystokyo/paper/util/set/OptimizedSmallEnumSet.java new file mode 100644 -index 0000000000000000000000000000000000000000..b3329c6fcd6758a781a51f5ba8f5052ac1c77b49 +index 0000000000000000000000000000000000000000..653cbd10c7280f3aeeaaff712d083dde461da092 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/util/set/OptimizedSmallEnumSet.java @@ -0,0 +1,71 @@ @@ -2114,7 +2114,7 @@ index 0000000000000000000000000000000000000000..b3329c6fcd6758a781a51f5ba8f5052a + this.enumClass = clazz; + } + -+ public boolean addUnchecked(final E element) { ++ public boolean add(final E element) { + final int ordinal = element.ordinal(); + final long key = 1L << ordinal; + @@ -2124,7 +2124,7 @@ index 0000000000000000000000000000000000000000..b3329c6fcd6758a781a51f5ba8f5052a + return (prev & key) == 0; + } + -+ public boolean removeUnchecked(final E element) { ++ public boolean remove(final E element) { + final int ordinal = element.ordinal(); + final long key = 1L << ordinal; + @@ -2142,7 +2142,7 @@ index 0000000000000000000000000000000000000000..b3329c6fcd6758a781a51f5ba8f5052a + return Long.bitCount(this.backingSet); + } + -+ public void addAllUnchecked(final Collection enums) { ++ public void addAll(final Collection enums) { + for (final E element : enums) { + if (element == null) { + throw new NullPointerException("Null element"); @@ -2159,7 +2159,7 @@ index 0000000000000000000000000000000000000000..b3329c6fcd6758a781a51f5ba8f5052a + return (other.backingSet & this.backingSet) != 0; + } + -+ public boolean hasElement(final E element) { ++ public boolean contains(final E element) { + return (this.backingSet & (1L << element.ordinal())) != 0; + } +} @@ -6345,7 +6345,7 @@ index 1641bdf8725df778ba91bf5cd22c1ebbb3745058..facfdbb87e89f4db33ce13233c2ba436 + // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4dfd248ba 100644 +index f083356fe490ecebdc1486784f4833d778b816f4..c721642337652ba4cf984ba3c263655b717d3b03 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -168,6 +168,62 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -6411,7 +6411,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor executor, BlockableEventLoop mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier persistentStateManagerFactory, int viewDistance, boolean dsync) { super(session.getDimensionPath(world.dimension()).resolve("region"), dataFixer, dsync); this.visibleChunkMap = this.updatingChunkMap.clone(); -@@ -221,7 +277,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -221,8 +277,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.overworldDataStorage = persistentStateManagerFactory; this.poiManager = new PoiManager(path.resolve("poi"), dataFixer, dsync, iregistrycustom, world); this.setServerViewDistance(viewDistance); @@ -6420,18 +6420,30 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 + this.regionManagers.add(this.dataRegionManager); + this.nearbyPlayers = new io.papermc.paper.util.player.NearbyPlayers(this.level); + // Paper end -+ } -+ + } + + // Paper start + // always use accessor, so folia can override + public final io.papermc.paper.util.player.NearbyPlayers getNearbyPlayers() { + return this.nearbyPlayers; - } ++ } + // Paper end - ++ protected ChunkGenerator generator() { return this.generator; -@@ -322,6 +390,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + } +@@ -246,6 +314,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + }); + } + ++ public int getMobCountNear(final ServerPlayer player, final net.minecraft.world.entity.MobCategory mobCategory) { ++ return -1; ++ } ++ + private static double euclideanDistanceSquared(ChunkPos pos, Entity entity) { + double d0 = (double) SectionPos.sectionToBlockCoord(pos.x, 8); + double d1 = (double) SectionPos.sectionToBlockCoord(pos.z, 8); +@@ -322,6 +394,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } } @@ -6447,7 +6459,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 private CompletableFuture, ChunkHolder.ChunkLoadingFailure>> getChunkRangeFuture(ChunkHolder centerChunk, int margin, IntFunction distanceToStatus) { if (margin == 0) { ChunkStatus chunkstatus = (ChunkStatus) distanceToStatus.apply(0); -@@ -418,9 +495,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -418,9 +499,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }; stringbuilder.append("Updating:").append(System.lineSeparator()); @@ -6459,7 +6471,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 CrashReport crashreport = CrashReport.forThrowable(exception, "Chunk loading"); CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Chunk loading"); -@@ -462,8 +539,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -462,8 +543,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider holder.setTicketLevel(level); } else { holder = new ChunkHolder(new ChunkPos(pos), level, this.level, this.lightEngine, this.queueSorter, this); @@ -6474,7 +6486,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 this.updatingChunkMap.put(pos, holder); this.modified = true; } -@@ -485,7 +568,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -485,7 +572,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider protected void saveAllChunks(boolean flush) { if (flush) { @@ -6483,7 +6495,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 MutableBoolean mutableboolean = new MutableBoolean(); do { -@@ -514,7 +597,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -514,7 +601,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); this.flushWorker(); } else { @@ -6492,7 +6504,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 } } -@@ -533,7 +616,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -533,7 +620,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public boolean hasWork() { @@ -6501,7 +6513,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 } private void processUnloads(BooleanSupplier shouldKeepTicking) { -@@ -544,6 +627,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -544,6 +631,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ChunkHolder playerchunk = (ChunkHolder) this.updatingChunkMap.remove(j); if (playerchunk != null) { @@ -6509,7 +6521,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 this.pendingUnloads.put(j, playerchunk); this.modified = true; ++i; -@@ -561,7 +645,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -561,7 +649,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } int l = 0; @@ -6518,7 +6530,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 while (l < 20 && shouldKeepTicking.getAsBoolean() && objectiterator.hasNext()) { if (this.saveChunkIfNeeded((ChunkHolder) objectiterator.next())) { -@@ -579,7 +663,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -579,7 +667,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (completablefuture1 != completablefuture) { this.scheduleUnload(pos, holder); } else { @@ -6531,7 +6543,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 if (ichunkaccess instanceof LevelChunk) { ((LevelChunk) ichunkaccess).setLoaded(false); } -@@ -595,7 +683,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -595,7 +687,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.lightEngine.tryScheduleUpdate(); this.progressListener.onStatusChange(ichunkaccess.getPos(), (ChunkStatus) null); this.chunkSaveCooldowns.remove(ichunkaccess.getPos().toLong()); @@ -6542,7 +6554,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 } }; -@@ -1038,7 +1128,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1038,7 +1132,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public int size() { @@ -6551,7 +6563,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 } public DistanceManager getDistanceManager() { -@@ -1046,19 +1136,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1046,19 +1140,19 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } protected Iterable getChunks() { @@ -6576,7 +6588,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 Optional optional = Optional.ofNullable(playerchunk.getLastAvailable()); Optional optional1 = optional.flatMap((ichunkaccess) -> { return ichunkaccess instanceof LevelChunk ? Optional.of((LevelChunk) ichunkaccess) : Optional.empty(); -@@ -1183,6 +1273,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1183,6 +1277,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider player.setChunkTrackingView(ChunkTrackingView.EMPTY); this.updateChunkTracking(player); @@ -6584,7 +6596,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 } else { SectionPos sectionposition = player.getLastSectionPos(); -@@ -1191,6 +1282,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1191,6 +1286,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.distanceManager.removePlayer(sectionposition, player); } @@ -6592,7 +6604,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 this.applyChunkTrackingView(player, ChunkTrackingView.EMPTY); } -@@ -1242,6 +1334,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1242,6 +1338,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.updateChunkTracking(player); } @@ -6600,7 +6612,7 @@ index f083356fe490ecebdc1486784f4833d778b816f4..a4d1136fcd75ecdf2cbd7af591d4acb4 } private void updateChunkTracking(ServerPlayer player) { -@@ -1494,7 +1587,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1494,7 +1591,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider private class ChunkDistanceManager extends DistanceManager { protected ChunkDistanceManager(Executor workerExecutor, Executor mainThreadExecutor) { @@ -7355,7 +7367,7 @@ index 3c707d6674b2594b09503b959a31c1f4ad3981e6..db61b6b0158a9bcc0e1d735e34fe3671 public BlockState getBlockState(BlockPos pos) { return Blocks.AIR.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 00ddf94c5bade8c0c486337ce920f59d63cb64e2..32afa096f148ebb546963bae7c9c9b194cb1a99c 100644 +index 00ddf94c5bade8c0c486337ce920f59d63cb64e2..d89431b476b032f3ff86097bb91b86016d4e3371 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -93,6 +93,7 @@ import org.bukkit.craftbukkit.CraftServer; @@ -7366,7 +7378,21 @@ index 00ddf94c5bade8c0c486337ce920f59d63cb64e2..32afa096f148ebb546963bae7c9c9b19 import org.bukkit.craftbukkit.block.data.CraftBlockData; import org.bukkit.craftbukkit.util.CraftSpawnCategory; import org.bukkit.craftbukkit.util.CraftNamespacedKey; -@@ -295,18 +296,52 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -279,6 +280,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + return null; + } + ++ // Paper start ++ public net.minecraft.world.phys.BlockHitResult.Type clipDirect(Vec3 start, Vec3 end, net.minecraft.world.phys.shapes.CollisionContext context) { ++ // To be patched over ++ return this.clip(new ClipContext(start, end, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, context)).getType(); ++ } ++ // Paper end ++ + public boolean isInWorldBounds(BlockPos pos) { + return !this.isOutsideBuildHeight(pos) && Level.isInWorldBoundsHorizontal(pos); + } +@@ -295,18 +303,52 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return y < -20000000 || y >= 20000000; } @@ -7383,15 +7409,14 @@ index 00ddf94c5bade8c0c486337ce920f59d63cb64e2..32afa096f148ebb546963bae7c9c9b19 } + // Paper start - if loaded - @Nullable - @Override -- public ChunkAccess getChunk(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create) { ++ @Nullable ++ @Override + public final ChunkAccess getChunkIfLoadedImmediately(int x, int z) { + return ((ServerLevel)this).chunkSource.getChunkAtIfLoadedImmediately(x, z); + } + + @Override -+ @Nullable + @Nullable + public final BlockState getBlockStateIfLoaded(BlockPos pos) { + // CraftBukkit start - tree generation + if (this.captureTreeGeneration) { @@ -7417,13 +7442,14 @@ index 00ddf94c5bade8c0c486337ce920f59d63cb64e2..32afa096f148ebb546963bae7c9c9b19 + return chunk == null ? null : chunk.getFluidState(blockposition); + } + -+ @Override + @Override +- public ChunkAccess getChunk(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create) { + public final ChunkAccess getChunk(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create) { // Paper - final for inline + // Paper end ChunkAccess ichunkaccess = this.getChunkSource().getChunk(chunkX, chunkZ, leastStatus, create); if (ichunkaccess == null && create) { -@@ -317,7 +352,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -317,7 +359,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } @Override @@ -7432,7 +7458,7 @@ index 00ddf94c5bade8c0c486337ce920f59d63cb64e2..32afa096f148ebb546963bae7c9c9b19 return this.setBlock(pos, state, flags, 512); } -@@ -555,7 +590,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -555,7 +597,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (this.isOutsideBuildHeight(pos)) { return Blocks.VOID_AIR.defaultBlockState(); } else { @@ -7566,8 +7592,25 @@ index 532a0cae6db0d830e720a72e9021aa7a8ed0f106..e5e562f75e7d4b6a750f192842940c5e this.upgradeData = upgradeData; this.levelHeightAccessor = heightLimitView; this.sections = new LevelChunkSection[heightLimitView.getSectionsCount()]; +diff --git a/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java +index ca0991b07def35b4697ba6d5569bf9a080e48a1c..2ee1658532cb00d7bcd1d11e03f19d21ca7f2a9e 100644 +--- a/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java ++++ b/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java +@@ -25,6 +25,12 @@ public class EmptyLevelChunk extends LevelChunk { + public BlockState getBlockState(BlockPos pos) { + return Blocks.VOID_AIR.defaultBlockState(); + } ++ // Paper start ++ @Override ++ public BlockState getBlockState(final int x, final int y, final int z) { ++ return Blocks.VOID_AIR.defaultBlockState(); ++ } ++ // Paper end + + @Nullable + @Override diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 57805b84054e44a3d7c95cf269316a42205bb99c..e9670e43a146288ad0e5a33dfc02b90fc1eee95b 100644 +index 57805b84054e44a3d7c95cf269316a42205bb99c..409007f6e6940e5ea92e3cbaa74e55cdee50325b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -114,6 +114,109 @@ public class LevelChunk extends ChunkAccess { @@ -7680,7 +7723,33 @@ index 57805b84054e44a3d7c95cf269316a42205bb99c..e9670e43a146288ad0e5a33dfc02b90f public LevelChunk(ServerLevel world, ProtoChunk protoChunk, @Nullable LevelChunk.PostLoadProcessor entityLoader) { this(world, protoChunk.getPos(), protoChunk.getUpgradeData(), protoChunk.unpackBlockTicks(), protoChunk.unpackFluidTicks(), protoChunk.getInhabitedTime(), protoChunk.getSections(), entityLoader, protoChunk.getBlendingData()); Iterator iterator = protoChunk.getBlockEntities().values().iterator(); -@@ -224,6 +327,18 @@ public class LevelChunk extends ChunkAccess { +@@ -181,8 +284,25 @@ public class LevelChunk extends ChunkAccess { + } + } + ++ // Paper start - Perf: Reduce instructions and provide final method ++ public BlockState getBlockState(final int x, final int y, final int z) { ++ return this.getBlockStateFinal(x, y, z); ++ } ++ public BlockState getBlockStateFinal(final int x, final int y, final int z) { ++ // Copied and modified from below ++ final int sectionIndex = this.getSectionIndex(y); ++ if (sectionIndex < 0 || sectionIndex >= this.sections.length ++ || this.sections[sectionIndex].nonEmptyBlockCount == 0) { ++ return Blocks.AIR.defaultBlockState(); ++ } ++ return this.sections[sectionIndex].states.get((y & 15) << 8 | (z & 15) << 4 | x & 15); ++ } + @Override + public BlockState getBlockState(BlockPos pos) { ++ if (true) { ++ return this.getBlockStateFinal(pos.getX(), pos.getY(), pos.getZ()); ++ } ++ // Paper end - Perf: Reduce instructions and provide final method + int i = pos.getX(); + int j = pos.getY(); + int k = pos.getZ(); +@@ -224,6 +344,18 @@ public class LevelChunk extends ChunkAccess { } } @@ -7699,7 +7768,7 @@ index 57805b84054e44a3d7c95cf269316a42205bb99c..e9670e43a146288ad0e5a33dfc02b90f @Override public FluidState getFluidState(BlockPos pos) { return this.getFluidState(pos.getX(), pos.getY(), pos.getZ()); -@@ -537,7 +652,25 @@ public class LevelChunk extends ChunkAccess { +@@ -537,7 +669,25 @@ public class LevelChunk extends ChunkAccess { // CraftBukkit start public void loadCallback() { @@ -7725,7 +7794,7 @@ index 57805b84054e44a3d7c95cf269316a42205bb99c..e9670e43a146288ad0e5a33dfc02b90f if (server != null) { /* * If it's a new world, the first few chunks are generated inside -@@ -578,6 +711,22 @@ public class LevelChunk extends ChunkAccess { +@@ -578,6 +728,22 @@ public class LevelChunk extends ChunkAccess { server.getPluginManager().callEvent(unloadEvent); // note: saving can be prevented, but not forced if no saving is actually required this.mustNotSave = !unloadEvent.isSaveChunk(); @@ -7748,6 +7817,19 @@ index 57805b84054e44a3d7c95cf269316a42205bb99c..e9670e43a146288ad0e5a33dfc02b90f } @Override +diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +index d59392c322936ce89b759ac9787c8f4f0b228af6..2d6daf76a56574c9727b404feb4f86347f04cbae 100644 +--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java ++++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +@@ -19,7 +19,7 @@ public class LevelChunkSection { + public static final int SECTION_HEIGHT = 16; + public static final int SECTION_SIZE = 4096; + public static final int BIOME_CONTAINER_BITS = 2; +- private short nonEmptyBlockCount; ++ short nonEmptyBlockCount; // Paper - package private + private short tickingBlockCount; + private short tickingFluidCount; + public final PalettedContainer states; diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java index 51a0ddcee9a9cb1040fda643a6442d2e2e15b8a0..38ec21faaa16df5485a81a581506700a5ab0a440 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java @@ -8275,6 +8357,20 @@ index 96c4f7aed548a181f6b1487e58dcf157bae52daa..837e3d6ee71566b5a6f37a4943829133 @Override public void clear() { // Create new array to reset memory usage to initial capacity +diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java +index 0c7c97f27853843ec714e47f5b570f9d09bbba14..ff422d4d4f2b764370f0ee2af13034853c1d3fe1 100644 +--- a/src/main/java/org/spigotmc/ActivationRange.java ++++ b/src/main/java/org/spigotmc/ActivationRange.java +@@ -34,6 +34,9 @@ public class ActivationRange + + public enum ActivationType + { ++ WATER, // Paper ++ FLYING_MONSTER, // Paper ++ VILLAGER, // Paper + MONSTER, + ANIMAL, + RAIDER, diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java index df29015e3d5ca49297fe87090fd6446962e59adb..e6e070db9a6ee78e65dbff6f18cb5c8784202b9f 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch index 4021cecfe85a..ebb0a225cd5f 100644 --- a/patches/server/0014-Timings-v2.patch +++ b/patches/server/0014-Timings-v2.patch @@ -974,7 +974,7 @@ index 813fd87df0dfed8fe46389db8333d1d9f409fbe4..dfb37ddb89c2f43d9f9a34a6b2d38616 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a4d1136fcd75ecdf2cbd7af591d4acb4dfd248ba..17af50aa1ab310a5f0f221e2cd4e9e902c28a092 100644 +index c721642337652ba4cf984ba3c263655b717d3b03..23e830d4cbe94a91c34ebb426311c8f861280b16 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1,8 +1,10 @@ @@ -988,7 +988,7 @@ index a4d1136fcd75ecdf2cbd7af591d4acb4dfd248ba..17af50aa1ab310a5f0f221e2cd4e9e90 import com.google.common.collect.Lists; import com.google.common.collect.Queues; import com.google.common.collect.Sets; -@@ -897,6 +899,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -901,6 +903,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ChunkStatus chunkstatus = ChunkLevel.generationStatus(chunkHolder.getTicketLevel()); return !chunkstatus.isOrAfter(ChunkStatus.FULL) ? ChunkHolder.UNLOADED_CHUNK : either.mapLeft((ichunkaccess) -> { @@ -996,7 +996,7 @@ index a4d1136fcd75ecdf2cbd7af591d4acb4dfd248ba..17af50aa1ab310a5f0f221e2cd4e9e90 ChunkPos chunkcoordintpair = chunkHolder.getPos(); ProtoChunk protochunk = (ProtoChunk) ichunkaccess; LevelChunk chunk; -@@ -921,6 +924,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -925,6 +928,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } return chunk; @@ -1004,7 +1004,7 @@ index a4d1136fcd75ecdf2cbd7af591d4acb4dfd248ba..17af50aa1ab310a5f0f221e2cd4e9e90 }); }, (runnable) -> { ProcessorHandle mailbox = this.mainThreadMailbox; -@@ -1472,6 +1476,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1476,6 +1480,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider List list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); @@ -1012,7 +1012,7 @@ index a4d1136fcd75ecdf2cbd7af591d4acb4dfd248ba..17af50aa1ab310a5f0f221e2cd4e9e90 ChunkMap.TrackedEntity playerchunkmap_entitytracker; -@@ -1496,14 +1501,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1500,14 +1505,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider playerchunkmap_entitytracker.serverEntity.sendChanges(); } } @@ -1472,7 +1472,7 @@ index b71b702471599fc8f1de42919ade8ee6a4e6247c..2e47008a8ff1bb56b752d4eb880173b9 if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { this.hurt(this.damageSources().drown(), 1.0F); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 32afa096f148ebb546963bae7c9c9b194cb1a99c..6dbc4c74b4d6b8e6c4763366e70ca9292b4a25d5 100644 +index d89431b476b032f3ff86097bb91b86016d4e3371..aa22d4024cdd0ecb1c0442ecdeae00822597362e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -91,7 +91,6 @@ import org.bukkit.Bukkit; @@ -1501,7 +1501,7 @@ index 32afa096f148ebb546963bae7c9c9b194cb1a99c..6dbc4c74b4d6b8e6c4763366e70ca929 this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime); this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); } -@@ -718,15 +717,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -725,15 +724,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.timings.tileEntityTick.stopTiming(); // Spigot this.tickingBlockEntities = false; @@ -1557,10 +1557,10 @@ index c02fa35cefc9194d1838abbe4f2dc2b226a41e41..b300d12e9e00519028b53aca9c3fb01f private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); public CraftPersistentDataContainer persistentDataContainer; diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index e9670e43a146288ad0e5a33dfc02b90fc1eee95b..93a73367e004979a015704d94a5669d154a2f71b 100644 +index 409007f6e6940e5ea92e3cbaa74e55cdee50325b..c2179ea2a16ae0fac0b59d81a57abf13f563843f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -681,6 +681,7 @@ public class LevelChunk extends ChunkAccess { +@@ -698,6 +698,7 @@ public class LevelChunk extends ChunkAccess { server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(bukkitChunk, this.needsDecoration)); if (this.needsDecoration) { @@ -1568,7 +1568,7 @@ index e9670e43a146288ad0e5a33dfc02b90fc1eee95b..93a73367e004979a015704d94a5669d1 this.needsDecoration = false; java.util.Random random = new java.util.Random(); random.setSeed(this.level.getSeed()); -@@ -700,6 +701,7 @@ public class LevelChunk extends ChunkAccess { +@@ -717,6 +718,7 @@ public class LevelChunk extends ChunkAccess { } } server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk)); @@ -2048,7 +2048,7 @@ index 72c1b7f1468c47ad7053a7ff6b3248324b2bf604..677335c3888adc25fbf3c5ec4d5a6c5e * This helper class represents the different NBT Tags. *

diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 0c7c97f27853843ec714e47f5b570f9d09bbba14..e01ef22189ce80429eb0054e416547577fd3cc5d 100644 +index ff422d4d4f2b764370f0ee2af13034853c1d3fe1..a5da6c1cae0afbde684be250e2fc3c0c32a1265b 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -27,7 +27,7 @@ import net.minecraft.world.entity.projectile.ThrownTrident; @@ -2060,7 +2060,7 @@ index 0c7c97f27853843ec714e47f5b570f9d09bbba14..e01ef22189ce80429eb0054e41654757 public class ActivationRange { -@@ -71,8 +71,8 @@ public class ActivationRange +@@ -74,8 +74,8 @@ public class ActivationRange /** * These entities are excluded from Activation range checks. * @@ -2071,7 +2071,7 @@ index 0c7c97f27853843ec714e47f5b570f9d09bbba14..e01ef22189ce80429eb0054e41654757 * @return boolean If it should always tick. */ public static boolean initializeEntityActivationState(Entity entity, SpigotWorldConfig config) -@@ -107,7 +107,7 @@ public class ActivationRange +@@ -110,7 +110,7 @@ public class ActivationRange */ public static void activateEntities(Level world) { @@ -2080,7 +2080,7 @@ index 0c7c97f27853843ec714e47f5b570f9d09bbba14..e01ef22189ce80429eb0054e41654757 final int miscActivationRange = world.spigotConfig.miscActivationRange; final int raiderActivationRange = world.spigotConfig.raiderActivationRange; final int animalActivationRange = world.spigotConfig.animalActivationRange; -@@ -134,7 +134,7 @@ public class ActivationRange +@@ -137,7 +137,7 @@ public class ActivationRange world.getEntities().get(ActivationRange.maxBB, ActivationRange::activateEntity); } @@ -2089,7 +2089,7 @@ index 0c7c97f27853843ec714e47f5b570f9d09bbba14..e01ef22189ce80429eb0054e41654757 } /** -@@ -229,10 +229,8 @@ public class ActivationRange +@@ -232,10 +232,8 @@ public class ActivationRange */ public static boolean checkIfActive(Entity entity) { @@ -2100,7 +2100,7 @@ index 0c7c97f27853843ec714e47f5b570f9d09bbba14..e01ef22189ce80429eb0054e41654757 return true; } -@@ -256,7 +254,6 @@ public class ActivationRange +@@ -259,7 +257,6 @@ public class ActivationRange { isActive = false; } diff --git a/patches/server/0016-Starlight.patch b/patches/server/0016-Starlight.patch index e4923c64b3bb..90fac0047e2c 100644 --- a/patches/server/0016-Starlight.patch +++ b/patches/server/0016-Starlight.patch @@ -4493,7 +4493,7 @@ index facfdbb87e89f4db33ce13233c2ba4366d35c15b..807a6bb1026dac2c4cd0a50afe06fd62 private final DebugBuffer chunkToSaveHistory; public int oldTicketLevel; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 17af50aa1ab310a5f0f221e2cd4e9e902c28a092..5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29 100644 +index 23e830d4cbe94a91c34ebb426311c8f861280b16..ed095afdf8be843b9a608130040739c0b21dbe0a 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -125,7 +125,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -5037,7 +5037,7 @@ index d5b1fd0ff3f64675f90dd9f7f328a106e0992d51..846ae3fd184a1d63b743aa25e0456045 return (ChunkStatus) BuiltInRegistries.CHUNK_STATUS.get(ResourceLocation.tryParse(id)); } diff --git a/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java -index ca0991b07def35b4697ba6d5569bf9a080e48a1c..f49cc61840c6588fca301b4c5c3aaeede03a323e 100644 +index 2ee1658532cb00d7bcd1d11e03f19d21ca7f2a9e..ac754827172a4de600d0a57a7d11853481a2dbf2 100644 --- a/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java @@ -21,6 +21,40 @@ public class EmptyLevelChunk extends LevelChunk { @@ -5135,7 +5135,7 @@ index 6bb508105641b5729572736c5c3f9bd6711e309a..60e760b42dd6471a229dfd45490dcf8c @Override public BlockEntity getBlockEntity(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 93a73367e004979a015704d94a5669d154a2f71b..17725dba7cbcdce00cd23c3956eaf1642d9c424f 100644 +index c2179ea2a16ae0fac0b59d81a57abf13f563843f..3e51fb9fe05d5b974ae41ccc0acbb516a07c114b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -219,6 +219,12 @@ public class LevelChunk extends ChunkAccess { @@ -5160,7 +5160,7 @@ index 93a73367e004979a015704d94a5669d154a2f71b..17725dba7cbcdce00cd23c3956eaf164 this.setLightCorrect(protoChunk.isLightCorrect()); this.unsaved = true; this.needsDecoration = true; // CraftBukkit -@@ -409,7 +415,7 @@ public class LevelChunk extends ChunkAccess { +@@ -426,7 +432,7 @@ public class LevelChunk extends ChunkAccess { ProfilerFiller gameprofilerfiller = this.level.getProfiler(); gameprofilerfiller.push("updateSkyLightSources"); diff --git a/patches/server/0018-Rewrite-chunk-system.patch b/patches/server/0018-Rewrite-chunk-system.patch index 9fe74587e14f..e74f01d43262 100644 --- a/patches/server/0018-Rewrite-chunk-system.patch +++ b/patches/server/0018-Rewrite-chunk-system.patch @@ -17522,7 +17522,7 @@ index 807a6bb1026dac2c4cd0a50afe06fd62ce23558b..2b998bdbe49bf8211b755e0eb7c1bf13 // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7bbc9820ce 100644 +index ed095afdf8be843b9a608130040739c0b21dbe0a..2a52f5fc867f35b9d94b813d5cdd92249c60ee8b 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -119,10 +119,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -17654,7 +17654,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b this.distanceManager = new ChunkMap.ChunkDistanceManager(executor, mainThreadExecutor); this.overworldDataStorage = persistentStateManagerFactory; this.poiManager = new PoiManager(path.resolve("poi"), dataFixer, dsync, iregistrycustom, world); -@@ -326,23 +298,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -330,23 +302,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } boolean isChunkTracked(ServerPlayer player, int chunkX, int chunkZ) { @@ -17684,7 +17684,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b } protected ThreadedLevelLightEngine getLightEngine() { -@@ -351,20 +315,22 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -355,20 +319,22 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @Nullable protected ChunkHolder getUpdatingChunkIfPresent(long pos) { @@ -17714,7 +17714,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b } public String getChunkDebugData(ChunkPos chunkPos) { -@@ -394,92 +360,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -398,92 +364,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper start public final int getEffectiveViewDistance() { @@ -17809,7 +17809,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b } public ReportedException debugFuturesAndCreateReportedException(IllegalStateException exception, String details) { -@@ -509,263 +395,72 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -513,263 +399,72 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public CompletableFuture> prepareEntityTickingChunk(ChunkHolder chunk) { @@ -18093,7 +18093,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b return nbt.contains("Status", 8); } -@@ -801,54 +496,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -805,54 +500,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } private CompletableFuture> scheduleChunkGeneration(ChunkHolder holder, ChunkStatus requiredStatus) { @@ -18149,7 +18149,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b } protected void releaseLightTicket(ChunkPos pos) { -@@ -859,7 +507,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -863,7 +511,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider })); } @@ -18158,7 +18158,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b ChunkStatus chunkstatus1; if (distance == 0) { -@@ -871,7 +519,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -875,7 +523,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return chunkstatus1; } @@ -18167,7 +18167,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b if (!nbt.isEmpty()) { // CraftBukkit start - these are spawned serialized (DefinedStructure) and we don't call an add event below at the moment due to ordering complexities world.addWorldGenChunkEntities(EntityType.loadEntitiesRecursive(nbt, world).filter((entity) -> { -@@ -886,111 +534,27 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -890,111 +538,27 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider needsRemoval = true; } return !needsRemoval; @@ -18284,7 +18284,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b } public int getTickingGenerated() { -@@ -998,130 +562,52 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1002,130 +566,52 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } private boolean saveChunkIfNeeded(ChunkHolder chunkHolder) { @@ -18432,7 +18432,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b } @Nullable -@@ -1144,30 +630,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1148,30 +634,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } void dumpChunks(Writer writer) throws IOException { @@ -18464,7 +18464,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b } private static String printFuture(CompletableFuture> future) { -@@ -1186,6 +649,35 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1190,6 +653,35 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } } @@ -18500,7 +18500,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b private CompletableFuture> readChunk(ChunkPos chunkPos) { return this.read(chunkPos).thenApplyAsync((optional) -> { return optional.map((nbttagcompound) -> this.upgradeChunkTag(nbttagcompound, chunkPos)); // CraftBukkit -@@ -1275,8 +767,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1279,8 +771,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.distanceManager.addPlayer(SectionPos.of((EntityAccess) player), player); } @@ -18510,7 +18510,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b this.addPlayerToDistanceMaps(player); // Paper - distance maps } else { SectionPos sectionposition = player.getLastSectionPos(); -@@ -1287,7 +778,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1291,7 +782,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } this.removePlayerFromDistanceMaps(player); // Paper - distance maps @@ -18519,7 +18519,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b } } -@@ -1335,73 +826,30 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1339,73 +830,30 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.playerMap.unIgnorePlayer(player); } @@ -18603,7 +18603,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b } public void addEntity(Entity entity) { -@@ -1465,13 +913,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1469,13 +917,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } protected void tick() { @@ -18618,7 +18618,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b List list = Lists.newArrayList(); List list1 = this.level.players(); -@@ -1580,16 +1022,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1584,16 +1026,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void waitForLightBeforeSending(ChunkPos centerPos, int radius) { @@ -18636,7 +18636,7 @@ index 5ae30cd3af88c4f4179a4dc0c94906cfbfb7ff29..5a653dffecd3877c84ac8197e1ef4b7b } private class ChunkDistanceManager extends DistanceManager { -@@ -1600,7 +1033,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1604,7 +1037,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @Override protected boolean isChunkToRemove(long pos) { @@ -21076,10 +21076,10 @@ index b6a3c75b84d9f768afee33aa0f226207b307c1c0..2ec2b1d9d987c7f31c685aec3d3c87f4 List getEntities(EntityTypeTest filter, AABB box, Predicate predicate); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 6dbc4c74b4d6b8e6c4763366e70ca9292b4a25d5..796c7ecedbf7a82697598918d484d80635fb16a8 100644 +index aa22d4024cdd0ecb1c0442ecdeae00822597362e..d3a7de8d3fd92d36d3df257cae5686fc7f61d3c3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -456,6 +456,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -463,6 +463,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if ((i & 2) != 0 && (!this.isClientSide || (i & 4) == 0) && (this.isClientSide || chunk == null || (chunk.getFullStatus() != null && chunk.getFullStatus().isOrAfter(FullChunkStatus.BLOCK_TICKING)))) { // allow chunk to be null here as chunk.isReady() is false when we send our notification during block placement this.sendBlockUpdated(blockposition, iblockdata1, iblockdata, i); @@ -21091,7 +21091,7 @@ index 6dbc4c74b4d6b8e6c4763366e70ca9292b4a25d5..796c7ecedbf7a82697598918d484d806 } if ((i & 1) != 0) { -@@ -816,7 +821,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -823,7 +828,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return this.capturedTileEntities.get(blockposition); } // CraftBukkit end @@ -21100,7 +21100,7 @@ index 6dbc4c74b4d6b8e6c4763366e70ca9292b4a25d5..796c7ecedbf7a82697598918d484d806 } public void setBlockEntity(BlockEntity blockEntity) { -@@ -907,26 +912,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -914,26 +919,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public List getEntities(@Nullable Entity except, AABB box, Predicate predicate) { this.getProfiler().incrementCounter("getEntities"); List list = Lists.newArrayList(); @@ -21128,7 +21128,7 @@ index 6dbc4c74b4d6b8e6c4763366e70ca9292b4a25d5..796c7ecedbf7a82697598918d484d806 return list; } -@@ -944,34 +930,23 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -951,34 +937,23 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public void getEntities(EntityTypeTest filter, AABB box, Predicate predicate, List result, int limit) { this.getProfiler().incrementCounter("getEntities"); @@ -21179,7 +21179,7 @@ index 6dbc4c74b4d6b8e6c4763366e70ca9292b4a25d5..796c7ecedbf7a82697598918d484d806 } @Nullable -@@ -1243,4 +1218,45 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1250,4 +1225,45 @@ public abstract class Level implements LevelAccessor, AutoCloseable { private ExplosionInteraction() {} } @@ -21333,7 +21333,7 @@ index 846ae3fd184a1d63b743aa25e045604576697c96..a907b79fd8291a0e92db138f37239d17 public int getIndex() { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403df20aae96 100644 +index 3e51fb9fe05d5b974ae41ccc0acbb516a07c114b..a664126bbcd29026e9d6770e362aa04c2c0b3fc8 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -83,6 +83,7 @@ public class LevelChunk extends ChunkAccess { @@ -21344,7 +21344,7 @@ index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403d public LevelChunk(Level world, ChunkPos pos) { this(world, pos, UpgradeData.EMPTY, new LevelChunkTicks<>(), new LevelChunkTicks<>(), 0L, (LevelChunkSection[]) null, (LevelChunk.PostLoadProcessor) null, (BlendingData) null); -@@ -656,9 +657,26 @@ public class LevelChunk extends ChunkAccess { +@@ -673,9 +674,26 @@ public class LevelChunk extends ChunkAccess { } @@ -21374,7 +21374,7 @@ index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403d int chunkX = this.chunkPos.x; int chunkZ = this.chunkPos.z; net.minecraft.server.level.ServerChunkCache chunkProvider = this.level.getChunkSource(); -@@ -673,10 +691,55 @@ public class LevelChunk extends ChunkAccess { +@@ -690,10 +708,55 @@ public class LevelChunk extends ChunkAccess { } } this.setNeighbourLoaded(0, 0, this); @@ -21432,7 +21432,7 @@ index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403d if (server != null) { /* * If it's a new world, the first few chunks are generated inside -@@ -685,6 +748,7 @@ public class LevelChunk extends ChunkAccess { +@@ -702,6 +765,7 @@ public class LevelChunk extends ChunkAccess { */ org.bukkit.Chunk bukkitChunk = new org.bukkit.craftbukkit.CraftChunk(this); server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(bukkitChunk, this.needsDecoration)); @@ -21440,7 +21440,7 @@ index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403d if (this.needsDecoration) { try (co.aikar.timings.Timing ignored = this.level.timings.chunkLoadPopulate.startTiming()) { // Paper -@@ -713,9 +777,11 @@ public class LevelChunk extends ChunkAccess { +@@ -730,9 +794,11 @@ public class LevelChunk extends ChunkAccess { } public void unloadCallback() { @@ -21453,7 +21453,7 @@ index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403d server.getPluginManager().callEvent(unloadEvent); // note: saving can be prevented, but not forced if no saving is actually required this.mustNotSave = !unloadEvent.isSaveChunk(); -@@ -737,9 +803,26 @@ public class LevelChunk extends ChunkAccess { +@@ -754,9 +820,26 @@ public class LevelChunk extends ChunkAccess { // Paper end } @@ -21481,7 +21481,7 @@ index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403d } // CraftBukkit end -@@ -808,7 +891,9 @@ public class LevelChunk extends ChunkAccess { +@@ -825,7 +908,9 @@ public class LevelChunk extends ChunkAccess { return this.blockEntities; } @@ -21491,7 +21491,7 @@ index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403d ChunkPos chunkcoordintpair = this.getPos(); for (int i = 0; i < this.postProcessing.length; ++i) { -@@ -829,6 +914,7 @@ public class LevelChunk extends ChunkAccess { +@@ -846,6 +931,7 @@ public class LevelChunk extends ChunkAccess { BlockState iblockdata1 = Block.updateFromNeighbourShapes(iblockdata, this.level, blockposition); this.level.setBlock(blockposition, iblockdata1, 20); @@ -21499,7 +21499,7 @@ index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403d } } -@@ -846,6 +932,10 @@ public class LevelChunk extends ChunkAccess { +@@ -863,6 +949,10 @@ public class LevelChunk extends ChunkAccess { this.pendingBlockEntities.clear(); this.upgradeData.upgrade(this); @@ -21510,7 +21510,7 @@ index 17725dba7cbcdce00cd23c3956eaf1642d9c424f..6fb729809dffc1c0ab6957a127f8403d } @Nullable -@@ -895,7 +985,7 @@ public class LevelChunk extends ChunkAccess { +@@ -912,7 +1002,7 @@ public class LevelChunk extends ChunkAccess { } public FullChunkStatus getFullStatus() { @@ -22959,10 +22959,10 @@ index 440660dfa70d57e94ae4eef1dce783aee5034f7e..187eda2dd40785eb09528c86718d6b4f + // Paper end } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index e01ef22189ce80429eb0054e416547577fd3cc5d..47e7fd7baf3ec6ed3ec9b5e6d73ed8611c2b1ce1 100644 +index a5da6c1cae0afbde684be250e2fc3c0c32a1265b..a5ab3e1d52ff68730a4b9069e6d25a3d31c25da5 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -132,7 +132,13 @@ public class ActivationRange +@@ -135,7 +135,13 @@ public class ActivationRange ActivationType.ANIMAL.boundingBox = player.getBoundingBox().inflate( animalActivationRange, 256, animalActivationRange ); ActivationType.MONSTER.boundingBox = player.getBoundingBox().inflate( monsterActivationRange, 256, monsterActivationRange ); diff --git a/patches/server/0034-Prevent-tile-entity-and-entity-crashes.patch b/patches/server/0034-Prevent-tile-entity-and-entity-crashes.patch index c059488d432f..746e45c7bc15 100644 --- a/patches/server/0034-Prevent-tile-entity-and-entity-crashes.patch +++ b/patches/server/0034-Prevent-tile-entity-and-entity-crashes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent tile entity and entity crashes diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e4f8318efc90f37aa478122865d0383d39896603..e68e6b5df3606cee5a14a00c5451963191ac2cd8 100644 +index 6818173e3f798b4d89a17c6934020cc929ec5e4e..5315def7ff7ba0be6c09be86453284f3aed29576 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -732,11 +732,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -739,11 +739,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { try { tickConsumer.accept(entity); } catch (Throwable throwable) { @@ -44,10 +44,10 @@ index b300d12e9e00519028b53aca9c3fb01f589eaa91..63acd109a79ed752a05df3d4f1b99309 } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 6fb729809dffc1c0ab6957a127f8403df20aae96..db3ee1f1d8429d3d646623877adc9f6920b7764f 100644 +index a664126bbcd29026e9d6770e362aa04c2c0b3fc8..92ae6e100cd70772dfc781bb630f41e94f0cdd06 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -1142,11 +1142,11 @@ public class LevelChunk extends ChunkAccess { +@@ -1159,11 +1159,11 @@ public class LevelChunk extends ChunkAccess { gameprofilerfiller.pop(); } catch (Throwable throwable) { diff --git a/patches/server/0037-Always-tick-falling-blocks.patch b/patches/server/0037-Always-tick-falling-blocks.patch index 10ac3a380043..7a7d5ab5158e 100644 --- a/patches/server/0037-Always-tick-falling-blocks.patch +++ b/patches/server/0037-Always-tick-falling-blocks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Always tick falling blocks diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 47e7fd7baf3ec6ed3ec9b5e6d73ed8611c2b1ce1..e4efed4e50188b71ff30238b3517a924b45b24b8 100644 +index a5ab3e1d52ff68730a4b9069e6d25a3d31c25da5..2cb5bbe371333f566b4d6d3ee8016857986e9af0 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -89,6 +89,7 @@ public class ActivationRange +@@ -92,6 +92,7 @@ public class ActivationRange || entity instanceof AbstractHurtingProjectile || entity instanceof LightningBolt || entity instanceof PrimedTnt diff --git a/patches/server/0049-Disable-spigot-tick-limiters.patch b/patches/server/0049-Disable-spigot-tick-limiters.patch index d70dcfc316a0..1d5c8ca84499 100644 --- a/patches/server/0049-Disable-spigot-tick-limiters.patch +++ b/patches/server/0049-Disable-spigot-tick-limiters.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable spigot tick limiters diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 989425423bb4dab3fe57ab9407bc0676675dada0..8be40065d6f0d53d5a264464fc4be208c7bad3a9 100644 +index fcf3be628e5ee6155ebc4e73c24043731f2f7894..f7407f5204a2cbfcc46987d5e0a34770b2e5abbf 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -705,9 +705,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -712,9 +712,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { boolean flag = this.tickRateManager().runsNormally(); int tilesThisCycle = 0; diff --git a/patches/server/0060-Add-exception-reporting-event.patch b/patches/server/0060-Add-exception-reporting-event.patch index adf9e7af3384..8d89dd05f777 100644 --- a/patches/server/0060-Add-exception-reporting-event.patch +++ b/patches/server/0060-Add-exception-reporting-event.patch @@ -88,7 +88,7 @@ index c6fb4c33d7ea52b88d8fc0d90748cbab7387c565..2b5b2869589991be37a4f128faabbff5 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1b5eb2685c43804e5e4014ff1b70f52652be67f5..0032914a53154d11e2d36267771fd2da6d2f1d05 100644 +index f7407f5204a2cbfcc46987d5e0a34770b2e5abbf..813a79866794bad9d0da105345641a6e9136ddf8 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1,5 +1,10 @@ @@ -102,7 +102,7 @@ index 1b5eb2685c43804e5e4014ff1b70f52652be67f5..0032914a53154d11e2d36267771fd2da import com.google.common.collect.Lists; import com.mojang.serialization.Codec; import java.io.IOException; -@@ -734,6 +739,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -741,6 +746,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Paper start - Prevent tile entity and entity crashes final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ()); MinecraftServer.LOGGER.error(msg, throwable); @@ -131,7 +131,7 @@ index 5d65baba605dd83e5f74d526aeda36d8ede8c014..604766a286d00bb4b40c20482376fe80 } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index db3ee1f1d8429d3d646623877adc9f6920b7764f..7208b7b916ff179e8dbe9925fb246e3652b4f9c2 100644 +index 92ae6e100cd70772dfc781bb630f41e94f0cdd06..40a829fa6b6410c2736af96ef1a46cf589056641 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -1,6 +1,7 @@ @@ -142,7 +142,7 @@ index db3ee1f1d8429d3d646623877adc9f6920b7764f..7208b7b916ff179e8dbe9925fb246e36 import com.google.common.collect.Maps; import com.google.common.collect.UnmodifiableIterator; import com.mojang.logging.LogUtils; -@@ -564,10 +565,16 @@ public class LevelChunk extends ChunkAccess { +@@ -581,10 +582,16 @@ public class LevelChunk extends ChunkAccess { // CraftBukkit start } else { @@ -163,7 +163,7 @@ index db3ee1f1d8429d3d646623877adc9f6920b7764f..7208b7b916ff179e8dbe9925fb246e36 // CraftBukkit end } } -@@ -1145,6 +1152,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1162,6 +1169,7 @@ public class LevelChunk extends ChunkAccess { // Paper start - Prevent tile entity and entity crashes final String msg = String.format("BlockEntity threw exception at %s:%s,%s,%s", LevelChunk.this.getLevel().getWorld().getName(), this.getPos().getX(), this.getPos().getY(), this.getPos().getZ()); net.minecraft.server.MinecraftServer.LOGGER.error(msg, throwable); diff --git a/patches/server/0070-Add-World-Util-Methods.patch b/patches/server/0070-Add-World-Util-Methods.patch index 288ee9797079..bd3012b2494f 100644 --- a/patches/server/0070-Add-World-Util-Methods.patch +++ b/patches/server/0070-Add-World-Util-Methods.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add World Util Methods Methods that can be used for other patches to help improve logic. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0032914a53154d11e2d36267771fd2da6d2f1d05..85b1e406b856f3452fe44f909fa5475196f1cf58 100644 +index 813a79866794bad9d0da105345641a6e9136ddf8..e8b2e1f45ecd13ac4bfc2c3eb09f2d397b997b78 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -345,6 +345,22 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -352,6 +352,22 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return chunk == null ? null : chunk.getFluidState(blockposition); } diff --git a/patches/server/0075-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/patches/server/0075-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch index 32f8fee31694..5db9abac5a35 100644 --- a/patches/server/0075-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch +++ b/patches/server/0075-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch @@ -30,10 +30,10 @@ index 817e0ddc8821dd112fc5aa72bbbe11fdd1b56488..181a4e0e44cd05528c66ce87b653c33d public LevelChunk getChunkIfLoaded(int x, int z) { return this.chunkSource.getChunk(x, z, false); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 85b1e406b856f3452fe44f909fa5475196f1cf58..c6c8e76a2820b3bd4724344db5e6852a745e663a 100644 +index e8b2e1f45ecd13ac4bfc2c3eb09f2d397b997b78..f711a4ef9168e05c7d795a1a831c608b19cc989c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -499,7 +499,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -506,7 +506,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam CraftWorld world = ((ServerLevel) this).getWorld(); diff --git a/patches/server/0099-Fix-global-sound-handling.patch b/patches/server/0099-Fix-global-sound-handling.patch index 65b37e92d7aa..9957b1408a44 100644 --- a/patches/server/0099-Fix-global-sound-handling.patch +++ b/patches/server/0099-Fix-global-sound-handling.patch @@ -81,10 +81,10 @@ index 5bc68514a1e8a212e2681f06b918548c0ec565b6..1977e702f6af39ebf100c1f2f2edc2d1 double deltaLength = Math.sqrt(distanceSquared); double relativeX = player.getX() + (deltaX / deltaLength) * viewDistance; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 28ff413396312df9de73805e06da70a6fc0e8201..7f0db74c7a247d313c33bafb0ec773ae8f4f3959 100644 +index d57235720e701f765dffeafaad644cf2d7207d28..945c620d9ab369d798d1abb03ad8fa4eb02cfb5a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1282,4 +1282,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1289,4 +1289,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return ret; } // Paper end diff --git a/patches/server/0113-Optimize-Level.hasChunkAt-BlockPosition-Z.patch b/patches/server/0113-Optimize-Level.hasChunkAt-BlockPosition-Z.patch index 851edacf7dc7..94ca9a49cbb7 100644 --- a/patches/server/0113-Optimize-Level.hasChunkAt-BlockPosition-Z.patch +++ b/patches/server/0113-Optimize-Level.hasChunkAt-BlockPosition-Z.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimize Level.hasChunkAt(BlockPosition)Z Reduce method invocations for World.isLoaded(BlockPosition)Z diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 7f0db74c7a247d313c33bafb0ec773ae8f4f3959..537d532a2663a0f0384a4af1ffe008dfa395cb38 100644 +index 945c620d9ab369d798d1abb03ad8fa4eb02cfb5a..b25505d7053aa6cbe8e2c10e27d9c810dd7c9529 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -346,6 +346,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -353,6 +353,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return chunk == null ? null : chunk.getFluidState(blockposition); } diff --git a/patches/server/0159-Fix-MC-117075-Block-entity-unload-lag-spike.patch b/patches/server/0159-Fix-MC-117075-Block-entity-unload-lag-spike.patch index 916911336221..eec57ecdcb78 100644 --- a/patches/server/0159-Fix-MC-117075-Block-entity-unload-lag-spike.patch +++ b/patches/server/0159-Fix-MC-117075-Block-entity-unload-lag-spike.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix MC-117075: Block entity unload lag spike diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4e1b8ce73f07b8ea12f9f2b7883cd994aed73648..0e837193b5b858d0be30974c7454cf76920d58e9 100644 +index 4e55288250fdefcd55d98f94b58ce8c2411fe1b4..6e3b4a0ace95331e318ce587cb3e03670a1f5c9d 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -732,6 +732,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -739,6 +739,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { boolean flag = this.tickRateManager().runsNormally(); int tilesThisCycle = 0; @@ -17,7 +17,7 @@ index 4e1b8ce73f07b8ea12f9f2b7883cd994aed73648..0e837193b5b858d0be30974c7454cf76 for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0; TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(this.tileTickPosition); -@@ -740,12 +742,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -747,12 +749,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (tickingblockentity.isRemoved()) { // Spigot start tilesThisCycle--; diff --git a/patches/server/0160-use-CB-BlockState-implementations-for-captured-block.patch b/patches/server/0160-use-CB-BlockState-implementations-for-captured-block.patch index 1b15ed07e5d6..13230fb7a8a4 100644 --- a/patches/server/0160-use-CB-BlockState-implementations-for-captured-block.patch +++ b/patches/server/0160-use-CB-BlockState-implementations-for-captured-block.patch @@ -18,7 +18,7 @@ the blockstate that will be valid for restoration, as opposed to dropping information on restoration when the event is cancelled. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0e837193b5b858d0be30974c7454cf76920d58e9..a349755740483148dcdc8d490943fdce74aa4434 100644 +index 6e3b4a0ace95331e318ce587cb3e03670a1f5c9d..9d2cf866cf4f0c93dea028e3673d9a51615059af 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -157,7 +157,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -30,7 +30,7 @@ index 0e837193b5b858d0be30974c7454cf76920d58e9..a349755740483148dcdc8d490943fdce public Map capturedTileEntities = new HashMap<>(); public List captureDrops; public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); -@@ -388,7 +388,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -395,7 +395,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { @@ -39,7 +39,7 @@ index 0e837193b5b858d0be30974c7454cf76920d58e9..a349755740483148dcdc8d490943fdce if (blockstate == null) { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); this.capturedBlockStates.put(pos.immutable(), blockstate); -@@ -408,7 +408,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -415,7 +415,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start - capture blockstates boolean captured = false; if (this.captureBlockStates && !this.capturedBlockStates.containsKey(pos)) { @@ -49,7 +49,7 @@ index 0e837193b5b858d0be30974c7454cf76920d58e9..a349755740483148dcdc8d490943fdce this.capturedBlockStates.put(pos.immutable(), blockstate); captured = true; } -@@ -614,7 +615,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -621,7 +622,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public BlockState getBlockState(BlockPos pos) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { diff --git a/patches/server/0165-PlayerNaturallySpawnCreaturesEvent.patch b/patches/server/0165-PlayerNaturallySpawnCreaturesEvent.patch index 87f605b172bf..602f2252d2d6 100644 --- a/patches/server/0165-PlayerNaturallySpawnCreaturesEvent.patch +++ b/patches/server/0165-PlayerNaturallySpawnCreaturesEvent.patch @@ -9,10 +9,10 @@ from triggering monster spawns on a server. Also a highly more effecient way to blanket block spawns in a world diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 5a653dffecd3877c84ac8197e1ef4b7bbc9820ce..422ef83670f7c4a2e5b0da48dc0906ad96b8ece0 100644 +index 2a52f5fc867f35b9d94b813d5cdd92249c60ee8b..b2d679ba18e5f095d1c3e0249022fc564b1a553e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -700,7 +700,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -704,7 +704,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider chunkRange = (chunkRange > this.level.spigotConfig.viewDistance) ? (byte) this.level.spigotConfig.viewDistance : chunkRange; chunkRange = (chunkRange > 8) ? 8 : chunkRange; @@ -23,7 +23,7 @@ index 5a653dffecd3877c84ac8197e1ef4b7bbc9820ce..422ef83670f7c4a2e5b0da48dc0906ad // Spigot end if (!this.distanceManager.hasPlayersNearby(chunkcoordintpair.toLong())) { return false; -@@ -715,6 +717,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -719,6 +721,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } entityplayer = (ServerPlayer) iterator.next(); diff --git a/patches/server/0218-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/patches/server/0218-Option-to-prevent-armor-stands-from-doing-entity-loo.patch index dd307e0c925e..be8a38cbae4e 100644 --- a/patches/server/0218-Option-to-prevent-armor-stands-from-doing-entity-loo.patch +++ b/patches/server/0218-Option-to-prevent-armor-stands-from-doing-entity-loo.patch @@ -17,10 +17,10 @@ index d04d0b9cbf91beb57da7e37e72f8e7c98cf6cf4c..e6e3a7ae08f7346ccbce02b9d3623948 Iterator iterator = list.iterator(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a349755740483148dcdc8d490943fdce74aa4434..9cd032be21a5239a268d41fa2d3db0f7ee2680fd 100644 +index 9d2cf866cf4f0c93dea028e3673d9a51615059af..232dfdb70e31485969a972bfad53762edacf8549 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -770,6 +770,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -777,6 +777,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Paper end } } diff --git a/patches/server/0229-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0229-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 2e132faeaa0f..9710674d3e4a 100644 --- a/patches/server/0229-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/patches/server/0229-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 422ef83670f7c4a2e5b0da48dc0906ad96b8ece0..e4936a70d3a686e5cba0ea9d878f6e09fbee713d 100644 +index b2d679ba18e5f095d1c3e0249022fc564b1a553e..304e3c177488773d488e5b82f65a7c16a3750a29 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -878,6 +878,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -882,6 +882,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } else { ChunkMap.TrackedEntity playerchunkmap_entitytracker = new ChunkMap.TrackedEntity(entity, i, j, entitytypes.trackDeltas()); @@ -16,7 +16,7 @@ index 422ef83670f7c4a2e5b0da48dc0906ad96b8ece0..e4936a70d3a686e5cba0ea9d878f6e09 this.entityMap.put(entity.getId(), playerchunkmap_entitytracker); playerchunkmap_entitytracker.updatePlayers(this.level.players()); if (entity instanceof ServerPlayer) { -@@ -920,7 +921,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -924,7 +925,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (playerchunkmap_entitytracker1 != null) { playerchunkmap_entitytracker1.broadcastRemoved(); } diff --git a/patches/server/0282-BlockDestroyEvent.patch b/patches/server/0282-BlockDestroyEvent.patch index 5eda372d62e0..86ddeb2fab6f 100644 --- a/patches/server/0282-BlockDestroyEvent.patch +++ b/patches/server/0282-BlockDestroyEvent.patch @@ -11,7 +11,7 @@ floating in the air. This can replace many uses of BlockPhysicsEvent diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2a849e7125e2a6294aab49a436eeab8e4201fd15..a5bdbf62bdeb9fd505699a92701f9ed4724b6c85 100644 +index 097f4e01dc9dc391ea96e2f36f18f6575e344346..91f2bb15e2eea792f205f04422655fc7d80a6da2 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -31,6 +31,7 @@ import net.minecraft.nbt.CompoundTag; @@ -22,7 +22,7 @@ index 2a849e7125e2a6294aab49a436eeab8e4201fd15..a5bdbf62bdeb9fd505699a92701f9ed4 import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.FullChunkStatus; import net.minecraft.server.level.ServerLevel; -@@ -584,9 +585,26 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -591,9 +592,26 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return false; } else { FluidState fluid = this.getFluidState(pos); diff --git a/patches/server/0289-Entity-getEntitySpawnReason.patch b/patches/server/0288-Entity-getEntitySpawnReason.patch similarity index 100% rename from patches/server/0289-Entity-getEntitySpawnReason.patch rename to patches/server/0288-Entity-getEntitySpawnReason.patch diff --git a/patches/server/0290-Fire-event-on-GS4-query.patch b/patches/server/0289-Fire-event-on-GS4-query.patch similarity index 100% rename from patches/server/0290-Fire-event-on-GS4-query.patch rename to patches/server/0289-Fire-event-on-GS4-query.patch diff --git a/patches/server/0291-Add-PlayerPostRespawnEvent.patch b/patches/server/0290-Add-PlayerPostRespawnEvent.patch similarity index 100% rename from patches/server/0291-Add-PlayerPostRespawnEvent.patch rename to patches/server/0290-Add-PlayerPostRespawnEvent.patch diff --git a/patches/server/0292-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch b/patches/server/0291-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch similarity index 100% rename from patches/server/0292-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch rename to patches/server/0291-don-t-go-below-0-for-pickupDelay-breaks-picking-up-i.patch diff --git a/patches/server/0293-Server-Tick-Events.patch b/patches/server/0292-Server-Tick-Events.patch similarity index 100% rename from patches/server/0293-Server-Tick-Events.patch rename to patches/server/0292-Server-Tick-Events.patch diff --git a/patches/server/0294-PlayerDeathEvent-getItemsToKeep.patch b/patches/server/0293-PlayerDeathEvent-getItemsToKeep.patch similarity index 100% rename from patches/server/0294-PlayerDeathEvent-getItemsToKeep.patch rename to patches/server/0293-PlayerDeathEvent-getItemsToKeep.patch diff --git a/patches/server/0295-Optimize-Captured-BlockEntity-Lookup.patch b/patches/server/0294-Optimize-Captured-BlockEntity-Lookup.patch similarity index 91% rename from patches/server/0295-Optimize-Captured-BlockEntity-Lookup.patch rename to patches/server/0294-Optimize-Captured-BlockEntity-Lookup.patch index e3fa18dffb3b..fa5dc5458578 100644 --- a/patches/server/0295-Optimize-Captured-BlockEntity-Lookup.patch +++ b/patches/server/0294-Optimize-Captured-BlockEntity-Lookup.patch @@ -10,10 +10,10 @@ Optimize to check if the captured list even has values in it, and also to just do a get call since the value can never be null. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a5bdbf62bdeb9fd505699a92701f9ed4724b6c85..e51f4df5b6fcd28e681a77a1aa3a9eeb0c463e1a 100644 +index 91f2bb15e2eea792f205f04422655fc7d80a6da2..ee237d0e57cbb9b8fe2ae3c84fa7d7a964ad73b9 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -913,9 +913,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -920,9 +920,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Nullable public BlockEntity getBlockEntity(BlockPos blockposition, boolean validate) { diff --git a/patches/server/0296-Add-Heightmap-API.patch b/patches/server/0295-Add-Heightmap-API.patch similarity index 100% rename from patches/server/0296-Add-Heightmap-API.patch rename to patches/server/0295-Add-Heightmap-API.patch diff --git a/patches/server/0297-Mob-Spawner-API-Enhancements.patch b/patches/server/0296-Mob-Spawner-API-Enhancements.patch similarity index 100% rename from patches/server/0297-Mob-Spawner-API-Enhancements.patch rename to patches/server/0296-Mob-Spawner-API-Enhancements.patch diff --git a/patches/server/0298-Fix-CB-call-to-changed-postToMainThread-method.patch b/patches/server/0297-Fix-CB-call-to-changed-postToMainThread-method.patch similarity index 100% rename from patches/server/0298-Fix-CB-call-to-changed-postToMainThread-method.patch rename to patches/server/0297-Fix-CB-call-to-changed-postToMainThread-method.patch diff --git a/patches/server/0299-Fix-sounds-when-item-frames-are-modified-MC-123450.patch b/patches/server/0298-Fix-sounds-when-item-frames-are-modified-MC-123450.patch similarity index 100% rename from patches/server/0299-Fix-sounds-when-item-frames-are-modified-MC-123450.patch rename to patches/server/0298-Fix-sounds-when-item-frames-are-modified-MC-123450.patch diff --git a/patches/server/0300-Implement-CraftBlockSoundGroup.patch b/patches/server/0299-Implement-CraftBlockSoundGroup.patch similarity index 100% rename from patches/server/0300-Implement-CraftBlockSoundGroup.patch rename to patches/server/0299-Implement-CraftBlockSoundGroup.patch diff --git a/patches/server/0301-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/patches/server/0300-Configurable-Keep-Spawn-Loaded-range-per-world.patch similarity index 100% rename from patches/server/0301-Configurable-Keep-Spawn-Loaded-range-per-world.patch rename to patches/server/0300-Configurable-Keep-Spawn-Loaded-range-per-world.patch diff --git a/patches/server/0302-Expose-the-internal-current-tick.patch b/patches/server/0301-Expose-the-internal-current-tick.patch similarity index 100% rename from patches/server/0302-Expose-the-internal-current-tick.patch rename to patches/server/0301-Expose-the-internal-current-tick.patch diff --git a/patches/server/0303-Show-blockstate-location-if-we-failed-to-read-it.patch b/patches/server/0302-Show-blockstate-location-if-we-failed-to-read-it.patch similarity index 100% rename from patches/server/0303-Show-blockstate-location-if-we-failed-to-read-it.patch rename to patches/server/0302-Show-blockstate-location-if-we-failed-to-read-it.patch diff --git a/patches/server/0304-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch b/patches/server/0303-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch similarity index 100% rename from patches/server/0304-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch rename to patches/server/0303-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch diff --git a/patches/server/0305-Configurable-projectile-relative-velocity.patch b/patches/server/0304-Configurable-projectile-relative-velocity.patch similarity index 100% rename from patches/server/0305-Configurable-projectile-relative-velocity.patch rename to patches/server/0304-Configurable-projectile-relative-velocity.patch diff --git a/patches/server/0306-offset-item-frame-ticking.patch b/patches/server/0305-offset-item-frame-ticking.patch similarity index 100% rename from patches/server/0306-offset-item-frame-ticking.patch rename to patches/server/0305-offset-item-frame-ticking.patch diff --git a/patches/server/0307-Prevent-consuming-the-wrong-itemstack.patch b/patches/server/0306-Prevent-consuming-the-wrong-itemstack.patch similarity index 100% rename from patches/server/0307-Prevent-consuming-the-wrong-itemstack.patch rename to patches/server/0306-Prevent-consuming-the-wrong-itemstack.patch diff --git a/patches/server/0308-Dont-send-unnecessary-sign-update.patch b/patches/server/0307-Dont-send-unnecessary-sign-update.patch similarity index 100% rename from patches/server/0308-Dont-send-unnecessary-sign-update.patch rename to patches/server/0307-Dont-send-unnecessary-sign-update.patch diff --git a/patches/server/0309-Add-option-to-disable-pillager-patrols.patch b/patches/server/0308-Add-option-to-disable-pillager-patrols.patch similarity index 100% rename from patches/server/0309-Add-option-to-disable-pillager-patrols.patch rename to patches/server/0308-Add-option-to-disable-pillager-patrols.patch diff --git a/patches/server/0310-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch b/patches/server/0309-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch similarity index 100% rename from patches/server/0310-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch rename to patches/server/0309-Prevent-sync-chunk-loads-when-villagers-try-to-find-.patch diff --git a/patches/server/0311-MC-145656-Fix-Follow-Range-Initial-Target.patch b/patches/server/0310-MC-145656-Fix-Follow-Range-Initial-Target.patch similarity index 100% rename from patches/server/0311-MC-145656-Fix-Follow-Range-Initial-Target.patch rename to patches/server/0310-MC-145656-Fix-Follow-Range-Initial-Target.patch diff --git a/patches/server/0312-Duplicate-UUID-Resolve-Option.patch b/patches/server/0311-Duplicate-UUID-Resolve-Option.patch similarity index 95% rename from patches/server/0312-Duplicate-UUID-Resolve-Option.patch rename to patches/server/0311-Duplicate-UUID-Resolve-Option.patch index ca4f4c1e6e50..a21df3ae41cf 100644 --- a/patches/server/0312-Duplicate-UUID-Resolve-Option.patch +++ b/patches/server/0311-Duplicate-UUID-Resolve-Option.patch @@ -33,10 +33,10 @@ But for those who are ok with leaving this inconsistent behavior, you may use WA It is recommended you regenerate the entities, as these were legit entities, and deserve your love. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index e4936a70d3a686e5cba0ea9d878f6e09fbee713d..2e6ff171ea9ca9159509e1bbd59f076b63c92776 100644 +index 304e3c177488773d488e5b82f65a7c16a3750a29..1ce59bd654cf4cb68d510b0f6a8d1a72d2761bf7 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -533,6 +533,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -537,6 +537,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.discard(); needsRemoval = true; } @@ -44,7 +44,7 @@ index e4936a70d3a686e5cba0ea9d878f6e09fbee713d..2e6ff171ea9ca9159509e1bbd59f076b return !needsRemoval; }), position); // Paper - rewrite chunk system // CraftBukkit end -@@ -544,6 +545,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -548,6 +549,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider throw new UnsupportedOperationException(); // Paper - rewrite chunk system } diff --git a/patches/server/0313-PlayerDeathEvent-shouldDropExperience.patch b/patches/server/0312-PlayerDeathEvent-shouldDropExperience.patch similarity index 100% rename from patches/server/0313-PlayerDeathEvent-shouldDropExperience.patch rename to patches/server/0312-PlayerDeathEvent-shouldDropExperience.patch diff --git a/patches/server/0314-Prevent-bees-loading-chunks-checking-hive-position.patch b/patches/server/0313-Prevent-bees-loading-chunks-checking-hive-position.patch similarity index 100% rename from patches/server/0314-Prevent-bees-loading-chunks-checking-hive-position.patch rename to patches/server/0313-Prevent-bees-loading-chunks-checking-hive-position.patch diff --git a/patches/server/0315-Don-t-load-Chunks-from-Hoppers-and-other-things.patch b/patches/server/0314-Don-t-load-Chunks-from-Hoppers-and-other-things.patch similarity index 100% rename from patches/server/0315-Don-t-load-Chunks-from-Hoppers-and-other-things.patch rename to patches/server/0314-Don-t-load-Chunks-from-Hoppers-and-other-things.patch diff --git a/patches/server/0316-Optimise-EntityGetter-getPlayerByUUID.patch b/patches/server/0315-Optimise-EntityGetter-getPlayerByUUID.patch similarity index 100% rename from patches/server/0316-Optimise-EntityGetter-getPlayerByUUID.patch rename to patches/server/0315-Optimise-EntityGetter-getPlayerByUUID.patch diff --git a/patches/server/0317-Fix-items-not-falling-correctly.patch b/patches/server/0316-Fix-items-not-falling-correctly.patch similarity index 94% rename from patches/server/0317-Fix-items-not-falling-correctly.patch rename to patches/server/0316-Fix-items-not-falling-correctly.patch index cd8d9ee71c5d..4c7e19ae3c6e 100644 --- a/patches/server/0317-Fix-items-not-falling-correctly.patch +++ b/patches/server/0316-Fix-items-not-falling-correctly.patch @@ -28,10 +28,10 @@ index 9badb48b6004c5799132ed70ddcc767bdd72510c..7d12bedc4b80b9bcf50f468a9204191b float f1 = 0.98F; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index e4efed4e50188b71ff30238b3517a924b45b24b8..d5374072a97f791964033d107f023b3cc657b343 100644 +index 2cb5bbe371333f566b4d6d3ee8016857986e9af0..f60eb4bf10c32d2d92fa24992ed20525f0f0f781 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -257,7 +257,7 @@ public class ActivationRange +@@ -260,7 +260,7 @@ public class ActivationRange isActive = true; } // Add a little performance juice to active entities. Skip 1/4 if not immune. diff --git a/patches/server/0318-Optimize-call-to-getFluid-for-explosions.patch b/patches/server/0317-Optimize-call-to-getFluid-for-explosions.patch similarity index 100% rename from patches/server/0318-Optimize-call-to-getFluid-for-explosions.patch rename to patches/server/0317-Optimize-call-to-getFluid-for-explosions.patch diff --git a/patches/server/0319-Fix-last-firework-in-stack-not-having-effects-when-d.patch b/patches/server/0318-Fix-last-firework-in-stack-not-having-effects-when-d.patch similarity index 100% rename from patches/server/0319-Fix-last-firework-in-stack-not-having-effects-when-d.patch rename to patches/server/0318-Fix-last-firework-in-stack-not-having-effects-when-d.patch diff --git a/patches/server/0320-Guard-against-serializing-mismatching-chunk-coordina.patch b/patches/server/0319-Guard-against-serializing-mismatching-chunk-coordina.patch similarity index 100% rename from patches/server/0320-Guard-against-serializing-mismatching-chunk-coordina.patch rename to patches/server/0319-Guard-against-serializing-mismatching-chunk-coordina.patch diff --git a/patches/server/0321-Alternative-item-despawn-rate.patch b/patches/server/0320-Alternative-item-despawn-rate.patch similarity index 100% rename from patches/server/0321-Alternative-item-despawn-rate.patch rename to patches/server/0320-Alternative-item-despawn-rate.patch diff --git a/patches/server/0322-Tracking-Range-Improvements.patch b/patches/server/0321-Tracking-Range-Improvements.patch similarity index 95% rename from patches/server/0322-Tracking-Range-Improvements.patch rename to patches/server/0321-Tracking-Range-Improvements.patch index 4975d3185720..e0feadd2bf46 100644 --- a/patches/server/0322-Tracking-Range-Improvements.patch +++ b/patches/server/0321-Tracking-Range-Improvements.patch @@ -8,10 +8,10 @@ Sets tracking range of watermobs to animals instead of misc and simplifies code Also ignores Enderdragon, defaulting it to Mojang's setting diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 2e6ff171ea9ca9159509e1bbd59f076b63c92776..4b11a14bd6ba6d90c93db1e5733120bb319c9a48 100644 +index 1ce59bd654cf4cb68d510b0f6a8d1a72d2761bf7..c96b20cdd87596b6ff73478d262acdf22361858b 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1199,6 +1199,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1203,6 +1203,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider while (iterator.hasNext()) { Entity entity = (Entity) iterator.next(); int j = entity.getType().clientTrackingRange() * 16; diff --git a/patches/server/0323-Fix-items-vanishing-through-end-portal.patch b/patches/server/0322-Fix-items-vanishing-through-end-portal.patch similarity index 100% rename from patches/server/0323-Fix-items-vanishing-through-end-portal.patch rename to patches/server/0322-Fix-items-vanishing-through-end-portal.patch diff --git a/patches/server/0324-Bees-get-gravity-in-void.-Fixes-MC-167279.patch b/patches/server/0323-Bees-get-gravity-in-void.-Fixes-MC-167279.patch similarity index 100% rename from patches/server/0324-Bees-get-gravity-in-void.-Fixes-MC-167279.patch rename to patches/server/0323-Bees-get-gravity-in-void.-Fixes-MC-167279.patch diff --git a/patches/server/0325-Improve-Block-breakNaturally-API.patch b/patches/server/0324-Improve-Block-breakNaturally-API.patch similarity index 100% rename from patches/server/0325-Improve-Block-breakNaturally-API.patch rename to patches/server/0324-Improve-Block-breakNaturally-API.patch diff --git a/patches/server/0326-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/patches/server/0325-Optimise-getChunkAt-calls-for-loaded-chunks.patch similarity index 100% rename from patches/server/0326-Optimise-getChunkAt-calls-for-loaded-chunks.patch rename to patches/server/0325-Optimise-getChunkAt-calls-for-loaded-chunks.patch diff --git a/patches/server/0327-Add-debug-for-sync-chunk-loads.patch b/patches/server/0326-Add-debug-for-sync-chunk-loads.patch similarity index 100% rename from patches/server/0327-Add-debug-for-sync-chunk-loads.patch rename to patches/server/0326-Add-debug-for-sync-chunk-loads.patch diff --git a/patches/server/0328-Improve-java-version-check.patch b/patches/server/0327-Improve-java-version-check.patch similarity index 100% rename from patches/server/0328-Improve-java-version-check.patch rename to patches/server/0327-Improve-java-version-check.patch diff --git a/patches/server/0329-Add-ThrownEggHatchEvent.patch b/patches/server/0328-Add-ThrownEggHatchEvent.patch similarity index 100% rename from patches/server/0329-Add-ThrownEggHatchEvent.patch rename to patches/server/0328-Add-ThrownEggHatchEvent.patch diff --git a/patches/server/0330-Entity-Jump-API.patch b/patches/server/0329-Entity-Jump-API.patch similarity index 98% rename from patches/server/0330-Entity-Jump-API.patch rename to patches/server/0329-Entity-Jump-API.patch index 6cb6c184cfc1..7d6f7e1c12db 100644 --- a/patches/server/0330-Entity-Jump-API.patch +++ b/patches/server/0329-Entity-Jump-API.patch @@ -3,6 +3,8 @@ From: BillyGalbreath Date: Sat, 8 Feb 2020 23:26:11 -0600 Subject: [PATCH] Entity Jump API +== AT == +public net.minecraft.world.entity.LivingEntity jumping diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java index e06aa636bf4e18ca2810e0626f427839cd2bce88..bc51c6d8b39907d89a4f65cd7a8266df1fceab8c 100644 diff --git a/patches/server/0331-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/server/0330-Add-option-to-nerf-pigmen-from-nether-portals.patch similarity index 100% rename from patches/server/0331-Add-option-to-nerf-pigmen-from-nether-portals.patch rename to patches/server/0330-Add-option-to-nerf-pigmen-from-nether-portals.patch diff --git a/patches/server/0332-Make-the-GUI-graph-fancier.patch b/patches/server/0331-Make-the-GUI-graph-fancier.patch similarity index 100% rename from patches/server/0332-Make-the-GUI-graph-fancier.patch rename to patches/server/0331-Make-the-GUI-graph-fancier.patch diff --git a/patches/server/0333-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0332-add-hand-to-BlockMultiPlaceEvent.patch similarity index 100% rename from patches/server/0333-add-hand-to-BlockMultiPlaceEvent.patch rename to patches/server/0332-add-hand-to-BlockMultiPlaceEvent.patch diff --git a/patches/server/0334-Validate-tripwire-hook-placement-before-update.patch b/patches/server/0333-Validate-tripwire-hook-placement-before-update.patch similarity index 100% rename from patches/server/0334-Validate-tripwire-hook-placement-before-update.patch rename to patches/server/0333-Validate-tripwire-hook-placement-before-update.patch diff --git a/patches/server/0335-Add-option-to-allow-iron-golems-to-spawn-in-air.patch b/patches/server/0334-Add-option-to-allow-iron-golems-to-spawn-in-air.patch similarity index 100% rename from patches/server/0335-Add-option-to-allow-iron-golems-to-spawn-in-air.patch rename to patches/server/0334-Add-option-to-allow-iron-golems-to-spawn-in-air.patch diff --git a/patches/server/0336-Configurable-chance-of-villager-zombie-infection.patch b/patches/server/0335-Configurable-chance-of-villager-zombie-infection.patch similarity index 100% rename from patches/server/0336-Configurable-chance-of-villager-zombie-infection.patch rename to patches/server/0335-Configurable-chance-of-villager-zombie-infection.patch diff --git a/patches/server/0337-Optimise-Chunk-getFluid.patch b/patches/server/0336-Optimise-Chunk-getFluid.patch similarity index 89% rename from patches/server/0337-Optimise-Chunk-getFluid.patch rename to patches/server/0336-Optimise-Chunk-getFluid.patch index a6d2c62b447a..68b01c18b824 100644 --- a/patches/server/0337-Optimise-Chunk-getFluid.patch +++ b/patches/server/0336-Optimise-Chunk-getFluid.patch @@ -8,10 +8,10 @@ faster on its own, however removing the try catch makes it easier to inline due to code size diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 31d2de67d3facf00491814f775ef1468b33eb51b..749a056c17efb0788ac671d536658fc84b105ff2 100644 +index a086e14729fbc3a7ad40807828a23594d41dabfb..673da3c93291c70ed83b1a06a068e4854fc4d32b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -360,18 +360,20 @@ public class LevelChunk extends ChunkAccess { +@@ -377,18 +377,20 @@ public class LevelChunk extends ChunkAccess { } public FluidState getFluidState(int x, int y, int z) { @@ -38,7 +38,7 @@ index 31d2de67d3facf00491814f775ef1468b33eb51b..749a056c17efb0788ac671d536658fc8 } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Getting fluid state"); CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Block being got"); -@@ -381,6 +383,7 @@ public class LevelChunk extends ChunkAccess { +@@ -398,6 +400,7 @@ public class LevelChunk extends ChunkAccess { }); throw new ReportedException(crashreport); } @@ -47,7 +47,7 @@ index 31d2de67d3facf00491814f775ef1468b33eb51b..749a056c17efb0788ac671d536658fc8 // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index d59392c322936ce89b759ac9787c8f4f0b228af6..ea2fb64ff15af1cbb7b3f59386fb7a40f54e9b4f 100644 +index 2d6daf76a56574c9727b404feb4f86347f04cbae..b606e33f8b64eaba28c008cc353d88aa45549e31 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -43,7 +43,7 @@ public class LevelChunkSection { diff --git a/patches/server/0338-Set-spigots-verbose-world-setting-to-false-by-def.patch b/patches/server/0337-Set-spigots-verbose-world-setting-to-false-by-def.patch similarity index 100% rename from patches/server/0338-Set-spigots-verbose-world-setting-to-false-by-def.patch rename to patches/server/0337-Set-spigots-verbose-world-setting-to-false-by-def.patch diff --git a/patches/server/0339-Add-tick-times-API-and-mspt-command.patch b/patches/server/0338-Add-tick-times-API-and-mspt-command.patch similarity index 100% rename from patches/server/0339-Add-tick-times-API-and-mspt-command.patch rename to patches/server/0338-Add-tick-times-API-and-mspt-command.patch diff --git a/patches/server/0340-Expose-MinecraftServer-isRunning.patch b/patches/server/0339-Expose-MinecraftServer-isRunning.patch similarity index 100% rename from patches/server/0340-Expose-MinecraftServer-isRunning.patch rename to patches/server/0339-Expose-MinecraftServer-isRunning.patch diff --git a/patches/server/0341-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/server/0340-Add-Raw-Byte-ItemStack-Serialization.patch similarity index 100% rename from patches/server/0341-Add-Raw-Byte-ItemStack-Serialization.patch rename to patches/server/0340-Add-Raw-Byte-ItemStack-Serialization.patch diff --git a/patches/server/0342-Pillager-patrol-spawn-settings-and-per-player-option.patch b/patches/server/0341-Pillager-patrol-spawn-settings-and-per-player-option.patch similarity index 100% rename from patches/server/0342-Pillager-patrol-spawn-settings-and-per-player-option.patch rename to patches/server/0341-Pillager-patrol-spawn-settings-and-per-player-option.patch diff --git a/patches/server/0343-Remote-Connections-shouldn-t-hold-up-shutdown.patch b/patches/server/0342-Remote-Connections-shouldn-t-hold-up-shutdown.patch similarity index 100% rename from patches/server/0343-Remote-Connections-shouldn-t-hold-up-shutdown.patch rename to patches/server/0342-Remote-Connections-shouldn-t-hold-up-shutdown.patch diff --git a/patches/server/0344-Do-not-allow-bees-to-load-chunks-for-beehives.patch b/patches/server/0343-Do-not-allow-bees-to-load-chunks-for-beehives.patch similarity index 100% rename from patches/server/0344-Do-not-allow-bees-to-load-chunks-for-beehives.patch rename to patches/server/0343-Do-not-allow-bees-to-load-chunks-for-beehives.patch diff --git a/patches/server/0345-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/server/0344-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch similarity index 95% rename from patches/server/0345-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch rename to patches/server/0344-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch index 3cb95d3899ca..92b79f6f56f8 100644 --- a/patches/server/0345-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch +++ b/patches/server/0344-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch @@ -7,10 +7,10 @@ Suspected case would be around the technique used in .stopRiding Stack will identify any causer of this and warn instead of crashing. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 4b11a14bd6ba6d90c93db1e5733120bb319c9a48..ad98c74dc6d032bedd01fffd9cdb6c8f8a267c7e 100644 +index c96b20cdd87596b6ff73478d262acdf22361858b..397fcc5f3835418bb31998b0b0cdce9427a017a2 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -905,6 +905,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -909,6 +909,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void addEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity track"); // Spigot diff --git a/patches/server/0346-Don-t-tick-dead-players.patch b/patches/server/0345-Don-t-tick-dead-players.patch similarity index 100% rename from patches/server/0346-Don-t-tick-dead-players.patch rename to patches/server/0345-Don-t-tick-dead-players.patch diff --git a/patches/server/0347-Dead-Player-s-shouldn-t-be-able-to-move.patch b/patches/server/0346-Dead-Player-s-shouldn-t-be-able-to-move.patch similarity index 100% rename from patches/server/0347-Dead-Player-s-shouldn-t-be-able-to-move.patch rename to patches/server/0346-Dead-Player-s-shouldn-t-be-able-to-move.patch diff --git a/patches/server/0348-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0347-Don-t-move-existing-players-to-world-spawn.patch similarity index 100% rename from patches/server/0348-Don-t-move-existing-players-to-world-spawn.patch rename to patches/server/0347-Don-t-move-existing-players-to-world-spawn.patch diff --git a/patches/server/0349-Optimize-Pathfinding.patch b/patches/server/0348-Optimize-Pathfinding.patch similarity index 100% rename from patches/server/0349-Optimize-Pathfinding.patch rename to patches/server/0348-Optimize-Pathfinding.patch diff --git a/patches/server/0350-Reduce-Either-Optional-allocation.patch b/patches/server/0349-Reduce-Either-Optional-allocation.patch similarity index 100% rename from patches/server/0350-Reduce-Either-Optional-allocation.patch rename to patches/server/0349-Reduce-Either-Optional-allocation.patch diff --git a/patches/server/0351-Reduce-memory-footprint-of-CompoundTag.patch b/patches/server/0350-Reduce-memory-footprint-of-CompoundTag.patch similarity index 100% rename from patches/server/0351-Reduce-memory-footprint-of-CompoundTag.patch rename to patches/server/0350-Reduce-memory-footprint-of-CompoundTag.patch diff --git a/patches/server/0352-Prevent-opening-inventories-when-frozen.patch b/patches/server/0351-Prevent-opening-inventories-when-frozen.patch similarity index 100% rename from patches/server/0352-Prevent-opening-inventories-when-frozen.patch rename to patches/server/0351-Prevent-opening-inventories-when-frozen.patch diff --git a/patches/server/0353-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0352-Don-t-run-entity-collision-code-if-not-needed.patch similarity index 100% rename from patches/server/0353-Don-t-run-entity-collision-code-if-not-needed.patch rename to patches/server/0352-Don-t-run-entity-collision-code-if-not-needed.patch diff --git a/patches/server/0354-Implement-Player-Client-Options-API.patch b/patches/server/0353-Implement-Player-Client-Options-API.patch similarity index 100% rename from patches/server/0354-Implement-Player-Client-Options-API.patch rename to patches/server/0353-Implement-Player-Client-Options-API.patch diff --git a/patches/server/0355-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/patches/server/0354-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch similarity index 100% rename from patches/server/0355-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch rename to patches/server/0354-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch diff --git a/patches/server/0356-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch b/patches/server/0355-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch similarity index 97% rename from patches/server/0356-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch rename to patches/server/0355-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch index 01b9259fe231..74a7ea85eee2 100644 --- a/patches/server/0356-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch +++ b/patches/server/0355-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch @@ -31,10 +31,10 @@ delays anymore. public net.minecraft.server.level.ChunkMap addEntity(Lnet/minecraft/world/entity/Entity;)V diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index ad98c74dc6d032bedd01fffd9cdb6c8f8a267c7e..1ad4e5a0a4d236012c1dfb0dbffdacd0f134b72c 100644 +index 397fcc5f3835418bb31998b0b0cdce9427a017a2..69d140fbcccc9054f15716e35a7b854b387fe21d 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -912,6 +912,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -916,6 +916,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return; } // Paper end - ignore and warn about illegal addEntity calls instead of crashing server diff --git a/patches/server/0357-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0356-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch similarity index 100% rename from patches/server/0357-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch rename to patches/server/0356-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch diff --git a/patches/server/0358-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0357-Add-PlayerAttackEntityCooldownResetEvent.patch similarity index 100% rename from patches/server/0358-Add-PlayerAttackEntityCooldownResetEvent.patch rename to patches/server/0357-Add-PlayerAttackEntityCooldownResetEvent.patch diff --git a/patches/server/0359-Don-t-fire-BlockFade-on-worldgen-threads.patch b/patches/server/0358-Don-t-fire-BlockFade-on-worldgen-threads.patch similarity index 100% rename from patches/server/0359-Don-t-fire-BlockFade-on-worldgen-threads.patch rename to patches/server/0358-Don-t-fire-BlockFade-on-worldgen-threads.patch diff --git a/patches/server/0360-Add-phantom-creative-and-insomniac-controls.patch b/patches/server/0359-Add-phantom-creative-and-insomniac-controls.patch similarity index 100% rename from patches/server/0360-Add-phantom-creative-and-insomniac-controls.patch rename to patches/server/0359-Add-phantom-creative-and-insomniac-controls.patch diff --git a/patches/server/0361-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0360-Fix-item-duplication-and-teleport-issues.patch similarity index 100% rename from patches/server/0361-Fix-item-duplication-and-teleport-issues.patch rename to patches/server/0360-Fix-item-duplication-and-teleport-issues.patch diff --git a/patches/server/0362-Villager-Restocks-API.patch b/patches/server/0361-Villager-Restocks-API.patch similarity index 100% rename from patches/server/0362-Villager-Restocks-API.patch rename to patches/server/0361-Villager-Restocks-API.patch diff --git a/patches/server/0363-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0362-Validate-PickItem-Packet-and-kick-for-invalid.patch similarity index 100% rename from patches/server/0363-Validate-PickItem-Packet-and-kick-for-invalid.patch rename to patches/server/0362-Validate-PickItem-Packet-and-kick-for-invalid.patch diff --git a/patches/server/0364-Expose-game-version.patch b/patches/server/0363-Expose-game-version.patch similarity index 100% rename from patches/server/0364-Expose-game-version.patch rename to patches/server/0363-Expose-game-version.patch diff --git a/patches/server/0365-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/patches/server/0364-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch similarity index 100% rename from patches/server/0365-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch rename to patches/server/0364-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch diff --git a/patches/server/0366-misc-debugging-dumps.patch b/patches/server/0365-misc-debugging-dumps.patch similarity index 100% rename from patches/server/0366-misc-debugging-dumps.patch rename to patches/server/0365-misc-debugging-dumps.patch diff --git a/patches/server/0367-Prevent-teleporting-dead-entities.patch b/patches/server/0366-Prevent-teleporting-dead-entities.patch similarity index 100% rename from patches/server/0367-Prevent-teleporting-dead-entities.patch rename to patches/server/0366-Prevent-teleporting-dead-entities.patch diff --git a/patches/server/0368-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0367-Deobfuscate-stacktraces-in-log-messages-crash-report.patch similarity index 99% rename from patches/server/0368-Deobfuscate-stacktraces-in-log-messages-crash-report.patch rename to patches/server/0367-Deobfuscate-stacktraces-in-log-messages-crash-report.patch index 608ad1445709..017722d4b0da 100644 --- a/patches/server/0368-Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/0367-Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -609,10 +609,10 @@ index e697b8f7b165d2394d8155cbee7453e23ac2bee4..6706ac701963fed4798247e6e835b06f } } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 749a056c17efb0788ac671d536658fc84b105ff2..90d6376f0441505a4c5f32d620827dfe233a5783 100644 +index 673da3c93291c70ed83b1a06a068e4854fc4d32b..57d7392871634348ff906c03dc0ca601cd3040bd 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -582,7 +582,7 @@ public class LevelChunk extends ChunkAccess { +@@ -599,7 +599,7 @@ public class LevelChunk extends ChunkAccess { + " (" + getBlockState(blockposition) + ") where there was no entity tile!\n" + "Chunk coordinates: " + (this.chunkPos.x * 16) + "," + (this.chunkPos.z * 16) + "\nWorld: " + level.getLevel().dimension().location()); diff --git a/patches/server/0369-Implement-Mob-Goal-API.patch b/patches/server/0368-Implement-Mob-Goal-API.patch similarity index 96% rename from patches/server/0369-Implement-Mob-Goal-API.patch rename to patches/server/0368-Implement-Mob-Goal-API.patch index c16e1d23bd63..07e3d8fb9852 100644 --- a/patches/server/0369-Implement-Mob-Goal-API.patch +++ b/patches/server/0368-Implement-Mob-Goal-API.patch @@ -18,7 +18,7 @@ index 450f7c03bdcc109938ba9b66328bdbb2c96c03c9..c6241f858209ed662d8720217d143340 testImplementation("org.mockito:mockito-core:5.5.0") diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java new file mode 100644 -index 0000000000000000000000000000000000000000..5fb56067221434aa80e626437ed10f65bf416e4f +index 0000000000000000000000000000000000000000..8117578ced94aa6bf01871f6526a388385c4adf2 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java @@ -0,0 +1,376 @@ @@ -311,10 +311,10 @@ index 0000000000000000000000000000000000000000..5fb56067221434aa80e626437ed10f65 + return deobfuscationMap.getOrDefault(name, name); + } + -+ public static EnumSet vanillaToPaper(OptimizedSmallEnumSet types) { ++ public static EnumSet vanillaToPaper(Goal goal) { + EnumSet goals = EnumSet.noneOf(GoalType.class); + for (GoalType type : GoalType.values()) { -+ if (types.hasElement(paperToVanilla(type))) { ++ if (goal.getFlags().contains(paperToVanilla(type))) { + goals.add(type); + } + } @@ -400,7 +400,7 @@ index 0000000000000000000000000000000000000000..5fb56067221434aa80e626437ed10f65 +} diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/PaperCustomGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/PaperCustomGoal.java new file mode 100644 -index 0000000000000000000000000000000000000000..26c745dd9ccdfdd5c5039f2acc5201b9b91fb274 +index 0000000000000000000000000000000000000000..b5f75ad725f5933db8f0688b2c0b27d620919241 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/entity/ai/PaperCustomGoal.java @@ -0,0 +1,53 @@ @@ -420,7 +420,7 @@ index 0000000000000000000000000000000000000000..26c745dd9ccdfdd5c5039f2acc5201b9 + + this.setFlags(MobGoalHelper.paperToVanilla(handle.getTypes())); + if (this.getFlags().size() == 0) { -+ this.getFlags().addUnchecked(Flag.UNKNOWN_BEHAVIOR); ++ this.getFlags().add(Flag.UNKNOWN_BEHAVIOR); + } + } + @@ -459,7 +459,7 @@ index 0000000000000000000000000000000000000000..26c745dd9ccdfdd5c5039f2acc5201b9 +} diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/PaperMobGoals.java b/src/main/java/com/destroystokyo/paper/entity/ai/PaperMobGoals.java new file mode 100644 -index 0000000000000000000000000000000000000000..5e7b4a8698a00f72d6e817cc7c6716e7605a3484 +index 0000000000000000000000000000000000000000..953b0f88cbf0e73c390f8086344f772ac03192bb --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/entity/ai/PaperMobGoals.java @@ -0,0 +1,213 @@ @@ -574,7 +574,7 @@ index 0000000000000000000000000000000000000000..5e7b4a8698a00f72d6e817cc7c6716e7 + CraftMob craftMob = (CraftMob) mob; + Set> goals = new HashSet<>(); + for (WrappedGoal item : getHandle(craftMob, type).getAvailableGoals()) { -+ if (!item.getGoal().getFlags().hasElement(MobGoalHelper.paperToVanilla(type))) { ++ if (!item.getGoal().getFlags().contains(MobGoalHelper.paperToVanilla(type))) { + continue; + } + @@ -597,7 +597,7 @@ index 0000000000000000000000000000000000000000..5e7b4a8698a00f72d6e817cc7c6716e7 + continue; + } + for (WrappedGoal item : getHandle(craftMob, internalType).getAvailableGoals()) { -+ if (item.getGoal().getFlags().hasElement(MobGoalHelper.paperToVanilla(type))) { ++ if (item.getGoal().getFlags().contains(MobGoalHelper.paperToVanilla(type))) { + continue; + } + @@ -626,7 +626,7 @@ index 0000000000000000000000000000000000000000..5e7b4a8698a00f72d6e817cc7c6716e7 + CraftMob craftMob = (CraftMob) mob; + Set> goals = new HashSet<>(); + getHandle(craftMob, type).getRunningGoals() -+ .filter(item -> item.getGoal().getFlags().hasElement(MobGoalHelper.paperToVanilla(type))) ++ .filter(item -> item.getGoal().getFlags().contains(MobGoalHelper.paperToVanilla(type))) + .forEach(item -> { + if (item.getGoal() instanceof PaperCustomGoal) { + //noinspection unchecked @@ -647,7 +647,7 @@ index 0000000000000000000000000000000000000000..5e7b4a8698a00f72d6e817cc7c6716e7 + continue; + } + getHandle(craftMob, internalType).getRunningGoals() -+ .filter(item -> !item.getGoal().getFlags().hasElement(MobGoalHelper.paperToVanilla(type))) ++ .filter(item -> !item.getGoal().getFlags().contains(MobGoalHelper.paperToVanilla(type))) + .forEach(item -> { + if (item.getGoal() instanceof PaperCustomGoal) { + //noinspection unchecked @@ -678,7 +678,7 @@ index 0000000000000000000000000000000000000000..5e7b4a8698a00f72d6e817cc7c6716e7 +} diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/PaperVanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/PaperVanillaGoal.java new file mode 100644 -index 0000000000000000000000000000000000000000..0d30e0b21b9024df939a9d070bd4a99b217e7c12 +index 0000000000000000000000000000000000000000..b5c594a5499556ad452d9939c75e150af8252e90 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/entity/ai/PaperVanillaGoal.java @@ -0,0 +1,61 @@ @@ -701,7 +701,7 @@ index 0000000000000000000000000000000000000000..0d30e0b21b9024df939a9d070bd4a99b + public PaperVanillaGoal(Goal handle) { + this.handle = handle; + this.key = MobGoalHelper.getKey(handle.getClass()); -+ this.types = MobGoalHelper.vanillaToPaper(handle.getFlags()); ++ this.types = MobGoalHelper.vanillaToPaper(handle); + } + + public Goal getHandle() { diff --git a/patches/server/0370-Add-villager-reputation-API.patch b/patches/server/0369-Add-villager-reputation-API.patch similarity index 100% rename from patches/server/0370-Add-villager-reputation-API.patch rename to patches/server/0369-Add-villager-reputation-API.patch diff --git a/patches/server/0371-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0370-Option-for-maximum-exp-value-when-merging-orbs.patch similarity index 100% rename from patches/server/0371-Option-for-maximum-exp-value-when-merging-orbs.patch rename to patches/server/0370-Option-for-maximum-exp-value-when-merging-orbs.patch diff --git a/patches/server/0372-ExperienceOrbMergeEvent.patch b/patches/server/0371-ExperienceOrbMergeEvent.patch similarity index 100% rename from patches/server/0372-ExperienceOrbMergeEvent.patch rename to patches/server/0371-ExperienceOrbMergeEvent.patch diff --git a/patches/server/0373-Fix-PotionEffect-ignores-icon-flag.patch b/patches/server/0372-Fix-PotionEffect-ignores-icon-flag.patch similarity index 100% rename from patches/server/0373-Fix-PotionEffect-ignores-icon-flag.patch rename to patches/server/0372-Fix-PotionEffect-ignores-icon-flag.patch diff --git a/patches/server/0374-Potential-bed-API.patch b/patches/server/0373-Potential-bed-API.patch similarity index 100% rename from patches/server/0374-Potential-bed-API.patch rename to patches/server/0373-Potential-bed-API.patch diff --git a/patches/server/0375-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0374-Wait-for-Async-Tasks-during-shutdown.patch similarity index 100% rename from patches/server/0375-Wait-for-Async-Tasks-during-shutdown.patch rename to patches/server/0374-Wait-for-Async-Tasks-during-shutdown.patch diff --git a/patches/server/0376-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch b/patches/server/0375-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch similarity index 100% rename from patches/server/0376-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch rename to patches/server/0375-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch diff --git a/patches/server/0377-Ensure-safe-gateway-teleport.patch b/patches/server/0376-Ensure-safe-gateway-teleport.patch similarity index 100% rename from patches/server/0377-Ensure-safe-gateway-teleport.patch rename to patches/server/0376-Ensure-safe-gateway-teleport.patch diff --git a/patches/server/0378-Add-option-for-console-having-all-permissions.patch b/patches/server/0377-Add-option-for-console-having-all-permissions.patch similarity index 100% rename from patches/server/0378-Add-option-for-console-having-all-permissions.patch rename to patches/server/0377-Add-option-for-console-having-all-permissions.patch diff --git a/patches/server/0379-Fix-villager-trading-demand-MC-163962.patch b/patches/server/0378-Fix-villager-trading-demand-MC-163962.patch similarity index 100% rename from patches/server/0379-Fix-villager-trading-demand-MC-163962.patch rename to patches/server/0378-Fix-villager-trading-demand-MC-163962.patch diff --git a/patches/server/0380-Maps-shouldn-t-load-chunks.patch b/patches/server/0379-Maps-shouldn-t-load-chunks.patch similarity index 100% rename from patches/server/0380-Maps-shouldn-t-load-chunks.patch rename to patches/server/0379-Maps-shouldn-t-load-chunks.patch diff --git a/patches/server/0381-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch b/patches/server/0380-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch similarity index 100% rename from patches/server/0381-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch rename to patches/server/0380-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch diff --git a/patches/server/0382-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch b/patches/server/0381-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch similarity index 100% rename from patches/server/0382-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch rename to patches/server/0381-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch diff --git a/patches/server/0383-Fix-piston-physics-inconsistency-MC-188840.patch b/patches/server/0382-Fix-piston-physics-inconsistency-MC-188840.patch similarity index 100% rename from patches/server/0383-Fix-piston-physics-inconsistency-MC-188840.patch rename to patches/server/0382-Fix-piston-physics-inconsistency-MC-188840.patch diff --git a/patches/server/0384-Fix-sand-duping.patch b/patches/server/0383-Fix-sand-duping.patch similarity index 100% rename from patches/server/0384-Fix-sand-duping.patch rename to patches/server/0383-Fix-sand-duping.patch diff --git a/patches/server/0385-Fix-missing-chunks-due-to-integer-overflow.patch b/patches/server/0384-Fix-missing-chunks-due-to-integer-overflow.patch similarity index 100% rename from patches/server/0385-Fix-missing-chunks-due-to-integer-overflow.patch rename to patches/server/0384-Fix-missing-chunks-due-to-integer-overflow.patch diff --git a/patches/server/0386-Prevent-position-desync-causing-tp-exploit.patch b/patches/server/0385-Prevent-position-desync-causing-tp-exploit.patch similarity index 100% rename from patches/server/0386-Prevent-position-desync-causing-tp-exploit.patch rename to patches/server/0385-Prevent-position-desync-causing-tp-exploit.patch diff --git a/patches/server/0387-Inventory-getHolder-method-without-block-snapshot.patch b/patches/server/0386-Inventory-getHolder-method-without-block-snapshot.patch similarity index 100% rename from patches/server/0387-Inventory-getHolder-method-without-block-snapshot.patch rename to patches/server/0386-Inventory-getHolder-method-without-block-snapshot.patch diff --git a/patches/server/0388-Improve-Arrow-API.patch b/patches/server/0387-Improve-Arrow-API.patch similarity index 100% rename from patches/server/0388-Improve-Arrow-API.patch rename to patches/server/0387-Improve-Arrow-API.patch diff --git a/patches/server/0389-Add-PlayerRecipeBookClickEvent.patch b/patches/server/0388-Add-PlayerRecipeBookClickEvent.patch similarity index 100% rename from patches/server/0389-Add-PlayerRecipeBookClickEvent.patch rename to patches/server/0388-Add-PlayerRecipeBookClickEvent.patch diff --git a/patches/server/0390-Hide-sync-chunk-writes-behind-flag.patch b/patches/server/0389-Hide-sync-chunk-writes-behind-flag.patch similarity index 100% rename from patches/server/0390-Hide-sync-chunk-writes-behind-flag.patch rename to patches/server/0389-Hide-sync-chunk-writes-behind-flag.patch diff --git a/patches/server/0391-Add-permission-for-command-blocks.patch b/patches/server/0390-Add-permission-for-command-blocks.patch similarity index 100% rename from patches/server/0391-Add-permission-for-command-blocks.patch rename to patches/server/0390-Add-permission-for-command-blocks.patch diff --git a/patches/server/0392-Ensure-Entity-position-and-AABB-are-never-invalid.patch b/patches/server/0391-Ensure-Entity-position-and-AABB-are-never-invalid.patch similarity index 100% rename from patches/server/0392-Ensure-Entity-position-and-AABB-are-never-invalid.patch rename to patches/server/0391-Ensure-Entity-position-and-AABB-are-never-invalid.patch diff --git a/patches/server/0393-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0392-Fix-Per-World-Difficulty-Remembering-Difficulty.patch similarity index 100% rename from patches/server/0393-Fix-Per-World-Difficulty-Remembering-Difficulty.patch rename to patches/server/0392-Fix-Per-World-Difficulty-Remembering-Difficulty.patch diff --git a/patches/server/0394-Paper-dumpitem-command.patch b/patches/server/0393-Paper-dumpitem-command.patch similarity index 100% rename from patches/server/0394-Paper-dumpitem-command.patch rename to patches/server/0393-Paper-dumpitem-command.patch diff --git a/patches/server/0395-Improve-Legacy-Component-serialization-size.patch b/patches/server/0394-Improve-Legacy-Component-serialization-size.patch similarity index 100% rename from patches/server/0395-Improve-Legacy-Component-serialization-size.patch rename to patches/server/0394-Improve-Legacy-Component-serialization-size.patch diff --git a/patches/server/0396-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0395-Add-Plugin-Tickets-to-API-Chunk-Methods.patch similarity index 100% rename from patches/server/0396-Add-Plugin-Tickets-to-API-Chunk-Methods.patch rename to patches/server/0395-Add-Plugin-Tickets-to-API-Chunk-Methods.patch diff --git a/patches/server/0397-incremental-chunk-and-player-saving.patch b/patches/server/0396-incremental-chunk-and-player-saving.patch similarity index 100% rename from patches/server/0397-incremental-chunk-and-player-saving.patch rename to patches/server/0396-incremental-chunk-and-player-saving.patch diff --git a/patches/server/0398-Support-old-UUID-format-for-NBT.patch b/patches/server/0397-Support-old-UUID-format-for-NBT.patch similarity index 100% rename from patches/server/0398-Support-old-UUID-format-for-NBT.patch rename to patches/server/0397-Support-old-UUID-format-for-NBT.patch diff --git a/patches/server/0399-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0398-Convert-legacy-attributes-in-Item-Meta.patch similarity index 100% rename from patches/server/0399-Convert-legacy-attributes-in-Item-Meta.patch rename to patches/server/0398-Convert-legacy-attributes-in-Item-Meta.patch diff --git a/patches/server/0400-Support-components-in-ItemMeta.patch b/patches/server/0399-Support-components-in-ItemMeta.patch similarity index 100% rename from patches/server/0400-Support-components-in-ItemMeta.patch rename to patches/server/0399-Support-components-in-ItemMeta.patch diff --git a/patches/server/0401-Improve-fix-EntityTargetLivingEntityEvent.patch b/patches/server/0400-Improve-fix-EntityTargetLivingEntityEvent.patch similarity index 100% rename from patches/server/0401-Improve-fix-EntityTargetLivingEntityEvent.patch rename to patches/server/0400-Improve-fix-EntityTargetLivingEntityEvent.patch diff --git a/patches/server/0402-Add-entity-liquid-API.patch b/patches/server/0401-Add-entity-liquid-API.patch similarity index 100% rename from patches/server/0402-Add-entity-liquid-API.patch rename to patches/server/0401-Add-entity-liquid-API.patch diff --git a/patches/server/0403-Update-itemstack-legacy-name-and-lore.patch b/patches/server/0402-Update-itemstack-legacy-name-and-lore.patch similarity index 100% rename from patches/server/0403-Update-itemstack-legacy-name-and-lore.patch rename to patches/server/0402-Update-itemstack-legacy-name-and-lore.patch diff --git a/patches/server/0404-Add-PrepareResultEvent.patch b/patches/server/0403-Add-PrepareResultEvent.patch similarity index 100% rename from patches/server/0404-Add-PrepareResultEvent.patch rename to patches/server/0403-Add-PrepareResultEvent.patch diff --git a/patches/server/0405-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0404-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch similarity index 100% rename from patches/server/0405-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch rename to patches/server/0404-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch diff --git a/patches/server/0406-Fix-arrows-never-despawning-MC-125757.patch b/patches/server/0405-Fix-arrows-never-despawning-MC-125757.patch similarity index 100% rename from patches/server/0406-Fix-arrows-never-despawning-MC-125757.patch rename to patches/server/0405-Fix-arrows-never-despawning-MC-125757.patch diff --git a/patches/server/0407-Thread-Safe-Vanilla-Command-permission-checking.patch b/patches/server/0406-Thread-Safe-Vanilla-Command-permission-checking.patch similarity index 100% rename from patches/server/0407-Thread-Safe-Vanilla-Command-permission-checking.patch rename to patches/server/0406-Thread-Safe-Vanilla-Command-permission-checking.patch diff --git a/patches/server/0408-Fix-SPIGOT-5989.patch b/patches/server/0407-Fix-SPIGOT-5989.patch similarity index 100% rename from patches/server/0408-Fix-SPIGOT-5989.patch rename to patches/server/0407-Fix-SPIGOT-5989.patch diff --git a/patches/server/0409-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch b/patches/server/0408-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch similarity index 100% rename from patches/server/0409-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch rename to patches/server/0408-Fix-SPIGOT-5824-Bukkit-world-container-is-not-used.patch diff --git a/patches/server/0410-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch b/patches/server/0409-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch similarity index 100% rename from patches/server/0410-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch rename to patches/server/0409-Fix-SPIGOT-5885-Unable-to-disable-advancements.patch diff --git a/patches/server/0411-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/patches/server/0410-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch similarity index 100% rename from patches/server/0411-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch rename to patches/server/0410-Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch diff --git a/patches/server/0412-Optimize-NetworkManager-Exception-Handling.patch b/patches/server/0411-Optimize-NetworkManager-Exception-Handling.patch similarity index 100% rename from patches/server/0412-Optimize-NetworkManager-Exception-Handling.patch rename to patches/server/0411-Optimize-NetworkManager-Exception-Handling.patch diff --git a/patches/server/0413-Fix-some-rails-connecting-improperly.patch b/patches/server/0412-Fix-some-rails-connecting-improperly.patch similarity index 100% rename from patches/server/0413-Fix-some-rails-connecting-improperly.patch rename to patches/server/0412-Fix-some-rails-connecting-improperly.patch diff --git a/patches/server/0414-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch b/patches/server/0413-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch similarity index 100% rename from patches/server/0414-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch rename to patches/server/0413-Fix-regex-mistake-in-CB-NBT-int-deserialization.patch diff --git a/patches/server/0415-Brand-support.patch b/patches/server/0414-Brand-support.patch similarity index 100% rename from patches/server/0415-Brand-support.patch rename to patches/server/0414-Brand-support.patch diff --git a/patches/server/0416-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/server/0415-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 100% rename from patches/server/0416-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/server/0415-Add-playPickupItemAnimation-to-LivingEntity.patch diff --git a/patches/server/0417-Don-t-require-FACING-data.patch b/patches/server/0416-Don-t-require-FACING-data.patch similarity index 100% rename from patches/server/0417-Don-t-require-FACING-data.patch rename to patches/server/0416-Don-t-require-FACING-data.patch diff --git a/patches/server/0418-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0417-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch similarity index 100% rename from patches/server/0418-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch rename to patches/server/0417-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch diff --git a/patches/server/0419-Add-moon-phase-API.patch b/patches/server/0418-Add-moon-phase-API.patch similarity index 100% rename from patches/server/0419-Add-moon-phase-API.patch rename to patches/server/0418-Add-moon-phase-API.patch diff --git a/patches/server/0420-Do-not-let-the-server-load-chunks-from-newer-version.patch b/patches/server/0419-Do-not-let-the-server-load-chunks-from-newer-version.patch similarity index 100% rename from patches/server/0420-Do-not-let-the-server-load-chunks-from-newer-version.patch rename to patches/server/0419-Do-not-let-the-server-load-chunks-from-newer-version.patch diff --git a/patches/server/0421-Prevent-headless-pistons-from-being-created.patch b/patches/server/0420-Prevent-headless-pistons-from-being-created.patch similarity index 100% rename from patches/server/0421-Prevent-headless-pistons-from-being-created.patch rename to patches/server/0420-Prevent-headless-pistons-from-being-created.patch diff --git a/patches/server/0422-Add-BellRingEvent.patch b/patches/server/0421-Add-BellRingEvent.patch similarity index 100% rename from patches/server/0422-Add-BellRingEvent.patch rename to patches/server/0421-Add-BellRingEvent.patch diff --git a/patches/server/0423-Add-zombie-targets-turtle-egg-config.patch b/patches/server/0422-Add-zombie-targets-turtle-egg-config.patch similarity index 100% rename from patches/server/0423-Add-zombie-targets-turtle-egg-config.patch rename to patches/server/0422-Add-zombie-targets-turtle-egg-config.patch diff --git a/patches/server/0424-Buffer-joins-to-world.patch b/patches/server/0423-Buffer-joins-to-world.patch similarity index 100% rename from patches/server/0424-Buffer-joins-to-world.patch rename to patches/server/0423-Buffer-joins-to-world.patch diff --git a/patches/server/0425-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0424-Fix-hex-colors-not-working-in-some-kick-messages.patch similarity index 100% rename from patches/server/0425-Fix-hex-colors-not-working-in-some-kick-messages.patch rename to patches/server/0424-Fix-hex-colors-not-working-in-some-kick-messages.patch diff --git a/patches/server/0426-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0425-PortalCreateEvent-needs-to-know-its-entity.patch similarity index 100% rename from patches/server/0426-PortalCreateEvent-needs-to-know-its-entity.patch rename to patches/server/0425-PortalCreateEvent-needs-to-know-its-entity.patch diff --git a/patches/server/0427-Add-more-Evoker-API.patch b/patches/server/0426-Add-more-Evoker-API.patch similarity index 100% rename from patches/server/0427-Add-more-Evoker-API.patch rename to patches/server/0426-Add-more-Evoker-API.patch diff --git a/patches/server/0428-Add-methods-to-get-translation-keys.patch b/patches/server/0427-Add-methods-to-get-translation-keys.patch similarity index 100% rename from patches/server/0428-Add-methods-to-get-translation-keys.patch rename to patches/server/0427-Add-methods-to-get-translation-keys.patch diff --git a/patches/server/0429-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0428-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/server/0429-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/server/0428-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/server/0430-Cache-block-data-strings.patch b/patches/server/0429-Cache-block-data-strings.patch similarity index 100% rename from patches/server/0430-Cache-block-data-strings.patch rename to patches/server/0429-Cache-block-data-strings.patch diff --git a/patches/server/0431-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0430-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch similarity index 100% rename from patches/server/0431-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch rename to patches/server/0430-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch diff --git a/patches/server/0432-Add-additional-open-container-api-to-HumanEntity.patch b/patches/server/0431-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/server/0432-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/server/0431-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/server/0433-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch b/patches/server/0432-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch similarity index 100% rename from patches/server/0433-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch rename to patches/server/0432-Cache-DataFixerUpper-Rewrite-Rules-on-demand.patch diff --git a/patches/server/0434-Extend-block-drop-capture-to-capture-all-items-added.patch b/patches/server/0433-Extend-block-drop-capture-to-capture-all-items-added.patch similarity index 100% rename from patches/server/0434-Extend-block-drop-capture-to-capture-all-items-added.patch rename to patches/server/0433-Extend-block-drop-capture-to-capture-all-items-added.patch diff --git a/patches/server/0435-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/server/0434-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 100% rename from patches/server/0435-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/server/0434-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch diff --git a/patches/server/0436-Lazily-track-plugin-scoreboards-by-default.patch b/patches/server/0435-Lazily-track-plugin-scoreboards-by-default.patch similarity index 100% rename from patches/server/0436-Lazily-track-plugin-scoreboards-by-default.patch rename to patches/server/0435-Lazily-track-plugin-scoreboards-by-default.patch diff --git a/patches/server/0437-Entity-isTicking.patch b/patches/server/0436-Entity-isTicking.patch similarity index 100% rename from patches/server/0437-Entity-isTicking.patch rename to patches/server/0436-Entity-isTicking.patch diff --git a/patches/server/0438-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch b/patches/server/0437-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch similarity index 100% rename from patches/server/0438-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch rename to patches/server/0437-Fix-deop-kicking-non-whitelisted-player-when-white-l.patch diff --git a/patches/server/0439-Fix-Concurrency-issue-in-ShufflingList.patch b/patches/server/0438-Fix-Concurrency-issue-in-ShufflingList.patch similarity index 100% rename from patches/server/0439-Fix-Concurrency-issue-in-ShufflingList.patch rename to patches/server/0438-Fix-Concurrency-issue-in-ShufflingList.patch diff --git a/patches/server/0440-Reset-Ender-Crystals-on-Dragon-Spawn.patch b/patches/server/0439-Reset-Ender-Crystals-on-Dragon-Spawn.patch similarity index 100% rename from patches/server/0440-Reset-Ender-Crystals-on-Dragon-Spawn.patch rename to patches/server/0439-Reset-Ender-Crystals-on-Dragon-Spawn.patch diff --git a/patches/server/0441-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0440-Fix-for-large-move-vectors-crashing-server.patch similarity index 100% rename from patches/server/0441-Fix-for-large-move-vectors-crashing-server.patch rename to patches/server/0440-Fix-for-large-move-vectors-crashing-server.patch diff --git a/patches/server/0442-Optimise-getType-calls.patch b/patches/server/0441-Optimise-getType-calls.patch similarity index 100% rename from patches/server/0442-Optimise-getType-calls.patch rename to patches/server/0441-Optimise-getType-calls.patch diff --git a/patches/server/0443-Villager-resetOffers.patch b/patches/server/0442-Villager-resetOffers.patch similarity index 100% rename from patches/server/0443-Villager-resetOffers.patch rename to patches/server/0442-Villager-resetOffers.patch diff --git a/patches/server/0444-Retain-block-place-order-when-capturing-blockstates.patch b/patches/server/0443-Retain-block-place-order-when-capturing-blockstates.patch similarity index 93% rename from patches/server/0444-Retain-block-place-order-when-capturing-blockstates.patch rename to patches/server/0443-Retain-block-place-order-when-capturing-blockstates.patch index 9be9efef85b0..a991a30770c1 100644 --- a/patches/server/0444-Retain-block-place-order-when-capturing-blockstates.patch +++ b/patches/server/0443-Retain-block-place-order-when-capturing-blockstates.patch @@ -10,7 +10,7 @@ In general, look at making this logic more robust (i.e properly handling cases where a captured entry is overriden) - but for now this will do. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e51f4df5b6fcd28e681a77a1aa3a9eeb0c463e1a..27de84c6f58476ebf5357c03922e7399c02718b9 100644 +index ee237d0e57cbb9b8fe2ae3c84fa7d7a964ad73b9..859f515813240030b3598a2152dd41d4fb8828ad 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -159,7 +159,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0445-Reduce-blockpos-allocation-from-pathfinding.patch b/patches/server/0444-Reduce-blockpos-allocation-from-pathfinding.patch similarity index 100% rename from patches/server/0445-Reduce-blockpos-allocation-from-pathfinding.patch rename to patches/server/0444-Reduce-blockpos-allocation-from-pathfinding.patch diff --git a/patches/server/0446-Fix-item-locations-dropped-from-campfires.patch b/patches/server/0445-Fix-item-locations-dropped-from-campfires.patch similarity index 100% rename from patches/server/0446-Fix-item-locations-dropped-from-campfires.patch rename to patches/server/0445-Fix-item-locations-dropped-from-campfires.patch diff --git a/patches/server/0447-Fix-bell-block-entity-memory-leak.patch b/patches/server/0446-Fix-bell-block-entity-memory-leak.patch similarity index 100% rename from patches/server/0447-Fix-bell-block-entity-memory-leak.patch rename to patches/server/0446-Fix-bell-block-entity-memory-leak.patch diff --git a/patches/server/0448-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch b/patches/server/0447-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch similarity index 100% rename from patches/server/0448-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch rename to patches/server/0447-Avoid-error-bubbling-up-when-item-stack-is-empty-in-.patch diff --git a/patches/server/0449-Add-getOfflinePlayerIfCached-String.patch b/patches/server/0448-Add-getOfflinePlayerIfCached-String.patch similarity index 100% rename from patches/server/0449-Add-getOfflinePlayerIfCached-String.patch rename to patches/server/0448-Add-getOfflinePlayerIfCached-String.patch diff --git a/patches/server/0450-Add-ignore-discounts-API.patch b/patches/server/0449-Add-ignore-discounts-API.patch similarity index 100% rename from patches/server/0450-Add-ignore-discounts-API.patch rename to patches/server/0449-Add-ignore-discounts-API.patch diff --git a/patches/server/0451-Toggle-for-removing-existing-dragon.patch b/patches/server/0450-Toggle-for-removing-existing-dragon.patch similarity index 100% rename from patches/server/0451-Toggle-for-removing-existing-dragon.patch rename to patches/server/0450-Toggle-for-removing-existing-dragon.patch diff --git a/patches/server/0452-Fix-client-lag-on-advancement-loading.patch b/patches/server/0451-Fix-client-lag-on-advancement-loading.patch similarity index 100% rename from patches/server/0452-Fix-client-lag-on-advancement-loading.patch rename to patches/server/0451-Fix-client-lag-on-advancement-loading.patch diff --git a/patches/server/0453-Item-no-age-no-player-pickup.patch b/patches/server/0452-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/server/0453-Item-no-age-no-player-pickup.patch rename to patches/server/0452-Item-no-age-no-player-pickup.patch diff --git a/patches/server/0454-Beacon-API-custom-effect-ranges.patch b/patches/server/0453-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/server/0454-Beacon-API-custom-effect-ranges.patch rename to patches/server/0453-Beacon-API-custom-effect-ranges.patch diff --git a/patches/server/0455-Add-API-for-quit-reason.patch b/patches/server/0454-Add-API-for-quit-reason.patch similarity index 100% rename from patches/server/0455-Add-API-for-quit-reason.patch rename to patches/server/0454-Add-API-for-quit-reason.patch diff --git a/patches/server/0456-Add-Wandering-Trader-spawn-rate-config-options.patch b/patches/server/0455-Add-Wandering-Trader-spawn-rate-config-options.patch similarity index 100% rename from patches/server/0456-Add-Wandering-Trader-spawn-rate-config-options.patch rename to patches/server/0455-Add-Wandering-Trader-spawn-rate-config-options.patch diff --git a/patches/server/0457-Expose-world-spawn-angle.patch b/patches/server/0456-Expose-world-spawn-angle.patch similarity index 100% rename from patches/server/0457-Expose-world-spawn-angle.patch rename to patches/server/0456-Expose-world-spawn-angle.patch diff --git a/patches/server/0458-Add-Destroy-Speed-API.patch b/patches/server/0457-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/server/0458-Add-Destroy-Speed-API.patch rename to patches/server/0457-Add-Destroy-Speed-API.patch diff --git a/patches/server/0459-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0458-Fix-Player-spawnParticle-x-y-z-precision-loss.patch similarity index 100% rename from patches/server/0459-Fix-Player-spawnParticle-x-y-z-precision-loss.patch rename to patches/server/0458-Fix-Player-spawnParticle-x-y-z-precision-loss.patch diff --git a/patches/server/0460-Add-LivingEntity-clearActiveItem.patch b/patches/server/0459-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/server/0460-Add-LivingEntity-clearActiveItem.patch rename to patches/server/0459-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/server/0461-Add-PlayerItemCooldownEvent.patch b/patches/server/0460-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/server/0461-Add-PlayerItemCooldownEvent.patch rename to patches/server/0460-Add-PlayerItemCooldownEvent.patch diff --git a/patches/server/0462-Significantly-improve-performance-of-the-end-generat.patch b/patches/server/0461-Significantly-improve-performance-of-the-end-generat.patch similarity index 100% rename from patches/server/0462-Significantly-improve-performance-of-the-end-generat.patch rename to patches/server/0461-Significantly-improve-performance-of-the-end-generat.patch diff --git a/patches/server/0463-More-lightning-API.patch b/patches/server/0462-More-lightning-API.patch similarity index 100% rename from patches/server/0463-More-lightning-API.patch rename to patches/server/0462-More-lightning-API.patch diff --git a/patches/server/0464-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0463-Climbing-should-not-bypass-cramming-gamerule.patch similarity index 100% rename from patches/server/0464-Climbing-should-not-bypass-cramming-gamerule.patch rename to patches/server/0463-Climbing-should-not-bypass-cramming-gamerule.patch diff --git a/patches/server/0465-Add-missing-default-perms-for-commands.patch b/patches/server/0464-Add-missing-default-perms-for-commands.patch similarity index 100% rename from patches/server/0465-Add-missing-default-perms-for-commands.patch rename to patches/server/0464-Add-missing-default-perms-for-commands.patch diff --git a/patches/server/0466-Add-PlayerShearBlockEvent.patch b/patches/server/0465-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/server/0466-Add-PlayerShearBlockEvent.patch rename to patches/server/0465-Add-PlayerShearBlockEvent.patch diff --git a/patches/server/0467-Limit-recipe-packets.patch b/patches/server/0466-Limit-recipe-packets.patch similarity index 100% rename from patches/server/0467-Limit-recipe-packets.patch rename to patches/server/0466-Limit-recipe-packets.patch diff --git a/patches/server/0468-Fix-CraftSound-backwards-compatibility.patch b/patches/server/0467-Fix-CraftSound-backwards-compatibility.patch similarity index 100% rename from patches/server/0468-Fix-CraftSound-backwards-compatibility.patch rename to patches/server/0467-Fix-CraftSound-backwards-compatibility.patch diff --git a/patches/server/0469-Player-Chunk-Load-Unload-Events.patch b/patches/server/0468-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/server/0469-Player-Chunk-Load-Unload-Events.patch rename to patches/server/0468-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/server/0470-Optimize-Dynamic-get-Missing-Keys.patch b/patches/server/0469-Optimize-Dynamic-get-Missing-Keys.patch similarity index 100% rename from patches/server/0470-Optimize-Dynamic-get-Missing-Keys.patch rename to patches/server/0469-Optimize-Dynamic-get-Missing-Keys.patch diff --git a/patches/server/0471-Expose-LivingEntity-hurt-direction.patch b/patches/server/0470-Expose-LivingEntity-hurt-direction.patch similarity index 100% rename from patches/server/0471-Expose-LivingEntity-hurt-direction.patch rename to patches/server/0470-Expose-LivingEntity-hurt-direction.patch diff --git a/patches/server/0472-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/server/0471-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/server/0472-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/server/0471-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/server/0473-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch b/patches/server/0472-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch similarity index 100% rename from patches/server/0473-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch rename to patches/server/0472-Fix-crash-from-invalid-ingredient-lists-in-VillagerA.patch diff --git a/patches/server/0474-Add-TargetHitEvent.patch b/patches/server/0473-Add-TargetHitEvent.patch similarity index 100% rename from patches/server/0474-Add-TargetHitEvent.patch rename to patches/server/0473-Add-TargetHitEvent.patch diff --git a/patches/server/0475-MC-4-Fix-item-position-desync.patch b/patches/server/0474-MC-4-Fix-item-position-desync.patch similarity index 100% rename from patches/server/0475-MC-4-Fix-item-position-desync.patch rename to patches/server/0474-MC-4-Fix-item-position-desync.patch diff --git a/patches/server/0476-Additional-Block-Material-API.patch b/patches/server/0475-Additional-Block-Material-API.patch similarity index 100% rename from patches/server/0476-Additional-Block-Material-API.patch rename to patches/server/0475-Additional-Block-Material-API.patch diff --git a/patches/server/0477-Fix-harming-potion-dupe.patch b/patches/server/0476-Fix-harming-potion-dupe.patch similarity index 100% rename from patches/server/0477-Fix-harming-potion-dupe.patch rename to patches/server/0476-Fix-harming-potion-dupe.patch diff --git a/patches/server/0478-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/server/0477-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/server/0478-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/server/0477-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/server/0479-Cache-burn-durations.patch b/patches/server/0478-Cache-burn-durations.patch similarity index 100% rename from patches/server/0479-Cache-burn-durations.patch rename to patches/server/0478-Cache-burn-durations.patch diff --git a/patches/server/0480-Allow-disabling-mob-spawner-spawn-egg-transformation.patch b/patches/server/0479-Allow-disabling-mob-spawner-spawn-egg-transformation.patch similarity index 100% rename from patches/server/0480-Allow-disabling-mob-spawner-spawn-egg-transformation.patch rename to patches/server/0479-Allow-disabling-mob-spawner-spawn-egg-transformation.patch diff --git a/patches/server/0481-Fix-Not-a-string-Map-Conversion-spam.patch b/patches/server/0480-Fix-Not-a-string-Map-Conversion-spam.patch similarity index 100% rename from patches/server/0481-Fix-Not-a-string-Map-Conversion-spam.patch rename to patches/server/0480-Fix-Not-a-string-Map-Conversion-spam.patch diff --git a/patches/server/0482-Add-PlayerFlowerPotManipulateEvent.patch b/patches/server/0481-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/server/0482-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/server/0481-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/server/0483-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0482-Fix-interact-event-not-being-called-sometimes.patch similarity index 100% rename from patches/server/0483-Fix-interact-event-not-being-called-sometimes.patch rename to patches/server/0482-Fix-interact-event-not-being-called-sometimes.patch diff --git a/patches/server/0484-Zombie-API-breaking-doors.patch b/patches/server/0483-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/server/0484-Zombie-API-breaking-doors.patch rename to patches/server/0483-Zombie-API-breaking-doors.patch diff --git a/patches/server/0485-Fix-nerfed-slime-when-splitting.patch b/patches/server/0484-Fix-nerfed-slime-when-splitting.patch similarity index 100% rename from patches/server/0485-Fix-nerfed-slime-when-splitting.patch rename to patches/server/0484-Fix-nerfed-slime-when-splitting.patch diff --git a/patches/server/0486-Add-EntityLoadCrossbowEvent.patch b/patches/server/0485-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/server/0486-Add-EntityLoadCrossbowEvent.patch rename to patches/server/0485-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/server/0487-Add-WorldGameRuleChangeEvent.patch b/patches/server/0486-Add-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/server/0487-Add-WorldGameRuleChangeEvent.patch rename to patches/server/0486-Add-WorldGameRuleChangeEvent.patch diff --git a/patches/server/0488-Add-ServerResourcesReloadedEvent.patch b/patches/server/0487-Add-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/server/0488-Add-ServerResourcesReloadedEvent.patch rename to patches/server/0487-Add-ServerResourcesReloadedEvent.patch diff --git a/patches/server/0489-Add-world-settings-for-mobs-picking-up-loot.patch b/patches/server/0488-Add-world-settings-for-mobs-picking-up-loot.patch similarity index 100% rename from patches/server/0489-Add-world-settings-for-mobs-picking-up-loot.patch rename to patches/server/0488-Add-world-settings-for-mobs-picking-up-loot.patch diff --git a/patches/server/0490-Add-BlockFailedDispenseEvent.patch b/patches/server/0489-Add-BlockFailedDispenseEvent.patch similarity index 100% rename from patches/server/0490-Add-BlockFailedDispenseEvent.patch rename to patches/server/0489-Add-BlockFailedDispenseEvent.patch diff --git a/patches/server/0491-Add-PlayerLecternPageChangeEvent.patch b/patches/server/0490-Add-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/server/0491-Add-PlayerLecternPageChangeEvent.patch rename to patches/server/0490-Add-PlayerLecternPageChangeEvent.patch diff --git a/patches/server/0492-Add-PlayerLoomPatternSelectEvent.patch b/patches/server/0491-Add-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/server/0492-Add-PlayerLoomPatternSelectEvent.patch rename to patches/server/0491-Add-PlayerLoomPatternSelectEvent.patch diff --git a/patches/server/0493-Configurable-door-breaking-difficulty.patch b/patches/server/0492-Configurable-door-breaking-difficulty.patch similarity index 100% rename from patches/server/0493-Configurable-door-breaking-difficulty.patch rename to patches/server/0492-Configurable-door-breaking-difficulty.patch diff --git a/patches/server/0494-Empty-commands-shall-not-be-dispatched.patch b/patches/server/0493-Empty-commands-shall-not-be-dispatched.patch similarity index 100% rename from patches/server/0494-Empty-commands-shall-not-be-dispatched.patch rename to patches/server/0493-Empty-commands-shall-not-be-dispatched.patch diff --git a/patches/server/0495-Remove-stale-POIs.patch b/patches/server/0494-Remove-stale-POIs.patch similarity index 100% rename from patches/server/0495-Remove-stale-POIs.patch rename to patches/server/0494-Remove-stale-POIs.patch diff --git a/patches/server/0496-Fix-villager-boat-exploit.patch b/patches/server/0495-Fix-villager-boat-exploit.patch similarity index 100% rename from patches/server/0496-Fix-villager-boat-exploit.patch rename to patches/server/0495-Fix-villager-boat-exploit.patch diff --git a/patches/server/0497-Add-sendOpLevel-API.patch b/patches/server/0496-Add-sendOpLevel-API.patch similarity index 100% rename from patches/server/0497-Add-sendOpLevel-API.patch rename to patches/server/0496-Add-sendOpLevel-API.patch diff --git a/patches/server/0498-TODO-Registry-Modification-API.patch b/patches/server/0497-TODO-Registry-Modification-API.patch similarity index 100% rename from patches/server/0498-TODO-Registry-Modification-API.patch rename to patches/server/0497-TODO-Registry-Modification-API.patch diff --git a/patches/server/0499-Add-StructuresLocateEvent.patch b/patches/server/0498-Add-StructuresLocateEvent.patch similarity index 100% rename from patches/server/0499-Add-StructuresLocateEvent.patch rename to patches/server/0498-Add-StructuresLocateEvent.patch diff --git a/patches/server/0500-Collision-option-for-requiring-a-player-participant.patch b/patches/server/0499-Collision-option-for-requiring-a-player-participant.patch similarity index 100% rename from patches/server/0500-Collision-option-for-requiring-a-player-participant.patch rename to patches/server/0499-Collision-option-for-requiring-a-player-participant.patch diff --git a/patches/server/0501-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch b/patches/server/0500-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch similarity index 100% rename from patches/server/0501-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch rename to patches/server/0500-Remove-ProjectileHitEvent-call-when-fireballs-dead.patch diff --git a/patches/server/0502-Return-chat-component-with-empty-text-instead-of-thr.patch b/patches/server/0501-Return-chat-component-with-empty-text-instead-of-thr.patch similarity index 100% rename from patches/server/0502-Return-chat-component-with-empty-text-instead-of-thr.patch rename to patches/server/0501-Return-chat-component-with-empty-text-instead-of-thr.patch diff --git a/patches/server/0503-Make-schedule-command-per-world.patch b/patches/server/0502-Make-schedule-command-per-world.patch similarity index 100% rename from patches/server/0503-Make-schedule-command-per-world.patch rename to patches/server/0502-Make-schedule-command-per-world.patch diff --git a/patches/server/0504-Configurable-max-leash-distance.patch b/patches/server/0503-Configurable-max-leash-distance.patch similarity index 100% rename from patches/server/0504-Configurable-max-leash-distance.patch rename to patches/server/0503-Configurable-max-leash-distance.patch diff --git a/patches/server/0505-Add-BlockPreDispenseEvent.patch b/patches/server/0504-Add-BlockPreDispenseEvent.patch similarity index 100% rename from patches/server/0505-Add-BlockPreDispenseEvent.patch rename to patches/server/0504-Add-BlockPreDispenseEvent.patch diff --git a/patches/server/0506-Add-PlayerChangeBeaconEffectEvent.patch b/patches/server/0505-Add-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/server/0506-Add-PlayerChangeBeaconEffectEvent.patch rename to patches/server/0505-Add-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/server/0507-Add-toggle-for-always-placing-the-dragon-egg.patch b/patches/server/0506-Add-toggle-for-always-placing-the-dragon-egg.patch similarity index 100% rename from patches/server/0507-Add-toggle-for-always-placing-the-dragon-egg.patch rename to patches/server/0506-Add-toggle-for-always-placing-the-dragon-egg.patch diff --git a/patches/server/0508-Add-PlayerStonecutterRecipeSelectEvent.patch b/patches/server/0507-Add-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/server/0508-Add-PlayerStonecutterRecipeSelectEvent.patch rename to patches/server/0507-Add-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/server/0509-Expand-EntityUnleashEvent.patch b/patches/server/0508-Expand-EntityUnleashEvent.patch similarity index 100% rename from patches/server/0509-Expand-EntityUnleashEvent.patch rename to patches/server/0508-Expand-EntityUnleashEvent.patch diff --git a/patches/server/0510-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0509-Reset-shield-blocking-on-dimension-change.patch similarity index 100% rename from patches/server/0510-Reset-shield-blocking-on-dimension-change.patch rename to patches/server/0509-Reset-shield-blocking-on-dimension-change.patch diff --git a/patches/server/0511-Add-DragonEggFormEvent.patch b/patches/server/0510-Add-DragonEggFormEvent.patch similarity index 100% rename from patches/server/0511-Add-DragonEggFormEvent.patch rename to patches/server/0510-Add-DragonEggFormEvent.patch diff --git a/patches/server/0512-Add-EntityMoveEvent.patch b/patches/server/0511-Add-EntityMoveEvent.patch similarity index 100% rename from patches/server/0512-Add-EntityMoveEvent.patch rename to patches/server/0511-Add-EntityMoveEvent.patch diff --git a/patches/server/0513-added-option-to-disable-pathfinding-updates-on-block.patch b/patches/server/0512-added-option-to-disable-pathfinding-updates-on-block.patch similarity index 100% rename from patches/server/0513-added-option-to-disable-pathfinding-updates-on-block.patch rename to patches/server/0512-added-option-to-disable-pathfinding-updates-on-block.patch diff --git a/patches/server/0514-Inline-shift-direction-fields.patch b/patches/server/0513-Inline-shift-direction-fields.patch similarity index 100% rename from patches/server/0514-Inline-shift-direction-fields.patch rename to patches/server/0513-Inline-shift-direction-fields.patch diff --git a/patches/server/0515-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/server/0514-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/server/0515-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/server/0514-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/server/0516-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/server/0515-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/server/0516-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/server/0515-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/server/0517-living-entity-allow-attribute-registration.patch b/patches/server/0516-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/server/0517-living-entity-allow-attribute-registration.patch rename to patches/server/0516-living-entity-allow-attribute-registration.patch diff --git a/patches/server/0518-fix-dead-slime-setSize-invincibility.patch b/patches/server/0517-fix-dead-slime-setSize-invincibility.patch similarity index 100% rename from patches/server/0518-fix-dead-slime-setSize-invincibility.patch rename to patches/server/0517-fix-dead-slime-setSize-invincibility.patch diff --git a/patches/server/0519-Merchant-getRecipes-should-return-an-immutable-list.patch b/patches/server/0518-Merchant-getRecipes-should-return-an-immutable-list.patch similarity index 100% rename from patches/server/0519-Merchant-getRecipes-should-return-an-immutable-list.patch rename to patches/server/0518-Merchant-getRecipes-should-return-an-immutable-list.patch diff --git a/patches/server/0520-Expose-Tracked-Players.patch b/patches/server/0519-Expose-Tracked-Players.patch similarity index 100% rename from patches/server/0520-Expose-Tracked-Players.patch rename to patches/server/0519-Expose-Tracked-Players.patch diff --git a/patches/server/0521-Improve-ServerGUI.patch b/patches/server/0520-Improve-ServerGUI.patch similarity index 100% rename from patches/server/0521-Improve-ServerGUI.patch rename to patches/server/0520-Improve-ServerGUI.patch diff --git a/patches/server/0522-fix-converting-txt-to-json-file.patch b/patches/server/0521-fix-converting-txt-to-json-file.patch similarity index 100% rename from patches/server/0522-fix-converting-txt-to-json-file.patch rename to patches/server/0521-fix-converting-txt-to-json-file.patch diff --git a/patches/server/0523-Add-worldborder-events.patch b/patches/server/0522-Add-worldborder-events.patch similarity index 100% rename from patches/server/0523-Add-worldborder-events.patch rename to patches/server/0522-Add-worldborder-events.patch diff --git a/patches/server/0524-Add-PlayerNameEntityEvent.patch b/patches/server/0523-Add-PlayerNameEntityEvent.patch similarity index 100% rename from patches/server/0524-Add-PlayerNameEntityEvent.patch rename to patches/server/0523-Add-PlayerNameEntityEvent.patch diff --git a/patches/server/0525-Prevent-grindstones-from-overstacking-items.patch b/patches/server/0524-Prevent-grindstones-from-overstacking-items.patch similarity index 100% rename from patches/server/0525-Prevent-grindstones-from-overstacking-items.patch rename to patches/server/0524-Prevent-grindstones-from-overstacking-items.patch diff --git a/patches/server/0526-Add-recipe-to-cook-events.patch b/patches/server/0525-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/server/0526-Add-recipe-to-cook-events.patch rename to patches/server/0525-Add-recipe-to-cook-events.patch diff --git a/patches/server/0527-Add-Block-isValidTool.patch b/patches/server/0526-Add-Block-isValidTool.patch similarity index 100% rename from patches/server/0527-Add-Block-isValidTool.patch rename to patches/server/0526-Add-Block-isValidTool.patch diff --git a/patches/server/0528-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0527-Allow-using-signs-inside-spawn-protection.patch similarity index 100% rename from patches/server/0528-Allow-using-signs-inside-spawn-protection.patch rename to patches/server/0527-Allow-using-signs-inside-spawn-protection.patch diff --git a/patches/server/0529-Expand-world-key-API.patch b/patches/server/0528-Expand-world-key-API.patch similarity index 100% rename from patches/server/0529-Expand-world-key-API.patch rename to patches/server/0528-Expand-world-key-API.patch diff --git a/patches/server/0530-Add-fast-alternative-constructor-for-Rotations.patch b/patches/server/0529-Add-fast-alternative-constructor-for-Rotations.patch similarity index 100% rename from patches/server/0530-Add-fast-alternative-constructor-for-Rotations.patch rename to patches/server/0529-Add-fast-alternative-constructor-for-Rotations.patch diff --git a/patches/server/0531-Item-Rarity-API.patch b/patches/server/0530-Item-Rarity-API.patch similarity index 100% rename from patches/server/0531-Item-Rarity-API.patch rename to patches/server/0530-Item-Rarity-API.patch diff --git a/patches/server/0532-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0531-Drop-carried-item-when-player-has-disconnected.patch similarity index 100% rename from patches/server/0532-Drop-carried-item-when-player-has-disconnected.patch rename to patches/server/0531-Drop-carried-item-when-player-has-disconnected.patch diff --git a/patches/server/0533-forced-whitelist-use-configurable-kick-message.patch b/patches/server/0532-forced-whitelist-use-configurable-kick-message.patch similarity index 100% rename from patches/server/0533-forced-whitelist-use-configurable-kick-message.patch rename to patches/server/0532-forced-whitelist-use-configurable-kick-message.patch diff --git a/patches/server/0534-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0533-Don-t-ignore-result-of-PlayerEditBookEvent.patch similarity index 100% rename from patches/server/0534-Don-t-ignore-result-of-PlayerEditBookEvent.patch rename to patches/server/0533-Don-t-ignore-result-of-PlayerEditBookEvent.patch diff --git a/patches/server/0535-Expose-protocol-version.patch b/patches/server/0534-Expose-protocol-version.patch similarity index 100% rename from patches/server/0535-Expose-protocol-version.patch rename to patches/server/0534-Expose-protocol-version.patch diff --git a/patches/server/0536-Enhance-console-tab-completions-for-brigadier-comman.patch b/patches/server/0535-Enhance-console-tab-completions-for-brigadier-comman.patch similarity index 100% rename from patches/server/0536-Enhance-console-tab-completions-for-brigadier-comman.patch rename to patches/server/0535-Enhance-console-tab-completions-for-brigadier-comman.patch diff --git a/patches/server/0537-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0536-Fix-PlayerItemConsumeEvent-cancelling-properly.patch similarity index 100% rename from patches/server/0537-Fix-PlayerItemConsumeEvent-cancelling-properly.patch rename to patches/server/0536-Fix-PlayerItemConsumeEvent-cancelling-properly.patch diff --git a/patches/server/0538-Add-bypass-host-check.patch b/patches/server/0537-Add-bypass-host-check.patch similarity index 100% rename from patches/server/0538-Add-bypass-host-check.patch rename to patches/server/0537-Add-bypass-host-check.patch diff --git a/patches/server/0539-Set-area-affect-cloud-rotation.patch b/patches/server/0538-Set-area-affect-cloud-rotation.patch similarity index 100% rename from patches/server/0539-Set-area-affect-cloud-rotation.patch rename to patches/server/0538-Set-area-affect-cloud-rotation.patch diff --git a/patches/server/0540-add-isDeeplySleeping-to-HumanEntity.patch b/patches/server/0539-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/server/0540-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/server/0539-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/server/0541-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/server/0540-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/server/0541-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/server/0540-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/server/0542-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/server/0541-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/server/0542-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/server/0541-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/server/0543-fix-PigZombieAngerEvent-cancellation.patch b/patches/server/0542-fix-PigZombieAngerEvent-cancellation.patch similarity index 100% rename from patches/server/0543-fix-PigZombieAngerEvent-cancellation.patch rename to patches/server/0542-fix-PigZombieAngerEvent-cancellation.patch diff --git a/patches/server/0544-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0543-fix-PlayerItemHeldEvent-firing-twice.patch similarity index 100% rename from patches/server/0544-fix-PlayerItemHeldEvent-firing-twice.patch rename to patches/server/0543-fix-PlayerItemHeldEvent-firing-twice.patch diff --git a/patches/server/0545-Add-PlayerDeepSleepEvent.patch b/patches/server/0544-Add-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/server/0545-Add-PlayerDeepSleepEvent.patch rename to patches/server/0544-Add-PlayerDeepSleepEvent.patch diff --git a/patches/server/0546-More-World-API.patch b/patches/server/0545-More-World-API.patch similarity index 100% rename from patches/server/0546-More-World-API.patch rename to patches/server/0545-More-World-API.patch diff --git a/patches/server/0547-Add-PlayerBedFailEnterEvent.patch b/patches/server/0546-Add-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/server/0547-Add-PlayerBedFailEnterEvent.patch rename to patches/server/0546-Add-PlayerBedFailEnterEvent.patch diff --git a/patches/server/0548-Implement-methods-to-convert-between-Component-and-B.patch b/patches/server/0547-Implement-methods-to-convert-between-Component-and-B.patch similarity index 100% rename from patches/server/0548-Implement-methods-to-convert-between-Component-and-B.patch rename to patches/server/0547-Implement-methods-to-convert-between-Component-and-B.patch diff --git a/patches/server/0549-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/server/0548-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch similarity index 100% rename from patches/server/0549-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch rename to patches/server/0548-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch diff --git a/patches/server/0550-Introduce-beacon-activation-deactivation-events.patch b/patches/server/0549-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/server/0550-Introduce-beacon-activation-deactivation-events.patch rename to patches/server/0549-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/server/0551-Add-Channel-initialization-listeners.patch b/patches/server/0550-Add-Channel-initialization-listeners.patch similarity index 100% rename from patches/server/0551-Add-Channel-initialization-listeners.patch rename to patches/server/0550-Add-Channel-initialization-listeners.patch diff --git a/patches/server/0552-Send-empty-commands-if-tab-completion-is-disabled.patch b/patches/server/0551-Send-empty-commands-if-tab-completion-is-disabled.patch similarity index 100% rename from patches/server/0552-Send-empty-commands-if-tab-completion-is-disabled.patch rename to patches/server/0551-Send-empty-commands-if-tab-completion-is-disabled.patch diff --git a/patches/server/0553-Add-more-WanderingTrader-API.patch b/patches/server/0552-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/server/0553-Add-more-WanderingTrader-API.patch rename to patches/server/0552-Add-more-WanderingTrader-API.patch diff --git a/patches/server/0554-Add-EntityBlockStorage-clearEntities.patch b/patches/server/0553-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/server/0554-Add-EntityBlockStorage-clearEntities.patch rename to patches/server/0553-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/server/0555-Entity-load-save-limit-per-chunk.patch b/patches/server/0554-Entity-load-save-limit-per-chunk.patch similarity index 100% rename from patches/server/0555-Entity-load-save-limit-per-chunk.patch rename to patches/server/0554-Entity-load-save-limit-per-chunk.patch diff --git a/patches/server/0556-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/server/0555-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/server/0556-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/server/0555-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/server/0557-Inventory-close.patch b/patches/server/0556-Inventory-close.patch similarity index 100% rename from patches/server/0557-Inventory-close.patch rename to patches/server/0556-Inventory-close.patch diff --git a/patches/server/0558-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0557-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/server/0558-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/server/0557-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/server/0559-Add-basic-Datapack-API.patch b/patches/server/0558-Add-basic-Datapack-API.patch similarity index 100% rename from patches/server/0559-Add-basic-Datapack-API.patch rename to patches/server/0558-Add-basic-Datapack-API.patch diff --git a/patches/server/0560-Add-environment-variable-to-disable-server-gui.patch b/patches/server/0559-Add-environment-variable-to-disable-server-gui.patch similarity index 100% rename from patches/server/0560-Add-environment-variable-to-disable-server-gui.patch rename to patches/server/0559-Add-environment-variable-to-disable-server-gui.patch diff --git a/patches/server/0561-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0560-Expand-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/server/0561-Expand-PlayerGameModeChangeEvent.patch rename to patches/server/0560-Expand-PlayerGameModeChangeEvent.patch diff --git a/patches/server/0562-ItemStack-repair-check-API.patch b/patches/server/0561-ItemStack-repair-check-API.patch similarity index 100% rename from patches/server/0562-ItemStack-repair-check-API.patch rename to patches/server/0561-ItemStack-repair-check-API.patch diff --git a/patches/server/0563-More-Enchantment-API.patch b/patches/server/0562-More-Enchantment-API.patch similarity index 100% rename from patches/server/0563-More-Enchantment-API.patch rename to patches/server/0562-More-Enchantment-API.patch diff --git a/patches/server/0564-Move-range-check-for-block-placing-up.patch b/patches/server/0563-Move-range-check-for-block-placing-up.patch similarity index 100% rename from patches/server/0564-Move-range-check-for-block-placing-up.patch rename to patches/server/0563-Move-range-check-for-block-placing-up.patch diff --git a/patches/server/0565-Fix-and-optimise-world-force-upgrading.patch b/patches/server/0564-Fix-and-optimise-world-force-upgrading.patch similarity index 99% rename from patches/server/0565-Fix-and-optimise-world-force-upgrading.patch rename to patches/server/0564-Fix-and-optimise-world-force-upgrading.patch index bd90d086b70c..7537b08451b5 100644 --- a/patches/server/0565-Fix-and-optimise-world-force-upgrading.patch +++ b/patches/server/0564-Fix-and-optimise-world-force-upgrading.patch @@ -298,7 +298,7 @@ index 22ffae1e5b0ea77b9c9330f521e31af77fe0d276..ad6a0f1a1a9ed11760098b700e8f305f if (dimensionKey == LevelStem.OVERWORLD) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 27de84c6f58476ebf5357c03922e7399c02718b9..6dad081aa935cf3be19a0e0b913b2aaf97206230 100644 +index 859f515813240030b3598a2152dd41d4fb8828ad..c4086b17db7624489a8873ee321e7707078e5e0b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -179,6 +179,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0566-Add-Mob-lookAt-API.patch b/patches/server/0565-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/server/0566-Add-Mob-lookAt-API.patch rename to patches/server/0565-Add-Mob-lookAt-API.patch diff --git a/patches/server/0567-Add-Unix-domain-socket-support.patch b/patches/server/0566-Add-Unix-domain-socket-support.patch similarity index 100% rename from patches/server/0567-Add-Unix-domain-socket-support.patch rename to patches/server/0566-Add-Unix-domain-socket-support.patch diff --git a/patches/server/0568-Add-EntityInsideBlockEvent.patch b/patches/server/0567-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/server/0568-Add-EntityInsideBlockEvent.patch rename to patches/server/0567-Add-EntityInsideBlockEvent.patch diff --git a/patches/server/0569-Attributes-API-for-item-defaults.patch b/patches/server/0568-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/server/0569-Attributes-API-for-item-defaults.patch rename to patches/server/0568-Attributes-API-for-item-defaults.patch diff --git a/patches/server/0570-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0569-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/server/0570-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/server/0569-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/server/0571-More-Lidded-Block-API.patch b/patches/server/0570-More-Lidded-Block-API.patch similarity index 100% rename from patches/server/0571-More-Lidded-Block-API.patch rename to patches/server/0570-More-Lidded-Block-API.patch diff --git a/patches/server/0572-Limit-item-frame-cursors-on-maps.patch b/patches/server/0571-Limit-item-frame-cursors-on-maps.patch similarity index 100% rename from patches/server/0572-Limit-item-frame-cursors-on-maps.patch rename to patches/server/0571-Limit-item-frame-cursors-on-maps.patch diff --git a/patches/server/0573-Add-PlayerKickEvent-causes.patch b/patches/server/0572-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/server/0573-Add-PlayerKickEvent-causes.patch rename to patches/server/0572-Add-PlayerKickEvent-causes.patch diff --git a/patches/server/0574-Add-PufferFishStateChangeEvent.patch b/patches/server/0573-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/server/0574-Add-PufferFishStateChangeEvent.patch rename to patches/server/0573-Add-PufferFishStateChangeEvent.patch diff --git a/patches/server/0575-Fix-PlayerBucketEmptyEvent-result-itemstack.patch b/patches/server/0574-Fix-PlayerBucketEmptyEvent-result-itemstack.patch similarity index 100% rename from patches/server/0575-Fix-PlayerBucketEmptyEvent-result-itemstack.patch rename to patches/server/0574-Fix-PlayerBucketEmptyEvent-result-itemstack.patch diff --git a/patches/server/0576-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch b/patches/server/0575-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch similarity index 100% rename from patches/server/0576-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch rename to patches/server/0575-Synchronize-PalettedContainer-instead-of-ThreadingDe.patch diff --git a/patches/server/0577-Add-option-to-fix-items-merging-through-walls.patch b/patches/server/0576-Add-option-to-fix-items-merging-through-walls.patch similarity index 100% rename from patches/server/0577-Add-option-to-fix-items-merging-through-walls.patch rename to patches/server/0576-Add-option-to-fix-items-merging-through-walls.patch diff --git a/patches/server/0578-Add-BellRevealRaiderEvent.patch b/patches/server/0577-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/server/0578-Add-BellRevealRaiderEvent.patch rename to patches/server/0577-Add-BellRevealRaiderEvent.patch diff --git a/patches/server/0579-Fix-invulnerable-end-crystals.patch b/patches/server/0578-Fix-invulnerable-end-crystals.patch similarity index 100% rename from patches/server/0579-Fix-invulnerable-end-crystals.patch rename to patches/server/0578-Fix-invulnerable-end-crystals.patch diff --git a/patches/server/0580-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0579-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/server/0580-Add-ElderGuardianAppearanceEvent.patch rename to patches/server/0579-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/server/0581-Fix-dangerous-end-portal-logic.patch b/patches/server/0580-Fix-dangerous-end-portal-logic.patch similarity index 100% rename from patches/server/0581-Fix-dangerous-end-portal-logic.patch rename to patches/server/0580-Fix-dangerous-end-portal-logic.patch diff --git a/patches/server/0582-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch b/patches/server/0581-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch similarity index 100% rename from patches/server/0582-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch rename to patches/server/0581-Optimize-Biome-Mob-Lookups-for-Mob-Spawning.patch diff --git a/patches/server/0583-Make-item-validations-configurable.patch b/patches/server/0582-Make-item-validations-configurable.patch similarity index 100% rename from patches/server/0583-Make-item-validations-configurable.patch rename to patches/server/0582-Make-item-validations-configurable.patch diff --git a/patches/server/0584-Line-Of-Sight-Changes.patch b/patches/server/0583-Line-Of-Sight-Changes.patch similarity index 100% rename from patches/server/0584-Line-Of-Sight-Changes.patch rename to patches/server/0583-Line-Of-Sight-Changes.patch diff --git a/patches/server/0585-add-per-world-spawn-limits.patch b/patches/server/0584-add-per-world-spawn-limits.patch similarity index 100% rename from patches/server/0585-add-per-world-spawn-limits.patch rename to patches/server/0584-add-per-world-spawn-limits.patch diff --git a/patches/server/0586-Fix-potions-splash-events.patch b/patches/server/0585-Fix-potions-splash-events.patch similarity index 100% rename from patches/server/0586-Fix-potions-splash-events.patch rename to patches/server/0585-Fix-potions-splash-events.patch diff --git a/patches/server/0587-Add-more-LimitedRegion-API.patch b/patches/server/0586-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/server/0587-Add-more-LimitedRegion-API.patch rename to patches/server/0586-Add-more-LimitedRegion-API.patch diff --git a/patches/server/0588-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0587-Fix-PlayerDropItemEvent-using-wrong-item.patch similarity index 100% rename from patches/server/0588-Fix-PlayerDropItemEvent-using-wrong-item.patch rename to patches/server/0587-Fix-PlayerDropItemEvent-using-wrong-item.patch diff --git a/patches/server/0589-Missing-Entity-API.patch b/patches/server/0588-Missing-Entity-API.patch similarity index 99% rename from patches/server/0589-Missing-Entity-API.patch rename to patches/server/0588-Missing-Entity-API.patch index 3d09f0190710..b2f9618027bb 100644 --- a/patches/server/0589-Missing-Entity-API.patch +++ b/patches/server/0588-Missing-Entity-API.patch @@ -38,7 +38,7 @@ Co-authored-by: booky10 Co-authored-by: Amin diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java -index 5fb56067221434aa80e626437ed10f65bf416e4f..cfe6a6f6bcfd7a3b29ab25f5a6745d31c18f338d 100644 +index 8117578ced94aa6bf01871f6526a388385c4adf2..59699c59fdfc611177fdb3136f84ab539b17d9c9 100644 --- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java +++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java @@ -165,7 +165,7 @@ public class MobGoalHelper { diff --git a/patches/server/0590-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0589-Ensure-disconnect-for-book-edit-is-called-on-main.patch similarity index 100% rename from patches/server/0590-Ensure-disconnect-for-book-edit-is-called-on-main.patch rename to patches/server/0589-Ensure-disconnect-for-book-edit-is-called-on-main.patch diff --git a/patches/server/0591-Fix-return-value-of-Block-applyBoneMeal-always-being.patch b/patches/server/0590-Fix-return-value-of-Block-applyBoneMeal-always-being.patch similarity index 100% rename from patches/server/0591-Fix-return-value-of-Block-applyBoneMeal-always-being.patch rename to patches/server/0590-Fix-return-value-of-Block-applyBoneMeal-always-being.patch diff --git a/patches/server/0592-Use-getChunkIfLoadedImmediately-in-places.patch b/patches/server/0591-Use-getChunkIfLoadedImmediately-in-places.patch similarity index 97% rename from patches/server/0592-Use-getChunkIfLoadedImmediately-in-places.patch rename to patches/server/0591-Use-getChunkIfLoadedImmediately-in-places.patch index f15ccf89a0c4..19442f967b03 100644 --- a/patches/server/0592-Use-getChunkIfLoadedImmediately-in-places.patch +++ b/patches/server/0591-Use-getChunkIfLoadedImmediately-in-places.patch @@ -21,7 +21,7 @@ index 497dd11d7965c9f9a2cf991712cd30d875537240..49c23f4fbafbae516f3546c200448c40 @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 6dad081aa935cf3be19a0e0b913b2aaf97206230..fb2e1f1d9fcc3d2d1bd37f136f6a06ae5ccf79a1 100644 +index c4086b17db7624489a8873ee321e7707078e5e0b..9c8a2cae9832f2503aed6c2d6e32cdc2f12029c9 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -196,6 +196,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0593-Fix-commands-from-signs-not-firing-command-events.patch b/patches/server/0592-Fix-commands-from-signs-not-firing-command-events.patch similarity index 100% rename from patches/server/0593-Fix-commands-from-signs-not-firing-command-events.patch rename to patches/server/0592-Fix-commands-from-signs-not-firing-command-events.patch diff --git a/patches/server/0594-Add-PlayerArmSwingEvent.patch b/patches/server/0593-Add-PlayerArmSwingEvent.patch similarity index 100% rename from patches/server/0594-Add-PlayerArmSwingEvent.patch rename to patches/server/0593-Add-PlayerArmSwingEvent.patch diff --git a/patches/server/0595-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0594-Fix-kick-event-leave-message-not-being-sent.patch similarity index 100% rename from patches/server/0595-Fix-kick-event-leave-message-not-being-sent.patch rename to patches/server/0594-Fix-kick-event-leave-message-not-being-sent.patch diff --git a/patches/server/0596-Add-config-for-mobs-immune-to-default-effects.patch b/patches/server/0595-Add-config-for-mobs-immune-to-default-effects.patch similarity index 100% rename from patches/server/0596-Add-config-for-mobs-immune-to-default-effects.patch rename to patches/server/0595-Add-config-for-mobs-immune-to-default-effects.patch diff --git a/patches/server/0597-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0596-Don-t-apply-cramming-damage-to-players.patch similarity index 100% rename from patches/server/0597-Don-t-apply-cramming-damage-to-players.patch rename to patches/server/0596-Don-t-apply-cramming-damage-to-players.patch diff --git a/patches/server/0598-Rate-options-and-timings-for-sensors-and-behaviors.patch b/patches/server/0597-Rate-options-and-timings-for-sensors-and-behaviors.patch similarity index 100% rename from patches/server/0598-Rate-options-and-timings-for-sensors-and-behaviors.patch rename to patches/server/0597-Rate-options-and-timings-for-sensors-and-behaviors.patch diff --git a/patches/server/0599-Add-missing-forceDrop-toggles.patch b/patches/server/0598-Add-missing-forceDrop-toggles.patch similarity index 100% rename from patches/server/0599-Add-missing-forceDrop-toggles.patch rename to patches/server/0598-Add-missing-forceDrop-toggles.patch diff --git a/patches/server/0600-Stinger-API.patch b/patches/server/0599-Stinger-API.patch similarity index 100% rename from patches/server/0600-Stinger-API.patch rename to patches/server/0599-Stinger-API.patch diff --git a/patches/server/0601-Fix-incosistency-issue-with-empty-map-items-in-CB.patch b/patches/server/0600-Fix-incosistency-issue-with-empty-map-items-in-CB.patch similarity index 100% rename from patches/server/0601-Fix-incosistency-issue-with-empty-map-items-in-CB.patch rename to patches/server/0600-Fix-incosistency-issue-with-empty-map-items-in-CB.patch diff --git a/patches/server/0602-Add-System.out-err-catcher.patch b/patches/server/0601-Add-System.out-err-catcher.patch similarity index 100% rename from patches/server/0602-Add-System.out-err-catcher.patch rename to patches/server/0601-Add-System.out-err-catcher.patch diff --git a/patches/server/0603-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/server/0602-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/server/0603-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/server/0602-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/server/0604-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0603-Prevent-AFK-kick-while-watching-end-credits.patch similarity index 100% rename from patches/server/0604-Prevent-AFK-kick-while-watching-end-credits.patch rename to patches/server/0603-Prevent-AFK-kick-while-watching-end-credits.patch diff --git a/patches/server/0605-Allow-skipping-writing-of-comments-to-server.propert.patch b/patches/server/0604-Allow-skipping-writing-of-comments-to-server.propert.patch similarity index 100% rename from patches/server/0605-Allow-skipping-writing-of-comments-to-server.propert.patch rename to patches/server/0604-Allow-skipping-writing-of-comments-to-server.propert.patch diff --git a/patches/server/0606-Add-PlayerSetSpawnEvent.patch b/patches/server/0605-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/server/0606-Add-PlayerSetSpawnEvent.patch rename to patches/server/0605-Add-PlayerSetSpawnEvent.patch diff --git a/patches/server/0607-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0606-Make-hoppers-respect-inventory-max-stack-size.patch similarity index 100% rename from patches/server/0607-Make-hoppers-respect-inventory-max-stack-size.patch rename to patches/server/0606-Make-hoppers-respect-inventory-max-stack-size.patch diff --git a/patches/server/0608-Optimize-entity-tracker-passenger-checks.patch b/patches/server/0607-Optimize-entity-tracker-passenger-checks.patch similarity index 100% rename from patches/server/0608-Optimize-entity-tracker-passenger-checks.patch rename to patches/server/0607-Optimize-entity-tracker-passenger-checks.patch diff --git a/patches/server/0609-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0608-Config-option-for-Piglins-guarding-chests.patch similarity index 100% rename from patches/server/0609-Config-option-for-Piglins-guarding-chests.patch rename to patches/server/0608-Config-option-for-Piglins-guarding-chests.patch diff --git a/patches/server/0610-Add-EntityDamageItemEvent.patch b/patches/server/0609-Add-EntityDamageItemEvent.patch similarity index 100% rename from patches/server/0610-Add-EntityDamageItemEvent.patch rename to patches/server/0609-Add-EntityDamageItemEvent.patch diff --git a/patches/server/0611-Optimize-indirect-passenger-iteration.patch b/patches/server/0610-Optimize-indirect-passenger-iteration.patch similarity index 100% rename from patches/server/0611-Optimize-indirect-passenger-iteration.patch rename to patches/server/0610-Optimize-indirect-passenger-iteration.patch diff --git a/patches/server/0612-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0611-Configurable-item-frame-map-cursor-update-interval.patch similarity index 100% rename from patches/server/0612-Configurable-item-frame-map-cursor-update-interval.patch rename to patches/server/0611-Configurable-item-frame-map-cursor-update-interval.patch diff --git a/patches/server/0613-Clear-bucket-NBT-after-dispense.patch b/patches/server/0612-Clear-bucket-NBT-after-dispense.patch similarity index 100% rename from patches/server/0613-Clear-bucket-NBT-after-dispense.patch rename to patches/server/0612-Clear-bucket-NBT-after-dispense.patch diff --git a/patches/server/0614-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0613-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/server/0614-Change-EnderEye-target-without-changing-other-things.patch rename to patches/server/0613-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/server/0615-Add-BlockBreakBlockEvent.patch b/patches/server/0614-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/server/0615-Add-BlockBreakBlockEvent.patch rename to patches/server/0614-Add-BlockBreakBlockEvent.patch diff --git a/patches/server/0616-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/server/0615-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/server/0616-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/server/0615-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/server/0617-More-CommandBlock-API.patch b/patches/server/0616-More-CommandBlock-API.patch similarity index 100% rename from patches/server/0617-More-CommandBlock-API.patch rename to patches/server/0616-More-CommandBlock-API.patch diff --git a/patches/server/0618-Add-missing-team-sidebar-display-slots.patch b/patches/server/0617-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/server/0618-Add-missing-team-sidebar-display-slots.patch rename to patches/server/0617-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/server/0619-Add-back-EntityPortalExitEvent.patch b/patches/server/0618-Add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/server/0619-Add-back-EntityPortalExitEvent.patch rename to patches/server/0618-Add-back-EntityPortalExitEvent.patch diff --git a/patches/server/0620-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0619-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/server/0620-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/server/0619-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/server/0621-Get-entity-default-attributes.patch b/patches/server/0620-Get-entity-default-attributes.patch similarity index 100% rename from patches/server/0621-Get-entity-default-attributes.patch rename to patches/server/0620-Get-entity-default-attributes.patch diff --git a/patches/server/0622-Left-handed-API.patch b/patches/server/0621-Left-handed-API.patch similarity index 100% rename from patches/server/0622-Left-handed-API.patch rename to patches/server/0621-Left-handed-API.patch diff --git a/patches/server/0623-Add-more-advancement-API.patch b/patches/server/0622-Add-more-advancement-API.patch similarity index 100% rename from patches/server/0623-Add-more-advancement-API.patch rename to patches/server/0622-Add-more-advancement-API.patch diff --git a/patches/server/0624-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0623-Add-ItemFactory-getSpawnEgg-API.patch similarity index 100% rename from patches/server/0624-Add-ItemFactory-getSpawnEgg-API.patch rename to patches/server/0623-Add-ItemFactory-getSpawnEgg-API.patch diff --git a/patches/server/0625-Add-critical-damage-API.patch b/patches/server/0624-Add-critical-damage-API.patch similarity index 100% rename from patches/server/0625-Add-critical-damage-API.patch rename to patches/server/0624-Add-critical-damage-API.patch diff --git a/patches/server/0626-Fix-issues-with-mob-conversion.patch b/patches/server/0625-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/server/0626-Fix-issues-with-mob-conversion.patch rename to patches/server/0625-Fix-issues-with-mob-conversion.patch diff --git a/patches/server/0627-Add-isCollidable-methods-to-various-places.patch b/patches/server/0626-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/server/0627-Add-isCollidable-methods-to-various-places.patch rename to patches/server/0626-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/server/0628-Goat-ram-API.patch b/patches/server/0627-Goat-ram-API.patch similarity index 100% rename from patches/server/0628-Goat-ram-API.patch rename to patches/server/0627-Goat-ram-API.patch diff --git a/patches/server/0629-Add-API-for-resetting-a-single-score.patch b/patches/server/0628-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/server/0629-Add-API-for-resetting-a-single-score.patch rename to patches/server/0628-Add-API-for-resetting-a-single-score.patch diff --git a/patches/server/0630-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0629-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/server/0630-Add-Raw-Byte-Entity-Serialization.patch rename to patches/server/0629-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/server/0631-Vanilla-command-permission-fixes.patch b/patches/server/0630-Vanilla-command-permission-fixes.patch similarity index 100% rename from patches/server/0631-Vanilla-command-permission-fixes.patch rename to patches/server/0630-Vanilla-command-permission-fixes.patch diff --git a/patches/server/0632-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0631-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch similarity index 100% rename from patches/server/0632-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch rename to patches/server/0631-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch diff --git a/patches/server/0633-Fix-GameProfileCache-concurrency.patch b/patches/server/0632-Fix-GameProfileCache-concurrency.patch similarity index 100% rename from patches/server/0633-Fix-GameProfileCache-concurrency.patch rename to patches/server/0632-Fix-GameProfileCache-concurrency.patch diff --git a/patches/server/0634-Improve-and-expand-AsyncCatcher.patch b/patches/server/0633-Improve-and-expand-AsyncCatcher.patch similarity index 100% rename from patches/server/0634-Improve-and-expand-AsyncCatcher.patch rename to patches/server/0633-Improve-and-expand-AsyncCatcher.patch diff --git a/patches/server/0635-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0634-Add-paper-mobcaps-and-paper-playermobcaps.patch similarity index 100% rename from patches/server/0635-Add-paper-mobcaps-and-paper-playermobcaps.patch rename to patches/server/0634-Add-paper-mobcaps-and-paper-playermobcaps.patch diff --git a/patches/server/0636-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0635-Sanitize-ResourceLocation-error-logging.patch similarity index 100% rename from patches/server/0636-Sanitize-ResourceLocation-error-logging.patch rename to patches/server/0635-Sanitize-ResourceLocation-error-logging.patch diff --git a/patches/server/0637-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0636-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/server/0637-Manually-inline-methods-in-BlockPosition.patch rename to patches/server/0636-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/server/0638-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0637-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/server/0638-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/server/0637-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/server/0639-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0638-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 90% rename from patches/server/0639-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/server/0638-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch index 945af5ac436d..be89fb619294 100644 --- a/patches/server/0639-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch +++ b/patches/server/0638-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch @@ -10,10 +10,10 @@ chunks did get inlined, but the standard CPS.getChunkAt method was not inlined. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index fb2e1f1d9fcc3d2d1bd37f136f6a06ae5ccf79a1..74cb6cf55ed9b4e31ac3c06d9612823f7ede9ff3 100644 +index 9c8a2cae9832f2503aed6c2d6e32cdc2f12029c9..709d3e5c506c9dd14f51c455eee7093fb9703168 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -365,6 +365,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -372,6 +372,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public final LevelChunk getChunk(int chunkX, int chunkZ) { // Paper - final to help inline diff --git a/patches/server/0640-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0639-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/server/0640-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/server/0639-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/server/0641-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0640-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch similarity index 100% rename from patches/server/0641-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch rename to patches/server/0640-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch diff --git a/patches/server/0642-Time-scoreboard-search.patch b/patches/server/0641-Time-scoreboard-search.patch similarity index 100% rename from patches/server/0642-Time-scoreboard-search.patch rename to patches/server/0641-Time-scoreboard-search.patch diff --git a/patches/server/0643-Send-full-pos-packets-for-hard-colliding-entities.patch b/patches/server/0642-Send-full-pos-packets-for-hard-colliding-entities.patch similarity index 100% rename from patches/server/0643-Send-full-pos-packets-for-hard-colliding-entities.patch rename to patches/server/0642-Send-full-pos-packets-for-hard-colliding-entities.patch diff --git a/patches/server/0644-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0643-Oprimise-map-impl-for-tracked-players.patch similarity index 87% rename from patches/server/0644-Oprimise-map-impl-for-tracked-players.patch rename to patches/server/0643-Oprimise-map-impl-for-tracked-players.patch index b5dd0be2c3ba..2b7347016c70 100644 --- a/patches/server/0644-Oprimise-map-impl-for-tracked-players.patch +++ b/patches/server/0643-Oprimise-map-impl-for-tracked-players.patch @@ -7,10 +7,10 @@ Reference2BooleanOpenHashMap is going to have better lookups than HashMap. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 1ad4e5a0a4d236012c1dfb0dbffdacd0f134b72c..c0bc7495109a8d727c913e7cdc98d75a30bc7a55 100644 +index 69d140fbcccc9054f15716e35a7b854b387fe21d..f7ebb560a3f8aebb5e35397814eaa7af098897c3 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1115,7 +1115,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1119,7 +1119,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider final Entity entity; private final int range; SectionPos lastSectionPos; diff --git a/patches/server/0645-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0644-Optimise-BlockSoil-nearby-water-lookup.patch similarity index 100% rename from patches/server/0645-Optimise-BlockSoil-nearby-water-lookup.patch rename to patches/server/0644-Optimise-BlockSoil-nearby-water-lookup.patch diff --git a/patches/server/0646-Distance-manager-tick-timings.patch b/patches/server/0645-Distance-manager-tick-timings.patch similarity index 100% rename from patches/server/0646-Distance-manager-tick-timings.patch rename to patches/server/0645-Distance-manager-tick-timings.patch diff --git a/patches/server/0647-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0646-Fix-merchant-inventory-not-closing-on-entity-removal.patch similarity index 100% rename from patches/server/0647-Fix-merchant-inventory-not-closing-on-entity-removal.patch rename to patches/server/0646-Fix-merchant-inventory-not-closing-on-entity-removal.patch diff --git a/patches/server/0648-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0647-Check-requirement-before-suggesting-root-nodes.patch similarity index 100% rename from patches/server/0648-Check-requirement-before-suggesting-root-nodes.patch rename to patches/server/0647-Check-requirement-before-suggesting-root-nodes.patch diff --git a/patches/server/0649-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0648-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch similarity index 100% rename from patches/server/0649-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch rename to patches/server/0648-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch diff --git a/patches/server/0650-Add-packet-limiter-config.patch b/patches/server/0649-Add-packet-limiter-config.patch similarity index 100% rename from patches/server/0650-Add-packet-limiter-config.patch rename to patches/server/0649-Add-packet-limiter-config.patch diff --git a/patches/server/0651-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0650-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch similarity index 100% rename from patches/server/0651-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch rename to patches/server/0650-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch diff --git a/patches/server/0652-Ensure-valid-vehicle-status.patch b/patches/server/0651-Ensure-valid-vehicle-status.patch similarity index 100% rename from patches/server/0652-Ensure-valid-vehicle-status.patch rename to patches/server/0651-Ensure-valid-vehicle-status.patch diff --git a/patches/server/0653-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0652-Prevent-softlocked-end-exit-portal-generation.patch similarity index 100% rename from patches/server/0653-Prevent-softlocked-end-exit-portal-generation.patch rename to patches/server/0652-Prevent-softlocked-end-exit-portal-generation.patch diff --git a/patches/server/0654-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0653-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch similarity index 100% rename from patches/server/0654-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch rename to patches/server/0653-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch diff --git a/patches/server/0655-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0654-Don-t-log-debug-logging-being-disabled.patch similarity index 100% rename from patches/server/0655-Don-t-log-debug-logging-being-disabled.patch rename to patches/server/0654-Don-t-log-debug-logging-being-disabled.patch diff --git a/patches/server/0656-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0655-fix-various-menus-with-empty-level-accesses.patch similarity index 100% rename from patches/server/0656-fix-various-menus-with-empty-level-accesses.patch rename to patches/server/0655-fix-various-menus-with-empty-level-accesses.patch diff --git a/patches/server/0657-Preserve-overstacked-loot.patch b/patches/server/0656-Preserve-overstacked-loot.patch similarity index 100% rename from patches/server/0657-Preserve-overstacked-loot.patch rename to patches/server/0656-Preserve-overstacked-loot.patch diff --git a/patches/server/0658-Update-head-rotation-in-missing-places.patch b/patches/server/0657-Update-head-rotation-in-missing-places.patch similarity index 100% rename from patches/server/0658-Update-head-rotation-in-missing-places.patch rename to patches/server/0657-Update-head-rotation-in-missing-places.patch diff --git a/patches/server/0659-prevent-unintended-light-block-manipulation.patch b/patches/server/0658-prevent-unintended-light-block-manipulation.patch similarity index 100% rename from patches/server/0659-prevent-unintended-light-block-manipulation.patch rename to patches/server/0658-prevent-unintended-light-block-manipulation.patch diff --git a/patches/server/0660-Fix-CraftCriteria-defaults-map.patch b/patches/server/0659-Fix-CraftCriteria-defaults-map.patch similarity index 100% rename from patches/server/0660-Fix-CraftCriteria-defaults-map.patch rename to patches/server/0659-Fix-CraftCriteria-defaults-map.patch diff --git a/patches/server/0661-Fix-upstreams-block-state-factories.patch b/patches/server/0660-Fix-upstreams-block-state-factories.patch similarity index 100% rename from patches/server/0661-Fix-upstreams-block-state-factories.patch rename to patches/server/0660-Fix-upstreams-block-state-factories.patch diff --git a/patches/server/0662-Configurable-feature-seeds.patch b/patches/server/0661-Configurable-feature-seeds.patch similarity index 100% rename from patches/server/0662-Configurable-feature-seeds.patch rename to patches/server/0661-Configurable-feature-seeds.patch diff --git a/patches/server/0663-Add-root-admin-user-detection.patch b/patches/server/0662-Add-root-admin-user-detection.patch similarity index 100% rename from patches/server/0663-Add-root-admin-user-detection.patch rename to patches/server/0662-Add-root-admin-user-detection.patch diff --git a/patches/server/0664-Always-allow-item-changing-in-Fireball.patch b/patches/server/0663-Always-allow-item-changing-in-Fireball.patch similarity index 100% rename from patches/server/0664-Always-allow-item-changing-in-Fireball.patch rename to patches/server/0663-Always-allow-item-changing-in-Fireball.patch diff --git a/patches/server/0665-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0664-don-t-attempt-to-teleport-dead-entities.patch similarity index 100% rename from patches/server/0665-don-t-attempt-to-teleport-dead-entities.patch rename to patches/server/0664-don-t-attempt-to-teleport-dead-entities.patch diff --git a/patches/server/0666-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0665-Prevent-excessive-velocity-through-repeated-crits.patch similarity index 100% rename from patches/server/0666-Prevent-excessive-velocity-through-repeated-crits.patch rename to patches/server/0665-Prevent-excessive-velocity-through-repeated-crits.patch diff --git a/patches/server/0667-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0666-Remove-client-side-code-using-deprecated-for-removal.patch similarity index 100% rename from patches/server/0667-Remove-client-side-code-using-deprecated-for-removal.patch rename to patches/server/0666-Remove-client-side-code-using-deprecated-for-removal.patch diff --git a/patches/server/0668-Fix-removing-recipes-from-RecipeIterator.patch b/patches/server/0667-Fix-removing-recipes-from-RecipeIterator.patch similarity index 100% rename from patches/server/0668-Fix-removing-recipes-from-RecipeIterator.patch rename to patches/server/0667-Fix-removing-recipes-from-RecipeIterator.patch diff --git a/patches/server/0669-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/0668-Prevent-sending-oversized-item-data-in-equipment-and.patch similarity index 100% rename from patches/server/0669-Prevent-sending-oversized-item-data-in-equipment-and.patch rename to patches/server/0668-Prevent-sending-oversized-item-data-in-equipment-and.patch diff --git a/patches/server/0670-Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/0669-Hide-unnecessary-itemmeta-from-clients.patch similarity index 100% rename from patches/server/0670-Hide-unnecessary-itemmeta-from-clients.patch rename to patches/server/0669-Hide-unnecessary-itemmeta-from-clients.patch diff --git a/patches/server/0671-Fix-Spigot-growth-modifiers.patch b/patches/server/0670-Fix-Spigot-growth-modifiers.patch similarity index 100% rename from patches/server/0671-Fix-Spigot-growth-modifiers.patch rename to patches/server/0670-Fix-Spigot-growth-modifiers.patch diff --git a/patches/server/0672-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0671-Prevent-ContainerOpenersCounter-openCount-from-going.patch similarity index 100% rename from patches/server/0672-Prevent-ContainerOpenersCounter-openCount-from-going.patch rename to patches/server/0671-Prevent-ContainerOpenersCounter-openCount-from-going.patch diff --git a/patches/server/0673-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0672-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/server/0673-Add-PlayerItemFrameChangeEvent.patch rename to patches/server/0672-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/server/0674-Optimize-HashMapPalette.patch b/patches/server/0673-Optimize-HashMapPalette.patch similarity index 100% rename from patches/server/0674-Optimize-HashMapPalette.patch rename to patches/server/0673-Optimize-HashMapPalette.patch diff --git a/patches/server/0675-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0674-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/server/0675-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/server/0674-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/server/0676-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0675-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch similarity index 100% rename from patches/server/0676-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch rename to patches/server/0675-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch diff --git a/patches/server/0677-Add-more-Campfire-API.patch b/patches/server/0676-Add-more-Campfire-API.patch similarity index 100% rename from patches/server/0677-Add-more-Campfire-API.patch rename to patches/server/0676-Add-more-Campfire-API.patch diff --git a/patches/server/0678-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0677-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch similarity index 100% rename from patches/server/0678-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch rename to patches/server/0677-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch diff --git a/patches/server/0679-Forward-CraftEntity-in-teleport-command.patch b/patches/server/0678-Forward-CraftEntity-in-teleport-command.patch similarity index 100% rename from patches/server/0679-Forward-CraftEntity-in-teleport-command.patch rename to patches/server/0678-Forward-CraftEntity-in-teleport-command.patch diff --git a/patches/server/0680-Improve-scoreboard-entries.patch b/patches/server/0679-Improve-scoreboard-entries.patch similarity index 100% rename from patches/server/0680-Improve-scoreboard-entries.patch rename to patches/server/0679-Improve-scoreboard-entries.patch diff --git a/patches/server/0681-Entity-powdered-snow-API.patch b/patches/server/0680-Entity-powdered-snow-API.patch similarity index 100% rename from patches/server/0681-Entity-powdered-snow-API.patch rename to patches/server/0680-Entity-powdered-snow-API.patch diff --git a/patches/server/0682-Add-API-for-item-entity-health.patch b/patches/server/0681-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/server/0682-Add-API-for-item-entity-health.patch rename to patches/server/0681-Add-API-for-item-entity-health.patch diff --git a/patches/server/0683-Configurable-max-block-light-for-monster-spawning.patch b/patches/server/0682-Configurable-max-block-light-for-monster-spawning.patch similarity index 100% rename from patches/server/0683-Configurable-max-block-light-for-monster-spawning.patch rename to patches/server/0682-Configurable-max-block-light-for-monster-spawning.patch diff --git a/patches/server/0684-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch b/patches/server/0683-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch similarity index 100% rename from patches/server/0684-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch rename to patches/server/0683-Fix-sticky-pistons-and-BlockPistonRetractEvent.patch diff --git a/patches/server/0685-Load-effect-amplifiers-greater-than-127-correctly.patch b/patches/server/0684-Load-effect-amplifiers-greater-than-127-correctly.patch similarity index 100% rename from patches/server/0685-Load-effect-amplifiers-greater-than-127-correctly.patch rename to patches/server/0684-Load-effect-amplifiers-greater-than-127-correctly.patch diff --git a/patches/server/0686-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/server/0685-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/server/0686-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/server/0685-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/server/0687-Fix-bees-aging-inside-hives.patch b/patches/server/0686-Fix-bees-aging-inside-hives.patch similarity index 100% rename from patches/server/0687-Fix-bees-aging-inside-hives.patch rename to patches/server/0686-Fix-bees-aging-inside-hives.patch diff --git a/patches/server/0688-Bucketable-API.patch b/patches/server/0687-Bucketable-API.patch similarity index 100% rename from patches/server/0688-Bucketable-API.patch rename to patches/server/0687-Bucketable-API.patch diff --git a/patches/server/0689-Validate-usernames.patch b/patches/server/0688-Validate-usernames.patch similarity index 100% rename from patches/server/0689-Validate-usernames.patch rename to patches/server/0688-Validate-usernames.patch diff --git a/patches/server/0690-Make-water-animal-spawn-height-configurable.patch b/patches/server/0689-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/server/0690-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0689-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/server/0691-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0690-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/server/0691-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0690-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/server/0692-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0691-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/server/0692-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0691-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/server/0693-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch b/patches/server/0692-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch similarity index 100% rename from patches/server/0693-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch rename to patches/server/0692-Add-missing-IAE-check-for-PersistentDataContainer-ha.patch diff --git a/patches/server/0694-Multiple-Entries-with-Scoreboards.patch b/patches/server/0693-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/server/0694-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0693-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/server/0695-Reset-placed-block-on-exception.patch b/patches/server/0694-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/server/0695-Reset-placed-block-on-exception.patch rename to patches/server/0694-Reset-placed-block-on-exception.patch diff --git a/patches/server/0696-Add-configurable-height-for-slime-spawn.patch b/patches/server/0695-Add-configurable-height-for-slime-spawn.patch similarity index 100% rename from patches/server/0696-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0695-Add-configurable-height-for-slime-spawn.patch diff --git a/patches/server/0697-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0696-Fix-xp-reward-for-baby-zombies.patch similarity index 100% rename from patches/server/0697-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0696-Fix-xp-reward-for-baby-zombies.patch diff --git a/patches/server/0698-Multi-Block-Change-API-Implementation.patch b/patches/server/0697-Multi-Block-Change-API-Implementation.patch similarity index 100% rename from patches/server/0698-Multi-Block-Change-API-Implementation.patch rename to patches/server/0697-Multi-Block-Change-API-Implementation.patch diff --git a/patches/server/0699-Fix-NotePlayEvent.patch b/patches/server/0698-Fix-NotePlayEvent.patch similarity index 100% rename from patches/server/0699-Fix-NotePlayEvent.patch rename to patches/server/0698-Fix-NotePlayEvent.patch diff --git a/patches/server/0700-Freeze-Tick-Lock-API.patch b/patches/server/0699-Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/server/0700-Freeze-Tick-Lock-API.patch rename to patches/server/0699-Freeze-Tick-Lock-API.patch diff --git a/patches/server/0701-More-PotionEffectType-API.patch b/patches/server/0700-More-PotionEffectType-API.patch similarity index 100% rename from patches/server/0701-More-PotionEffectType-API.patch rename to patches/server/0700-More-PotionEffectType-API.patch diff --git a/patches/server/0702-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0701-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/server/0702-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0701-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/server/0703-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0702-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/server/0703-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0702-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/server/0704-Add-missing-structure-set-seed-configs.patch b/patches/server/0703-Add-missing-structure-set-seed-configs.patch similarity index 100% rename from patches/server/0704-Add-missing-structure-set-seed-configs.patch rename to patches/server/0703-Add-missing-structure-set-seed-configs.patch diff --git a/patches/server/0705-Implement-regenerateChunk.patch b/patches/server/0704-Implement-regenerateChunk.patch similarity index 100% rename from patches/server/0705-Implement-regenerateChunk.patch rename to patches/server/0704-Implement-regenerateChunk.patch diff --git a/patches/server/0706-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0705-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 100% rename from patches/server/0706-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0705-Fix-cancelled-powdered-snow-bucket-placement.patch diff --git a/patches/server/0707-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0706-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 100% rename from patches/server/0707-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0706-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch diff --git a/patches/server/0708-Add-GameEvent-tags.patch b/patches/server/0707-Add-GameEvent-tags.patch similarity index 100% rename from patches/server/0708-Add-GameEvent-tags.patch rename to patches/server/0707-Add-GameEvent-tags.patch diff --git a/patches/server/0709-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0708-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 100% rename from patches/server/0709-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0708-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch diff --git a/patches/server/0710-Furnace-RecipesUsed-API.patch b/patches/server/0709-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/server/0710-Furnace-RecipesUsed-API.patch rename to patches/server/0709-Furnace-RecipesUsed-API.patch diff --git a/patches/server/0711-Configurable-sculk-sensor-listener-range.patch b/patches/server/0710-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/server/0711-Configurable-sculk-sensor-listener-range.patch rename to patches/server/0710-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/server/0712-Add-missing-block-data-mins-and-maxes.patch b/patches/server/0711-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/server/0712-Add-missing-block-data-mins-and-maxes.patch rename to patches/server/0711-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/server/0713-Option-to-have-default-CustomSpawners-in-custom-worl.patch b/patches/server/0712-Option-to-have-default-CustomSpawners-in-custom-worl.patch similarity index 100% rename from patches/server/0713-Option-to-have-default-CustomSpawners-in-custom-worl.patch rename to patches/server/0712-Option-to-have-default-CustomSpawners-in-custom-worl.patch diff --git a/patches/server/0714-Put-world-into-worldlist-before-initing-the-world.patch b/patches/server/0713-Put-world-into-worldlist-before-initing-the-world.patch similarity index 100% rename from patches/server/0714-Put-world-into-worldlist-before-initing-the-world.patch rename to patches/server/0713-Put-world-into-worldlist-before-initing-the-world.patch diff --git a/patches/server/0715-Fix-Entity-Position-Desync.patch b/patches/server/0714-Fix-Entity-Position-Desync.patch similarity index 100% rename from patches/server/0715-Fix-Entity-Position-Desync.patch rename to patches/server/0714-Fix-Entity-Position-Desync.patch diff --git a/patches/server/0716-Custom-Potion-Mixes.patch b/patches/server/0715-Custom-Potion-Mixes.patch similarity index 100% rename from patches/server/0716-Custom-Potion-Mixes.patch rename to patches/server/0715-Custom-Potion-Mixes.patch diff --git a/patches/server/0717-Force-close-world-loading-screen.patch b/patches/server/0716-Force-close-world-loading-screen.patch similarity index 93% rename from patches/server/0717-Force-close-world-loading-screen.patch rename to patches/server/0716-Force-close-world-loading-screen.patch index 47feea33197e..bb2c070e553c 100644 --- a/patches/server/0717-Force-close-world-loading-screen.patch +++ b/patches/server/0716-Force-close-world-loading-screen.patch @@ -10,7 +10,7 @@ so we do not need that. The client only needs the chunk it is currently in to be loaded to close the loading screen, so we just send an empty one. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e67bcde933d8d64ca1d9d18b938f118994bf222b..bc16ce7734fa328192a67491fac83f89e3e819f6 100644 +index e67bcde933d8d64ca1d9d18b938f118994bf222b..d0037eaf1a1a256d3d7e2e309c476593a93f8273 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -398,6 +398,16 @@ public abstract class PlayerList { @@ -23,7 +23,7 @@ index e67bcde933d8d64ca1d9d18b938f118994bf222b..bc16ce7734fa328192a67491fac83f89 + .getHolderOrThrow(net.minecraft.world.level.biome.Biomes.PLAINS); + player.connection.send(new net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket( + new net.minecraft.world.level.chunk.EmptyLevelChunk(worldserver1, player.chunkPosition(), plains), -+ worldserver1.getLightEngine(), (java.util.BitSet)null, (java.util.BitSet) null, false) ++ worldserver1.getLightEngine(), (java.util.BitSet)null, (java.util.BitSet) null) + ); + } + // Paper end - Send empty chunk diff --git a/patches/server/0718-Fix-falling-block-spawn-methods.patch b/patches/server/0717-Fix-falling-block-spawn-methods.patch similarity index 100% rename from patches/server/0718-Fix-falling-block-spawn-methods.patch rename to patches/server/0717-Fix-falling-block-spawn-methods.patch diff --git a/patches/server/0719-Expose-furnace-minecart-push-values.patch b/patches/server/0718-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/server/0719-Expose-furnace-minecart-push-values.patch rename to patches/server/0718-Expose-furnace-minecart-push-values.patch diff --git a/patches/server/0720-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch b/patches/server/0719-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch similarity index 100% rename from patches/server/0720-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch rename to patches/server/0719-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch diff --git a/patches/server/0721-More-Projectile-API.patch b/patches/server/0720-More-Projectile-API.patch similarity index 100% rename from patches/server/0721-More-Projectile-API.patch rename to patches/server/0720-More-Projectile-API.patch diff --git a/patches/server/0722-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/server/0721-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/server/0722-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/server/0721-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/server/0723-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0722-Don-t-allow-vehicle-movement-from-players-while-tele.patch similarity index 100% rename from patches/server/0723-Don-t-allow-vehicle-movement-from-players-while-tele.patch rename to patches/server/0722-Don-t-allow-vehicle-movement-from-players-while-tele.patch diff --git a/patches/server/0724-Implement-getComputedBiome-API.patch b/patches/server/0723-Implement-getComputedBiome-API.patch similarity index 100% rename from patches/server/0724-Implement-getComputedBiome-API.patch rename to patches/server/0723-Implement-getComputedBiome-API.patch diff --git a/patches/server/0725-Make-some-itemstacks-nonnull.patch b/patches/server/0724-Make-some-itemstacks-nonnull.patch similarity index 100% rename from patches/server/0725-Make-some-itemstacks-nonnull.patch rename to patches/server/0724-Make-some-itemstacks-nonnull.patch diff --git a/patches/server/0726-Implement-enchantWithLevels-API.patch b/patches/server/0725-Implement-enchantWithLevels-API.patch similarity index 100% rename from patches/server/0726-Implement-enchantWithLevels-API.patch rename to patches/server/0725-Implement-enchantWithLevels-API.patch diff --git a/patches/server/0727-Fix-saving-in-unloadWorld.patch b/patches/server/0726-Fix-saving-in-unloadWorld.patch similarity index 100% rename from patches/server/0727-Fix-saving-in-unloadWorld.patch rename to patches/server/0726-Fix-saving-in-unloadWorld.patch diff --git a/patches/server/0728-Buffer-OOB-setBlock-calls.patch b/patches/server/0727-Buffer-OOB-setBlock-calls.patch similarity index 100% rename from patches/server/0728-Buffer-OOB-setBlock-calls.patch rename to patches/server/0727-Buffer-OOB-setBlock-calls.patch diff --git a/patches/server/0729-Add-TameableDeathMessageEvent.patch b/patches/server/0728-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/server/0729-Add-TameableDeathMessageEvent.patch rename to patches/server/0728-Add-TameableDeathMessageEvent.patch diff --git a/patches/server/0730-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0729-Fix-new-block-data-for-EntityChangeBlockEvent.patch similarity index 100% rename from patches/server/0730-Fix-new-block-data-for-EntityChangeBlockEvent.patch rename to patches/server/0729-Fix-new-block-data-for-EntityChangeBlockEvent.patch diff --git a/patches/server/0731-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0730-fix-player-loottables-running-when-mob-loot-gamerule.patch similarity index 100% rename from patches/server/0731-fix-player-loottables-running-when-mob-loot-gamerule.patch rename to patches/server/0730-fix-player-loottables-running-when-mob-loot-gamerule.patch diff --git a/patches/server/0732-Ensure-entity-passenger-world-matches-ridden-entity.patch b/patches/server/0731-Ensure-entity-passenger-world-matches-ridden-entity.patch similarity index 100% rename from patches/server/0732-Ensure-entity-passenger-world-matches-ridden-entity.patch rename to patches/server/0731-Ensure-entity-passenger-world-matches-ridden-entity.patch diff --git a/patches/server/0733-cache-resource-keys.patch b/patches/server/0732-cache-resource-keys.patch similarity index 100% rename from patches/server/0733-cache-resource-keys.patch rename to patches/server/0732-cache-resource-keys.patch diff --git a/patches/server/0734-Allow-changing-the-EnderDragon-podium.patch b/patches/server/0733-Allow-changing-the-EnderDragon-podium.patch similarity index 100% rename from patches/server/0734-Allow-changing-the-EnderDragon-podium.patch rename to patches/server/0733-Allow-changing-the-EnderDragon-podium.patch diff --git a/patches/server/0735-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch b/patches/server/0734-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch similarity index 100% rename from patches/server/0735-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch rename to patches/server/0734-Fix-NBT-pieces-overriding-a-block-entity-during-worl.patch diff --git a/patches/server/0736-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch b/patches/server/0735-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch similarity index 100% rename from patches/server/0736-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch rename to patches/server/0735-Fix-StructureGrowEvent-species-for-RED_MUSHROOM.patch diff --git a/patches/server/0737-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0736-Prevent-tile-entity-copies-loading-chunks.patch similarity index 100% rename from patches/server/0737-Prevent-tile-entity-copies-loading-chunks.patch rename to patches/server/0736-Prevent-tile-entity-copies-loading-chunks.patch diff --git a/patches/server/0738-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0737-Use-username-instead-of-display-name-in-PlayerList-g.patch similarity index 92% rename from patches/server/0738-Use-username-instead-of-display-name-in-PlayerList-g.patch rename to patches/server/0737-Use-username-instead-of-display-name-in-PlayerList-g.patch index 3b5d6c2fa55c..552c2079bce0 100644 --- a/patches/server/0738-Use-username-instead-of-display-name-in-PlayerList-g.patch +++ b/patches/server/0737-Use-username-instead-of-display-name-in-PlayerList-g.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use username instead of display name in diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index bc16ce7734fa328192a67491fac83f89e3e819f6..9643482f933dc81e34fbaf6874ecfd50e1677c4b 100644 +index d0037eaf1a1a256d3d7e2e309c476593a93f8273..4602f8a4f22eed417bf3c56f0147ed697e349f37 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1447,7 +1447,7 @@ public abstract class PlayerList { diff --git a/patches/server/0739-Pass-ServerLevel-for-gamerule-callbacks.patch b/patches/server/0738-Pass-ServerLevel-for-gamerule-callbacks.patch similarity index 100% rename from patches/server/0739-Pass-ServerLevel-for-gamerule-callbacks.patch rename to patches/server/0738-Pass-ServerLevel-for-gamerule-callbacks.patch diff --git a/patches/server/0740-Expand-PlayerItemDamageEvent.patch b/patches/server/0739-Expand-PlayerItemDamageEvent.patch similarity index 100% rename from patches/server/0740-Expand-PlayerItemDamageEvent.patch rename to patches/server/0739-Expand-PlayerItemDamageEvent.patch diff --git a/patches/server/0741-WorldCreator-keepSpawnLoaded.patch b/patches/server/0740-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/server/0741-WorldCreator-keepSpawnLoaded.patch rename to patches/server/0740-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/server/0742-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0741-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0742-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0741-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0743-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch b/patches/server/0742-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch similarity index 100% rename from patches/server/0743-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch rename to patches/server/0742-Trigger-bee_nest_destroyed-trigger-in-the-correct-pl.patch diff --git a/patches/server/0744-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/server/0743-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/server/0744-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/server/0743-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/server/0745-Fire-CauldronLevelChange-on-initial-fill.patch b/patches/server/0744-Fire-CauldronLevelChange-on-initial-fill.patch similarity index 100% rename from patches/server/0745-Fire-CauldronLevelChange-on-initial-fill.patch rename to patches/server/0744-Fire-CauldronLevelChange-on-initial-fill.patch diff --git a/patches/server/0746-fix-powder-snow-cauldrons-not-turning-to-water.patch b/patches/server/0745-fix-powder-snow-cauldrons-not-turning-to-water.patch similarity index 100% rename from patches/server/0746-fix-powder-snow-cauldrons-not-turning-to-water.patch rename to patches/server/0745-fix-powder-snow-cauldrons-not-turning-to-water.patch diff --git a/patches/server/0747-Add-PlayerStopUsingItemEvent.patch b/patches/server/0746-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/server/0747-Add-PlayerStopUsingItemEvent.patch rename to patches/server/0746-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/server/0748-Don-t-tick-markers.patch b/patches/server/0747-Don-t-tick-markers.patch similarity index 95% rename from patches/server/0748-Don-t-tick-markers.patch rename to patches/server/0747-Don-t-tick-markers.patch index 3b66b6d37360..8b52058308b3 100644 --- a/patches/server/0748-Don-t-tick-markers.patch +++ b/patches/server/0747-Don-t-tick-markers.patch @@ -35,10 +35,10 @@ index 6ece18d5429217ee53ca5ae5c0eb7450aa5f63ec..9fffd60371500b05c009e0c8ac7d8312 } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index d5374072a97f791964033d107f023b3cc657b343..aaa997613a991a9fc5ed276a7e7e61448f34ef64 100644 +index f60eb4bf10c32d2d92fa24992ed20525f0f0f781..dfbcddadea4a89c4cfc879105cfacae6dde742a9 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -135,8 +135,14 @@ public class ActivationRange +@@ -138,8 +138,14 @@ public class ActivationRange // Paper start java.util.List entities = world.getEntities((Entity)null, ActivationRange.maxBB, null); diff --git a/patches/server/0749-Expand-FallingBlock-API.patch b/patches/server/0748-Expand-FallingBlock-API.patch similarity index 100% rename from patches/server/0749-Expand-FallingBlock-API.patch rename to patches/server/0748-Expand-FallingBlock-API.patch diff --git a/patches/server/0750-Do-not-accept-invalid-client-settings.patch b/patches/server/0749-Do-not-accept-invalid-client-settings.patch similarity index 100% rename from patches/server/0750-Do-not-accept-invalid-client-settings.patch rename to patches/server/0749-Do-not-accept-invalid-client-settings.patch diff --git a/patches/server/0751-Add-support-for-Proxy-Protocol.patch b/patches/server/0750-Add-support-for-Proxy-Protocol.patch similarity index 100% rename from patches/server/0751-Add-support-for-Proxy-Protocol.patch rename to patches/server/0750-Add-support-for-Proxy-Protocol.patch diff --git a/patches/server/0752-Fix-OfflinePlayer-getBedSpawnLocation.patch b/patches/server/0751-Fix-OfflinePlayer-getBedSpawnLocation.patch similarity index 100% rename from patches/server/0752-Fix-OfflinePlayer-getBedSpawnLocation.patch rename to patches/server/0751-Fix-OfflinePlayer-getBedSpawnLocation.patch diff --git a/patches/server/0753-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch b/patches/server/0752-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch similarity index 100% rename from patches/server/0753-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch rename to patches/server/0752-Fix-FurnaceInventory-for-smokers-and-blast-furnaces.patch diff --git a/patches/server/0754-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0753-Sanitize-sent-BlockEntity-NBT.patch similarity index 94% rename from patches/server/0754-Sanitize-sent-BlockEntity-NBT.patch rename to patches/server/0753-Sanitize-sent-BlockEntity-NBT.patch index 9f25d888657f..960684891e20 100644 --- a/patches/server/0754-Sanitize-sent-BlockEntity-NBT.patch +++ b/patches/server/0753-Sanitize-sent-BlockEntity-NBT.patch @@ -18,10 +18,10 @@ index d79284a790569141c2ac8178d6ecc20b17cdd0d3..3944852921335c78a04a9dc301882ab5 public static ClientboundBlockEntityDataPacket create(BlockEntity blockEntity) { diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index dda7151d333144399ba5602e1b651b1f5b8f8f0d..582a3e5e45dd10068eeb25a3e37bdece3ddbc296 100644 +index f47eeb70661661610ef1a96dd9da67785825c126..89e3163b0301f8414c9400a6e00cdd85841fe2e8 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -@@ -170,6 +170,7 @@ public class ClientboundLevelChunkPacketData { +@@ -152,6 +152,7 @@ public class ClientboundLevelChunkPacketData { CompoundTag compoundTag = blockEntity.getUpdateTag(); BlockPos blockPos = blockEntity.getBlockPos(); int i = SectionPos.sectionRelative(blockPos.getX()) << 4 | SectionPos.sectionRelative(blockPos.getZ()); diff --git a/patches/server/0755-Disable-component-selector-resolving-in-books-by-def.patch b/patches/server/0754-Disable-component-selector-resolving-in-books-by-def.patch similarity index 100% rename from patches/server/0755-Disable-component-selector-resolving-in-books-by-def.patch rename to patches/server/0754-Disable-component-selector-resolving-in-books-by-def.patch diff --git a/patches/server/0756-Prevent-entity-loading-causing-async-lookups.patch b/patches/server/0755-Prevent-entity-loading-causing-async-lookups.patch similarity index 100% rename from patches/server/0756-Prevent-entity-loading-causing-async-lookups.patch rename to patches/server/0755-Prevent-entity-loading-causing-async-lookups.patch diff --git a/patches/server/0757-Throw-exception-on-world-create-while-being-ticked.patch b/patches/server/0756-Throw-exception-on-world-create-while-being-ticked.patch similarity index 100% rename from patches/server/0757-Throw-exception-on-world-create-while-being-ticked.patch rename to patches/server/0756-Throw-exception-on-world-create-while-being-ticked.patch diff --git a/patches/server/0758-Dont-resent-entity-on-art-update.patch b/patches/server/0757-Dont-resent-entity-on-art-update.patch similarity index 100% rename from patches/server/0758-Dont-resent-entity-on-art-update.patch rename to patches/server/0757-Dont-resent-entity-on-art-update.patch diff --git a/patches/server/0759-Add-WardenAngerChangeEvent.patch b/patches/server/0758-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/server/0759-Add-WardenAngerChangeEvent.patch rename to patches/server/0758-Add-WardenAngerChangeEvent.patch diff --git a/patches/server/0760-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0759-Add-option-for-strict-advancement-dimension-checks.patch similarity index 100% rename from patches/server/0760-Add-option-for-strict-advancement-dimension-checks.patch rename to patches/server/0759-Add-option-for-strict-advancement-dimension-checks.patch diff --git a/patches/server/0761-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0760-Add-missing-important-BlockStateListPopulator-method.patch similarity index 100% rename from patches/server/0761-Add-missing-important-BlockStateListPopulator-method.patch rename to patches/server/0760-Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/0762-Nameable-Banner-API.patch b/patches/server/0761-Nameable-Banner-API.patch similarity index 100% rename from patches/server/0762-Nameable-Banner-API.patch rename to patches/server/0761-Nameable-Banner-API.patch diff --git a/patches/server/0763-Don-t-broadcast-messages-to-command-blocks.patch b/patches/server/0762-Don-t-broadcast-messages-to-command-blocks.patch similarity index 100% rename from patches/server/0763-Don-t-broadcast-messages-to-command-blocks.patch rename to patches/server/0762-Don-t-broadcast-messages-to-command-blocks.patch diff --git a/patches/server/0764-Prevent-empty-items-from-being-added-to-world.patch b/patches/server/0763-Prevent-empty-items-from-being-added-to-world.patch similarity index 100% rename from patches/server/0764-Prevent-empty-items-from-being-added-to-world.patch rename to patches/server/0763-Prevent-empty-items-from-being-added-to-world.patch diff --git a/patches/server/0765-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch b/patches/server/0764-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch similarity index 100% rename from patches/server/0765-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch rename to patches/server/0764-Fix-CCE-for-SplashPotion-and-LingeringPotion-spawnin.patch diff --git a/patches/server/0766-Add-Player-getFishHook.patch b/patches/server/0765-Add-Player-getFishHook.patch similarity index 100% rename from patches/server/0766-Add-Player-getFishHook.patch rename to patches/server/0765-Add-Player-getFishHook.patch diff --git a/patches/server/0767-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch b/patches/server/0766-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch similarity index 100% rename from patches/server/0767-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch rename to patches/server/0766-Do-not-sync-load-chunk-for-dynamic-game-event-listen.patch diff --git a/patches/server/0768-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0767-Add-various-missing-EntityDropItemEvent-calls.patch similarity index 100% rename from patches/server/0768-Add-various-missing-EntityDropItemEvent-calls.patch rename to patches/server/0767-Add-various-missing-EntityDropItemEvent-calls.patch diff --git a/patches/server/0769-Fix-Bee-flower-NPE.patch b/patches/server/0768-Fix-Bee-flower-NPE.patch similarity index 100% rename from patches/server/0769-Fix-Bee-flower-NPE.patch rename to patches/server/0768-Fix-Bee-flower-NPE.patch diff --git a/patches/server/0770-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0769-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch similarity index 100% rename from patches/server/0770-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch rename to patches/server/0769-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch diff --git a/patches/server/0771-More-Teleport-API.patch b/patches/server/0770-More-Teleport-API.patch similarity index 100% rename from patches/server/0771-More-Teleport-API.patch rename to patches/server/0770-More-Teleport-API.patch diff --git a/patches/server/0772-Add-EntityPortalReadyEvent.patch b/patches/server/0771-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/server/0772-Add-EntityPortalReadyEvent.patch rename to patches/server/0771-Add-EntityPortalReadyEvent.patch diff --git a/patches/server/0773-Don-t-use-level-random-in-entity-constructors.patch b/patches/server/0772-Don-t-use-level-random-in-entity-constructors.patch similarity index 100% rename from patches/server/0773-Don-t-use-level-random-in-entity-constructors.patch rename to patches/server/0772-Don-t-use-level-random-in-entity-constructors.patch diff --git a/patches/server/0774-Send-block-entities-after-destroy-prediction.patch b/patches/server/0773-Send-block-entities-after-destroy-prediction.patch similarity index 100% rename from patches/server/0774-Send-block-entities-after-destroy-prediction.patch rename to patches/server/0773-Send-block-entities-after-destroy-prediction.patch diff --git a/patches/server/0775-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0774-Warn-on-plugins-accessing-faraway-chunks.patch similarity index 97% rename from patches/server/0775-Warn-on-plugins-accessing-faraway-chunks.patch rename to patches/server/0774-Warn-on-plugins-accessing-faraway-chunks.patch index dce15cbf4891..1806a9771a36 100644 --- a/patches/server/0775-Warn-on-plugins-accessing-faraway-chunks.patch +++ b/patches/server/0774-Warn-on-plugins-accessing-faraway-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 74cb6cf55ed9b4e31ac3c06d9612823f7ede9ff3..95800047e4c6d84a6f4bc7b643ca6ff302fda5ed 100644 +index 709d3e5c506c9dd14f51c455eee7093fb9703168..9c8623553e12683d99c689e5461aa36257dc5bbd 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -352,7 +352,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -359,7 +359,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } private static boolean isInWorldBoundsHorizontal(BlockPos pos) { diff --git a/patches/server/0776-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0775-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/server/0776-Custom-Chat-Completion-Suggestions-API.patch rename to patches/server/0775-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/server/0777-Add-and-fix-missing-BlockFadeEvents.patch b/patches/server/0776-Add-and-fix-missing-BlockFadeEvents.patch similarity index 100% rename from patches/server/0777-Add-and-fix-missing-BlockFadeEvents.patch rename to patches/server/0776-Add-and-fix-missing-BlockFadeEvents.patch diff --git a/patches/server/0778-Collision-API.patch b/patches/server/0777-Collision-API.patch similarity index 89% rename from patches/server/0778-Collision-API.patch rename to patches/server/0777-Collision-API.patch index 5bc997b2687b..2ec1b80fcd8f 100644 --- a/patches/server/0778-Collision-API.patch +++ b/patches/server/0777-Collision-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Collision API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 42def68f0c682afe7628ff0b9a537e74d77e558c..884343c4ecdecdecb4117ce61d14e05787195656 100644 +index 42def68f0c682afe7628ff0b9a537e74d77e558c..13afea4ecfefc7e3de26dc42b5316fe2c7554b5c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -533,5 +533,12 @@ public abstract class CraftRegionAccessor implements RegionAccessor { @@ -15,14 +15,14 @@ index 42def68f0c682afe7628ff0b9a537e74d77e558c..884343c4ecdecdecb4117ce61d14e057 + + @Override + public boolean hasCollisionsIn(@org.jetbrains.annotations.NotNull org.bukkit.util.BoundingBox boundingBox) { -+ net.minecraft.world.phys.AABB aabb = new net.minecraft.world.phys.AABB(boundingBox.getMinX(), boundingBox.getMinY(), boundingBox.getMinZ(), boundingBox.getMaxX(), boundingBox.getMaxY(), boundingBox.getMaxZ(), false); ++ net.minecraft.world.phys.AABB aabb = new net.minecraft.world.phys.AABB(boundingBox.getMinX(), boundingBox.getMinY(), boundingBox.getMinZ(), boundingBox.getMaxX(), boundingBox.getMaxY(), boundingBox.getMaxZ()); + + return !this.getHandle().noCollision(aabb); + } // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index ee1dc74b2f48bf8d684562de895ab631cf792a30..dab7108644aefe69448b5e361099d97354c8db1a 100644 +index ee1dc74b2f48bf8d684562de895ab631cf792a30..81ec5ffdd453714284a7860603a592495f917ec9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1124,4 +1124,19 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -39,7 +39,7 @@ index ee1dc74b2f48bf8d684562de895ab631cf792a30..dab7108644aefe69448b5e361099d973 + + @Override + public boolean wouldCollideUsing(@org.jetbrains.annotations.NotNull BoundingBox boundingBox) { -+ net.minecraft.world.phys.AABB aabb = new AABB(boundingBox.getMinX(), boundingBox.getMinY(), boundingBox.getMinZ(), boundingBox.getMaxX(), boundingBox.getMaxY(), boundingBox.getMaxZ(), false); ++ net.minecraft.world.phys.AABB aabb = new AABB(boundingBox.getMinX(), boundingBox.getMinY(), boundingBox.getMinZ(), boundingBox.getMaxX(), boundingBox.getMaxY(), boundingBox.getMaxZ()); + + return !this.getHandle().level().noCollision(this.getHandle(), aabb); + } diff --git a/patches/server/0779-Fix-suggest-command-message-for-brigadier-syntax-exc.patch b/patches/server/0778-Fix-suggest-command-message-for-brigadier-syntax-exc.patch similarity index 100% rename from patches/server/0779-Fix-suggest-command-message-for-brigadier-syntax-exc.patch rename to patches/server/0778-Fix-suggest-command-message-for-brigadier-syntax-exc.patch diff --git a/patches/server/0780-Block-Ticking-API.patch b/patches/server/0779-Block-Ticking-API.patch similarity index 100% rename from patches/server/0780-Block-Ticking-API.patch rename to patches/server/0779-Block-Ticking-API.patch diff --git a/patches/server/0781-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0780-Add-Velocity-IP-Forwarding-Support.patch similarity index 100% rename from patches/server/0781-Add-Velocity-IP-Forwarding-Support.patch rename to patches/server/0780-Add-Velocity-IP-Forwarding-Support.patch diff --git a/patches/server/0782-Add-NamespacedKey-biome-methods.patch b/patches/server/0781-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/server/0782-Add-NamespacedKey-biome-methods.patch rename to patches/server/0781-Add-NamespacedKey-biome-methods.patch diff --git a/patches/server/0783-Fix-plugin-loggers-on-server-shutdown.patch b/patches/server/0782-Fix-plugin-loggers-on-server-shutdown.patch similarity index 100% rename from patches/server/0783-Fix-plugin-loggers-on-server-shutdown.patch rename to patches/server/0782-Fix-plugin-loggers-on-server-shutdown.patch diff --git a/patches/server/0784-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0783-Stop-large-look-changes-from-crashing-the-server.patch similarity index 100% rename from patches/server/0784-Stop-large-look-changes-from-crashing-the-server.patch rename to patches/server/0783-Stop-large-look-changes-from-crashing-the-server.patch diff --git a/patches/server/0785-Fire-EntityChangeBlockEvent-in-more-places.patch b/patches/server/0784-Fire-EntityChangeBlockEvent-in-more-places.patch similarity index 100% rename from patches/server/0785-Fire-EntityChangeBlockEvent-in-more-places.patch rename to patches/server/0784-Fire-EntityChangeBlockEvent-in-more-places.patch diff --git a/patches/server/0786-Missing-eating-regain-reason.patch b/patches/server/0785-Missing-eating-regain-reason.patch similarity index 100% rename from patches/server/0786-Missing-eating-regain-reason.patch rename to patches/server/0785-Missing-eating-regain-reason.patch diff --git a/patches/server/0787-Missing-effect-cause.patch b/patches/server/0786-Missing-effect-cause.patch similarity index 100% rename from patches/server/0787-Missing-effect-cause.patch rename to patches/server/0786-Missing-effect-cause.patch diff --git a/patches/server/0788-Added-byte-array-serialization-deserialization-for-P.patch b/patches/server/0787-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/server/0788-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/server/0787-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/server/0789-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/server/0788-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/server/0789-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/server/0788-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/server/0790-Call-BlockPhysicsEvent-more-often.patch b/patches/server/0789-Call-BlockPhysicsEvent-more-often.patch similarity index 100% rename from patches/server/0790-Call-BlockPhysicsEvent-more-often.patch rename to patches/server/0789-Call-BlockPhysicsEvent-more-often.patch diff --git a/patches/server/0791-Configurable-chat-thread-limit.patch b/patches/server/0790-Configurable-chat-thread-limit.patch similarity index 100% rename from patches/server/0791-Configurable-chat-thread-limit.patch rename to patches/server/0790-Configurable-chat-thread-limit.patch diff --git a/patches/server/0792-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0791-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch similarity index 100% rename from patches/server/0792-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch rename to patches/server/0791-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch diff --git a/patches/server/0793-fix-Jigsaw-block-kicking-user.patch b/patches/server/0792-fix-Jigsaw-block-kicking-user.patch similarity index 100% rename from patches/server/0793-fix-Jigsaw-block-kicking-user.patch rename to patches/server/0792-fix-Jigsaw-block-kicking-user.patch diff --git a/patches/server/0794-use-BlockFormEvent-for-mud-converting-into-clay.patch b/patches/server/0793-use-BlockFormEvent-for-mud-converting-into-clay.patch similarity index 100% rename from patches/server/0794-use-BlockFormEvent-for-mud-converting-into-clay.patch rename to patches/server/0793-use-BlockFormEvent-for-mud-converting-into-clay.patch diff --git a/patches/server/0795-Add-getDrops-to-BlockState.patch b/patches/server/0794-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/server/0795-Add-getDrops-to-BlockState.patch rename to patches/server/0794-Add-getDrops-to-BlockState.patch diff --git a/patches/server/0796-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0795-Fix-a-bunch-of-vanilla-bugs.patch similarity index 99% rename from patches/server/0796-Fix-a-bunch-of-vanilla-bugs.patch rename to patches/server/0795-Fix-a-bunch-of-vanilla-bugs.patch index 2c4b7976ecd0..5881f90436b8 100644 --- a/patches/server/0796-Fix-a-bunch-of-vanilla-bugs.patch +++ b/patches/server/0795-Fix-a-bunch-of-vanilla-bugs.patch @@ -113,10 +113,10 @@ index 6cd6d69a20e95e344fc18ab67dc300824537a59b..2e2a7c2cf3081187da817479a9da3eb1 } } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c0bc7495109a8d727c913e7cdc98d75a30bc7a55..61d6c2be8595d54a68b0c53c1898068f568c2a97 100644 +index f7ebb560a3f8aebb5e35397814eaa7af098897c3..ed6efb22465c4d610a5b12f6ef3ca1aa7a5907ea 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -730,7 +730,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -734,7 +734,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // CraftBukkit end } @@ -173,7 +173,7 @@ index 75967b3526f3f946ffc6784b87b787396ab15368..da8a60fbbba3866780615e65d6e24277 this.player.server.getPlayerList().broadcastAll(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, this.player), this.player); // CraftBukkit this.level.updateSleepingPlayerList(); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 9643482f933dc81e34fbaf6874ecfd50e1677c4b..551ceff75bc36a75bb992f1081d7343d1a956fd8 100644 +index 4602f8a4f22eed417bf3c56f0147ed697e349f37..6f047b2116d2ee88c75f1f39f9fd6c813775b7b5 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -710,8 +710,10 @@ public abstract class PlayerList { diff --git a/patches/server/0797-Remove-unnecessary-onTrackingStart-during-navigation.patch b/patches/server/0796-Remove-unnecessary-onTrackingStart-during-navigation.patch similarity index 100% rename from patches/server/0797-Remove-unnecessary-onTrackingStart-during-navigation.patch rename to patches/server/0796-Remove-unnecessary-onTrackingStart-during-navigation.patch diff --git a/patches/server/0798-Fix-custom-piglin-loved-items.patch b/patches/server/0797-Fix-custom-piglin-loved-items.patch similarity index 100% rename from patches/server/0798-Fix-custom-piglin-loved-items.patch rename to patches/server/0797-Fix-custom-piglin-loved-items.patch diff --git a/patches/server/0799-EntityPickupItemEvent-fixes.patch b/patches/server/0798-EntityPickupItemEvent-fixes.patch similarity index 100% rename from patches/server/0799-EntityPickupItemEvent-fixes.patch rename to patches/server/0798-EntityPickupItemEvent-fixes.patch diff --git a/patches/server/0800-Correctly-handle-interactions-with-items-on-cooldown.patch b/patches/server/0799-Correctly-handle-interactions-with-items-on-cooldown.patch similarity index 100% rename from patches/server/0800-Correctly-handle-interactions-with-items-on-cooldown.patch rename to patches/server/0799-Correctly-handle-interactions-with-items-on-cooldown.patch diff --git a/patches/server/0801-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0800-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/server/0801-Add-PlayerInventorySlotChangeEvent.patch rename to patches/server/0800-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/server/0802-Elder-Guardian-appearance-API.patch b/patches/server/0801-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/server/0802-Elder-Guardian-appearance-API.patch rename to patches/server/0801-Elder-Guardian-appearance-API.patch diff --git a/patches/server/0803-Allow-changing-bed-s-occupied-property.patch b/patches/server/0802-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/server/0803-Allow-changing-bed-s-occupied-property.patch rename to patches/server/0802-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/server/0804-Add-entity-knockback-API.patch b/patches/server/0803-Add-entity-knockback-API.patch similarity index 100% rename from patches/server/0804-Add-entity-knockback-API.patch rename to patches/server/0803-Add-entity-knockback-API.patch diff --git a/patches/server/0805-Detect-headless-JREs.patch b/patches/server/0804-Detect-headless-JREs.patch similarity index 100% rename from patches/server/0805-Detect-headless-JREs.patch rename to patches/server/0804-Detect-headless-JREs.patch diff --git a/patches/server/0806-fix-entity-vehicle-collision-event-not-called.patch b/patches/server/0805-fix-entity-vehicle-collision-event-not-called.patch similarity index 100% rename from patches/server/0806-fix-entity-vehicle-collision-event-not-called.patch rename to patches/server/0805-fix-entity-vehicle-collision-event-not-called.patch diff --git a/patches/server/0807-Add-EntityToggleSitEvent.patch b/patches/server/0806-Add-EntityToggleSitEvent.patch similarity index 100% rename from patches/server/0807-Add-EntityToggleSitEvent.patch rename to patches/server/0806-Add-EntityToggleSitEvent.patch diff --git a/patches/server/0808-Add-fire-tick-delay-option.patch b/patches/server/0807-Add-fire-tick-delay-option.patch similarity index 100% rename from patches/server/0808-Add-fire-tick-delay-option.patch rename to patches/server/0807-Add-fire-tick-delay-option.patch diff --git a/patches/server/0809-Add-Moving-Piston-API.patch b/patches/server/0808-Add-Moving-Piston-API.patch similarity index 100% rename from patches/server/0809-Add-Moving-Piston-API.patch rename to patches/server/0808-Add-Moving-Piston-API.patch diff --git a/patches/server/0810-Ignore-impossible-spawn-tick.patch b/patches/server/0809-Ignore-impossible-spawn-tick.patch similarity index 100% rename from patches/server/0810-Ignore-impossible-spawn-tick.patch rename to patches/server/0809-Ignore-impossible-spawn-tick.patch diff --git a/patches/server/0811-Track-projectile-source-for-fireworks-from-dispenser.patch b/patches/server/0810-Track-projectile-source-for-fireworks-from-dispenser.patch similarity index 100% rename from patches/server/0811-Track-projectile-source-for-fireworks-from-dispenser.patch rename to patches/server/0810-Track-projectile-source-for-fireworks-from-dispenser.patch diff --git a/patches/server/0812-Fix-EntityArgument-suggestion-permissions-to-align-w.patch b/patches/server/0811-Fix-EntityArgument-suggestion-permissions-to-align-w.patch similarity index 100% rename from patches/server/0812-Fix-EntityArgument-suggestion-permissions-to-align-w.patch rename to patches/server/0811-Fix-EntityArgument-suggestion-permissions-to-align-w.patch diff --git a/patches/server/0813-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch b/patches/server/0812-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch similarity index 100% rename from patches/server/0813-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch rename to patches/server/0812-Fix-EntityCombustEvent-cancellation-cant-fully-preve.patch diff --git a/patches/server/0814-Add-PrePlayerAttackEntityEvent.patch b/patches/server/0813-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/server/0814-Add-PrePlayerAttackEntityEvent.patch rename to patches/server/0813-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/server/0815-ensure-reset-EnderDragon-boss-event-name.patch b/patches/server/0814-ensure-reset-EnderDragon-boss-event-name.patch similarity index 100% rename from patches/server/0815-ensure-reset-EnderDragon-boss-event-name.patch rename to patches/server/0814-ensure-reset-EnderDragon-boss-event-name.patch diff --git a/patches/server/0816-fix-MC-252817-green-map-markers-do-not-disappear.patch b/patches/server/0815-fix-MC-252817-green-map-markers-do-not-disappear.patch similarity index 100% rename from patches/server/0816-fix-MC-252817-green-map-markers-do-not-disappear.patch rename to patches/server/0815-fix-MC-252817-green-map-markers-do-not-disappear.patch diff --git a/patches/server/0817-Add-Player-Warden-Warning-API.patch b/patches/server/0816-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/server/0817-Add-Player-Warden-Warning-API.patch rename to patches/server/0816-Add-Player-Warden-Warning-API.patch diff --git a/patches/server/0818-More-vanilla-friendly-methods-to-update-trades.patch b/patches/server/0817-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/server/0818-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/server/0817-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/server/0819-Add-paper-dumplisteners-command.patch b/patches/server/0818-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/server/0819-Add-paper-dumplisteners-command.patch rename to patches/server/0818-Add-paper-dumplisteners-command.patch diff --git a/patches/server/0820-check-global-player-list-where-appropriate.patch b/patches/server/0819-check-global-player-list-where-appropriate.patch similarity index 100% rename from patches/server/0820-check-global-player-list-where-appropriate.patch rename to patches/server/0819-check-global-player-list-where-appropriate.patch diff --git a/patches/server/0821-Fix-async-entity-add-due-to-fungus-trees.patch b/patches/server/0820-Fix-async-entity-add-due-to-fungus-trees.patch similarity index 96% rename from patches/server/0821-Fix-async-entity-add-due-to-fungus-trees.patch rename to patches/server/0820-Fix-async-entity-add-due-to-fungus-trees.patch index a3e5226fad0f..6c8db9238399 100644 --- a/patches/server/0821-Fix-async-entity-add-due-to-fungus-trees.patch +++ b/patches/server/0820-Fix-async-entity-add-due-to-fungus-trees.patch @@ -17,7 +17,7 @@ index 1c2ec978f923521322aaec59b4e88d26d656b6cd..5ece375eaf6bcc61864997a389bb5e24 BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 884343c4ecdecdecb4117ce61d14e05787195656..99b890e8650356fc059a89a4164ca3f9a80f9d1f 100644 +index 13afea4ecfefc7e3de26dc42b5316fe2c7554b5c..9dd6012556979514f9879f867138bc836c58ef3f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java @@ -257,10 +257,10 @@ public abstract class CraftRegionAccessor implements RegionAccessor { diff --git a/patches/server/0822-ItemStack-damage-API.patch b/patches/server/0821-ItemStack-damage-API.patch similarity index 100% rename from patches/server/0822-ItemStack-damage-API.patch rename to patches/server/0821-ItemStack-damage-API.patch diff --git a/patches/server/0823-Friction-API.patch b/patches/server/0822-Friction-API.patch similarity index 100% rename from patches/server/0823-Friction-API.patch rename to patches/server/0822-Friction-API.patch diff --git a/patches/server/0824-Ability-to-control-player-s-insomnia-and-phantoms.patch b/patches/server/0823-Ability-to-control-player-s-insomnia-and-phantoms.patch similarity index 100% rename from patches/server/0824-Ability-to-control-player-s-insomnia-and-phantoms.patch rename to patches/server/0823-Ability-to-control-player-s-insomnia-and-phantoms.patch diff --git a/patches/server/0825-Fix-player-kick-on-shutdown.patch b/patches/server/0824-Fix-player-kick-on-shutdown.patch similarity index 100% rename from patches/server/0825-Fix-player-kick-on-shutdown.patch rename to patches/server/0824-Fix-player-kick-on-shutdown.patch diff --git a/patches/server/0826-Sync-offhand-slot-in-menus.patch b/patches/server/0825-Sync-offhand-slot-in-menus.patch similarity index 100% rename from patches/server/0826-Sync-offhand-slot-in-menus.patch rename to patches/server/0825-Sync-offhand-slot-in-menus.patch diff --git a/patches/server/0827-Player-Entity-Tracking-Events.patch b/patches/server/0826-Player-Entity-Tracking-Events.patch similarity index 93% rename from patches/server/0827-Player-Entity-Tracking-Events.patch rename to patches/server/0826-Player-Entity-Tracking-Events.patch index 18b7aa1dc282..495a0778f229 100644 --- a/patches/server/0827-Player-Entity-Tracking-Events.patch +++ b/patches/server/0826-Player-Entity-Tracking-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player Entity Tracking Events diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 61d6c2be8595d54a68b0c53c1898068f568c2a97..94a0e0d1cdbb96a12acd1a23833242d9676d21a0 100644 +index ed6efb22465c4d610a5b12f6ef3ca1aa7a5907ea..e8dfae9d5d899963d1750d0e60a5069bab12ea07 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1187,7 +1187,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1191,7 +1191,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // CraftBukkit end if (flag) { if (this.seenBy.add(player.connection)) { diff --git a/patches/server/0828-Limit-pet-look-distance.patch b/patches/server/0827-Limit-pet-look-distance.patch similarity index 100% rename from patches/server/0828-Limit-pet-look-distance.patch rename to patches/server/0827-Limit-pet-look-distance.patch diff --git a/patches/server/0829-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0828-Fixes-and-additions-to-the-SpawnReason-API.patch similarity index 100% rename from patches/server/0829-Fixes-and-additions-to-the-SpawnReason-API.patch rename to patches/server/0828-Fixes-and-additions-to-the-SpawnReason-API.patch diff --git a/patches/server/0830-fix-Instruments.patch b/patches/server/0829-fix-Instruments.patch similarity index 100% rename from patches/server/0830-fix-Instruments.patch rename to patches/server/0829-fix-Instruments.patch diff --git a/patches/server/0831-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch b/patches/server/0830-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch similarity index 100% rename from patches/server/0831-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch rename to patches/server/0830-Improve-inlining-for-some-hot-BlockBehavior-and-Flui.patch diff --git a/patches/server/0832-Fix-inconsistencies-in-dispense-events-regarding-sta.patch b/patches/server/0831-Fix-inconsistencies-in-dispense-events-regarding-sta.patch similarity index 100% rename from patches/server/0832-Fix-inconsistencies-in-dispense-events-regarding-sta.patch rename to patches/server/0831-Fix-inconsistencies-in-dispense-events-regarding-sta.patch diff --git a/patches/server/0833-Add-BlockLockCheckEvent.patch b/patches/server/0832-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/server/0833-Add-BlockLockCheckEvent.patch rename to patches/server/0832-Add-BlockLockCheckEvent.patch diff --git a/patches/server/0834-Add-Sneaking-API-for-Entities.patch b/patches/server/0833-Add-Sneaking-API-for-Entities.patch similarity index 91% rename from patches/server/0834-Add-Sneaking-API-for-Entities.patch rename to patches/server/0833-Add-Sneaking-API-for-Entities.patch index 0a0f88cbef43..ec3c098b6ea1 100644 --- a/patches/server/0834-Add-Sneaking-API-for-Entities.patch +++ b/patches/server/0833-Add-Sneaking-API-for-Entities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Sneaking API for Entities diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index dab7108644aefe69448b5e361099d97354c8db1a..243726b6f503acc7d8ced18fbc4e697982a3fc4f 100644 +index 81ec5ffdd453714284a7860603a592495f917ec9..55a9c4eb0fe1b912e5ff6c9bb81b46674f71868a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -871,6 +871,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0835-Improve-logging-and-errors.patch b/patches/server/0834-Improve-logging-and-errors.patch similarity index 100% rename from patches/server/0835-Improve-logging-and-errors.patch rename to patches/server/0834-Improve-logging-and-errors.patch diff --git a/patches/server/0836-Improve-PortalEvents.patch b/patches/server/0835-Improve-PortalEvents.patch similarity index 100% rename from patches/server/0836-Improve-PortalEvents.patch rename to patches/server/0835-Improve-PortalEvents.patch diff --git a/patches/server/0837-Add-config-option-for-spider-worldborder-climbing.patch b/patches/server/0836-Add-config-option-for-spider-worldborder-climbing.patch similarity index 69% rename from patches/server/0837-Add-config-option-for-spider-worldborder-climbing.patch rename to patches/server/0836-Add-config-option-for-spider-worldborder-climbing.patch index 8d59d9f5d138..c4325b822a1e 100644 --- a/patches/server/0837-Add-config-option-for-spider-worldborder-climbing.patch +++ b/patches/server/0836-Add-config-option-for-spider-worldborder-climbing.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config option for spider worldborder climbing diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index 4d5cfaa58bdf4e6cb975134004d14c591f6e85fa..ff004d5c0dee027acea51aa4886065636335e2a9 100644 +index 4d5cfaa58bdf4e6cb975134004d14c591f6e85fa..d90da2f9e4d6214577bc81bd6c70ba8593788898 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -86,7 +86,7 @@ public class Spider extends Monster { @@ -13,7 +13,7 @@ index 4d5cfaa58bdf4e6cb975134004d14c591f6e85fa..ff004d5c0dee027acea51aa488606563 super.tick(); if (!this.level().isClientSide) { - this.setClimbing(this.horizontalCollision); -+ this.setClimbing(this.horizontalCollision && (this.level().paperConfig().entities.behavior.allowSpiderWorldBorderClimbing || !io.papermc.paper.util.CollisionUtil.isCollidingWithBorder(this.level().getWorldBorder(), this.getBoundingBox().inflate(io.papermc.paper.util.CollisionUtil.COLLISION_EPSILON)))); // Paper - inflate by +EPSILON as collision will place us outside the border, but just barely ++ this.setClimbing(this.horizontalCollision && (this.level().paperConfig().entities.behavior.allowSpiderWorldBorderClimbing)); // Paper - Add config option for spider worldborder climbing } } diff --git a/patches/server/0838-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0837-Add-missing-SpigotConfig-logCommands-check.patch similarity index 100% rename from patches/server/0838-Add-missing-SpigotConfig-logCommands-check.patch rename to patches/server/0837-Add-missing-SpigotConfig-logCommands-check.patch diff --git a/patches/server/0839-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch b/patches/server/0838-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch similarity index 100% rename from patches/server/0839-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch rename to patches/server/0838-Fix-NPE-on-Allay-stopDancing-while-not-dancing.patch diff --git a/patches/server/0840-Flying-Fall-Damage.patch b/patches/server/0839-Flying-Fall-Damage.patch similarity index 100% rename from patches/server/0840-Flying-Fall-Damage.patch rename to patches/server/0839-Flying-Fall-Damage.patch diff --git a/patches/server/0841-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0840-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/server/0841-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/server/0840-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/server/0842-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/server/0841-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 58% rename from patches/server/0842-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/server/0841-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index c42d34033542..21aca8cd32d8 100644 --- a/patches/server/0842-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/server/0841-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch @@ -6,15 +6,23 @@ Subject: [PATCH] Expose pre-collision moving velocity to diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ce52cd5d11e4422cb236761b5dff06daa9cad56b..bbeab184bfd4b8541c97281d3328e9622c8227b6 100644 +index ce52cd5d11e4422cb236761b5dff06daa9cad56b..6c8c7b3c701ba258610cef86997ff3bc13e37bcb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1081,7 +1081,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -997,6 +997,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S + } + + public void move(MoverType movementType, Vec3 movement) { ++ final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity + if (this.noPhysics) { + this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); + } else { +@@ -1081,7 +1082,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } if (!bl.getType().isAir()) { - VehicleBlockCollisionEvent event = new VehicleBlockCollisionEvent(vehicle, bl); -+ VehicleBlockCollisionEvent event = new VehicleBlockCollisionEvent(vehicle, bl, org.bukkit.craftbukkit.util.CraftVector.toBukkit(moveVector)); // Paper - Expose pre-collision velocity ++ VehicleBlockCollisionEvent event = new VehicleBlockCollisionEvent(vehicle, bl, org.bukkit.craftbukkit.util.CraftVector.toBukkit(originalMovement)); // Paper - Expose pre-collision velocity this.level.getCraftServer().getPluginManager().callEvent(event); } } diff --git a/patches/server/0843-config-for-disabling-entity-tag-tags.patch b/patches/server/0842-config-for-disabling-entity-tag-tags.patch similarity index 100% rename from patches/server/0843-config-for-disabling-entity-tag-tags.patch rename to patches/server/0842-config-for-disabling-entity-tag-tags.patch diff --git a/patches/server/0844-Use-single-player-info-update-packet-on-join.patch b/patches/server/0843-Use-single-player-info-update-packet-on-join.patch similarity index 97% rename from patches/server/0844-Use-single-player-info-update-packet-on-join.patch rename to patches/server/0843-Use-single-player-info-update-packet-on-join.patch index 57b905f4a9af..404ef91bbe1f 100644 --- a/patches/server/0844-Use-single-player-info-update-packet-on-join.patch +++ b/patches/server/0843-Use-single-player-info-update-packet-on-join.patch @@ -18,7 +18,7 @@ index 07850cf4117f05bfbd96a4f02fd57db1566f90af..50f2c11d98dc4e8aa2e6f577fc802279 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 551ceff75bc36a75bb992f1081d7343d1a956fd8..f9cb05de12c938ea6d44a806f73bc0ae48b4394f 100644 +index 6f047b2116d2ee88c75f1f39f9fd6c813775b7b5..2192ed7df719c9b8d4c990d9fb38824284fe3f0c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -358,6 +358,7 @@ public abstract class PlayerList { diff --git a/patches/server/0845-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0844-Correctly-shrink-items-during-EntityResurrectEvent.patch similarity index 100% rename from patches/server/0845-Correctly-shrink-items-during-EntityResurrectEvent.patch rename to patches/server/0844-Correctly-shrink-items-during-EntityResurrectEvent.patch diff --git a/patches/server/0846-Win-Screen-API.patch b/patches/server/0845-Win-Screen-API.patch similarity index 100% rename from patches/server/0846-Win-Screen-API.patch rename to patches/server/0845-Win-Screen-API.patch diff --git a/patches/server/0847-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0846-Remove-CraftItemStack-setAmount-null-assignment.patch similarity index 100% rename from patches/server/0847-Remove-CraftItemStack-setAmount-null-assignment.patch rename to patches/server/0846-Remove-CraftItemStack-setAmount-null-assignment.patch diff --git a/patches/server/0848-Fix-force-opening-enchantment-tables.patch b/patches/server/0847-Fix-force-opening-enchantment-tables.patch similarity index 100% rename from patches/server/0848-Fix-force-opening-enchantment-tables.patch rename to patches/server/0847-Fix-force-opening-enchantment-tables.patch diff --git a/patches/server/0849-Add-Entity-Body-Yaw-API.patch b/patches/server/0848-Add-Entity-Body-Yaw-API.patch similarity index 96% rename from patches/server/0849-Add-Entity-Body-Yaw-API.patch rename to patches/server/0848-Add-Entity-Body-Yaw-API.patch index f7b3bebaf706..4a34d0e26aee 100644 --- a/patches/server/0849-Add-Entity-Body-Yaw-API.patch +++ b/patches/server/0848-Add-Entity-Body-Yaw-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 243726b6f503acc7d8ced18fbc4e697982a3fc4f..8692e54ee6defecf391884488121fef84731eac6 100644 +index 55a9c4eb0fe1b912e5ff6c9bb81b46674f71868a..e043a43ebda1df7b78c1368ce33a3648345bcb08 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1135,6 +1135,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0850-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0849-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 100% rename from patches/server/0850-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0849-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch diff --git a/patches/server/0851-Update-the-flag-when-a-captured-block-state-is-outda.patch b/patches/server/0850-Update-the-flag-when-a-captured-block-state-is-outda.patch similarity index 83% rename from patches/server/0851-Update-the-flag-when-a-captured-block-state-is-outda.patch rename to patches/server/0850-Update-the-flag-when-a-captured-block-state-is-outda.patch index f785ac01e7af..cbd0fdc890b9 100644 --- a/patches/server/0851-Update-the-flag-when-a-captured-block-state-is-outda.patch +++ b/patches/server/0850-Update-the-flag-when-a-captured-block-state-is-outda.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Update the flag when a captured block state is outdated diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 95800047e4c6d84a6f4bc7b643ca6ff302fda5ed..ee1ba73796816e15437a2a2331d86494b3674ce7 100644 +index 9c8623553e12683d99c689e5461aa36257dc5bbd..f368da2e63f5c42166749789d759056b70973614 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -458,6 +458,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -465,6 +465,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); this.capturedBlockStates.put(pos.immutable(), blockstate); } diff --git a/patches/server/0852-Add-EntityFertilizeEggEvent.patch b/patches/server/0851-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/server/0852-Add-EntityFertilizeEggEvent.patch rename to patches/server/0851-Add-EntityFertilizeEggEvent.patch diff --git a/patches/server/0853-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0852-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 100% rename from patches/server/0853-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0852-Fix-HumanEntity-drop-not-updating-the-client-inv.patch diff --git a/patches/server/0854-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0853-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/server/0854-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0853-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/server/0855-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0854-Correctly-handle-ArmorStand-invisibility.patch similarity index 100% rename from patches/server/0855-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0854-Correctly-handle-ArmorStand-invisibility.patch diff --git a/patches/server/0856-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0855-Fix-advancement-triggers-for-entity-damage.patch similarity index 100% rename from patches/server/0856-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0855-Fix-advancement-triggers-for-entity-damage.patch diff --git a/patches/server/0857-Fix-text-display-error-on-spawn.patch b/patches/server/0856-Fix-text-display-error-on-spawn.patch similarity index 100% rename from patches/server/0857-Fix-text-display-error-on-spawn.patch rename to patches/server/0856-Fix-text-display-error-on-spawn.patch diff --git a/patches/server/0858-Fix-inventories-returning-null-Locations.patch b/patches/server/0857-Fix-inventories-returning-null-Locations.patch similarity index 100% rename from patches/server/0858-Fix-inventories-returning-null-Locations.patch rename to patches/server/0857-Fix-inventories-returning-null-Locations.patch diff --git a/patches/server/0859-Add-Shearable-API.patch b/patches/server/0858-Add-Shearable-API.patch similarity index 100% rename from patches/server/0859-Add-Shearable-API.patch rename to patches/server/0858-Add-Shearable-API.patch diff --git a/patches/server/0860-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0859-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/server/0860-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0859-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/server/0861-Fix-beehives-generating-from-using-bonemeal.patch b/patches/server/0860-Fix-beehives-generating-from-using-bonemeal.patch similarity index 100% rename from patches/server/0861-Fix-beehives-generating-from-using-bonemeal.patch rename to patches/server/0860-Fix-beehives-generating-from-using-bonemeal.patch diff --git a/patches/server/0862-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0861-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 100% rename from patches/server/0862-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0861-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch diff --git a/patches/server/0863-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0862-Treat-sequence-violations-like-they-should-be.patch similarity index 100% rename from patches/server/0863-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0862-Treat-sequence-violations-like-they-should-be.patch diff --git a/patches/server/0864-remove-duplicate-animate-packet-for-records.patch b/patches/server/0863-remove-duplicate-animate-packet-for-records.patch similarity index 100% rename from patches/server/0864-remove-duplicate-animate-packet-for-records.patch rename to patches/server/0863-remove-duplicate-animate-packet-for-records.patch diff --git a/patches/server/0865-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0864-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 100% rename from patches/server/0865-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0864-Prevent-causing-expired-keys-from-impacting-new-join.patch diff --git a/patches/server/0866-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0865-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 100% rename from patches/server/0866-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0865-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch diff --git a/patches/server/0867-Use-array-for-gamerule-storage.patch b/patches/server/0866-Use-array-for-gamerule-storage.patch similarity index 100% rename from patches/server/0867-Use-array-for-gamerule-storage.patch rename to patches/server/0866-Use-array-for-gamerule-storage.patch diff --git a/patches/server/0868-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0867-Fix-a-couple-of-upstream-bed-issues.patch similarity index 100% rename from patches/server/0868-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0867-Fix-a-couple-of-upstream-bed-issues.patch diff --git a/patches/server/0869-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0868-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 100% rename from patches/server/0869-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0868-Fix-demo-flag-not-enabling-demo-mode.patch diff --git a/patches/server/0870-Add-Mob-Experience-reward-API.patch b/patches/server/0869-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/server/0870-Add-Mob-Experience-reward-API.patch rename to patches/server/0869-Add-Mob-Experience-reward-API.patch diff --git a/patches/server/0871-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0870-Break-redstone-on-top-of-trap-doors-early.patch similarity index 100% rename from patches/server/0871-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0870-Break-redstone-on-top-of-trap-doors-early.patch diff --git a/patches/server/0872-Fix-DamageCause-for-Falling-Blocks.patch b/patches/server/0871-Fix-DamageCause-for-Falling-Blocks.patch similarity index 100% rename from patches/server/0872-Fix-DamageCause-for-Falling-Blocks.patch rename to patches/server/0871-Fix-DamageCause-for-Falling-Blocks.patch diff --git a/patches/server/0873-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0872-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/server/0873-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0872-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/server/0874-More-accurate-isInOpenWater-impl.patch b/patches/server/0873-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/server/0874-More-accurate-isInOpenWater-impl.patch rename to patches/server/0873-More-accurate-isInOpenWater-impl.patch diff --git a/patches/server/0875-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch b/patches/server/0874-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch similarity index 100% rename from patches/server/0875-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch rename to patches/server/0874-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch diff --git a/patches/server/0876-Expand-PlayerItemMendEvent.patch b/patches/server/0875-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/server/0876-Expand-PlayerItemMendEvent.patch rename to patches/server/0875-Expand-PlayerItemMendEvent.patch diff --git a/patches/server/0877-Refresh-ProjectileSource-for-projectiles.patch b/patches/server/0876-Refresh-ProjectileSource-for-projectiles.patch similarity index 97% rename from patches/server/0877-Refresh-ProjectileSource-for-projectiles.patch rename to patches/server/0876-Refresh-ProjectileSource-for-projectiles.patch index 5143e11e3f5c..8f394bd9c5b5 100644 --- a/patches/server/0877-Refresh-ProjectileSource-for-projectiles.patch +++ b/patches/server/0876-Refresh-ProjectileSource-for-projectiles.patch @@ -14,7 +14,7 @@ clearing the owner. Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com> diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bbeab184bfd4b8541c97281d3328e9622c8227b6..16a4eaa49878a42f12d07ef172762a58cfa16579 100644 +index 6c8c7b3c701ba258610cef86997ff3bc13e37bcb..650001a295128f97ce2242b60a6dc93885c84268 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -383,6 +383,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0878-Add-transient-modifier-API.patch b/patches/server/0877-Add-transient-modifier-API.patch similarity index 100% rename from patches/server/0878-Add-transient-modifier-API.patch rename to patches/server/0877-Add-transient-modifier-API.patch diff --git a/patches/server/0879-Fix-block-place-logic.patch b/patches/server/0878-Fix-block-place-logic.patch similarity index 96% rename from patches/server/0879-Fix-block-place-logic.patch rename to patches/server/0878-Fix-block-place-logic.patch index df7bca621768..7e51b26fd80e 100644 --- a/patches/server/0879-Fix-block-place-logic.patch +++ b/patches/server/0878-Fix-block-place-logic.patch @@ -41,10 +41,10 @@ index 0e9d515381a673e683b63a12c1a9e79a5eedd80b..096eb30dcfdd62b1d946891f7480e9d9 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ee1ba73796816e15437a2a2331d86494b3674ce7..24aafda4ec034b5baa544704f8faf5ff6fcd2827 100644 +index f368da2e63f5c42166749789d759056b70973614..f4db64595f4434c9225923390c4fe7d7e0af6d26 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -572,17 +572,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -579,17 +579,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam CraftWorld world = ((ServerLevel) this).getWorld(); diff --git a/patches/server/0880-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0879-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch similarity index 100% rename from patches/server/0880-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch rename to patches/server/0879-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch diff --git a/patches/server/0881-Call-BlockGrowEvent-for-missing-blocks.patch b/patches/server/0880-Call-BlockGrowEvent-for-missing-blocks.patch similarity index 100% rename from patches/server/0881-Call-BlockGrowEvent-for-missing-blocks.patch rename to patches/server/0880-Call-BlockGrowEvent-for-missing-blocks.patch diff --git a/patches/server/0882-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch b/patches/server/0881-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch similarity index 100% rename from patches/server/0882-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch rename to patches/server/0881-Don-t-enforce-icanhasbukkit-default-if-alias-block-e.patch diff --git a/patches/server/0883-fix-MapLike-spam-for-missing-key-selector.patch b/patches/server/0882-fix-MapLike-spam-for-missing-key-selector.patch similarity index 100% rename from patches/server/0883-fix-MapLike-spam-for-missing-key-selector.patch rename to patches/server/0882-fix-MapLike-spam-for-missing-key-selector.patch diff --git a/patches/server/0884-Fix-sniffer-removeExploredLocation.patch b/patches/server/0883-Fix-sniffer-removeExploredLocation.patch similarity index 100% rename from patches/server/0884-Fix-sniffer-removeExploredLocation.patch rename to patches/server/0883-Fix-sniffer-removeExploredLocation.patch diff --git a/patches/server/0885-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0884-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/server/0885-Add-method-to-remove-all-active-potion-effects.patch rename to patches/server/0884-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/server/0886-Fix-incorrect-crafting-result-amount-for-fireworks.patch b/patches/server/0885-Fix-incorrect-crafting-result-amount-for-fireworks.patch similarity index 100% rename from patches/server/0886-Fix-incorrect-crafting-result-amount-for-fireworks.patch rename to patches/server/0885-Fix-incorrect-crafting-result-amount-for-fireworks.patch diff --git a/patches/server/0888-Add-event-for-player-editing-sign.patch b/patches/server/0886-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/server/0888-Add-event-for-player-editing-sign.patch rename to patches/server/0886-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0889-Only-tick-item-frames-if-players-can-see-it.patch b/patches/server/0887-Only-tick-item-frames-if-players-can-see-it.patch similarity index 100% rename from patches/server/0889-Only-tick-item-frames-if-players-can-see-it.patch rename to patches/server/0887-Only-tick-item-frames-if-players-can-see-it.patch diff --git a/patches/server/0887-Properly-cancel-usable-items.patch b/patches/server/0887-Properly-cancel-usable-items.patch deleted file mode 100644 index 0509a093952f..000000000000 --- a/patches/server/0887-Properly-cancel-usable-items.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> -Date: Tue, 23 May 2023 22:33:36 -0400 -Subject: [PATCH] Properly cancel usable items - -This fixes the bug causing cancelling PlayerInteractEvent to cause items to continue to be used despite being cancelled on the server. - -For example, items being consumed but never finishing, shields being put up, etc. -The underlying issue of this is that the client modifies their synced data values, and so we have to (forcibly) resend -them in order for the client to reset their using item state. - -diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 88b71210d0845e8a4a2cd424ba238c4b5e27933b..3b93db1e23266c6ee3d2e22825c7668ef5b81f95 100644 ---- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -555,6 +555,7 @@ public class ServerPlayerGameMode { - } - // Paper end - extend Player Interact cancellation - player.getBukkitEntity().updateInventory(); // SPIGOT-2867 -+ this.player.resyncUsingItem(this.player); // Paper - Properly cancel usable items - enuminteractionresult = (event.useItemInHand() != Event.Result.ALLOW) ? InteractionResult.SUCCESS : InteractionResult.PASS; - } else if (this.gameModeForPlayer == GameType.SPECTATOR) { - MenuProvider itileinventory = iblockdata.getMenuProvider(world, blockposition); -@@ -598,6 +599,11 @@ public class ServerPlayerGameMode { - - return enuminteractionresult1; - } -+ // Paper start - Properly cancel usable items; Cancel only if cancelled + if the interact result is different from default response -+ else if (this.interactResult && this.interactResult != cancelledItem) { -+ this.player.resyncUsingItem(this.player); -+ } -+ // Paper end - Properly cancel usable items - } - return enuminteractionresult; - // CraftBukkit end -diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index d2916743981c6632957ab8bed5ae7a2334c5646b..33bdfb66f36cce5e89be1a0de8b5a3346dbfa1e3 100644 ---- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1876,6 +1876,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - } - - if (cancelled) { -+ this.player.resyncUsingItem(this.player); // Paper - Properly cancel usable items - this.player.getBukkitEntity().updateInventory(); // SPIGOT-2524 - return; - } -diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f6592d997a4cfd9d3ca86cd955e3de0a49743bfa..0a2e87a53df8611a5cd0d70dae2eb35ff5406745 100644 ---- a/src/main/java/net/minecraft/world/entity/LivingEntity.java -+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3813,6 +3813,11 @@ public abstract class LivingEntity extends Entity implements Attackable { - return ((Byte) this.entityData.get(LivingEntity.DATA_LIVING_ENTITY_FLAGS) & 2) > 0 ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND; - } - -+ // Paper start - Properly cancel usable items -+ public void resyncUsingItem(ServerPlayer serverPlayer) { -+ this.getEntityData().resendPossiblyDesyncedDataValues(java.util.List.of(DATA_LIVING_ENTITY_FLAGS), serverPlayer); -+ } -+ // Paper end - Properly cancel usable items - private void updatingUsingItem() { - if (this.isUsingItem()) { - if (ItemStack.isSameItem(this.getItemInHand(this.getUsedItemHand()), this.useItem)) { diff --git a/patches/server/0890-Fix-cmd-permission-levels-for-command-blocks.patch b/patches/server/0888-Fix-cmd-permission-levels-for-command-blocks.patch similarity index 100% rename from patches/server/0890-Fix-cmd-permission-levels-for-command-blocks.patch rename to patches/server/0888-Fix-cmd-permission-levels-for-command-blocks.patch diff --git a/patches/server/0891-Add-option-to-disable-block-updates.patch b/patches/server/0889-Add-option-to-disable-block-updates.patch similarity index 100% rename from patches/server/0891-Add-option-to-disable-block-updates.patch rename to patches/server/0889-Add-option-to-disable-block-updates.patch diff --git a/patches/server/0892-Call-missing-BlockDispenseEvent.patch b/patches/server/0890-Call-missing-BlockDispenseEvent.patch similarity index 100% rename from patches/server/0892-Call-missing-BlockDispenseEvent.patch rename to patches/server/0890-Call-missing-BlockDispenseEvent.patch diff --git a/patches/server/0893-Don-t-load-chunks-for-supporting-block-checks.patch b/patches/server/0891-Don-t-load-chunks-for-supporting-block-checks.patch similarity index 84% rename from patches/server/0893-Don-t-load-chunks-for-supporting-block-checks.patch rename to patches/server/0891-Don-t-load-chunks-for-supporting-block-checks.patch index ce43b9a2d650..6e0304e143fc 100644 --- a/patches/server/0893-Don-t-load-chunks-for-supporting-block-checks.patch +++ b/patches/server/0891-Don-t-load-chunks-for-supporting-block-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't load chunks for supporting block checks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 16a4eaa49878a42f12d07ef172762a58cfa16579..3c2b7adcdeeb513ce6697accd2bd81d1c4810448 100644 +index 650001a295128f97ce2242b60a6dc93885c84268..9785571cf5b0059d404ae325047dd57633d83421 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1239,7 +1239,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1240,7 +1240,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } protected BlockPos getOnPos(float offset) { diff --git a/patches/server/0894-Optimize-player-lookups-for-beacons.patch b/patches/server/0892-Optimize-player-lookups-for-beacons.patch similarity index 100% rename from patches/server/0894-Optimize-player-lookups-for-beacons.patch rename to patches/server/0892-Optimize-player-lookups-for-beacons.patch diff --git a/patches/server/0895-Add-Sign-getInteractableSideFor.patch b/patches/server/0893-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/server/0895-Add-Sign-getInteractableSideFor.patch rename to patches/server/0893-Add-Sign-getInteractableSideFor.patch diff --git a/patches/server/0896-Array-backed-synched-entity-data.patch b/patches/server/0894-Array-backed-synched-entity-data.patch similarity index 100% rename from patches/server/0896-Array-backed-synched-entity-data.patch rename to patches/server/0894-Array-backed-synched-entity-data.patch diff --git a/patches/server/0897-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0895-fix-item-meta-for-tadpole-buckets.patch similarity index 100% rename from patches/server/0897-fix-item-meta-for-tadpole-buckets.patch rename to patches/server/0895-fix-item-meta-for-tadpole-buckets.patch diff --git a/patches/server/0898-Fix-BanList-API.patch b/patches/server/0896-Fix-BanList-API.patch similarity index 100% rename from patches/server/0898-Fix-BanList-API.patch rename to patches/server/0896-Fix-BanList-API.patch diff --git a/patches/server/0899-Determine-lava-and-water-fluid-explosion-resistance-.patch b/patches/server/0897-Determine-lava-and-water-fluid-explosion-resistance-.patch similarity index 100% rename from patches/server/0899-Determine-lava-and-water-fluid-explosion-resistance-.patch rename to patches/server/0897-Determine-lava-and-water-fluid-explosion-resistance-.patch diff --git a/patches/server/0900-Fix-possible-NPE-on-painting-creation.patch b/patches/server/0898-Fix-possible-NPE-on-painting-creation.patch similarity index 100% rename from patches/server/0900-Fix-possible-NPE-on-painting-creation.patch rename to patches/server/0898-Fix-possible-NPE-on-painting-creation.patch diff --git a/patches/server/0901-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch b/patches/server/0899-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch similarity index 100% rename from patches/server/0901-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch rename to patches/server/0899-Only-set-despawnTimer-for-Wandering-Traders-spawned-.patch diff --git a/patches/server/0902-ExperienceOrb-should-call-EntitySpawnEvent.patch b/patches/server/0900-ExperienceOrb-should-call-EntitySpawnEvent.patch similarity index 100% rename from patches/server/0902-ExperienceOrb-should-call-EntitySpawnEvent.patch rename to patches/server/0900-ExperienceOrb-should-call-EntitySpawnEvent.patch diff --git a/patches/server/0903-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch b/patches/server/0901-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch similarity index 100% rename from patches/server/0903-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch rename to patches/server/0901-Make-Amethyst-throw-both-Spread-and-Grow-Events.patch diff --git a/patches/server/0904-Add-whitelist-events.patch b/patches/server/0902-Add-whitelist-events.patch similarity index 100% rename from patches/server/0904-Add-whitelist-events.patch rename to patches/server/0902-Add-whitelist-events.patch diff --git a/patches/server/0905-Implement-PlayerFailMoveEvent.patch b/patches/server/0903-Implement-PlayerFailMoveEvent.patch similarity index 98% rename from patches/server/0905-Implement-PlayerFailMoveEvent.patch rename to patches/server/0903-Implement-PlayerFailMoveEvent.patch index 18dddf876cac..1214d127e3de 100644 --- a/patches/server/0905-Implement-PlayerFailMoveEvent.patch +++ b/patches/server/0903-Implement-PlayerFailMoveEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerFailMoveEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 33bdfb66f36cce5e89be1a0de8b5a3346dbfa1e3..22855d2790ac8b7c382d0355a372e9bebf7b530f 100644 +index d2916743981c6632957ab8bed5ae7a2334c5646b..51be87480186f1b879f6c847030857aa735155e4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1279,8 +1279,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -89,7 +89,7 @@ index 33bdfb66f36cce5e89be1a0de8b5a3346dbfa1e3..22855d2790ac8b7c382d0355a372e9be this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet. this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround()); } else { -@@ -3371,4 +3399,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3370,4 +3398,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl InteractionResult run(ServerPlayer player, Entity entity, InteractionHand hand); } diff --git a/patches/server/0906-Folia-scheduler-and-owned-region-API.patch b/patches/server/0904-Folia-scheduler-and-owned-region-API.patch similarity index 99% rename from patches/server/0906-Folia-scheduler-and-owned-region-API.patch rename to patches/server/0904-Folia-scheduler-and-owned-region-API.patch index f237e82cec07..963196135201 100644 --- a/patches/server/0906-Folia-scheduler-and-owned-region-API.patch +++ b/patches/server/0904-Folia-scheduler-and-owned-region-API.patch @@ -1173,7 +1173,7 @@ index 14393bd35c3c77ee8d7bad0c71e880f6dd9c1be5..b703a21df8f27a987f74f99ceff476ec this.profiler.push("commandFunctions"); MinecraftTimings.commandFunctionsTimer.startTiming(); // Spigot // Paper diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f9cb05de12c938ea6d44a806f73bc0ae48b4394f..70c89dee884838983070d3cca7bc3e2ef13674d7 100644 +index 2192ed7df719c9b8d4c990d9fb38824284fe3f0c..bb5a51dec100fe7924fd00da9804a3040752a23f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -648,6 +648,7 @@ public abstract class PlayerList { @@ -1185,7 +1185,7 @@ index f9cb05de12c938ea6d44a806f73bc0ae48b4394f..70c89dee884838983070d3cca7bc3e2e this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3c2b7adcdeeb513ce6697accd2bd81d1c4810448..30585256911a6c57205e217b3f3b4663cd0101d8 100644 +index 9785571cf5b0059d404ae325047dd57633d83421..90a5cd8735ffa01b5cdbe807ef5fea0467d45813 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -246,11 +246,23 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1213,7 +1213,7 @@ index 3c2b7adcdeeb513ce6697accd2bd81d1c4810448..30585256911a6c57205e217b3f3b4663 @Override public CommandSender getBukkitSender(CommandSourceStack wrapper) { return this.getBukkitEntity(); -@@ -4498,6 +4510,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4499,6 +4511,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return; } // Paper end - rewrite chunk system @@ -1221,7 +1221,7 @@ index 3c2b7adcdeeb513ce6697accd2bd81d1c4810448..30585256911a6c57205e217b3f3b4663 if (this.removalReason == null) { this.removalReason = reason; } -@@ -4508,12 +4521,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4509,12 +4522,28 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S if (reason != RemovalReason.UNLOADED_TO_CHUNK) this.getPassengers().forEach(Entity::stopRiding); // Paper - chunk system - don't adjust passenger state when unloading, it's just not safe (and messes with our logic in entity chunk unload) this.levelCallback.onRemove(reason); @@ -1332,7 +1332,7 @@ index 534d250da9fa7715ff25e3e1b1e7362940e82056..4d8575a82849c378eda17cdfb12a45af ConfigurationSerialization.registerClass(CraftOfflinePlayer.class); ConfigurationSerialization.registerClass(CraftPlayerProfile.class); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 8692e54ee6defecf391884488121fef84731eac6..ed760cce3ee719b89bb6636063a384eb9fd84deb 100644 +index e043a43ebda1df7b78c1368ce33a3648345bcb08..b86746be78e909b75a91751fbc4759db088d42a4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -67,6 +67,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0907-Only-erase-allay-memory-on-non-item-targets.patch b/patches/server/0905-Only-erase-allay-memory-on-non-item-targets.patch similarity index 100% rename from patches/server/0907-Only-erase-allay-memory-on-non-item-targets.patch rename to patches/server/0905-Only-erase-allay-memory-on-non-item-targets.patch diff --git a/patches/server/0908-API-for-updating-recipes-on-clients.patch b/patches/server/0906-API-for-updating-recipes-on-clients.patch similarity index 97% rename from patches/server/0908-API-for-updating-recipes-on-clients.patch rename to patches/server/0906-API-for-updating-recipes-on-clients.patch index 822afe4fce21..a6fd3be8e5b2 100644 --- a/patches/server/0908-API-for-updating-recipes-on-clients.patch +++ b/patches/server/0906-API-for-updating-recipes-on-clients.patch @@ -5,7 +5,7 @@ Subject: [PATCH] API for updating recipes on clients diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 70c89dee884838983070d3cca7bc3e2ef13674d7..1e0cc8051f0a36a21b277eab15daf612e04e4c9d 100644 +index bb5a51dec100fe7924fd00da9804a3040752a23f..9c392ac769ec8660cb70012744a64a522a5d23d4 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1543,6 +1543,13 @@ public abstract class PlayerList { diff --git a/patches/server/0909-Fix-rotation-when-spawning-display-entities.patch b/patches/server/0907-Fix-rotation-when-spawning-display-entities.patch similarity index 100% rename from patches/server/0909-Fix-rotation-when-spawning-display-entities.patch rename to patches/server/0907-Fix-rotation-when-spawning-display-entities.patch diff --git a/patches/server/0910-Only-capture-actual-tree-growth.patch b/patches/server/0908-Only-capture-actual-tree-growth.patch similarity index 97% rename from patches/server/0910-Only-capture-actual-tree-growth.patch rename to patches/server/0908-Only-capture-actual-tree-growth.patch index 91c73a049e6c..56ff55e08786 100644 --- a/patches/server/0910-Only-capture-actual-tree-growth.patch +++ b/patches/server/0908-Only-capture-actual-tree-growth.patch @@ -29,10 +29,10 @@ index e14d928e8bf484c61f2687621623942a27f30db1..0fd5decb0790423aba80a7c1e55ce39a } entityhuman.awardStat(Stats.ITEM_USED.get(item)); // SPIGOT-7236 - award stat diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 24aafda4ec034b5baa544704f8faf5ff6fcd2827..6dfff3e991436df62babc8b3398d39d58d03baee 100644 +index f4db64595f4434c9225923390c4fe7d7e0af6d26..a63beddef78967d13add0e62a97f03ec82f3fcc0 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1396,4 +1396,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1403,4 +1403,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return range <= 0 ? 64.0 * 64.0 : range * range; // 64 is taken from default in ServerLevel#levelEvent } // Paper end - respect global sound events gamerule diff --git a/patches/server/0911-Use-correct-source-for-mushroom-block-spread-event.patch b/patches/server/0909-Use-correct-source-for-mushroom-block-spread-event.patch similarity index 100% rename from patches/server/0911-Use-correct-source-for-mushroom-block-spread-event.patch rename to patches/server/0909-Use-correct-source-for-mushroom-block-spread-event.patch diff --git a/patches/server/0912-Respect-randomizeData-on-more-entities-when-spawning.patch b/patches/server/0910-Respect-randomizeData-on-more-entities-when-spawning.patch similarity index 100% rename from patches/server/0912-Respect-randomizeData-on-more-entities-when-spawning.patch rename to patches/server/0910-Respect-randomizeData-on-more-entities-when-spawning.patch diff --git a/patches/server/0913-Use-correct-seed-on-api-world-load.patch b/patches/server/0911-Use-correct-seed-on-api-world-load.patch similarity index 100% rename from patches/server/0913-Use-correct-seed-on-api-world-load.patch rename to patches/server/0911-Use-correct-seed-on-api-world-load.patch diff --git a/patches/server/0914-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch b/patches/server/0912-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch similarity index 100% rename from patches/server/0914-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch rename to patches/server/0912-Remove-UpgradeData-neighbour-ticks-outside-of-range.patch diff --git a/patches/server/0915-Cache-map-ids-on-item-frames.patch b/patches/server/0913-Cache-map-ids-on-item-frames.patch similarity index 100% rename from patches/server/0915-Cache-map-ids-on-item-frames.patch rename to patches/server/0913-Cache-map-ids-on-item-frames.patch diff --git a/patches/server/0916-Fix-custom-statistic-criteria-creation.patch b/patches/server/0914-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/server/0916-Fix-custom-statistic-criteria-creation.patch rename to patches/server/0914-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/server/0917-Bandaid-fix-for-Effect.patch b/patches/server/0915-Bandaid-fix-for-Effect.patch similarity index 100% rename from patches/server/0917-Bandaid-fix-for-Effect.patch rename to patches/server/0915-Bandaid-fix-for-Effect.patch diff --git a/patches/server/0918-SculkCatalyst-bloom-API.patch b/patches/server/0916-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/server/0918-SculkCatalyst-bloom-API.patch rename to patches/server/0916-SculkCatalyst-bloom-API.patch diff --git a/patches/server/0919-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0917-API-for-an-entity-s-scoreboard-name.patch similarity index 91% rename from patches/server/0919-API-for-an-entity-s-scoreboard-name.patch rename to patches/server/0917-API-for-an-entity-s-scoreboard-name.patch index 3183c6cdf635..cda86cf4763c 100644 --- a/patches/server/0919-API-for-an-entity-s-scoreboard-name.patch +++ b/patches/server/0917-API-for-an-entity-s-scoreboard-name.patch @@ -7,7 +7,7 @@ Was obtainable through different methods, but you had to use different methods depending on the implementation of Entity you were working with. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index ed760cce3ee719b89bb6636063a384eb9fd84deb..cc14e635a5f2f8afe593afc676c718c431361dfb 100644 +index b86746be78e909b75a91751fbc4759db088d42a4..5abf149210f2338a125994d653209eea68359b11 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1191,4 +1191,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0920-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/server/0918-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/server/0920-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/server/0918-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/server/0921-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0919-Don-t-tab-complete-namespaced-commands-if-send-names.patch similarity index 95% rename from patches/server/0921-Don-t-tab-complete-namespaced-commands-if-send-names.patch rename to patches/server/0919-Don-t-tab-complete-namespaced-commands-if-send-names.patch index 4974e1609b66..251f3399807c 100644 --- a/patches/server/0921-Don-t-tab-complete-namespaced-commands-if-send-names.patch +++ b/patches/server/0919-Don-t-tab-complete-namespaced-commands-if-send-names.patch @@ -11,7 +11,7 @@ This patch prevents server from sending namespaced commands when player requests tab-complete only commands. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 22855d2790ac8b7c382d0355a372e9bebf7b530f..a48915fb14e0bfba762853924913b7760a8aec2f 100644 +index 51be87480186f1b879f6c847030857aa735155e4..b5c1b8884e762bdabd0f8a64662b4a8debd29b10 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -770,6 +770,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0922-Properly-handle-BlockBreakEvent-isDropItems.patch b/patches/server/0920-Properly-handle-BlockBreakEvent-isDropItems.patch similarity index 99% rename from patches/server/0922-Properly-handle-BlockBreakEvent-isDropItems.patch rename to patches/server/0920-Properly-handle-BlockBreakEvent-isDropItems.patch index 12a1d598b2ce..f5555dbeb3fe 100644 --- a/patches/server/0922-Properly-handle-BlockBreakEvent-isDropItems.patch +++ b/patches/server/0920-Properly-handle-BlockBreakEvent-isDropItems.patch @@ -9,7 +9,7 @@ food consumption, turtle egg count decreases, ice to water conversions and beehive releases diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 3b93db1e23266c6ee3d2e22825c7668ef5b81f95..7fa8041b12b8398a1d4838142c61cdc0f5bd51ad 100644 +index 88b71210d0845e8a4a2cd424ba238c4b5e27933b..e9b41b818c867d26fe9d3fa6e4d55fb432083d62 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -431,8 +431,8 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0923-Fire-entity-death-event-for-ender-dragon.patch b/patches/server/0921-Fire-entity-death-event-for-ender-dragon.patch similarity index 100% rename from patches/server/0923-Fire-entity-death-event-for-ender-dragon.patch rename to patches/server/0921-Fire-entity-death-event-for-ender-dragon.patch diff --git a/patches/server/0924-Configurable-entity-tracking-range-by-Y-coordinate.patch b/patches/server/0922-Configurable-entity-tracking-range-by-Y-coordinate.patch similarity index 91% rename from patches/server/0924-Configurable-entity-tracking-range-by-Y-coordinate.patch rename to patches/server/0922-Configurable-entity-tracking-range-by-Y-coordinate.patch index f4c6558dced8..3e0529527505 100644 --- a/patches/server/0924-Configurable-entity-tracking-range-by-Y-coordinate.patch +++ b/patches/server/0922-Configurable-entity-tracking-range-by-Y-coordinate.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Configurable entity tracking range by Y coordinate Options to configure entity tracking by Y coordinate, also for each entity category. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 94a0e0d1cdbb96a12acd1a23833242d9676d21a0..fcbb74c56e4315ed197e9adfdbd2c6b76ba9f5e0 100644 +index e8dfae9d5d899963d1750d0e60a5069bab12ea07..1236c92c52454207e031aeeb050db910ccda40c3 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1179,6 +1179,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1183,6 +1183,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider double d1 = vec3d.x * vec3d.x + vec3d.z * vec3d.z; double d2 = d0 * d0; boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z); diff --git a/patches/server/0925-Add-Listing-API-for-Player.patch b/patches/server/0923-Add-Listing-API-for-Player.patch similarity index 99% rename from patches/server/0925-Add-Listing-API-for-Player.patch rename to patches/server/0923-Add-Listing-API-for-Player.patch index 0f97eb50b8b6..d1b5edaed1c8 100644 --- a/patches/server/0925-Add-Listing-API-for-Player.patch +++ b/patches/server/0923-Add-Listing-API-for-Player.patch @@ -74,7 +74,7 @@ index d43106eb89b14667e85cd6e8fa047d64f2e8ec87..56eddd28429cf42c02d88b8bf79f8b61 static class EntryBuilder { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 1e0cc8051f0a36a21b277eab15daf612e04e4c9d..d1ca2b75d82653064b905b94a638abbb2d0e710d 100644 +index 9c392ac769ec8660cb70012744a64a522a5d23d4..34bd7e81f9480c97afd69c11eca216b03e6a5a1f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -356,14 +356,22 @@ public abstract class PlayerList { diff --git a/patches/server/0926-Configurable-Region-Compression-Format.patch b/patches/server/0924-Configurable-Region-Compression-Format.patch similarity index 100% rename from patches/server/0926-Configurable-Region-Compression-Format.patch rename to patches/server/0924-Configurable-Region-Compression-Format.patch diff --git a/patches/server/0927-Add-BlockFace-to-BlockDamageEvent.patch b/patches/server/0925-Add-BlockFace-to-BlockDamageEvent.patch similarity index 96% rename from patches/server/0927-Add-BlockFace-to-BlockDamageEvent.patch rename to patches/server/0925-Add-BlockFace-to-BlockDamageEvent.patch index aff36106fb29..05c4a495b004 100644 --- a/patches/server/0927-Add-BlockFace-to-BlockDamageEvent.patch +++ b/patches/server/0925-Add-BlockFace-to-BlockDamageEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add BlockFace to BlockDamageEvent diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 7fa8041b12b8398a1d4838142c61cdc0f5bd51ad..334f3bc7f4a08fbbca7e03e75acf1bc46eb6479c 100644 +index e9b41b818c867d26fe9d3fa6e4d55fb432083d62..c9594f82c31cd750cdfb26619b1094a865058faf 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -253,7 +253,7 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0928-Fix-NPE-on-Boat-getStatus.patch b/patches/server/0926-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/server/0928-Fix-NPE-on-Boat-getStatus.patch rename to patches/server/0926-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/server/0929-Expand-Pose-API.patch b/patches/server/0927-Expand-Pose-API.patch similarity index 91% rename from patches/server/0929-Expand-Pose-API.patch rename to patches/server/0927-Expand-Pose-API.patch index 6616afa067b9..dba3432d69d0 100644 --- a/patches/server/0929-Expand-Pose-API.patch +++ b/patches/server/0927-Expand-Pose-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expand Pose API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 30585256911a6c57205e217b3f3b4663cd0101d8..ba9a1f9bd38f8ac58449787a9697c28fe300193a 100644 +index 90a5cd8735ffa01b5cdbe807ef5fea0467d45813..e6695cf44190734278fc9a01fa928cd53421b260 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -418,6 +418,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -25,7 +25,7 @@ index 30585256911a6c57205e217b3f3b4663cd0101d8..ba9a1f9bd38f8ac58449787a9697c28f if (pose == this.getPose()) { return; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index cc14e635a5f2f8afe593afc676c718c431361dfb..395476ab15a04f95710c671c9a896a9a37daa9b4 100644 +index 5abf149210f2338a125994d653209eea68359b11..1c035d1a9acc5f0a21169c66541d890a23bba033 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -896,6 +896,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0930-More-DragonBattle-API.patch b/patches/server/0928-More-DragonBattle-API.patch similarity index 100% rename from patches/server/0930-More-DragonBattle-API.patch rename to patches/server/0928-More-DragonBattle-API.patch diff --git a/patches/server/0931-Deep-clone-unhandled-nbt-tags.patch b/patches/server/0929-Deep-clone-unhandled-nbt-tags.patch similarity index 100% rename from patches/server/0931-Deep-clone-unhandled-nbt-tags.patch rename to patches/server/0929-Deep-clone-unhandled-nbt-tags.patch diff --git a/patches/server/0932-Add-PlayerPickItemEvent.patch b/patches/server/0930-Add-PlayerPickItemEvent.patch similarity index 96% rename from patches/server/0932-Add-PlayerPickItemEvent.patch rename to patches/server/0930-Add-PlayerPickItemEvent.patch index dce304a5c23a..64af19c7e44f 100644 --- a/patches/server/0932-Add-PlayerPickItemEvent.patch +++ b/patches/server/0930-Add-PlayerPickItemEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerPickItemEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a48915fb14e0bfba762853924913b7760a8aec2f..70941e46dd15db9d221b505577511cd0295ba603 100644 +index b5c1b8884e762bdabd0f8a64662b4a8debd29b10..ebdfd3d52e48781c07e92b468220642a1c10b9eb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -907,8 +907,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0933-Allow-trident-custom-damage.patch b/patches/server/0931-Allow-trident-custom-damage.patch similarity index 100% rename from patches/server/0933-Allow-trident-custom-damage.patch rename to patches/server/0931-Allow-trident-custom-damage.patch diff --git a/patches/server/0934-Expose-hand-in-BlockCanBuildEvent.patch b/patches/server/0932-Expose-hand-in-BlockCanBuildEvent.patch similarity index 100% rename from patches/server/0934-Expose-hand-in-BlockCanBuildEvent.patch rename to patches/server/0932-Expose-hand-in-BlockCanBuildEvent.patch diff --git a/patches/server/0935-Optimize-nearest-structure-border-iteration.patch b/patches/server/0933-Optimize-nearest-structure-border-iteration.patch similarity index 100% rename from patches/server/0935-Optimize-nearest-structure-border-iteration.patch rename to patches/server/0933-Optimize-nearest-structure-border-iteration.patch diff --git a/patches/server/0936-Implement-OfflinePlayer-isConnected.patch b/patches/server/0934-Implement-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/server/0936-Implement-OfflinePlayer-isConnected.patch rename to patches/server/0934-Implement-OfflinePlayer-isConnected.patch diff --git a/patches/server/0937-Fix-inventory-desync.patch b/patches/server/0935-Fix-inventory-desync.patch similarity index 100% rename from patches/server/0937-Fix-inventory-desync.patch rename to patches/server/0935-Fix-inventory-desync.patch diff --git a/patches/server/0938-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0936-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 100% rename from patches/server/0938-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/server/0936-Add-titleOverride-to-InventoryOpenEvent.patch diff --git a/patches/server/0939-Configure-sniffer-egg-hatch-time.patch b/patches/server/0937-Configure-sniffer-egg-hatch-time.patch similarity index 100% rename from patches/server/0939-Configure-sniffer-egg-hatch-time.patch rename to patches/server/0937-Configure-sniffer-egg-hatch-time.patch diff --git a/patches/server/0940-Do-crystal-portal-proximity-check-before-entity-look.patch b/patches/server/0938-Do-crystal-portal-proximity-check-before-entity-look.patch similarity index 100% rename from patches/server/0940-Do-crystal-portal-proximity-check-before-entity-look.patch rename to patches/server/0938-Do-crystal-portal-proximity-check-before-entity-look.patch diff --git a/patches/server/0941-Skip-POI-finding-if-stuck-in-vehicle.patch b/patches/server/0939-Skip-POI-finding-if-stuck-in-vehicle.patch similarity index 100% rename from patches/server/0941-Skip-POI-finding-if-stuck-in-vehicle.patch rename to patches/server/0939-Skip-POI-finding-if-stuck-in-vehicle.patch diff --git a/patches/server/0942-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0940-Add-slot-sanity-checks-in-container-clicks.patch similarity index 94% rename from patches/server/0942-Add-slot-sanity-checks-in-container-clicks.patch rename to patches/server/0940-Add-slot-sanity-checks-in-container-clicks.patch index ccb4411a26e9..474ffdad049d 100644 --- a/patches/server/0942-Add-slot-sanity-checks-in-container-clicks.patch +++ b/patches/server/0940-Add-slot-sanity-checks-in-container-clicks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add slot sanity checks in container clicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 70941e46dd15db9d221b505577511cd0295ba603..9342efcb855dce5cced227b15356df090e9c451a 100644 +index ebdfd3d52e48781c07e92b468220642a1c10b9eb..1d22b4ba82b440f163137ea6f8a182a00898c15b 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2900,6 +2900,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2899,6 +2899,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl break; case SWAP: if ((packet.getButtonNum() >= 0 && packet.getButtonNum() < 9) || packet.getButtonNum() == 40) { diff --git a/patches/server/0943-Call-BlockRedstoneEvents-for-lecterns.patch b/patches/server/0941-Call-BlockRedstoneEvents-for-lecterns.patch similarity index 100% rename from patches/server/0943-Call-BlockRedstoneEvents-for-lecterns.patch rename to patches/server/0941-Call-BlockRedstoneEvents-for-lecterns.patch diff --git a/patches/server/0944-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0942-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/server/0944-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/server/0942-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/server/0945-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0943-Fix-silent-equipment-change-for-mobs.patch similarity index 100% rename from patches/server/0945-Fix-silent-equipment-change-for-mobs.patch rename to patches/server/0943-Fix-silent-equipment-change-for-mobs.patch diff --git a/patches/server/0946-Fix-spigot-s-Forced-Stats.patch b/patches/server/0944-Fix-spigot-s-Forced-Stats.patch similarity index 100% rename from patches/server/0946-Fix-spigot-s-Forced-Stats.patch rename to patches/server/0944-Fix-spigot-s-Forced-Stats.patch diff --git a/patches/server/0947-Add-missing-InventoryHolders-to-inventories.patch b/patches/server/0945-Add-missing-InventoryHolders-to-inventories.patch similarity index 100% rename from patches/server/0947-Add-missing-InventoryHolders-to-inventories.patch rename to patches/server/0945-Add-missing-InventoryHolders-to-inventories.patch diff --git a/patches/server/0948-Do-not-read-tile-entities-in-chunks-that-are-positio.patch b/patches/server/0946-Do-not-read-tile-entities-in-chunks-that-are-positio.patch similarity index 100% rename from patches/server/0948-Do-not-read-tile-entities-in-chunks-that-are-positio.patch rename to patches/server/0946-Do-not-read-tile-entities-in-chunks-that-are-positio.patch diff --git a/patches/server/0949-Add-missing-logs-for-log-ips-config-option.patch b/patches/server/0947-Add-missing-logs-for-log-ips-config-option.patch similarity index 100% rename from patches/server/0949-Add-missing-logs-for-log-ips-config-option.patch rename to patches/server/0947-Add-missing-logs-for-log-ips-config-option.patch diff --git a/patches/server/0950-Remove-Spigot-Bug-Fix-for-MC-109346.patch b/patches/server/0948-Remove-Spigot-Bug-Fix-for-MC-109346.patch similarity index 100% rename from patches/server/0950-Remove-Spigot-Bug-Fix-for-MC-109346.patch rename to patches/server/0948-Remove-Spigot-Bug-Fix-for-MC-109346.patch diff --git a/patches/server/0951-Fix-SuspiciousStewMeta.patch b/patches/server/0949-Fix-SuspiciousStewMeta.patch similarity index 100% rename from patches/server/0951-Fix-SuspiciousStewMeta.patch rename to patches/server/0949-Fix-SuspiciousStewMeta.patch diff --git a/patches/server/0952-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch b/patches/server/0950-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch similarity index 100% rename from patches/server/0952-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch rename to patches/server/0950-Fix-race-condition-on-UpgradeData.BlockFixers-class-.patch diff --git a/patches/server/0953-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch b/patches/server/0951-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch similarity index 100% rename from patches/server/0953-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch rename to patches/server/0951-Fix-NPE-in-AdvancementProgress-getDateAwarded.patch diff --git a/patches/server/0954-Fix-team-sidebar-objectives-not-being-cleared.patch b/patches/server/0952-Fix-team-sidebar-objectives-not-being-cleared.patch similarity index 100% rename from patches/server/0954-Fix-team-sidebar-objectives-not-being-cleared.patch rename to patches/server/0952-Fix-team-sidebar-objectives-not-being-cleared.patch diff --git a/patches/server/0955-Fix-missing-map-initialize-event-call.patch b/patches/server/0953-Fix-missing-map-initialize-event-call.patch similarity index 100% rename from patches/server/0955-Fix-missing-map-initialize-event-call.patch rename to patches/server/0953-Fix-missing-map-initialize-event-call.patch diff --git a/patches/server/0956-Update-entity-data-when-attaching-firework-to-entity.patch b/patches/server/0954-Update-entity-data-when-attaching-firework-to-entity.patch similarity index 100% rename from patches/server/0956-Update-entity-data-when-attaching-firework-to-entity.patch rename to patches/server/0954-Update-entity-data-when-attaching-firework-to-entity.patch diff --git a/patches/server/0957-Use-correct-variable-for-initializing-CraftLootTable.patch b/patches/server/0955-Use-correct-variable-for-initializing-CraftLootTable.patch similarity index 100% rename from patches/server/0957-Use-correct-variable-for-initializing-CraftLootTable.patch rename to patches/server/0955-Use-correct-variable-for-initializing-CraftLootTable.patch diff --git a/patches/server/0958-Make-setVelocity-method-of-Fireballs-change-the-trav.patch b/patches/server/0956-Make-setVelocity-method-of-Fireballs-change-the-trav.patch similarity index 100% rename from patches/server/0958-Make-setVelocity-method-of-Fireballs-change-the-trav.patch rename to patches/server/0956-Make-setVelocity-method-of-Fireballs-change-the-trav.patch diff --git a/patches/server/0959-Fix-UnsafeValues-loadAdvancement.patch b/patches/server/0957-Fix-UnsafeValues-loadAdvancement.patch similarity index 100% rename from patches/server/0959-Fix-UnsafeValues-loadAdvancement.patch rename to patches/server/0957-Fix-UnsafeValues-loadAdvancement.patch diff --git a/patches/server/0960-Add-player-idle-duration-API.patch b/patches/server/0958-Add-player-idle-duration-API.patch similarity index 100% rename from patches/server/0960-Add-player-idle-duration-API.patch rename to patches/server/0958-Add-player-idle-duration-API.patch diff --git a/patches/server/0961-Don-t-check-if-we-can-see-non-visible-entities.patch b/patches/server/0959-Don-t-check-if-we-can-see-non-visible-entities.patch similarity index 85% rename from patches/server/0961-Don-t-check-if-we-can-see-non-visible-entities.patch rename to patches/server/0959-Don-t-check-if-we-can-see-non-visible-entities.patch index fe23e35cee16..3433a5e52790 100644 --- a/patches/server/0961-Don-t-check-if-we-can-see-non-visible-entities.patch +++ b/patches/server/0959-Don-t-check-if-we-can-see-non-visible-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't check if we can see non-visible entities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index fcbb74c56e4315ed197e9adfdbd2c6b76ba9f5e0..e4f055e935bb0b31e6ee60e57b48ce7ea7ac360d 100644 +index 1236c92c52454207e031aeeb050db910ccda40c3..9e7e192493532a2ecab23b98eebc95a1bb75791c 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1190,7 +1190,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1194,7 +1194,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end - Configurable entity tracking range by Y // CraftBukkit start - respect vanish API diff --git a/patches/server/0962-Fix-NPE-in-SculkBloomEvent-world-access.patch b/patches/server/0960-Fix-NPE-in-SculkBloomEvent-world-access.patch similarity index 100% rename from patches/server/0962-Fix-NPE-in-SculkBloomEvent-world-access.patch rename to patches/server/0960-Fix-NPE-in-SculkBloomEvent-world-access.patch diff --git a/patches/server/0963-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0961-Allow-null-itemstack-for-Player-sendEquipmentChange.patch similarity index 100% rename from patches/server/0963-Allow-null-itemstack-for-Player-sendEquipmentChange.patch rename to patches/server/0961-Allow-null-itemstack-for-Player-sendEquipmentChange.patch diff --git a/patches/server/0964-Optimize-VarInts.patch b/patches/server/0962-Optimize-VarInts.patch similarity index 100% rename from patches/server/0964-Optimize-VarInts.patch rename to patches/server/0962-Optimize-VarInts.patch diff --git a/patches/server/0965-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/server/0963-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/server/0965-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/server/0963-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/server/0966-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0964-Add-predicate-for-blocks-when-raytracing.patch similarity index 100% rename from patches/server/0966-Add-predicate-for-blocks-when-raytracing.patch rename to patches/server/0964-Add-predicate-for-blocks-when-raytracing.patch diff --git a/patches/server/0967-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0965-Broadcast-take-item-packets-with-collector-as-source.patch similarity index 92% rename from patches/server/0967-Broadcast-take-item-packets-with-collector-as-source.patch rename to patches/server/0965-Broadcast-take-item-packets-with-collector-as-source.patch index 2c79a6087b1c..b80d8e811d49 100644 --- a/patches/server/0967-Broadcast-take-item-packets-with-collector-as-source.patch +++ b/patches/server/0965-Broadcast-take-item-packets-with-collector-as-source.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Broadcast take item packets with collector as source This fixes players (which can't view the collector) seeing item pickups with themselves as the target. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0a2e87a53df8611a5cd0d70dae2eb35ff5406745..60841e31c65ba8e95fbb3b5a16a7a0d1c2eb831d 100644 +index f6592d997a4cfd9d3ca86cd955e3de0a49743bfa..f6eda18a0bcc398538c76bf4ca7c2a611523aa5d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3703,7 +3703,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0968-Expand-LingeringPotion-API.patch b/patches/server/0966-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/server/0968-Expand-LingeringPotion-API.patch rename to patches/server/0966-Expand-LingeringPotion-API.patch diff --git a/patches/server/0969-Add-MaterialTagsTest.patch b/patches/server/0967-Add-MaterialTagsTest.patch similarity index 100% rename from patches/server/0969-Add-MaterialTagsTest.patch rename to patches/server/0967-Add-MaterialTagsTest.patch diff --git a/patches/server/0970-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0968-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch similarity index 100% rename from patches/server/0970-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch rename to patches/server/0968-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch diff --git a/patches/server/0971-Add-hand-to-fish-event-for-all-player-interactions.patch b/patches/server/0969-Add-hand-to-fish-event-for-all-player-interactions.patch similarity index 100% rename from patches/server/0971-Add-hand-to-fish-event-for-all-player-interactions.patch rename to patches/server/0969-Add-hand-to-fish-event-for-all-player-interactions.patch diff --git a/patches/server/0972-Fix-several-issues-with-EntityBreedEvent.patch b/patches/server/0970-Fix-several-issues-with-EntityBreedEvent.patch similarity index 100% rename from patches/server/0972-Fix-several-issues-with-EntityBreedEvent.patch rename to patches/server/0970-Fix-several-issues-with-EntityBreedEvent.patch diff --git a/patches/server/0973-Add-UUID-attribute-modifier-API.patch b/patches/server/0971-Add-UUID-attribute-modifier-API.patch similarity index 100% rename from patches/server/0973-Add-UUID-attribute-modifier-API.patch rename to patches/server/0971-Add-UUID-attribute-modifier-API.patch diff --git a/patches/server/0974-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0972-Fix-missing-event-call-for-entity-teleport-API.patch similarity index 93% rename from patches/server/0974-Fix-missing-event-call-for-entity-teleport-API.patch rename to patches/server/0972-Fix-missing-event-call-for-entity-teleport-API.patch index 538b1a6306d7..0fec63f41882 100644 --- a/patches/server/0974-Fix-missing-event-call-for-entity-teleport-API.patch +++ b/patches/server/0972-Fix-missing-event-call-for-entity-teleport-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix missing event call for entity teleport API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 395476ab15a04f95710c671c9a896a9a37daa9b4..9b8ba3199fa091c7b20a89044ff986d9861f088f 100644 +index 1c035d1a9acc5f0a21169c66541d890a23bba033..44dd60c1f31b578e7630673433f3850f392b7a0d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -255,6 +255,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0975-Lazily-create-LootContext-for-criterions.patch b/patches/server/0973-Lazily-create-LootContext-for-criterions.patch similarity index 100% rename from patches/server/0975-Lazily-create-LootContext-for-criterions.patch rename to patches/server/0973-Lazily-create-LootContext-for-criterions.patch diff --git a/patches/server/0976-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0974-Don-t-fire-sync-events-during-worldgen.patch similarity index 97% rename from patches/server/0976-Don-t-fire-sync-events-during-worldgen.patch rename to patches/server/0974-Don-t-fire-sync-events-during-worldgen.patch index 0f30d31b68b0..aad124c97557 100644 --- a/patches/server/0976-Don-t-fire-sync-events-during-worldgen.patch +++ b/patches/server/0974-Don-t-fire-sync-events-during-worldgen.patch @@ -31,7 +31,7 @@ index 2ab478e0940eae27e6e886a36ed3c1278b3f8ae1..b54e89d68ba32f2a79e16d49f86a258b if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ba9a1f9bd38f8ac58449787a9697c28fe300193a..3c3f9a51256acb6ee4f005a08757d7ae0d27860e 100644 +index e6695cf44190734278fc9a01fa928cd53421b260..6813998a6bf9e74d663194a6be6bc222b8b129b6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -676,7 +676,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -68,7 +68,7 @@ index a6e20b5ee4fe1841dfc2350264b5935b968fe3f3..9da8d56ff3768fb37d1ab89300da4eca }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 60841e31c65ba8e95fbb3b5a16a7a0d1c2eb831d..5e1d02d67c56644c0aa7060d567515fd88b72c9d 100644 +index f6eda18a0bcc398538c76bf4ca7c2a611523aa5d..be0fa9a9e91c87234b0cd7b63c4e7dba8629ebe5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1134,6 +1134,11 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -107,7 +107,7 @@ index 60841e31c65ba8e95fbb3b5a16a7a0d1c2eb831d..5e1d02d67c56644c0aa7060d567515fd this.onEffectUpdated(mobeffect1, true, entity); // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index ff004d5c0dee027acea51aa4886065636335e2a9..0c68ed759421d6bce4435399f1b4980510081cac 100644 +index d90da2f9e4d6214577bc81bd6c70ba8593788898..ffa4f34d964fbcc53e2dfe11677832db21a6eb93 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -182,7 +182,7 @@ public class Spider extends Monster { diff --git a/patches/server/0977-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0975-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch similarity index 100% rename from patches/server/0977-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch rename to patches/server/0975-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch diff --git a/patches/server/0978-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0976-Restore-vanilla-entity-drops-behavior.patch similarity index 98% rename from patches/server/0978-Restore-vanilla-entity-drops-behavior.patch rename to patches/server/0976-Restore-vanilla-entity-drops-behavior.patch index 2fdc5056e9da..06526387f173 100644 --- a/patches/server/0978-Restore-vanilla-entity-drops-behavior.patch +++ b/patches/server/0976-Restore-vanilla-entity-drops-behavior.patch @@ -50,10 +50,10 @@ index 649e175b6d656fa89c1a59c36230b793c8d07e15..dcd69b2b054222d1749aab599caca834 if (entityitem == null) { return null; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3c3f9a51256acb6ee4f005a08757d7ae0d27860e..6946137dc476d79ccaa27608a482e6ad8b7bae1a 100644 +index 6813998a6bf9e74d663194a6be6bc222b8b129b6..aed6ab8c381ab0be56c2477869e57bfb063a51bc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2530,6 +2530,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2531,6 +2531,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @Nullable public ItemEntity spawnAtLocation(ItemStack stack, float yOffset) { @@ -79,7 +79,7 @@ index 3c3f9a51256acb6ee4f005a08757d7ae0d27860e..6946137dc476d79ccaa27608a482e6ad if (stack.isEmpty()) { return null; } else if (this.level().isClientSide) { -@@ -2537,14 +2556,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2538,14 +2557,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -104,7 +104,7 @@ index 3c3f9a51256acb6ee4f005a08757d7ae0d27860e..6946137dc476d79ccaa27608a482e6ad return this.spawnAtLocation(entityitem); } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5e1d02d67c56644c0aa7060d567515fd88b72c9d..8d45b2c47aba08c330ec869eba633347e0572477 100644 +index be0fa9a9e91c87234b0cd7b63c4e7dba8629ebe5..d3d958b58934bcb513ffef474a9de58c61e654a2 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -254,7 +254,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0979-Add-Structure-check-API.patch b/patches/server/0977-Add-Structure-check-API.patch similarity index 100% rename from patches/server/0979-Add-Structure-check-API.patch rename to patches/server/0977-Add-Structure-check-API.patch diff --git a/patches/server/0980-Dont-resend-blocks-on-interactions.patch b/patches/server/0978-Dont-resend-blocks-on-interactions.patch similarity index 99% rename from patches/server/0980-Dont-resend-blocks-on-interactions.patch rename to patches/server/0978-Dont-resend-blocks-on-interactions.patch index 21d50f2d4987..e6f673547498 100644 --- a/patches/server/0980-Dont-resend-blocks-on-interactions.patch +++ b/patches/server/0978-Dont-resend-blocks-on-interactions.patch @@ -8,7 +8,7 @@ In general, the client now has an acknowledgment system which will prevent block It should be noted that this system does not yet support block entities, so those still need to resynced when needed. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 334f3bc7f4a08fbbca7e03e75acf1bc46eb6479c..70c83a5631faed95183e15080fb3e5d8c3b817c0 100644 +index c9594f82c31cd750cdfb26619b1094a865058faf..bc0df2e1401b13737e23faae01ba16edc2a10d21 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -199,7 +199,7 @@ public class ServerPlayerGameMode { diff --git a/patches/server/0981-Keep-previous-behavior-for-setResourcePack.patch b/patches/server/0979-Keep-previous-behavior-for-setResourcePack.patch similarity index 100% rename from patches/server/0981-Keep-previous-behavior-for-setResourcePack.patch rename to patches/server/0979-Keep-previous-behavior-for-setResourcePack.patch diff --git a/patches/server/0982-properly-read-and-store-sus-effect-duration.patch b/patches/server/0980-properly-read-and-store-sus-effect-duration.patch similarity index 100% rename from patches/server/0982-properly-read-and-store-sus-effect-duration.patch rename to patches/server/0980-properly-read-and-store-sus-effect-duration.patch diff --git a/patches/server/0983-Use-correct-max-stack-size-in-crafter.patch b/patches/server/0981-Use-correct-max-stack-size-in-crafter.patch similarity index 100% rename from patches/server/0983-Use-correct-max-stack-size-in-crafter.patch rename to patches/server/0981-Use-correct-max-stack-size-in-crafter.patch diff --git a/patches/server/0984-add-more-scoreboard-API.patch b/patches/server/0982-add-more-scoreboard-API.patch similarity index 100% rename from patches/server/0984-add-more-scoreboard-API.patch rename to patches/server/0982-add-more-scoreboard-API.patch diff --git a/patches/server/0985-Improve-Registry.patch b/patches/server/0983-Improve-Registry.patch similarity index 100% rename from patches/server/0985-Improve-Registry.patch rename to patches/server/0983-Improve-Registry.patch diff --git a/patches/server/0986-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0984-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch similarity index 96% rename from patches/server/0986-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch rename to patches/server/0984-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch index b20b38f2d954..aa658a4835f1 100644 --- a/patches/server/0986-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch +++ b/patches/server/0984-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch @@ -26,10 +26,10 @@ index 3fec07b250a8f145e30c8c41888e47d2a3c902e1..2ddd033e1c3a2e5c8950b93c83849192 x = to.getX(); y = to.getY(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8d45b2c47aba08c330ec869eba633347e0572477..72ff9e6ec6d9640556292f010bed3a71a39bdc20 100644 +index d3d958b58934bcb513ffef474a9de58c61e654a2..976b9981d6022eab6b124dd279eac82364644585 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -4185,7 +4185,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4180,7 +4180,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (!(this instanceof ServerPlayer)) { EntityTeleportEvent teleport = new EntityTeleportEvent(this.getBukkitEntity(), new Location(this.level().getWorld(), d3, d4, d5), new Location(this.level().getWorld(), d0, d6, d2)); this.level().getCraftServer().getPluginManager().callEvent(teleport); diff --git a/patches/server/0987-Add-experience-points-API.patch b/patches/server/0985-Add-experience-points-API.patch similarity index 100% rename from patches/server/0987-Add-experience-points-API.patch rename to patches/server/0985-Add-experience-points-API.patch diff --git a/patches/server/0988-Add-missing-InventoryType.patch b/patches/server/0986-Add-missing-InventoryType.patch similarity index 100% rename from patches/server/0988-Add-missing-InventoryType.patch rename to patches/server/0986-Add-missing-InventoryType.patch diff --git a/patches/server/0989-Add-drops-to-shear-events.patch b/patches/server/0987-Add-drops-to-shear-events.patch similarity index 100% rename from patches/server/0989-Add-drops-to-shear-events.patch rename to patches/server/0987-Add-drops-to-shear-events.patch diff --git a/patches/server/0990-Add-PlayerShieldDisableEvent.patch b/patches/server/0988-Add-PlayerShieldDisableEvent.patch similarity index 100% rename from patches/server/0990-Add-PlayerShieldDisableEvent.patch rename to patches/server/0988-Add-PlayerShieldDisableEvent.patch diff --git a/patches/server/0991-Add-HiddenPotionEffect-API.patch b/patches/server/0989-Add-HiddenPotionEffect-API.patch similarity index 100% rename from patches/server/0991-Add-HiddenPotionEffect-API.patch rename to patches/server/0989-Add-HiddenPotionEffect-API.patch diff --git a/patches/server/0992-Correctly-check-if-bucket-dispenses-will-succeed-for.patch b/patches/server/0990-Correctly-check-if-bucket-dispenses-will-succeed-for.patch similarity index 100% rename from patches/server/0992-Correctly-check-if-bucket-dispenses-will-succeed-for.patch rename to patches/server/0990-Correctly-check-if-bucket-dispenses-will-succeed-for.patch diff --git a/patches/server/0993-fix-ItemMeta-removing-CustomModelData.patch b/patches/server/0991-fix-ItemMeta-removing-CustomModelData.patch similarity index 100% rename from patches/server/0993-fix-ItemMeta-removing-CustomModelData.patch rename to patches/server/0991-fix-ItemMeta-removing-CustomModelData.patch diff --git a/patches/server/0994-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0992-Validate-ResourceLocation-in-NBT-reading.patch similarity index 100% rename from patches/server/0994-Validate-ResourceLocation-in-NBT-reading.patch rename to patches/server/0992-Validate-ResourceLocation-in-NBT-reading.patch diff --git a/patches/server/0995-Properly-handle-experience-dropping-on-block-break.patch b/patches/server/0993-Properly-handle-experience-dropping-on-block-break.patch similarity index 97% rename from patches/server/0995-Properly-handle-experience-dropping-on-block-break.patch rename to patches/server/0993-Properly-handle-experience-dropping-on-block-break.patch index 6b0e0d8913df..a7c15fab3526 100644 --- a/patches/server/0995-Properly-handle-experience-dropping-on-block-break.patch +++ b/patches/server/0993-Properly-handle-experience-dropping-on-block-break.patch @@ -7,10 +7,10 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall For classes that use custom xp amounts, they can drop the resources with disabling diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 6dfff3e991436df62babc8b3398d39d58d03baee..5ba31afdf371e88dd320e9a19a92d222e9de2e71 100644 +index a63beddef78967d13add0e62a97f03ec82f3fcc0..afcb69a88e00fb32b3d20791b0d1b06bb886c671 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -637,7 +637,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -644,7 +644,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (drop) { BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null; diff --git a/patches/server/0996-Fixup-NamespacedKey-handling.patch b/patches/server/0994-Fixup-NamespacedKey-handling.patch similarity index 100% rename from patches/server/0996-Fixup-NamespacedKey-handling.patch rename to patches/server/0994-Fixup-NamespacedKey-handling.patch diff --git a/patches/server/0997-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0995-Reduce-allocation-of-Vec3D-by-entity-tracker.patch similarity index 95% rename from patches/server/0997-Reduce-allocation-of-Vec3D-by-entity-tracker.patch rename to patches/server/0995-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index fa980a7d880a..432ca3b27297 100644 --- a/patches/server/0997-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/0995-Reduce-allocation-of-Vec3D-by-entity-tracker.patch @@ -18,10 +18,10 @@ index 3c4ac79c094dc2fff7de94150a34b7bf814ac0de..38b56923a642afc1cb411480ba03cc78 @VisibleForTesting static long encode(double value) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index e4f055e935bb0b31e6ee60e57b48ce7ea7ac360d..364d958dda220c2699b9448cd88f58f9e0e93e02 100644 +index 9e7e192493532a2ecab23b98eebc95a1bb75791c..74c3bc1127b4d81cb8838d3ff4ba5211bdb24393 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1173,10 +1173,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1177,10 +1177,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void updatePlayer(ServerPlayer player) { org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot if (player != this.entity) { diff --git a/patches/server/0998-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0996-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch similarity index 92% rename from patches/server/0998-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch rename to patches/server/0996-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch index 6d394ebc64c6..82d2d962df23 100644 --- a/patches/server/0998-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch +++ b/patches/server/0996-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch @@ -26,7 +26,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/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 72ff9e6ec6d9640556292f010bed3a71a39bdc20..f4b90cf5f6044793e69e50392ec6e89dbab018b7 100644 +index 976b9981d6022eab6b124dd279eac82364644585..22771be445acd07d40b0a51c0a6d062e3df3ac95 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3724,7 +3724,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -62,15 +62,18 @@ index bb8e962e63c7a2d931f9bd7f7c002aa35cfa5fd3..0fa131a6c98adb498fc8d534e0e39647 default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) { // Paper start - Add predicate for blocks when raytracing diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 5ba31afdf371e88dd320e9a19a92d222e9de2e71..4ea6945e949c63949b7832ce95501c4a801e840d 100644 +index afcb69a88e00fb32b3d20791b0d1b06bb886c671..50395ebec5b53cf899436c037cafcc9a32448f91 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -343,6 +343,90 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -343,10 +343,87 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } +- // Paper start + // Paper start - Broken down method of raytracing for EntityLiving#hasLineOfSight, replaces BlockGetter#clip(CollisionContext) -+ public net.minecraft.world.phys.BlockHitResult.Type clipDirect(Vec3 start, Vec3 end, net.minecraft.world.phys.shapes.CollisionContext collisionContext) { + public net.minecraft.world.phys.BlockHitResult.Type clipDirect(Vec3 start, Vec3 end, net.minecraft.world.phys.shapes.CollisionContext context) { +- // To be patched over +- return this.clip(new ClipContext(start, end, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, context)).getType(); + // most of this code comes from BlockGetter#clip(CollisionContext, BiFunction, Function), but removes the needless functions + if (start.equals(end)) { + return net.minecraft.world.phys.BlockHitResult.Type.MISS; @@ -95,7 +98,7 @@ index 5ba31afdf371e88dd320e9a19a92d222e9de2e71..4ea6945e949c63949b7832ce95501c4a + return net.minecraft.world.phys.BlockHitResult.Type.MISS; + } + -+ final net.minecraft.world.phys.BlockHitResult.Type initialCheck = this.clipDirect(start, end, currentBlock, chunk.getBlockState(currentBlock), collisionContext); ++ final net.minecraft.world.phys.BlockHitResult.Type initialCheck = this.clipDirect(start, end, currentBlock, chunk.getBlockState(currentBlock), context); + if (initialCheck != null) { + return initialCheck; + } @@ -146,13 +149,10 @@ index 5ba31afdf371e88dd320e9a19a92d222e9de2e71..4ea6945e949c63949b7832ce95501c4a + return net.minecraft.world.phys.BlockHitResult.Type.MISS; + } + } -+ result = this.clipDirect(start, end, currentBlock, chunk.getBlockState(currentBlock), collisionContext); ++ result = this.clipDirect(start, end, currentBlock, chunk.getBlockState(currentBlock), context); + } while (result == null); + + return result; -+ } -+ // Paper end -+ - public boolean isInWorldBounds(BlockPos pos) { - return !this.isOutsideBuildHeight(pos) && Level.isInWorldBoundsHorizontal(pos); } + // Paper end + diff --git a/patches/server/0999-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch b/patches/server/0997-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch similarity index 59% rename from patches/server/0999-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch rename to patches/server/0997-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch index 0c9874a5a5ae..b410abdb846f 100644 --- a/patches/server/0999-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch +++ b/patches/server/0997-Optimize-isInWorldBounds-and-getBlockState-for-inlin.patch @@ -29,7 +29,7 @@ index 369b54b96c682717ef93d05312714b4d30efaceb..beadef19ee136c27601f0d116a869673 this.x = x; this.y = y; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 4ea6945e949c63949b7832ce95501c4a801e840d..43dece0870da5c857592647c3e0e51c83b2b99b1 100644 +index 50395ebec5b53cf899436c037cafcc9a32448f91..d60f4ee361ced0f0844f2ddda34885c9302ba678 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -428,7 +428,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -53,23 +53,6 @@ index 3e5addb60ae8f466dad09edb3ae1fc88fe2681e9..5e8d2e4245757a0889645ea79ee68afb @Nullable public abstract BlockState setBlockState(BlockPos pos, BlockState state, boolean moved); -diff --git a/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java -index f49cc61840c6588fca301b4c5c3aaeede03a323e..785fa679860413b736122f8e88a92e683cbdd99f 100644 ---- a/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java -+++ b/src/main/java/net/minecraft/world/level/chunk/EmptyLevelChunk.java -@@ -55,6 +55,12 @@ public class EmptyLevelChunk extends LevelChunk { - public void setBlockEmptinessMap(final boolean[] emptinessMap) {} - // Paper end - starlight - -+ // Paper start -+ @Override -+ public BlockState getBlockState(int x, int y, int z) { -+ return Blocks.VOID_AIR.defaultBlockState(); -+ } -+ // Paper end - @Override - public BlockState getBlockState(BlockPos pos) { - return Blocks.VOID_AIR.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java index 60e760b42dd6471a229dfd45490dcf8c51979d35..4a3ac7dedf5cb1e76f16ec4f18e82afc717d0ced 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ImposterProtoChunk.java @@ -87,56 +70,6 @@ index 60e760b42dd6471a229dfd45490dcf8c51979d35..4a3ac7dedf5cb1e76f16ec4f18e82afc @Override public FluidState getFluidState(BlockPos pos) { -diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 90d6376f0441505a4c5f32d620827dfe233a5783..808ccbd141a3fb1073abb4817ec1fb82fe46e69b 100644 ---- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -299,12 +299,29 @@ public class LevelChunk extends ChunkAccess { - } - } - -+ // Paper start - Optimize getBlockData to reduce instructions - @Override - public BlockState getBlockState(BlockPos pos) { -- int i = pos.getX(); -- int j = pos.getY(); -- int k = pos.getZ(); -+ return this.getBlockStateFinal(pos.getX(), pos.getY(), pos.getZ()); -+ } -+ -+ @Override -+ public BlockState getBlockState(final int x, final int y, final int z) { -+ return this.getBlockStateFinal(x, y, z); -+ } -+ public final BlockState getBlockStateFinal(final int x, final int y, final int z) { -+ // Method body / logic copied from below -+ final int i = this.getSectionIndex(y); -+ if (i < 0 || i >= this.sections.length || this.sections[i].nonEmptyBlockCount == 0 || this.sections[i].hasOnlyAir()) { -+ return Blocks.AIR.defaultBlockState(); -+ } -+ // Inlined ChunkSection.getType() and DataPaletteBlock.a(int,int,int) -+ return this.sections[i].states.get((y & 15) << 8 | (z & 15) << 4 | x & 15); - -+ } -+ -+ public BlockState getBlockState_unused(int i, int j, int k) { -+ // Paper end - if (this.level.isDebug()) { - BlockState iblockdata = null; - -diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index ea2fb64ff15af1cbb7b3f59386fb7a40f54e9b4f..edb0a5c9f7ee6ca9502b3bb7886f2d32d718169d 100644 ---- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -@@ -19,7 +19,7 @@ public class LevelChunkSection { - public static final int SECTION_HEIGHT = 16; - public static final int SECTION_SIZE = 4096; - public static final int BIOME_CONTAINER_BITS = 2; -- private short nonEmptyBlockCount; -+ short nonEmptyBlockCount; // Paper - package-private - private short tickingBlockCount; - private short tickingFluidCount; - public final PalettedContainer states; diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java index 7da1ed9640211b0e064162dcdb0000538e7b30f3..7aa585875dad5296526bb5d67fc5ea0f8875e452 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java diff --git a/patches/server/1000-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/patches/server/0998-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch similarity index 100% rename from patches/server/1000-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch rename to patches/server/0998-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch diff --git a/patches/server/1001-Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/patches/server/0999-Optimize-Network-Manager-and-add-advanced-packet-sup.patch similarity index 100% rename from patches/server/1001-Optimize-Network-Manager-and-add-advanced-packet-sup.patch rename to patches/server/0999-Optimize-Network-Manager-and-add-advanced-packet-sup.patch diff --git a/patches/server/1002-Allow-Saving-of-Oversized-Chunks.patch b/patches/server/1000-Allow-Saving-of-Oversized-Chunks.patch similarity index 100% rename from patches/server/1002-Allow-Saving-of-Oversized-Chunks.patch rename to patches/server/1000-Allow-Saving-of-Oversized-Chunks.patch diff --git a/patches/server/1003-Fix-World-isChunkGenerated-calls.patch b/patches/server/1001-Fix-World-isChunkGenerated-calls.patch similarity index 98% rename from patches/server/1003-Fix-World-isChunkGenerated-calls.patch rename to patches/server/1001-Fix-World-isChunkGenerated-calls.patch index 095237092261..4221e0a841b5 100644 --- a/patches/server/1003-Fix-World-isChunkGenerated-calls.patch +++ b/patches/server/1001-Fix-World-isChunkGenerated-calls.patch @@ -8,10 +8,10 @@ This patch also adds a chunk status cache on region files (note that its only purpose is to cache the status on DISK) diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 364d958dda220c2699b9448cd88f58f9e0e93e02..ca58aedecf80eba442aca6e6cd0a1428db899268 100644 +index 74c3bc1127b4d81cb8838d3ff4ba5211bdb24393..3c24a700cb417f98bf94631d4c87e66cbdbbba57 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -719,9 +719,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -723,9 +723,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper end private CompletableFuture> readChunk(ChunkPos chunkPos) { @@ -28,7 +28,7 @@ index 364d958dda220c2699b9448cd88f58f9e0e93e02..ca58aedecf80eba442aca6e6cd0a1428 } // CraftBukkit start -@@ -730,6 +734,60 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -734,6 +738,60 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // CraftBukkit end } diff --git a/patches/server/1004-Flat-bedrock-generator-settings.patch b/patches/server/1002-Flat-bedrock-generator-settings.patch similarity index 100% rename from patches/server/1004-Flat-bedrock-generator-settings.patch rename to patches/server/1002-Flat-bedrock-generator-settings.patch diff --git a/patches/server/1005-Entity-Activation-Range-2.0.patch b/patches/server/1003-Entity-Activation-Range-2.0.patch similarity index 97% rename from patches/server/1005-Entity-Activation-Range-2.0.patch rename to patches/server/1003-Entity-Activation-Range-2.0.patch index 7e04f83f6384..eea5e80076c2 100644 --- a/patches/server/1005-Entity-Activation-Range-2.0.patch +++ b/patches/server/1003-Entity-Activation-Range-2.0.patch @@ -15,7 +15,6 @@ Adds villagers as separate config == AT == public net.minecraft.world.entity.Entity isInsidePortal -public net.minecraft.world.entity.LivingEntity jumping diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java index a2a9535a6667d290198ef8d6332d317c8ffffe2e..0c8282683a02087ec0631d1fb5edb13759853486 100644 @@ -112,7 +111,7 @@ index a2a9535a6667d290198ef8d6332d317c8ffffe2e..0c8282683a02087ec0631d1fb5edb137 } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6946137dc476d79ccaa27608a482e6ad8b7bae1a..f080a688eeeaa8ed30690026a483930b7b9e0344 100644 +index aed6ab8c381ab0be56c2477869e57bfb063a51bc..87b98fc1a11d7313d70f4607deb3814f31b10977 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -412,6 +412,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -124,7 +123,7 @@ index 6946137dc476d79ccaa27608a482e6ad8b7bae1a..f080a688eeeaa8ed30690026a483930b public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable private org.bukkit.util.Vector origin; -@@ -1021,6 +1023,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1022,6 +1024,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } else { this.wasOnFire = this.isOnFire(); if (movementType == MoverType.PISTON) { @@ -133,7 +132,7 @@ index 6946137dc476d79ccaa27608a482e6ad8b7bae1a..f080a688eeeaa8ed30690026a483930b movement = this.limitPistonMovement(movement); if (movement.equals(Vec3.ZERO)) { return; -@@ -1033,6 +1037,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1034,6 +1038,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.stuckSpeedMultiplier = Vec3.ZERO; this.setDeltaMovement(Vec3.ZERO); } @@ -340,7 +339,7 @@ index b149e8bcac034bb3fc118a9adcb0de45e18ed5e9..fc35cfc9d045f3e5b6a50af1d0ba83b6 + } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 43dece0870da5c857592647c3e0e51c83b2b99b1..3b9833c7d7513a5b0afe36da82ba52cfe336bc58 100644 +index d60f4ee361ced0f0844f2ddda34885c9302ba678..6a17405d7097b34049fcac465aa1d94ca20611f8 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -162,6 +162,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -372,10 +371,10 @@ index b1061db1d9b3bfde61d5016e10556c4320095827..c71690dbc3dc52803945f1608f0ee3ba } } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index aaa997613a991a9fc5ed276a7e7e61448f34ef64..fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26 100644 +index dfbcddadea4a89c4cfc879105cfacae6dde742a9..fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -1,39 +1,52 @@ +@@ -1,33 +1,43 @@ package org.spigotmc; +import net.minecraft.core.BlockPos; @@ -422,16 +421,7 @@ index aaa997613a991a9fc5ed276a7e7e61448f34ef64..fafc8b84d6b6368c70b8eedfdb4c3a9d public class ActivationRange { - - public enum ActivationType - { -+ WATER, // Paper -+ FLYING_MONSTER, // Paper -+ VILLAGER, // Paper - MONSTER, - ANIMAL, - RAIDER, -@@ -41,6 +54,43 @@ public class ActivationRange +@@ -44,6 +54,43 @@ public class ActivationRange AABB boundingBox = new AABB( 0, 0, 0, 0, 0, 0 ); } @@ -475,7 +465,7 @@ index aaa997613a991a9fc5ed276a7e7e61448f34ef64..fafc8b84d6b6368c70b8eedfdb4c3a9d static AABB maxBB = new AABB( 0, 0, 0, 0, 0, 0 ); -@@ -53,10 +103,13 @@ public class ActivationRange +@@ -56,10 +103,13 @@ public class ActivationRange */ public static ActivationType initializeEntityActivationType(Entity entity) { @@ -490,7 +480,7 @@ index aaa997613a991a9fc5ed276a7e7e61448f34ef64..fafc8b84d6b6368c70b8eedfdb4c3a9d { return ActivationType.MONSTER; } else if ( entity instanceof PathfinderMob || entity instanceof AmbientCreature ) -@@ -77,10 +130,14 @@ public class ActivationRange +@@ -80,10 +130,14 @@ public class ActivationRange */ public static boolean initializeEntityActivationState(Entity entity, SpigotWorldConfig config) { @@ -509,7 +499,7 @@ index aaa997613a991a9fc5ed276a7e7e61448f34ef64..fafc8b84d6b6368c70b8eedfdb4c3a9d || entity instanceof Player || entity instanceof ThrowableProjectile || entity instanceof EnderDragon -@@ -113,10 +170,25 @@ public class ActivationRange +@@ -116,10 +170,25 @@ public class ActivationRange final int raiderActivationRange = world.spigotConfig.raiderActivationRange; final int animalActivationRange = world.spigotConfig.animalActivationRange; final int monsterActivationRange = world.spigotConfig.monsterActivationRange; @@ -535,7 +525,7 @@ index aaa997613a991a9fc5ed276a7e7e61448f34ef64..fafc8b84d6b6368c70b8eedfdb4c3a9d maxRange = Math.min( ( world.spigotConfig.simulationDistance << 4 ) - 8, maxRange ); for ( Player player : world.players() ) -@@ -127,11 +199,17 @@ public class ActivationRange +@@ -130,11 +199,17 @@ public class ActivationRange continue; } @@ -558,7 +548,7 @@ index aaa997613a991a9fc5ed276a7e7e61448f34ef64..fafc8b84d6b6368c70b8eedfdb4c3a9d // Paper start java.util.List entities = world.getEntities((Entity)null, ActivationRange.maxBB, null); -@@ -178,60 +256,118 @@ public class ActivationRange +@@ -181,60 +256,118 @@ public class ActivationRange * @param entity * @return */ @@ -694,7 +684,7 @@ index aaa997613a991a9fc5ed276a7e7e61448f34ef64..fafc8b84d6b6368c70b8eedfdb4c3a9d } /** -@@ -246,8 +382,19 @@ public class ActivationRange +@@ -249,8 +382,19 @@ public class ActivationRange if ( entity instanceof FireworkRocketEntity ) { return true; } @@ -715,7 +705,7 @@ index aaa997613a991a9fc5ed276a7e7e61448f34ef64..fafc8b84d6b6368c70b8eedfdb4c3a9d // Should this entity tick? if ( !isActive ) -@@ -255,15 +402,19 @@ public class ActivationRange +@@ -258,15 +402,19 @@ public class ActivationRange if ( ( MinecraftServer.currentTick - entity.activatedTick - 1 ) % 20 == 0 ) { // Check immunities every 20 ticks. diff --git a/patches/server/1006-Optional-per-player-mob-spawns.patch b/patches/server/1004-Optional-per-player-mob-spawns.patch similarity index 97% rename from patches/server/1006-Optional-per-player-mob-spawns.patch rename to patches/server/1004-Optional-per-player-mob-spawns.patch index 0c3e064dbb4c..f184f6a5ec01 100644 --- a/patches/server/1006-Optional-per-player-mob-spawns.patch +++ b/patches/server/1004-Optional-per-player-mob-spawns.patch @@ -5,15 +5,15 @@ Subject: [PATCH] Optional per player mob spawns diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index ca58aedecf80eba442aca6e6cd0a1428db899268..e575350d5af1c605ccadb67e4f0fdc28662caba0 100644 +index 3c24a700cb417f98bf94631d4c87e66cbdbbba57..b4611b21beb31b109cb5ecfa5aa03ac15e16335a 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -288,6 +288,29 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -288,9 +288,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); } + // Paper start - Optional per player mob spawns -+ public void updatePlayerMobTypeMap(Entity entity) { ++ public void updatePlayerMobTypeMap(final Entity entity) { + if (!this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { + return; + } @@ -30,14 +30,14 @@ index ca58aedecf80eba442aca6e6cd0a1428db899268..e575350d5af1c605ccadb67e4f0fdc28 + } + } + -+ public int getMobCountNear(ServerPlayer entityPlayer, net.minecraft.world.entity.MobCategory mobCategory) { -+ return entityPlayer.mobCounts[mobCategory.ordinal()]; -+ } + public int getMobCountNear(final ServerPlayer player, final net.minecraft.world.entity.MobCategory mobCategory) { +- return -1; ++ return player.mobCounts[mobCategory.ordinal()]; + } + // Paper end - Optional per player mob spawns -+ + private static double euclideanDistanceSquared(ChunkPos pos, Entity entity) { double d0 = (double) SectionPos.sectionToBlockCoord(pos.x, 8); - double d1 = (double) SectionPos.sectionToBlockCoord(pos.z, 8); diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java index 35f463e5237d12e42f7a8b8c177af3236d2e7986..25009accd401fc3860c57cac1ef628b233e746e7 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java diff --git a/patches/server/1007-Anti-Xray.patch b/patches/server/1005-Anti-Xray.patch similarity index 97% rename from patches/server/1007-Anti-Xray.patch rename to patches/server/1005-Anti-Xray.patch index a53ceaa47dea..f037e4c0400c 100644 --- a/patches/server/1007-Anti-Xray.patch +++ b/patches/server/1005-Anti-Xray.patch @@ -1017,12 +1017,12 @@ index 6cff1a98dc7cf33947ec760dbc3d3d0ec5db5f6c..51f647de153255c919b1440338cf1b3e } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index 582a3e5e45dd10068eeb25a3e37bdece3ddbc296..998deae645b4497c3285bfba3260c636439f9ecf 100644 +index 89e3163b0301f8414c9400a6e00cdd85841fe2e8..74b5cec09d953a247bc5aba3c4232a4c28ea1046 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -@@ -33,7 +33,10 @@ public class ClientboundLevelChunkPacketData { - } - // Paper end - Handle oversized block entities in chunks +@@ -25,7 +25,10 @@ public class ClientboundLevelChunkPacketData { + private final byte[] buffer; + private final List blockEntitiesData; - public ClientboundLevelChunkPacketData(LevelChunk chunk) { + // Paper start - Anti-Xray - Add chunk packet info @@ -1032,7 +1032,7 @@ index 582a3e5e45dd10068eeb25a3e37bdece3ddbc296..998deae645b4497c3285bfba3260c636 this.heightmaps = new CompoundTag(); for(Map.Entry entry : chunk.getHeightmaps()) { -@@ -43,7 +46,14 @@ public class ClientboundLevelChunkPacketData { +@@ -35,7 +38,14 @@ public class ClientboundLevelChunkPacketData { } this.buffer = new byte[calculateChunkSize(chunk)]; @@ -1046,9 +1046,9 @@ index 582a3e5e45dd10068eeb25a3e37bdece3ddbc296..998deae645b4497c3285bfba3260c636 + extractChunkData(new FriendlyByteBuf(this.getWriteBuffer()), chunk, chunkPacketInfo); + // Paper end this.blockEntitiesData = Lists.newArrayList(); - int totalTileEntities = 0; // Paper - Handle oversized block entities in chunks -@@ -103,9 +113,15 @@ public class ClientboundLevelChunkPacketData { + for(Map.Entry entry2 : chunk.getBlockEntities().entrySet()) { +@@ -85,9 +95,15 @@ public class ClientboundLevelChunkPacketData { return byteBuf; } @@ -1067,7 +1067,7 @@ index 582a3e5e45dd10068eeb25a3e37bdece3ddbc296..998deae645b4497c3285bfba3260c636 } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java -index 90ec22d35edb2874417bbea590e0d3c37ad93d64..fc230d835f9aa526a4b179d36d921f0fec348aa8 100644 +index 26e46d751c8f8162c2bafe2fc109fc91dc4b7c0f..6412dff5ed0505f62dd5b71ab9606257858a7317 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java @@ -13,13 +13,30 @@ public class ClientboundLevelChunkWithLightPacket implements Packet 0) { new io.papermc.paper.event.packet.PlayerChunkLoadEvent(new org.bukkit.craftbukkit.CraftChunk(chunk), handler.getPlayer().getBukkitEntity()).callEvent(); +diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java +index 34bd7e81f9480c97afd69c11eca216b03e6a5a1f..eae6121a2f3fb33146b0a625cc82c8bce8efc91b 100644 +--- a/src/main/java/net/minecraft/server/players/PlayerList.java ++++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -418,7 +418,7 @@ public abstract class PlayerList { + .getHolderOrThrow(net.minecraft.world.level.biome.Biomes.PLAINS); + player.connection.send(new net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket( + new net.minecraft.world.level.chunk.EmptyLevelChunk(worldserver1, player.chunkPosition(), plains), +- worldserver1.getLightEngine(), (java.util.BitSet)null, (java.util.BitSet) null) ++ worldserver1.getLightEngine(), (java.util.BitSet)null, (java.util.BitSet) null, true) + ); + } + // Paper end - Send empty chunk diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 3b9833c7d7513a5b0afe36da82ba52cfe336bc58..7116e2b98a8c6cc026fd9ea8c5f2c00764906a8c 100644 +index 6a17405d7097b34049fcac465aa1d94ca20611f8..726f3a1ee1f335ca917f7f461b62578ddbef3afe 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -177,6 +177,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1217,7 +1230,7 @@ index 5e8d2e4245757a0889645ea79ee68afb53f7dde4..f7e5e016a7028a9196e689e950805b0d } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 808ccbd141a3fb1073abb4817ec1fb82fe46e69b..6e1006675339551ca499a57a8f8553020f16a4fa 100644 +index 57d7392871634348ff906c03dc0ca601cd3040bd..205a8059128422d962c1cb5d2d7c40461a3eefb3 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -91,7 +91,7 @@ public class LevelChunk extends ChunkAccess { @@ -1230,7 +1243,7 @@ index 808ccbd141a3fb1073abb4817ec1fb82fe46e69b..6e1006675339551ca499a57a8f855302 this.level = (ServerLevel) world; // CraftBukkit - type this.gameEventListenerRegistrySections = new Int2ObjectOpenHashMap(); diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index edb0a5c9f7ee6ca9502b3bb7886f2d32d718169d..3efd0a462306fbd02a506a3f952d609645b1f874 100644 +index b606e33f8b64eaba28c008cc353d88aa45549e31..8852263cb6faec1b68326145aa30e5cd36d066e7 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -33,9 +33,12 @@ public class LevelChunkSection { diff --git a/patches/server/1008-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/1006-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch similarity index 91% rename from patches/server/1008-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch rename to patches/server/1006-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch index 236a2566219e..6a15157d170c 100644 --- a/patches/server/1008-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch +++ b/patches/server/1006-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Improve cancelling PreCreatureSpawnEvent with per player mob diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index e575350d5af1c605ccadb67e4f0fdc28662caba0..0b80e73593a24c008b2ae8d09be59787e39ef0e6 100644 +index b4611b21beb31b109cb5ecfa5aa03ac15e16335a..e69e68ae3be2760c079338793f33c27f59ebf7cf 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -306,8 +306,26 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -306,8 +306,25 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } } @@ -30,10 +30,9 @@ index e575350d5af1c605ccadb67e4f0fdc28662caba0..0b80e73593a24c008b2ae8d09be59787 + } + } + // Paper end - per player mob count backoff -+ - public int getMobCountNear(ServerPlayer entityPlayer, net.minecraft.world.entity.MobCategory mobCategory) { -- return entityPlayer.mobCounts[mobCategory.ordinal()]; -+ return entityPlayer.mobCounts[mobCategory.ordinal()] + entityPlayer.mobBackoffCounts[mobCategory.ordinal()]; // Paper - per player mob count backoff + public int getMobCountNear(final ServerPlayer player, final net.minecraft.world.entity.MobCategory mobCategory) { +- return player.mobCounts[mobCategory.ordinal()]; ++ return player.mobCounts[mobCategory.ordinal()] + player.mobBackoffCounts[mobCategory.ordinal()]; // Paper - per player mob count backoff } // Paper end - Optional per player mob spawns diff --git a/patches/server/1009-Write-SavedData-IO-async.patch b/patches/server/1007-Write-SavedData-IO-async.patch similarity index 100% rename from patches/server/1009-Write-SavedData-IO-async.patch rename to patches/server/1007-Write-SavedData-IO-async.patch diff --git a/patches/server/1010-Optimize-Collision-to-not-load-chunks.patch b/patches/server/1008-Optimize-Collision-to-not-load-chunks.patch similarity index 97% rename from patches/server/1010-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/1008-Optimize-Collision-to-not-load-chunks.patch index f6c26488c549..e630dfec6a29 100644 --- a/patches/server/1010-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/1008-Optimize-Collision-to-not-load-chunks.patch @@ -14,7 +14,7 @@ movement will load only the chunk the player enters anyways and avoids loading massive amounts of surrounding chunks due to large AABB lookups. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d1ca2b75d82653064b905b94a638abbb2d0e710d..1c56b7cd0cfc8cdc0ccfc7ce79cd3e23bef1b334 100644 +index 34bd7e81f9480c97afd69c11eca216b03e6a5a1f..44effa0c7b76c5128c6179f437c0f041f896d3ac 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -934,6 +934,7 @@ public abstract class PlayerList { @@ -26,7 +26,7 @@ index d1ca2b75d82653064b905b94a638abbb2d0e710d..1c56b7cd0cfc8cdc0ccfc7ce79cd3e23 // CraftBukkit end entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 51b0ec061da092aa1a303ff88b8d029133b82e73..5aa9498f41a3f70af6aec04cfaa587841e2fbebb 100644 +index 87b98fc1a11d7313d70f4607deb3814f31b10977..8646584b78fa452799c6964c1485f35531541053 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -241,6 +241,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/1011-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/1009-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 94% rename from patches/server/1011-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/server/1009-Optimize-GoalSelector-Goal.Flag-Set-operations.patch index e43e1e88f693..8e879a28afd1 100644 --- a/patches/server/1011-Optimize-GoalSelector-Goal.Flag-Set-operations.patch +++ b/patches/server/1009-Optimize-GoalSelector-Goal.Flag-Set-operations.patch @@ -7,7 +7,7 @@ Optimise the stream.anyMatch statement to move to a bitset where we can replace the call with a single bitwise operation. diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java -index 16f9a98b8a939e5ca7e2dc04f87134a7ed66736b..54a2ce8c7069e91a939fe03de4349385705b0c67 100644 +index 16f9a98b8a939e5ca7e2dc04f87134a7ed66736b..dd423302b1baa64ef86ded87a29659342e28c142 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/Goal.java @@ -4,7 +4,16 @@ import java.util.EnumSet; @@ -21,7 +21,7 @@ index 16f9a98b8a939e5ca7e2dc04f87134a7ed66736b..54a2ce8c7069e91a939fe03de4349385 + // Paper start - remove streams from pathfindergoalselector; make sure types are not empty + public Goal() { + if (this.goalTypes.size() == 0) { -+ this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR); ++ this.goalTypes.add(Flag.UNKNOWN_BEHAVIOR); + } + } + // Paper end - remove streams from pathfindergoalselector @@ -36,9 +36,9 @@ index 16f9a98b8a939e5ca7e2dc04f87134a7ed66736b..54a2ce8c7069e91a939fe03de4349385 - this.flags.addAll(controls); + // Paper start - remove streams from pathfindergoalselector + this.goalTypes.clear(); -+ this.goalTypes.addAllUnchecked(controls); ++ this.goalTypes.addAll(controls); + if (this.goalTypes.size() == 0) { -+ this.goalTypes.addUnchecked(Flag.UNKNOWN_BEHAVIOR); ++ this.goalTypes.add(Flag.UNKNOWN_BEHAVIOR); + } + // Paper end - remove streams from pathfindergoalselector } @@ -58,7 +58,7 @@ index 16f9a98b8a939e5ca7e2dc04f87134a7ed66736b..54a2ce8c7069e91a939fe03de4349385 protected int adjustedTickDelay(int ticks) { diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java -index e5995d0db5dcfba59a873ff439601894fdacd556..b738ee2d3801fadfd09313f05ae24593e56b0ec6 100644 +index e5995d0db5dcfba59a873ff439601894fdacd556..676f5485a4ca9252e911213dcda8d51776b637b6 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java @@ -30,10 +30,12 @@ public class GoalSelector { @@ -153,12 +153,12 @@ index e5995d0db5dcfba59a873ff439601894fdacd556..b738ee2d3801fadfd09313f05ae24593 public void disableControlFlag(Goal.Flag control) { - this.disabledFlags.add(control); -+ this.goalTypes.addUnchecked(control); // Paper - remove streams from pathfindergoalselector ++ this.goalTypes.add(control); // Paper - remove streams from pathfindergoalselector } public void enableControlFlag(Goal.Flag control) { - this.disabledFlags.remove(control); -+ this.goalTypes.removeUnchecked(control); // Paper - remove streams from pathfindergoalselector ++ this.goalTypes.remove(control); // Paper - remove streams from pathfindergoalselector } public void setControlFlag(Goal.Flag control, boolean enabled) { diff --git a/patches/server/1012-Improved-Watchdog-Support.patch b/patches/server/1010-Improved-Watchdog-Support.patch similarity index 99% rename from patches/server/1012-Improved-Watchdog-Support.patch rename to patches/server/1010-Improved-Watchdog-Support.patch index da85e17753b9..d2cc093b7df5 100644 --- a/patches/server/1012-Improved-Watchdog-Support.patch +++ b/patches/server/1010-Improved-Watchdog-Support.patch @@ -266,7 +266,7 @@ index 9e0c5bb92fb45cab7d78c5ad631c64170d48729f..6de6dad36203479677a29ad61e21bc36 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 1c56b7cd0cfc8cdc0ccfc7ce79cd3e23bef1b334..c423bf30173d2bf6cd3b202de6d490d45c41bf72 100644 +index 44effa0c7b76c5128c6179f437c0f041f896d3ac..58fd91570123abcb288ae9e6f64c1a4bdeb08d85 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -612,7 +612,7 @@ public abstract class PlayerList { @@ -291,7 +291,7 @@ index f5829ae484d93b547a5437b85a9621346384a11b..83701fbfaa56a232593ee8f11a3afb89 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 7116e2b98a8c6cc026fd9ea8c5f2c00764906a8c..8a3a526f7dbce1090d39232dd310d91cc54efc44 100644 +index 726f3a1ee1f335ca917f7f461b62578ddbef3afe..141735eada9082ac3d3fda13765fa713d5d131a1 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -940,6 +940,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -303,7 +303,7 @@ index 7116e2b98a8c6cc026fd9ea8c5f2c00764906a8c..8a3a526f7dbce1090d39232dd310d91c final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ()); MinecraftServer.LOGGER.error(msg, throwable); diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 6e1006675339551ca499a57a8f8553020f16a4fa..6daa7fc7bf08e5f915da4a728a96d2e7a3abd14d 100644 +index 205a8059128422d962c1cb5d2d7c40461a3eefb3..f6bfe4dc7c2c2c7d7d7852c76f15f84928bc3e9f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -1176,6 +1176,7 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/1013-Optimize-Voxel-Shape-Merging.patch b/patches/server/1011-Optimize-Voxel-Shape-Merging.patch similarity index 100% rename from patches/server/1013-Optimize-Voxel-Shape-Merging.patch rename to patches/server/1011-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/server/1014-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/1012-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch similarity index 98% rename from patches/server/1014-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch rename to patches/server/1012-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch index 86d6309f5baf..c90fefc6b3fa 100644 --- a/patches/server/1014-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch +++ b/patches/server/1012-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch @@ -25,7 +25,7 @@ index 4aadf445daee88cc849929783eeddfa4aa005581..4d51baab29b1a913c3efef2cb4ab0cac if (!this.level.isInWorldBounds(blockposition)) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1e78a00ab36362ff7650410ed2af1a822613de4f..e5944ff3c1118e57c9e7a14cbb5181b2d7f7a79a 100644 +index 141735eada9082ac3d3fda13765fa713d5d131a1..f4f2f423b5c9a6bf5cc9aee008b740385beb4045 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -545,6 +545,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -150,7 +150,7 @@ index 4c6ab71c3222ce03edd70abef35c71398d885c13..7ba5d00516dc310355d08dda955c934f public boolean isSolidRender(BlockGetter world, BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java -index ed5210c63d964be7c28f59df315766794ec3ea1f..f610ece91a04bd321fdd75814a7b40e622c2bd1e 100644 +index 431f1cf004471dbfb149f697300c3c7fe6bfda4d..48984809d2df318b42309b7e9a1cac513c89ca42 100644 --- a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java +++ b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java @@ -221,6 +221,13 @@ public class PortalForcer { diff --git a/patches/server/1015-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/1013-Use-distance-map-to-optimise-entity-tracker.patch similarity index 97% rename from patches/server/1015-Use-distance-map-to-optimise-entity-tracker.patch rename to patches/server/1013-Use-distance-map-to-optimise-entity-tracker.patch index 1e13473a8774..8974ee065b6f 100644 --- a/patches/server/1015-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/1013-Use-distance-map-to-optimise-entity-tracker.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Use distance map to optimise entity tracker Use the distance map to find candidate players for tracking. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 0b80e73593a24c008b2ae8d09be59787e39ef0e6..b5bdec141b52dcb1ec37db228d831cab58473c7b 100644 +index e69e68ae3be2760c079338793f33c27f59ebf7cf..c68a14b5b738acabc949cab48b9551cc54e98047 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -146,6 +146,23 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -124,7 +124,7 @@ index 0b80e73593a24c008b2ae8d09be59787e39ef0e6..b5bdec141b52dcb1ec37db228d831cab } // Paper start -@@ -940,17 +1020,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -939,17 +1019,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void move(ServerPlayer player) { @@ -143,7 +143,7 @@ index 0b80e73593a24c008b2ae8d09be59787e39ef0e6..b5bdec141b52dcb1ec37db228d831cab SectionPos sectionposition = player.getLastSectionPos(); SectionPos sectionposition1 = SectionPos.of((EntityAccess) player); -@@ -1027,7 +1097,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1026,7 +1096,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker this.entityMap.put(entity.getId(), playerchunkmap_entitytracker); @@ -152,7 +152,7 @@ index 0b80e73593a24c008b2ae8d09be59787e39ef0e6..b5bdec141b52dcb1ec37db228d831cab if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -1071,9 +1141,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1070,9 +1140,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = null; // Paper - We're no longer tracked } @@ -192,7 +192,7 @@ index 0b80e73593a24c008b2ae8d09be59787e39ef0e6..b5bdec141b52dcb1ec37db228d831cab List list = Lists.newArrayList(); List list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); -@@ -1223,6 +1321,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1222,6 +1320,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.lastSectionPos = SectionPos.of((EntityAccess) entity); } @@ -236,7 +236,7 @@ index 0b80e73593a24c008b2ae8d09be59787e39ef0e6..b5bdec141b52dcb1ec37db228d831cab return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3eaa3c34eca6e4ed26a77e3fd5da772a39eddff8..df02a2b0dc58650644db07ad8f91aabb64be3938 100644 +index 8646584b78fa452799c6964c1485f35531541053..9af161903792ebaa0209acd7212bb525ed6e5263 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -56,6 +56,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; diff --git a/patches/server/1016-Optimize-Bit-Operations-by-inlining.patch b/patches/server/1014-Optimize-Bit-Operations-by-inlining.patch similarity index 100% rename from patches/server/1016-Optimize-Bit-Operations-by-inlining.patch rename to patches/server/1014-Optimize-Bit-Operations-by-inlining.patch diff --git a/patches/server/1017-Remove-streams-from-hot-code.patch b/patches/server/1015-Remove-streams-from-hot-code.patch similarity index 100% rename from patches/server/1017-Remove-streams-from-hot-code.patch rename to patches/server/1015-Remove-streams-from-hot-code.patch diff --git a/patches/server/1018-Eigencraft-redstone-implementation.patch b/patches/server/1016-Eigencraft-redstone-implementation.patch similarity index 100% rename from patches/server/1018-Eigencraft-redstone-implementation.patch rename to patches/server/1016-Eigencraft-redstone-implementation.patch diff --git a/patches/server/1019-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/patches/server/1017-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from patches/server/1019-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to patches/server/1017-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/patches/server/1020-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch b/patches/server/1018-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch similarity index 100% rename from patches/server/1020-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch rename to patches/server/1018-Add-PlayerTradeEvent-and-PlayerPurchaseEvent.patch diff --git a/patches/server/1021-Improve-boat-collision-performance.patch b/patches/server/1019-Improve-boat-collision-performance.patch similarity index 97% rename from patches/server/1021-Improve-boat-collision-performance.patch rename to patches/server/1019-Improve-boat-collision-performance.patch index 083f40bc9c46..7e6566d5253e 100644 --- a/patches/server/1021-Improve-boat-collision-performance.patch +++ b/patches/server/1019-Improve-boat-collision-performance.patch @@ -17,7 +17,7 @@ index edf937591abf62416bd692e40b7b7a6badbe877d..b40864e41e1506884fdefefbf3cf4833 }; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ec495c0080e15b1baeeb57cd7c80d2e6b06e7d2e..b920f72e659956cc2d2d44743caddb0136d467e4 100644 +index 22771be445acd07d40b0a51c0a6d062e3df3ac95..fd35911a6057eed19e6b1a9cbefdfe9cd0cd998c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1437,7 +1437,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1022-Optimise-general-POI-access.patch b/patches/server/1020-Optimise-general-POI-access.patch similarity index 99% rename from patches/server/1022-Optimise-general-POI-access.patch rename to patches/server/1020-Optimise-general-POI-access.patch index 499482538675..a968aa707634 100644 --- a/patches/server/1022-Optimise-general-POI-access.patch +++ b/patches/server/1020-Optimise-general-POI-access.patch @@ -996,7 +996,7 @@ index 54db563d80bbabd87a2be6f5ead92b482ac07b10..4aac1979cf57300825a999c876fcf24d return Optional.empty(); } else { diff --git a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java -index f610ece91a04bd321fdd75814a7b40e622c2bd1e..21822f334a54b7270ea43fa6d3d0829ac0f9f6b9 100644 +index 48984809d2df318b42309b7e9a1cac513c89ca42..cffb04fc0aa90b9b99fd754b11e65d00ef01995a 100644 --- a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java +++ b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java @@ -51,18 +51,39 @@ public class PortalForcer { diff --git a/patches/server/1023-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/server/1021-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/server/1023-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/server/1021-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/server/1024-Execute-chunk-tasks-mid-tick.patch b/patches/server/1022-Execute-chunk-tasks-mid-tick.patch similarity index 98% rename from patches/server/1024-Execute-chunk-tasks-mid-tick.patch rename to patches/server/1022-Execute-chunk-tasks-mid-tick.patch index 4b36b02929ae..0f02de9736a0 100644 --- a/patches/server/1024-Execute-chunk-tasks-mid-tick.patch +++ b/patches/server/1022-Execute-chunk-tasks-mid-tick.patch @@ -151,7 +151,7 @@ index 715f6fb68d832545f36184a77f2229c2a1a79f75..ac5c505a9d280fb128bbc59526bb8bbe } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index ec6b607f6564acceddd694d65ab6014f129250d6..b47e9d029c72f1ce397fcfaa3d6da8bddb2cb4a8 100644 +index f4f2f423b5c9a6bf5cc9aee008b740385beb4045..6b47b8fe38080a2b99bbdc8596f2b607ff0ff4c9 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -929,6 +929,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1025-Optimise-random-block-ticking.patch b/patches/server/1023-Optimise-random-block-ticking.patch similarity index 98% rename from patches/server/1025-Optimise-random-block-ticking.patch rename to patches/server/1023-Optimise-random-block-ticking.patch index 259f80c8daa8..cd11f5f8ae5b 100644 --- a/patches/server/1025-Optimise-random-block-ticking.patch +++ b/patches/server/1023-Optimise-random-block-ticking.patch @@ -324,7 +324,7 @@ index 1a2a4dcb3cfa2690f2aa936a6c176319d807bd74..f97bdfbd07db000845d3b791de64056c public BlockPos getHomePos() { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b47e9d029c72f1ce397fcfaa3d6da8bddb2cb4a8..1dfc48d4beabff13d5affd662acc99f49902843a 100644 +index 6b47b8fe38080a2b99bbdc8596f2b607ff0ff4c9..8286d2b5e696828a0c06b93537bc19aafe82e235 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1400,10 +1400,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -348,7 +348,7 @@ index b47e9d029c72f1ce397fcfaa3d6da8bddb2cb4a8..1dfc48d4beabff13d5affd662acc99f4 public boolean noSave() { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index 3efd0a462306fbd02a506a3f952d609645b1f874..52377adb01df3db297eaf2ece54efde63f9c2cfe 100644 +index 8852263cb6faec1b68326145aa30e5cd36d066e7..eb05c01e85825cbd5b7cf43bc6d261db0b871b92 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -25,6 +25,7 @@ public class LevelChunkSection { @@ -436,7 +436,7 @@ index 3efd0a462306fbd02a506a3f952d609645b1f874..52377adb01df3db297eaf2ece54efde6 public PalettedContainer getStates() { diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 27122a06e172c8d54104c115dfda668a52ff1cde..16fbc633de3a1d9e5e8c65ae107397a6f0e50811 100644 +index 0f930f8355ea99d1cb1a8d27edc1c224588f852f..983799520ce052d98c9231f4f7925492d4f7d5c9 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java @@ -386,6 +386,14 @@ public class PalettedContainer implements PaletteResize, PalettedContainer diff --git a/patches/server/1026-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch b/patches/server/1024-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch similarity index 99% rename from patches/server/1026-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch rename to patches/server/1024-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch index 3bf394920451..db86c8271aed 100644 --- a/patches/server/1026-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch +++ b/patches/server/1024-Attempt-to-recalculate-regionfile-header-if-it-is-co.patch @@ -87,7 +87,7 @@ index c8298a597818227de33a4afce4698ec0666cf758..6762b0f71ea9e369bb77103b7f193898 this.used.set(start, start + size); } 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 c5dbab099a328b37f5a59824384ee6e4be2f3482..4373ae3b454ad3fb8550e83b868e98cc04893c1b 100644 +index 92ba75254f6ffca40abd5485dbb4789de59edebd..6cf83502a954cce9c562ec036bfeddb477d38b73 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 @@ -50,6 +50,355 @@ public class RegionFile implements AutoCloseable { @@ -685,7 +685,7 @@ index c5dbab099a328b37f5a59824384ee6e4be2f3482..4373ae3b454ad3fb8550e83b868e98cc return bytebuffer; } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java -index 99f2e104b2214dbbc0b6e43d9011744ff4b0b843..a25e7183da64f726773aa279707ae67941246b46 100644 +index eeb596a357ca9a18199596af665bc308ff706b70..30d4efc896fe8b2ec0e8b091045c7d07f952b00b 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java @@ -24,6 +24,7 @@ public class RegionFileStorage implements AutoCloseable { diff --git a/patches/server/1027-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1025-Use-Velocity-compression-and-cipher-natives.patch similarity index 100% rename from patches/server/1027-Use-Velocity-compression-and-cipher-natives.patch rename to patches/server/1025-Use-Velocity-compression-and-cipher-natives.patch diff --git a/patches/server/1028-Detail-more-information-in-watchdog-dumps.patch b/patches/server/1026-Detail-more-information-in-watchdog-dumps.patch similarity index 97% rename from patches/server/1028-Detail-more-information-in-watchdog-dumps.patch rename to patches/server/1026-Detail-more-information-in-watchdog-dumps.patch index 2bde9f4d5db0..5ef4c4d85589 100644 --- a/patches/server/1028-Detail-more-information-in-watchdog-dumps.patch +++ b/patches/server/1026-Detail-more-information-in-watchdog-dumps.patch @@ -122,10 +122,10 @@ index 6ced436bda5beaa107ad333d35f39efe366f0595..38c57ad6f028db325bb78fd849e9150a private void tickPassenger(Entity vehicle, Entity passenger) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 01cebabe1410f220743205a44b74c63e4cfd171e..4bf49ef00ad54869966a84c34ebe5f1829f19417 100644 +index 9af161903792ebaa0209acd7212bb525ed6e5263..10b0e37ddab7c664cd50c39ca3586f5aebfc5706 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1051,7 +1051,42 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1051,8 +1051,43 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.onGround; } @@ -155,6 +155,7 @@ index 01cebabe1410f220743205a44b74c63e4cfd171e..4bf49ef00ad54869966a84c34ebe5f18 + // Paper end - detailed watchdog information + public void move(MoverType movementType, Vec3 movement) { + final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity + // Paper start - detailed watchdog information + io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main"); + synchronized (this.posLock) { @@ -168,7 +169,7 @@ index 01cebabe1410f220743205a44b74c63e4cfd171e..4bf49ef00ad54869966a84c34ebe5f18 if (this.noPhysics) { this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); } else { -@@ -1221,6 +1256,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1222,6 +1257,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.level().getProfiler().pop(); } } @@ -182,7 +183,7 @@ index 01cebabe1410f220743205a44b74c63e4cfd171e..4bf49ef00ad54869966a84c34ebe5f18 } private boolean isStateClimbable(BlockState state) { -@@ -4365,7 +4407,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4366,7 +4408,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void setDeltaMovement(Vec3 velocity) { @@ -192,7 +193,7 @@ index 01cebabe1410f220743205a44b74c63e4cfd171e..4bf49ef00ad54869966a84c34ebe5f18 } public void addDeltaMovement(Vec3 velocity) { -@@ -4468,7 +4512,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4469,7 +4513,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // Paper end - Fix MC-4 if (this.position.x != x || this.position.y != y || this.position.z != z) { diff --git a/patches/server/1029-Collision-optimisations.patch b/patches/server/1027-Collision-optimisations.patch similarity index 99% rename from patches/server/1029-Collision-optimisations.patch rename to patches/server/1027-Collision-optimisations.patch index 6bbdad27817d..ce4af686fb45 100644 --- a/patches/server/1029-Collision-optimisations.patch +++ b/patches/server/1027-Collision-optimisations.patch @@ -2201,7 +2201,7 @@ index bd1a53e2ce2644681c23f8cf678afa2a99166d9b..4ef7cc68bdcad9eaa157325a195aa74e } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c423bf30173d2bf6cd3b202de6d490d45c41bf72..c3d0a1c562a26b6025718f848d01ce7ec05793e4 100644 +index 0ce7ce1899ac4115051353fc3eb0c622846d6748..0dd44f3625ca9383f22e4862ad3e92452e26befd 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -935,7 +935,7 @@ public abstract class PlayerList { @@ -2214,10 +2214,10 @@ index c423bf30173d2bf6cd3b202de6d490d45c41bf72..c3d0a1c562a26b6025718f848d01ce7e entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4bf49ef00ad54869966a84c34ebe5f1829f19417..1b72c095f35ba4d94aae0b626aaf2ff500352ad9 100644 +index 10b0e37ddab7c664cd50c39ca3586f5aebfc5706..7ceb4ec480d8799d0bdbd645e5760d2c952b679b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1237,9 +1237,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1238,9 +1238,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S float f = this.getBlockSpeedFactor(); this.setDeltaMovement(this.getDeltaMovement().multiply((double) f, 1.0D, (double) f)); @@ -2265,7 +2265,7 @@ index 4bf49ef00ad54869966a84c34ebe5f1829f19417..1b72c095f35ba4d94aae0b626aaf2ff5 if (this.remainingFireTicks <= 0) { this.setRemainingFireTicks(-this.getFireImmuneTicks()); } -@@ -1419,32 +1454,82 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1420,32 +1455,82 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } private Vec3 collide(Vec3 movement) { @@ -2364,7 +2364,7 @@ index 4bf49ef00ad54869966a84c34ebe5f1829f19417..1b72c095f35ba4d94aae0b626aaf2ff5 } public static Vec3 collideBoundingBox(@Nullable Entity entity, Vec3 movement, AABB entityBoundingBox, Level world, List collisions) { -@@ -2689,11 +2774,70 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2690,11 +2775,70 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S float f = this.dimensions.width * 0.8F; AABB axisalignedbb = AABB.ofSize(this.getEyePosition(), (double) f, 1.0E-6D, (double) f); @@ -2452,6 +2452,19 @@ index 6dfcc296ff7e59ecbebc5446973fabc9eff3cb43..94a30a0c1266bf919d1dc4ca2b19489e Iterator iterator = list.iterator(); while (iterator.hasNext()) { +diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java +index ffa4f34d964fbcc53e2dfe11677832db21a6eb93..7618364e5373fe17cfe45a5a4ee9ab25e591581c 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java ++++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java +@@ -86,7 +86,7 @@ public class Spider extends Monster { + public void tick() { + super.tick(); + if (!this.level().isClientSide) { +- this.setClimbing(this.horizontalCollision && (this.level().paperConfig().entities.behavior.allowSpiderWorldBorderClimbing)); // Paper - Add config option for spider worldborder climbing ++ this.setClimbing(this.horizontalCollision && (this.level().paperConfig().entities.behavior.allowSpiderWorldBorderClimbing || !io.papermc.paper.util.CollisionUtil.isCollidingWithBorder(this.level().getWorldBorder(), this.getBoundingBox().inflate(io.papermc.paper.util.CollisionUtil.COLLISION_EPSILON)))); // Paper - Add config option for spider worldborder climbing & Inflate by +EPSILON as collision will just barely place us outside border + } + + } diff --git a/src/main/java/net/minecraft/world/level/BlockCollisions.java b/src/main/java/net/minecraft/world/level/BlockCollisions.java index a3eaf80b020c3bbc0306c5d17659ee661dfd275b..1b6f72932fbdd567a1534bcf15e8a610b00f974d 100644 --- a/src/main/java/net/minecraft/world/level/BlockCollisions.java @@ -2600,7 +2613,7 @@ index 8c436d16914e160be8e3074badc1293af2ae6b31..a3d15f30eaab29d85cb6b3d693df9980 // Paper start diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1dfc48d4beabff13d5affd662acc99f49902843a..c405265a536b17b93e47384fbb699670f0ac431f 100644 +index 8286d2b5e696828a0c06b93537bc19aafe82e235..3c70eabf3ef1a0b7916ba795eeb9396f7cea3ff7 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -299,6 +299,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -3126,7 +3139,7 @@ index 7ba5d00516dc310355d08dda955c934fe26786ee..97a9fbbe6d8435e88e5fe716770e4034 public Block getBlock() { diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index 52377adb01df3db297eaf2ece54efde63f9c2cfe..b10c652f53edfbf29f28b047d3b3c8edca21bc56 100644 +index eb05c01e85825cbd5b7cf43bc6d261db0b871b92..796bbef3544e06b8e7aac7e8ac5f740a2613f4bd 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -26,6 +26,22 @@ public class LevelChunkSection { diff --git a/patches/server/1030-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1028-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 99% rename from patches/server/1030-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/server/1028-Optimise-collision-checking-in-player-move-packet-ha.patch index 28eb8d3c0c10..ae3cc0dbf52e 100644 --- a/patches/server/1030-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/server/1028-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -8,7 +8,7 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN CHECK ME diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9342efcb855dce5cced227b15356df090e9c451a..721b6c47c7141871fba0d306da42147bff082b0a 100644 +index 1d22b4ba82b440f163137ea6f8a182a00898c15b..b760e51f6d1682fe8185c62389f33e0bb4ce884f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -553,7 +553,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/1031-Fix-tripwire-state-inconsistency.patch b/patches/server/1029-Fix-tripwire-state-inconsistency.patch similarity index 100% rename from patches/server/1031-Fix-tripwire-state-inconsistency.patch rename to patches/server/1029-Fix-tripwire-state-inconsistency.patch diff --git a/patches/server/1032-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/1030-Fix-entity-type-tags-suggestions-in-selectors.patch similarity index 100% rename from patches/server/1032-Fix-entity-type-tags-suggestions-in-selectors.patch rename to patches/server/1030-Fix-entity-type-tags-suggestions-in-selectors.patch diff --git a/patches/server/1033-Add-Alternate-Current-redstone-implementation.patch b/patches/server/1031-Add-Alternate-Current-redstone-implementation.patch similarity index 99% rename from patches/server/1033-Add-Alternate-Current-redstone-implementation.patch rename to patches/server/1031-Add-Alternate-Current-redstone-implementation.patch index 15738d0ba4d0..0cfa2ed745c9 100644 --- a/patches/server/1033-Add-Alternate-Current-redstone-implementation.patch +++ b/patches/server/1031-Add-Alternate-Current-redstone-implementation.patch @@ -2034,7 +2034,7 @@ index 38c57ad6f028db325bb78fd849e9150af2d6d2ca..c8ed96a458ab05f20c5904d4e449f08f EntityCallbacks() {} diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c405265a536b17b93e47384fbb699670f0ac431f..0f4e0a20cc6478d37f6e6a39a551532855021380 100644 +index 3c70eabf3ef1a0b7916ba795eeb9396f7cea3ff7..9fd2fcf8437c866e4fe7a44108cde338e1a9f9a2 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1897,4 +1897,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/1034-optimize-dirt-and-snow-spreading.patch b/patches/server/1032-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from patches/server/1034-optimize-dirt-and-snow-spreading.patch rename to patches/server/1032-optimize-dirt-and-snow-spreading.patch diff --git a/patches/server/1035-Properly-resend-entities.patch b/patches/server/1033-Properly-resend-entities.patch similarity index 71% rename from patches/server/1035-Properly-resend-entities.patch rename to patches/server/1033-Properly-resend-entities.patch index 2144df7aa21f..519272b51315 100644 --- a/patches/server/1035-Properly-resend-entities.patch +++ b/patches/server/1033-Properly-resend-entities.patch @@ -10,6 +10,13 @@ sure that values will be correctly updated to other players. This also adds utilities to aid in further preventing entity desyncs. +This also also fixes the bug causing cancelling PlayerInteractEvent to cause items to continue +to be used despite being cancelled on the server. + +For example, items being consumed but never finishing, shields being put up, etc. +The underlying issue of this is that the client modifies their synced data values, +and so we have to (forcibly) resend them in order for the client to reset their using item state. + See: https://github.com/PaperMC/Paper/pull/1896 == AT == @@ -84,11 +91,43 @@ index 07a362f9e485d0d507f16f1dda1ac84ade07ab27..58b602e550258c1062ee940bc46538da public static class DataItem { +diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +index 97490f58aace9bfb6d034e9a97393142f73043d1..83e017efd15d0ecaffc327f02d6d5330c8ed6937 100644 +--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java ++++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +@@ -563,6 +563,7 @@ public class ServerPlayerGameMode { + } + // Paper end - extend Player Interact cancellation + player.getBukkitEntity().updateInventory(); // SPIGOT-2867 ++ this.player.resyncUsingItem(this.player); // Paper - Properly cancel usable items + enuminteractionresult = (event.useItemInHand() != Event.Result.ALLOW) ? InteractionResult.SUCCESS : InteractionResult.PASS; + } else if (this.gameModeForPlayer == GameType.SPECTATOR) { + MenuProvider itileinventory = iblockdata.getMenuProvider(world, blockposition); +@@ -606,6 +607,11 @@ public class ServerPlayerGameMode { + + return enuminteractionresult1; + } ++ // Paper start - Properly cancel usable items; Cancel only if cancelled + if the interact result is different from default response ++ else if (this.interactResult && this.interactResult != cancelledItem) { ++ this.player.resyncUsingItem(this.player); ++ } ++ // Paper end - Properly cancel usable items + } + return enuminteractionresult; + // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 721b6c47c7141871fba0d306da42147bff082b0a..42b433d9461d0912b39542263684323369469ac0 100644 +index b760e51f6d1682fe8185c62389f33e0bb4ce884f..42b433d9461d0912b39542263684323369469ac0 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2705,7 +2705,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1990,6 +1990,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + } + + if (cancelled) { ++ this.player.resyncUsingItem(this.player); // Paper - Properly cancel usable items + this.player.getBukkitEntity().updateInventory(); // SPIGOT-2524 + return; + } +@@ -2704,7 +2705,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Entity in bucket - SPIGOT-4048 and SPIGOT-6859a if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { @@ -98,7 +137,7 @@ index 721b6c47c7141871fba0d306da42147bff082b0a..42b433d9461d0912b395422636843233 } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 5a932f329f67fd01a263b9536cbfb1c9a011f746..2544495835f8f67eab07907ee8eb572b99ea0fcd 100644 +index ea36111733a3ffa271768f6b2c7729f2cd6bb06d..b7bf28b62e3aac022f6dfd7ccead47533fd0e4d7 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -390,7 +390,7 @@ public abstract class PlayerList { @@ -110,6 +149,22 @@ index 5a932f329f67fd01a263b9536cbfb1c9a011f746..2544495835f8f67eab07907ee8eb572b this.sendLevelInfo(player, worldserver1); +diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java +index fd35911a6057eed19e6b1a9cbefdfe9cd0cd998c..a4217f984148b12960c74ad2ef7cee761f305030 100644 +--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java ++++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +@@ -3822,6 +3822,11 @@ public abstract class LivingEntity extends Entity implements Attackable { + return ((Byte) this.entityData.get(LivingEntity.DATA_LIVING_ENTITY_FLAGS) & 2) > 0 ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND; + } + ++ // Paper start - Properly cancel usable items ++ public void resyncUsingItem(ServerPlayer serverPlayer) { ++ this.getEntityData().resendPossiblyDesyncedDataValues(java.util.List.of(DATA_LIVING_ENTITY_FLAGS), serverPlayer); ++ } ++ // Paper end - Properly cancel usable items + private void updatingUsingItem() { + if (this.isUsingItem()) { + if (ItemStack.isSameItem(this.getItemInHand(this.getUsedItemHand()), this.useItem)) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Bucketable.java b/src/main/java/net/minecraft/world/entity/animal/Bucketable.java index 37596c7b65f280be00e8e59ae18bd1aceae21080..eca18540aeb0b0d4098477d73b14c78a7bf9f455 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bucketable.java @@ -125,7 +180,7 @@ index 37596c7b65f280be00e8e59ae18bd1aceae21080..eca18540aeb0b0d4098477d73b14c78a } entity.playSound(((Bucketable) entity).getPickupSound(), 1.0F, 1.0F); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 9b8ba3199fa091c7b20a89044ff986d9861f088f..f16ac1d640fc97f348c244d4ea86e3278b30ae19 100644 +index 44dd60c1f31b578e7630673433f3850f392b7a0d..8698104e3eb98e2cc5da5de87a8f538860c1d91d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -999,7 +999,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/1036-Optimize-Hoppers.patch b/patches/server/1034-Optimize-Hoppers.patch similarity index 100% rename from patches/server/1036-Optimize-Hoppers.patch rename to patches/server/1034-Optimize-Hoppers.patch diff --git a/patches/server/1037-Improve-performance-of-mass-crafts.patch b/patches/server/1035-Improve-performance-of-mass-crafts.patch similarity index 100% rename from patches/server/1037-Improve-performance-of-mass-crafts.patch rename to patches/server/1035-Improve-performance-of-mass-crafts.patch diff --git a/patches/server/1038-Actually-optimise-explosions.patch b/patches/server/1036-Actually-optimise-explosions.patch similarity index 100% rename from patches/server/1038-Actually-optimise-explosions.patch rename to patches/server/1036-Actually-optimise-explosions.patch diff --git a/patches/server/1039-Optimise-chunk-tick-iteration.patch b/patches/server/1037-Optimise-chunk-tick-iteration.patch similarity index 99% rename from patches/server/1039-Optimise-chunk-tick-iteration.patch rename to patches/server/1037-Optimise-chunk-tick-iteration.patch index 9597d6ba34a7..8315778f52b4 100644 --- a/patches/server/1039-Optimise-chunk-tick-iteration.patch +++ b/patches/server/1037-Optimise-chunk-tick-iteration.patch @@ -108,7 +108,7 @@ index 2b998bdbe49bf8211b755e0eb7c1bf13ac280eab..627a88ec8c3b215b19b55a6d461c8754 List list; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 90393101fddd54f60b0b173beffd8650ad23349e..424de333bf4fc5632410c689d9b17b2eab3371c4 100644 +index c68a14b5b738acabc949cab48b9551cc54e98047..5637dcf1f6c76df33988c3279171aafbc1868a82 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -191,6 +191,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -130,7 +130,7 @@ index 90393101fddd54f60b0b173beffd8650ad23349e..424de333bf4fc5632410c689d9b17b2e public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor executor, BlockableEventLoop mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier persistentStateManagerFactory, int viewDistance, boolean dsync) { super(session.getDimensionPath(world.dimension()).resolve("region"), dataFixer, dsync); -@@ -409,7 +414,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -408,7 +413,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } // Paper end - Optional per player mob spawns diff --git a/patches/server/1040-Lag-compensation-ticks.patch b/patches/server/1038-Lag-compensation-ticks.patch similarity index 98% rename from patches/server/1040-Lag-compensation-ticks.patch rename to patches/server/1038-Lag-compensation-ticks.patch index 37cf98cafa06..0b26f7c25abf 100644 --- a/patches/server/1040-Lag-compensation-ticks.patch +++ b/patches/server/1038-Lag-compensation-ticks.patch @@ -63,7 +63,7 @@ index 83e017efd15d0ecaffc327f02d6d5330c8ed6937..cfd4ac06a9af6bf3fac293110482e1df if (this.hasDelayedDestroy) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a0b556d91151ba5941f5a433c303c27e4000db5e..fb6cf6e8c72c11b58788c50c2ed34c4e25fc94f9 100644 +index a4217f984148b12960c74ad2ef7cee761f305030..6071451339080bbdd98fb634791a56988984c8bc 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3827,6 +3827,10 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/1041-Optimise-nearby-player-retrieval.patch b/patches/server/1039-Optimise-nearby-player-retrieval.patch similarity index 100% rename from patches/server/1041-Optimise-nearby-player-retrieval.patch rename to patches/server/1039-Optimise-nearby-player-retrieval.patch diff --git a/patches/server/0288-Handle-Oversized-Tile-Entities-in-chunks.patch b/patches/server/1040-Handle-Oversized-Tile-Entities-in-chunks.patch similarity index 84% rename from patches/server/0288-Handle-Oversized-Tile-Entities-in-chunks.patch rename to patches/server/1040-Handle-Oversized-Tile-Entities-in-chunks.patch index 0d10f48bee01..73a6a26e4c84 100644 --- a/patches/server/0288-Handle-Oversized-Tile-Entities-in-chunks.patch +++ b/patches/server/1040-Handle-Oversized-Tile-Entities-in-chunks.patch @@ -9,7 +9,7 @@ creating too large of a packet to sed. Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java -index f47eeb70661661610ef1a96dd9da67785825c126..dda7151d333144399ba5602e1b651b1f5b8f8f0d 100644 +index 74b5cec09d953a247bc5aba3c4232a4c28ea1046..998deae645b4497c3285bfba3260c636439f9ecf 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java @@ -24,6 +24,14 @@ public class ClientboundLevelChunkPacketData { @@ -25,11 +25,11 @@ index f47eeb70661661610ef1a96dd9da67785825c126..dda7151d333144399ba5602e1b651b1f + } + // Paper end - Handle oversized block entities in chunks - public ClientboundLevelChunkPacketData(LevelChunk chunk) { - this.heightmaps = new CompoundTag(); -@@ -37,8 +45,18 @@ public class ClientboundLevelChunkPacketData { - this.buffer = new byte[calculateChunkSize(chunk)]; - extractChunkData(new FriendlyByteBuf(this.getWriteBuffer()), chunk); + // Paper start - Anti-Xray - Add chunk packet info + @Deprecated @io.papermc.paper.annotation.DoNotUse public ClientboundLevelChunkPacketData(LevelChunk chunk) { this(chunk, null); } +@@ -47,8 +55,18 @@ public class ClientboundLevelChunkPacketData { + extractChunkData(new FriendlyByteBuf(this.getWriteBuffer()), chunk, chunkPacketInfo); + // Paper end this.blockEntitiesData = Lists.newArrayList(); + int totalTileEntities = 0; // Paper - Handle oversized block entities in chunks @@ -47,10 +47,10 @@ index f47eeb70661661610ef1a96dd9da67785825c126..dda7151d333144399ba5602e1b651b1f } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java -index 26e46d751c8f8162c2bafe2fc109fc91dc4b7c0f..90ec22d35edb2874417bbea590e0d3c37ad93d64 100644 +index 6412dff5ed0505f62dd5b71ab9606257858a7317..fc230d835f9aa526a4b179d36d921f0fec348aa8 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkWithLightPacket.java -@@ -57,4 +57,11 @@ public class ClientboundLevelChunkWithLightPacket implements Packet Date: Tue, 23 Jan 2024 15:17:14 -0500 Subject: [PATCH 43/45] Add world to Entity AddTo/RemoveFrom Events (#10183) When a plugin listens to the EntityAddToWorld and EntityRemoveFromWorld events, I don't believe there is currently any method of directly obtaining which world the entity was actually added to/removed from. Using event.getEntity().getWorld() works in many cases, but not all. Specifically, when an entity is teleported from one world to another, the location of the entity is updated prior to the removal event being called. This means that when an entity goes through a nether/end portal or is teleported between worlds with a command, a plugin listening to the EntityRemoveFromWorldEvent has no way of determining which world the entity was actually removed from (without relying on other events). To resolve this, I've added the world as a field in the events along with a getter to retrieve it. I also removed an unused import and made the documentation more clear on the event behaviour when chunks load/unload. --- ...Entity-AddTo-RemoveFrom-World-Events.patch | 42 ++++++++++++++----- ...Entity-AddTo-RemoveFrom-World-Events.patch | 4 +- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/patches/api/0033-Entity-AddTo-RemoveFrom-World-Events.patch b/patches/api/0033-Entity-AddTo-RemoveFrom-World-Events.patch index 5dc11c88f891..c3c7770fe1e0 100644 --- a/patches/api/0033-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/patches/api/0033-Entity-AddTo-RemoveFrom-World-Events.patch @@ -6,28 +6,37 @@ Subject: [PATCH] Entity AddTo/RemoveFrom World Events diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EntityAddToWorldEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EntityAddToWorldEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..07660202e41ee86f1b66bad3335cf6fe126e7f9c +index 0000000000000000000000000000000000000000..982a0abd9a90fcb99f8d7c60a89021a5b1bb8264 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/entity/EntityAddToWorldEvent.java -@@ -0,0 +1,32 @@ +@@ -0,0 +1,41 @@ +package com.destroystokyo.paper.event.entity; + ++import org.bukkit.World; +import org.bukkit.entity.Entity; -+import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; +import org.jetbrains.annotations.NotNull; + +/** -+ * Fired any time an entity is being added to the world for any reason. ++ * Fired any time an entity is being added to the world for any reason (including a chunk loading). + * + * Not to be confused with {@link org.bukkit.event.entity.CreatureSpawnEvent} -+ * This will fire anytime a chunk is reloaded too. + */ +public class EntityAddToWorldEvent extends EntityEvent { ++ @NotNull private final World world; + -+ public EntityAddToWorldEvent(@NotNull Entity entity) { ++ public EntityAddToWorldEvent(@NotNull Entity entity, @NotNull World world) { + super(entity); ++ this.world = world; ++ } ++ ++ /** ++ * @return The world that the entity is being added to ++ */ ++ @NotNull ++ public World getWorld() { ++ return world; + } + + private static final HandlerList handlers = new HandlerList(); @@ -44,25 +53,36 @@ index 0000000000000000000000000000000000000000..07660202e41ee86f1b66bad3335cf6fe +} diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EntityRemoveFromWorldEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EntityRemoveFromWorldEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..e5dbbd660409bae0d3b96e83390511d3a423a52e +index 0000000000000000000000000000000000000000..b58e2e7b8707c6221773b8f023f58a4eb9c7d4b9 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/event/entity/EntityRemoveFromWorldEvent.java -@@ -0,0 +1,29 @@ +@@ -0,0 +1,40 @@ +package com.destroystokyo.paper.event.entity; + ++import org.bukkit.World; +import org.bukkit.entity.Entity; -+import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; +import org.jetbrains.annotations.NotNull; + +/** -+ * Fired any time an entity is being removed from a world for any reason ++ * Fired any time an entity is being removed from a world for any reason (including a chunk unloading). ++ * Note: The entity is updated prior to this event being called, as such, the entity's world may not be equal to {@link #getWorld()}. + */ +public class EntityRemoveFromWorldEvent extends EntityEvent { ++ @NotNull private final World world; + -+ public EntityRemoveFromWorldEvent(@NotNull Entity entity) { ++ public EntityRemoveFromWorldEvent(@NotNull Entity entity, @NotNull World world) { + super(entity); ++ this.world = world; ++ } ++ ++ /** ++ * @return The world that the entity is being removed from ++ */ ++ @NotNull ++ public World getWorld() { ++ return world; + } + + private static final HandlerList handlers = new HandlerList(); diff --git a/patches/server/0076-Entity-AddTo-RemoveFrom-World-Events.patch b/patches/server/0076-Entity-AddTo-RemoveFrom-World-Events.patch index 7c2c9e53c60f..ea98fc81c5f7 100644 --- a/patches/server/0076-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/patches/server/0076-Entity-AddTo-RemoveFrom-World-Events.patch @@ -12,7 +12,7 @@ index 181a4e0e44cd05528c66ce87b653c33d6bd2fd03..449f2ebc77a1850fc948bffc66e605f7 entity.setOrigin(entity.getOriginVector().toLocation(getWorld())); } // Paper end -+ new com.destroystokyo.paper.event.entity.EntityAddToWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid ++ new com.destroystokyo.paper.event.entity.EntityAddToWorldEvent(entity.getBukkitEntity(), ServerLevel.this.getWorld()).callEvent(); // Paper - fire while valid } public void onTrackingEnd(Entity entity) { @@ -20,7 +20,7 @@ index 181a4e0e44cd05528c66ce87b653c33d6bd2fd03..449f2ebc77a1850fc948bffc66e605f7 } } // CraftBukkit end -+ new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid ++ new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity(), ServerLevel.this.getWorld()).callEvent(); // Paper - fire while valid } public void onSectionChange(Entity entity) { From 24dc2bfc506ae1fe9b1df8b23d13a14595541e4e Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Tue, 23 Jan 2024 12:41:47 -0800 Subject: [PATCH 44/45] Add BlockStateMeta#clearBlockState (#10160) --- ...5-Add-BlockStateMeta-clearBlockState.patch | 24 +++++++++++++++++++ ...1-Add-BlockStateMeta-clearBlockState.patch | 24 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 patches/api/0455-Add-BlockStateMeta-clearBlockState.patch create mode 100644 patches/server/1041-Add-BlockStateMeta-clearBlockState.patch diff --git a/patches/api/0455-Add-BlockStateMeta-clearBlockState.patch b/patches/api/0455-Add-BlockStateMeta-clearBlockState.patch new file mode 100644 index 000000000000..1a81132aa835 --- /dev/null +++ b/patches/api/0455-Add-BlockStateMeta-clearBlockState.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Thu, 11 Jan 2024 12:41:54 -0800 +Subject: [PATCH] Add BlockStateMeta#clearBlockState + + +diff --git a/src/main/java/org/bukkit/inventory/meta/BlockStateMeta.java b/src/main/java/org/bukkit/inventory/meta/BlockStateMeta.java +index e7d905b1146b2bdd2da5bdeb6bf3541fb181d59e..9f08ce5e89ecb4e335f7459a4e600e638e71f963 100644 +--- a/src/main/java/org/bukkit/inventory/meta/BlockStateMeta.java ++++ b/src/main/java/org/bukkit/inventory/meta/BlockStateMeta.java +@@ -14,6 +14,13 @@ public interface BlockStateMeta extends ItemMeta { + */ + boolean hasBlockState(); + ++ // Paper start - add method to clear block state ++ /** ++ * Clears the block state currently attached to this item. ++ */ ++ void clearBlockState(); ++ // Paper end - add method to clear block state ++ + /** + * Returns the currently attached block state for this + * item or creates a new one if one doesn't exist. diff --git a/patches/server/1041-Add-BlockStateMeta-clearBlockState.patch b/patches/server/1041-Add-BlockStateMeta-clearBlockState.patch new file mode 100644 index 000000000000..86efcbf6342b --- /dev/null +++ b/patches/server/1041-Add-BlockStateMeta-clearBlockState.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Thu, 11 Jan 2024 12:41:50 -0800 +Subject: [PATCH] Add BlockStateMeta#clearBlockState + + +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java +index 0cbca0c37b3e6a34157906d44357286126cfe112..671a9b92da04c22cd3e6c3fd291a343e57397e72 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java +@@ -257,6 +257,13 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta + return this.blockEntityTag != null; + } + ++ // Paper start - add method to clear block state ++ @Override ++ public void clearBlockState() { ++ this.blockEntityTag = null; ++ } ++ // Paper end - add method to clear block state ++ + @Override + public BlockState getBlockState() { + Material stateMaterial = (this.material != Material.SHIELD) ? this.material : CraftMetaBlockState.shieldToBannerHack(this.blockEntityTag); // Only actually used for jigsaws From 76da4bc683a51057eadfabc6e6694486a20a0d20 Mon Sep 17 00:00:00 2001 From: FireInstall <29309865+FireInstall@users.noreply.github.com> Date: Tue, 23 Jan 2024 21:57:17 +0100 Subject: [PATCH 45/45] Expose LootTable of DecoratedPot (#10023) --- ...456-Expose-LootTable-of-DecoratedPot.patch | 19 +++++++ ...042-Expose-LootTable-of-DecoratedPot.patch | 50 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 patches/api/0456-Expose-LootTable-of-DecoratedPot.patch create mode 100644 patches/server/1042-Expose-LootTable-of-DecoratedPot.patch diff --git a/patches/api/0456-Expose-LootTable-of-DecoratedPot.patch b/patches/api/0456-Expose-LootTable-of-DecoratedPot.patch new file mode 100644 index 000000000000..42a8de4123e2 --- /dev/null +++ b/patches/api/0456-Expose-LootTable-of-DecoratedPot.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: FireInstall +Date: Sat, 20 Jan 2024 16:20:07 +0100 +Subject: [PATCH] Expose LootTable of DecoratedPot + + +diff --git a/src/main/java/org/bukkit/block/DecoratedPot.java b/src/main/java/org/bukkit/block/DecoratedPot.java +index f76230e0bba49639fc2e70ee32a53e3a9182f217..feae34e459523d17a10b673bbec28abcac9cdadd 100644 +--- a/src/main/java/org/bukkit/block/DecoratedPot.java ++++ b/src/main/java/org/bukkit/block/DecoratedPot.java +@@ -12,7 +12,7 @@ import org.jetbrains.annotations.Nullable; + /** + * Represents a captured state of a decorated pot. + */ +-public interface DecoratedPot extends TileState, BlockInventoryHolder { ++public interface DecoratedPot extends TileState, BlockInventoryHolder , org.bukkit.loot.Lootable { // Paper - expose loot table + + /** + * Set the sherd on the provided side. diff --git a/patches/server/1042-Expose-LootTable-of-DecoratedPot.patch b/patches/server/1042-Expose-LootTable-of-DecoratedPot.patch new file mode 100644 index 000000000000..6d5e2738dee5 --- /dev/null +++ b/patches/server/1042-Expose-LootTable-of-DecoratedPot.patch @@ -0,0 +1,50 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: FireInstall +Date: Sat, 20 Jan 2024 16:20:06 +0100 +Subject: [PATCH] Expose LootTable of DecoratedPot + + +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftDecoratedPot.java b/src/main/java/org/bukkit/craftbukkit/block/CraftDecoratedPot.java +index d595495943bd94a86aa32a6510e46a7ea5c8a723..e2fe5d8d7d8c00ed5d21cfe409933cdde8932e97 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/CraftDecoratedPot.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftDecoratedPot.java +@@ -40,6 +40,39 @@ public class CraftDecoratedPot extends CraftBlockEntityState